barsa-calendar 1.0.430 → 1.0.433
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/esm2020/lib/barsa-calendar.module.mjs +12 -5
- package/esm2020/lib/calendar-container/calendar-container.component.mjs +46 -13
- package/esm2020/lib/calendar-header/calendar-header.component.mjs +5 -3
- package/esm2020/lib/calendar-month/calendar-month.component.mjs +3 -3
- package/esm2020/lib/calendar-selection-days/calendar-selection-days.component.mjs +7 -4
- package/esm2020/lib/calendar-week/calendar-week.component.mjs +3 -3
- package/esm2020/lib/date-time-picker/date-time-picker.component.mjs +16 -4
- package/esm2020/lib/day-number-box/day-number-box.component.mjs +3 -3
- package/esm2020/lib/event-button/event-button.component.mjs +3 -3
- package/fesm2015/barsa-calendar.mjs +86 -32
- package/fesm2015/barsa-calendar.mjs.map +1 -1
- package/fesm2020/barsa-calendar.mjs +84 -32
- package/fesm2020/barsa-calendar.mjs.map +1 -1
- package/lib/barsa-calendar.module.d.ts +19 -1
- package/lib/calendar-container/calendar-container.component.d.ts +10 -1
- package/lib/calendar-header/calendar-header.component.d.ts +3 -2
- package/lib/calendar-selection-days/calendar-selection-days.component.d.ts +2 -1
- package/lib/date-time-picker/date-time-picker.component.d.ts +4 -1
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ import { FundamentalNgxCoreModule } from '@fundamental-ngx/core';
|
|
|
5
5
|
import { CardModule } from '@fundamental-ngx/core/card';
|
|
6
6
|
import { QuickViewModule } from '@fundamental-ngx/core/quick-view';
|
|
7
7
|
import { PopoverModule } from '@fundamental-ngx/core/popover';
|
|
8
|
-
import { BarsaNovinRayCoreModule } from 'barsa-novin-ray-core';
|
|
8
|
+
import { BarsaNovinRayCoreModule, BaseModule } from 'barsa-novin-ray-core';
|
|
9
9
|
import { CalendarContainerComponent } from './calendar-container/calendar-container.component';
|
|
10
10
|
import { CalendarListComponent } from './calendar-list/calendar-list.component';
|
|
11
11
|
import { CalendarListContainerComponent } from './calendar-list-container/calendar-list-container.component';
|
|
@@ -27,6 +27,7 @@ import { DayEventListComponent } from './day-event-list/day-event-list.component
|
|
|
27
27
|
import { DateTimePickerComponent } from './date-time-picker/date-time-picker.component';
|
|
28
28
|
import { CalendarSelectionDaysComponent } from './calendar-selection-days/calendar-selection-days.component';
|
|
29
29
|
import * as i0 from "@angular/core";
|
|
30
|
+
import * as i1 from "barsa-novin-ray-core";
|
|
30
31
|
const components = [
|
|
31
32
|
CalendarContainerComponent,
|
|
32
33
|
CalendarListComponent,
|
|
@@ -42,9 +43,15 @@ const components = [
|
|
|
42
43
|
DayEventListComponent
|
|
43
44
|
];
|
|
44
45
|
const pipes = [DaysInWeekPipe, EventDatePipe, EventTimePipe, FromToTimePipe, EqualDatePipe];
|
|
45
|
-
export class BarsaCalendarModule {
|
|
46
|
+
export class BarsaCalendarModule extends BaseModule {
|
|
47
|
+
constructor(dcm, componentFactoryResolver) {
|
|
48
|
+
super(dcm, componentFactoryResolver, 'BarsaCalendarModule');
|
|
49
|
+
this.dcm = dcm;
|
|
50
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
51
|
+
this.dynamicComponents = [...components];
|
|
52
|
+
}
|
|
46
53
|
}
|
|
47
|
-
BarsaCalendarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
54
|
+
BarsaCalendarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaCalendarModule, deps: [{ token: i1.DynamicComponentService }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
48
55
|
BarsaCalendarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: BarsaCalendarModule, declarations: [CalendarContainerComponent,
|
|
49
56
|
CalendarListComponent,
|
|
50
57
|
CalendarListContainerComponent,
|
|
@@ -98,5 +105,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
98
105
|
providers: [TitleCasePipe, CalendarService, ...pipes],
|
|
99
106
|
exports: [...components, DateTimePickerComponent, CalendarSelectionDaysComponent]
|
|
100
107
|
}]
|
|
101
|
-
}] });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
}], ctorParameters: function () { return [{ type: i1.DynamicComponentService }, { type: i0.ComponentFactoryResolver }]; } });
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtY2FsZW5kYXIvc3JjL2xpYi9iYXJzYS1jYWxlbmRhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QixRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBMkIsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM3RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1D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WCx1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsYUFBYTt3QkFDYixVQUFVO3dCQUNWLGVBQWU7cUJBQ2xCO29CQUNELFlBQVksRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsS0FBSyxFQUFFLHVCQUF1QixFQUFFLDhCQUE4QixDQUFDO29CQUNoRyxTQUFTLEVBQUUsQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLEdBQUcsS0FBSyxDQUFDO29CQUNyRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSx1QkFBdUIsRUFBRSw4QkFBOEIsQ0FBQztpQkFDcEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIE5nTW9kdWxlLCBOT19FUlJPUlNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIFRpdGxlQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEZ1bmRhbWVudGFsTmd4Q29yZU1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBDYXJkTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NhcmQnO1xuaW1wb3J0IHsgUXVpY2tWaWV3TW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3F1aWNrLXZpZXcnO1xuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcblxuaW1wb3J0IHsgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUsIEJhc2VNb2R1bGUsIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5pbXBvcnQgeyBDYWxlbmRhckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItY29udGFpbmVyL2NhbGVuZGFyLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci1saXN0L2NhbGVuZGFyLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyTGlzdENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItbGlzdC1jb250YWluZXIvY2FsZW5kYXItbGlzdC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLWxpc3QtaXRlbS9jYWxlbmRhci1saXN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyV2Vla0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItd2Vlay9jYWxlbmRhci13ZWVrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci1tb250aC9jYWxlbmRhci1tb250aC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jYWxlbmRhci5zZXJ2aWNlJztcbmltcG9ydCB7IE1vbnRoRGF5c0NvbXBvbmVudCB9IGZyb20gJy4vbW9udGgtZGF5cy9tb250aC1kYXlzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXlzSW5XZWVrUGlwZSB9IGZyb20gJy4vZGF5cy1pbi13ZWVrLnBpcGUnO1xuaW1wb3J0IHsgRXZlbnREYXRlUGlwZSB9IGZyb20gJy4vZXZlbnQtZGF0ZS5waXBlJztcbmltcG9ydCB7IEV2ZW50VGltZVBpcGUgfSBmcm9tICcuL2V2ZW50LXRpbWUucGlwZSc7XG5pbXBvcnQgeyBGcm9tVG9UaW1lUGlwZSB9IGZyb20gJy4vZnJvbS10by10aW1lLnBpcGUnO1xuaW1wb3J0IHsgRXF1YWxEYXRlUGlwZSB9IGZyb20gJy4vZXF1YWwtZGF0ZS5waXBlJztcbmltcG9ydCB7IENhbGVuZGFySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci1oZWFkZXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdmVudFByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL2V2ZW50LXByZXZpZXcvZXZlbnQtcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF5TnVtYmVyQm94Q29tcG9uZW50IH0gZnJvbSAnLi9kYXktbnVtYmVyLWJveC9kYXktbnVtYmVyLWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXZlbnRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2V2ZW50LWJ1dHRvbi9ldmVudC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERheUV2ZW50TGlzdENvbXBvbmVudCB9IGZyb20gJy4vZGF5LWV2ZW50LWxpc3QvZGF5LWV2ZW50LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXRpbWUtcGlja2VyL2RhdGUtdGltZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyU2VsZWN0aW9uRGF5c0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItc2VsZWN0aW9uLWRheXMvY2FsZW5kYXItc2VsZWN0aW9uLWRheXMuY29tcG9uZW50JztcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgICBDYWxlbmRhckNvbnRhaW5lckNvbXBvbmVudCxcbiAgICBDYWxlbmRhckxpc3RDb21wb25lbnQsXG4gICAgQ2FsZW5kYXJMaXN0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIENhbGVuZGFyTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgQ2FsZW5kYXJXZWVrQ29tcG9uZW50LFxuICAgIENhbGVuZGFyTW9udGhDb21wb25lbnQsXG4gICAgTW9udGhEYXlzQ29tcG9uZW50LFxuICAgIENhbGVuZGFySGVhZGVyQ29tcG9uZW50LFxuICAgIEV2ZW50UHJldmlld0NvbXBvbmVudCxcbiAgICBEYXlOdW1iZXJCb3hDb21wb25lbnQsXG4gICAgRXZlbnRCdXR0b25Db21wb25lbnQsXG4gICAgRGF5RXZlbnRMaXN0Q29tcG9uZW50XG5dO1xuY29uc3QgcGlwZXMgPSBbRGF5c0luV2Vla1BpcGUsIEV2ZW50RGF0ZVBpcGUsIEV2ZW50VGltZVBpcGUsIEZyb21Ub1RpbWVQaXBlLCBFcXVhbERhdGVQaXBlXTtcbkBOZ01vZHVsZSh7XG4gICAgc2NoZW1hczogW05PX0VSUk9SU19TQ0hFTUFdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUsXG4gICAgICAgIEZ1bmRhbWVudGFsTmd4Q29yZU1vZHVsZSxcbiAgICAgICAgUG9wb3Zlck1vZHVsZSxcbiAgICAgICAgQ2FyZE1vZHVsZSxcbiAgICAgICAgUXVpY2tWaWV3TW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5jb21wb25lbnRzLCAuLi5waXBlcywgRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQsIENhbGVuZGFyU2VsZWN0aW9uRGF5c0NvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOiBbVGl0bGVDYXNlUGlwZSwgQ2FsZW5kYXJTZXJ2aWNlLCAuLi5waXBlc10sXG4gICAgZXhwb3J0czogWy4uLmNvbXBvbmVudHMsIERhdGVUaW1lUGlja2VyQ29tcG9uZW50LCBDYWxlbmRhclNlbGVjdGlvbkRheXNDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhQ2FsZW5kYXJNb2R1bGUgZXh0ZW5kcyBCYXNlTW9kdWxlIHtcbiAgICBwcm90ZWN0ZWQgZHluYW1pY0NvbXBvbmVudHMgPSBbLi4uY29tcG9uZW50c107XG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGRjbTogRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsIHByb3RlY3RlZCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xuICAgICAgICBzdXBlcihkY20sIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgJ0JhcnNhQ2FsZW5kYXJNb2R1bGUnKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject, combineLatest, of } from 'rxjs';
|
|
3
3
|
import { map, switchMap, takeUntil } from 'rxjs/operators';
|
|
4
4
|
import { ReportViewBaseComponent, DateService, LogService, getDateService } from 'barsa-novin-ray-core';
|
|
@@ -6,10 +6,14 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
7
7
|
import * as i2 from "barsa-novin-ray-core";
|
|
8
8
|
import * as i3 from "../services/calendar.service";
|
|
9
|
-
import * as i4 from "
|
|
10
|
-
import * as i5 from "
|
|
11
|
-
import * as i6 from "
|
|
12
|
-
import * as i7 from "../calendar-
|
|
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";
|
|
13
17
|
export class CalendarContainerComponent extends ReportViewBaseComponent {
|
|
14
18
|
constructor(_titleCase, _bbbTranslate, _calendarService, _dateService, _el, _cdr, _renderer2, _findColumnByDbName, _ulvMainService, _portalService) {
|
|
15
19
|
super(_el, _cdr, _renderer2, _findColumnByDbName, _ulvMainService, _portalService);
|
|
@@ -31,6 +35,11 @@ export class CalendarContainerComponent extends ReportViewBaseComponent {
|
|
|
31
35
|
this.eventMoDataList$ = new BehaviorSubject([]);
|
|
32
36
|
}
|
|
33
37
|
ngOnInit() {
|
|
38
|
+
this.calendarFields = this.contextSetting.View.CalendarFields;
|
|
39
|
+
if (this.viewSetting?.CalendarColorField) {
|
|
40
|
+
this.calendarFields.Color = this.viewSetting.CalendarColorField;
|
|
41
|
+
}
|
|
42
|
+
this.userCalendars = this.contextSetting.View.UserCalendars;
|
|
34
43
|
super.ngOnInit();
|
|
35
44
|
this.prepare();
|
|
36
45
|
this._setWidthAndHeight();
|
|
@@ -55,6 +64,9 @@ export class CalendarContainerComponent extends ReportViewBaseComponent {
|
|
|
55
64
|
this._cdr.detectChanges();
|
|
56
65
|
}
|
|
57
66
|
}
|
|
67
|
+
onCalendarCheckChange(calendar) {
|
|
68
|
+
this._handleUserCalendarsChecked();
|
|
69
|
+
}
|
|
58
70
|
onDayClick(day) {
|
|
59
71
|
this._calendarService.setMode('day', day);
|
|
60
72
|
}
|
|
@@ -101,6 +113,18 @@ export class CalendarContainerComponent extends ReportViewBaseComponent {
|
|
|
101
113
|
}
|
|
102
114
|
tr.push({ type: 'td', colSpan, event });
|
|
103
115
|
}
|
|
116
|
+
_handleUserCalendarsChecked() {
|
|
117
|
+
const userCalendars = this.userCalendars?.Data?.MoDataList;
|
|
118
|
+
if (!userCalendars?.length) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const calendars = userCalendars.filter((c) => c.$IsChecked).map((c) => c.Id);
|
|
122
|
+
let moList = this.moDataList;
|
|
123
|
+
if (calendars.length > 0) {
|
|
124
|
+
moList = this.moDataList.filter((c) => c[this.calendarFields.Calendar] && calendars.indexOf(c[this.calendarFields.Calendar].Id) > -1);
|
|
125
|
+
}
|
|
126
|
+
this.prepareMoDataList(moList);
|
|
127
|
+
}
|
|
104
128
|
prepare() {
|
|
105
129
|
this.weekDaysMin = this._calendarService.weekDaysMin();
|
|
106
130
|
this.weekDays = this._calendarService.weekDays();
|
|
@@ -146,7 +170,7 @@ export class CalendarContainerComponent extends ReportViewBaseComponent {
|
|
|
146
170
|
lastDayInfo = daysTemp[daysTemp.length - 1];
|
|
147
171
|
monthName = firstDayInfo.monthName;
|
|
148
172
|
if (firstDayInfo.month !== lastDayInfo.month) {
|
|
149
|
-
monthName = `${firstDayInfo.monthName} -
|
|
173
|
+
monthName = `${firstDayInfo.monthName} -
|
|
150
174
|
${lastDayInfo.monthName}`;
|
|
151
175
|
}
|
|
152
176
|
}
|
|
@@ -155,18 +179,20 @@ export class CalendarContainerComponent extends ReportViewBaseComponent {
|
|
|
155
179
|
}));
|
|
156
180
|
}
|
|
157
181
|
_setWidthAndHeight() {
|
|
158
|
-
|
|
159
|
-
|
|
182
|
+
// const divRef= this._el.nativeElement;
|
|
183
|
+
const divRef = this._divRef.nativeElement;
|
|
184
|
+
this.width = divRef.offsetWidth;
|
|
185
|
+
this.height = divRef.offsetHeight - 45;
|
|
160
186
|
}
|
|
161
187
|
}
|
|
162
188
|
CalendarContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", 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 });
|
|
163
|
-
CalendarContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CalendarContainerComponent, selector: "bc-calendar-container", inputs: { calendarFields: "calendarFields" }, outputs: { deleteTask: "deleteTask", editTask: "editTask", daySelect: "daySelect", loadData: "loadData" }, providers: [
|
|
189
|
+
CalendarContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CalendarContainerComponent, selector: "bc-calendar-container", inputs: { calendarFields: "calendarFields", userCalendars: "userCalendars", viewSetting: "viewSetting" }, outputs: { deleteTask: "deleteTask", editTask: "editTask", daySelect: "daySelect", loadData: "loadData" }, providers: [
|
|
164
190
|
{
|
|
165
191
|
provide: DateService,
|
|
166
192
|
useFactory: getDateService,
|
|
167
193
|
deps: [LogService]
|
|
168
194
|
}
|
|
169
|
-
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<bc-calendar-header\r\n [monthInfo]=\"(selectedMonth$ | async)!!\"\r\n [weekModeDays]=\"(weekModeDays$ | async)!!\"\r\n [rtl]=\"rtl\"\r\n [mode]=\"(mode$ | async)!!\"\r\n [modeTitle]=\"(modeTitle$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n (modeChange)=\"onModeChange($event)\"\r\n (prevTap)=\"onPrevTap()\"\r\n (nextTap)=\"onNextTap()\"\r\n (today)=\"onToday()\"\r\n (rangeChange)=\"onRangeChange($event)\"\r\n>\r\n</bc-calendar-header>\r\n\r\n<ng-container [ngSwitch]=\"mode$ | async\">\r\n <ng-container *ngSwitchCase=\"'week'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n weekCalendar;\r\n context: {\r\n $implicit: selectedMonth$ | async,\r\n moDataList: eventMoDataList$ | async,\r\n width: width,\r\n height: height,\r\n rtl: rtl,\r\n showEvents: showEvents,\r\n weekModeDays: weekModeDays$ | async,\r\n today: today,\r\n deviceSize: deviceSize,\r\n calendarFields: calendarFields,\r\n access: access\r\n }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'day'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n weekCalendar;\r\n context: {\r\n $implicit: selectedMonth$ | async,\r\n moDataList: eventMoDataList$ | async,\r\n width: width,\r\n height: height,\r\n rtl: rtl,\r\n showEvents: showEvents,\r\n weekModeDays: weekModeDays$ | async,\r\n today: today,\r\n deviceSize: deviceSize,\r\n calendarFields: calendarFields,\r\n access: access\r\n }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'list'\"></ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n monthCalendar;\r\n context: {\r\n $implicit: days$ | async,\r\n moDataList: eventMoDataList$ | async,\r\n width: width,\r\n height: height,\r\n rtl: rtl,\r\n showEvents: showEvents,\r\n today: today,\r\n deviceSize: deviceSize,\r\n calendarFields: calendarFields,\r\n monthWeeksCount: monthWeeksCount$ | async,\r\n access: access\r\n }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template\r\n #monthCalendar\r\n let-days\r\n let-moDataList=\"moDataList\"\r\n let-width=\"width\"\r\n let-height=\"height\"\r\n let-calendarFields=\"calendarFields\"\r\n let-rtl=\"rtl\"\r\n let-today=\"today\"\r\n let-showEvents=\"showEvents\"\r\n let-deviceSize=\"deviceSize\"\r\n let-monthWeeksCount=\"monthWeeksCount\"\r\n let-access=\"access\"\r\n>\r\n <bc-calendar-month\r\n [style.width]=\"width\"\r\n [containerHeight]=\"parentHeight !== 0 ? parentHeight : height\"\r\n [containerWidth]=\"width\"\r\n [calendarFields]=\"calendarFields\"\r\n [moDataList]=\"moDataList\"\r\n [monthWeeksCount]=\"monthWeeksCount\"\r\n [rtl]=\"rtl\"\r\n [weekDays]=\"weekDays\"\r\n [weekDaysMin]=\"weekDaysMin\"\r\n [today]=\"today\"\r\n [showEvents]=\"showEvents\"\r\n [days]=\"days\"\r\n [canAdd]=\"access.Add\"\r\n [canEdit]=\"access.Edit\"\r\n [canDelete]=\"access.Delete\"\r\n [deviceSize]=\"deviceSize\"\r\n (dayClick)=\"onDayClick($event)\"\r\n (showEvent)=\"onShowTask()\"\r\n (deleteEvent)=\"deleteTask.emit($event)\"\r\n (editEvent)=\"editTask.emit($event)\"\r\n (daySelect)=\"daySelect.emit($event)\"\r\n ></bc-calendar-month>\r\n</ng-template>\r\n\r\n<ng-template #listCalendar>\r\n <bc-calendar-list-container\r\n [showEvents]=\"showEvents\"\r\n [selectedDay]=\"selectedDay\"\r\n [calendarFields]=\"calendarFields\"\r\n (showEventsTap)=\"showEvents = !showEvents\"\r\n ></bc-calendar-list-container>\r\n</ng-template>\r\n\r\n<ng-template\r\n #weekCalendar\r\n let-selectedMonth\r\n let-moDataList=\"moDataList\"\r\n let-width=\"width\"\r\n let-height=\"height\"\r\n let-calendarFields=\"calendarFields\"\r\n let-rtl=\"rtl\"\r\n let-today=\"today\"\r\n let-showEvents=\"showEvents\"\r\n let-deviceSize=\"deviceSize\"\r\n let-weekModeDays=\"weekModeDays\"\r\n let-access=\"access\"\r\n>\r\n <bc-calendar-week\r\n [style.width]=\"width\"\r\n [containerHeight]=\"parentHeight !== 0 ? parentHeight : height\"\r\n [containerWidth]=\"width\"\r\n [inDialog]=\"inDialog\"\r\n [calendarFields]=\"calendarFields\"\r\n [moDataList]=\"moDataList\"\r\n [rtl]=\"rtl\"\r\n [canAdd]=\"access.Add\"\r\n [canEdit]=\"access.Edit\"\r\n [canDelete]=\"access.Delete\"\r\n [weekDays]=\"weekDays\"\r\n [weekDaysMin]=\"weekDaysMin\"\r\n [today]=\"today\"\r\n [showEvents]=\"showEvents\"\r\n [days]=\"weekModeDays\"\r\n [deviceSize]=\"deviceSize\"\r\n (dayClick)=\"onDayClick($event)\"\r\n (showEvent)=\"onShowTask()\"\r\n (deleteEvent)=\"deleteTask.emit($event)\"\r\n (editEvent)=\"editTask.emit($event)\"\r\n (daySelect)=\"daySelect.emit($event)\"\r\n ></bc-calendar-week>\r\n</ng-template>\r\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i4.CalendarListContainerComponent, selector: "bc-calendar-list-container", inputs: ["view", "reportItemComponentName", "showEvents", "selectedDay", "calendarFields"], outputs: ["showEventsTap"] }, { kind: "component", type: i5.CalendarWeekComponent, selector: "bc-calendar-week", inputs: ["weekDays", "weekDaysMin", "today", "containerHeight", "calendarFields", "rtl", "inDialog", "deviceSize", "moDataList", "days", "canDelete", "canAdd", "canEdit"], outputs: ["editEvent", "deleteEvent", "showEvent", "daySelect", "dayClick"] }, { kind: "component", type: i6.CalendarMonthComponent, selector: "bc-calendar-month", inputs: ["monthWeeksCount", "weekDays", "weekDaysMin", "today", "containerHeight", "days", "calendarFields", "rtl", "deviceSize", "moDataList", "datePicker", "rangePicker", "canDelete", "canAdd", "canEdit", "selectedDate", "startSelectedDayIndex", "endSelectedDayIndex"], outputs: ["editEvent", "deleteEvent", "daySelect", "dayClick", "dayMouseMove", "dayMouseUp", "dayMouseDown", "showEvent"] }, { kind: "component", type: i7.CalendarHeaderComponent, selector: "bc-calendar-header", inputs: ["monthInfo", "weekModeDays", "hideMode", "modeTitle", "title", "rtl", "mode"], outputs: ["prevTap", "nextTap", "modeChange", "rangeChange", "today"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
195
|
+
], 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 <div style=\"width: 320px; height: 100%\" *ngIf=\"deviceSize !== 's' && deviceSize !== 'm'\">\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 <div *ngIf=\"userCalendars?.Data?.MoDataList?.length\">\n <h4>\u062A\u0642\u0648\u06CC\u0645\u200C\u0647\u0627\u06CC\u200C\u0645\u0646</h4>\n <ng-container *ngFor=\"let calendar of userCalendars.Data.MoDataList\">\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 </ng-container>\n </div>\n </div>\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 <ng-container [ngSwitch]=\"mode$ | async\">\n <ng-container *ngSwitchCase=\"'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 </ng-container>\n <ng-container *ngSwitchCase=\"'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 </ng-container>\n <ng-container *ngSwitchCase=\"'list'\"></ng-container>\n <ng-container *ngSwitchDefault>\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 </ng-container>\n </ng-container>\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 [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 [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 ></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.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { 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: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], 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"], outputs: ["editEvent", "deleteEvent", "showEvent", "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", "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 });
|
|
170
196
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CalendarContainerComponent, decorators: [{
|
|
171
197
|
type: Component,
|
|
172
198
|
args: [{ selector: 'bc-calendar-container', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -175,8 +201,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
175
201
|
useFactory: getDateService,
|
|
176
202
|
deps: [LogService]
|
|
177
203
|
}
|
|
178
|
-
], template: "<bc-calendar-
|
|
179
|
-
}], ctorParameters: function () { return [{ 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: {
|
|
204
|
+
], template: "<div style=\"display: flex; width: 100%; height: 100%; flex-direction: row\">\n <div style=\"width: 320px; height: 100%\" *ngIf=\"deviceSize !== 's' && deviceSize !== 'm'\">\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 <div *ngIf=\"userCalendars?.Data?.MoDataList?.length\">\n <h4>\u062A\u0642\u0648\u06CC\u0645\u200C\u0647\u0627\u06CC\u200C\u0645\u0646</h4>\n <ng-container *ngFor=\"let calendar of userCalendars.Data.MoDataList\">\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 </ng-container>\n </div>\n </div>\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 <ng-container [ngSwitch]=\"mode$ | async\">\n <ng-container *ngSwitchCase=\"'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 </ng-container>\n <ng-container *ngSwitchCase=\"'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 </ng-container>\n <ng-container *ngSwitchCase=\"'list'\"></ng-container>\n <ng-container *ngSwitchDefault>\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 </ng-container>\n </ng-container>\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 [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 [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 ></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"] }]
|
|
205
|
+
}], ctorParameters: function () { return [{ 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: [{
|
|
206
|
+
type: ViewChild,
|
|
207
|
+
args: ['divRef', { static: true }]
|
|
208
|
+
}], calendarFields: [{
|
|
209
|
+
type: Input
|
|
210
|
+
}], userCalendars: [{
|
|
211
|
+
type: Input
|
|
212
|
+
}], viewSetting: [{
|
|
180
213
|
type: Input
|
|
181
214
|
}], deleteTask: [{
|
|
182
215
|
type: Output
|
|
@@ -187,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
187
220
|
}], loadData: [{
|
|
188
221
|
type: Output
|
|
189
222
|
}] } });
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWNhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXItY29udGFpbmVyL2NhbGVuZGFyLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1jYWxlbmRhci9zcmMvbGliL2NhbGVuZGFyLWNvbnRhaW5lci9jYWxlbmRhci1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBR1QsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLFVBQVUsRUFDVixjQUFjLEVBT2pCLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7OztBQWlCOUIsTUFBTSxPQUFPLDBCQUNULFNBQVEsdUJBQWdEO0lBNkJ4RCxZQUNZLFVBQXlCLEVBQ3pCLGFBQStCLEVBQy9CLGdCQUFpQyxFQUNqQyxZQUF5QixFQUN2QixHQUFlLEVBQ2YsSUFBdUIsRUFDdkIsVUFBcUIsRUFDckIsbUJBQTJDLEVBQzNDLGVBQStCLEVBQy9CLGNBQTZCO1FBRXZDLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFYM0UsZUFBVSxHQUFWLFVBQVUsQ0FBZTtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFD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QUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDM0QsQ0FBQzs7dUhBaE1RLDBCQUEwQjsyR0FBMUIsMEJBQTBCLHlNQVJ4QjtRQUNQO1lBQ0ksT0FBTyxFQUFFLFdBQVc7WUFDcEIsVUFBVSxFQUFFLGNBQWM7WUFDMUIsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDO1NBQ3JCO0tBQ0osc0VDN0NMLDB4TEFxS0E7MkZEdEhhLDBCQUEwQjtrQkFidEMsU0FBUzsrQkFDSSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFVBQVUsRUFBRSxjQUFjOzRCQUMxQixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUM7eUJBQ3JCO3FCQUNKOzBXQU1RLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZyxcclxuICAgIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50LFxyXG4gICAgRGF0ZVNlcnZpY2UsXHJcbiAgICBMb2dTZXJ2aWNlLFxyXG4gICAgZ2V0RGF0ZVNlcnZpY2UsXHJcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgQ2FsZW5kYXJNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgQmJiVHJhbnNsYXRlUGlwZSxcclxuICAgIEZpbmRDb2x1bW5CeURiTmFtZVBpcGUsXHJcbiAgICBVbHZNYWluU2VydmljZSxcclxuICAgIFBvcnRhbFNlcnZpY2VcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IENhbGVuZGFyTW9kZSwgQ2FsZW5kYXJNb250aEluZm8sIERheSB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NhbGVuZGFyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JjLWNhbGVuZGFyLWNvbnRhaW5lcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IERhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBnZXREYXRlU2VydmljZSxcclxuICAgICAgICAgICAgZGVwczogW0xvZ1NlcnZpY2VdXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb250YWluZXJDb21wb25lbnRcclxuICAgIGV4dGVuZHMgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQ8VWlSZXBvcnRWaWV3QmFzZVNldHRpbmc+XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzXHJcbntcclxuICAgIEBJbnB1dCgpIGNhbGVuZGFyRmllbGRzO1xyXG4gICAgQE91dHB1dCgpIGRlbGV0ZVRhc2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XHJcbiAgICBAT3V0cHV0KCkgZWRpdFRhc2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XHJcbiAgICBAT3V0cHV0KCkgZGF5U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gICAgQE91dHB1dCgpIGxvYWREYXRhID0gbmV3IEV2ZW50RW1pdHRlcjx7IHN0YXJ0OiBEYXRlOyBlbmQ6IGFueSB9PigpO1xyXG4gICAgc2VsZWN0ZWREYXk6IERheTtcclxuICAgIHRvZGF5SW5kZXggPSAtMTtcclxuICAgIHNlbGVjdGVkSW5kZXg6IGFueTtcclxuICAgIGNhbGVuZGFyczogQ2FsZW5kYXJNb250aEluZm9bXTtcclxuICAgIHNob3dFdmVudHM6IGJvb2xlYW47XHJcbiAgICB3aWR0aDogbnVtYmVyO1xyXG4gICAgaGVpZ2h0OiBudW1iZXI7XHJcbiAgICBzZWxlY3RlZE1vbnRoJDogT2JzZXJ2YWJsZTxDYWxlbmRhck1vbnRoSW5mbz47XHJcbiAgICB0b2RheTogRGF0ZTtcclxuICAgIHdlZWtEYXlzTWluOiBzdHJpbmdbXTtcclxuICAgIHdlZWtEYXlzOiBzdHJpbmdbXTtcclxuICAgIG1vZGUkOiBPYnNlcnZhYmxlPENhbGVuZGFyTW9kZT47XHJcbiAgICBzZWxlY3RlZFdlZWskOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgICB3ZWVrTW9kZURheXMkOiBPYnNlcnZhYmxlPERheVtdPjtcclxuICAgIGRheXMkOiBPYnNlcnZhYmxlPERheVtdPjtcclxuICAgIHdlZWtzQ291bnQ6IG51bWJlcjtcclxuICAgIGZpcnN0V2Vla0luZGV4OiBudW1iZXI7XHJcbiAgICBtb250aFdlZWtzQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgICBtb2RlVGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XHJcbiAgICB0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICAgIGV2ZW50TW9EYXRhTGlzdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1ldGFvYmplY3REYXRhTW9kZWxbXT4oW10pO1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfdGl0bGVDYXNlOiBUaXRsZUNhc2VQaXBlLFxyXG4gICAgICAgIHByaXZhdGUgX2JiYlRyYW5zbGF0ZTogQmJiVHJhbnNsYXRlUGlwZSxcclxuICAgICAgICBwcml2YXRlIF9jYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kYXRlU2VydmljZTogRGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcm90ZWN0ZWQgX2ZpbmRDb2x1bW5CeURiTmFtZTogRmluZENvbHVtbkJ5RGJOYW1lUGlwZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX3Vsdk1haW5TZXJ2aWNlOiBVbHZNYWluU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9lbCwgX2NkciwgX3JlbmRlcmVyMiwgX2ZpbmRDb2x1bW5CeURiTmFtZSwgX3Vsdk1haW5TZXJ2aWNlLCBfcG9ydGFsU2VydmljZSk7XHJcbiAgICB9XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMucHJlcGFyZSgpO1xyXG4gICAgICAgIHRoaXMuX3NldFdpZHRoQW5kSGVpZ2h0KCk7XHJcbiAgICAgICAgdGhpcy5wcmVwYXJlTW9EYXRhTGlzdCh0aGlzLm1vRGF0YUxpc3QpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aCQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgobW9udGg6IENhbGVuZGFyTW9udGhJbmZvKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZERhdGEuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICBzdGFydDogbW9udGguZGF5c1swXS5kYXRlLFxyXG4gICAgICAgICAgICAgICAgZW5kOiBtb250aC5kYXlzW21vbnRoLmRheXMubGVuZ3RoIC0gMV0uZGF0ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyB0aGlzLnNldFRhc2tzKHRoaXMuY2FsZW5kYXJzLCB0aGlzLm1vRGF0YUxpc3QsIHRoaXMuY2FsZW5kYXJGaWVsZHMpO1xyXG4gICAgfVxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gICAgICAgIGNvbnN0IHsgbW9EYXRhTGlzdCwgZGV2aWNlU2l6ZSB9ID0gY2hhbmdlcztcclxuICAgICAgICBpZiAobW9EYXRhTGlzdCAmJiAhbW9EYXRhTGlzdC5maXJzdENoYW5nZSkge1xyXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVNb0RhdGFMaXN0KGNoYW5nZXMubW9EYXRhTGlzdC5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGV2aWNlU2l6ZSAmJiAhZGV2aWNlU2l6ZS5maXJzdENoYW5nZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zZXRXaWR0aEFuZEhlaWdodCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkRheUNsaWNrKGRheTogRGF5KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnNldE1vZGUoJ2RheScsIGRheSk7XHJcbiAgICB9XHJcbiAgICBvblNob3dUYXNrKCk6IHZvaWQge31cclxuICAgIG9uU2xpZGVDaGFuZ2Uoc2VsZWN0ZWQ6IENhbGVuZGFyTW9udGhJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnNldFNlbGVjdGVkKHNlbGVjdGVkKTtcclxuICAgIH1cclxuICAgIG9uTW9udGhDYXJvdXNlbExvYWRlZCh7IG9iamVjdCB9KTogdm9pZCB7XHJcbiAgICAgICAgb2JqZWN0LnNlbGVjdGVkUGFnZSA9IDE7XHJcbiAgICB9XHJcblxyXG4gICAgb25Ub2RheSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2UuZ290b1RvZGF5KCk7XHJcbiAgICB9XHJcbiAgICBvbk1vZGVDaGFuZ2UobW9kZTogQ2FsZW5kYXJNb2RlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnNldE1vZGUobW9kZSk7XHJcbiAgICB9XHJcbiAgICBvblJhbmdlQ2hhbmdlKGU6IHsgc3RhcnREYXk6IERheTsgZW5kRGF5OiBEYXk7IG1vbnRoSW5mbzogQ2FsZW5kYXJNb250aEluZm8gfSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5yYW5nZVNlbGVjdChlLnN0YXJ0RGF5LCBlLmVuZERheSwgZS5tb250aEluZm8pO1xyXG4gICAgfVxyXG4gICAgb25QcmV2VGFwKCk6IHZvaWQge1xyXG4gICAgICAgIC8vICAgdGhpcy5nb3RvUGFnZSh0aGlzLm1vbnRoQ2Fyb3VzZWxWaWV3Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0ZWRQYWdlIC0gMSk7XHJcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmxvYWRQcmV2aW91cygpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTmV4dFRhcCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2UubG9hZE5leHQoKTtcclxuICAgICAgICAvLyB0aGlzLmdvdG9QYWdlKHRoaXMubW9udGhDYXJvdXNlbFZpZXcubmF0aXZlRWxlbWVudC5zZWxlY3RlZFBhZ2UgKyAxKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNlbGVjdGVkQ2hhbmdlKGRheTogRGF5KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERheSA9IHsgLi4uZGF5IH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJlcGFyZU1vRGF0YUxpc3QobW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ldmVudE1vRGF0YUxpc3QkLm5leHQoXHJcbiAgICAgICAgICAgIG1vRGF0YUxpc3QubWFwKChldmVudCkgPT4gKHtcclxuICAgICAgICAgICAgICAgIC4uLmV2ZW50LFxyXG4gICAgICAgICAgICAgICAgaWQ6IGV2ZW50LklkLCAvLyBiZWNhdXNlIGluIGNvcmUuanMgY2FsZW5kYXIgc2VsZWN0aW9uIGFkYXB0ZXIgcmVhZCBpZCB3aXRoIGxvd2VyY2FzZVxyXG4gICAgICAgICAgICAgICAgJFN0YXJ0RGF0ZUluZm86IHRoaXMuX2RhdGVTZXJ2aWNlLmdldERhdGVJbmZvKGV2ZW50W3RoaXMuY2FsZW5kYXJGaWVsZHMuU3RhcnREYXRlXSksXHJcbiAgICAgICAgICAgICAgICAkRW5kRGF0ZUluZm86IHRoaXMuX2RhdGVTZXJ2aWNlLmdldERhdGVJbmZvKGV2ZW50W3RoaXMuY2FsZW5kYXJGaWVsZHMuRW5kRGF0ZV0pXHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkVGQodGFibGU6IGFueVtdLCB0cjogYW55W10sIGV2ZW50OiBDYWxlbmRhck1ldGFvYmplY3REYXRhTW9kZWwsIGNvbFNwYW46IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNvbFNwYW5Db3VudCA9IHRyLmxlbmd0aCA+IDAgPyB0ci5tYXAoKGMpID0+IGMuY29sU3BhbikucmVkdWNlKChhLCBiKSA9PiBhICsgYikgPiA2IDogMDtcclxuICAgICAgICBpZiAoY29sU3BhbkNvdW50KSB7XHJcbiAgICAgICAgICAgIHRhYmxlLnB1c2godHIpO1xyXG4gICAgICAgICAgICB0ciA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0ci5wdXNoKHsgdHlwZTogJ3RkJywgY29sU3BhbiwgZXZlbnQgfSk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIHByZXBhcmUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy53ZWVrRGF5c01pbiA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS53ZWVrRGF5c01pbigpO1xyXG4gICAgICAgIHRoaXMud2Vla0RheXMgPSB0aGlzLl9jYWxlbmRhclNlcnZpY2Uud2Vla0RheXMoKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGgkID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnNlbGVjdGVkJDtcclxuICAgICAgICB0aGlzLmRheXMkID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmRheXMkO1xyXG4gICAgICAgIHRoaXMudG9kYXkgPSB0aGlzLl9jYWxlbmRhclNlcnZpY2UudG9kYXk7XHJcbiAgICAgICAgdGhpcy5tb2RlJCA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5tb2RlJDtcclxuXHJcbiAgICAgICAgdGhpcy5tb250aFdlZWtzQ291bnQkID0gdGhpcy5tb2RlJC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKG1vZGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChtb2RlID09PSAnbW9udGgnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NhbGVuZGFyU2VydmljZS5zZWxlY3RlZE1vbnRoLndlZWtzQ291bnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMubW9kZVRpdGxlJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZGF5cyQsIHRoaXMubW9kZSRdKS5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoWywgbW9kZV0pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChtb2RlID09PSAnY3VzdG9tTW9udGgnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGAke3RoaXMuX2NhbGVuZGFyU2VydmljZS53ZWVrc0NvdW50fSAgJHt0aGlzLl9iYmJUcmFuc2xhdGUudHJhbnNmb3JtKCdXZWVrJyl9YCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fYmJiVHJhbnNsYXRlLnRyYW5zZm9ybSh0aGlzLl90aXRsZUNhc2UudHJhbnNmb3JtKG1vZGUpKSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy53ZWVrTW9kZURheXMkID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLndlZWtNb2RlRGF5cyQ7XHJcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmNhbGVuZGFycyQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoY2FsZW5kYXJzKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50Q2FsZW5kYXJzID0gWy4uLmNhbGVuZGFyc107XHJcbiAgICAgICAgICAgIC8vIGV2ZW50Q2FsZW5kYXJzID0gZXZlbnRDYWxlbmRhcnMuc3BsaWNlKHRoaXMuc2VsZWN0ZWRJbmRleCwgMyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJzID0gZXZlbnRDYWxlbmRhcnM7XHJcbiAgICAgICAgICAgIC8vIGlmICh0aGlzLm1vbnRoQ2Fyb3VzZWxWaWV3KSB7XHJcbiAgICAgICAgICAgIC8vICAgdGhpcy5tb250aENhcm91c2VsVmlldy5uYXRpdmVFbGVtZW50LnNlbGVjdGVkUGFnZSA9IDE7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxyXG4gICAgICAgIC8vICAgLnN1YnNjcmliZSgodG9kYXlJbmRleCkgPT4ge1xyXG4gICAgICAgIC8vICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0aGlzLnRvZGF5SW5kZXggPSB0b2RheUluZGV4O1xyXG4gICAgICAgIC8vICAgICB0aGlzLmdvdG9QYWdlKHRoaXMudG9kYXlJbmRleCk7XHJcbiAgICAgICAgLy8gICB9KTtcclxuICAgICAgICB0aGlzLnRpdGxlJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMud2Vla01vZGVEYXlzJCwgdGhpcy5zZWxlY3RlZE1vbnRoJCwgdGhpcy5kYXlzJCwgdGhpcy5tb2RlJF0pLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgc3dpdGNoTWFwKChbd2Vla01vZGVEYXlzLCBtb250aEluZm8sIGRheXMsIG1vZGVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgbW9udGhOYW1lID0gbW9udGhJbmZvLmRhdGVJbmZvLm1vbnRoTmFtZTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHllYXIgPSBtb250aEluZm8uZGF0ZUluZm8uc3RyWWVhcjtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAobW9kZSAhPT0gJ21vbnRoJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBmaXJzdERheUluZm86IERheTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbGFzdERheUluZm86IERheTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXlzVGVtcCA9IG1vZGUgPT09ICdjdXN0b21Nb250aCcgPyBkYXlzIDogd2Vla01vZGVEYXlzO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXlzVGVtcC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0RGF5SW5mbyA9IGRheXNUZW1wWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0RGF5SW5mbyA9IGRheXNUZW1wW2RheXNUZW1wLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtb250aE5hbWUgPSBmaXJzdERheUluZm8ubW9udGhOYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3REYXlJbmZvLm1vbnRoICE9PSBsYXN0RGF5SW5mby5tb250aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGhOYW1lID0gYCR7Zmlyc3REYXlJbmZvLm1vbnRoTmFtZX0gLVxyXG4gICAgICAgICAgICAgICR7bGFzdERheUluZm8ubW9udGhOYW1lfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoYCR7bW9udGhOYW1lfSAgJHt5ZWFyfWApO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0V2lkdGhBbmRIZWlnaHQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy53aWR0aCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIDQ1O1xyXG4gICAgfVxyXG59XHJcbiIsIjxiYy1jYWxlbmRhci1oZWFkZXJcclxuICAgIFttb250aEluZm9dPVwiKHNlbGVjdGVkTW9udGgkIHwgYXN5bmMpISFcIlxyXG4gICAgW3dlZWtNb2RlRGF5c109XCIod2Vla01vZGVEYXlzJCB8IGFzeW5jKSEhXCJcclxuICAgIFtydGxdPVwicnRsXCJcclxuICAgIFttb2RlXT1cIihtb2RlJCB8IGFzeW5jKSEhXCJcclxuICAgIFttb2RlVGl0bGVdPVwiKG1vZGVUaXRsZSQgfCBhc3luYykhIVwiXHJcbiAgICBbdGl0bGVdPVwiKHRpdGxlJCB8IGFzeW5jKSEhXCJcclxuICAgIChtb2RlQ2hhbmdlKT1cIm9uTW9kZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIChwcmV2VGFwKT1cIm9uUHJldlRhcCgpXCJcclxuICAgIChuZXh0VGFwKT1cIm9uTmV4dFRhcCgpXCJcclxuICAgICh0b2RheSk9XCJvblRvZGF5KClcIlxyXG4gICAgKHJhbmdlQ2hhbmdlKT1cIm9uUmFuZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbj5cclxuPC9iYy1jYWxlbmRhci1oZWFkZXI+XHJcblxyXG48bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJtb2RlJCB8IGFzeW5jXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInd2VlaydcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICB3ZWVrQ2FsZW5kYXI7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZWxlY3RlZE1vbnRoJCB8IGFzeW5jLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vRGF0YUxpc3Q6IGV2ZW50TW9EYXRhTGlzdCQgfCBhc3luYyxcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgICAgICAgICAgICAgICAgcnRsOiBydGwsXHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd0V2ZW50czogc2hvd0V2ZW50cyxcclxuICAgICAgICAgICAgICAgICAgICB3ZWVrTW9kZURheXM6IHdlZWtNb2RlRGF5cyQgfCBhc3luYyxcclxuICAgICAgICAgICAgICAgICAgICB0b2RheTogdG9kYXksXHJcbiAgICAgICAgICAgICAgICAgICAgZGV2aWNlU2l6ZTogZGV2aWNlU2l6ZSxcclxuICAgICAgICAgICAgICAgICAgICBjYWxlbmRhckZpZWxkczogY2FsZW5kYXJGaWVsZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzOiBhY2Nlc3NcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXknXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgd2Vla0NhbGVuZGFyO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2VsZWN0ZWRNb250aCQgfCBhc3luYyxcclxuICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0OiBldmVudE1vRGF0YUxpc3QkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgICAgIHJ0bDogcnRsLFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dFdmVudHM6IHNob3dFdmVudHMsXHJcbiAgICAgICAgICAgICAgICAgICAgd2Vla01vZGVEYXlzOiB3ZWVrTW9kZURheXMkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgICAgICAgICAgdG9kYXk6IHRvZGF5LFxyXG4gICAgICAgICAgICAgICAgICAgIGRldmljZVNpemU6IGRldmljZVNpemUsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJGaWVsZHM6IGNhbGVuZGFyRmllbGRzLFxyXG4gICAgICAgICAgICAgICAgICAgIGFjY2VzczogYWNjZXNzXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGlzdCdcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICBtb250aENhbGVuZGFyO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZGF5cyQgfCBhc3luYyxcclxuICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0OiBldmVudE1vRGF0YUxpc3QkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgICAgIHJ0bDogcnRsLFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dFdmVudHM6IHNob3dFdmVudHMsXHJcbiAgICAgICAgICAgICAgICAgICAgdG9kYXk6IHRvZGF5LFxyXG4gICAgICAgICAgICAgICAgICAgIGRldmljZVNpemU6IGRldmljZVNpemUsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJGaWVsZHM6IGNhbGVuZGFyRmllbGRzLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vbnRoV2Vla3NDb3VudDogbW9udGhXZWVrc0NvdW50JCB8IGFzeW5jLFxyXG4gICAgICAgICAgICAgICAgICAgIGFjY2VzczogYWNjZXNzXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlXHJcbiAgICAjbW9udGhDYWxlbmRhclxyXG4gICAgbGV0LWRheXNcclxuICAgIGxldC1tb0RhdGFMaXN0PVwibW9EYXRhTGlzdFwiXHJcbiAgICBsZXQtd2lkdGg9XCJ3aWR0aFwiXHJcbiAgICBsZXQtaGVpZ2h0PVwiaGVpZ2h0XCJcclxuICAgIGxldC1jYWxlbmRhckZpZWxkcz1cImNhbGVuZGFyRmllbGRzXCJcclxuICAgIGxldC1ydGw9XCJydGxcIlxyXG4gICAgbGV0LXRvZGF5PVwidG9kYXlcIlxyXG4gICAgbGV0LXNob3dFdmVudHM9XCJzaG93RXZlbnRzXCJcclxuICAgIGxldC1kZXZpY2VTaXplPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICBsZXQtbW9udGhXZWVrc0NvdW50PVwibW9udGhXZWVrc0NvdW50XCJcclxuICAgIGxldC1hY2Nlc3M9XCJhY2Nlc3NcIlxyXG4+XHJcbiAgICA8YmMtY2FsZW5kYXItbW9udGhcclxuICAgICAgICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxyXG4gICAgICAgIFtjb250YWluZXJIZWlnaHRdPVwicGFyZW50SGVpZ2h0ICE9PSAwID8gcGFyZW50SGVpZ2h0IDogaGVpZ2h0XCJcclxuICAgICAgICBbY29udGFpbmVyV2lkdGhdPVwid2lkdGhcIlxyXG4gICAgICAgIFtjYWxlbmRhckZpZWxkc109XCJjYWxlbmRhckZpZWxkc1wiXHJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXHJcbiAgICAgICAgW21vbnRoV2Vla3NDb3VudF09XCJtb250aFdlZWtzQ291bnRcIlxyXG4gICAgICAgIFtydGxdPVwicnRsXCJcclxuICAgICAgICBbd2Vla0RheXNdPVwid2Vla0RheXNcIlxyXG4gICAgICAgIFt3ZWVrRGF5c01pbl09XCJ3ZWVrRGF5c01pblwiXHJcbiAgICAgICAgW3RvZGF5XT1cInRvZGF5XCJcclxuICAgICAgICBbc2hvd0V2ZW50c109XCJzaG93RXZlbnRzXCJcclxuICAgICAgICBbZGF5c109XCJkYXlzXCJcclxuICAgICAgICBbY2FuQWRkXT1cImFjY2Vzcy5BZGRcIlxyXG4gICAgICAgIFtjYW5FZGl0XT1cImFjY2Vzcy5FZGl0XCJcclxuICAgICAgICBbY2FuRGVsZXRlXT1cImFjY2Vzcy5EZWxldGVcIlxyXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgIChkYXlDbGljayk9XCJvbkRheUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChzaG93RXZlbnQpPVwib25TaG93VGFzaygpXCJcclxuICAgICAgICAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlVGFzay5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChlZGl0RXZlbnQpPVwiZWRpdFRhc2suZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoZGF5U2VsZWN0KT1cImRheVNlbGVjdC5lbWl0KCRldmVudClcIlxyXG4gICAgPjwvYmMtY2FsZW5kYXItbW9udGg+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2xpc3RDYWxlbmRhcj5cclxuICAgIDxiYy1jYWxlbmRhci1saXN0LWNvbnRhaW5lclxyXG4gICAgICAgIFtzaG93RXZlbnRzXT1cInNob3dFdmVudHNcIlxyXG4gICAgICAgIFtzZWxlY3RlZERheV09XCJzZWxlY3RlZERheVwiXHJcbiAgICAgICAgW2NhbGVuZGFyRmllbGRzXT1cImNhbGVuZGFyRmllbGRzXCJcclxuICAgICAgICAoc2hvd0V2ZW50c1RhcCk9XCJzaG93RXZlbnRzID0gIXNob3dFdmVudHNcIlxyXG4gICAgPjwvYmMtY2FsZW5kYXItbGlzdC1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGVcclxuICAgICN3ZWVrQ2FsZW5kYXJcclxuICAgIGxldC1zZWxlY3RlZE1vbnRoXHJcbiAgICBsZXQtbW9EYXRhTGlzdD1cIm1vRGF0YUxpc3RcIlxyXG4gICAgbGV0LXdpZHRoPVwid2lkdGhcIlxyXG4gICAgbGV0LWhlaWdodD1cImhlaWdodFwiXHJcbiAgICBsZXQtY2FsZW5kYXJGaWVsZHM9XCJjYWxlbmRhckZpZWxkc1wiXHJcbiAgICBsZXQtcnRsPVwicnRsXCJcclxuICAgIGxldC10b2RheT1cInRvZGF5XCJcclxuICAgIGxldC1zaG93RXZlbnRzPVwic2hvd0V2ZW50c1wiXHJcbiAgICBsZXQtZGV2aWNlU2l6ZT1cImRldmljZVNpemVcIlxyXG4gICAgbGV0LXdlZWtNb2RlRGF5cz1cIndlZWtNb2RlRGF5c1wiXHJcbiAgICBsZXQtYWNjZXNzPVwiYWNjZXNzXCJcclxuPlxyXG4gICAgPGJjLWNhbGVuZGFyLXdlZWtcclxuICAgICAgICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxyXG4gICAgICAgIFtjb250YWluZXJIZWlnaHRdPVwicGFyZW50SGVpZ2h0ICE9PSAwID8gcGFyZW50SGVpZ2h0IDogaGVpZ2h0XCJcclxuICAgICAgICBbY29udGFpbmVyV2lkdGhdPVwid2lkdGhcIlxyXG4gICAgICAgIFtpbkRpYWxvZ109XCJpbkRpYWxvZ1wiXHJcbiAgICAgICAgW2NhbGVuZGFyRmllbGRzXT1cImNhbGVuZGFyRmllbGRzXCJcclxuICAgICAgICBbbW9EYXRhTGlzdF09XCJtb0RhdGFMaXN0XCJcclxuICAgICAgICBbcnRsXT1cInJ0bFwiXHJcbiAgICAgICAgW2NhbkFkZF09XCJhY2Nlc3MuQWRkXCJcclxuICAgICAgICBbY2FuRWRpdF09XCJhY2Nlc3MuRWRpdFwiXHJcbiAgICAgICAgW2NhbkRlbGV0ZV09XCJhY2Nlc3MuRGVsZXRlXCJcclxuICAgICAgICBbd2Vla0RheXNdPVwid2Vla0RheXNcIlxyXG4gICAgICAgIFt3ZWVrRGF5c01pbl09XCJ3ZWVrRGF5c01pblwiXHJcbiAgICAgICAgW3RvZGF5XT1cInRvZGF5XCJcclxuICAgICAgICBbc2hvd0V2ZW50c109XCJzaG93RXZlbnRzXCJcclxuICAgICAgICBbZGF5c109XCJ3ZWVrTW9kZURheXNcIlxyXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgIChkYXlDbGljayk9XCJvbkRheUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChzaG93RXZlbnQpPVwib25TaG93VGFzaygpXCJcclxuICAgICAgICAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlVGFzay5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChlZGl0RXZlbnQpPVwiZWRpdFRhc2suZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoZGF5U2VsZWN0KT1cImRheVNlbGVjdC5lbWl0KCRldmVudClcIlxyXG4gICAgPjwvYmMtY2FsZW5kYXItd2Vlaz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWNhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXItY29udGFpbmVyL2NhbGVuZGFyLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1jYWxlbmRhci9zcmMvbGliL2NhbGVuZGFyLWNvbnRhaW5lci9jYWxlbmRhci1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRCxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFDWCxVQUFVLEVBQ1YsY0FBYyxFQU9qQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBaUI5QixNQUFNLE9BQU8sMEJBQ1QsU0FBUSx1QkFBZ0Q7SUFnQ3hELFlBQ1ksVUFBeUIsRUFDekIsYUFBK0IsRUFDL0IsZ0JBQWlDLEVBQ2pDLFlBQXlCLEVBQ3ZCLEdBQWUsRUFDZixJQUF1QixFQUN2QixVQUFxQixFQUNyQixtQkFBMkMsRUFDM0MsZUFBK0IsRUFDL0IsY0FBNkI7UUFFdkMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQVgzRSxlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQ3pCLGtCQUFhLEdBQWIs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QUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU8sa0JBQWtCO1FBQ3RCLHdDQUF3QztRQUN4QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUUxQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUMzQyxDQUFDOzt1SEE3TlEsMEJBQTBCOzJHQUExQiwwQkFBMEIscVFBUnhCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsV0FBVztZQUNwQixVQUFVLEVBQUUsY0FBYztZQUMxQixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUM7U0FDckI7S0FDSix1TEM5Q0wsc2tQQWtNQTsyRkRsSmEsMEJBQTBCO2tCQWJ0QyxTQUFTOytCQUNJLHVCQUF1QixtQkFHaEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsV0FBVzs0QkFDcEIsVUFBVSxFQUFFLGNBQWM7NEJBQzFCLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQzt5QkFDckI7cUJBQ0o7MFdBTXNDLE9BQU87c0JBQTdDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDNUIsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICAgIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nLFxuICAgIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50LFxuICAgIERhdGVTZXJ2aWNlLFxuICAgIExvZ1NlcnZpY2UsXG4gICAgZ2V0RGF0ZVNlcnZpY2UsXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcbiAgICBDYWxlbmRhck1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgQmJiVHJhbnNsYXRlUGlwZSxcbiAgICBGaW5kQ29sdW1uQnlEYk5hbWVQaXBlLFxuICAgIFVsdk1haW5TZXJ2aWNlLFxuICAgIFBvcnRhbFNlcnZpY2Vcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb2RlLCBDYWxlbmRhck1vbnRoSW5mbywgRGF5IH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NhbGVuZGFyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JjLWNhbGVuZGFyLWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXItY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IERhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogZ2V0RGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICBkZXBzOiBbTG9nU2VydmljZV1cbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb250YWluZXJDb21wb25lbnRcbiAgICBleHRlbmRzIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50PFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nPlxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXNcbntcbiAgICBAVmlld0NoaWxkKCdkaXZSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfZGl2UmVmOiBFbGVtZW50UmVmO1xuICAgIEBJbnB1dCgpIGNhbGVuZGFyRmllbGRzO1xuICAgIEBJbnB1dCgpIHVzZXJDYWxlbmRhcnM7XG4gICAgQElucHV0KCkgdmlld1NldHRpbmc6IFVpQ2FsZW5kYXJTZXR0aW5nO1xuICAgIEBPdXRwdXQoKSBkZWxldGVUYXNrID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xuICAgIEBPdXRwdXQoKSBlZGl0VGFzayA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgZGF5U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICAgIEBPdXRwdXQoKSBsb2FkRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBzdGFydDogRGF0ZTsgZW5kOiBhbnkgfT4oKTtcbiAgICBzZWxlY3RlZERheTogRGF5O1xuICAgIHRvZGF5SW5kZXggPSAtMTtcbiAgICBzZWxlY3RlZEluZGV4OiBhbnk7XG4gICAgY2FsZW5kYXJzOiBDYWxlbmRhck1vbnRoSW5mb1tdO1xuICAgIHNob3dFdmVudHM6IGJvb2xlYW47XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbiAgICBzZWxlY3RlZE1vbnRoJDogT2JzZXJ2YWJsZTxDYWxlbmRhck1vbnRoSW5mbz47XG4gICAgdG9kYXk6IERhdGU7XG4gICAgd2Vla0RheXNNaW46IHN0cmluZ1tdO1xuICAgIHdlZWtEYXlzOiBzdHJpbmdbXTtcbiAgICBtb2RlJDogT2JzZXJ2YWJsZTxDYWxlbmRhck1vZGU+O1xuICAgIHNlbGVjdGVkV2VlayQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgICB3ZWVrTW9kZURheXMkOiBPYnNlcnZhYmxlPERheVtdPjtcbiAgICBkYXlzJDogT2JzZXJ2YWJsZTxEYXlbXT47XG4gICAgd2Vla3NDb3VudDogbnVtYmVyO1xuICAgIGZpcnN0V2Vla0luZGV4OiBudW1iZXI7XG4gICAgbW9udGhXZWVrc0NvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAgIG1vZGVUaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICB0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBldmVudE1vRGF0YUxpc3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNZXRhb2JqZWN0RGF0YU1vZGVsW10+KFtdKTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfdGl0bGVDYXNlOiBUaXRsZUNhc2VQaXBlLFxuICAgICAgICBwcml2YXRlIF9iYmJUcmFuc2xhdGU6IEJiYlRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIHByaXZhdGUgX2NhbGVuZGFyU2VydmljZTogQ2FsZW5kYXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9kYXRlU2VydmljZTogRGF0ZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJvdGVjdGVkIF9maW5kQ29sdW1uQnlEYk5hbWU6IEZpbmRDb2x1bW5CeURiTmFtZVBpcGUsXG4gICAgICAgIHByb3RlY3RlZCBfdWx2TWFpblNlcnZpY2U6IFVsdk1haW5TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoX2VsLCBfY2RyLCBfcmVuZGVyZXIyLCBfZmluZENvbHVtbkJ5RGJOYW1lLCBfdWx2TWFpblNlcnZpY2UsIF9wb3J0YWxTZXJ2aWNlKTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJGaWVsZHMgPSB0aGlzLmNvbnRleHRTZXR0aW5nLlZpZXcuQ2FsZW5kYXJGaWVsZHM7XG4gICAgICAgIGlmICh0aGlzLnZpZXdTZXR0aW5nPy5DYWxlbmRhckNvbG9yRmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJGaWVsZHMuQ29sb3IgPSB0aGlzLnZpZXdTZXR0aW5nLkNhbGVuZGFyQ29sb3JGaWVsZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVzZXJDYWxlbmRhcnMgPSB0aGlzLmNvbnRleHRTZXR0aW5nLlZpZXcuVXNlckNhbGVuZGFycztcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5wcmVwYXJlKCk7XG4gICAgICAgIHRoaXMuX3NldFdpZHRoQW5kSGVpZ2h0KCk7XG4gICAgICAgIHRoaXMucHJlcGFyZU1vRGF0YUxpc3QodGhpcy5tb0RhdGFMaXN0KTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChtb250aDogQ2FsZW5kYXJNb250aEluZm8pID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZERhdGEuZW1pdCh7XG4gICAgICAgICAgICAgICAgc3RhcnQ6IG1vbnRoLmRheXNbMF0uZGF0ZSxcbiAgICAgICAgICAgICAgICBlbmQ6IG1vbnRoLmRheXNbbW9udGguZGF5cy5sZW5ndGggLSAxXS5kYXRlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gdGhpcy5zZXRUYXNrcyh0aGlzLmNhbGVuZGFycywgdGhpcy5tb0RhdGFMaXN0LCB0aGlzLmNhbGVuZGFyRmllbGRzKTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgeyBtb0RhdGFMaXN0LCBkZXZpY2VTaXplIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAobW9EYXRhTGlzdCAmJiAhbW9EYXRhTGlzdC5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5wcmVwYXJlTW9EYXRhTGlzdChjaGFuZ2VzLm1vRGF0YUxpc3QuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRldmljZVNpemUgJiYgIWRldmljZVNpemUuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFdpZHRoQW5kSGVpZ2h0KCk7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uQ2FsZW5kYXJDaGVja0NoYW5nZShjYWxlbmRhcjogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9oYW5kbGVVc2VyQ2FsZW5kYXJzQ2hlY2tlZCgpO1xuICAgIH1cbiAgICBvbkRheUNsaWNrKGRheTogRGF5KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5zZXRNb2RlKCdkYXknLCBkYXkpO1xuICAgIH1cbiAgICBvblNob3dUYXNrKCk6IHZvaWQge31cbiAgICBvblNsaWRlQ2hhbmdlKHNlbGVjdGVkOiBDYWxlbmRhck1vbnRoSW5mbyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2Uuc2V0U2VsZWN0ZWQoc2VsZWN0ZWQpO1xuICAgIH1cbiAgICBvbk1vbnRoQ2Fyb3VzZWxMb2FkZWQoeyBvYmplY3QgfSk6IHZvaWQge1xuICAgICAgICBvYmplY3Quc2VsZWN0ZWRQYWdlID0gMTtcbiAgICB9XG5cbiAgICBvblRvZGF5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2UuZ290b1RvZGF5KCk7XG4gICAgfVxuICAgIG9uTW9kZUNoYW5nZShtb2RlOiBDYWxlbmRhck1vZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnNldE1vZGUobW9kZSk7XG4gICAgfVxuICAgIG9uUmFuZ2VDaGFuZ2UoZTogeyBzdGFydERheTogRGF5OyBlbmREYXk6IERheTsgbW9udGhJbmZvOiBDYWxlbmRhck1vbnRoSW5mbyB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5yYW5nZVNlbGVjdChlLnN0YXJ0RGF5LCBlLmVuZERheSwgZS5tb250aEluZm8pO1xuICAgIH1cbiAgICBvblByZXZUYXAoKTogdm9pZCB7XG4gICAgICAgIC8vICAgdGhpcy5nb3RvUGFnZSh0aGlzLm1vbnRoQ2Fyb3VzZWxWaWV3Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0ZWRQYWdlIC0gMSk7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5sb2FkUHJldmlvdXMoKTtcbiAgICB9XG5cbiAgICBvbk5leHRUYXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5sb2FkTmV4dCgpO1xuICAgICAgICAvLyB0aGlzLmdvdG9QYWdlKHRoaXMubW9udGhDYXJvdXNlbFZpZXcubmF0aXZlRWxlbWVudC5zZWxlY3RlZFBhZ2UgKyAxKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdGVkQ2hhbmdlKGRheTogRGF5KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXkgPSB7IC4uLmRheSB9O1xuICAgIH1cblxuICAgIHByZXBhcmVNb0RhdGFMaXN0KG1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmV2ZW50TW9EYXRhTGlzdCQubmV4dChcbiAgICAgICAgICAgIG1vRGF0YUxpc3QubWFwKChldmVudCkgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi5ldmVudCxcbiAgICAgICAgICAgICAgICBpZDogZXZlbnQuSWQsIC8vIGJlY2F1c2UgaW4gY29yZS5qcyBjYWxlbmRhciBzZWxlY3Rpb24gYWRhcHRlciByZWFkIGlkIHdpdGggbG93ZXJjYXNlXG4gICAgICAgICAgICAgICAgJFN0YXJ0RGF0ZUluZm86IHRoaXMuX2RhdGVTZXJ2aWNlLmdldERhdGVJbmZvKGV2ZW50W3RoaXMuY2FsZW5kYXJGaWVsZHMuU3RhcnREYXRlXSksXG4gICAgICAgICAgICAgICAgJEVuZERhdGVJbmZvOiB0aGlzLl9kYXRlU2VydmljZS5nZXREYXRlSW5mbyhldmVudFt0aGlzLmNhbGVuZGFyRmllbGRzLkVuZERhdGVdKVxuICAgICAgICAgICAgfSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYWRkVGQodGFibGU6IGFueVtdLCB0cjogYW55W10sIGV2ZW50OiBDYWxlbmRhck1ldGFvYmplY3REYXRhTW9kZWwsIGNvbFNwYW46IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2xTcGFuQ291bnQgPSB0ci5sZW5ndGggPiAwID8gdHIubWFwKChjKSA9PiBjLmNvbFNwYW4pLnJlZHVjZSgoYSwgYikgPT4gYSArIGIpID4gNiA6IDA7XG4gICAgICAgIGlmIChjb2xTcGFuQ291bnQpIHtcbiAgICAgICAgICAgIHRhYmxlLnB1c2godHIpO1xuICAgICAgICAgICAgdHIgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0ci5wdXNoKHsgdHlwZTogJ3RkJywgY29sU3BhbiwgZXZlbnQgfSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hhbmRsZVVzZXJDYWxlbmRhcnNDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1c2VyQ2FsZW5kYXJzID0gdGhpcy51c2VyQ2FsZW5kYXJzPy5EYXRhPy5Nb0RhdGFMaXN0O1xuICAgICAgICBpZiAoIXVzZXJDYWxlbmRhcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNhbGVuZGFycyA9IHVzZXJDYWxlbmRhcnMuZmlsdGVyKChjKSA9PiBjLiRJc0NoZWNrZWQpLm1hcCgoYykgPT4gYy5JZCk7XG4gICAgICAgIGxldCBtb0xpc3QgPSB0aGlzLm1vRGF0YUxpc3Q7XG5cbiAgICAgICAgaWYgKGNhbGVuZGFycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBtb0xpc3QgPSB0aGlzLm1vRGF0YUxpc3QuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChjKSA9PiBjW3RoaXMuY2FsZW5kYXJGaWVsZHMuQ2FsZW5kYXJdICYmIGNhbGVuZGFycy5pbmRleE9mKGNbdGhpcy5jYWxlbmRhckZpZWxkcy5DYWxlbmRhcl0uSWQpID4gLTFcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcmVwYXJlTW9EYXRhTGlzdChtb0xpc3QpO1xuICAgIH1cbiAgICBwcml2YXRlIHByZXBhcmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2Vla0RheXNNaW4gPSB0aGlzLl9jYWxlbmRhclNlcnZpY2Uud2Vla0RheXNNaW4oKTtcbiAgICAgICAgdGhpcy53ZWVrRGF5cyA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS53ZWVrRGF5cygpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGgkID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnNlbGVjdGVkJDtcbiAgICAgICAgdGhpcy5kYXlzJCA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5kYXlzJDtcbiAgICAgICAgdGhpcy50b2RheSA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS50b2RheTtcbiAgICAgICAgdGhpcy5tb2RlJCA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5tb2RlJDtcblxuICAgICAgICB0aGlzLm1vbnRoV2Vla3NDb3VudCQgPSB0aGlzLm1vZGUkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKG1vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobW9kZSA9PT0gJ21vbnRoJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnNlbGVjdGVkTW9udGgud2Vla3NDb3VudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLm1vZGVUaXRsZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmRheXMkLCB0aGlzLm1vZGUkXSkucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoWywgbW9kZV0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobW9kZSA9PT0gJ2N1c3RvbU1vbnRoJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoYCR7dGhpcy5fY2FsZW5kYXJTZXJ2aWNlLndlZWtzQ291bnR9ICAke3RoaXMuX2JiYlRyYW5zbGF0ZS50cmFuc2Zvcm0oJ1dlZWsnKX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuX2JiYlRyYW5zbGF0ZS50cmFuc2Zvcm0odGhpcy5fdGl0bGVDYXNlLnRyYW5zZm9ybShtb2RlKSkpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLndlZWtNb2RlRGF5cyQgPSB0aGlzLl9jYWxlbmRhclNlcnZpY2Uud2Vla01vZGVEYXlzJDtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmNhbGVuZGFycyQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoY2FsZW5kYXJzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBldmVudENhbGVuZGFycyA9IFsuLi5jYWxlbmRhcnNdO1xuICAgICAgICAgICAgLy8gZXZlbnRDYWxlbmRhcnMgPSBldmVudENhbGVuZGFycy5zcGxpY2UodGhpcy5zZWxlY3RlZEluZGV4LCAzKTtcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJzID0gZXZlbnRDYWxlbmRhcnM7XG4gICAgICAgICAgICAvLyBpZiAodGhpcy5tb250aENhcm91c2VsVmlldykge1xuICAgICAgICAgICAgLy8gICB0aGlzLm1vbnRoQ2Fyb3VzZWxWaWV3Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0ZWRQYWdlID0gMTtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAvLyAgIC5zdWJzY3JpYmUoKHRvZGF5SW5kZXgpID0+IHtcbiAgICAgICAgLy8gICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMudG9kYXlJbmRleCA9IHRvZGF5SW5kZXg7XG4gICAgICAgIC8vICAgICB0aGlzLmdvdG9QYWdlKHRoaXMudG9kYXlJbmRleCk7XG4gICAgICAgIC8vICAgfSk7XG4gICAgICAgIHRoaXMudGl0bGUkID0gY29tYmluZUxhdGVzdChbdGhpcy53ZWVrTW9kZURheXMkLCB0aGlzLnNlbGVjdGVkTW9udGgkLCB0aGlzLmRheXMkLCB0aGlzLm1vZGUkXSkucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW3dlZWtNb2RlRGF5cywgbW9udGhJbmZvLCBkYXlzLCBtb2RlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBtb250aE5hbWUgPSBtb250aEluZm8uZGF0ZUluZm8ubW9udGhOYW1lO1xuICAgICAgICAgICAgICAgIGNvbnN0IHllYXIgPSBtb250aEluZm8uZGF0ZUluZm8uc3RyWWVhcjtcblxuICAgICAgICAgICAgICAgIGlmIChtb2RlICE9PSAnbW9udGgnKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmaXJzdERheUluZm86IERheTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxhc3REYXlJbmZvOiBEYXk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRheXNUZW1wID0gbW9kZSA9PT0gJ2N1c3RvbU1vbnRoJyA/IGRheXMgOiB3ZWVrTW9kZURheXM7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXlzVGVtcC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdERheUluZm8gPSBkYXlzVGVtcFswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3REYXlJbmZvID0gZGF5c1RlbXBbZGF5c1RlbXAubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgICAgICAgICAgICBtb250aE5hbWUgPSBmaXJzdERheUluZm8ubW9udGhOYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0RGF5SW5mby5tb250aCAhPT0gbGFzdERheUluZm8ubW9udGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aE5hbWUgPSBgJHtmaXJzdERheUluZm8ubW9udGhOYW1lfSAtXG4gICAgICAgICAgICAgICR7bGFzdERheUluZm8ubW9udGhOYW1lfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGAke21vbnRoTmFtZX0gICR7eWVhcn1gKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0V2lkdGhBbmRIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIC8vIGNvbnN0IGRpdlJlZj0gdGhpcy5fZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZGl2UmVmID0gdGhpcy5fZGl2UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy53aWR0aCA9IGRpdlJlZi5vZmZzZXRXaWR0aDtcbiAgICAgICAgdGhpcy5oZWlnaHQgPSBkaXZSZWYub2Zmc2V0SGVpZ2h0IC0gNDU7XG4gICAgfVxufVxuaW50ZXJmYWNlIFVpQ2FsZW5kYXJTZXR0aW5nIGV4dGVuZHMgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcge1xuICAgIENhbGVuZGFyQ29sb3JGaWVsZDogc3RyaW5nO1xufVxuIiwiPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGZsZXgtZGlyZWN0aW9uOiByb3dcIj5cbiAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDEwMCVcIiAqbmdJZj1cImRldmljZVNpemUgIT09ICdzJyAmJiBkZXZpY2VTaXplICE9PSAnbSdcIj5cbiAgICAgICAgPGJjLWNhbGVuZGFyLXNlbGVjdGlvbi1kYXlzXG4gICAgICAgICAgICBbaW5saW5lXT1cInRydWVcIlxuICAgICAgICAgICAgW21vbnRoSW5mb109XCIoc2VsZWN0ZWRNb250aCQgfCBhc3luYykhIVwiXG4gICAgICAgICAgICAocmFuZ2VDaGFuZ2UpPVwib25SYW5nZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvYmMtY2FsZW5kYXItc2VsZWN0aW9uLWRheXM+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDFweDsgYmFja2dyb3VuZDogI2NjY1wiPjwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlckNhbGVuZGFycz8uRGF0YT8uTW9EYXRhTGlzdD8ubGVuZ3RoXCI+XG4gICAgICAgICAgICA8aDQ+2KrZgtmI24zZheKAjNmH2KfbjOKAjNmF2YY8L2g0PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2FsZW5kYXIgb2YgdXNlckNhbGVuZGFycy5EYXRhLk1vRGF0YUxpc3RcIj5cbiAgICAgICAgICAgICAgICA8dWwgZmQtbGlzdD5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSBzdHlsZT1cInBhZGRpbmc6IDBcIiBjbGFzcz1cInVzZXItY2FsZW5kYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiY2FsZW5kYXIuQ29sb3IgPyBjYWxlbmRhci5Db2xvciA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDVweDsgaGVpZ2h0OiAxMDAlOyBwb3NpdGlvbjogYWJzb2x1dGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY2FsZW5kYXIuJElzQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNhbGVuZGFyQ2hlY2tDaGFuZ2UoY2FsZW5kYXIpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyBjYWxlbmRhci4kQ2FwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJmbGV4OiAxXCIgI2RpdlJlZj5cbiAgICAgICAgPGJjLWNhbGVuZGFyLWhlYWRlclxuICAgICAgICAgICAgW21vbnRoSW5mb109XCIoc2VsZWN0ZWRNb250aCQgfCBhc3luYykhIVwiXG4gICAgICAgICAgICBbd2Vla01vZGVEYXlzXT1cIih3ZWVrTW9kZURheXMkIHwgYXN5bmMpISFcIlxuICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICBbbW9kZV09XCIobW9kZSQgfCBhc3luYykhIVwiXG4gICAgICAgICAgICBbbW9kZVRpdGxlXT1cIihtb2RlVGl0bGUkIHwgYXN5bmMpISFcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIih0aXRsZSQgfCBhc3luYykhIVwiXG4gICAgICAgICAgICAobW9kZUNoYW5nZSk9XCJvbk1vZGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAocHJldlRhcCk9XCJvblByZXZUYXAoKVwiXG4gICAgICAgICAgICAobmV4dFRhcCk9XCJvbk5leHRUYXAoKVwiXG4gICAgICAgICAgICAodG9kYXkpPVwib25Ub2RheSgpXCJcbiAgICAgICAgICAgIChyYW5nZUNoYW5nZSk9XCJvblJhbmdlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYmMtY2FsZW5kYXItaGVhZGVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJtb2RlJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInd2VlaydcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB3ZWVrQ2FsZW5kYXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZWxlY3RlZE1vbnRoJCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vRGF0YUxpc3Q6IGV2ZW50TW9EYXRhTGlzdCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRsOiBydGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0V2ZW50czogc2hvd0V2ZW50cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWVrTW9kZURheXM6IHdlZWtNb2RlRGF5cyQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RheTogdG9kYXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlU2l6ZTogZGV2aWNlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhckZpZWxkczogY2FsZW5kYXJGaWVsZHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzOiBhY2Nlc3NcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXknXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgd2Vla0NhbGVuZGFyO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2VsZWN0ZWRNb250aCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0OiBldmVudE1vRGF0YUxpc3QkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0bDogcnRsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dFdmVudHM6IHNob3dFdmVudHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vla01vZGVEYXlzOiB3ZWVrTW9kZURheXMkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kYXk6IHRvZGF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZVNpemU6IGRldmljZVNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJGaWVsZHM6IGNhbGVuZGFyRmllbGRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VzczogYWNjZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGlzdCdcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtb250aENhbGVuZGFyO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZGF5cyQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0OiBldmVudE1vRGF0YUxpc3QkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0bDogcnRsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dFdmVudHM6IHNob3dFdmVudHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kYXk6IHRvZGF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZVNpemU6IGRldmljZVNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJGaWVsZHM6IGNhbGVuZGFyRmllbGRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoV2Vla3NDb3VudDogbW9udGhXZWVrc0NvdW50JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VzczogYWNjZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGVcbiAgICAjbW9udGhDYWxlbmRhclxuICAgIGxldC1kYXlzXG4gICAgbGV0LW1vRGF0YUxpc3Q9XCJtb0RhdGFMaXN0XCJcbiAgICBsZXQtd2lkdGg9XCJ3aWR0aFwiXG4gICAgbGV0LWhlaWdodD1cImhlaWdodFwiXG4gICAgbGV0LWNhbGVuZGFyRmllbGRzPVwiY2FsZW5kYXJGaWVsZHNcIlxuICAgIGxldC1ydGw9XCJydGxcIlxuICAgIGxldC10b2RheT1cInRvZGF5XCJcbiAgICBsZXQtc2hvd0V2ZW50cz1cInNob3dFdmVudHNcIlxuICAgIGxldC1kZXZpY2VTaXplPVwiZGV2aWNlU2l6ZVwiXG4gICAgbGV0LW1vbnRoV2Vla3NDb3VudD1cIm1vbnRoV2Vla3NDb3VudFwiXG4gICAgbGV0LWFjY2Vzcz1cImFjY2Vzc1wiXG4+XG4gICAgPGJjLWNhbGVuZGFyLW1vbnRoXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgICAgIFtjb250YWluZXJIZWlnaHRdPVwicGFyZW50SGVpZ2h0ICE9PSAwID8gcGFyZW50SGVpZ2h0IDogaGVpZ2h0XCJcbiAgICAgICAgW2NvbnRhaW5lcldpZHRoXT1cIndpZHRoXCJcbiAgICAgICAgW2NhbGVuZGFyRmllbGRzXT1cImNhbGVuZGFyRmllbGRzXCJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXG4gICAgICAgIFttb250aFdlZWtzQ291bnRdPVwibW9udGhXZWVrc0NvdW50XCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbd2Vla0RheXNdPVwid2Vla0RheXNcIlxuICAgICAgICBbd2Vla0RheXNNaW5dPVwid2Vla0RheXNNaW5cIlxuICAgICAgICBbdG9kYXldPVwidG9kYXlcIlxuICAgICAgICBbc2hvd0V2ZW50c109XCJzaG93RXZlbnRzXCJcbiAgICAgICAgW2RheXNdPVwiZGF5c1wiXG4gICAgICAgIFtjYW5BZGRdPVwiYWNjZXNzLkFkZFwiXG4gICAgICAgIFtjYW5FZGl0XT1cImFjY2Vzcy5FZGl0XCJcbiAgICAgICAgW2NhbkRlbGV0ZV09XCJhY2Nlc3MuRGVsZXRlXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIChkYXlDbGljayk9XCJvbkRheUNsaWNrKCRldmVudClcIlxuICAgICAgICAoc2hvd0V2ZW50KT1cIm9uU2hvd1Rhc2soKVwiXG4gICAgICAgIChkZWxldGVFdmVudCk9XCJkZWxldGVUYXNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0RXZlbnQpPVwiZWRpdFRhc2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgKGRheVNlbGVjdCk9XCJkYXlTZWxlY3QuZW1pdCgkZXZlbnQpXCJcbiAgICA+PC9iYy1jYWxlbmRhci1tb250aD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGlzdENhbGVuZGFyPlxuICAgIDxiYy1jYWxlbmRhci1saXN0LWNvbnRhaW5lclxuICAgICAgICBbc2hvd0V2ZW50c109XCJzaG93RXZlbnRzXCJcbiAgICAgICAgW3NlbGVjdGVkRGF5XT1cInNlbGVjdGVkRGF5XCJcbiAgICAgICAgW2NhbGVuZGFyRmllbGRzXT1cImNhbGVuZGFyRmllbGRzXCJcbiAgICAgICAgKHNob3dFdmVudHNUYXApPVwic2hvd0V2ZW50cyA9ICFzaG93RXZlbnRzXCJcbiAgICA+PC9iYy1jYWxlbmRhci1saXN0LWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAgICN3ZWVrQ2FsZW5kYXJcbiAgICBsZXQtc2VsZWN0ZWRNb250aFxuICAgIGxldC1tb0RhdGFMaXN0PVwibW9EYXRhTGlzdFwiXG4gICAgbGV0LXdpZHRoPVwid2lkdGhcIlxuICAgIGxldC1oZWlnaHQ9XCJoZWlnaHRcIlxuICAgIGxldC1jYWxlbmRhckZpZWxkcz1cImNhbGVuZGFyRmllbGRzXCJcbiAgICBsZXQtcnRsPVwicnRsXCJcbiAgICBsZXQtdG9kYXk9XCJ0b2RheVwiXG4gICAgbGV0LXNob3dFdmVudHM9XCJzaG93RXZlbnRzXCJcbiAgICBsZXQtZGV2aWNlU2l6ZT1cImRldmljZVNpemVcIlxuICAgIGxldC13ZWVrTW9kZURheXM9XCJ3ZWVrTW9kZURheXNcIlxuICAgIGxldC1hY2Nlc3M9XCJhY2Nlc3NcIlxuPlxuICAgIDxiYy1jYWxlbmRhci13ZWVrXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgICAgIFtjb250YWluZXJIZWlnaHRdPVwicGFyZW50SGVpZ2h0ICE9PSAwID8gcGFyZW50SGVpZ2h0IDogaGVpZ2h0XCJcbiAgICAgICAgW2NvbnRhaW5lcldpZHRoXT1cIndpZHRoXCJcbiAgICAgICAgW2luRGlhbG9nXT1cImluRGlhbG9nXCJcbiAgICAgICAgW2NhbGVuZGFyRmllbGRzXT1cImNhbGVuZGFyRmllbGRzXCJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2NhbkFkZF09XCJhY2Nlc3MuQWRkXCJcbiAgICAgICAgW2NhbkVkaXRdPVwiYWNjZXNzLkVkaXRcIlxuICAgICAgICBbY2FuRGVsZXRlXT1cImFjY2Vzcy5EZWxldGVcIlxuICAgICAgICBbd2Vla0RheXNdPVwid2Vla0RheXNcIlxuICAgICAgICBbd2Vla0RheXNNaW5dPVwid2Vla0RheXNNaW5cIlxuICAgICAgICBbdG9kYXldPVwidG9kYXlcIlxuICAgICAgICBbc2hvd0V2ZW50c109XCJzaG93RXZlbnRzXCJcbiAgICAgICAgW2RheXNdPVwid2Vla01vZGVEYXlzXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIChkYXlDbGljayk9XCJvbkRheUNsaWNrKCRldmVudClcIlxuICAgICAgICAoc2hvd0V2ZW50KT1cIm9uU2hvd1Rhc2soKVwiXG4gICAgICAgIChkZWxldGVFdmVudCk9XCJkZWxldGVUYXNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0RXZlbnQpPVwiZWRpdFRhc2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgKGRheVNlbGVjdCk9XCJkYXlTZWxlY3QuZW1pdCgkZXZlbnQpXCJcbiAgICA+PC9iYy1jYWxlbmRhci13ZWVrPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -33,10 +33,10 @@ export class CalendarHeaderComponent extends BaseComponent {
|
|
|
33
33
|
onPrint() { }
|
|
34
34
|
}
|
|
35
35
|
CalendarHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CalendarHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
-
CalendarHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CalendarHeaderComponent, selector: "bc-calendar-header", inputs: { monthInfo: "monthInfo", weekModeDays: "weekModeDays", hideMode: "hideMode", modeTitle: "modeTitle", title: "title", 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'\">\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 <bc-calendar-selection-days\n fd-toolbar-item\n [monthInfo]=\"monthInfo\"\n (rangeChange)=\"onRangeChange($event)\"\n ></bc-calendar-selection-days>\n\n <fd-split-button\n *ngIf=\"!hideMode\"\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</fd-toolbar>\n", styles: [":host{display:block;background-color:var(--sapList_Background, #fff)}::ng-deep span.fd-toolbar__spacer{display:none}::ng-deep .fd-toolbar{border:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]" }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i4.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i4.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i4.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i5.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i6.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "disabled", "mainActionTitle", "fdType", "expandButtonAriaLabel", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i7.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i7.ToolbarSpacerComponent, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i8.CalendarSelectionDaysComponent, selector: "bc-calendar-selection-days", inputs: ["startSelectedDayIndex", "endSelectedDayIndex", "monthInfo"], outputs: ["rangeChange"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
36
|
+
CalendarHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", 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 <bc-calendar-selection-days\n *ngIf=\"deviceSize === 's' || deviceSize === 'm'\"\n fd-toolbar-item\n [monthInfo]=\"monthInfo\"\n (rangeChange)=\"onRangeChange($event)\"\n ></bc-calendar-selection-days>\n\n <fd-split-button\n *ngIf=\"!hideMode\"\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</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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]" }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i4.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i4.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i4.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i5.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i6.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "disabled", "mainActionTitle", "fdType", "expandButtonAriaLabel", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i7.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i7.ToolbarSpacerComponent, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i8.CalendarSelectionDaysComponent, selector: "bc-calendar-selection-days", inputs: ["startSelectedDayIndex", "endSelectedDayIndex", "monthInfo", "inline"], outputs: ["rangeChange"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
37
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CalendarHeaderComponent, decorators: [{
|
|
38
38
|
type: Component,
|
|
39
|
-
args: [{ selector: 'bc-calendar-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-toolbar [shouldOverflow]=\"true\" [fdType]=\"'transparent'\">\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 <bc-calendar-selection-days\n fd-toolbar-item\n [monthInfo]=\"monthInfo\"\n (rangeChange)=\"onRangeChange($event)\"\n ></bc-calendar-selection-days>\n\n <fd-split-button\n *ngIf=\"!hideMode\"\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</fd-toolbar>\n", styles: [":host{display:block;background-color:var(--sapList_Background, #fff)}::ng-deep span.fd-toolbar__spacer{display:none}::ng-deep .fd-toolbar{border:none}\n"] }]
|
|
39
|
+
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 <bc-calendar-selection-days\n *ngIf=\"deviceSize === 's' || deviceSize === 'm'\"\n fd-toolbar-item\n [monthInfo]=\"monthInfo\"\n (rangeChange)=\"onRangeChange($event)\"\n ></bc-calendar-selection-days>\n\n <fd-split-button\n *ngIf=\"!hideMode\"\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</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"] }]
|
|
40
40
|
}], propDecorators: { monthInfo: [{
|
|
41
41
|
type: Input
|
|
42
42
|
}], weekModeDays: [{
|
|
@@ -47,6 +47,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
47
47
|
type: Input
|
|
48
48
|
}], title: [{
|
|
49
49
|
type: Input
|
|
50
|
+
}], deviceSize: [{
|
|
51
|
+
type: Input
|
|
50
52
|
}], rtl: [{
|
|
51
53
|
type: Input
|
|
52
54
|
}], mode: [{
|
|
@@ -62,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
62
64
|
}], today: [{
|
|
63
65
|
type: Output
|
|
64
66
|
}] } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWNhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXItaGVhZGVyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1jYWxlbmRhci9zcmMvbGliL2NhbGVuZGFyLWhlYWRlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUsYUFBYSxFQUF5QixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7O0FBTzVFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUFhO0lBTjFEOztRQVNhLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFNaEIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0IsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0IsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBQzlDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBSXBDLENBQUM7UUFDSyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVyQyxjQUFTLEdBQUcsRUFBRSxDQUFDO0tBY2xCO0lBWkc7O09BRUc7SUFFSCxZQUFZLENBQUMsSUFBSSxFQUFFLElBQWtCO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxPQUFPLEtBQVUsQ0FBQzs7b0hBaENULHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGdZQ1RwQyw2eEVBMkRBOzJGRGxEYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0ksb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb2RlLCBDYWxlbmRhck1vbnRoSW5mbywgRGF5IH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmMtY2FsZW5kYXItaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckhlYWRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIG1vbnRoSW5mbzogQ2FsZW5kYXJNb250aEluZm87XG4gICAgQElucHV0KCkgd2Vla01vZGVEYXlzOiBEYXlbXTtcbiAgICBASW5wdXQoKSBoaWRlTW9kZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIG1vZGVUaXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBtb2RlOiBDYWxlbmRhck1vZGU7XG4gICAgQE91dHB1dCgpIHByZXZUYXAgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG5leHRUYXAgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG1vZGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENhbGVuZGFyTW9kZT4oKTtcbiAgICBAT3V0cHV0KCkgcmFuZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICAgICAgc3RhcnREYXk6IERheTtcbiAgICAgICAgZW5kRGF5OiBEYXk7XG4gICAgICAgIG1vbnRoSW5mbzogQ2FsZW5kYXJNb250aEluZm87XG4gICAgfT4oKTtcbiAgICBAT3V0cHV0KCkgdG9kYXkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgeWVhcjogc3RyaW5nO1xuICAgIG1vbnRoTmFtZSA9ICcnO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cblxuICAgIG9uTW9kZUNoYW5nZShtZW51LCBtb2RlOiBDYWxlbmRhck1vZGUpOiB2b2lkIHtcbiAgICAgICAgbWVudS5jbG9zZSgpO1xuICAgICAgICB0aGlzLm1vZGVDaGFuZ2UuZW1pdChtb2RlKTtcbiAgICB9XG4gICAgb25SYW5nZUNoYW5nZShyYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnJhbmdlQ2hhbmdlLmVtaXQocmFuZ2UpO1xuICAgIH1cbiAgICBvblByaW50KCk6IHZvaWQge31cbn1cbiIsIjxmZC10b29sYmFyIFtzaG91bGRPdmVyZmxvd109XCJ0cnVlXCIgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCIgW2NsYXNzLnJ0bF09XCJydGxcIj5cbiAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZC10b29sYmFyLWl0ZW0gW2xhYmVsXT1cIidEYXRlUl9Ub2RheScgfCBiYmJUcmFuc2xhdGVcIiAoY2xpY2spPVwidG9kYXkuZW1pdCgpXCI+PC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgW2dseXBoXT1cInJ0bCA/ICduYXZpZ2F0aW9uLXJpZ2h0LWFycm93JyA6ICduYXZpZ2F0aW9uLWxlZnQtYXJyb3cnXCJcbiAgICAgICAgKGNsaWNrKT1cInByZXZUYXAuZW1pdCgpXCJcbiAgICA+PC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgW2dseXBoXT1cInJ0bCA/ICduYXZpZ2F0aW9uLWxlZnQtYXJyb3cnIDogJ25hdmlnYXRpb24tcmlnaHQtYXJyb3cnXCJcbiAgICAgICAgKGNsaWNrKT1cIm5leHRUYXAuZW1pdCgpXCJcbiAgICA+PC9idXR0b24+XG4gICAgPGgzIGZkLXRpdGxlIGZkLXRvb2xiYXItaXRlbT57eyB0aXRsZSB9fTwvaDM+XG4gICAgPGZkLXRvb2xiYXItc3BhY2VyPjwvZmQtdG9vbGJhci1zcGFjZXI+XG4gICAgPGJ1dHRvbiBmZC1idXR0b24gZmQtdG9vbGJhci1pdGVtIGdseXBoPVwicHJpbnRcIiAoY2xpY2spPVwib25QcmludCgpXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIj48L2J1dHRvbj5cbiAgICA8YmMtY2FsZW5kYXItc2VsZWN0aW9uLWRheXNcbiAgICAgICAgKm5nSWY9XCJkZXZpY2VTaXplID09PSAncycgfHwgZGV2aWNlU2l6ZSA9PT0gJ20nXCJcbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIFttb250aEluZm9dPVwibW9udGhJbmZvXCJcbiAgICAgICAgKHJhbmdlQ2hhbmdlKT1cIm9uUmFuZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvYmMtY2FsZW5kYXItc2VsZWN0aW9uLWRheXM+XG5cbiAgICA8ZmQtc3BsaXQtYnV0dG9uXG4gICAgICAgICpuZ0lmPVwiIWhpZGVNb2RlXCJcbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIFtmaXhlZFdpZHRoXT1cImZhbHNlXCJcbiAgICAgICAgW21haW5BY3Rpb25dPVwie1xuICAgICAgICAgICAgbWFpbkFjdGlvblRpdGxlOiBtb2RlVGl0bGUsXG4gICAgICAgICAgICBrZWVwTWFpbkFjdGlvbjogdHJ1ZVxuICAgICAgICB9XCJcbiAgICA+XG4gICAgICAgIDxmZC1tZW51ICNtZW51PlxuICAgICAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAoY2xpY2spPVwib25Nb2RlQ2hhbmdlKG1lbnUsICdkYXknKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgJ0RheScgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAoY2xpY2spPVwib25Nb2RlQ2hhbmdlKG1lbnUsICd3ZWVrJylcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7ICdXZWVrJyB8IGJiYlRyYW5zbGF0ZSB9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAoY2xpY2spPVwib25Nb2RlQ2hhbmdlKG1lbnUsICdtb250aCcpXCIgYm9keUNsaWNrPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT57eyAnTW9udGgnIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwhLS0gPGxpIGZkLW1lbnUtaXRlbSAoY2xpY2spPVwib25Nb2RlQ2hhbmdlKCd5ZWFyJylcIj5cbiAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlPlxuICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgXCJZZWFyXCIgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT4gLS0+XG4gICAgICAgIDwvZmQtbWVudT5cbiAgICA8L2ZkLXNwbGl0LWJ1dHRvbj5cbjwvZmQtdG9vbGJhcj5cbiJdfQ==
|