barsa-calendar 2.1.1 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/barsa-calendar.mjs +26 -21
- package/fesm2022/barsa-calendar.mjs.map +1 -1
- package/package.json +3 -5
- package/esm2022/barsa-calendar.mjs +0 -5
- package/esm2022/lib/barsa-calendar.module.mjs +0 -117
- package/esm2022/lib/calendar-container/calendar-container.component.mjs +0 -230
- package/esm2022/lib/calendar-header/calendar-header.component.mjs +0 -66
- package/esm2022/lib/calendar-list/calendar-list.component.mjs +0 -18
- package/esm2022/lib/calendar-list-container/calendar-list-container.component.mjs +0 -29
- package/esm2022/lib/calendar-list-item/calendar-list-item.component.mjs +0 -14
- package/esm2022/lib/calendar-month/calendar-month.component.mjs +0 -249
- package/esm2022/lib/calendar-selection-days/calendar-selection-days.component.mjs +0 -196
- package/esm2022/lib/calendar-week/calendar-week.component.mjs +0 -255
- package/esm2022/lib/constants.mjs +0 -4
- package/esm2022/lib/date-time-picker/date-time-picker.component.mjs +0 -457
- package/esm2022/lib/day-event-list/day-event-list.component.mjs +0 -58
- package/esm2022/lib/day-number-box/day-number-box.component.mjs +0 -105
- package/esm2022/lib/days-in-week.pipe.mjs +0 -17
- package/esm2022/lib/equal-date.pipe.mjs +0 -23
- package/esm2022/lib/event-button/event-button.component.mjs +0 -100
- package/esm2022/lib/event-button-end-arrow/event-button-end-arrow.component.mjs +0 -29
- package/esm2022/lib/event-button-start-arrow/event-button-start-arrow.component.mjs +0 -29
- package/esm2022/lib/event-date.pipe.mjs +0 -24
- package/esm2022/lib/event-preview/event-preview.component.mjs +0 -81
- package/esm2022/lib/event-time.pipe.mjs +0 -22
- package/esm2022/lib/from-to-time.pipe.mjs +0 -23
- package/esm2022/lib/models.mjs +0 -14
- package/esm2022/lib/month-days/month-days.component.mjs +0 -222
- package/esm2022/lib/services/calendar.service.mjs +0 -645
- package/esm2022/public-api.mjs +0 -23
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "barsa-calendar",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/core": "^18.
|
|
6
|
-
"@angular/common": "^18.
|
|
5
|
+
"@angular/core": "^18.0.3",
|
|
6
|
+
"@angular/common": "^18.0.3"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.0.0"
|
|
@@ -16,8 +16,6 @@
|
|
|
16
16
|
},
|
|
17
17
|
".": {
|
|
18
18
|
"types": "./index.d.ts",
|
|
19
|
-
"esm2022": "./esm2022/barsa-calendar.mjs",
|
|
20
|
-
"esm": "./esm2022/barsa-calendar.mjs",
|
|
21
19
|
"default": "./fesm2022/barsa-calendar.mjs"
|
|
22
20
|
}
|
|
23
21
|
},
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2FsZW5kYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1jYWxlbmRhci9zcmMvYmFyc2EtY2FsZW5kYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
|
|
2
|
-
import { CommonModule, TitleCasePipe } from '@angular/common';
|
|
3
|
-
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { FundamentalNgxCoreModule } from '@fundamental-ngx/core';
|
|
5
|
-
import { CardModule } from '@fundamental-ngx/core/card';
|
|
6
|
-
import { QuickViewModule } from '@fundamental-ngx/core/quick-view';
|
|
7
|
-
import { PopoverModule } from '@fundamental-ngx/core/popover';
|
|
8
|
-
import { BarsaNovinRayCoreModule, BaseModule } from 'barsa-novin-ray-core';
|
|
9
|
-
import { CalendarContainerComponent } from './calendar-container/calendar-container.component';
|
|
10
|
-
import { CalendarListComponent } from './calendar-list/calendar-list.component';
|
|
11
|
-
import { CalendarListContainerComponent } from './calendar-list-container/calendar-list-container.component';
|
|
12
|
-
import { CalendarListItemComponent } from './calendar-list-item/calendar-list-item.component';
|
|
13
|
-
import { CalendarWeekComponent } from './calendar-week/calendar-week.component';
|
|
14
|
-
import { CalendarMonthComponent } from './calendar-month/calendar-month.component';
|
|
15
|
-
import { CalendarService } from './services/calendar.service';
|
|
16
|
-
import { MonthDaysComponent } from './month-days/month-days.component';
|
|
17
|
-
import { DaysInWeekPipe } from './days-in-week.pipe';
|
|
18
|
-
import { EventDatePipe } from './event-date.pipe';
|
|
19
|
-
import { EventTimePipe } from './event-time.pipe';
|
|
20
|
-
import { FromToTimePipe } from './from-to-time.pipe';
|
|
21
|
-
import { EqualDatePipe } from './equal-date.pipe';
|
|
22
|
-
import { CalendarHeaderComponent } from './calendar-header/calendar-header.component';
|
|
23
|
-
import { EventPreviewComponent } from './event-preview/event-preview.component';
|
|
24
|
-
import { DayNumberBoxComponent } from './day-number-box/day-number-box.component';
|
|
25
|
-
import { EventButtonComponent } from './event-button/event-button.component';
|
|
26
|
-
import { DayEventListComponent } from './day-event-list/day-event-list.component';
|
|
27
|
-
import { DateTimePickerComponent } from './date-time-picker/date-time-picker.component';
|
|
28
|
-
import { CalendarSelectionDaysComponent } from './calendar-selection-days/calendar-selection-days.component';
|
|
29
|
-
import { EventButtonEndArrowComponent } from './event-button-end-arrow/event-button-end-arrow.component';
|
|
30
|
-
import { EventButtonStartArrowComponent } from './event-button-start-arrow/event-button-start-arrow.component';
|
|
31
|
-
import * as i0 from "@angular/core";
|
|
32
|
-
import * as i1 from "barsa-novin-ray-core";
|
|
33
|
-
const components = [
|
|
34
|
-
CalendarContainerComponent,
|
|
35
|
-
CalendarListComponent,
|
|
36
|
-
CalendarListContainerComponent,
|
|
37
|
-
CalendarListItemComponent,
|
|
38
|
-
CalendarWeekComponent,
|
|
39
|
-
CalendarMonthComponent,
|
|
40
|
-
MonthDaysComponent,
|
|
41
|
-
CalendarHeaderComponent,
|
|
42
|
-
EventPreviewComponent,
|
|
43
|
-
DayNumberBoxComponent,
|
|
44
|
-
EventButtonComponent,
|
|
45
|
-
DayEventListComponent,
|
|
46
|
-
EventButtonEndArrowComponent,
|
|
47
|
-
EventButtonStartArrowComponent
|
|
48
|
-
];
|
|
49
|
-
const pipes = [DaysInWeekPipe, EventDatePipe, EventTimePipe, FromToTimePipe, EqualDatePipe];
|
|
50
|
-
export class BarsaCalendarModule extends BaseModule {
|
|
51
|
-
constructor(dcm, componentFactoryResolver) {
|
|
52
|
-
super(dcm, componentFactoryResolver, 'BarsaCalendarModule');
|
|
53
|
-
this.dcm = dcm;
|
|
54
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
55
|
-
this.dynamicComponents = [...components];
|
|
56
|
-
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCalendarModule, deps: [{ token: i1.DynamicComponentService }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
58
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: BarsaCalendarModule, declarations: [CalendarContainerComponent,
|
|
59
|
-
CalendarListComponent,
|
|
60
|
-
CalendarListContainerComponent,
|
|
61
|
-
CalendarListItemComponent,
|
|
62
|
-
CalendarWeekComponent,
|
|
63
|
-
CalendarMonthComponent,
|
|
64
|
-
MonthDaysComponent,
|
|
65
|
-
CalendarHeaderComponent,
|
|
66
|
-
EventPreviewComponent,
|
|
67
|
-
DayNumberBoxComponent,
|
|
68
|
-
EventButtonComponent,
|
|
69
|
-
DayEventListComponent,
|
|
70
|
-
EventButtonEndArrowComponent,
|
|
71
|
-
EventButtonStartArrowComponent, DaysInWeekPipe, EventDatePipe, EventTimePipe, FromToTimePipe, EqualDatePipe, DateTimePickerComponent, CalendarSelectionDaysComponent], imports: [CommonModule,
|
|
72
|
-
FormsModule,
|
|
73
|
-
BarsaNovinRayCoreModule,
|
|
74
|
-
FundamentalNgxCoreModule,
|
|
75
|
-
PopoverModule,
|
|
76
|
-
CardModule,
|
|
77
|
-
QuickViewModule], exports: [CalendarContainerComponent,
|
|
78
|
-
CalendarListComponent,
|
|
79
|
-
CalendarListContainerComponent,
|
|
80
|
-
CalendarListItemComponent,
|
|
81
|
-
CalendarWeekComponent,
|
|
82
|
-
CalendarMonthComponent,
|
|
83
|
-
MonthDaysComponent,
|
|
84
|
-
CalendarHeaderComponent,
|
|
85
|
-
EventPreviewComponent,
|
|
86
|
-
DayNumberBoxComponent,
|
|
87
|
-
EventButtonComponent,
|
|
88
|
-
DayEventListComponent,
|
|
89
|
-
EventButtonEndArrowComponent,
|
|
90
|
-
EventButtonStartArrowComponent, DateTimePickerComponent, CalendarSelectionDaysComponent] }); }
|
|
91
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCalendarModule, providers: [TitleCasePipe, CalendarService, ...pipes], imports: [CommonModule,
|
|
92
|
-
FormsModule,
|
|
93
|
-
BarsaNovinRayCoreModule,
|
|
94
|
-
FundamentalNgxCoreModule,
|
|
95
|
-
PopoverModule,
|
|
96
|
-
CardModule,
|
|
97
|
-
QuickViewModule] }); }
|
|
98
|
-
}
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCalendarModule, decorators: [{
|
|
100
|
-
type: NgModule,
|
|
101
|
-
args: [{
|
|
102
|
-
schemas: [NO_ERRORS_SCHEMA],
|
|
103
|
-
imports: [
|
|
104
|
-
CommonModule,
|
|
105
|
-
FormsModule,
|
|
106
|
-
BarsaNovinRayCoreModule,
|
|
107
|
-
FundamentalNgxCoreModule,
|
|
108
|
-
PopoverModule,
|
|
109
|
-
CardModule,
|
|
110
|
-
QuickViewModule
|
|
111
|
-
],
|
|
112
|
-
declarations: [...components, ...pipes, DateTimePickerComponent, CalendarSelectionDaysComponent],
|
|
113
|
-
providers: [TitleCasePipe, CalendarService, ...pipes],
|
|
114
|
-
exports: [...components, DateTimePickerComponent, CalendarSelectionDaysComponent]
|
|
115
|
-
}]
|
|
116
|
-
}], ctorParameters: () => [{ type: i1.DynamicComponentService }, { type: i0.ComponentFactoryResolver }] });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtY2FsZW5kYXIvc3JjL2xpYi9iYXJzYS1jYWxlbmRhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QixRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBMkIsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM3RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1D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V0FBVztZQUNYLHVCQUF1QjtZQUN2Qix3QkFBd0I7WUFDeEIsYUFBYTtZQUNiLFVBQVU7WUFDVixlQUFlOzs0RkFNVixtQkFBbUI7a0JBZi9CLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixlQUFlO3FCQUNsQjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLEtBQUssRUFBRSx1QkFBdUIsRUFBRSw4QkFBOEIsQ0FBQztvQkFDaEcsU0FBUyxFQUFFLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxHQUFHLEtBQUssQ0FBQztvQkFDckQsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsdUJBQXVCLEVBQUUsOEJBQThCLENBQUM7aUJBQ3BGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBOZ01vZHVsZSwgTk9fRVJST1JTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBGdW5kYW1lbnRhbE5neENvcmVNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHsgQ2FyZE1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jYXJkJztcbmltcG9ydCB7IFF1aWNrVmlld01vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9xdWljay12aWV3JztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcG9wb3Zlcic7XG5cbmltcG9ydCB7IEJhcnNhTm92aW5SYXlDb3JlTW9kdWxlLCBCYXNlTW9kdWxlLCBEeW5hbWljQ29tcG9uZW50U2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLWNvbnRhaW5lci9jYWxlbmRhci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItbGlzdC9jYWxlbmRhci1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhckxpc3RDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLWxpc3QtY29udGFpbmVyL2NhbGVuZGFyLWxpc3QtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhckxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci1saXN0LWl0ZW0vY2FsZW5kYXItbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhcldlZWtDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLXdlZWsvY2FsZW5kYXItd2Vlay5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb250aENvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItbW9udGgvY2FsZW5kYXItbW9udGguY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBNb250aERheXNDb21wb25lbnQgfSBmcm9tICcuL21vbnRoLWRheXMvbW9udGgtZGF5cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF5c0luV2Vla1BpcGUgfSBmcm9tICcuL2RheXMtaW4td2Vlay5waXBlJztcbmltcG9ydCB7IEV2ZW50RGF0ZVBpcGUgfSBmcm9tICcuL2V2ZW50LWRhdGUucGlwZSc7XG5pbXBvcnQgeyBFdmVudFRpbWVQaXBlIH0gZnJvbSAnLi9ldmVudC10aW1lLnBpcGUnO1xuaW1wb3J0IHsgRnJvbVRvVGltZVBpcGUgfSBmcm9tICcuL2Zyb20tdG8tdGltZS5waXBlJztcbmltcG9ydCB7IEVxdWFsRGF0ZVBpcGUgfSBmcm9tICcuL2VxdWFsLWRhdGUucGlwZSc7XG5pbXBvcnQgeyBDYWxlbmRhckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItaGVhZGVyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXZlbnRQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9ldmVudC1wcmV2aWV3L2V2ZW50LXByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IERheU51bWJlckJveENvbXBvbmVudCB9IGZyb20gJy4vZGF5LW51bWJlci1ib3gvZGF5LW51bWJlci1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IEV2ZW50QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9ldmVudC1idXR0b24vZXZlbnQtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXlFdmVudExpc3RDb21wb25lbnQgfSBmcm9tICcuL2RheS1ldmVudC1saXN0L2RheS1ldmVudC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS10aW1lLXBpY2tlci9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhclNlbGVjdGlvbkRheXNDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLXNlbGVjdGlvbi1kYXlzL2NhbGVuZGFyLXNlbGVjdGlvbi1kYXlzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdmVudEJ1dHRvbkVuZEFycm93Q29tcG9uZW50IH0gZnJvbSAnLi9ldmVudC1idXR0b24tZW5kLWFycm93L2V2ZW50LWJ1dHRvbi1lbmQtYXJyb3cuY29tcG9uZW50JztcbmltcG9ydCB7IEV2ZW50QnV0dG9uU3RhcnRBcnJvd0NvbXBvbmVudCB9IGZyb20gJy4vZXZlbnQtYnV0dG9uLXN0YXJ0LWFycm93L2V2ZW50LWJ1dHRvbi1zdGFydC1hcnJvdy5jb21wb25lbnQnO1xuXG5jb25zdCBjb21wb25lbnRzID0gW1xuICAgIENhbGVuZGFyQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIENhbGVuZGFyTGlzdENvbXBvbmVudCxcbiAgICBDYWxlbmRhckxpc3RDb250YWluZXJDb21wb25lbnQsXG4gICAgQ2FsZW5kYXJMaXN0SXRlbUNvbXBvbmVudCxcbiAgICBDYWxlbmRhcldlZWtDb21wb25lbnQsXG4gICAgQ2FsZW5kYXJNb250aENvbXBvbmVudCxcbiAgICBNb250aERheXNDb21wb25lbnQsXG4gICAgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQsXG4gICAgRXZlbnRQcmV2aWV3Q29tcG9uZW50LFxuICAgIERheU51bWJlckJveENvbXBvbmVudCxcbiAgICBFdmVudEJ1dHRvbkNvbXBvbmVudCxcbiAgICBEYXlFdmVudExpc3RDb21wb25lbnQsXG4gICAgRXZlbnRCdXR0b25FbmRBcnJvd0NvbXBvbmVudCxcbiAgICBFdmVudEJ1dHRvblN0YXJ0QXJyb3dDb21wb25lbnRcbl07XG5jb25zdCBwaXBlcyA9IFtEYXlzSW5XZWVrUGlwZSwgRXZlbnREYXRlUGlwZSwgRXZlbnRUaW1lUGlwZSwgRnJvbVRvVGltZVBpcGUsIEVxdWFsRGF0ZVBpcGVdO1xuQE5nTW9kdWxlKHtcbiAgICBzY2hlbWFzOiBbTk9fRVJST1JTX1NDSEVNQV0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBCYXJzYU5vdmluUmF5Q29yZU1vZHVsZSxcbiAgICAgICAgRnVuZGFtZW50YWxOZ3hDb3JlTW9kdWxlLFxuICAgICAgICBQb3BvdmVyTW9kdWxlLFxuICAgICAgICBDYXJkTW9kdWxlLFxuICAgICAgICBRdWlja1ZpZXdNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogWy4uLmNvbXBvbmVudHMsIC4uLnBpcGVzLCBEYXRlVGltZVBpY2tlckNvbXBvbmVudCwgQ2FsZW5kYXJTZWxlY3Rpb25EYXlzQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtUaXRsZUNhc2VQaXBlLCBDYWxlbmRhclNlcnZpY2UsIC4uLnBpcGVzXSxcbiAgICBleHBvcnRzOiBbLi4uY29tcG9uZW50cywgRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQsIENhbGVuZGFyU2VsZWN0aW9uRGF5c0NvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FDYWxlbmRhck1vZHVsZSBleHRlbmRzIEJhc2VNb2R1bGUge1xuICAgIHByb3RlY3RlZCBkeW5hbWljQ29tcG9uZW50cyA9IFsuLi5jb21wb25lbnRzXTtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGNtOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSwgcHJvdGVjdGVkIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XG4gICAgICAgIHN1cGVyKGRjbSwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCAnQmFyc2FDYWxlbmRhck1vZHVsZScpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, combineLatest, of } from 'rxjs';
|
|
3
|
-
import { map, switchMap, takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { ReportViewBaseComponent, DateService, LogService, getDateService } from 'barsa-novin-ray-core';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "barsa-novin-ray-core";
|
|
8
|
-
import * as i3 from "../services/calendar.service";
|
|
9
|
-
import * as i4 from "@angular/forms";
|
|
10
|
-
import * as i5 from "@fundamental-ngx/core/checkbox";
|
|
11
|
-
import * as i6 from "@fundamental-ngx/core/list";
|
|
12
|
-
import * as i7 from "../calendar-list-container/calendar-list-container.component";
|
|
13
|
-
import * as i8 from "../calendar-week/calendar-week.component";
|
|
14
|
-
import * as i9 from "../calendar-month/calendar-month.component";
|
|
15
|
-
import * as i10 from "../calendar-header/calendar-header.component";
|
|
16
|
-
import * as i11 from "../calendar-selection-days/calendar-selection-days.component";
|
|
17
|
-
export class CalendarContainerComponent extends ReportViewBaseComponent {
|
|
18
|
-
constructor(_titleCase, _bbbTranslate, _calendarService, _dateService, _el, _cdr, _renderer2, _findColumnByDbName, _ulvMainService, _portalService) {
|
|
19
|
-
super(_el, _cdr, _renderer2, _findColumnByDbName, _ulvMainService, _portalService);
|
|
20
|
-
this._titleCase = _titleCase;
|
|
21
|
-
this._bbbTranslate = _bbbTranslate;
|
|
22
|
-
this._calendarService = _calendarService;
|
|
23
|
-
this._dateService = _dateService;
|
|
24
|
-
this._el = _el;
|
|
25
|
-
this._cdr = _cdr;
|
|
26
|
-
this._renderer2 = _renderer2;
|
|
27
|
-
this._findColumnByDbName = _findColumnByDbName;
|
|
28
|
-
this._ulvMainService = _ulvMainService;
|
|
29
|
-
this._portalService = _portalService;
|
|
30
|
-
this.deleteTask = new EventEmitter();
|
|
31
|
-
this.editTask = new EventEmitter();
|
|
32
|
-
this.rangeSelect = new EventEmitter();
|
|
33
|
-
this.daySelect = new EventEmitter();
|
|
34
|
-
this.loadData = new EventEmitter();
|
|
35
|
-
this.todayIndex = -1;
|
|
36
|
-
this.eventMoDataList$ = new BehaviorSubject([]);
|
|
37
|
-
}
|
|
38
|
-
ngOnInit() {
|
|
39
|
-
this.calendarFields = this.contextSetting.View.CalendarFields;
|
|
40
|
-
if (this.viewSetting?.CalendarColorField) {
|
|
41
|
-
this.calendarFields.Color = this.viewSetting.CalendarColorField;
|
|
42
|
-
}
|
|
43
|
-
this.userCalendars = this.contextSetting.View.UserCalendars;
|
|
44
|
-
super.ngOnInit();
|
|
45
|
-
this.prepare();
|
|
46
|
-
this._setWidthAndHeight();
|
|
47
|
-
this.prepareMoDataList(this.moDataList);
|
|
48
|
-
this.selectedMonth$.pipe(takeUntil(this._onDestroy$)).subscribe((month) => {
|
|
49
|
-
this.loadData.emit({
|
|
50
|
-
start: month.days[0].date,
|
|
51
|
-
end: month.days[month.days.length - 1].date
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
// this.setTasks(this.calendars, this.moDataList, this.calendarFields);
|
|
55
|
-
}
|
|
56
|
-
ngOnChanges(changes) {
|
|
57
|
-
super.ngOnChanges(changes);
|
|
58
|
-
const { moDataList, deviceSize } = changes;
|
|
59
|
-
if (moDataList && !moDataList.firstChange) {
|
|
60
|
-
this.prepareMoDataList(changes.moDataList.currentValue);
|
|
61
|
-
this._cdr.detectChanges();
|
|
62
|
-
}
|
|
63
|
-
if (deviceSize && !deviceSize.firstChange) {
|
|
64
|
-
this._setWidthAndHeight();
|
|
65
|
-
this._cdr.detectChanges();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
onCalendarCheckChange(calendar) {
|
|
69
|
-
this._handleUserCalendarsChecked();
|
|
70
|
-
}
|
|
71
|
-
onDayClick(day) {
|
|
72
|
-
this._calendarService.setMode('day', day);
|
|
73
|
-
}
|
|
74
|
-
onShowTask() { }
|
|
75
|
-
onSlideChange(selected) {
|
|
76
|
-
this._calendarService.setSelected(selected);
|
|
77
|
-
}
|
|
78
|
-
onMonthCarouselLoaded({ object }) {
|
|
79
|
-
object.selectedPage = 1;
|
|
80
|
-
}
|
|
81
|
-
onToday() {
|
|
82
|
-
this._calendarService.gotoToday();
|
|
83
|
-
}
|
|
84
|
-
onModeChange(mode) {
|
|
85
|
-
this._calendarService.setMode(mode);
|
|
86
|
-
}
|
|
87
|
-
onRangeChange(e) {
|
|
88
|
-
this._calendarService.rangeSelect(e.startDay, e.endDay, e.monthInfo);
|
|
89
|
-
}
|
|
90
|
-
onPrevTap() {
|
|
91
|
-
// this.gotoPage(this.monthCarouselView.nativeElement.selectedPage - 1);
|
|
92
|
-
this._calendarService.loadPrevious();
|
|
93
|
-
}
|
|
94
|
-
onNextTap() {
|
|
95
|
-
this._calendarService.loadNext();
|
|
96
|
-
// this.gotoPage(this.monthCarouselView.nativeElement.selectedPage + 1);
|
|
97
|
-
}
|
|
98
|
-
onSelectedChange(day) {
|
|
99
|
-
this.selectedDay = { ...day };
|
|
100
|
-
}
|
|
101
|
-
onRangeSelect({ startDate, endDate }) {
|
|
102
|
-
const x = { [this.calendarFields.StartDate]: startDate, [this.calendarFields.EndDate]: endDate };
|
|
103
|
-
this.rangeSelect.emit(x);
|
|
104
|
-
}
|
|
105
|
-
prepareMoDataList(moDataList) {
|
|
106
|
-
this.eventMoDataList$.next(moDataList.map((event) => ({
|
|
107
|
-
...event,
|
|
108
|
-
id: event.Id, // because in core.js calendar selection adapter read id with lowercase
|
|
109
|
-
$StartDateInfo: this._dateService.getDateInfo(event[this.calendarFields.StartDate]),
|
|
110
|
-
$EndDateInfo: this._dateService.getDateInfo(event[this.calendarFields.EndDate])
|
|
111
|
-
})));
|
|
112
|
-
}
|
|
113
|
-
addTd(table, tr, event, colSpan) {
|
|
114
|
-
const colSpanCount = tr.length > 0 ? tr.map((c) => c.colSpan).reduce((a, b) => a + b) > 6 : 0;
|
|
115
|
-
if (colSpanCount) {
|
|
116
|
-
table.push(tr);
|
|
117
|
-
tr = [];
|
|
118
|
-
}
|
|
119
|
-
tr.push({ type: 'td', colSpan, event });
|
|
120
|
-
}
|
|
121
|
-
_handleUserCalendarsChecked() {
|
|
122
|
-
const userCalendars = this.userCalendars?.Data?.MoDataList;
|
|
123
|
-
if (!userCalendars?.length) {
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
const calendars = userCalendars.filter((c) => c.$IsChecked).map((c) => c.Id);
|
|
127
|
-
let moList = this.moDataList;
|
|
128
|
-
if (calendars.length > 0) {
|
|
129
|
-
moList = this.moDataList.filter((c) => c[this.calendarFields.Calendar] && calendars.indexOf(c[this.calendarFields.Calendar].Id) > -1);
|
|
130
|
-
}
|
|
131
|
-
this.prepareMoDataList(moList);
|
|
132
|
-
}
|
|
133
|
-
prepare() {
|
|
134
|
-
this.weekDaysMin = this._calendarService.weekDaysMin();
|
|
135
|
-
this.weekDays = this._calendarService.weekDays();
|
|
136
|
-
this.selectedMonth$ = this._calendarService.selected$;
|
|
137
|
-
this.days$ = this._calendarService.days$;
|
|
138
|
-
this.today = this._calendarService.today;
|
|
139
|
-
this.mode$ = this._calendarService.mode$;
|
|
140
|
-
this.monthWeeksCount$ = this.mode$.pipe(map((mode) => {
|
|
141
|
-
if (mode === 'month') {
|
|
142
|
-
return this._calendarService.selectedMonth.weeksCount;
|
|
143
|
-
}
|
|
144
|
-
return 0;
|
|
145
|
-
}));
|
|
146
|
-
this.modeTitle$ = combineLatest([this.days$, this.mode$]).pipe(takeUntil(this._onDestroy$), switchMap(([, mode]) => {
|
|
147
|
-
if (mode === 'customMonth') {
|
|
148
|
-
return of(`${this._calendarService.weeksCount} ${this._bbbTranslate.transform('Week')}`);
|
|
149
|
-
}
|
|
150
|
-
return of(this._bbbTranslate.transform(this._titleCase.transform(mode)));
|
|
151
|
-
}));
|
|
152
|
-
this.weekModeDays$ = this._calendarService.weekModeDays$;
|
|
153
|
-
this._calendarService.calendars$.pipe(takeUntil(this._onDestroy$)).subscribe((calendars) => {
|
|
154
|
-
const eventCalendars = [...calendars];
|
|
155
|
-
// eventCalendars = eventCalendars.splice(this.selectedIndex, 3);
|
|
156
|
-
this.calendars = eventCalendars;
|
|
157
|
-
// if (this.monthCarouselView) {
|
|
158
|
-
// this.monthCarouselView.nativeElement.selectedPage = 1;
|
|
159
|
-
// }
|
|
160
|
-
});
|
|
161
|
-
// .pipe(takeUntil(this._onDestroy$))
|
|
162
|
-
// .subscribe((todayIndex) => {
|
|
163
|
-
// this.selectedIndex = this.todayIndex = todayIndex;
|
|
164
|
-
// this.gotoPage(this.todayIndex);
|
|
165
|
-
// });
|
|
166
|
-
this.title$ = combineLatest([this.weekModeDays$, this.selectedMonth$, this.days$, this.mode$]).pipe(takeUntil(this._onDestroy$), switchMap(([weekModeDays, monthInfo, days, mode]) => {
|
|
167
|
-
let monthName = monthInfo.dateInfo.monthName;
|
|
168
|
-
const year = monthInfo.dateInfo.strYear;
|
|
169
|
-
if (mode !== 'month') {
|
|
170
|
-
let firstDayInfo;
|
|
171
|
-
let lastDayInfo;
|
|
172
|
-
const daysTemp = mode === 'customMonth' ? days : weekModeDays;
|
|
173
|
-
if (daysTemp.length > 0) {
|
|
174
|
-
firstDayInfo = daysTemp[0];
|
|
175
|
-
lastDayInfo = daysTemp[daysTemp.length - 1];
|
|
176
|
-
monthName = firstDayInfo.monthName;
|
|
177
|
-
if (firstDayInfo.month !== lastDayInfo.month) {
|
|
178
|
-
monthName = `${firstDayInfo.monthName} -
|
|
179
|
-
${lastDayInfo.monthName}`;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
return of(`${monthName} ${year}`);
|
|
184
|
-
}));
|
|
185
|
-
}
|
|
186
|
-
_setWidthAndHeight() {
|
|
187
|
-
// const divRef= this._el.nativeElement;
|
|
188
|
-
const divRef = this._divRef.nativeElement;
|
|
189
|
-
this.width = divRef.offsetWidth;
|
|
190
|
-
this.height = divRef.offsetHeight - 45;
|
|
191
|
-
}
|
|
192
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalendarContainerComponent, deps: [{ token: i1.TitleCasePipe }, { token: i2.BbbTranslatePipe }, { token: i3.CalendarService }, { token: i2.DateService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i2.FindColumnByDbNamePipe }, { token: i2.UlvMainService }, { token: i2.PortalService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
193
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CalendarContainerComponent, selector: "bc-calendar-container", inputs: { calendarFields: "calendarFields", userCalendars: "userCalendars", viewSetting: "viewSetting" }, outputs: { deleteTask: "deleteTask", editTask: "editTask", rangeSelect: "rangeSelect", daySelect: "daySelect", loadData: "loadData" }, providers: [
|
|
194
|
-
{
|
|
195
|
-
provide: DateService,
|
|
196
|
-
useFactory: getDateService,
|
|
197
|
-
deps: [LogService]
|
|
198
|
-
}
|
|
199
|
-
], viewQueries: [{ propertyName: "_divRef", first: true, predicate: ["divRef"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div style=\"display: flex; width: 100%; height: 100%; flex-direction: row\">\n @if (deviceSize !== 's' && deviceSize !== 'm') {\n <div style=\"width: 320px; height: 100%\">\n <bc-calendar-selection-days\n [inline]=\"true\"\n [monthInfo]=\"(selectedMonth$ | async)!!\"\n (rangeChange)=\"onRangeChange($event)\"\n ></bc-calendar-selection-days>\n <div style=\"height: 1px; background: #ccc\"></div>\n @if (userCalendars?.Data?.MoDataList?.length) {\n <div>\n <h4>\u062A\u0642\u0648\u06CC\u0645\u200C\u0647\u0627\u06CC\u200C\u0645\u0646</h4>\n @for (calendar of userCalendars.Data.MoDataList; track calendar) {\n <ul fd-list>\n <li fd-list-item style=\"padding: 0\" class=\"user-calendar\">\n <span\n [style.background]=\"calendar.Color ? calendar.Color : null\"\n style=\"width: 5px; height: 100%; position: absolute\"\n ></span>\n <fd-checkbox\n [(ngModel)]=\"calendar.$IsChecked\"\n (change)=\"onCalendarCheckChange(calendar)\"\n ></fd-checkbox>\n <span fd-list-title>{{ calendar.$Caption }}</span>\n </li>\n </ul>\n }\n </div>\n }\n </div>\n }\n <div style=\"flex: 1\" #divRef>\n <bc-calendar-header\n [monthInfo]=\"(selectedMonth$ | async)!!\"\n [weekModeDays]=\"(weekModeDays$ | async)!!\"\n [rtl]=\"rtl\"\n [deviceSize]=\"deviceSize\"\n [mode]=\"(mode$ | async)!!\"\n [modeTitle]=\"(modeTitle$ | async)!!\"\n [title]=\"(title$ | async)!!\"\n (modeChange)=\"onModeChange($event)\"\n (prevTap)=\"onPrevTap()\"\n (nextTap)=\"onNextTap()\"\n (today)=\"onToday()\"\n (rangeChange)=\"onRangeChange($event)\"\n >\n </bc-calendar-header>\n @switch (mode$ | async) { @case ('week') {\n <ng-container\n *ngTemplateOutlet=\"\n weekCalendar;\n context: {\n $implicit: selectedMonth$ | async,\n moDataList: eventMoDataList$ | async,\n width: width,\n height: height,\n rtl: rtl,\n showEvents: showEvents,\n weekModeDays: weekModeDays$ | async,\n today: today,\n deviceSize: deviceSize,\n calendarFields: calendarFields,\n access: access\n }\n \"\n ></ng-container>\n } @case ('day') {\n <ng-container\n *ngTemplateOutlet=\"\n weekCalendar;\n context: {\n $implicit: selectedMonth$ | async,\n moDataList: eventMoDataList$ | async,\n width: width,\n height: height,\n rtl: rtl,\n showEvents: showEvents,\n weekModeDays: weekModeDays$ | async,\n today: today,\n deviceSize: deviceSize,\n calendarFields: calendarFields,\n access: access\n }\n \"\n ></ng-container>\n } @case ('list') { } @default {\n <ng-container\n *ngTemplateOutlet=\"\n monthCalendar;\n context: {\n $implicit: days$ | async,\n moDataList: eventMoDataList$ | async,\n width: width,\n height: height,\n rtl: rtl,\n showEvents: showEvents,\n today: today,\n deviceSize: deviceSize,\n calendarFields: calendarFields,\n monthWeeksCount: monthWeeksCount$ | async,\n access: access\n }\n \"\n ></ng-container>\n } }\n </div>\n</div>\n<ng-template\n #monthCalendar\n let-days\n let-moDataList=\"moDataList\"\n let-width=\"width\"\n let-height=\"height\"\n let-calendarFields=\"calendarFields\"\n let-rtl=\"rtl\"\n let-today=\"today\"\n let-showEvents=\"showEvents\"\n let-deviceSize=\"deviceSize\"\n let-monthWeeksCount=\"monthWeeksCount\"\n let-access=\"access\"\n>\n <bc-calendar-month\n [style.width]=\"width\"\n [containerHeight]=\"parentHeight !== 0 ? parentHeight : height\"\n [containerWidth]=\"width\"\n [calendarFields]=\"calendarFields\"\n [moDataList]=\"moDataList\"\n [monthWeeksCount]=\"monthWeeksCount\"\n [rtl]=\"rtl\"\n [weekDays]=\"weekDays\"\n [weekDaysMin]=\"weekDaysMin\"\n [today]=\"today\"\n [showEvents]=\"showEvents\"\n [days]=\"days\"\n [canView]=\"access.View\"\n [canAdd]=\"access.Add\"\n [canEdit]=\"access.Edit\"\n [canDelete]=\"access.Delete\"\n [deviceSize]=\"deviceSize\"\n (dayClick)=\"onDayClick($event)\"\n (showEvent)=\"onShowTask()\"\n (deleteEvent)=\"deleteTask.emit($event)\"\n (editEvent)=\"editTask.emit($event)\"\n (daySelect)=\"daySelect.emit($event)\"\n ></bc-calendar-month>\n</ng-template>\n\n<ng-template #listCalendar>\n <bc-calendar-list-container\n [showEvents]=\"showEvents\"\n [selectedDay]=\"selectedDay\"\n [calendarFields]=\"calendarFields\"\n (showEventsTap)=\"showEvents = !showEvents\"\n ></bc-calendar-list-container>\n</ng-template>\n\n<ng-template\n #weekCalendar\n let-selectedMonth\n let-moDataList=\"moDataList\"\n let-width=\"width\"\n let-height=\"height\"\n let-calendarFields=\"calendarFields\"\n let-rtl=\"rtl\"\n let-today=\"today\"\n let-showEvents=\"showEvents\"\n let-deviceSize=\"deviceSize\"\n let-weekModeDays=\"weekModeDays\"\n let-access=\"access\"\n>\n <bc-calendar-week\n [style.width]=\"width\"\n [containerHeight]=\"parentHeight !== 0 ? parentHeight : height\"\n [containerWidth]=\"width\"\n [inDialog]=\"inDialog\"\n [calendarFields]=\"calendarFields\"\n [moDataList]=\"moDataList\"\n [rtl]=\"rtl\"\n [canAdd]=\"access.Add\"\n [canView]=\"access.View\"\n [canEdit]=\"access.Edit\"\n [canDelete]=\"access.Delete\"\n [weekDays]=\"weekDays\"\n [weekDaysMin]=\"weekDaysMin\"\n [today]=\"today\"\n [showEvents]=\"showEvents\"\n [days]=\"weekModeDays\"\n [deviceSize]=\"deviceSize\"\n (dayClick)=\"onDayClick($event)\"\n (showEvent)=\"onShowTask()\"\n (deleteEvent)=\"deleteTask.emit($event)\"\n (editEvent)=\"editTask.emit($event)\"\n (daySelect)=\"daySelect.emit($event)\"\n (rangeSelect)=\"onRangeSelect($event)\"\n ></bc-calendar-week>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep li.user-calendar .fd-list__form-item{padding:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i7.CalendarListContainerComponent, selector: "bc-calendar-list-container", inputs: ["view", "reportItemComponentName", "showEvents", "selectedDay", "calendarFields"], outputs: ["showEventsTap"] }, { kind: "component", type: i8.CalendarWeekComponent, selector: "bc-calendar-week", inputs: ["weekDays", "weekDaysMin", "today", "containerHeight", "calendarFields", "rtl", "inDialog", "deviceSize", "moDataList", "days", "canDelete", "canAdd", "canEdit", "canView"], outputs: ["editEvent", "deleteEvent", "showEvent", "rangeSelect", "daySelect", "dayClick"] }, { kind: "component", type: i9.CalendarMonthComponent, selector: "bc-calendar-month", inputs: ["monthWeeksCount", "weekDays", "weekDaysMin", "today", "containerHeight", "days", "calendarFields", "rtl", "deviceSize", "moDataList", "datePicker", "rangePicker", "canDelete", "canAdd", "canEdit", "canView", "selectedDate", "startSelectedDayIndex", "endSelectedDayIndex"], outputs: ["editEvent", "deleteEvent", "daySelect", "dayClick", "dayMouseMove", "dayMouseUp", "dayMouseDown", "showEvent"] }, { kind: "component", type: i10.CalendarHeaderComponent, selector: "bc-calendar-header", inputs: ["monthInfo", "weekModeDays", "hideMode", "modeTitle", "title", "deviceSize", "rtl", "mode"], outputs: ["prevTap", "nextTap", "modeChange", "rangeChange", "today"] }, { kind: "component", type: i11.CalendarSelectionDaysComponent, selector: "bc-calendar-selection-days", inputs: ["startSelectedDayIndex", "endSelectedDayIndex", "monthInfo", "inline"], outputs: ["rangeChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
200
|
-
}
|
|
201
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalendarContainerComponent, decorators: [{
|
|
202
|
-
type: Component,
|
|
203
|
-
args: [{ selector: 'bc-calendar-container', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
204
|
-
{
|
|
205
|
-
provide: DateService,
|
|
206
|
-
useFactory: getDateService,
|
|
207
|
-
deps: [LogService]
|
|
208
|
-
}
|
|
209
|
-
], template: "<div style=\"display: flex; width: 100%; height: 100%; flex-direction: row\">\n @if (deviceSize !== 's' && deviceSize !== 'm') {\n <div style=\"width: 320px; height: 100%\">\n <bc-calendar-selection-days\n [inline]=\"true\"\n [monthInfo]=\"(selectedMonth$ | async)!!\"\n (rangeChange)=\"onRangeChange($event)\"\n ></bc-calendar-selection-days>\n <div style=\"height: 1px; background: #ccc\"></div>\n @if (userCalendars?.Data?.MoDataList?.length) {\n <div>\n <h4>\u062A\u0642\u0648\u06CC\u0645\u200C\u0647\u0627\u06CC\u200C\u0645\u0646</h4>\n @for (calendar of userCalendars.Data.MoDataList; track calendar) {\n <ul fd-list>\n <li fd-list-item style=\"padding: 0\" class=\"user-calendar\">\n <span\n [style.background]=\"calendar.Color ? calendar.Color : null\"\n style=\"width: 5px; height: 100%; position: absolute\"\n ></span>\n <fd-checkbox\n [(ngModel)]=\"calendar.$IsChecked\"\n (change)=\"onCalendarCheckChange(calendar)\"\n ></fd-checkbox>\n <span fd-list-title>{{ calendar.$Caption }}</span>\n </li>\n </ul>\n }\n </div>\n }\n </div>\n }\n <div style=\"flex: 1\" #divRef>\n <bc-calendar-header\n [monthInfo]=\"(selectedMonth$ | async)!!\"\n [weekModeDays]=\"(weekModeDays$ | async)!!\"\n [rtl]=\"rtl\"\n [deviceSize]=\"deviceSize\"\n [mode]=\"(mode$ | async)!!\"\n [modeTitle]=\"(modeTitle$ | async)!!\"\n [title]=\"(title$ | async)!!\"\n (modeChange)=\"onModeChange($event)\"\n (prevTap)=\"onPrevTap()\"\n (nextTap)=\"onNextTap()\"\n (today)=\"onToday()\"\n (rangeChange)=\"onRangeChange($event)\"\n >\n </bc-calendar-header>\n @switch (mode$ | async) { @case ('week') {\n <ng-container\n *ngTemplateOutlet=\"\n weekCalendar;\n context: {\n $implicit: selectedMonth$ | async,\n moDataList: eventMoDataList$ | async,\n width: width,\n height: height,\n rtl: rtl,\n showEvents: showEvents,\n weekModeDays: weekModeDays$ | async,\n today: today,\n deviceSize: deviceSize,\n calendarFields: calendarFields,\n access: access\n }\n \"\n ></ng-container>\n } @case ('day') {\n <ng-container\n *ngTemplateOutlet=\"\n weekCalendar;\n context: {\n $implicit: selectedMonth$ | async,\n moDataList: eventMoDataList$ | async,\n width: width,\n height: height,\n rtl: rtl,\n showEvents: showEvents,\n weekModeDays: weekModeDays$ | async,\n today: today,\n deviceSize: deviceSize,\n calendarFields: calendarFields,\n access: access\n }\n \"\n ></ng-container>\n } @case ('list') { } @default {\n <ng-container\n *ngTemplateOutlet=\"\n monthCalendar;\n context: {\n $implicit: days$ | async,\n moDataList: eventMoDataList$ | async,\n width: width,\n height: height,\n rtl: rtl,\n showEvents: showEvents,\n today: today,\n deviceSize: deviceSize,\n calendarFields: calendarFields,\n monthWeeksCount: monthWeeksCount$ | async,\n access: access\n }\n \"\n ></ng-container>\n } }\n </div>\n</div>\n<ng-template\n #monthCalendar\n let-days\n let-moDataList=\"moDataList\"\n let-width=\"width\"\n let-height=\"height\"\n let-calendarFields=\"calendarFields\"\n let-rtl=\"rtl\"\n let-today=\"today\"\n let-showEvents=\"showEvents\"\n let-deviceSize=\"deviceSize\"\n let-monthWeeksCount=\"monthWeeksCount\"\n let-access=\"access\"\n>\n <bc-calendar-month\n [style.width]=\"width\"\n [containerHeight]=\"parentHeight !== 0 ? parentHeight : height\"\n [containerWidth]=\"width\"\n [calendarFields]=\"calendarFields\"\n [moDataList]=\"moDataList\"\n [monthWeeksCount]=\"monthWeeksCount\"\n [rtl]=\"rtl\"\n [weekDays]=\"weekDays\"\n [weekDaysMin]=\"weekDaysMin\"\n [today]=\"today\"\n [showEvents]=\"showEvents\"\n [days]=\"days\"\n [canView]=\"access.View\"\n [canAdd]=\"access.Add\"\n [canEdit]=\"access.Edit\"\n [canDelete]=\"access.Delete\"\n [deviceSize]=\"deviceSize\"\n (dayClick)=\"onDayClick($event)\"\n (showEvent)=\"onShowTask()\"\n (deleteEvent)=\"deleteTask.emit($event)\"\n (editEvent)=\"editTask.emit($event)\"\n (daySelect)=\"daySelect.emit($event)\"\n ></bc-calendar-month>\n</ng-template>\n\n<ng-template #listCalendar>\n <bc-calendar-list-container\n [showEvents]=\"showEvents\"\n [selectedDay]=\"selectedDay\"\n [calendarFields]=\"calendarFields\"\n (showEventsTap)=\"showEvents = !showEvents\"\n ></bc-calendar-list-container>\n</ng-template>\n\n<ng-template\n #weekCalendar\n let-selectedMonth\n let-moDataList=\"moDataList\"\n let-width=\"width\"\n let-height=\"height\"\n let-calendarFields=\"calendarFields\"\n let-rtl=\"rtl\"\n let-today=\"today\"\n let-showEvents=\"showEvents\"\n let-deviceSize=\"deviceSize\"\n let-weekModeDays=\"weekModeDays\"\n let-access=\"access\"\n>\n <bc-calendar-week\n [style.width]=\"width\"\n [containerHeight]=\"parentHeight !== 0 ? parentHeight : height\"\n [containerWidth]=\"width\"\n [inDialog]=\"inDialog\"\n [calendarFields]=\"calendarFields\"\n [moDataList]=\"moDataList\"\n [rtl]=\"rtl\"\n [canAdd]=\"access.Add\"\n [canView]=\"access.View\"\n [canEdit]=\"access.Edit\"\n [canDelete]=\"access.Delete\"\n [weekDays]=\"weekDays\"\n [weekDaysMin]=\"weekDaysMin\"\n [today]=\"today\"\n [showEvents]=\"showEvents\"\n [days]=\"weekModeDays\"\n [deviceSize]=\"deviceSize\"\n (dayClick)=\"onDayClick($event)\"\n (showEvent)=\"onShowTask()\"\n (deleteEvent)=\"deleteTask.emit($event)\"\n (editEvent)=\"editTask.emit($event)\"\n (daySelect)=\"daySelect.emit($event)\"\n (rangeSelect)=\"onRangeSelect($event)\"\n ></bc-calendar-week>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep li.user-calendar .fd-list__form-item{padding:.5rem}\n"] }]
|
|
210
|
-
}], ctorParameters: () => [{ type: i1.TitleCasePipe }, { type: i2.BbbTranslatePipe }, { type: i3.CalendarService }, { type: i2.DateService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i2.FindColumnByDbNamePipe }, { type: i2.UlvMainService }, { type: i2.PortalService }], propDecorators: { _divRef: [{
|
|
211
|
-
type: ViewChild,
|
|
212
|
-
args: ['divRef', { static: true }]
|
|
213
|
-
}], calendarFields: [{
|
|
214
|
-
type: Input
|
|
215
|
-
}], userCalendars: [{
|
|
216
|
-
type: Input
|
|
217
|
-
}], viewSetting: [{
|
|
218
|
-
type: Input
|
|
219
|
-
}], deleteTask: [{
|
|
220
|
-
type: Output
|
|
221
|
-
}], editTask: [{
|
|
222
|
-
type: Output
|
|
223
|
-
}], rangeSelect: [{
|
|
224
|
-
type: Output
|
|
225
|
-
}], daySelect: [{
|
|
226
|
-
type: Output
|
|
227
|
-
}], loadData: [{
|
|
228
|
-
type: Output
|
|
229
|
-
}] } });
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWNhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXItY29udGFpbmVyL2NhbGVuZGFyLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1jYWxlbmRhci9zcmMvbGliL2NhbGVuZGFyLWNvbnRhaW5lci9jYWxlbmRhci1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRCxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFDWCxVQUFVLEVBQ1YsY0FBYyxFQU9qQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBaUI5QixNQUFNLE9BQU8sMEJBQ1QsU0FBUSx1QkFBZ0Q7SUFpQ3hELFlBQ1ksVUFBeUIsRUFDekIsYUFBK0IsRUFDL0IsZ0JBQWlDLEVBQ2pDLFlBQXlCLEVBQ3ZCLEdBQWUsRUFDZixJQUF1QixFQUN2QixVQUFxQixFQUNyQixtQkFBMkMsRUFDM0MsZUFBK0IsRUFDL0IsY0FBNkI7UUFFdkMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQVgzRSxlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQ3pCLGtCQUFhLEdBQWIs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QUFDO3lCQUNyQjtxQkFDSjt3VkFNc0MsT0FBTztzQkFBN0MsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUM1QixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZyxcbiAgICBSZXBvcnRWaWV3QmFzZUNvbXBvbmVudCxcbiAgICBEYXRlU2VydmljZSxcbiAgICBMb2dTZXJ2aWNlLFxuICAgIGdldERhdGVTZXJ2aWNlLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgQ2FsZW5kYXJNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIEJiYlRyYW5zbGF0ZVBpcGUsXG4gICAgRmluZENvbHVtbkJ5RGJOYW1lUGlwZSxcbiAgICBVbHZNYWluU2VydmljZSxcbiAgICBQb3J0YWxTZXJ2aWNlXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IENhbGVuZGFyTW9kZSwgQ2FsZW5kYXJNb250aEluZm8sIERheSB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBDYWxlbmRhclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jYWxlbmRhci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYy1jYWxlbmRhci1jb250YWluZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBEYXRlU2VydmljZSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGdldERhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgZGVwczogW0xvZ1NlcnZpY2VdXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29udGFpbmVyQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBSZXBvcnRWaWV3QmFzZUNvbXBvbmVudDxVaVJlcG9ydFZpZXdCYXNlU2V0dGluZz5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzXG57XG4gICAgQFZpZXdDaGlsZCgnZGl2UmVmJywgeyBzdGF0aWM6IHRydWUgfSkgX2RpdlJlZjogRWxlbWVudFJlZjtcbiAgICBASW5wdXQoKSBjYWxlbmRhckZpZWxkcztcbiAgICBASW5wdXQoKSB1c2VyQ2FsZW5kYXJzO1xuICAgIEBJbnB1dCgpIHZpZXdTZXR0aW5nOiBVaUNhbGVuZGFyU2V0dGluZztcbiAgICBAT3V0cHV0KCkgZGVsZXRlVGFzayA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgZWRpdFRhc2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XG4gICAgQE91dHB1dCgpIHJhbmdlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IFtrZXk6IHN0cmluZ106IERhdGUgfT4oKTtcbiAgICBAT3V0cHV0KCkgZGF5U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICAgIEBPdXRwdXQoKSBsb2FkRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBzdGFydDogRGF0ZTsgZW5kOiBhbnkgfT4oKTtcbiAgICBzZWxlY3RlZERheTogRGF5O1xuICAgIHRvZGF5SW5kZXggPSAtMTtcbiAgICBzZWxlY3RlZEluZGV4OiBhbnk7XG4gICAgY2FsZW5kYXJzOiBDYWxlbmRhck1vbnRoSW5mb1tdO1xuICAgIHNob3dFdmVudHM6IGJvb2xlYW47XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbiAgICBzZWxlY3RlZE1vbnRoJDogT2JzZXJ2YWJsZTxDYWxlbmRhck1vbnRoSW5mbz47XG4gICAgdG9kYXk6IERhdGU7XG4gICAgd2Vla0RheXNNaW46IHN0cmluZ1tdO1xuICAgIHdlZWtEYXlzOiBzdHJpbmdbXTtcbiAgICBtb2RlJDogT2JzZXJ2YWJsZTxDYWxlbmRhck1vZGU+O1xuICAgIHNlbGVjdGVkV2VlayQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgICB3ZWVrTW9kZURheXMkOiBPYnNlcnZhYmxlPERheVtdPjtcbiAgICBkYXlzJDogT2JzZXJ2YWJsZTxEYXlbXT47XG4gICAgd2Vla3NDb3VudDogbnVtYmVyO1xuICAgIGZpcnN0V2Vla0luZGV4OiBudW1iZXI7XG4gICAgbW9udGhXZWVrc0NvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAgIG1vZGVUaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICB0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBldmVudE1vRGF0YUxpc3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNZXRhb2JqZWN0RGF0YU1vZGVsW10+KFtdKTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfdGl0bGVDYXNlOiBUaXRsZUNhc2VQaXBlLFxuICAgICAgICBwcml2YXRlIF9iYmJUcmFuc2xhdGU6IEJiYlRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIHByaXZhdGUgX2NhbGVuZGFyU2VydmljZTogQ2FsZW5kYXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9kYXRlU2VydmljZTogRGF0ZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJvdGVjdGVkIF9maW5kQ29sdW1uQnlEYk5hbWU6IEZpbmRDb2x1bW5CeURiTmFtZVBpcGUsXG4gICAgICAgIHByb3RlY3RlZCBfdWx2TWFpblNlcnZpY2U6IFVsdk1haW5TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoX2VsLCBfY2RyLCBfcmVuZGVyZXIyLCBfZmluZENvbHVtbkJ5RGJOYW1lLCBfdWx2TWFpblNlcnZpY2UsIF9wb3J0YWxTZXJ2aWNlKTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJGaWVsZHMgPSB0aGlzLmNvbnRleHRTZXR0aW5nLlZpZXcuQ2FsZW5kYXJGaWVsZHM7XG4gICAgICAgIGlmICh0aGlzLnZpZXdTZXR0aW5nPy5DYWxlbmRhckNvbG9yRmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJGaWVsZHMuQ29sb3IgPSB0aGlzLnZpZXdTZXR0aW5nLkNhbGVuZGFyQ29sb3JGaWVsZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVzZXJDYWxlbmRhcnMgPSB0aGlzLmNvbnRleHRTZXR0aW5nLlZpZXcuVXNlckNhbGVuZGFycztcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5wcmVwYXJlKCk7XG4gICAgICAgIHRoaXMuX3NldFdpZHRoQW5kSGVpZ2h0KCk7XG4gICAgICAgIHRoaXMucHJlcGFyZU1vRGF0YUxpc3QodGhpcy5tb0RhdGFMaXN0KTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChtb250aDogQ2FsZW5kYXJNb250aEluZm8pID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZERhdGEuZW1pdCh7XG4gICAgICAgICAgICAgICAgc3RhcnQ6IG1vbnRoLmRheXNbMF0uZGF0ZSxcbiAgICAgICAgICAgICAgICBlbmQ6IG1vbnRoLmRheXNbbW9udGguZGF5cy5sZW5ndGggLSAxXS5kYXRlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gdGhpcy5zZXRUYXNrcyh0aGlzLmNhbGVuZGFycywgdGhpcy5tb0RhdGFMaXN0LCB0aGlzLmNhbGVuZGFyRmllbGRzKTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgeyBtb0RhdGFMaXN0LCBkZXZpY2VTaXplIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAobW9EYXRhTGlzdCAmJiAhbW9EYXRhTGlzdC5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5wcmVwYXJlTW9EYXRhTGlzdChjaGFuZ2VzLm1vRGF0YUxpc3QuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRldmljZVNpemUgJiYgIWRldmljZVNpemUuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFdpZHRoQW5kSGVpZ2h0KCk7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uQ2FsZW5kYXJDaGVja0NoYW5nZShjYWxlbmRhcjogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9oYW5kbGVVc2VyQ2FsZW5kYXJzQ2hlY2tlZCgpO1xuICAgIH1cbiAgICBvbkRheUNsaWNrKGRheTogRGF5KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5zZXRNb2RlKCdkYXknLCBkYXkpO1xuICAgIH1cbiAgICBvblNob3dUYXNrKCk6IHZvaWQge31cbiAgICBvblNsaWRlQ2hhbmdlKHNlbGVjdGVkOiBDYWxlbmRhck1vbnRoSW5mbyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2Uuc2V0U2VsZWN0ZWQoc2VsZWN0ZWQpO1xuICAgIH1cbiAgICBvbk1vbnRoQ2Fyb3VzZWxMb2FkZWQoeyBvYmplY3QgfSk6IHZvaWQge1xuICAgICAgICBvYmplY3Quc2VsZWN0ZWRQYWdlID0gMTtcbiAgICB9XG5cbiAgICBvblRvZGF5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2UuZ290b1RvZGF5KCk7XG4gICAgfVxuICAgIG9uTW9kZUNoYW5nZShtb2RlOiBDYWxlbmRhck1vZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnNldE1vZGUobW9kZSk7XG4gICAgfVxuICAgIG9uUmFuZ2VDaGFuZ2UoZTogeyBzdGFydERheTogRGF5OyBlbmREYXk6IERheTsgbW9udGhJbmZvOiBDYWxlbmRhck1vbnRoSW5mbyB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5yYW5nZVNlbGVjdChlLnN0YXJ0RGF5LCBlLmVuZERheSwgZS5tb250aEluZm8pO1xuICAgIH1cbiAgICBvblByZXZUYXAoKTogdm9pZCB7XG4gICAgICAgIC8vICAgdGhpcy5nb3RvUGFnZSh0aGlzLm1vbnRoQ2Fyb3VzZWxWaWV3Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0ZWRQYWdlIC0gMSk7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5sb2FkUHJldmlvdXMoKTtcbiAgICB9XG5cbiAgICBvbk5leHRUYXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5sb2FkTmV4dCgpO1xuICAgICAgICAvLyB0aGlzLmdvdG9QYWdlKHRoaXMubW9udGhDYXJvdXNlbFZpZXcubmF0aXZlRWxlbWVudC5zZWxlY3RlZFBhZ2UgKyAxKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdGVkQ2hhbmdlKGRheTogRGF5KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXkgPSB7IC4uLmRheSB9O1xuICAgIH1cbiAgICBvblJhbmdlU2VsZWN0KHsgc3RhcnREYXRlLCBlbmREYXRlIH0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeCA9IHsgW3RoaXMuY2FsZW5kYXJGaWVsZHMuU3RhcnREYXRlXTogc3RhcnREYXRlLCBbdGhpcy5jYWxlbmRhckZpZWxkcy5FbmREYXRlXTogZW5kRGF0ZSB9O1xuICAgICAgICB0aGlzLnJhbmdlU2VsZWN0LmVtaXQoeCk7XG4gICAgfVxuXG4gICAgcHJlcGFyZU1vRGF0YUxpc3QobW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXZlbnRNb0RhdGFMaXN0JC5uZXh0KFxuICAgICAgICAgICAgbW9EYXRhTGlzdC5tYXAoKGV2ZW50KSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLmV2ZW50LFxuICAgICAgICAgICAgICAgIGlkOiBldmVudC5JZCwgLy8gYmVjYXVzZSBpbiBjb3JlLmpzIGNhbGVuZGFyIHNlbGVjdGlvbiBhZGFwdGVyIHJlYWQgaWQgd2l0aCBsb3dlcmNhc2VcbiAgICAgICAgICAgICAgICAkU3RhcnREYXRlSW5mbzogdGhpcy5fZGF0ZVNlcnZpY2UuZ2V0RGF0ZUluZm8oZXZlbnRbdGhpcy5jYWxlbmRhckZpZWxkcy5TdGFydERhdGVdKSxcbiAgICAgICAgICAgICAgICAkRW5kRGF0ZUluZm86IHRoaXMuX2RhdGVTZXJ2aWNlLmdldERhdGVJbmZvKGV2ZW50W3RoaXMuY2FsZW5kYXJGaWVsZHMuRW5kRGF0ZV0pXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBhZGRUZCh0YWJsZTogYW55W10sIHRyOiBhbnlbXSwgZXZlbnQ6IENhbGVuZGFyTWV0YW9iamVjdERhdGFNb2RlbCwgY29sU3BhbjogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbFNwYW5Db3VudCA9IHRyLmxlbmd0aCA+IDAgPyB0ci5tYXAoKGMpID0+IGMuY29sU3BhbikucmVkdWNlKChhLCBiKSA9PiBhICsgYikgPiA2IDogMDtcbiAgICAgICAgaWYgKGNvbFNwYW5Db3VudCkge1xuICAgICAgICAgICAgdGFibGUucHVzaCh0cik7XG4gICAgICAgICAgICB0ciA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRyLnB1c2goeyB0eXBlOiAndGQnLCBjb2xTcGFuLCBldmVudCB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaGFuZGxlVXNlckNhbGVuZGFyc0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVzZXJDYWxlbmRhcnMgPSB0aGlzLnVzZXJDYWxlbmRhcnM/LkRhdGE/Lk1vRGF0YUxpc3Q7XG4gICAgICAgIGlmICghdXNlckNhbGVuZGFycz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FsZW5kYXJzID0gdXNlckNhbGVuZGFycy5maWx0ZXIoKGMpID0+IGMuJElzQ2hlY2tlZCkubWFwKChjKSA9PiBjLklkKTtcbiAgICAgICAgbGV0IG1vTGlzdCA9IHRoaXMubW9EYXRhTGlzdDtcblxuICAgICAgICBpZiAoY2FsZW5kYXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIG1vTGlzdCA9IHRoaXMubW9EYXRhTGlzdC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGMpID0+IGNbdGhpcy5jYWxlbmRhckZpZWxkcy5DYWxlbmRhcl0gJiYgY2FsZW5kYXJzLmluZGV4T2YoY1t0aGlzLmNhbGVuZGFyRmllbGRzLkNhbGVuZGFyXS5JZCkgPiAtMVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXBhcmVNb0RhdGFMaXN0KG1vTGlzdCk7XG4gICAgfVxuICAgIHByaXZhdGUgcHJlcGFyZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53ZWVrRGF5c01pbiA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS53ZWVrRGF5c01pbigpO1xuICAgICAgICB0aGlzLndlZWtEYXlzID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLndlZWtEYXlzKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aCQgPSB0aGlzLl9jYWxlbmRhclNlcnZpY2Uuc2VsZWN0ZWQkO1xuICAgICAgICB0aGlzLmRheXMkID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmRheXMkO1xuICAgICAgICB0aGlzLnRvZGF5ID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnRvZGF5O1xuICAgICAgICB0aGlzLm1vZGUkID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLm1vZGUkO1xuXG4gICAgICAgIHRoaXMubW9udGhXZWVrc0NvdW50JCA9IHRoaXMubW9kZSQucGlwZShcbiAgICAgICAgICAgIG1hcCgobW9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChtb2RlID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9jYWxlbmRhclNlcnZpY2Uuc2VsZWN0ZWRNb250aC53ZWVrc0NvdW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubW9kZVRpdGxlJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZGF5cyQsIHRoaXMubW9kZSRdKS5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChbLCBtb2RlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChtb2RlID09PSAnY3VzdG9tTW9udGgnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihgJHt0aGlzLl9jYWxlbmRhclNlcnZpY2Uud2Vla3NDb3VudH0gICR7dGhpcy5fYmJiVHJhbnNsYXRlLnRyYW5zZm9ybSgnV2VlaycpfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fYmJiVHJhbnNsYXRlLnRyYW5zZm9ybSh0aGlzLl90aXRsZUNhc2UudHJhbnNmb3JtKG1vZGUpKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMud2Vla01vZGVEYXlzJCA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS53ZWVrTW9kZURheXMkO1xuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2UuY2FsZW5kYXJzJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChjYWxlbmRhcnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50Q2FsZW5kYXJzID0gWy4uLmNhbGVuZGFyc107XG4gICAgICAgICAgICAvLyBldmVudENhbGVuZGFycyA9IGV2ZW50Q2FsZW5kYXJzLnNwbGljZSh0aGlzLnNlbGVjdGVkSW5kZXgsIDMpO1xuICAgICAgICAgICAgdGhpcy5jYWxlbmRhcnMgPSBldmVudENhbGVuZGFycztcbiAgICAgICAgICAgIC8vIGlmICh0aGlzLm1vbnRoQ2Fyb3VzZWxWaWV3KSB7XG4gICAgICAgICAgICAvLyAgIHRoaXMubW9udGhDYXJvdXNlbFZpZXcubmF0aXZlRWxlbWVudC5zZWxlY3RlZFBhZ2UgPSAxO1xuICAgICAgICAgICAgLy8gfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgIC8vICAgLnN1YnNjcmliZSgodG9kYXlJbmRleCkgPT4ge1xuICAgICAgICAvLyAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy50b2RheUluZGV4ID0gdG9kYXlJbmRleDtcbiAgICAgICAgLy8gICAgIHRoaXMuZ290b1BhZ2UodGhpcy50b2RheUluZGV4KTtcbiAgICAgICAgLy8gICB9KTtcbiAgICAgICAgdGhpcy50aXRsZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLndlZWtNb2RlRGF5cyQsIHRoaXMuc2VsZWN0ZWRNb250aCQsIHRoaXMuZGF5cyQsIHRoaXMubW9kZSRdKS5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChbd2Vla01vZGVEYXlzLCBtb250aEluZm8sIGRheXMsIG1vZGVdKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IG1vbnRoTmFtZSA9IG1vbnRoSW5mby5kYXRlSW5mby5tb250aE5hbWU7XG4gICAgICAgICAgICAgICAgY29uc3QgeWVhciA9IG1vbnRoSW5mby5kYXRlSW5mby5zdHJZZWFyO1xuXG4gICAgICAgICAgICAgICAgaWYgKG1vZGUgIT09ICdtb250aCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZpcnN0RGF5SW5mbzogRGF5O1xuICAgICAgICAgICAgICAgICAgICBsZXQgbGFzdERheUluZm86IERheTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF5c1RlbXAgPSBtb2RlID09PSAnY3VzdG9tTW9udGgnID8gZGF5cyA6IHdlZWtNb2RlRGF5cztcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRheXNUZW1wLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0RGF5SW5mbyA9IGRheXNUZW1wWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdERheUluZm8gPSBkYXlzVGVtcFtkYXlzVGVtcC5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoTmFtZSA9IGZpcnN0RGF5SW5mby5tb250aE5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3REYXlJbmZvLm1vbnRoICE9PSBsYXN0RGF5SW5mby5tb250aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoTmFtZSA9IGAke2ZpcnN0RGF5SW5mby5tb250aE5hbWV9IC1cbiAgICAgICAgICAgICAgJHtsYXN0RGF5SW5mby5tb250aE5hbWV9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoYCR7bW9udGhOYW1lfSAgJHt5ZWFyfWApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRXaWR0aEFuZEhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgLy8gY29uc3QgZGl2UmVmPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBkaXZSZWYgPSB0aGlzLl9kaXZSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgICB0aGlzLndpZHRoID0gZGl2UmVmLm9mZnNldFdpZHRoO1xuICAgICAgICB0aGlzLmhlaWdodCA9IGRpdlJlZi5vZmZzZXRIZWlnaHQgLSA0NTtcbiAgICB9XG59XG5pbnRlcmZhY2UgVWlDYWxlbmRhclNldHRpbmcgZXh0ZW5kcyBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZyB7XG4gICAgQ2FsZW5kYXJDb2xvckZpZWxkOiBzdHJpbmc7XG59XG4iLCI8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgZmxleC1kaXJlY3Rpb246IHJvd1wiPlxuICAgIEBpZiAoZGV2aWNlU2l6ZSAhPT0gJ3MnICYmIGRldmljZVNpemUgIT09ICdtJykge1xuICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMzIwcHg7IGhlaWdodDogMTAwJVwiPlxuICAgICAgICA8YmMtY2FsZW5kYXItc2VsZWN0aW9uLWRheXNcbiAgICAgICAgICAgIFtpbmxpbmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbbW9udGhJbmZvXT1cIihzZWxlY3RlZE1vbnRoJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgICAgIChyYW5nZUNoYW5nZSk9XCJvblJhbmdlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9iYy1jYWxlbmRhci1zZWxlY3Rpb24tZGF5cz5cbiAgICAgICAgPGRpdiBzdHlsZT1cImhlaWdodDogMXB4OyBiYWNrZ3JvdW5kOiAjY2NjXCI+PC9kaXY+XG4gICAgICAgIEBpZiAodXNlckNhbGVuZGFycz8uRGF0YT8uTW9EYXRhTGlzdD8ubGVuZ3RoKSB7XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aDQ+2KrZgtmI24zZheKAjNmH2KfbjOKAjNmF2YY8L2g0PlxuICAgICAgICAgICAgQGZvciAoY2FsZW5kYXIgb2YgdXNlckNhbGVuZGFycy5EYXRhLk1vRGF0YUxpc3Q7IHRyYWNrIGNhbGVuZGFyKSB7XG4gICAgICAgICAgICA8dWwgZmQtbGlzdD5cbiAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtIHN0eWxlPVwicGFkZGluZzogMFwiIGNsYXNzPVwidXNlci1jYWxlbmRhclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiY2FsZW5kYXIuQ29sb3IgPyBjYWxlbmRhci5Db2xvciA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogNXB4OyBoZWlnaHQ6IDEwMCU7IHBvc2l0aW9uOiBhYnNvbHV0ZVwiXG4gICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjYWxlbmRhci4kSXNDaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25DYWxlbmRhckNoZWNrQ2hhbmdlKGNhbGVuZGFyKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7IGNhbGVuZGFyLiRDYXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2IHN0eWxlPVwiZmxleDogMVwiICNkaXZSZWY+XG4gICAgICAgIDxiYy1jYWxlbmRhci1oZWFkZXJcbiAgICAgICAgICAgIFttb250aEluZm9dPVwiKHNlbGVjdGVkTW9udGgkIHwgYXN5bmMpISFcIlxuICAgICAgICAgICAgW3dlZWtNb2RlRGF5c109XCIod2Vla01vZGVEYXlzJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgW21vZGVdPVwiKG1vZGUkIHwgYXN5bmMpISFcIlxuICAgICAgICAgICAgW21vZGVUaXRsZV09XCIobW9kZVRpdGxlJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCIodGl0bGUkIHwgYXN5bmMpISFcIlxuICAgICAgICAgICAgKG1vZGVDaGFuZ2UpPVwib25Nb2RlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgKHByZXZUYXApPVwib25QcmV2VGFwKClcIlxuICAgICAgICAgICAgKG5leHRUYXApPVwib25OZXh0VGFwKClcIlxuICAgICAgICAgICAgKHRvZGF5KT1cIm9uVG9kYXkoKVwiXG4gICAgICAgICAgICAocmFuZ2VDaGFuZ2UpPVwib25SYW5nZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2JjLWNhbGVuZGFyLWhlYWRlcj5cbiAgICAgICAgQHN3aXRjaCAobW9kZSQgfCBhc3luYykgeyBAY2FzZSAoJ3dlZWsnKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgd2Vla0NhbGVuZGFyO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZWxlY3RlZE1vbnRoJCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0OiBldmVudE1vRGF0YUxpc3QkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIHJ0bDogcnRsLFxuICAgICAgICAgICAgICAgICAgICBzaG93RXZlbnRzOiBzaG93RXZlbnRzLFxuICAgICAgICAgICAgICAgICAgICB3ZWVrTW9kZURheXM6IHdlZWtNb2RlRGF5cyQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgdG9kYXk6IHRvZGF5LFxuICAgICAgICAgICAgICAgICAgICBkZXZpY2VTaXplOiBkZXZpY2VTaXplLFxuICAgICAgICAgICAgICAgICAgICBjYWxlbmRhckZpZWxkczogY2FsZW5kYXJGaWVsZHMsXG4gICAgICAgICAgICAgICAgICAgIGFjY2VzczogYWNjZXNzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9IEBjYXNlICgnZGF5Jykge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHdlZWtDYWxlbmRhcjtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2VsZWN0ZWRNb250aCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdDogZXZlbnRNb0RhdGFMaXN0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBydGw6IHJ0bCxcbiAgICAgICAgICAgICAgICAgICAgc2hvd0V2ZW50czogc2hvd0V2ZW50cyxcbiAgICAgICAgICAgICAgICAgICAgd2Vla01vZGVEYXlzOiB3ZWVrTW9kZURheXMkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgIHRvZGF5OiB0b2RheSxcbiAgICAgICAgICAgICAgICAgICAgZGV2aWNlU2l6ZTogZGV2aWNlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJGaWVsZHM6IGNhbGVuZGFyRmllbGRzLFxuICAgICAgICAgICAgICAgICAgICBhY2Nlc3M6IGFjY2Vzc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfSBAY2FzZSAoJ2xpc3QnKSB7IH0gQGRlZmF1bHQge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIG1vbnRoQ2FsZW5kYXI7XG4gICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGRheXMkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgIG1vRGF0YUxpc3Q6IGV2ZW50TW9EYXRhTGlzdCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgcnRsOiBydGwsXG4gICAgICAgICAgICAgICAgICAgIHNob3dFdmVudHM6IHNob3dFdmVudHMsXG4gICAgICAgICAgICAgICAgICAgIHRvZGF5OiB0b2RheSxcbiAgICAgICAgICAgICAgICAgICAgZGV2aWNlU2l6ZTogZGV2aWNlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJGaWVsZHM6IGNhbGVuZGFyRmllbGRzLFxuICAgICAgICAgICAgICAgICAgICBtb250aFdlZWtzQ291bnQ6IG1vbnRoV2Vla3NDb3VudCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzOiBhY2Nlc3NcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH0gfVxuICAgIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGVcbiAgICAjbW9udGhDYWxlbmRhclxuICAgIGxldC1kYXlzXG4gICAgbGV0LW1vRGF0YUxpc3Q9XCJtb0RhdGFMaXN0XCJcbiAgICBsZXQtd2lkdGg9XCJ3aWR0aFwiXG4gICAgbGV0LWhlaWdodD1cImhlaWdodFwiXG4gICAgbGV0LWNhbGVuZGFyRmllbGRzPVwiY2FsZW5kYXJGaWVsZHNcIlxuICAgIGxldC1ydGw9XCJydGxcIlxuICAgIGxldC10b2RheT1cInRvZGF5XCJcbiAgICBsZXQtc2hvd0V2ZW50cz1cInNob3dFdmVudHNcIlxuICAgIGxldC1kZXZpY2VTaXplPVwiZGV2aWNlU2l6ZVwiXG4gICAgbGV0LW1vbnRoV2Vla3NDb3VudD1cIm1vbnRoV2Vla3NDb3VudFwiXG4gICAgbGV0LWFjY2Vzcz1cImFjY2Vzc1wiXG4+XG4gICAgPGJjLWNhbGVuZGFyLW1vbnRoXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgICAgIFtjb250YWluZXJIZWlnaHRdPVwicGFyZW50SGVpZ2h0ICE9PSAwID8gcGFyZW50SGVpZ2h0IDogaGVpZ2h0XCJcbiAgICAgICAgW2NvbnRhaW5lcldpZHRoXT1cIndpZHRoXCJcbiAgICAgICAgW2NhbGVuZGFyRmllbGRzXT1cImNhbGVuZGFyRmllbGRzXCJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXG4gICAgICAgIFttb250aFdlZWtzQ291bnRdPVwibW9udGhXZWVrc0NvdW50XCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbd2Vla0RheXNdPVwid2Vla0RheXNcIlxuICAgICAgICBbd2Vla0RheXNNaW5dPVwid2Vla0RheXNNaW5cIlxuICAgICAgICBbdG9kYXldPVwidG9kYXlcIlxuICAgICAgICBbc2hvd0V2ZW50c109XCJzaG93RXZlbnRzXCJcbiAgICAgICAgW2RheXNdPVwiZGF5c1wiXG4gICAgICAgIFtjYW5WaWV3XT1cImFjY2Vzcy5WaWV3XCJcbiAgICAgICAgW2NhbkFkZF09XCJhY2Nlc3MuQWRkXCJcbiAgICAgICAgW2NhbkVkaXRdPVwiYWNjZXNzLkVkaXRcIlxuICAgICAgICBbY2FuRGVsZXRlXT1cImFjY2Vzcy5EZWxldGVcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgKGRheUNsaWNrKT1cIm9uRGF5Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChzaG93RXZlbnQpPVwib25TaG93VGFzaygpXCJcbiAgICAgICAgKGRlbGV0ZUV2ZW50KT1cImRlbGV0ZVRhc2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRFdmVudCk9XCJlZGl0VGFzay5lbWl0KCRldmVudClcIlxuICAgICAgICAoZGF5U2VsZWN0KT1cImRheVNlbGVjdC5lbWl0KCRldmVudClcIlxuICAgID48L2JjLWNhbGVuZGFyLW1vbnRoPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsaXN0Q2FsZW5kYXI+XG4gICAgPGJjLWNhbGVuZGFyLWxpc3QtY29udGFpbmVyXG4gICAgICAgIFtzaG93RXZlbnRzXT1cInNob3dFdmVudHNcIlxuICAgICAgICBbc2VsZWN0ZWREYXldPVwic2VsZWN0ZWREYXlcIlxuICAgICAgICBbY2FsZW5kYXJGaWVsZHNdPVwiY2FsZW5kYXJGaWVsZHNcIlxuICAgICAgICAoc2hvd0V2ZW50c1RhcCk9XCJzaG93RXZlbnRzID0gIXNob3dFdmVudHNcIlxuICAgID48L2JjLWNhbGVuZGFyLWxpc3QtY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICAgI3dlZWtDYWxlbmRhclxuICAgIGxldC1zZWxlY3RlZE1vbnRoXG4gICAgbGV0LW1vRGF0YUxpc3Q9XCJtb0RhdGFMaXN0XCJcbiAgICBsZXQtd2lkdGg9XCJ3aWR0aFwiXG4gICAgbGV0LWhlaWdodD1cImhlaWdodFwiXG4gICAgbGV0LWNhbGVuZGFyRmllbGRzPVwiY2FsZW5kYXJGaWVsZHNcIlxuICAgIGxldC1ydGw9XCJydGxcIlxuICAgIGxldC10b2RheT1cInRvZGF5XCJcbiAgICBsZXQtc2hvd0V2ZW50cz1cInNob3dFdmVudHNcIlxuICAgIGxldC1kZXZpY2VTaXplPVwiZGV2aWNlU2l6ZVwiXG4gICAgbGV0LXdlZWtNb2RlRGF5cz1cIndlZWtNb2RlRGF5c1wiXG4gICAgbGV0LWFjY2Vzcz1cImFjY2Vzc1wiXG4+XG4gICAgPGJjLWNhbGVuZGFyLXdlZWtcbiAgICAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoXCJcbiAgICAgICAgW2NvbnRhaW5lckhlaWdodF09XCJwYXJlbnRIZWlnaHQgIT09IDAgPyBwYXJlbnRIZWlnaHQgOiBoZWlnaHRcIlxuICAgICAgICBbY29udGFpbmVyV2lkdGhdPVwid2lkdGhcIlxuICAgICAgICBbaW5EaWFsb2ddPVwiaW5EaWFsb2dcIlxuICAgICAgICBbY2FsZW5kYXJGaWVsZHNdPVwiY2FsZW5kYXJGaWVsZHNcIlxuICAgICAgICBbbW9EYXRhTGlzdF09XCJtb0RhdGFMaXN0XCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbY2FuQWRkXT1cImFjY2Vzcy5BZGRcIlxuICAgICAgICBbY2FuVmlld109XCJhY2Nlc3MuVmlld1wiXG4gICAgICAgIFtjYW5FZGl0XT1cImFjY2Vzcy5FZGl0XCJcbiAgICAgICAgW2NhbkRlbGV0ZV09XCJhY2Nlc3MuRGVsZXRlXCJcbiAgICAgICAgW3dlZWtEYXlzXT1cIndlZWtEYXlzXCJcbiAgICAgICAgW3dlZWtEYXlzTWluXT1cIndlZWtEYXlzTWluXCJcbiAgICAgICAgW3RvZGF5XT1cInRvZGF5XCJcbiAgICAgICAgW3Nob3dFdmVudHNdPVwic2hvd0V2ZW50c1wiXG4gICAgICAgIFtkYXlzXT1cIndlZWtNb2RlRGF5c1wiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAoZGF5Q2xpY2spPVwib25EYXlDbGljaygkZXZlbnQpXCJcbiAgICAgICAgKHNob3dFdmVudCk9XCJvblNob3dUYXNrKClcIlxuICAgICAgICAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlVGFzay5lbWl0KCRldmVudClcIlxuICAgICAgICAoZWRpdEV2ZW50KT1cImVkaXRUYXNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChkYXlTZWxlY3QpPVwiZGF5U2VsZWN0LmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChyYW5nZVNlbGVjdCk9XCJvblJhbmdlU2VsZWN0KCRldmVudClcIlxuICAgID48L2JjLWNhbGVuZGFyLXdlZWs+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { BaseComponent } from 'barsa-novin-ray-core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "barsa-novin-ray-core";
|
|
5
|
-
import * as i2 from "@fundamental-ngx/core/button";
|
|
6
|
-
import * as i3 from "@fundamental-ngx/core/menu";
|
|
7
|
-
import * as i4 from "@fundamental-ngx/core/title";
|
|
8
|
-
import * as i5 from "@fundamental-ngx/core/split-button";
|
|
9
|
-
import * as i6 from "@fundamental-ngx/core/toolbar";
|
|
10
|
-
import * as i7 from "../calendar-selection-days/calendar-selection-days.component";
|
|
11
|
-
export class CalendarHeaderComponent extends BaseComponent {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
this.hideMode = false;
|
|
15
|
-
this.prevTap = new EventEmitter();
|
|
16
|
-
this.nextTap = new EventEmitter();
|
|
17
|
-
this.modeChange = new EventEmitter();
|
|
18
|
-
this.rangeChange = new EventEmitter();
|
|
19
|
-
this.today = new EventEmitter();
|
|
20
|
-
this.monthName = '';
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
*/
|
|
25
|
-
onModeChange(menu, mode) {
|
|
26
|
-
menu.close();
|
|
27
|
-
this.modeChange.emit(mode);
|
|
28
|
-
}
|
|
29
|
-
onRangeChange(range) {
|
|
30
|
-
this.rangeChange.emit(range);
|
|
31
|
-
}
|
|
32
|
-
onPrint() { }
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalendarHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CalendarHeaderComponent, selector: "bc-calendar-header", inputs: { monthInfo: "monthInfo", weekModeDays: "weekModeDays", hideMode: "hideMode", modeTitle: "modeTitle", title: "title", deviceSize: "deviceSize", rtl: "rtl", mode: "mode" }, outputs: { prevTap: "prevTap", nextTap: "nextTap", modeChange: "modeChange", rangeChange: "rangeChange", today: "today" }, usesInheritance: true, ngImport: i0, template: "<fd-toolbar [shouldOverflow]=\"true\" [fdType]=\"'transparent'\" [class.rtl]=\"rtl\">\n <button fd-button fd-toolbar-item [label]=\"'DateR_Today' | bbbTranslate\" (click)=\"today.emit()\"></button>\n <button\n fd-button\n fdType=\"transparent\"\n fd-toolbar-item\n [glyph]=\"rtl ? 'navigation-right-arrow' : 'navigation-left-arrow'\"\n (click)=\"prevTap.emit()\"\n ></button>\n <button\n fd-button\n fdType=\"transparent\"\n fd-toolbar-item\n [glyph]=\"rtl ? 'navigation-left-arrow' : 'navigation-right-arrow'\"\n (click)=\"nextTap.emit()\"\n ></button>\n <h3 fd-title fd-toolbar-item>{{ title }}</h3>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <!-- <button fd-button fd-toolbar-item glyph=\"print\" (click)=\"onPrint()\" fdType=\"transparent\"></button> -->\n @if (deviceSize === 's' || deviceSize === 'm') {\n <bc-calendar-selection-days\n fd-toolbar-item\n [monthInfo]=\"monthInfo\"\n (rangeChange)=\"onRangeChange($event)\"\n ></bc-calendar-selection-days>\n } @if (!hideMode) {\n <fd-split-button\n fd-toolbar-item\n [fixedWidth]=\"false\"\n [mainAction]=\"{\n mainActionTitle: modeTitle,\n keepMainAction: true\n }\"\n >\n <fd-menu #menu>\n <li fd-menu-item (click)=\"onModeChange(menu, 'day')\" bodyClick>\n <div fd-menu-interactive>\n <span fd-menu-title>{{ 'Day' | bbbTranslate }}</span>\n </div>\n </li>\n <li fd-menu-item (click)=\"onModeChange(menu, 'week')\" bodyClick>\n <div fd-menu-interactive>\n <span fd-menu-title>{{ 'Week' | bbbTranslate }} </span>\n </div>\n </li>\n <li fd-menu-item (click)=\"onModeChange(menu, 'month')\" bodyClick>\n <div fd-menu-interactive>\n <span fd-menu-title>{{ 'Month' | bbbTranslate }}</span>\n </div>\n </li>\n <!-- <li fd-menu-item (click)=\"onModeChange('year')\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ \"Year\" | bbbTranslate }}</span>\n </div>\n </li> -->\n </fd-menu>\n </fd-split-button>\n }\n</fd-toolbar>\n", styles: [":host{display:block;background-color:var(--sapList_Background, #fff)}:host ::ng-deep span.fd-toolbar__spacer{display:none}:host ::ng-deep fd-toolbar .fd-toolbar{border:none;border-left:1px solid var(--sapList_BorderColor, #e5e5e5)}:host ::ng-deep fd-toolbar.rtl .fd-toolbar{border-left:none;border-right:1px solid var(--sapList_BorderColor, #e5e5e5)}\n"], dependencies: [{ kind: "directive", type: i1.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i3.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i3.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i3.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i4.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i5.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i6.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i6.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i6.ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i7.CalendarSelectionDaysComponent, selector: "bc-calendar-selection-days", inputs: ["startSelectedDayIndex", "endSelectedDayIndex", "monthInfo", "inline"], outputs: ["rangeChange"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalendarHeaderComponent, decorators: [{
|
|
37
|
-
type: Component,
|
|
38
|
-
args: [{ selector: 'bc-calendar-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-toolbar [shouldOverflow]=\"true\" [fdType]=\"'transparent'\" [class.rtl]=\"rtl\">\n <button fd-button fd-toolbar-item [label]=\"'DateR_Today' | bbbTranslate\" (click)=\"today.emit()\"></button>\n <button\n fd-button\n fdType=\"transparent\"\n fd-toolbar-item\n [glyph]=\"rtl ? 'navigation-right-arrow' : 'navigation-left-arrow'\"\n (click)=\"prevTap.emit()\"\n ></button>\n <button\n fd-button\n fdType=\"transparent\"\n fd-toolbar-item\n [glyph]=\"rtl ? 'navigation-left-arrow' : 'navigation-right-arrow'\"\n (click)=\"nextTap.emit()\"\n ></button>\n <h3 fd-title fd-toolbar-item>{{ title }}</h3>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <!-- <button fd-button fd-toolbar-item glyph=\"print\" (click)=\"onPrint()\" fdType=\"transparent\"></button> -->\n @if (deviceSize === 's' || deviceSize === 'm') {\n <bc-calendar-selection-days\n fd-toolbar-item\n [monthInfo]=\"monthInfo\"\n (rangeChange)=\"onRangeChange($event)\"\n ></bc-calendar-selection-days>\n } @if (!hideMode) {\n <fd-split-button\n fd-toolbar-item\n [fixedWidth]=\"false\"\n [mainAction]=\"{\n mainActionTitle: modeTitle,\n keepMainAction: true\n }\"\n >\n <fd-menu #menu>\n <li fd-menu-item (click)=\"onModeChange(menu, 'day')\" bodyClick>\n <div fd-menu-interactive>\n <span fd-menu-title>{{ 'Day' | bbbTranslate }}</span>\n </div>\n </li>\n <li fd-menu-item (click)=\"onModeChange(menu, 'week')\" bodyClick>\n <div fd-menu-interactive>\n <span fd-menu-title>{{ 'Week' | bbbTranslate }} </span>\n </div>\n </li>\n <li fd-menu-item (click)=\"onModeChange(menu, 'month')\" bodyClick>\n <div fd-menu-interactive>\n <span fd-menu-title>{{ 'Month' | bbbTranslate }}</span>\n </div>\n </li>\n <!-- <li fd-menu-item (click)=\"onModeChange('year')\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ \"Year\" | bbbTranslate }}</span>\n </div>\n </li> -->\n </fd-menu>\n </fd-split-button>\n }\n</fd-toolbar>\n", styles: [":host{display:block;background-color:var(--sapList_Background, #fff)}:host ::ng-deep span.fd-toolbar__spacer{display:none}:host ::ng-deep fd-toolbar .fd-toolbar{border:none;border-left:1px solid var(--sapList_BorderColor, #e5e5e5)}:host ::ng-deep fd-toolbar.rtl .fd-toolbar{border-left:none;border-right:1px solid var(--sapList_BorderColor, #e5e5e5)}\n"] }]
|
|
39
|
-
}], propDecorators: { monthInfo: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}], weekModeDays: [{
|
|
42
|
-
type: Input
|
|
43
|
-
}], hideMode: [{
|
|
44
|
-
type: Input
|
|
45
|
-
}], modeTitle: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}], title: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}], deviceSize: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], rtl: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}], mode: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}], prevTap: [{
|
|
56
|
-
type: Output
|
|
57
|
-
}], nextTap: [{
|
|
58
|
-
type: Output
|
|
59
|
-
}], modeChange: [{
|
|
60
|
-
type: Output
|
|
61
|
-
}], rangeChange: [{
|
|
62
|
-
type: Output
|
|
63
|
-
}], today: [{
|
|
64
|
-
type: Output
|
|
65
|
-
}] } });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWNhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXItaGVhZGVyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1jYWxlbmRhci9zcmMvbGliL2NhbGVuZGFyLWhlYWRlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUsYUFBYSxFQUF5QixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7QUFPNUUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGFBQWE7SUFOMUQ7O1FBU2EsYUFBUSxHQUFHLEtBQUssQ0FBQztRQU1oQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFDOUMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFJcEMsQ0FBQztRQUNLLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXJDLGNBQVMsR0FBRyxFQUFFLENBQUM7S0FjbEI7SUFaRzs7T0FFRztJQUVILFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBa0I7UUFDakMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELGFBQWEsQ0FBQyxLQUFLO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELE9BQU8sS0FBVSxDQUFDOytHQWhDVCx1QkFBdUI7bUdBQXZCLHVCQUF1QixnWUNUcEMsaXlFQTJEQTs7NEZEbERhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENhbGVuZGFyTW9kZSwgQ2FsZW5kYXJNb250aEluZm8sIERheSB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JjLWNhbGVuZGFyLWhlYWRlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIENhbGVuZGFySGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSBtb250aEluZm86IENhbGVuZGFyTW9udGhJbmZvO1xyXG4gICAgQElucHV0KCkgd2Vla01vZGVEYXlzOiBEYXlbXTtcclxuICAgIEBJbnB1dCgpIGhpZGVNb2RlID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBtb2RlVGl0bGU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XHJcbiAgICBASW5wdXQoKSBydGw6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBtb2RlOiBDYWxlbmRhck1vZGU7XHJcbiAgICBAT3V0cHV0KCkgcHJldlRhcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBuZXh0VGFwID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIG1vZGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENhbGVuZGFyTW9kZT4oKTtcclxuICAgIEBPdXRwdXQoKSByYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgICAgIHN0YXJ0RGF5OiBEYXk7XHJcbiAgICAgICAgZW5kRGF5OiBEYXk7XHJcbiAgICAgICAgbW9udGhJbmZvOiBDYWxlbmRhck1vbnRoSW5mbztcclxuICAgIH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgdG9kYXkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB5ZWFyOiBzdHJpbmc7XHJcbiAgICBtb250aE5hbWUgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKi9cclxuXHJcbiAgICBvbk1vZGVDaGFuZ2UobWVudSwgbW9kZTogQ2FsZW5kYXJNb2RlKTogdm9pZCB7XHJcbiAgICAgICAgbWVudS5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMubW9kZUNoYW5nZS5lbWl0KG1vZGUpO1xyXG4gICAgfVxyXG4gICAgb25SYW5nZUNoYW5nZShyYW5nZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmFuZ2VDaGFuZ2UuZW1pdChyYW5nZSk7XHJcbiAgICB9XHJcbiAgICBvblByaW50KCk6IHZvaWQge31cclxufVxyXG4iLCI8ZmQtdG9vbGJhciBbc2hvdWxkT3ZlcmZsb3ddPVwidHJ1ZVwiIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiIFtjbGFzcy5ydGxdPVwicnRsXCI+XG4gICAgPGJ1dHRvbiBmZC1idXR0b24gZmQtdG9vbGJhci1pdGVtIFtsYWJlbF09XCInRGF0ZVJfVG9kYXknIHwgYmJiVHJhbnNsYXRlXCIgKGNsaWNrKT1cInRvZGF5LmVtaXQoKVwiPjwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIFtnbHlwaF09XCJydGwgPyAnbmF2aWdhdGlvbi1yaWdodC1hcnJvdycgOiAnbmF2aWdhdGlvbi1sZWZ0LWFycm93J1wiXG4gICAgICAgIChjbGljayk9XCJwcmV2VGFwLmVtaXQoKVwiXG4gICAgPjwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIFtnbHlwaF09XCJydGwgPyAnbmF2aWdhdGlvbi1sZWZ0LWFycm93JyA6ICduYXZpZ2F0aW9uLXJpZ2h0LWFycm93J1wiXG4gICAgICAgIChjbGljayk9XCJuZXh0VGFwLmVtaXQoKVwiXG4gICAgPjwvYnV0dG9uPlxuICAgIDxoMyBmZC10aXRsZSBmZC10b29sYmFyLWl0ZW0+e3sgdGl0bGUgfX08L2gzPlxuICAgIDxmZC10b29sYmFyLXNwYWNlcj48L2ZkLXRvb2xiYXItc3BhY2VyPlxuICAgIDwhLS0gPGJ1dHRvbiBmZC1idXR0b24gZmQtdG9vbGJhci1pdGVtIGdseXBoPVwicHJpbnRcIiAoY2xpY2spPVwib25QcmludCgpXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIj48L2J1dHRvbj4gLS0+XG4gICAgQGlmIChkZXZpY2VTaXplID09PSAncycgfHwgZGV2aWNlU2l6ZSA9PT0gJ20nKSB7XG4gICAgPGJjLWNhbGVuZGFyLXNlbGVjdGlvbi1kYXlzXG4gICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICBbbW9udGhJbmZvXT1cIm1vbnRoSW5mb1wiXG4gICAgICAgIChyYW5nZUNoYW5nZSk9XCJvblJhbmdlQ2hhbmdlKCRldmVudClcIlxuICAgID48L2JjLWNhbGVuZGFyLXNlbGVjdGlvbi1kYXlzPlxuICAgIH0gQGlmICghaGlkZU1vZGUpIHtcbiAgICA8ZmQtc3BsaXQtYnV0dG9uXG4gICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICBbZml4ZWRXaWR0aF09XCJmYWxzZVwiXG4gICAgICAgIFttYWluQWN0aW9uXT1cIntcbiAgICAgICAgICAgIG1haW5BY3Rpb25UaXRsZTogbW9kZVRpdGxlLFxuICAgICAgICAgICAga2VlcE1haW5BY3Rpb246IHRydWVcbiAgICAgICAgfVwiXG4gICAgPlxuICAgICAgICA8ZmQtbWVudSAjbWVudT5cbiAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uTW9kZUNoYW5nZShtZW51LCAnZGF5JylcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7ICdEYXknIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uTW9kZUNoYW5nZShtZW51LCAnd2VlaycpXCIgYm9keUNsaWNrPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT57eyAnV2VlaycgfCBiYmJUcmFuc2xhdGUgfX0gPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uTW9kZUNoYW5nZShtZW51LCAnbW9udGgnKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgJ01vbnRoJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8IS0tIDxsaSBmZC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uTW9kZUNoYW5nZSgneWVhcicpXCI+XG4gICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7IFwiWWVhclwiIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+IC0tPlxuICAgICAgICA8L2ZkLW1lbnU+XG4gICAgPC9mZC1zcGxpdC1idXR0b24+XG4gICAgfVxuPC9mZC10b29sYmFyPlxuIl19
|