@bcgov/nr-ngx-component-lib 0.0.80 → 0.0.82
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/components/schedule/schedule.component.d.ts +2 -1
- package/directives/row-list.base.d.ts +2 -0
- package/directives/tooltip/tooltip.directive.d.ts +1 -0
- package/esm2022/components/resource-schedule/resource-schedule.component.mjs +1 -1
- package/esm2022/components/schedule/schedule.component.mjs +6 -3
- package/esm2022/directives/row-list.base.mjs +4 -1
- package/esm2022/directives/tooltip/tooltip.directive.mjs +9 -3
- package/fesm2022/bcgov-nr-ngx-component-lib.mjs +17 -5
- package/fesm2022/bcgov-nr-ngx-component-lib.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -67,6 +67,7 @@ export declare class ScheduleComponent extends RowListBase<{}, ScheduleRow> impl
|
|
|
67
67
|
pagination: boolean;
|
|
68
68
|
heading: boolean;
|
|
69
69
|
highlightDate?: string;
|
|
70
|
+
loadingMessage: string;
|
|
70
71
|
itemTemplates: QueryList<ScheduleItemDirective>;
|
|
71
72
|
headerTemplate: ScheduleRowHeadingDirective;
|
|
72
73
|
protected _days: Day[];
|
|
@@ -83,7 +84,7 @@ export declare class ScheduleComponent extends RowListBase<{}, ScheduleRow> impl
|
|
|
83
84
|
onSamePageFilterChange(ev: {}): void;
|
|
84
85
|
makeRows(schedule: Schedule): Schedule;
|
|
85
86
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScheduleComponent, never>;
|
|
86
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ScheduleComponent, "nrcl-schedule", never, { "provider": { "alias": "provider"; "required": false; }; "startDate": { "alias": "startDate"; "required": false; }; "weekStart": { "alias": "weekStart"; "required": false; }; "dayCount": { "alias": "dayCount"; "required": false; }; "menu": { "alias": "menu"; "required": false; }; "hover": { "alias": "hover"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "heading": { "alias": "heading"; "required": false; }; "highlightDate": { "alias": "highlightDate"; "required": false; }; }, {}, ["headerTemplate", "itemTemplates"], ["*"], false, never>;
|
|
87
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScheduleComponent, "nrcl-schedule", never, { "provider": { "alias": "provider"; "required": false; }; "startDate": { "alias": "startDate"; "required": false; }; "weekStart": { "alias": "weekStart"; "required": false; }; "dayCount": { "alias": "dayCount"; "required": false; }; "menu": { "alias": "menu"; "required": false; }; "hover": { "alias": "hover"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "heading": { "alias": "heading"; "required": false; }; "highlightDate": { "alias": "highlightDate"; "required": false; }; "loadingMessage": { "alias": "loadingMessage"; "required": false; }; }, {}, ["headerTemplate", "itemTemplates"], ["*"], false, never>;
|
|
87
88
|
static ngAcceptInputType_weekStart: unknown;
|
|
88
89
|
static ngAcceptInputType_dayCount: unknown;
|
|
89
90
|
}
|
|
@@ -7,6 +7,8 @@ export declare abstract class RowListBase<F, R, L = any> extends PaginationBase<
|
|
|
7
7
|
pageStateService: PageStateService;
|
|
8
8
|
changeDetectorRef: ChangeDetectorRef;
|
|
9
9
|
isLoadingChange: EventEmitter<boolean>;
|
|
10
|
+
private _isFirstLoad;
|
|
11
|
+
get isFirstLoad(): boolean;
|
|
10
12
|
private _isLoading;
|
|
11
13
|
get isLoading(): boolean;
|
|
12
14
|
set isLoading(v: boolean);
|
|
@@ -26,7 +26,7 @@ export class ResourceScheduleComponent extends NrclBase {
|
|
|
26
26
|
this.heading = true;
|
|
27
27
|
}
|
|
28
28
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResourceScheduleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.14", type: ResourceScheduleComponent, selector: "nrcl-resource-schedule", inputs: { provider: "provider", startDate: "startDate", highlightDate: "highlightDate", weekStart: "weekStart", dayCount: ["dayCount", "dayCount", numberAttribute], menu: "menu", hover: "hover", pagination: "pagination", heading: "heading" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ResourceScheduleRowHeadingDirective, descendants: true }], viewQueries: [{ propertyName: "scheduleComponent", first: true, predicate: ScheduleComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<nrcl-schedule #schedule\n [provider]=\"provider\"\n [startDate]=\"startDate\"\n [highlightDate]=\"highlightDate\"\n [weekStart]=\"weekStart\"\n [dayCount]=\"dayCount\"\n [menu]=\"menu\"\n [hover]=\"hover\"\n [pagination]=\"pagination\"\n [heading]=\"heading\"\n>\n <ng-content></ng-content>\n\n <ng-template nrclScheduleRowHeading let-item>\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\" \n ></ng-container>\n </ng-template>\n\n\n <ng-template nrclScheduleItem=\"out-of-service\" let-data>\n <h1>OOS</h1>\n <h2>{{ data.allocationType }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n \n <ng-template nrclScheduleItem=\"available-rostered\" let-data>\n <h1>Available</h1>\n <h2>{{ data.allocationType }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"available-duty-day\" let-data>\n <h1>Available</h1>\n <h2>{{ data.allocationType }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"available-standby-day\" let-data>\n <h1>Available</h1>\n <h2>{{ data.allocationType }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"available-off-day\" let-data>\n <h1>Available</h1>\n <h2>{{ data.allocationType }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"available-regular-day\" let-data>\n <h1>Available</h1>\n <h2>{{ data.allocationType }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"available-hired\" let-data>\n </ng-template>\n\n\n <ng-template nrclScheduleItem=\"assigned-rostered\" let-data>\n <h1>{{ data.assignmentName }}</h1>\n <h2>{{ data.functionName }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"assigned-duty-day\" let-data>\n <h1>{{ data.assignmentName }}</h1>\n <h2>{{ data.functionName }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"assigned-standby-day\" let-data>\n <h1>{{ data.assignmentName }}</h1>\n <h2>{{ data.functionName }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"assigned-off-day\" let-data>\n <h1>{{ data.assignmentName }}</h1>\n <h2>{{ data.functionName }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"assigned-regular-day\" let-data>\n <h1>{{ data.assignmentName }}</h1>\n <h2>{{ data.functionName }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n</nrcl-schedule>\n\n", styles: ["::ng-deep :root{--nrcl-resource-schedule-item-foreground-color: black;--nrcl-resource-schedule-item-text-shadow: 1px 0px 5px #ffffffa0, -1px 0px 5px #ffffffa0, 0px 1px 5px #ffffffa0, 0px -1px 5px #ffffffa0;--nrcl-resource-schedule-item-regular-day-background-color: #09A748;--nrcl-resource-schedule-item-off-day-background-color: #D4D2D2;--nrcl-resource-schedule-item-duty-day-background-color: #2E9FE0;--nrcl-resource-schedule-item-standby-day-background-color: #F6CF43;--nrcl-resource-schedule-item-out-of-service-background-color: #F55353;--nrcl-resource-schedule-item-rostered-background-color: #BCA8F1;--nrcl-resource-schedule-item-hired-background-color: #CEEDDA;--nrcl-resource-schedule-item-empty-background-color: #FFFFFF}:host{height:100%;display:block}.nrcl-schedule ::ng-deep .inner.item{display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;color:var(--nrcl-resource-schedule-item-foreground-color)}.nrcl-schedule ::ng-deep .inner.item h1,.nrcl-schedule ::ng-deep .inner.item h2,.nrcl-schedule ::ng-deep .inner.item h3{padding:0;margin:0;font-weight:200;font-size:15px;line-height:18px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nrcl-schedule ::ng-deep .inner.item h2{flex-grow:1;text-align:center;display:flex;justify-content:center;align-items:center}.nrcl-schedule ::ng-deep .inner.item h2.wrap{white-space:wrap;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;min-height:0;overflow:hidden}.nrcl-schedule ::ng-deep .inner.item:has(h2:empty):has(h3:empty) h1{flex-grow:1;text-align:center;display:flex;justify-content:center;align-items:center}.nrcl-schedule ::ng-deep .inner.item:has(h2:empty):has(h3:empty) h2,.nrcl-schedule ::ng-deep .inner.item:has(h2:empty):has(h3:empty) h3{display:none}.nrcl-schedule ::ng-deep .inner.item.item-out-of-service{background-color:var(--nrcl-resource-schedule-item-out-of-service-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-empty{background-color:var(--nrcl-resource-schedule-item-empty-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-available-rostered{background-color:var(--nrcl-resource-schedule-item-rostered-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-available-duty-day{background-color:var(--nrcl-resource-schedule-item-duty-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-available-standby-day{background-color:var(--nrcl-resource-schedule-item-standby-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-available-off-day{background-color:var(--nrcl-resource-schedule-item-off-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-available-regular-day{background-color:var(--nrcl-resource-schedule-item-regular-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-available-hired{background-color:var(--nrcl-resource-schedule-item-hired-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-assigned-rostered{background-color:var(--nrcl-resource-schedule-item-rostered-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-assigned-duty-day{background-color:var(--nrcl-resource-schedule-item-duty-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-assigned-standby-day{background-color:var(--nrcl-resource-schedule-item-standby-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-assigned-off-day{background-color:var(--nrcl-resource-schedule-item-off-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-assigned-regular-day{background-color:var(--nrcl-resource-schedule-item-regular-day-background-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ScheduleComponent, selector: "nrcl-schedule", inputs: ["provider", "startDate", "weekStart", "dayCount", "menu", "hover", "pagination", "heading", "highlightDate"] }, { kind: "directive", type: i2.ScheduleItemDirective, selector: "[nrclScheduleItem]", inputs: ["nrclScheduleItem"] }, { kind: "directive", type: i2.ScheduleRowHeadingDirective, selector: "[nrclScheduleRowHeading]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.14", type: ResourceScheduleComponent, selector: "nrcl-resource-schedule", inputs: { provider: "provider", startDate: "startDate", highlightDate: "highlightDate", weekStart: "weekStart", dayCount: ["dayCount", "dayCount", numberAttribute], menu: "menu", hover: "hover", pagination: "pagination", heading: "heading" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ResourceScheduleRowHeadingDirective, descendants: true }], viewQueries: [{ propertyName: "scheduleComponent", first: true, predicate: ScheduleComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<nrcl-schedule #schedule\n [provider]=\"provider\"\n [startDate]=\"startDate\"\n [highlightDate]=\"highlightDate\"\n [weekStart]=\"weekStart\"\n [dayCount]=\"dayCount\"\n [menu]=\"menu\"\n [hover]=\"hover\"\n [pagination]=\"pagination\"\n [heading]=\"heading\"\n>\n <ng-content></ng-content>\n\n <ng-template nrclScheduleRowHeading let-item>\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\" \n ></ng-container>\n </ng-template>\n\n\n <ng-template nrclScheduleItem=\"out-of-service\" let-data>\n <h1>OOS</h1>\n <h2>{{ data.allocationType }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n \n <ng-template nrclScheduleItem=\"available-rostered\" let-data>\n <h1>Available</h1>\n <h2>{{ data.allocationType }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"available-duty-day\" let-data>\n <h1>Available</h1>\n <h2>{{ data.allocationType }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"available-standby-day\" let-data>\n <h1>Available</h1>\n <h2>{{ data.allocationType }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"available-off-day\" let-data>\n <h1>Available</h1>\n <h2>{{ data.allocationType }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"available-regular-day\" let-data>\n <h1>Available</h1>\n <h2>{{ data.allocationType }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"available-hired\" let-data>\n </ng-template>\n\n\n <ng-template nrclScheduleItem=\"assigned-rostered\" let-data>\n <h1>{{ data.assignmentName }}</h1>\n <h2>{{ data.functionName }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"assigned-duty-day\" let-data>\n <h1>{{ data.assignmentName }}</h1>\n <h2>{{ data.functionName }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"assigned-standby-day\" let-data>\n <h1>{{ data.assignmentName }}</h1>\n <h2>{{ data.functionName }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"assigned-off-day\" let-data>\n <h1>{{ data.assignmentName }}</h1>\n <h2>{{ data.functionName }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n\n <ng-template nrclScheduleItem=\"assigned-regular-day\" let-data>\n <h1>{{ data.assignmentName }}</h1>\n <h2>{{ data.functionName }}</h2>\n <h3>{{ data.shiftType }}</h3>\n </ng-template>\n</nrcl-schedule>\n\n", styles: ["::ng-deep :root{--nrcl-resource-schedule-item-foreground-color: black;--nrcl-resource-schedule-item-text-shadow: 1px 0px 5px #ffffffa0, -1px 0px 5px #ffffffa0, 0px 1px 5px #ffffffa0, 0px -1px 5px #ffffffa0;--nrcl-resource-schedule-item-regular-day-background-color: #09A748;--nrcl-resource-schedule-item-off-day-background-color: #D4D2D2;--nrcl-resource-schedule-item-duty-day-background-color: #2E9FE0;--nrcl-resource-schedule-item-standby-day-background-color: #F6CF43;--nrcl-resource-schedule-item-out-of-service-background-color: #F55353;--nrcl-resource-schedule-item-rostered-background-color: #BCA8F1;--nrcl-resource-schedule-item-hired-background-color: #CEEDDA;--nrcl-resource-schedule-item-empty-background-color: #FFFFFF}:host{height:100%;display:block}.nrcl-schedule ::ng-deep .inner.item{display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;color:var(--nrcl-resource-schedule-item-foreground-color)}.nrcl-schedule ::ng-deep .inner.item h1,.nrcl-schedule ::ng-deep .inner.item h2,.nrcl-schedule ::ng-deep .inner.item h3{padding:0;margin:0;font-weight:200;font-size:15px;line-height:18px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nrcl-schedule ::ng-deep .inner.item h2{flex-grow:1;text-align:center;display:flex;justify-content:center;align-items:center}.nrcl-schedule ::ng-deep .inner.item h2.wrap{white-space:wrap;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;min-height:0;overflow:hidden}.nrcl-schedule ::ng-deep .inner.item:has(h2:empty):has(h3:empty) h1{flex-grow:1;text-align:center;display:flex;justify-content:center;align-items:center}.nrcl-schedule ::ng-deep .inner.item:has(h2:empty):has(h3:empty) h2,.nrcl-schedule ::ng-deep .inner.item:has(h2:empty):has(h3:empty) h3{display:none}.nrcl-schedule ::ng-deep .inner.item.item-out-of-service{background-color:var(--nrcl-resource-schedule-item-out-of-service-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-empty{background-color:var(--nrcl-resource-schedule-item-empty-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-available-rostered{background-color:var(--nrcl-resource-schedule-item-rostered-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-available-duty-day{background-color:var(--nrcl-resource-schedule-item-duty-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-available-standby-day{background-color:var(--nrcl-resource-schedule-item-standby-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-available-off-day{background-color:var(--nrcl-resource-schedule-item-off-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-available-regular-day{background-color:var(--nrcl-resource-schedule-item-regular-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-available-hired{background-color:var(--nrcl-resource-schedule-item-hired-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-assigned-rostered{background-color:var(--nrcl-resource-schedule-item-rostered-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-assigned-duty-day{background-color:var(--nrcl-resource-schedule-item-duty-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-assigned-standby-day{background-color:var(--nrcl-resource-schedule-item-standby-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-assigned-off-day{background-color:var(--nrcl-resource-schedule-item-off-day-background-color)}.nrcl-schedule ::ng-deep .inner.item.item-assigned-regular-day{background-color:var(--nrcl-resource-schedule-item-regular-day-background-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ScheduleComponent, selector: "nrcl-schedule", inputs: ["provider", "startDate", "weekStart", "dayCount", "menu", "hover", "pagination", "heading", "highlightDate", "loadingMessage"] }, { kind: "directive", type: i2.ScheduleItemDirective, selector: "[nrclScheduleItem]", inputs: ["nrclScheduleItem"] }, { kind: "directive", type: i2.ScheduleRowHeadingDirective, selector: "[nrclScheduleRowHeading]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30
30
|
}
|
|
31
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResourceScheduleComponent, decorators: [{
|
|
32
32
|
type: Component,
|
|
@@ -48,6 +48,7 @@ export class ScheduleComponent extends RowListBase {
|
|
|
48
48
|
this.hover = true;
|
|
49
49
|
this.pagination = true;
|
|
50
50
|
this.heading = true;
|
|
51
|
+
this.loadingMessage = 'Loading schedule.';
|
|
51
52
|
this._days = [];
|
|
52
53
|
this._weeks = [];
|
|
53
54
|
this._templates = [];
|
|
@@ -157,13 +158,13 @@ export class ScheduleComponent extends RowListBase {
|
|
|
157
158
|
}) || [];
|
|
158
159
|
}
|
|
159
160
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScheduleComponent, selector: "nrcl-schedule", inputs: { provider: "provider", startDate: "startDate", weekStart: ["weekStart", "weekStart", numberAttribute], dayCount: ["dayCount", "dayCount", numberAttribute], menu: "menu", hover: "hover", pagination: "pagination", heading: "heading", highlightDate: "highlightDate" }, host: { properties: { "style.--nrcl-schedule-day-count": "this.dayCount" } }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ScheduleRowHeadingDirective, descendants: true }, { propertyName: "itemTemplates", predicate: ScheduleItemDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ( rows?.length > 0 ) {\n <div class=\"schedule\"\n [class.heading]=\"heading\"\n >\n @if ( heading ) {\n <div class=\"upper-left\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"row weeks\">\n @for ( week of _weeks; track $index ) {\n @if ( week.span == 1 ) {\n <div class=\"week\">\n {{ week.start }}\n </div>\n }\n @else {\n <div class=\"week\" [style.grid-column]=\"'span ' + week.span\">\n {{ week.start }} - {{ week.end }}\n </div>\n }\n }\n </div>\n\n <div class=\"row days\"> \n @for ( day of _days; track $index ) {\n <div class=\"day\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.first]=\"day.isFirst\"\n [class.highlight]=\"day.isHighlight\"\n >\n <div class=\"day-name\">{{ day.dayName }}</div>\n <div class=\"date\">{{ day.monthDay }}</div>\n </div>\n }\n </div>\n\n @for ( row of rows | paginate: paginateState( 'nrcl-schedule' ); track row.id; let rowIndex = $index ) {\n <div class=\"row items\" [class]=\"row.rowClass\">\n @if ( heading ) {\n <div class=\"outer heading\">\n <div class=\"inner heading\">\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate?.template\" \n [ngTemplateOutletContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata } }\"\n ></ng-container>\n </div>\n </div> \n }\n\n @if ( row.items | async; as rowItems ) {\n @for ( item of rowItems; track item.id; let colIndex = $index ) {\n <div class=\"outer item\"\n [class.menu-open]=\"itemMenu.menuOpen\"\n [class.highlight]=\"_days[ colIndex ].isHighlight\"\n [class.hover]=\"hover\"\n >\n <div class=\"inner item\" #itemMenu=\"matMenuTrigger\"\n [class]=\"'item-' + item.name\" \n matRipple\n [matRippleDisabled]=\"!hover\"\n [matMenuTriggerFor]=\"menu\"\n [matMenuTriggerData]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [nrclTooltip]=\"item?.tooltip?.()\"\n nrclTooltipClass=\"schedule\"\n [nrclTooltipContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [class.travel]=\"item?.travel\"\n >\n <ng-container \n [ngTemplateOutlet]=\"_templates[ rowIndex ][ colIndex ] || empty\" \n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n \n @let icons = item?.icons?.();\n @if ( icons && icons.length > 0 ) {\n <div class=\"icons\">\n @for ( icon of icons; track icon ) {\n <nrcl-icon small>{{ icon }}</nrcl-icon>\n } \n </div>\n }\n </div>\n </div>\n }\n }\n @else {\n @for ( day of _days; track day ) {\n <div class=\"item item-loading\"></div>\n }\n }\n </div>\n }\n </div>\n}\n\n@if ( rows?.length > 0 && pagination ) {\n <nrcl-gap/>\n}\n\n@if ( pagination ) {\n <nrcl-row-list-pagination\n paginationId=\"nrcl-schedule\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n}\n\n<ng-template #empty>\n</ng-template>\n", styles: ["::ng-deep :root{--nrcl-schedule-border-color: #c6c8cb;--nrcl-schedule-background-color: white;--nrcl-schedule-alternate-background-color: #f2f2f2;--nrcl-schedule-hover-background-color: #d7d7d7;--nrcl-schedule-row-weeks-height: 30px;--nrcl-schedule-row-weeks-font-size: 15px;--nrcl-schedule-row-weeks-font-weight: bold;--nrcl-schedule-row-weeks-foreground-color: black;--nrcl-schedule-row-days-height: 45px;--nrcl-schedule-row-days-font-size: 15px;--nrcl-schedule-row-days-font-weight: normal;--nrcl-schedule-row-days-foreground-color: black;--nrcl-schedule-row-days-weekend-background-color: #e0f8fc;--nrcl-schedule-row-days-today-background-color: #fcf8d9;--nrcl-schedule-row-days-highlight-background-color: #eafce8;--nrcl-schedule-row-schedule-height: 70px;--nrcl-schedule-heading-width: 300px;--nrcl-schedule-item-width: 80px}:host{display:flex;flex-direction:column;font-family:var(--nrcl-font-family)}:host .schedule{display:grid;grid-template-columns:repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width));overflow:auto;height:100%;flex-grow:1}:host .schedule.heading{grid-template-columns:var(--nrcl-schedule-heading-width) repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width))}:host .schedule.heading .upper-left{grid-row:1/span 2;grid-column:1;border-bottom:1px solid var(--nrcl-schedule-border-color);position:sticky;top:0;left:0;z-index:2;background:var(--nrcl-schedule-background-color)}:host .schedule.heading .row .outer.heading{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule.heading .row.items .outer.heading{box-sizing:border-box;cursor:default;position:sticky;left:0;z-index:1;height:var(--nrcl-schedule-row-schedule-height)}:host .schedule.heading .row.items .outer.heading .heading{flex-grow:1;cursor:default;height:100%}:host .schedule .row{display:contents}:host .schedule .row.weeks>*{height:var(--nrcl-schedule-row-weeks-height)}:host .schedule .row.weeks>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.days>*{height:var(--nrcl-schedule-row-days-height)}:host .schedule .row.days>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.heading,:host .schedule .row .day,:host .schedule .row .week{border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.item:last-child{border-right:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row:last-child .outer.item{border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .week{border-top:1px solid var(--nrcl-schedule-border-color);display:flex;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-weeks-font-size);font-weight:var(--nrcl-schedule-row-weeks-font-weight);color:var(--nrcl-schedule-row-weeks-foreground-color);position:sticky;top:0;background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-days-font-size);font-weight:var(--nrcl-schedule-row-days-font-weight);color:var(--nrcl-schedule-row-days-foreground-color);position:sticky;top:calc(var(--nrcl-schedule-row-weeks-height) + 2px);background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day .day-name{font-size:13px}:host .schedule .row .day.weekend{background-color:var(--nrcl-schedule-row-days-weekend-background-color)}:host .schedule .row .day.today{background-color:var(--nrcl-schedule-row-days-today-background-color)}:host .schedule .row .day.highlight{background-color:var(--nrcl-schedule-row-days-highlight-background-color)}:host .schedule .row .day.first:after{content:\"\";position:absolute;top:0;left:0;bottom:0;border-left:2px solid black}:host .schedule .row.items .outer.item{box-sizing:border-box;height:var(--nrcl-schedule-row-schedule-height);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item.hover:hover .item{background-color:#06e;color:#fff}:host .schedule .row.items .outer.item.menu-open .item{background-color:#036;color:#fff}:host .schedule .row.items .outer.item .item{flex-grow:1;cursor:pointer;position:relative;padding:4px 4px 8px}:host .schedule .row.items .outer.item .item .icons{position:absolute;right:2px;bottom:2px;display:flex;gap:2px;background-color:#f1ebe4;border-radius:4px;padding:3px;color:var(--nrcl-schedule-row-days-foreground-color)}:host .schedule .row.items .outer.item .item.travel{position:relative}:host .schedule .row.items .outer.item .item.travel:after{content:\"\";position:absolute;inset:0 0 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABAQMAAAD+YPzoAAAABlBMVEX///8AAABVwtN+AAAAAnRSTlP/AOW3MEoAAAAMSURBVHicY+BwEgAAALAAW97nJhUAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:calc(100% - 8px) 3px;background-position:bottom}:host .schedule .row:nth-child(odd) .outer{background-color:var(--nrcl-schedule-background-color)}:host .schedule .row:nth-child(2n) .outer{background-color:var(--nrcl-schedule-alternate-background-color)}:host .schedule .row:hover .outer{background-color:var(--nrcl-schedule-hover-background-color)}.empty{height:100%;display:flex;justify-content:center;align-items:center;color:#aaa}::ng-deep .cdk-overlay-container .nrcl-schedule-multiline .mdc-tooltip__surface{white-space:pre-line;max-width:unset;text-align:left}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i4.GapComponent, selector: "nrcl-gap", inputs: ["horizontal", "vertical", "divider"] }, { kind: "component", type: i5.RowListPaginationComponent, selector: "nrcl-row-list-pagination", inputs: ["paginationId", "pageSizeOptions", "pageSize", "pageNumber", "rowCount", "showPageSize", "noRowsMessage"], outputs: ["pageSizeChange", "pageNumberChange"] }, { kind: "component", type: i6.IconComponent, selector: "nrcl-icon", inputs: ["small", "large"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[nrclTooltip]", inputs: ["nrclTooltip", "nrclTooltipContext", "nrclTooltipClass", "nrclTooltipDelay"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.PaginatePipe, name: "paginate" }] }); }
|
|
161
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScheduleComponent, selector: "nrcl-schedule", inputs: { provider: "provider", startDate: "startDate", weekStart: ["weekStart", "weekStart", numberAttribute], dayCount: ["dayCount", "dayCount", numberAttribute], menu: "menu", hover: "hover", pagination: "pagination", heading: "heading", highlightDate: "highlightDate", loadingMessage: "loadingMessage" }, host: { properties: { "style.--nrcl-schedule-day-count": "this.dayCount" } }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ScheduleRowHeadingDirective, descendants: true }, { propertyName: "itemTemplates", predicate: ScheduleItemDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ( rows?.length > 0 ) {\n <div class=\"schedule\"\n [class.heading]=\"heading\"\n >\n @if ( heading ) {\n <div class=\"upper-left\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"row weeks\">\n @for ( week of _weeks; track $index ) {\n @if ( week.span == 1 ) {\n <div class=\"week\">\n {{ week.start }}\n </div>\n }\n @else {\n <div class=\"week\" [style.grid-column]=\"'span ' + week.span\">\n {{ week.start }} - {{ week.end }}\n </div>\n }\n }\n </div>\n\n <div class=\"row days\"> \n @for ( day of _days; track $index ) {\n <div class=\"day\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.first]=\"day.isFirst\"\n [class.highlight]=\"day.isHighlight\"\n >\n <div class=\"day-name\">{{ day.dayName }}</div>\n <div class=\"date\">{{ day.monthDay }}</div>\n </div>\n }\n </div>\n\n @for ( row of rows | paginate: paginateState( 'nrcl-schedule' ); track row.id; let rowIndex = $index ) {\n <div class=\"row items\" [class]=\"row.rowClass\">\n @if ( heading ) {\n <div class=\"outer heading\">\n <div class=\"inner heading\">\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate?.template\" \n [ngTemplateOutletContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata } }\"\n ></ng-container>\n </div>\n </div> \n }\n\n @if ( row.items | async; as rowItems ) {\n @for ( item of rowItems; track item.id; let colIndex = $index ) {\n <div class=\"outer item\"\n [class.menu-open]=\"itemMenu.menuOpen\"\n [class.highlight]=\"_days[ colIndex ].isHighlight\"\n [class.hover]=\"hover\"\n >\n <div class=\"inner item\" #itemMenu=\"matMenuTrigger\"\n [class]=\"'item-' + item.name\" \n matRipple\n [matRippleDisabled]=\"!hover\"\n [matMenuTriggerFor]=\"menu\"\n [matMenuTriggerData]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [nrclTooltip]=\"item?.tooltip?.()\"\n nrclTooltipClass=\"schedule\"\n [nrclTooltipContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [class.travel]=\"item?.travel\"\n >\n <ng-container \n [ngTemplateOutlet]=\"_templates[ rowIndex ][ colIndex ] || empty\" \n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n \n @let icons = item?.icons?.();\n @if ( icons && icons.length > 0 ) {\n <div class=\"icons\">\n @for ( icon of icons; track icon ) {\n <nrcl-icon small>{{ icon }}</nrcl-icon>\n } \n </div>\n }\n </div>\n </div>\n }\n }\n @else {\n @for ( day of _days; track day ) {\n <div class=\"item item-loading\"></div>\n }\n }\n </div>\n }\n </div>\n}\n\n@if ( rows?.length > 0 && pagination ) {\n <nrcl-gap/>\n}\n\n@if ( pagination ) {\n @if ( isFirstLoad ) {\n <div class=\"loading-rows\">{{ loadingMessage }}</div>\n }\n @else {\n <nrcl-row-list-pagination\n paginationId=\"nrcl-schedule\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n }\n}\n\n<ng-template #empty>\n</ng-template>\n", styles: ["::ng-deep :root{--nrcl-schedule-border-color: #c6c8cb;--nrcl-schedule-background-color: white;--nrcl-schedule-alternate-background-color: #f2f2f2;--nrcl-schedule-hover-background-color: #d7d7d7;--nrcl-schedule-row-weeks-height: 30px;--nrcl-schedule-row-weeks-font-size: 15px;--nrcl-schedule-row-weeks-font-weight: bold;--nrcl-schedule-row-weeks-foreground-color: black;--nrcl-schedule-row-days-height: 45px;--nrcl-schedule-row-days-font-size: 15px;--nrcl-schedule-row-days-font-weight: normal;--nrcl-schedule-row-days-foreground-color: black;--nrcl-schedule-row-days-weekend-background-color: #e0f8fc;--nrcl-schedule-row-days-today-background-color: #fcf8d9;--nrcl-schedule-row-days-highlight-background-color: #eafce8;--nrcl-schedule-row-schedule-height: 70px;--nrcl-schedule-heading-width: 300px;--nrcl-schedule-item-width: 80px}:host{display:flex;flex-direction:column;font-family:var(--nrcl-font-family)}:host .schedule{display:grid;grid-template-columns:repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width));overflow:auto;height:100%;flex-grow:1}:host .schedule.heading{grid-template-columns:var(--nrcl-schedule-heading-width) repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width))}:host .schedule.heading .upper-left{grid-row:1/span 2;grid-column:1;border-bottom:1px solid var(--nrcl-schedule-border-color);position:sticky;top:0;left:0;z-index:2;background:var(--nrcl-schedule-background-color)}:host .schedule.heading .row .outer.heading{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule.heading .row.items .outer.heading{box-sizing:border-box;cursor:default;position:sticky;left:0;z-index:1;height:var(--nrcl-schedule-row-schedule-height)}:host .schedule.heading .row.items .outer.heading .heading{flex-grow:1;cursor:default;height:100%}:host .schedule .row{display:contents}:host .schedule .row.weeks>*{height:var(--nrcl-schedule-row-weeks-height)}:host .schedule .row.weeks>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.days>*{height:var(--nrcl-schedule-row-days-height)}:host .schedule .row.days>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.heading,:host .schedule .row .day,:host .schedule .row .week{border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.item:last-child{border-right:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row:last-child .outer.item{border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .week{border-top:1px solid var(--nrcl-schedule-border-color);display:flex;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-weeks-font-size);font-weight:var(--nrcl-schedule-row-weeks-font-weight);color:var(--nrcl-schedule-row-weeks-foreground-color);position:sticky;top:0;background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-days-font-size);font-weight:var(--nrcl-schedule-row-days-font-weight);color:var(--nrcl-schedule-row-days-foreground-color);position:sticky;top:calc(var(--nrcl-schedule-row-weeks-height) + 2px);background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day .day-name{font-size:13px}:host .schedule .row .day.weekend{background-color:var(--nrcl-schedule-row-days-weekend-background-color)}:host .schedule .row .day.today{background-color:var(--nrcl-schedule-row-days-today-background-color)}:host .schedule .row .day.highlight{background-color:var(--nrcl-schedule-row-days-highlight-background-color)}:host .schedule .row .day.first:after{content:\"\";position:absolute;top:0;left:0;bottom:0;border-left:2px solid black}:host .schedule .row.items .outer.item{box-sizing:border-box;height:var(--nrcl-schedule-row-schedule-height);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item.hover:hover .item{background-color:#06e;color:#fff}:host .schedule .row.items .outer.item.menu-open .item{background-color:#036;color:#fff}:host .schedule .row.items .outer.item .item{flex-grow:1;cursor:pointer;position:relative;padding:4px 4px 8px}:host .schedule .row.items .outer.item .item .icons{position:absolute;right:2px;bottom:2px;display:flex;gap:2px;background-color:#f1ebe4;border-radius:4px;padding:3px;color:var(--nrcl-schedule-row-days-foreground-color)}:host .schedule .row.items .outer.item .item.travel{position:relative}:host .schedule .row.items .outer.item .item.travel:after{content:\"\";position:absolute;inset:0 0 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABAQMAAAD+YPzoAAAABlBMVEX///8AAABVwtN+AAAAAnRSTlP/AOW3MEoAAAAMSURBVHicY+BwEgAAALAAW97nJhUAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:calc(100% - 8px) 3px;background-position:bottom}:host .schedule .row:nth-child(odd) .outer{background-color:var(--nrcl-schedule-background-color)}:host .schedule .row:nth-child(2n) .outer{background-color:var(--nrcl-schedule-alternate-background-color)}:host .schedule .row:hover .outer{background-color:var(--nrcl-schedule-hover-background-color)}.empty{height:100%;display:flex;justify-content:center;align-items:center;color:#aaa}::ng-deep .cdk-overlay-container .nrcl-schedule-multiline .mdc-tooltip__surface{white-space:pre-line;max-width:unset;text-align:left}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i4.GapComponent, selector: "nrcl-gap", inputs: ["horizontal", "vertical", "divider"] }, { kind: "component", type: i5.RowListPaginationComponent, selector: "nrcl-row-list-pagination", inputs: ["paginationId", "pageSizeOptions", "pageSize", "pageNumber", "rowCount", "showPageSize", "noRowsMessage"], outputs: ["pageSizeChange", "pageNumberChange"] }, { kind: "component", type: i6.IconComponent, selector: "nrcl-icon", inputs: ["small", "large"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[nrclTooltip]", inputs: ["nrclTooltip", "nrclTooltipContext", "nrclTooltipClass", "nrclTooltipDelay"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.PaginatePipe, name: "paginate" }] }); }
|
|
161
162
|
}
|
|
162
163
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleComponent, decorators: [{
|
|
163
164
|
type: Component,
|
|
164
165
|
args: [{ selector: 'nrcl-schedule', host: {
|
|
165
166
|
'[style.--nrcl-schedule-day-count]': 'this.dayCount'
|
|
166
|
-
}, template: "@if ( rows?.length > 0 ) {\n <div class=\"schedule\"\n [class.heading]=\"heading\"\n >\n @if ( heading ) {\n <div class=\"upper-left\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"row weeks\">\n @for ( week of _weeks; track $index ) {\n @if ( week.span == 1 ) {\n <div class=\"week\">\n {{ week.start }}\n </div>\n }\n @else {\n <div class=\"week\" [style.grid-column]=\"'span ' + week.span\">\n {{ week.start }} - {{ week.end }}\n </div>\n }\n }\n </div>\n\n <div class=\"row days\"> \n @for ( day of _days; track $index ) {\n <div class=\"day\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.first]=\"day.isFirst\"\n [class.highlight]=\"day.isHighlight\"\n >\n <div class=\"day-name\">{{ day.dayName }}</div>\n <div class=\"date\">{{ day.monthDay }}</div>\n </div>\n }\n </div>\n\n @for ( row of rows | paginate: paginateState( 'nrcl-schedule' ); track row.id; let rowIndex = $index ) {\n <div class=\"row items\" [class]=\"row.rowClass\">\n @if ( heading ) {\n <div class=\"outer heading\">\n <div class=\"inner heading\">\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate?.template\" \n [ngTemplateOutletContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata } }\"\n ></ng-container>\n </div>\n </div> \n }\n\n @if ( row.items | async; as rowItems ) {\n @for ( item of rowItems; track item.id; let colIndex = $index ) {\n <div class=\"outer item\"\n [class.menu-open]=\"itemMenu.menuOpen\"\n [class.highlight]=\"_days[ colIndex ].isHighlight\"\n [class.hover]=\"hover\"\n >\n <div class=\"inner item\" #itemMenu=\"matMenuTrigger\"\n [class]=\"'item-' + item.name\" \n matRipple\n [matRippleDisabled]=\"!hover\"\n [matMenuTriggerFor]=\"menu\"\n [matMenuTriggerData]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [nrclTooltip]=\"item?.tooltip?.()\"\n nrclTooltipClass=\"schedule\"\n [nrclTooltipContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [class.travel]=\"item?.travel\"\n >\n <ng-container \n [ngTemplateOutlet]=\"_templates[ rowIndex ][ colIndex ] || empty\" \n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n \n @let icons = item?.icons?.();\n @if ( icons && icons.length > 0 ) {\n <div class=\"icons\">\n @for ( icon of icons; track icon ) {\n <nrcl-icon small>{{ icon }}</nrcl-icon>\n } \n </div>\n }\n </div>\n </div>\n }\n }\n @else {\n @for ( day of _days; track day ) {\n <div class=\"item item-loading\"></div>\n }\n }\n </div>\n }\n </div>\n}\n\n@if ( rows?.length > 0 && pagination ) {\n <nrcl-gap/>\n}\n\n@if ( pagination ) {\n <nrcl-row-list-pagination\n paginationId=\"nrcl-schedule\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n}\n\n<ng-template #empty>\n</ng-template>\n", styles: ["::ng-deep :root{--nrcl-schedule-border-color: #c6c8cb;--nrcl-schedule-background-color: white;--nrcl-schedule-alternate-background-color: #f2f2f2;--nrcl-schedule-hover-background-color: #d7d7d7;--nrcl-schedule-row-weeks-height: 30px;--nrcl-schedule-row-weeks-font-size: 15px;--nrcl-schedule-row-weeks-font-weight: bold;--nrcl-schedule-row-weeks-foreground-color: black;--nrcl-schedule-row-days-height: 45px;--nrcl-schedule-row-days-font-size: 15px;--nrcl-schedule-row-days-font-weight: normal;--nrcl-schedule-row-days-foreground-color: black;--nrcl-schedule-row-days-weekend-background-color: #e0f8fc;--nrcl-schedule-row-days-today-background-color: #fcf8d9;--nrcl-schedule-row-days-highlight-background-color: #eafce8;--nrcl-schedule-row-schedule-height: 70px;--nrcl-schedule-heading-width: 300px;--nrcl-schedule-item-width: 80px}:host{display:flex;flex-direction:column;font-family:var(--nrcl-font-family)}:host .schedule{display:grid;grid-template-columns:repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width));overflow:auto;height:100%;flex-grow:1}:host .schedule.heading{grid-template-columns:var(--nrcl-schedule-heading-width) repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width))}:host .schedule.heading .upper-left{grid-row:1/span 2;grid-column:1;border-bottom:1px solid var(--nrcl-schedule-border-color);position:sticky;top:0;left:0;z-index:2;background:var(--nrcl-schedule-background-color)}:host .schedule.heading .row .outer.heading{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule.heading .row.items .outer.heading{box-sizing:border-box;cursor:default;position:sticky;left:0;z-index:1;height:var(--nrcl-schedule-row-schedule-height)}:host .schedule.heading .row.items .outer.heading .heading{flex-grow:1;cursor:default;height:100%}:host .schedule .row{display:contents}:host .schedule .row.weeks>*{height:var(--nrcl-schedule-row-weeks-height)}:host .schedule .row.weeks>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.days>*{height:var(--nrcl-schedule-row-days-height)}:host .schedule .row.days>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.heading,:host .schedule .row .day,:host .schedule .row .week{border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.item:last-child{border-right:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row:last-child .outer.item{border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .week{border-top:1px solid var(--nrcl-schedule-border-color);display:flex;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-weeks-font-size);font-weight:var(--nrcl-schedule-row-weeks-font-weight);color:var(--nrcl-schedule-row-weeks-foreground-color);position:sticky;top:0;background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-days-font-size);font-weight:var(--nrcl-schedule-row-days-font-weight);color:var(--nrcl-schedule-row-days-foreground-color);position:sticky;top:calc(var(--nrcl-schedule-row-weeks-height) + 2px);background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day .day-name{font-size:13px}:host .schedule .row .day.weekend{background-color:var(--nrcl-schedule-row-days-weekend-background-color)}:host .schedule .row .day.today{background-color:var(--nrcl-schedule-row-days-today-background-color)}:host .schedule .row .day.highlight{background-color:var(--nrcl-schedule-row-days-highlight-background-color)}:host .schedule .row .day.first:after{content:\"\";position:absolute;top:0;left:0;bottom:0;border-left:2px solid black}:host .schedule .row.items .outer.item{box-sizing:border-box;height:var(--nrcl-schedule-row-schedule-height);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item.hover:hover .item{background-color:#06e;color:#fff}:host .schedule .row.items .outer.item.menu-open .item{background-color:#036;color:#fff}:host .schedule .row.items .outer.item .item{flex-grow:1;cursor:pointer;position:relative;padding:4px 4px 8px}:host .schedule .row.items .outer.item .item .icons{position:absolute;right:2px;bottom:2px;display:flex;gap:2px;background-color:#f1ebe4;border-radius:4px;padding:3px;color:var(--nrcl-schedule-row-days-foreground-color)}:host .schedule .row.items .outer.item .item.travel{position:relative}:host .schedule .row.items .outer.item .item.travel:after{content:\"\";position:absolute;inset:0 0 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABAQMAAAD+YPzoAAAABlBMVEX///8AAABVwtN+AAAAAnRSTlP/AOW3MEoAAAAMSURBVHicY+BwEgAAALAAW97nJhUAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:calc(100% - 8px) 3px;background-position:bottom}:host .schedule .row:nth-child(odd) .outer{background-color:var(--nrcl-schedule-background-color)}:host .schedule .row:nth-child(2n) .outer{background-color:var(--nrcl-schedule-alternate-background-color)}:host .schedule .row:hover .outer{background-color:var(--nrcl-schedule-hover-background-color)}.empty{height:100%;display:flex;justify-content:center;align-items:center;color:#aaa}::ng-deep .cdk-overlay-container .nrcl-schedule-multiline .mdc-tooltip__surface{white-space:pre-line;max-width:unset;text-align:left}\n"] }]
|
|
167
|
+
}, template: "@if ( rows?.length > 0 ) {\n <div class=\"schedule\"\n [class.heading]=\"heading\"\n >\n @if ( heading ) {\n <div class=\"upper-left\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"row weeks\">\n @for ( week of _weeks; track $index ) {\n @if ( week.span == 1 ) {\n <div class=\"week\">\n {{ week.start }}\n </div>\n }\n @else {\n <div class=\"week\" [style.grid-column]=\"'span ' + week.span\">\n {{ week.start }} - {{ week.end }}\n </div>\n }\n }\n </div>\n\n <div class=\"row days\"> \n @for ( day of _days; track $index ) {\n <div class=\"day\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.first]=\"day.isFirst\"\n [class.highlight]=\"day.isHighlight\"\n >\n <div class=\"day-name\">{{ day.dayName }}</div>\n <div class=\"date\">{{ day.monthDay }}</div>\n </div>\n }\n </div>\n\n @for ( row of rows | paginate: paginateState( 'nrcl-schedule' ); track row.id; let rowIndex = $index ) {\n <div class=\"row items\" [class]=\"row.rowClass\">\n @if ( heading ) {\n <div class=\"outer heading\">\n <div class=\"inner heading\">\n <ng-container \n [ngTemplateOutlet]=\"headerTemplate?.template\" \n [ngTemplateOutletContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata } }\"\n ></ng-container>\n </div>\n </div> \n }\n\n @if ( row.items | async; as rowItems ) {\n @for ( item of rowItems; track item.id; let colIndex = $index ) {\n <div class=\"outer item\"\n [class.menu-open]=\"itemMenu.menuOpen\"\n [class.highlight]=\"_days[ colIndex ].isHighlight\"\n [class.hover]=\"hover\"\n >\n <div class=\"inner item\" #itemMenu=\"matMenuTrigger\"\n [class]=\"'item-' + item.name\" \n matRipple\n [matRippleDisabled]=\"!hover\"\n [matMenuTriggerFor]=\"menu\"\n [matMenuTriggerData]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [nrclTooltip]=\"item?.tooltip?.()\"\n nrclTooltipClass=\"schedule\"\n [nrclTooltipContext]=\"{ $implicit: { heading: row.heading, metadata: row.metadata, item: item } }\"\n [class.travel]=\"item?.travel\"\n >\n <ng-container \n [ngTemplateOutlet]=\"_templates[ rowIndex ][ colIndex ] || empty\" \n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n \n @let icons = item?.icons?.();\n @if ( icons && icons.length > 0 ) {\n <div class=\"icons\">\n @for ( icon of icons; track icon ) {\n <nrcl-icon small>{{ icon }}</nrcl-icon>\n } \n </div>\n }\n </div>\n </div>\n }\n }\n @else {\n @for ( day of _days; track day ) {\n <div class=\"item item-loading\"></div>\n }\n }\n </div>\n }\n </div>\n}\n\n@if ( rows?.length > 0 && pagination ) {\n <nrcl-gap/>\n}\n\n@if ( pagination ) {\n @if ( isFirstLoad ) {\n <div class=\"loading-rows\">{{ loadingMessage }}</div>\n }\n @else {\n <nrcl-row-list-pagination\n paginationId=\"nrcl-schedule\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n }\n}\n\n<ng-template #empty>\n</ng-template>\n", styles: ["::ng-deep :root{--nrcl-schedule-border-color: #c6c8cb;--nrcl-schedule-background-color: white;--nrcl-schedule-alternate-background-color: #f2f2f2;--nrcl-schedule-hover-background-color: #d7d7d7;--nrcl-schedule-row-weeks-height: 30px;--nrcl-schedule-row-weeks-font-size: 15px;--nrcl-schedule-row-weeks-font-weight: bold;--nrcl-schedule-row-weeks-foreground-color: black;--nrcl-schedule-row-days-height: 45px;--nrcl-schedule-row-days-font-size: 15px;--nrcl-schedule-row-days-font-weight: normal;--nrcl-schedule-row-days-foreground-color: black;--nrcl-schedule-row-days-weekend-background-color: #e0f8fc;--nrcl-schedule-row-days-today-background-color: #fcf8d9;--nrcl-schedule-row-days-highlight-background-color: #eafce8;--nrcl-schedule-row-schedule-height: 70px;--nrcl-schedule-heading-width: 300px;--nrcl-schedule-item-width: 80px}:host{display:flex;flex-direction:column;font-family:var(--nrcl-font-family)}:host .schedule{display:grid;grid-template-columns:repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width));overflow:auto;height:100%;flex-grow:1}:host .schedule.heading{grid-template-columns:var(--nrcl-schedule-heading-width) repeat(var(--nrcl-schedule-day-count),var(--nrcl-schedule-item-width))}:host .schedule.heading .upper-left{grid-row:1/span 2;grid-column:1;border-bottom:1px solid var(--nrcl-schedule-border-color);position:sticky;top:0;left:0;z-index:2;background:var(--nrcl-schedule-background-color)}:host .schedule.heading .row .outer.heading{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule.heading .row.items .outer.heading{box-sizing:border-box;cursor:default;position:sticky;left:0;z-index:1;height:var(--nrcl-schedule-row-schedule-height)}:host .schedule.heading .row.items .outer.heading .heading{flex-grow:1;cursor:default;height:100%}:host .schedule .row{display:contents}:host .schedule .row.weeks>*{height:var(--nrcl-schedule-row-weeks-height)}:host .schedule .row.weeks>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.days>*{height:var(--nrcl-schedule-row-days-height)}:host .schedule .row.days>*:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.heading,:host .schedule .row .day,:host .schedule .row .week{border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .outer.item:last-child{border-right:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row:last-child .outer.item{border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row .week{border-top:1px solid var(--nrcl-schedule-border-color);display:flex;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-weeks-font-size);font-weight:var(--nrcl-schedule-row-weeks-font-weight);color:var(--nrcl-schedule-row-weeks-foreground-color);position:sticky;top:0;background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:var(--nrcl-schedule-row-days-font-size);font-weight:var(--nrcl-schedule-row-days-font-weight);color:var(--nrcl-schedule-row-days-foreground-color);position:sticky;top:calc(var(--nrcl-schedule-row-weeks-height) + 2px);background-color:var(--nrcl-schedule-background-color);z-index:1}:host .schedule .row .day .day-name{font-size:13px}:host .schedule .row .day.weekend{background-color:var(--nrcl-schedule-row-days-weekend-background-color)}:host .schedule .row .day.today{background-color:var(--nrcl-schedule-row-days-today-background-color)}:host .schedule .row .day.highlight{background-color:var(--nrcl-schedule-row-days-highlight-background-color)}:host .schedule .row .day.first:after{content:\"\";position:absolute;top:0;left:0;bottom:0;border-left:2px solid black}:host .schedule .row.items .outer.item{box-sizing:border-box;height:var(--nrcl-schedule-row-schedule-height);display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;border-right:1px solid var(--nrcl-schedule-border-color);border-bottom:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item:first-child{border-left:1px solid var(--nrcl-schedule-border-color)}:host .schedule .row.items .outer.item.hover:hover .item{background-color:#06e;color:#fff}:host .schedule .row.items .outer.item.menu-open .item{background-color:#036;color:#fff}:host .schedule .row.items .outer.item .item{flex-grow:1;cursor:pointer;position:relative;padding:4px 4px 8px}:host .schedule .row.items .outer.item .item .icons{position:absolute;right:2px;bottom:2px;display:flex;gap:2px;background-color:#f1ebe4;border-radius:4px;padding:3px;color:var(--nrcl-schedule-row-days-foreground-color)}:host .schedule .row.items .outer.item .item.travel{position:relative}:host .schedule .row.items .outer.item .item.travel:after{content:\"\";position:absolute;inset:0 0 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABAQMAAAD+YPzoAAAABlBMVEX///8AAABVwtN+AAAAAnRSTlP/AOW3MEoAAAAMSURBVHicY+BwEgAAALAAW97nJhUAAAAASUVORK5CYII=);background-repeat:no-repeat;background-size:calc(100% - 8px) 3px;background-position:bottom}:host .schedule .row:nth-child(odd) .outer{background-color:var(--nrcl-schedule-background-color)}:host .schedule .row:nth-child(2n) .outer{background-color:var(--nrcl-schedule-alternate-background-color)}:host .schedule .row:hover .outer{background-color:var(--nrcl-schedule-hover-background-color)}.empty{height:100%;display:flex;justify-content:center;align-items:center;color:#aaa}::ng-deep .cdk-overlay-container .nrcl-schedule-multiline .mdc-tooltip__surface{white-space:pre-line;max-width:unset;text-align:left}\n"] }]
|
|
167
168
|
}], propDecorators: { provider: [{
|
|
168
169
|
type: Input
|
|
169
170
|
}], startDate: [{
|
|
@@ -184,6 +185,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
184
185
|
type: Input
|
|
185
186
|
}], highlightDate: [{
|
|
186
187
|
type: Input
|
|
188
|
+
}], loadingMessage: [{
|
|
189
|
+
type: Input
|
|
187
190
|
}], itemTemplates: [{
|
|
188
191
|
type: ContentChildren,
|
|
189
192
|
args: [ScheduleItemDirective]
|
|
@@ -191,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
191
194
|
type: ContentChild,
|
|
192
195
|
args: [ScheduleRowHeadingDirective]
|
|
193
196
|
}] } });
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvc2NoZWR1bGUvc2NoZWR1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvc2NoZWR1bGUvc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFvRCxNQUFNLGVBQWUsQ0FBQztBQUU5SixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBSzdELE1BQU0sT0FBTywyQkFBMkI7SUFDcEMsWUFDVyxRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUNuQyxDQUFDOytHQUhNLDJCQUEyQjttR0FBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFFO29CQUNSLFFBQVEsRUFBRSwwQkFBMEI7aUJBQ3ZDOztBQU9ELG1GQUFtRjtBQUtuRixNQUFNLE9BQU8scUJBQXFCO0lBRzlCLFlBQ1csUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFDbkMsQ0FBQzsrR0FMTSxxQkFBcUI7bUdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBRTtvQkFDUixRQUFRLEVBQUUsb0JBQW9CO2lCQUNqQztnRkFFZ0MsSUFBSTtzQkFBaEMsS0FBSzt1QkFBRSxrQkFBa0I7O0FBMEQ5QixtRkFBbUY7QUFVbkYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQTJCO0lBUmxFOztR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QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVrQyxhQUFhO3NCQUFwRCxlQUFlO3VCQUFDLHFCQUFxQjtnQkFDSyxjQUFjO3NCQUF4RCxZQUFZO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgSW5wdXQsIG51bWJlckF0dHJpYnV0ZSwgT25DaGFuZ2VzLCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51UGFuZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluaXRpYWxTdGF0ZSwgUGFnaW5hdGlvblN0YXRlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wYWdpbmF0aW9uLmJhc2UnO1xuaW1wb3J0IHsgUm93TGlzdEJhc2UgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3Jvdy1saXN0LmJhc2UnO1xuXG5ARGlyZWN0aXZlKCB7XG4gICAgc2VsZWN0b3I6ICdbbnJjbFNjaGVkdWxlUm93SGVhZGluZ10nXG59IClcbmV4cG9ydCBjbGFzcyBTY2hlZHVsZVJvd0hlYWRpbmdEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT5cbiAgICApe31cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQERpcmVjdGl2ZSgge1xuICAgIHNlbGVjdG9yOiAnW25yY2xTY2hlZHVsZUl0ZW1dJ1xufSApXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVJdGVtRGlyZWN0aXZlIHtcbiAgICBASW5wdXQoICducmNsU2NoZWR1bGVJdGVtJyApIG5hbWU/OiBzdHJpbmdcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT5cbiAgICApe31cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgU2NoZWR1bGVSb3dJdGVtID0ge1xuICAgIGlkOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGljb25zPzogKCkgPT4gc3RyaW5nW10sXG4gICAgdG9vbHRpcD86ICgpID0+IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgdHJhdmVsPzogYm9vbGVhbixcbn1cblxuZXhwb3J0IHR5cGUgU2NoZWR1bGVSb3cgPSB7XG4gICAgaWQ/OiBzdHJpbmcsXG4gICAgbWV0YWRhdGE/OiBhbnksXG4gICAgaGVhZGluZzogYW55LFxuICAgIGl0ZW1zOiBQcm9taXNlPFNjaGVkdWxlUm93SXRlbVtdPixcbiAgICByb3dDbGFzcz86IHN0cmluZyxcbn1cblxuZXhwb3J0IHR5cGUgU2NoZWR1bGUgPSBTY2hlZHVsZVJvd1tdXG5cbnR5cGUgRGF5ID0ge1xuICAgIGRheU5hbWU6IHN0cmluZyxcbiAgICBtb250aERheTogbnVtYmVyLFxuICAgIGRhdGU6IHN0cmluZyxcbiAgICBpc1dlZWtlbmQ6IGJvb2xlYW4sXG4gICAgaXNUb2RheTogYm9vbGVhbixcbiAgICBpc0ZpcnN0OiBib29sZWFuLFxuICAgIGlzSGlnaGxpZ2h0OiBib29sZWFuLFxufVxuXG50eXBlIFdlZWsgPSB7XG4gICAgc3RhcnQ6IHN0cmluZyxcbiAgICBlbmQ6IHN0cmluZyxcbiAgICBzcGFuOiBudW1iZXJcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IHR5cGUgRmV0Y2hTY2hlZHVsZVJvd1BhcmFtZXRlcnMgPSB7XG4gICAgcmVzb3VyY2VJZDogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVQcm92aWRlciB7XG4gICAgc3RhcnRsb2FkU2NoZWR1bGU/KCBpbm5lcjogKCkgPT4gUHJvbWlzZTxhbnk+ICk6IFByb21pc2U8YW55PlxuICAgIGZldGNoU2NoZWR1bGUoKTogT2JzZXJ2YWJsZTxhbnk+XG4gICAgcGFyc2VTY2hlZHVsZSggcmVzOiBhbnkgKTogU2NoZWR1bGVcbiAgICBwYXJzZVRvdGFsUm93Q291bnQ/KHJlczogYW55KTogbnVtYmVyIFxuICAgIGdldEluaXRpYWxQYWdlU3RhdGUoKTogSW5pdGlhbFN0YXRlPHt9PlxuICAgIGNvbXBsZXRlZExvYWRTY2hlZHVsZT8oIGlubmVyOiAoKSA9PiB2b2lkICk6IGFueVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AQ29tcG9uZW50KCB7XG4gICAgc2VsZWN0b3I6ICducmNsLXNjaGVkdWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9zY2hlZHVsZS5jb21wb25lbnQuc2NzcycsXG4gICAgaG9zdDoge1xuICAgICAgICAnW3N0eWxlLi0tbnJjbC1zY2hlZHVsZS1kYXktY291bnRdJzogJ3RoaXMuZGF5Q291bnQnXG4gICAgfVxufSApXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVDb21wb25lbnQgZXh0ZW5kcyBSb3dMaXN0QmFzZTx7fSxTY2hlZHVsZVJvdz4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIHByb3ZpZGVyPzogU2NoZWR1bGVQcm92aWRlclxuICAgIEBJbnB1dCgpIHN0YXJ0RGF0ZT86IHN0cmluZ1xuICAgIEBJbnB1dCggeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9ICkgd2Vla1N0YXJ0ID0gMFxuICAgIEBJbnB1dCggeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9ICkgZGF5Q291bnQ/OiBudW1iZXJcbiAgICBASW5wdXQoKSBtZW51PzogTWF0TWVudVBhbmVsXG4gICAgQElucHV0KCkgaG92ZXIgPSB0cnVlXG4gICAgQElucHV0KCkgcGFnaW5hdGlvbiA9IHRydWVcbiAgICBASW5wdXQoKSBoZWFkaW5nID0gdHJ1ZVxuICAgIEBJbnB1dCgpIGhpZ2hsaWdodERhdGU/OiBzdHJpbmdcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oU2NoZWR1bGVJdGVtRGlyZWN0aXZlKSBpdGVtVGVtcGxhdGVzITogUXVlcnlMaXN0PFNjaGVkdWxlSXRlbURpcmVjdGl2ZT5cbiAgICBAQ29udGVudENoaWxkKFNjaGVkdWxlUm93SGVhZGluZ0RpcmVjdGl2ZSkgaGVhZGVyVGVtcGxhdGUhOiBTY2hlZHVsZVJvd0hlYWRpbmdEaXJlY3RpdmVcblxuICAgIHByb3RlY3RlZCBfZGF5czogRGF5W10gPSBbXVxuICAgIHByb3RlY3RlZCBfd2Vla3M6IFdlZWtbXSA9IFtdXG4gICAgcHJvdGVjdGVkIF90ZW1wbGF0ZXM6IFRlbXBsYXRlUmVmPGFueT5bXVtdID0gW11cblxuICAgIG5nT25DaGFuZ2VzKCBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzICk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzLnJlZnJlc2hSb3dMaXN0KClcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdTY2hlZHVsZUNvbXBvbmVudC5uZ0FmdGVyVmlld0luaXQnKVxuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKVxuICAgIH1cblxuICAgIGxvYWRSb3dMaXN0KCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIGlmICggIXRoaXMucHJvdmlkZXI/LnN0YXJ0bG9hZFNjaGVkdWxlICkgdGhyb3cgRXJyb3IoICdTY2hlZHVsZUNvbXBvbmVudC5wcm92aWRlci5zdGFydGxvYWRTY2hlZHVsZSBub3Qgc2V0JyApXG4gICAgICAgIGlmICggIXRoaXMucHJvdmlkZXI/LnN0YXJ0bG9hZFNjaGVkdWxlICkgcmV0dXJuIHN1cGVyLmxvYWRSb3dMaXN0KClcbiAgICAgXG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLnN0YXJ0bG9hZFNjaGVkdWxlKCAoKSA9PiB7IHJldHVybiBzdXBlci5sb2FkUm93TGlzdCgpIH0gKVxuICAgIH1cblxuICAgIGZldGNoUm93TGlzdFBhZ2UoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgaWYgKCAhdGhpcy5wcm92aWRlcj8uZmV0Y2hTY2hlZHVsZSApIHRocm93IEVycm9yKCAnU2NoZWR1bGVDb21wb25lbnQucHJvdmlkZXIuZmV0Y2hTY2hlZHVsZSBub3Qgc2V0JyApXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXIuZmV0Y2hTY2hlZHVsZSgpXG4gICAgfVxuXG4gICAgcGFyc2VSb3dzKCByZXM6IGFueSApOiBTY2hlZHVsZVJvd1tdIHtcbiAgICAgICAgaWYgKCAhdGhpcy5wcm92aWRlcj8ucGFyc2VTY2hlZHVsZSApIHRocm93IEVycm9yKCAnU2NoZWR1bGVDb21wb25lbnQucHJvdmlkZXIucGFyc2VTY2hlZHVsZSBub3Qgc2V0JyApXG5cbiAgICAgICAgbGV0IHJvd3MgPSB0aGlzLnByb3ZpZGVyLnBhcnNlU2NoZWR1bGUoIHJlcyApXG4gICAgICAgIHJldHVybiB0aGlzLm1ha2VSb3dzKCByb3dzIClcbiAgICB9XG5cbiAgICBwYXJzZVRvdGFsUm93Q291bnQocmVzOiBhbnkpOiBudW1iZXIge1xuICAgICAgICBpZiAoICF0aGlzLnByb3ZpZGVyPy5wYXJzZVRvdGFsUm93Q291bnQgKSByZXR1cm4gc3VwZXIucGFyc2VUb3RhbFJvd0NvdW50KCByZXMgKVxuXG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLnBhcnNlVG90YWxSb3dDb3VudCggcmVzIClcbiAgICB9XG5cbiAgICBnZXRJbml0aWFsUGFnZVN0YXRlKCk6IEluaXRpYWxTdGF0ZTx7fT4ge1xuICAgICAgICBpZiAoICF0aGlzLnByb3ZpZGVyPy5nZXRJbml0aWFsUGFnZVN0YXRlICkgdGhyb3cgRXJyb3IoICdTY2hlZHVsZUNvbXBvbmVudC5wcm92aWRlci5nZXRJbml0aWFsUGFnZVN0YXRlIG5vdCBzZXQnIClcblxuICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlci5nZXRJbml0aWFsUGFnZVN0YXRlKClcbiAgICB9XG5cbiAgICBjb21wbGV0ZWRSb3dMaXN0UGFnZSgpOiBQYWdpbmF0aW9uU3RhdGU8e30+IHtcbiAgICAgICAgLy8gaWYgKCAhdGhpcy5wcm92aWRlcj8uY29tcGxldGVkTG9hZFNjaGVkdWxlICkgdGhyb3cgRXJyb3IoICdTY2hlZHVsZUNvbXBvbmVudC5wcm92aWRlci5jb21wbGV0ZWRSb3dMaXN0UGFnZSBub3Qgc2V0JyApXG4gICAgICAgIGlmICggIXRoaXMucHJvdmlkZXI/LmNvbXBsZXRlZExvYWRTY2hlZHVsZSApIHJldHVybiBzdXBlci5jb21wbGV0ZWRSb3dMaXN0UGFnZSgpIGFzIGFueVxuXG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLmNvbXBsZXRlZExvYWRTY2hlZHVsZSggKCkgPT4geyByZXR1cm4gc3VwZXIuY29tcGxldGVkUm93TGlzdFBhZ2UoKSB9IClcbiAgICB9XG5cbiAgICBvblNhbWVQYWdlRmlsdGVyQ2hhbmdlKCBldjoge30gKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyID0gZXZcbiAgICAgICAgdGhpcy5yZWZyZXNoUm93TGlzdCgpXG4gICAgfVxuXG4gICAgbWFrZVJvd3MoIHNjaGVkdWxlOiBTY2hlZHVsZSApOiBTY2hlZHVsZSB7XG4gICAgICAgIGxldCBzdGFydCA9IG1vbWVudCggdGhpcy5zdGFydERhdGUgKVxuICAgICAgICBsZXQgdG9kYXkgPSBtb21lbnQoKVxuXG4gICAgICAgIHRoaXMuX3dlZWtzID0gQXJyYXkuZnJvbSggeyBsZW5ndGg6IHRoaXMuZGF5Q291bnQhIH0gKS5yZWR1Y2U8V2Vla1tdPiggKCBhLCB4LCBpICkgPT4ge1xuICAgICAgICAgICAgbGV0IG0gPSBzdGFydC5jbG9uZSgpLmFkZCggaSwgJ2RheScgKVxuICAgICAgICAgICAgbGV0IGRhdGUgPSBtLmZvcm1hdCggJ01NTSBEJyApXG4gICAgICAgICAgICBsZXQgZGF5ID0gbS5kYXkoKVxuXG4gICAgICAgICAgICBpZiAoIGEubGVuZ3RoID09IDAgKSByZXR1cm4gYS5jb25jYXQoIHtcbiAgICAgICAgICAgICAgICBzdGFydDogZGF0ZSxcbiAgICAgICAgICAgICAgICBlbmQ6IGRhdGUsXG4gICAgICAgICAgICAgICAgc3BhbjogMVxuICAgICAgICAgICAgfSApXG5cbiAgICAgICAgICAgIGxldCBwcmV2ID0gYVsgYS5sZW5ndGggLSAxIF1cblxuICAgICAgICAgICAgaWYgKCBkYXkgPT0gdGhpcy53ZWVrU3RhcnQgKSByZXR1cm4gYS5jb25jYXQoIHtcbiAgICAgICAgICAgICAgICBzdGFydDogZGF0ZSxcbiAgICAgICAgICAgICAgICBlbmQ6IGRhdGUsXG4gICAgICAgICAgICAgICAgc3BhbjogMVxuICAgICAgICAgICAgfSApXG5cbiAgICAgICAgICAgIHByZXYuZW5kID0gZGF0ZVxuICAgICAgICAgICAgcHJldi5zcGFuICs9IDFcbiAgICAgICAgICAgIHJldHVybiBhXG4gICAgICAgIH0sIFtdIClcblxuICAgICAgICB0aGlzLl9kYXlzID0gQXJyYXkuZnJvbSggeyBsZW5ndGg6IHRoaXMuZGF5Q291bnQhIH0gKS5tYXAoICggeCwgaSApID0+IHtcbiAgICAgICAgICAgIGxldCBkID0gc3RhcnQuY2xvbmUoKS5hZGQoIGksICdkYXknIClcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZGF5TmFtZTogZC5mb3JtYXQoICdkZGQnICksXG4gICAgICAgICAgICAgICAgbW9udGhEYXk6IGQuZGF0ZSgpLFxuICAgICAgICAgICAgICAgIGRhdGU6IGQuZm9ybWF0KCAnWS1NTS1ERCcgKSxcbiAgICAgICAgICAgICAgICBpc0ZpcnN0OiBkLmRhdGUoKSA9PSAxLFxuICAgICAgICAgICAgICAgIGlzV2Vla2VuZDogZC5kYXkoKSA9PSAwIHx8IGQuZGF5KCkgPT0gNixcbiAgICAgICAgICAgICAgICBpc1RvZGF5OiBkLmlzU2FtZSggdG9kYXksICdkYXknICksXG4gICAgICAgICAgICAgICAgaXNIaWdobGlnaHQ6IGQuaXNTYW1lKCB0aGlzLmhpZ2hsaWdodERhdGUsICdkYXknIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSApXG5cbiAgICAgICAgdGhpcy5fdGVtcGxhdGVzID0gQXJyYXkuZnJvbSggeyBsZW5ndGg6IHNjaGVkdWxlLmxlbmd0aCB9IClcblxuICAgICAgICByZXR1cm4gc2NoZWR1bGUubWFwKCAoIHJvdywgaSApID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3RlbXBsYXRlc1sgaSBdID0gQXJyYXkuZnJvbSggeyBsZW5ndGg6IHRoaXMuZGF5Q291bnQhIH0gKVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGlkOiByb3cuaWQgPz8gU3RyaW5nKCBpICksXG4gICAgICAgICAgICAgICAgcm93Q2xhc3M6IHJvdy5yb3dDbGFzcyxcbiAgICAgICAgICAgICAgICBtZXRhZGF0YTogcm93Lm1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIGhlYWRpbmc6IHJvdy5oZWFkaW5nLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiByb3cuaXRlbXNcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oIHJvd0l0ZW1zID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKCB7IGxlbmd0aDogdGhpcy5kYXlDb3VudCEgfSApLm1hcCggKCB4LCBqICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByb3dJdGVtID0gcm93SXRlbXNbIGogXVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCByb3dJdGVtID09IG51bGwgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBTdHJpbmcoIGogKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdlbXB0eSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RlbXBsYXRlc1sgaSBdWyBqIF0gPSB0aGlzLml0ZW1UZW1wbGF0ZXM/LmZpbmQoIGkgPT4gaS5uYW1lID09IHJvd0l0ZW0/Lm5hbWUgICk/LnRlbXBsYXRlIVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvd0l0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gKVxuICAgICAgICAgICAgICAgICAgICB9IClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSApIHx8IFtdXG4gICAgfVxufVxuIiwiQGlmICggcm93cz8ubGVuZ3RoID4gMCApIHtcbiAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVcIlxuICAgICAgICBbY2xhc3MuaGVhZGluZ109XCJoZWFkaW5nXCJcbiAgICA+XG4gICAgICAgIEBpZiAoIGhlYWRpbmcgKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBwZXItbGVmdFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyB3ZWVrc1wiPlxuICAgICAgICAgICAgQGZvciAoIHdlZWsgb2YgX3dlZWtzOyB0cmFjayAkaW5kZXggKSB7XG4gICAgICAgICAgICAgICAgQGlmICggd2Vlay5zcGFuID09IDEgKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB3ZWVrLnN0YXJ0IH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrXCIgW3N0eWxlLmdyaWQtY29sdW1uXT1cIidzcGFuICcgKyB3ZWVrLnNwYW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHdlZWsuc3RhcnQgfX0gLSB7eyB3ZWVrLmVuZCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZGF5c1wiPiAgICBcbiAgICAgICAgICAgIEBmb3IgKCBkYXkgb2YgX2RheXM7IHRyYWNrICRpbmRleCApIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF5XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLndlZWtlbmRdPVwiZGF5LmlzV2Vla2VuZFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy50b2RheV09XCJkYXkuaXNUb2RheVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5maXJzdF09XCJkYXkuaXNGaXJzdFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oaWdobGlnaHRdPVwiZGF5LmlzSGlnaGxpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXktbmFtZVwiPnt7IGRheS5kYXlOYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlXCI+e3sgZGF5Lm1vbnRoRGF5IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBmb3IgKCByb3cgb2Ygcm93cyB8IHBhZ2luYXRlOiBwYWdpbmF0ZVN0YXRlKCAnbnJjbC1zY2hlZHVsZScgKTsgdHJhY2sgcm93LmlkOyBsZXQgcm93SW5kZXggPSAkaW5kZXggKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGl0ZW1zXCIgW2NsYXNzXT1cInJvdy5yb3dDbGFzc1wiPlxuICAgICAgICAgICAgICAgIEBpZiAoIGhlYWRpbmcgKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdXRlciBoZWFkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5uZXIgaGVhZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclRlbXBsYXRlPy50ZW1wbGF0ZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHsgaGVhZGluZzogcm93LmhlYWRpbmcsIG1ldGFkYXRhOiByb3cubWV0YWRhdGEgfSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgIFxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoIHJvdy5pdGVtcyB8IGFzeW5jOyBhcyByb3dJdGVtcyApIHtcbiAgICAgICAgICAgICAgICAgICAgQGZvciAoIGl0ZW0gb2Ygcm93SXRlbXM7IHRyYWNrIGl0ZW0uaWQ7IGxldCBjb2xJbmRleCA9ICRpbmRleCApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdXRlciBpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MubWVudS1vcGVuXT1cIml0ZW1NZW51Lm1lbnVPcGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGlnaGxpZ2h0XT1cIl9kYXlzWyBjb2xJbmRleCBdLmlzSGlnaGxpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaG92ZXJdPVwiaG92ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbm5lciBpdGVtXCIgI2l0ZW1NZW51PVwibWF0TWVudVRyaWdnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2l0ZW0tJyArIGl0ZW0ubmFtZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFJpcHBsZURpc2FibGVkXT1cIiFob3ZlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRGF0YV09XCJ7ICRpbXBsaWNpdDogeyBoZWFkaW5nOiByb3cuaGVhZGluZywgbWV0YWRhdGE6IHJvdy5tZXRhZGF0YSwgaXRlbTogaXRlbSB9IH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnJjbFRvb2x0aXBdPVwiaXRlbT8udG9vbHRpcD8uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBucmNsVG9vbHRpcENsYXNzPVwic2NoZWR1bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnJjbFRvb2x0aXBDb250ZXh0XT1cInsgJGltcGxpY2l0OiB7IGhlYWRpbmc6IHJvdy5oZWFkaW5nLCBtZXRhZGF0YTogcm93Lm1ldGFkYXRhLCBpdGVtOiBpdGVtIH0gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50cmF2ZWxdPVwiaXRlbT8udHJhdmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGVtcGxhdGVzWyByb3dJbmRleCBdWyBjb2xJbmRleCBdIHx8IGVtcHR5XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgaWNvbnMgPSBpdGVtPy5pY29ucz8uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIGljb25zICYmIGljb25zLmxlbmd0aCA+IDAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yICggaWNvbiBvZiBpY29uczsgdHJhY2sgaWNvbiApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5yY2wtaWNvbiBzbWFsbD57eyBpY29uIH19PC9ucmNsLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAZm9yICggZGF5IG9mIF9kYXlzOyB0cmFjayBkYXkgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbSBpdGVtLWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG5cbkBpZiAoIHJvd3M/Lmxlbmd0aCA+IDAgJiYgcGFnaW5hdGlvbiApIHtcbiAgICA8bnJjbC1nYXAvPlxufVxuXG5AaWYgKCBwYWdpbmF0aW9uICkge1xuICAgIDxucmNsLXJvdy1saXN0LXBhZ2luYXRpb25cbiAgICAgICAgcGFnaW5hdGlvbklkPVwibnJjbC1zY2hlZHVsZVwiXG4gICAgICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICAgIFtwYWdlTnVtYmVyXT1cInBhZ2VOdW1iZXJcIlxuICAgICAgICBbcm93Q291bnRdPVwidG90YWxSb3dDb3VudFwiXG4gICAgICAgIChwYWdlTnVtYmVyQ2hhbmdlKT1cIm9uUGFnZU51bWJlckNoYW5nZSggJGV2ZW50IClcIlxuICAgICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSggJGV2ZW50IClcIlxuICAgID48L25yY2wtcm93LWxpc3QtcGFnaW5hdGlvbj5cbn1cblxuPG5nLXRlbXBsYXRlICNlbXB0eT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvc2NoZWR1bGUvc2NoZWR1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvc2NoZWR1bGUvc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFvRCxNQUFNLGVBQWUsQ0FBQztBQUU5SixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBSzdELE1BQU0sT0FBTywyQkFBMkI7SUFDcEMsWUFDVyxRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUNuQyxDQUFDOytHQUhNLDJCQUEyQjttR0FBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFFO29CQUNSLFFBQVEsRUFBRSwwQkFBMEI7aUJBQ3ZDOztBQU9ELG1GQUFtRjtBQUtuRixNQUFNLE9BQU8scUJBQXFCO0lBRzlCLFlBQ1csUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFDbkMsQ0FBQzsrR0FMTSxxQkFBcUI7bUdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBRTtvQkFDUixRQUFRLEVBQUUsb0JBQW9CO2lCQUNqQztnRkFFZ0MsSUFBSTtzQkFBaEMsS0FBSzt1QkFBRSxrQkFBa0I7O0FBMEQ5QixtRkFBbUY7QUFVbkYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQTJCO0lBUmxFOztR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SztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFa0MsYUFBYTtzQkFBcEQsZUFBZTt1QkFBQyxxQkFBcUI7Z0JBQ0ssY0FBYztzQkFBeEQsWUFBWTt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIElucHV0LCBudW1iZXJBdHRyaWJ1dGUsIE9uQ2hhbmdlcywgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0TWVudVBhbmVsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbml0aWFsU3RhdGUsIFBhZ2luYXRpb25TdGF0ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcGFnaW5hdGlvbi5iYXNlJztcbmltcG9ydCB7IFJvd0xpc3RCYXNlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9yb3ctbGlzdC5iYXNlJztcblxuQERpcmVjdGl2ZSgge1xuICAgIHNlbGVjdG9yOiAnW25yY2xTY2hlZHVsZVJvd0hlYWRpbmddJ1xufSApXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVSb3dIZWFkaW5nRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+XG4gICAgKXt9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBEaXJlY3RpdmUoIHtcbiAgICBzZWxlY3RvcjogJ1tucmNsU2NoZWR1bGVJdGVtXSdcbn0gKVxuZXhwb3J0IGNsYXNzIFNjaGVkdWxlSXRlbURpcmVjdGl2ZSB7XG4gICAgQElucHV0KCAnbnJjbFNjaGVkdWxlSXRlbScgKSBuYW1lPzogc3RyaW5nXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+XG4gICAgKXt9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIFNjaGVkdWxlUm93SXRlbSA9IHtcbiAgICBpZDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBpY29ucz86ICgpID0+IHN0cmluZ1tdLFxuICAgIHRvb2x0aXA/OiAoKSA9PiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHRyYXZlbD86IGJvb2xlYW4sXG59XG5cbmV4cG9ydCB0eXBlIFNjaGVkdWxlUm93ID0ge1xuICAgIGlkPzogc3RyaW5nLFxuICAgIG1ldGFkYXRhPzogYW55LFxuICAgIGhlYWRpbmc6IGFueSxcbiAgICBpdGVtczogUHJvbWlzZTxTY2hlZHVsZVJvd0l0ZW1bXT4sXG4gICAgcm93Q2xhc3M/OiBzdHJpbmcsXG59XG5cbmV4cG9ydCB0eXBlIFNjaGVkdWxlID0gU2NoZWR1bGVSb3dbXVxuXG50eXBlIERheSA9IHtcbiAgICBkYXlOYW1lOiBzdHJpbmcsXG4gICAgbW9udGhEYXk6IG51bWJlcixcbiAgICBkYXRlOiBzdHJpbmcsXG4gICAgaXNXZWVrZW5kOiBib29sZWFuLFxuICAgIGlzVG9kYXk6IGJvb2xlYW4sXG4gICAgaXNGaXJzdDogYm9vbGVhbixcbiAgICBpc0hpZ2hsaWdodDogYm9vbGVhbixcbn1cblxudHlwZSBXZWVrID0ge1xuICAgIHN0YXJ0OiBzdHJpbmcsXG4gICAgZW5kOiBzdHJpbmcsXG4gICAgc3BhbjogbnVtYmVyXG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCB0eXBlIEZldGNoU2NoZWR1bGVSb3dQYXJhbWV0ZXJzID0ge1xuICAgIHJlc291cmNlSWQ6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlUHJvdmlkZXIge1xuICAgIHN0YXJ0bG9hZFNjaGVkdWxlPyggaW5uZXI6ICgpID0+IFByb21pc2U8YW55PiApOiBQcm9taXNlPGFueT5cbiAgICBmZXRjaFNjaGVkdWxlKCk6IE9ic2VydmFibGU8YW55PlxuICAgIHBhcnNlU2NoZWR1bGUoIHJlczogYW55ICk6IFNjaGVkdWxlXG4gICAgcGFyc2VUb3RhbFJvd0NvdW50PyhyZXM6IGFueSk6IG51bWJlciBcbiAgICBnZXRJbml0aWFsUGFnZVN0YXRlKCk6IEluaXRpYWxTdGF0ZTx7fT5cbiAgICBjb21wbGV0ZWRMb2FkU2NoZWR1bGU/KCBpbm5lcjogKCkgPT4gdm9pZCApOiBhbnlcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQENvbXBvbmVudCgge1xuICAgIHNlbGVjdG9yOiAnbnJjbC1zY2hlZHVsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vc2NoZWR1bGUuY29tcG9uZW50LnNjc3MnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tzdHlsZS4tLW5yY2wtc2NoZWR1bGUtZGF5LWNvdW50XSc6ICd0aGlzLmRheUNvdW50J1xuICAgIH1cbn0gKVxuZXhwb3J0IGNsYXNzIFNjaGVkdWxlQ29tcG9uZW50IGV4dGVuZHMgUm93TGlzdEJhc2U8e30sU2NoZWR1bGVSb3c+IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBwcm92aWRlcj86IFNjaGVkdWxlUHJvdmlkZXJcbiAgICBASW5wdXQoKSBzdGFydERhdGU/OiBzdHJpbmdcbiAgICBASW5wdXQoIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSApIHdlZWtTdGFydCA9IDBcbiAgICBASW5wdXQoIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSApIGRheUNvdW50PzogbnVtYmVyXG4gICAgQElucHV0KCkgbWVudT86IE1hdE1lbnVQYW5lbFxuICAgIEBJbnB1dCgpIGhvdmVyID0gdHJ1ZVxuICAgIEBJbnB1dCgpIHBhZ2luYXRpb24gPSB0cnVlXG4gICAgQElucHV0KCkgaGVhZGluZyA9IHRydWVcbiAgICBASW5wdXQoKSBoaWdobGlnaHREYXRlPzogc3RyaW5nXG4gICAgQElucHV0KCkgbG9hZGluZ01lc3NhZ2UgPSAnTG9hZGluZyBzY2hlZHVsZS4nXG5cbiAgICBAQ29udGVudENoaWxkcmVuKFNjaGVkdWxlSXRlbURpcmVjdGl2ZSkgaXRlbVRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxTY2hlZHVsZUl0ZW1EaXJlY3RpdmU+XG4gICAgQENvbnRlbnRDaGlsZChTY2hlZHVsZVJvd0hlYWRpbmdEaXJlY3RpdmUpIGhlYWRlclRlbXBsYXRlITogU2NoZWR1bGVSb3dIZWFkaW5nRGlyZWN0aXZlXG5cbiAgICBwcm90ZWN0ZWQgX2RheXM6IERheVtdID0gW11cbiAgICBwcm90ZWN0ZWQgX3dlZWtzOiBXZWVrW10gPSBbXVxuICAgIHByb3RlY3RlZCBfdGVtcGxhdGVzOiBUZW1wbGF0ZVJlZjxhbnk+W11bXSA9IFtdXG5cbiAgICBuZ09uQ2hhbmdlcyggY2hhbmdlczogU2ltcGxlQ2hhbmdlcyApOiB2b2lkIHtcbiAgICAgICAgLy8gdGhpcy5yZWZyZXNoUm93TGlzdCgpXG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnU2NoZWR1bGVDb21wb25lbnQubmdBZnRlclZpZXdJbml0JylcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KClcbiAgICB9XG5cbiAgICBsb2FkUm93TGlzdCgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICAvLyBpZiAoICF0aGlzLnByb3ZpZGVyPy5zdGFydGxvYWRTY2hlZHVsZSApIHRocm93IEVycm9yKCAnU2NoZWR1bGVDb21wb25lbnQucHJvdmlkZXIuc3RhcnRsb2FkU2NoZWR1bGUgbm90IHNldCcgKVxuICAgICAgICBpZiAoICF0aGlzLnByb3ZpZGVyPy5zdGFydGxvYWRTY2hlZHVsZSApIHJldHVybiBzdXBlci5sb2FkUm93TGlzdCgpXG4gICAgIFxuICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlci5zdGFydGxvYWRTY2hlZHVsZSggKCkgPT4geyByZXR1cm4gc3VwZXIubG9hZFJvd0xpc3QoKSB9IClcbiAgICB9XG5cbiAgICBmZXRjaFJvd0xpc3RQYWdlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGlmICggIXRoaXMucHJvdmlkZXI/LmZldGNoU2NoZWR1bGUgKSB0aHJvdyBFcnJvciggJ1NjaGVkdWxlQ29tcG9uZW50LnByb3ZpZGVyLmZldGNoU2NoZWR1bGUgbm90IHNldCcgKVxuXG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLmZldGNoU2NoZWR1bGUoKVxuICAgIH1cblxuICAgIHBhcnNlUm93cyggcmVzOiBhbnkgKTogU2NoZWR1bGVSb3dbXSB7XG4gICAgICAgIGlmICggIXRoaXMucHJvdmlkZXI/LnBhcnNlU2NoZWR1bGUgKSB0aHJvdyBFcnJvciggJ1NjaGVkdWxlQ29tcG9uZW50LnByb3ZpZGVyLnBhcnNlU2NoZWR1bGUgbm90IHNldCcgKVxuXG4gICAgICAgIGxldCByb3dzID0gdGhpcy5wcm92aWRlci5wYXJzZVNjaGVkdWxlKCByZXMgKVxuICAgICAgICByZXR1cm4gdGhpcy5tYWtlUm93cyggcm93cyApXG4gICAgfVxuXG4gICAgcGFyc2VUb3RhbFJvd0NvdW50KHJlczogYW55KTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCAhdGhpcy5wcm92aWRlcj8ucGFyc2VUb3RhbFJvd0NvdW50ICkgcmV0dXJuIHN1cGVyLnBhcnNlVG90YWxSb3dDb3VudCggcmVzIClcblxuICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlci5wYXJzZVRvdGFsUm93Q291bnQoIHJlcyApXG4gICAgfVxuXG4gICAgZ2V0SW5pdGlhbFBhZ2VTdGF0ZSgpOiBJbml0aWFsU3RhdGU8e30+IHtcbiAgICAgICAgaWYgKCAhdGhpcy5wcm92aWRlcj8uZ2V0SW5pdGlhbFBhZ2VTdGF0ZSApIHRocm93IEVycm9yKCAnU2NoZWR1bGVDb21wb25lbnQucHJvdmlkZXIuZ2V0SW5pdGlhbFBhZ2VTdGF0ZSBub3Qgc2V0JyApXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXIuZ2V0SW5pdGlhbFBhZ2VTdGF0ZSgpXG4gICAgfVxuXG4gICAgY29tcGxldGVkUm93TGlzdFBhZ2UoKTogUGFnaW5hdGlvblN0YXRlPHt9PiB7XG4gICAgICAgIC8vIGlmICggIXRoaXMucHJvdmlkZXI/LmNvbXBsZXRlZExvYWRTY2hlZHVsZSApIHRocm93IEVycm9yKCAnU2NoZWR1bGVDb21wb25lbnQucHJvdmlkZXIuY29tcGxldGVkUm93TGlzdFBhZ2Ugbm90IHNldCcgKVxuICAgICAgICBpZiAoICF0aGlzLnByb3ZpZGVyPy5jb21wbGV0ZWRMb2FkU2NoZWR1bGUgKSByZXR1cm4gc3VwZXIuY29tcGxldGVkUm93TGlzdFBhZ2UoKSBhcyBhbnlcblxuICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlci5jb21wbGV0ZWRMb2FkU2NoZWR1bGUoICgpID0+IHsgcmV0dXJuIHN1cGVyLmNvbXBsZXRlZFJvd0xpc3RQYWdlKCkgfSApXG4gICAgfVxuXG4gICAgb25TYW1lUGFnZUZpbHRlckNoYW5nZSggZXY6IHt9ICk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlciA9IGV2XG4gICAgICAgIHRoaXMucmVmcmVzaFJvd0xpc3QoKVxuICAgIH1cblxuICAgIG1ha2VSb3dzKCBzY2hlZHVsZTogU2NoZWR1bGUgKTogU2NoZWR1bGUge1xuICAgICAgICBsZXQgc3RhcnQgPSBtb21lbnQoIHRoaXMuc3RhcnREYXRlIClcbiAgICAgICAgbGV0IHRvZGF5ID0gbW9tZW50KClcblxuICAgICAgICB0aGlzLl93ZWVrcyA9IEFycmF5LmZyb20oIHsgbGVuZ3RoOiB0aGlzLmRheUNvdW50ISB9ICkucmVkdWNlPFdlZWtbXT4oICggYSwgeCwgaSApID0+IHtcbiAgICAgICAgICAgIGxldCBtID0gc3RhcnQuY2xvbmUoKS5hZGQoIGksICdkYXknIClcbiAgICAgICAgICAgIGxldCBkYXRlID0gbS5mb3JtYXQoICdNTU0gRCcgKVxuICAgICAgICAgICAgbGV0IGRheSA9IG0uZGF5KClcblxuICAgICAgICAgICAgaWYgKCBhLmxlbmd0aCA9PSAwICkgcmV0dXJuIGEuY29uY2F0KCB7XG4gICAgICAgICAgICAgICAgc3RhcnQ6IGRhdGUsXG4gICAgICAgICAgICAgICAgZW5kOiBkYXRlLFxuICAgICAgICAgICAgICAgIHNwYW46IDFcbiAgICAgICAgICAgIH0gKVxuXG4gICAgICAgICAgICBsZXQgcHJldiA9IGFbIGEubGVuZ3RoIC0gMSBdXG5cbiAgICAgICAgICAgIGlmICggZGF5ID09IHRoaXMud2Vla1N0YXJ0ICkgcmV0dXJuIGEuY29uY2F0KCB7XG4gICAgICAgICAgICAgICAgc3RhcnQ6IGRhdGUsXG4gICAgICAgICAgICAgICAgZW5kOiBkYXRlLFxuICAgICAgICAgICAgICAgIHNwYW46IDFcbiAgICAgICAgICAgIH0gKVxuXG4gICAgICAgICAgICBwcmV2LmVuZCA9IGRhdGVcbiAgICAgICAgICAgIHByZXYuc3BhbiArPSAxXG4gICAgICAgICAgICByZXR1cm4gYVxuICAgICAgICB9LCBbXSApXG5cbiAgICAgICAgdGhpcy5fZGF5cyA9IEFycmF5LmZyb20oIHsgbGVuZ3RoOiB0aGlzLmRheUNvdW50ISB9ICkubWFwKCAoIHgsIGkgKSA9PiB7XG4gICAgICAgICAgICBsZXQgZCA9IHN0YXJ0LmNsb25lKCkuYWRkKCBpLCAnZGF5JyApXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGRheU5hbWU6IGQuZm9ybWF0KCAnZGRkJyApLFxuICAgICAgICAgICAgICAgIG1vbnRoRGF5OiBkLmRhdGUoKSxcbiAgICAgICAgICAgICAgICBkYXRlOiBkLmZvcm1hdCggJ1ktTU0tREQnICksXG4gICAgICAgICAgICAgICAgaXNGaXJzdDogZC5kYXRlKCkgPT0gMSxcbiAgICAgICAgICAgICAgICBpc1dlZWtlbmQ6IGQuZGF5KCkgPT0gMCB8fCBkLmRheSgpID09IDYsXG4gICAgICAgICAgICAgICAgaXNUb2RheTogZC5pc1NhbWUoIHRvZGF5LCAnZGF5JyApLFxuICAgICAgICAgICAgICAgIGlzSGlnaGxpZ2h0OiBkLmlzU2FtZSggdGhpcy5oaWdobGlnaHREYXRlLCAnZGF5JyApXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gKVxuXG4gICAgICAgIHRoaXMuX3RlbXBsYXRlcyA9IEFycmF5LmZyb20oIHsgbGVuZ3RoOiBzY2hlZHVsZS5sZW5ndGggfSApXG5cbiAgICAgICAgcmV0dXJuIHNjaGVkdWxlLm1hcCggKCByb3csIGkgKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90ZW1wbGF0ZXNbIGkgXSA9IEFycmF5LmZyb20oIHsgbGVuZ3RoOiB0aGlzLmRheUNvdW50ISB9IClcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpZDogcm93LmlkID8/IFN0cmluZyggaSApLFxuICAgICAgICAgICAgICAgIHJvd0NsYXNzOiByb3cucm93Q2xhc3MsXG4gICAgICAgICAgICAgICAgbWV0YWRhdGE6IHJvdy5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICBoZWFkaW5nOiByb3cuaGVhZGluZyxcbiAgICAgICAgICAgICAgICBpdGVtczogcm93Lml0ZW1zXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCByb3dJdGVtcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSggeyBsZW5ndGg6IHRoaXMuZGF5Q291bnQhIH0gKS5tYXAoICggeCwgaiApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcm93SXRlbSA9IHJvd0l0ZW1zWyBqIF1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggcm93SXRlbSA9PSBudWxsICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogU3RyaW5nKCBqICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZW1wdHknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl90ZW1wbGF0ZXNbIGkgXVsgaiBdID0gdGhpcy5pdGVtVGVtcGxhdGVzPy5maW5kKCBpID0+IGkubmFtZSA9PSByb3dJdGVtPy5uYW1lICApPy50ZW1wbGF0ZSFcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByb3dJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICB9IClcbiAgICAgICAgICAgICAgICAgICAgfSApXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gKSB8fCBbXVxuICAgIH1cbn1cbiIsIkBpZiAoIHJvd3M/Lmxlbmd0aCA+IDAgKSB7XG4gICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlXCJcbiAgICAgICAgW2NsYXNzLmhlYWRpbmddPVwiaGVhZGluZ1wiXG4gICAgPlxuICAgICAgICBAaWYgKCBoZWFkaW5nICkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwcGVyLWxlZnRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgd2Vla3NcIj5cbiAgICAgICAgICAgIEBmb3IgKCB3ZWVrIG9mIF93ZWVrczsgdHJhY2sgJGluZGV4ICkge1xuICAgICAgICAgICAgICAgIEBpZiAoIHdlZWsuc3BhbiA9PSAxICkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgd2Vlay5zdGFydCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla1wiIFtzdHlsZS5ncmlkLWNvbHVtbl09XCInc3BhbiAnICsgd2Vlay5zcGFuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB3ZWVrLnN0YXJ0IH19IC0ge3sgd2Vlay5lbmQgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGRheXNcIj4gICAgXG4gICAgICAgICAgICBAZm9yICggZGF5IG9mIF9kYXlzOyB0cmFjayAkaW5kZXggKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRheVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy53ZWVrZW5kXT1cImRheS5pc1dlZWtlbmRcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MudG9kYXldPVwiZGF5LmlzVG9kYXlcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmlyc3RdPVwiZGF5LmlzRmlyc3RcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGlnaGxpZ2h0XT1cImRheS5pc0hpZ2hsaWdodFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF5LW5hbWVcIj57eyBkYXkuZGF5TmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPnt7IGRheS5tb250aERheSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAZm9yICggcm93IG9mIHJvd3MgfCBwYWdpbmF0ZTogcGFnaW5hdGVTdGF0ZSggJ25yY2wtc2NoZWR1bGUnICk7IHRyYWNrIHJvdy5pZDsgbGV0IHJvd0luZGV4ID0gJGluZGV4ICkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBpdGVtc1wiIFtjbGFzc109XCJyb3cucm93Q2xhc3NcIj5cbiAgICAgICAgICAgICAgICBAaWYgKCBoZWFkaW5nICkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3V0ZXIgaGVhZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyIGhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUZW1wbGF0ZT8udGVtcGxhdGVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB7IGhlYWRpbmc6IHJvdy5oZWFkaW5nLCBtZXRhZGF0YTogcm93Lm1ldGFkYXRhIH0gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICBcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKCByb3cuaXRlbXMgfCBhc3luYzsgYXMgcm93SXRlbXMgKSB7XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKCBpdGVtIG9mIHJvd0l0ZW1zOyB0cmFjayBpdGVtLmlkOyBsZXQgY29sSW5kZXggPSAkaW5kZXggKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3V0ZXIgaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm1lbnUtb3Blbl09XCJpdGVtTWVudS5tZW51T3BlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmhpZ2hsaWdodF09XCJfZGF5c1sgY29sSW5kZXggXS5pc0hpZ2hsaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmhvdmVyXT1cImhvdmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5uZXIgaXRlbVwiICNpdGVtTWVudT1cIm1hdE1lbnVUcmlnZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIidpdGVtLScgKyBpdGVtLm5hbWVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0UmlwcGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRSaXBwbGVEaXNhYmxlZF09XCIhaG92ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckRhdGFdPVwieyAkaW1wbGljaXQ6IHsgaGVhZGluZzogcm93LmhlYWRpbmcsIG1ldGFkYXRhOiByb3cubWV0YWRhdGEsIGl0ZW06IGl0ZW0gfSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25yY2xUb29sdGlwXT1cIml0ZW0/LnRvb2x0aXA/LigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnJjbFRvb2x0aXBDbGFzcz1cInNjaGVkdWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25yY2xUb29sdGlwQ29udGV4dF09XCJ7ICRpbXBsaWNpdDogeyBoZWFkaW5nOiByb3cuaGVhZGluZywgbWV0YWRhdGE6IHJvdy5tZXRhZGF0YSwgaXRlbTogaXRlbSB9IH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudHJhdmVsXT1cIml0ZW0/LnRyYXZlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3RlbXBsYXRlc1sgcm93SW5kZXggXVsgY29sSW5kZXggXSB8fCBlbXB0eVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbGV0IGljb25zID0gaXRlbT8uaWNvbnM/LigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCBpY29ucyAmJiBpY29ucy5sZW5ndGggPiAwICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoIGljb24gb2YgaWNvbnM7IHRyYWNrIGljb24gKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxucmNsLWljb24gc21hbGw+e3sgaWNvbiB9fTwvbnJjbC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGZvciAoIGRheSBvZiBfZGF5czsgdHJhY2sgZGF5ICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0gaXRlbS1sb2FkaW5nXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufVxuXG5AaWYgKCByb3dzPy5sZW5ndGggPiAwICYmIHBhZ2luYXRpb24gKSB7XG4gICAgPG5yY2wtZ2FwLz5cbn1cblxuQGlmICggcGFnaW5hdGlvbiApIHtcbiAgICBAaWYgKCBpc0ZpcnN0TG9hZCApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctcm93c1wiPnt7IGxvYWRpbmdNZXNzYWdlIH19PC9kaXY+XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgPG5yY2wtcm93LWxpc3QtcGFnaW5hdGlvblxuICAgICAgICAgICAgcGFnaW5hdGlvbklkPVwibnJjbC1zY2hlZHVsZVwiXG4gICAgICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgICAgICAgICAgW3BhZ2VOdW1iZXJdPVwicGFnZU51bWJlclwiXG4gICAgICAgICAgICBbcm93Q291bnRdPVwidG90YWxSb3dDb3VudFwiXG4gICAgICAgICAgICAocGFnZU51bWJlckNoYW5nZSk9XCJvblBhZ2VOdW1iZXJDaGFuZ2UoICRldmVudCApXCJcbiAgICAgICAgICAgIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCAkZXZlbnQgKVwiXG4gICAgICAgID48L25yY2wtcm93LWxpc3QtcGFnaW5hdGlvbj5cbiAgICB9XG59XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHk+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -9,10 +9,12 @@ export class RowListBase extends PaginationBase {
|
|
|
9
9
|
this.pageStateService = inject(PageStateService);
|
|
10
10
|
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
11
11
|
this.isLoadingChange = new EventEmitter();
|
|
12
|
+
this._isFirstLoad = true;
|
|
12
13
|
this._isLoading = false;
|
|
13
14
|
this._rows = [];
|
|
14
15
|
this._inProgress = new InProgress();
|
|
15
16
|
}
|
|
17
|
+
get isFirstLoad() { return this._isLoading; }
|
|
16
18
|
get isLoading() { return this._isLoading; }
|
|
17
19
|
set isLoading(v) {
|
|
18
20
|
if (v == this._isLoading)
|
|
@@ -46,6 +48,7 @@ export class RowListBase extends PaginationBase {
|
|
|
46
48
|
// console.log('complete',this.isLoading)
|
|
47
49
|
inProgress.complete();
|
|
48
50
|
this.isLoading = false;
|
|
51
|
+
this._isFirstLoad = false;
|
|
49
52
|
this.changeDetectorRef.detectChanges();
|
|
50
53
|
})
|
|
51
54
|
.catch((err) => {
|
|
@@ -122,4 +125,4 @@ class InProgress {
|
|
|
122
125
|
return this._cancelled;
|
|
123
126
|
}
|
|
124
127
|
}
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWxpc3QuYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25yLW5neC1jb21wb25lbnQtbGliL3NyYy9kaXJlY3RpdmVzL3Jvdy1saXN0LmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHbkQsTUFBTSxPQUFnQixXQUF1QixTQUFRLGNBQWlCO0lBRHRFOztRQUVJLHFCQUFnQixHQUFHLE1BQU0sQ0FBRSxnQkFBZ0IsQ0FBRSxDQUFBO1FBQzdDLHNCQUFpQixHQUFHLE1BQU0sQ0FBRSxpQkFBaUIsQ0FBRSxDQUFBO1FBRXJDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtRQUUvQyxlQUFVLEdBQUcsS0FBSyxDQUFBO1FBUWxCLFVBQUssR0FBUSxFQUFFLENBQUE7UUFJZixnQkFBVyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUE7S0FrRnpDO0lBN0ZHLElBQUksU0FBUyxLQUFLLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQSxDQUFDLENBQUM7SUFDMUMsSUFBSSxTQUFTLENBQUUsQ0FBVTtRQUNyQixJQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVTtZQUFHLE9BQU07UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUE7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUUsQ0FBQyxDQUFFLENBQUE7SUFDbEMsQ0FBQztJQUdELElBQUksSUFBSSxLQUFV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LGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzFDLENBQUM7SUFFUyxPQUFPO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7SUFDaEMsQ0FBQzsrR0FuR2lCLFdBQVc7bUdBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFEaEMsU0FBUzs4QkFLSSxlQUFlO3NCQUF4QixNQUFNOztBQWtHWCxNQUFNLFVBQVU7SUFBaEI7UUFDWSxlQUFVLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLGVBQVUsR0FBRyxLQUFLLENBQUE7SUF3QjlCLENBQUM7SUF0QkcsUUFBUTtRQUNKLElBQUssSUFBSSxDQUFDLFdBQVc7WUFBRyxPQUFNO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFBO0lBQzFCLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSyxJQUFJLENBQUMsV0FBVztZQUFHLE9BQU07UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUE7SUFDMUIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFLLElBQUksQ0FBQyxXQUFXO1lBQUcsT0FBTTtRQUM5QixJQUFLLElBQUksQ0FBQyxXQUFXO1lBQUcsTUFBTSxJQUFJLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDMUIsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUMxQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgUGFnZVN0YXRlU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9wYWdlLXN0YXRlLnNlcnZpY2VcIjtcbmltcG9ydCB7IEFib3J0ZWQsIE9ic2VydmFibGVBYm9ydGVyIH0gZnJvbSBcIi4uL3V0aWxzL3Jvdy1saXN0LnV0aWxcIjtcbmltcG9ydCB7IFBhZ2luYXRpb25CYXNlIH0gZnJvbSBcIi4vcGFnaW5hdGlvbi5iYXNlXCI7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJvd0xpc3RCYXNlPEYsUixMPWFueT4gZXh0ZW5kcyBQYWdpbmF0aW9uQmFzZTxGPiB7XG4gICAgcGFnZVN0YXRlU2VydmljZSA9IGluamVjdCggUGFnZVN0YXRlU2VydmljZSApXG4gICAgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoIENoYW5nZURldGVjdG9yUmVmIClcblxuICAgIEBPdXRwdXQoKSBpc0xvYWRpbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcbiAgICBcbiAgICBwcml2YXRlIF9pc0xvYWRpbmcgPSBmYWxzZVxuICAgIGdldCBpc0xvYWRpbmcoKSB7IHJldHVybiB0aGlzLl9pc0xvYWRpbmcgfVxuICAgIHNldCBpc0xvYWRpbmcoIHY6IGJvb2xlYW4gKSB7IFxuICAgICAgICBpZiAoIHYgPT0gdGhpcy5faXNMb2FkaW5nICkgcmV0dXJuICAgICAgICBcbiAgICAgICAgdGhpcy5faXNMb2FkaW5nID0gdiBcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdDaGFuZ2UuZW1pdCggdiApXG4gICAgfSAgXG5cbiAgICBwcml2YXRlIF9yb3dzOiBSW10gPSBbXVxuICAgIGdldCByb3dzKCk6IFJbXSB7IHJldHVybiB0aGlzLl9yb3dzIH1cblxuICAgIHByaXZhdGUgX2xvYWRSb3dMaXN0UmVxdWVzdD86IE9ic2VydmFibGVBYm9ydGVyPEw+IFxuICAgIHByaXZhdGUgX2luUHJvZ3Jlc3MgPSBuZXcgSW5Qcm9ncmVzcygpXG5cbiAgICByZWZyZXNoUm93TGlzdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy8gY29uc29sZS53YXJuKCdSb3dMaXN0QmFzZS5yZWZyZXNoUm93TGlzdCcpXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZVxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKVxuXG4gICAgICAgIGlmICggIXRoaXMuX2luUHJvZ3Jlc3MuaXNDb21wbGV0ZWQgKSB0aGlzLl9pblByb2dyZXNzLmNhbmNlbCgpXG4gICAgICAgIGxldCBpblByb2dyZXNzID0gdGhpcy5faW5Qcm9ncmVzcyA9IG5ldyBJblByb2dyZXNzKClcblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgICAgICAgIC50aGVuKCAoKSA9PiB7IFxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRSb3dMaXN0KCkgXG4gICAgICAgICAgICB9IClcbiAgICAgICAgICAgIC50aGVuKCAoIHJlcyApID0+IHsgXG4gICAgICAgICAgICAgICAgaW5Qcm9ncmVzcy5wcm9ncmVzcygpXG4gICAgICAgICAgICAgICAgaWYgKCAhcmVzICkgcmV0dXJuXG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZVJvd0xpc3QoIHJlcyApIFxuICAgICAgICAgICAgfSApXG4gICAgICAgICAgICAudGhlbiggcmVzID0+IHtcbiAgICAgICAgICAgICAgICBpblByb2dyZXNzLnByb2dyZXNzKClcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wbGV0ZWRSb3dMaXN0UGFnZSgpXG4gICAgICAgICAgICB9IClcbiAgICAgICAgICAgIC50aGVuKCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ2NvbXBsZXRlJyx0aGlzLmlzTG9hZGluZylcbiAgICAgICAgICAgICAgICBpblByb2dyZXNzLmNvbXBsZXRlKClcblxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2VcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICAgICAgfSApXG4gICAgICAgICAgICAuY2F0Y2goICggZXJyICkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUud2FybihlcnIpXG4gICAgICAgICAgICAgICAgaWYgKCBlcnIgaW5zdGFuY2VvZiBBYm9ydGVkICkgcmV0dXJuXG5cbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRSb3dMaXN0UGFnZUZhaWxlZCggZXJyIClcbiAgICAgICAgICAgIH0gKVxuICAgIH1cblxuICAgIGxvYWRSb3dMaXN0KCk6IFByb21pc2U8TD4ge1xuICAgICAgICBpZiAoIHRoaXMuX2xvYWRSb3dMaXN0UmVxdWVzdCApXG4gICAgICAgICAgICB0aGlzLl9sb2FkUm93TGlzdFJlcXVlc3QuYWJvcnQoKVxuXG4gICAgICAgIHRoaXMuX2xvYWRSb3dMaXN0UmVxdWVzdCA9IG5ldyBPYnNlcnZhYmxlQWJvcnRlcjxMPiggKCkgPT4geyAgICAgICAgXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFJvd0xpc3RQYWdlKClcbiAgICAgICAgfSApXG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRSb3dMaXN0UmVxdWVzdC5wcm9taXNlXG4gICAgfVxuXG4gICAgYWJzdHJhY3QgZmV0Y2hSb3dMaXN0UGFnZSgpOiBPYnNlcnZhYmxlPEw+IFxuXG4gICAgcGFyc2VSb3dMaXN0KCByZXN1bHQ6IEwgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoIHJlc3VsdCApXG4gICAgICAgICAgICAudGhlbiggcmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl90b3RhbFJvd0NvdW50ID0gdGhpcy5wYXJzZVRvdGFsUm93Q291bnQoIHJlcyApXG4gICAgICAgICAgICAgICAgdGhpcy5fcm93cyA9IHRoaXMucGFyc2VSb3dzKCByZXMgKVxuICAgICAgICAgICAgfSApXG4gICAgfVxuXG4gICAgYWJzdHJhY3QgcGFyc2VSb3dzKCByZXM6IEwgKTogUltdIFxuICAgIFxuICAgIHBhcnNlVG90YWxSb3dDb3VudCggcmVzOiBMICk6IG51bWJlciB7XG4gICAgICAgIGlmICggJ3RvdGFsUm93Q291bnQnIGluIChyZXMgYXMgYW55KSApIHJldHVybiAocmVzIGFzIGFueSlbICd0b3RhbFJvd0NvdW50JyBdXG5cbiAgICAgICAgdGhyb3cgJ01pc3NpbmcgcmVzLnRvdGFsUm93Q291bnQsIG1pZ2h0IG5lZWQgdG8gb3ZlcnJpZGUgUm93TGlzdEJhc2UucGFyc2VUb3RhbFJvd0NvdW50J1xuICAgIH1cblxuICAgIGNvbXBsZXRlZFJvd0xpc3RQYWdlKCkge31cblxuICAgIGxvYWRSb3dMaXN0UGFnZUZhaWxlZCggZXJyb3I6IGFueSApIHtcbiAgICAgICAgY29uc29sZS53YXJuKCBlcnJvciApXG4gICAgICAgIHRoaXMuX3Jvd3MgPSBbXVxuICAgICAgICB0aGlzLl90b3RhbFJvd0NvdW50ID0gMFxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlZnJlc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hSb3dMaXN0KClcbiAgICB9XG59XG5cbmNsYXNzIEluUHJvZ3Jlc3Mge1xuICAgIHByaXZhdGUgX2NvbXBsZXRlZCA9IGZhbHNlXG4gICAgcHJpdmF0ZSBfY2FuY2VsbGVkID0gZmFsc2VcblxuICAgIGNvbXBsZXRlKCkge1xuICAgICAgICBpZiAoIHRoaXMuaXNDYW5jZWxsZWQgKSByZXR1cm5cbiAgICAgICAgdGhpcy5fY29tcGxldGVkID0gdHJ1ZVxuICAgIH1cblxuICAgIGNhbmNlbCgpIHtcbiAgICAgICAgaWYgKCB0aGlzLmlzQ29tcGxldGVkICkgcmV0dXJuXG4gICAgICAgIHRoaXMuX2NhbmNlbGxlZCA9IHRydWUgICAgICAgIFxuICAgIH1cblxuICAgIHByb2dyZXNzKCkge1xuICAgICAgICBpZiAoIHRoaXMuaXNDb21wbGV0ZWQgKSByZXR1cm5cbiAgICAgICAgaWYgKCB0aGlzLmlzQ2FuY2VsbGVkICkgdGhyb3cgbmV3IEFib3J0ZWQoJ0luUHJvZ3Jlc3MgY2FuY2VsbGVkJylcbiAgICB9XG5cbiAgICBnZXQgaXNDb21wbGV0ZWQoKSB7ICAgICAgICBcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXBsZXRlZFxuICAgIH1cblxuICAgIGdldCBpc0NhbmNlbGxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhbmNlbGxlZFxuICAgIH1cbn1cbiJdfQ==
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWxpc3QuYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25yLW5neC1jb21wb25lbnQtbGliL3NyYy9kaXJlY3RpdmVzL3Jvdy1saXN0LmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHbkQsTUFBTSxPQUFnQixXQUF1QixTQUFRLGNBQWlCO0lBRHRFOztRQUVJLHFCQUFnQixHQUFHLE1BQU0sQ0FBRSxnQkFBZ0IsQ0FBRSxDQUFBO1FBQzdDLHNCQUFpQixHQUFHLE1BQU0sQ0FBRSxpQkFBaUIsQ0FBRSxDQUFBO1FBR3JDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtRQUUvQyxpQkFBWSxHQUFHLElBQUksQ0FBQTtRQUduQixlQUFVLEdBQUcsS0FBSyxDQUFBO1FBUWxCLFVBQUssR0FBUSxFQUFFLENBQUE7UUFJZixnQkFBVyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUE7S0FtRnpDO0lBakdHLElBQUksV0FBVyxLQUFLLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQSxDQUFDLENBQUM7SUFHNUMsSUFBSSxTQUFTLEtBQUssT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBLENBQUMsQ0FBQztJQUMxQyxJQUFJLFNBQVMsQ0FBRSxDQUFVO1FBQ3JCLElBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUcsT0FBTTtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQTtRQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBRSxDQUFDLENBQUUsQ0FBQTtJQUNsQyxDQUFDO0lBR0QsSUFBSSxJQUFJLEtBQVUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUtyQyxjQUFjO1FBQ1YsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUV0QyxJQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXO1lBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUM5RCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUE7UUFFcEQsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFO2FBQ25CLElBQUksQ0FBRSxHQUFHLEVBQUU7WUFDUixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUM3QixDQUFDLENBQUU7YUFDRixJQUFJLENBQUUsQ0FBRSxHQUFHLEVBQUcsRUFBRTtZQUNiLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUNyQixJQUFLLENBQUMsR0FBRztnQkFBRyxPQUFNO1lBRWxCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBRSxHQUFHLENBQUUsQ0FBQTtRQUNuQyxDQUFDLENBQUU7YUFDRixJQUFJLENBQUUsR0FBRyxDQUFDLEVBQUU7WUFDVCxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUE7WUFFckIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtRQUN0QyxDQUFDLENBQUU7YUFDRixJQUFJLENBQUUsR0FBRyxFQUFFO1lBQ1IseUNBQXlDO1lBQ3pDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUVyQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQTtZQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDMUMsQ0FBQyxDQUFFO2FBQ0YsS0FBSyxDQUFFLENBQUUsR0FBRyxFQUFHLEVBQUU7WUFDZCxvQkFBb0I7WUFDcEIsSUFBSyxHQUFHLFlBQVksT0FBTztnQkFBRyxPQUFNO1lBRXBDLElBQUksQ0FBQyxxQkFBcUIsQ0FBRSxHQUFHLENBQUUsQ0FBQTtRQUNyQyxDQUFDLENBQUUsQ0FBQTtJQUNYLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSyxJQUFJLENBQUMsbUJBQW1CO1lBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUVwQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxpQkFBaUIsQ0FBSyxHQUFHLEVBQUU7WUFDdEQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUNsQyxDQUFDLENBQUUsQ0FBQTtRQUVILE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQTtJQUMzQyxDQUFDO0lBSUQsWUFBWSxDQUFFLE1BQVM7UUFDbkIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFFLE1BQU0sQ0FBRTthQUMzQixJQUFJLENBQUUsR0FBRyxDQUFDLEVBQUU7WUFDVCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBRSxHQUFHLENBQUUsQ0FBQTtZQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUUsR0FBRyxDQUFFLENBQUE7UUFDdEMsQ0FBQyxDQUFFLENBQUE7SUFDWCxDQUFDO0lBSUQsa0JBQWtCLENBQUUsR0FBTTtRQUN0QixJQUFLLGVBQWUsSUFBSyxHQUFXO1lBQUcsT0FBUSxHQUFXLENBQUUsZUFBZSxDQUFFLENBQUE7UUFFN0UsTUFBTSxrRkFBa0YsQ0FBQTtJQUM1RixDQUFDO0lBRUQsb0JBQW9CLEtBQUksQ0FBQztJQUV6QixxQkFBcUIsQ0FBRSxLQUFVO1FBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUUsS0FBSyxDQUFFLENBQUE7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQTtRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtRQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUMsQ0FBQztJQUVTLE9BQU87UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtJQUNoQyxDQUFDOytHQXhHaUIsV0FBVzttR0FBWCxXQUFXOzs0RkFBWCxXQUFXO2tCQURoQyxTQUFTOzhCQU1JLGVBQWU7c0JBQXhCLE1BQU07O0FBc0dYLE1BQU0sVUFBVTtJQUFoQjtRQUNZLGVBQVUsR0FBRyxLQUFLLENBQUE7UUFDbEIsZUFBVSxHQUFHLEtBQUssQ0FBQTtJQXdCOUIsQ0FBQztJQXRCRyxRQUFRO1FBQ0osSUFBSyxJQUFJLENBQUMsV0FBVztZQUFHLE9BQU07UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUE7SUFDMUIsQ0FBQztJQUVELE1BQU07UUFDRixJQUFLLElBQUksQ0FBQyxXQUFXO1lBQUcsT0FBTTtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQTtJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUssSUFBSSxDQUFDLFdBQVc7WUFBRyxPQUFNO1FBQzlCLElBQUssSUFBSSxDQUFDLFdBQVc7WUFBRyxNQUFNLElBQUksT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFDckUsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUMxQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQzFCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBQYWdlU3RhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3BhZ2Utc3RhdGUuc2VydmljZVwiO1xuaW1wb3J0IHsgQWJvcnRlZCwgT2JzZXJ2YWJsZUFib3J0ZXIgfSBmcm9tIFwiLi4vdXRpbHMvcm93LWxpc3QudXRpbFwiO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkJhc2UgfSBmcm9tIFwiLi9wYWdpbmF0aW9uLmJhc2VcIjtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUm93TGlzdEJhc2U8RixSLEw9YW55PiBleHRlbmRzIFBhZ2luYXRpb25CYXNlPEY+IHtcbiAgICBwYWdlU3RhdGVTZXJ2aWNlID0gaW5qZWN0KCBQYWdlU3RhdGVTZXJ2aWNlIClcbiAgICBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdCggQ2hhbmdlRGV0ZWN0b3JSZWYgKVxuXG5cbiAgICBAT3V0cHV0KCkgaXNMb2FkaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG4gICAgXG4gICAgcHJpdmF0ZSBfaXNGaXJzdExvYWQgPSB0cnVlXG4gICAgZ2V0IGlzRmlyc3RMb2FkKCkgeyByZXR1cm4gdGhpcy5faXNMb2FkaW5nIH1cblxuICAgIHByaXZhdGUgX2lzTG9hZGluZyA9IGZhbHNlXG4gICAgZ2V0IGlzTG9hZGluZygpIHsgcmV0dXJuIHRoaXMuX2lzTG9hZGluZyB9XG4gICAgc2V0IGlzTG9hZGluZyggdjogYm9vbGVhbiApIHsgXG4gICAgICAgIGlmICggdiA9PSB0aGlzLl9pc0xvYWRpbmcgKSByZXR1cm4gICAgICAgIFxuICAgICAgICB0aGlzLl9pc0xvYWRpbmcgPSB2IFxuICAgICAgICB0aGlzLmlzTG9hZGluZ0NoYW5nZS5lbWl0KCB2IClcbiAgICB9ICBcblxuICAgIHByaXZhdGUgX3Jvd3M6IFJbXSA9IFtdXG4gICAgZ2V0IHJvd3MoKTogUltdIHsgcmV0dXJuIHRoaXMuX3Jvd3MgfVxuXG4gICAgcHJpdmF0ZSBfbG9hZFJvd0xpc3RSZXF1ZXN0PzogT2JzZXJ2YWJsZUFib3J0ZXI8TD4gXG4gICAgcHJpdmF0ZSBfaW5Qcm9ncmVzcyA9IG5ldyBJblByb2dyZXNzKClcblxuICAgIHJlZnJlc2hSb3dMaXN0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyBjb25zb2xlLndhcm4oJ1Jvd0xpc3RCYXNlLnJlZnJlc2hSb3dMaXN0JylcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpXG5cbiAgICAgICAgaWYgKCAhdGhpcy5faW5Qcm9ncmVzcy5pc0NvbXBsZXRlZCApIHRoaXMuX2luUHJvZ3Jlc3MuY2FuY2VsKClcbiAgICAgICAgbGV0IGluUHJvZ3Jlc3MgPSB0aGlzLl9pblByb2dyZXNzID0gbmV3IEluUHJvZ3Jlc3MoKVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgICAgLnRoZW4oICgpID0+IHsgXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZFJvd0xpc3QoKSBcbiAgICAgICAgICAgIH0gKVxuICAgICAgICAgICAgLnRoZW4oICggcmVzICkgPT4geyBcbiAgICAgICAgICAgICAgICBpblByb2dyZXNzLnByb2dyZXNzKClcbiAgICAgICAgICAgICAgICBpZiAoICFyZXMgKSByZXR1cm5cblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlUm93TGlzdCggcmVzICkgXG4gICAgICAgICAgICB9IClcbiAgICAgICAgICAgIC50aGVuKCByZXMgPT4ge1xuICAgICAgICAgICAgICAgIGluUHJvZ3Jlc3MucHJvZ3Jlc3MoKVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBsZXRlZFJvd0xpc3RQYWdlKClcbiAgICAgICAgICAgIH0gKVxuICAgICAgICAgICAgLnRoZW4oICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnY29tcGxldGUnLHRoaXMuaXNMb2FkaW5nKVxuICAgICAgICAgICAgICAgIGluUHJvZ3Jlc3MuY29tcGxldGUoKVxuXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZVxuICAgICAgICAgICAgICAgIHRoaXMuX2lzRmlyc3RMb2FkID0gZmFsc2VcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICAgICAgfSApXG4gICAgICAgICAgICAuY2F0Y2goICggZXJyICkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUud2FybihlcnIpXG4gICAgICAgICAgICAgICAgaWYgKCBlcnIgaW5zdGFuY2VvZiBBYm9ydGVkICkgcmV0dXJuXG5cbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRSb3dMaXN0UGFnZUZhaWxlZCggZXJyIClcbiAgICAgICAgICAgIH0gKVxuICAgIH1cblxuICAgIGxvYWRSb3dMaXN0KCk6IFByb21pc2U8TD4ge1xuICAgICAgICBpZiAoIHRoaXMuX2xvYWRSb3dMaXN0UmVxdWVzdCApXG4gICAgICAgICAgICB0aGlzLl9sb2FkUm93TGlzdFJlcXVlc3QuYWJvcnQoKVxuXG4gICAgICAgIHRoaXMuX2xvYWRSb3dMaXN0UmVxdWVzdCA9IG5ldyBPYnNlcnZhYmxlQWJvcnRlcjxMPiggKCkgPT4geyAgICAgICAgXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFJvd0xpc3RQYWdlKClcbiAgICAgICAgfSApXG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRSb3dMaXN0UmVxdWVzdC5wcm9taXNlXG4gICAgfVxuXG4gICAgYWJzdHJhY3QgZmV0Y2hSb3dMaXN0UGFnZSgpOiBPYnNlcnZhYmxlPEw+IFxuXG4gICAgcGFyc2VSb3dMaXN0KCByZXN1bHQ6IEwgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoIHJlc3VsdCApXG4gICAgICAgICAgICAudGhlbiggcmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl90b3RhbFJvd0NvdW50ID0gdGhpcy5wYXJzZVRvdGFsUm93Q291bnQoIHJlcyApXG4gICAgICAgICAgICAgICAgdGhpcy5fcm93cyA9IHRoaXMucGFyc2VSb3dzKCByZXMgKVxuICAgICAgICAgICAgfSApXG4gICAgfVxuXG4gICAgYWJzdHJhY3QgcGFyc2VSb3dzKCByZXM6IEwgKTogUltdIFxuICAgIFxuICAgIHBhcnNlVG90YWxSb3dDb3VudCggcmVzOiBMICk6IG51bWJlciB7XG4gICAgICAgIGlmICggJ3RvdGFsUm93Q291bnQnIGluIChyZXMgYXMgYW55KSApIHJldHVybiAocmVzIGFzIGFueSlbICd0b3RhbFJvd0NvdW50JyBdXG5cbiAgICAgICAgdGhyb3cgJ01pc3NpbmcgcmVzLnRvdGFsUm93Q291bnQsIG1pZ2h0IG5lZWQgdG8gb3ZlcnJpZGUgUm93TGlzdEJhc2UucGFyc2VUb3RhbFJvd0NvdW50J1xuICAgIH1cblxuICAgIGNvbXBsZXRlZFJvd0xpc3RQYWdlKCkge31cblxuICAgIGxvYWRSb3dMaXN0UGFnZUZhaWxlZCggZXJyb3I6IGFueSApIHtcbiAgICAgICAgY29uc29sZS53YXJuKCBlcnJvciApXG4gICAgICAgIHRoaXMuX3Jvd3MgPSBbXVxuICAgICAgICB0aGlzLl90b3RhbFJvd0NvdW50ID0gMFxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlZnJlc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hSb3dMaXN0KClcbiAgICB9XG59XG5cbmNsYXNzIEluUHJvZ3Jlc3Mge1xuICAgIHByaXZhdGUgX2NvbXBsZXRlZCA9IGZhbHNlXG4gICAgcHJpdmF0ZSBfY2FuY2VsbGVkID0gZmFsc2VcblxuICAgIGNvbXBsZXRlKCkge1xuICAgICAgICBpZiAoIHRoaXMuaXNDYW5jZWxsZWQgKSByZXR1cm5cbiAgICAgICAgdGhpcy5fY29tcGxldGVkID0gdHJ1ZVxuICAgIH1cblxuICAgIGNhbmNlbCgpIHtcbiAgICAgICAgaWYgKCB0aGlzLmlzQ29tcGxldGVkICkgcmV0dXJuXG4gICAgICAgIHRoaXMuX2NhbmNlbGxlZCA9IHRydWUgICAgICAgIFxuICAgIH1cblxuICAgIHByb2dyZXNzKCkge1xuICAgICAgICBpZiAoIHRoaXMuaXNDb21wbGV0ZWQgKSByZXR1cm5cbiAgICAgICAgaWYgKCB0aGlzLmlzQ2FuY2VsbGVkICkgdGhyb3cgbmV3IEFib3J0ZWQoJ0luUHJvZ3Jlc3MgY2FuY2VsbGVkJylcbiAgICB9XG5cbiAgICBnZXQgaXNDb21wbGV0ZWQoKSB7ICAgICAgICBcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXBsZXRlZFxuICAgIH1cblxuICAgIGdldCBpc0NhbmNlbGxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhbmNlbGxlZFxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -30,6 +30,8 @@ export class TooltipDirective {
|
|
|
30
30
|
this.overlayRef = null;
|
|
31
31
|
}
|
|
32
32
|
show() {
|
|
33
|
+
if (this.showTooltipTimeout)
|
|
34
|
+
clearTimeout(this.showTooltipTimeout);
|
|
33
35
|
if (this.hideTooltipTimeout)
|
|
34
36
|
clearTimeout(this.hideTooltipTimeout);
|
|
35
37
|
if (this.overlayRef || !this.tooltipTemplate)
|
|
@@ -56,20 +58,24 @@ export class TooltipDirective {
|
|
|
56
58
|
});
|
|
57
59
|
if (this.tooltipTemplate instanceof TemplateRef) {
|
|
58
60
|
const portal = new TemplatePortal(this.tooltipTemplate, this.viewContainerRef, this.tooltipContext);
|
|
59
|
-
setTimeout(() => {
|
|
61
|
+
this.showTooltipTimeout = setTimeout(() => {
|
|
60
62
|
this.overlayRef?.attach(portal);
|
|
63
|
+
this.showTooltipTimeout = null;
|
|
61
64
|
}, this.tooltipDelay);
|
|
62
65
|
}
|
|
63
66
|
else {
|
|
64
67
|
const componentPortal = new ComponentPortal(TooltipComponent, this.viewContainerRef);
|
|
65
|
-
setTimeout(() => {
|
|
68
|
+
this.showTooltipTimeout = setTimeout(() => {
|
|
66
69
|
const componentRef = this.overlayRef?.attach(componentPortal);
|
|
67
70
|
if (componentRef)
|
|
68
71
|
componentRef.instance.text = this.tooltipTemplate;
|
|
72
|
+
this.showTooltipTimeout = null;
|
|
69
73
|
}, this.tooltipDelay);
|
|
70
74
|
}
|
|
71
75
|
}
|
|
72
76
|
hide() {
|
|
77
|
+
if (this.showTooltipTimeout)
|
|
78
|
+
clearTimeout(this.showTooltipTimeout);
|
|
73
79
|
this.hideTooltipTimeout = setTimeout(() => {
|
|
74
80
|
this.closeTooltip();
|
|
75
81
|
}, this.tooltipDelay);
|
|
@@ -111,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
111
117
|
type: HostListener,
|
|
112
118
|
args: ['mouseleave']
|
|
113
119
|
}] } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uci1uZ3gtY29tcG9uZW50LWxpYi9zcmMvZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SixPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFnQnRFLE1BQU0sT0FBTyxnQkFBZ0I7SUFaN0I7UUFhYSxTQUFJLEdBQVcsRUFBRSxDQUFDO0tBQzlCOytHQUZZLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHNGQVZmOztLQUVUOzs0RkFRUSxnQkFBZ0I7a0JBWjVCLFNBQVM7K0JBQ0ksc0JBQXNCLFlBQ3RCOztLQUVUOzhCQVNRLElBQUk7c0JBQVosS0FBSzs7QUFHViw4RkFBOEY7QUFLOUYsTUFBTSxPQUFPLGdCQUFnQjtJQUg3QjtRQUlZLFlBQU8sR0FBRyxNQUFNLENBQUUsT0FBTyxDQUFFLENBQUE7UUFDM0IsZUFBVSxHQUFHLE1BQU0sQ0FBRSxVQUFVLENBQUUsQ0FBQTtRQUNqQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUUsZ0JBQWdCLENBQUUsQ0FBQTtRQUM3QyxhQUFRLEdBQUcsTUFBTSxDQUFFLFNBQVMsQ0FBRSxDQUFBO1FBSzhCLGlCQUFZLEdBQUcsR0FBRyxDQUFBO1FBRTlFLGVBQVUsR0FBc0IsSUFBSSxDQUFBO0tBb0UvQztJQWhFRyxJQUFJO1FBQ0EsSUFBSyxJQUFJLENBQUMsa0JBQWtCO1lBQUcs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O1FBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ3ZCLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUssSUFBSSxDQUFDLFVBQVUsRUFBRyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUE7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtZQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQTtRQUMxQixDQUFDO0lBQ0wsQ0FBQzsrR0E5RVEsZ0JBQWdCO21HQUFoQixnQkFBZ0IsNlBBU3VCLGVBQWU7OzRGQVR0RCxnQkFBZ0I7a0JBSDVCLFNBQVM7bUJBQUU7b0JBQ1IsUUFBUSxFQUFFLGVBQWU7aUJBQzVCOzhCQU8yQixlQUFlO3NCQUF0QyxLQUFLO3VCQUFFLGFBQWE7Z0JBQ1UsY0FBYztzQkFBNUMsS0FBSzt1QkFBRSxvQkFBb0I7Z0JBQ0MsWUFBWTtzQkFBeEMsS0FBSzt1QkFBRSxrQkFBa0I7Z0JBQzBDLFlBQVk7c0JBQS9FLEtBQUs7dUJBQUUsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFNakUsSUFBSTtzQkFESCxZQUFZO3VCQUFFLFlBQVk7Z0JBZ0QzQixJQUFJO3NCQURILFlBQVk7dUJBQUUsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIGluamVjdCwgQ29tcG9uZW50LCBudW1iZXJBdHRyaWJ1dGUsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuXG5cbkBDb21wb25lbnQoIHtcbiAgICBzZWxlY3RvcjogJ25yY2wtZGVmYXVsdC10b29sdGlwJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICB7eyB0ZXh0IH19XG4gICAgYCxcbiAgICBzdHlsZXM6IFsgYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgYF1cbn0gKVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHRleHQ6IHN0cmluZyA9ICcnO1xufVxuXG4vLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5cbkBEaXJlY3RpdmUoIHtcbiAgICBzZWxlY3RvcjogJ1tucmNsVG9vbHRpcF0nLFxufSApXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSB7XG4gICAgcHJpdmF0ZSBvdmVybGF5ID0gaW5qZWN0KCBPdmVybGF5IClcbiAgICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoIEVsZW1lbnRSZWYgKVxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdCggVmlld0NvbnRhaW5lclJlZiApXG4gICAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdCggUmVuZGVyZXIyIClcblxuICAgIEBJbnB1dCggJ25yY2xUb29sdGlwJyApIHRvb2x0aXBUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT4gfCBzdHJpbmdcbiAgICBASW5wdXQoICducmNsVG9vbHRpcENvbnRleHQnICkgdG9vbHRpcENvbnRleHQ6IGFueVxuICAgIEBJbnB1dCggJ25yY2xUb29sdGlwQ2xhc3MnICkgdG9vbHRpcENsYXNzPzogc3RyaW5nXG4gICAgQElucHV0KCB7IGFsaWFzOiAnbnJjbFRvb2x0aXBEZWxheScsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0gKSB0b29sdGlwRGVsYXkgPSAzMDBcblxuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsXG4gICAgcHJpdmF0ZSBoaWRlVG9vbHRpcFRpbWVvdXQ/OiBhbnlcblxuICAgIEBIb3N0TGlzdGVuZXIoICdtb3VzZWVudGVyJyApXG4gICAgc2hvdygpIHtcbiAgICAgICAgaWYgKCB0aGlzLmhpZGVUb29sdGlwVGltZW91dCApIGNsZWFyVGltZW91dCggdGhpcy5oaWRlVG9vbHRpcFRpbWVvdXQgKVxuXG4gICAgICAgIGlmICggdGhpcy5vdmVybGF5UmVmIHx8ICF0aGlzLnRvb2x0aXBUZW1wbGF0ZSApIHJldHVyblxuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyggdGhpcy5lbGVtZW50UmVmIClcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKCBbXG4gICAgICAgICAgICAgICAgeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJywgb2Zmc2V0WTogOCB9LCAvLyBCb3R0b21cbiAgICAgICAgICAgICAgICB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICdib3R0b20nLCBvZmZzZXRZOiAtOCB9IC8vIFRvcCBmYWxsYmFja1xuICAgICAgICAgICAgXSApXG5cbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSgge1xuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICAgICAgICBwYW5lbENsYXNzOiBbICducmNsLXRvb2x0aXAtcGFuZWwnLCAuLi4oIHRoaXMudG9vbHRpcENsYXNzID8gWyB0aGlzLnRvb2x0aXBDbGFzcyBdOiBbXSApIF0sXG4gICAgICAgIH0gKVxuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlFbGVtZW50ID0gdGhpcy5vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50O1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKG92ZXJsYXlFbGVtZW50LCAnbW91c2VlbnRlcicsICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZGVUb29sdGlwVGltZW91dCkgY2xlYXJUaW1lb3V0KHRoaXMuaGlkZVRvb2x0aXBUaW1lb3V0KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4ob3ZlcmxheUVsZW1lbnQsICdtb3VzZWxlYXZlJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH0gKVxuXG4gICAgICAgIGlmICggdGhpcy50b29sdGlwVGVtcGxhdGUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZiApIHtcbiAgICAgICAgICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCggdGhpcy50b29sdGlwVGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZiwgdGhpcy50b29sdGlwQ29udGV4dCApXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmF0dGFjaCggcG9ydGFsIClcbiAgICAgICAgICAgIH0sIHRoaXMudG9vbHRpcERlbGF5IClcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoIFRvb2x0aXBDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZiApXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLm92ZXJsYXlSZWY/LmF0dGFjaCggY29tcG9uZW50UG9ydGFsIClcblxuICAgICAgICAgICAgICAgIGlmICggY29tcG9uZW50UmVmIClcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnRleHQgPSB0aGlzLnRvb2x0aXBUZW1wbGF0ZSBhcyBzdHJpbmdcbiAgICAgICAgICAgIH0sIHRoaXMudG9vbHRpcERlbGF5IClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoICdtb3VzZWxlYXZlJyApXG4gICAgaGlkZSgpIHtcbiAgICAgICAgdGhpcy5oaWRlVG9vbHRpcFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VUb29sdGlwKClcbiAgICAgICAgfSwgdGhpcy50b29sdGlwRGVsYXkgKVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsb3NlVG9vbHRpcCgpXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZVRvb2x0aXAoKSB7XG4gICAgICAgIGlmICggdGhpcy5vdmVybGF5UmVmICkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsXG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uci1uZ3gtY29tcG9uZW50LWxpYi9zcmMvZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SixPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFnQnRFLE1BQU0sT0FBTyxnQkFBZ0I7SUFaN0I7UUFhYSxTQUFJLEdBQVcsRUFBRSxDQUFDO0tBQzlCOytHQUZZLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHNGQVZmOztLQUVUOzs0RkFRUSxnQkFBZ0I7a0JBWjVCLFNBQVM7K0JBQ0ksc0JBQXNCLFlBQ3RCOztLQUVUOzhCQVNRLElBQUk7c0JBQVosS0FBSzs7QUFHViw4RkFBOEY7QUFLOUYsTUFBTSxPQUFPLGdCQUFnQjtJQUg3QjtRQUlZLFlBQU8sR0FBRyxNQUFNLENBQUUsT0FBTyxDQUFFLENBQUE7UUFDM0IsZUFBVSxHQUFHLE1BQU0sQ0FBRSxVQUFVLENBQUUsQ0FBQTtRQUNqQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUUsZ0JBQWdCLENBQUUsQ0FBQTtRQUM3QyxhQUFRLEdBQUcsTUFBTSxDQUFFLFNBQVMsQ0FBRSxDQUFBO1FBSzhCLGlCQUFZLEdBQUcsR0FBRyxDQUFBO1FBRTlFLGVBQVUsR0FBc0IsSUFBSSxDQUFBO0tBMkUvQztJQXRFRyxJQUFJO1FBQ0EsSUFBSyxJQUFJLENBQUMsa0JBQWtCO1lBQUcs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UmVmLCBWaWV3Q29udGFpbmVyUmVmLCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIGluamVjdCwgQ29tcG9uZW50LCBudW1iZXJBdHRyaWJ1dGUsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuXG5cbkBDb21wb25lbnQoIHtcbiAgICBzZWxlY3RvcjogJ25yY2wtZGVmYXVsdC10b29sdGlwJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICB7eyB0ZXh0IH19XG4gICAgYCxcbiAgICBzdHlsZXM6IFsgYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgYF1cbn0gKVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHRleHQ6IHN0cmluZyA9ICcnO1xufVxuXG4vLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5cbkBEaXJlY3RpdmUoIHtcbiAgICBzZWxlY3RvcjogJ1tucmNsVG9vbHRpcF0nLFxufSApXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSB7XG4gICAgcHJpdmF0ZSBvdmVybGF5ID0gaW5qZWN0KCBPdmVybGF5IClcbiAgICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoIEVsZW1lbnRSZWYgKVxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdCggVmlld0NvbnRhaW5lclJlZiApXG4gICAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdCggUmVuZGVyZXIyIClcblxuICAgIEBJbnB1dCggJ25yY2xUb29sdGlwJyApIHRvb2x0aXBUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT4gfCBzdHJpbmdcbiAgICBASW5wdXQoICducmNsVG9vbHRpcENvbnRleHQnICkgdG9vbHRpcENvbnRleHQ6IGFueVxuICAgIEBJbnB1dCggJ25yY2xUb29sdGlwQ2xhc3MnICkgdG9vbHRpcENsYXNzPzogc3RyaW5nXG4gICAgQElucHV0KCB7IGFsaWFzOiAnbnJjbFRvb2x0aXBEZWxheScsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0gKSB0b29sdGlwRGVsYXkgPSAzMDBcblxuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsXG4gICAgcHJpdmF0ZSBzaG93VG9vbHRpcFRpbWVvdXQ/OiBhbnlcbiAgICBwcml2YXRlIGhpZGVUb29sdGlwVGltZW91dD86IGFueVxuXG4gICAgQEhvc3RMaXN0ZW5lciggJ21vdXNlZW50ZXInIClcbiAgICBzaG93KCkge1xuICAgICAgICBpZiAoIHRoaXMuc2hvd1Rvb2x0aXBUaW1lb3V0ICkgY2xlYXJUaW1lb3V0KCB0aGlzLnNob3dUb29sdGlwVGltZW91dCApXG4gICAgICAgIGlmICggdGhpcy5oaWRlVG9vbHRpcFRpbWVvdXQgKSBjbGVhclRpbWVvdXQoIHRoaXMuaGlkZVRvb2x0aXBUaW1lb3V0IClcblxuICAgICAgICBpZiAoIHRoaXMub3ZlcmxheVJlZiB8fCAhdGhpcy50b29sdGlwVGVtcGxhdGUgKSByZXR1cm5cblxuICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oIHRoaXMuZWxlbWVudFJlZiApXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyggW1xuICAgICAgICAgICAgICAgIHsgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCcsIG9mZnNldFk6IDggfSwgLy8gQm90dG9tXG4gICAgICAgICAgICAgICAgeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnYm90dG9tJywgb2Zmc2V0WTogLTggfSAvLyBUb3AgZmFsbGJhY2tcbiAgICAgICAgICAgIF0gKVxuXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoIHtcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogWyAnbnJjbC10b29sdGlwLXBhbmVsJywgLi4uKCB0aGlzLnRvb2x0aXBDbGFzcyA/IFsgdGhpcy50b29sdGlwQ2xhc3MgXTogW10gKSBdLFxuICAgICAgICB9IClcblxuICAgICAgICBjb25zdCBvdmVybGF5RWxlbWVudCA9IHRoaXMub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudDtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihvdmVybGF5RWxlbWVudCwgJ21vdXNlZW50ZXInLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5oaWRlVG9vbHRpcFRpbWVvdXQpIGNsZWFyVGltZW91dCh0aGlzLmhpZGVUb29sdGlwVGltZW91dCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKG92ZXJsYXlFbGVtZW50LCAnbW91c2VsZWF2ZScsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9IClcblxuICAgICAgICBpZiAoIHRoaXMudG9vbHRpcFRlbXBsYXRlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYgKSB7XG4gICAgICAgICAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoIHRoaXMudG9vbHRpcFRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYsIHRoaXMudG9vbHRpcENvbnRleHQgKVxuICAgICAgICAgICAgdGhpcy5zaG93VG9vbHRpcFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmF0dGFjaCggcG9ydGFsIClcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dUb29sdGlwVGltZW91dCA9IG51bGxcbiAgICAgICAgICAgIH0sIHRoaXMudG9vbHRpcERlbGF5IClcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoIFRvb2x0aXBDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZiApXG4gICAgICAgICAgICB0aGlzLnNob3dUb29sdGlwVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMub3ZlcmxheVJlZj8uYXR0YWNoKCBjb21wb25lbnRQb3J0YWwgKVxuXG4gICAgICAgICAgICAgICAgaWYgKCBjb21wb25lbnRSZWYgKVxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UudGV4dCA9IHRoaXMudG9vbHRpcFRlbXBsYXRlIGFzIHN0cmluZ1xuXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93VG9vbHRpcFRpbWVvdXQgPSBudWxsXG4gICAgICAgICAgICB9LCB0aGlzLnRvb2x0aXBEZWxheSApXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCAnbW91c2VsZWF2ZScgKVxuICAgIGhpZGUoKSB7XG4gICAgICAgIGlmICggdGhpcy5zaG93VG9vbHRpcFRpbWVvdXQgKSBjbGVhclRpbWVvdXQoIHRoaXMuc2hvd1Rvb2x0aXBUaW1lb3V0IClcblxuICAgICAgICB0aGlzLmhpZGVUb29sdGlwVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVRvb2x0aXAoKVxuICAgICAgICB9LCB0aGlzLnRvb2x0aXBEZWxheSApXG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2xvc2VUb29sdGlwKClcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlVG9vbHRpcCgpIHtcbiAgICAgICAgaWYgKCB0aGlzLm92ZXJsYXlSZWYgKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKClcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKClcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGxcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|