@energinet/watt 4.2.1 → 4.2.3
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/data/watt-data-table.component.d.ts +2 -1
- package/esm2022/data/watt-data-table.component.js +6 -3
- package/esm2022/modal/watt-modal.component.js +3 -3
- package/esm2022/table/watt-table.component.js +15 -4
- package/modal/watt-modal.component.d.ts +1 -1
- package/package.json +1 -1
- package/table/watt-table.component.d.ts +6 -1
|
@@ -17,6 +17,7 @@ export declare class WattDataTableComponent {
|
|
|
17
17
|
queryTime: import("@angular/core").InputSignal<number | undefined>;
|
|
18
18
|
searchLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
19
19
|
enablePaginator: import("@angular/core").InputSignal<boolean>;
|
|
20
|
+
pageSize: import("@angular/core").InputSignal<number>;
|
|
20
21
|
count: import("@angular/core").InputSignal<number | undefined>;
|
|
21
22
|
autoSize: import("@angular/core").InputSignal<boolean>;
|
|
22
23
|
variant: import("@angular/core").InputSignal<WATT_CARD_VARIANT>;
|
|
@@ -29,5 +30,5 @@ export declare class WattDataTableComponent {
|
|
|
29
30
|
reset: () => void | undefined;
|
|
30
31
|
onSearch(value: string): void;
|
|
31
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<WattDataTableComponent, never>;
|
|
32
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<WattDataTableComponent, "watt-data-table", never, { "error": { "alias": "error"; "required": false; "isSignal": true; }; "ready": { "alias": "ready"; "required": false; "isSignal": true; }; "enableSearch": { "alias": "enableSearch"; "required": false; "isSignal": true; }; "trimSearch": { "alias": "trimSearch"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "enableRetry": { "alias": "enableRetry"; "required": false; "isSignal": true; }; "enableCount": { "alias": "enableCount"; "required": false; "isSignal": true; }; "enableEmptyState": { "alias": "enableEmptyState"; "required": false; "isSignal": true; }; "queryTime": { "alias": "queryTime"; "required": false; "isSignal": true; }; "searchLabel": { "alias": "searchLabel"; "required": false; "isSignal": true; }; "enablePaginator": { "alias": "enablePaginator"; "required": false; "isSignal": true; }; "count": { "alias": "count"; "required": false; "isSignal": true; }; "autoSize": { "alias": "autoSize"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "emptyStateIcon": { "alias": "emptyStateIcon"; "required": false; "isSignal": true; }; }, { "clear": "clear"; "pageChanged": "pageChanged"; "retry": "retry"; }, ["table"], ["h3", "h4", "*", "watt-data-actions", "watt-button", "watt-data-filters", "watt-table"], true, never>;
|
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WattDataTableComponent, "watt-data-table", never, { "error": { "alias": "error"; "required": false; "isSignal": true; }; "ready": { "alias": "ready"; "required": false; "isSignal": true; }; "enableSearch": { "alias": "enableSearch"; "required": false; "isSignal": true; }; "trimSearch": { "alias": "trimSearch"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "enableRetry": { "alias": "enableRetry"; "required": false; "isSignal": true; }; "enableCount": { "alias": "enableCount"; "required": false; "isSignal": true; }; "enableEmptyState": { "alias": "enableEmptyState"; "required": false; "isSignal": true; }; "queryTime": { "alias": "queryTime"; "required": false; "isSignal": true; }; "searchLabel": { "alias": "searchLabel"; "required": false; "isSignal": true; }; "enablePaginator": { "alias": "enablePaginator"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "count": { "alias": "count"; "required": false; "isSignal": true; }; "autoSize": { "alias": "autoSize"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "emptyStateIcon": { "alias": "emptyStateIcon"; "required": false; "isSignal": true; }; }, { "clear": "clear"; "pageChanged": "pageChanged"; "retry": "retry"; }, ["table"], ["h3", "h4", "*", "watt-data-actions", "watt-button", "watt-data-filters", "watt-table"], true, never>;
|
|
33
34
|
}
|
|
@@ -39,6 +39,7 @@ export class WattDataTableComponent {
|
|
|
39
39
|
queryTime = input(...(ngDevMode ? [undefined, { debugName: "queryTime" }] : []));
|
|
40
40
|
searchLabel = input(...(ngDevMode ? [undefined, { debugName: "searchLabel" }] : []));
|
|
41
41
|
enablePaginator = input(true, ...(ngDevMode ? [{ debugName: "enablePaginator" }] : []));
|
|
42
|
+
pageSize = input(50, ...(ngDevMode ? [{ debugName: "pageSize" }] : []));
|
|
42
43
|
count = input(...(ngDevMode ? [undefined, { debugName: "count" }] : []));
|
|
43
44
|
autoSize = input(false, ...(ngDevMode ? [{ debugName: "autoSize" }] : []));
|
|
44
45
|
variant = input('solid', ...(ngDevMode ? [{ debugName: "variant" }] : []));
|
|
@@ -55,7 +56,7 @@ export class WattDataTableComponent {
|
|
|
55
56
|
this.clear.emit();
|
|
56
57
|
}
|
|
57
58
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattDataTableComponent, isStandalone: true, selector: "watt-data-table", inputs: { error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, ready: { classPropertyName: "ready", publicName: "ready", isSignal: true, isRequired: false, transformFunction: null }, enableSearch: { classPropertyName: "enableSearch", publicName: "enableSearch", isSignal: true, isRequired: false, transformFunction: null }, trimSearch: { classPropertyName: "trimSearch", publicName: "trimSearch", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, enableRetry: { classPropertyName: "enableRetry", publicName: "enableRetry", isSignal: true, isRequired: false, transformFunction: null }, enableCount: { classPropertyName: "enableCount", publicName: "enableCount", isSignal: true, isRequired: false, transformFunction: null }, enableEmptyState: { classPropertyName: "enableEmptyState", publicName: "enableEmptyState", isSignal: true, isRequired: false, transformFunction: null }, queryTime: { classPropertyName: "queryTime", publicName: "queryTime", isSignal: true, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: false, transformFunction: null }, enablePaginator: { classPropertyName: "enablePaginator", publicName: "enablePaginator", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, autoSize: { classPropertyName: "autoSize", publicName: "autoSize", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, emptyStateIcon: { classPropertyName: "emptyStateIcon", publicName: "emptyStateIcon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clear: "clear", pageChanged: "pageChanged", retry: "retry" }, queries: [{ propertyName: "table", first: true, predicate: (WattTableComponent), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "search", first: true, predicate: WattSearchComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
59
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattDataTableComponent, isStandalone: true, selector: "watt-data-table", inputs: { error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, ready: { classPropertyName: "ready", publicName: "ready", isSignal: true, isRequired: false, transformFunction: null }, enableSearch: { classPropertyName: "enableSearch", publicName: "enableSearch", isSignal: true, isRequired: false, transformFunction: null }, trimSearch: { classPropertyName: "trimSearch", publicName: "trimSearch", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, enableRetry: { classPropertyName: "enableRetry", publicName: "enableRetry", isSignal: true, isRequired: false, transformFunction: null }, enableCount: { classPropertyName: "enableCount", publicName: "enableCount", isSignal: true, isRequired: false, transformFunction: null }, enableEmptyState: { classPropertyName: "enableEmptyState", publicName: "enableEmptyState", isSignal: true, isRequired: false, transformFunction: null }, queryTime: { classPropertyName: "queryTime", publicName: "queryTime", isSignal: true, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: false, transformFunction: null }, enablePaginator: { classPropertyName: "enablePaginator", publicName: "enablePaginator", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, autoSize: { classPropertyName: "autoSize", publicName: "autoSize", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, emptyStateIcon: { classPropertyName: "emptyStateIcon", publicName: "emptyStateIcon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clear: "clear", pageChanged: "pageChanged", retry: "retry" }, queries: [{ propertyName: "table", first: true, predicate: (WattTableComponent), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "search", first: true, predicate: WattSearchComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
59
60
|
<watt-card vater fill="vertical" [variant]="variant()">
|
|
60
61
|
<vater-flex autoSize fill="vertical" gap="m">
|
|
61
62
|
@if (header()) {
|
|
@@ -116,6 +117,7 @@ export class WattDataTableComponent {
|
|
|
116
117
|
<watt-paginator
|
|
117
118
|
[for]="table().dataSource()"
|
|
118
119
|
[length]="count() ?? 0"
|
|
120
|
+
[pageSize]="pageSize()"
|
|
119
121
|
(changed)="pageChanged.emit($event)"
|
|
120
122
|
/>
|
|
121
123
|
}
|
|
@@ -196,11 +198,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
196
198
|
<watt-paginator
|
|
197
199
|
[for]="table().dataSource()"
|
|
198
200
|
[length]="count() ?? 0"
|
|
201
|
+
[pageSize]="pageSize()"
|
|
199
202
|
(changed)="pageChanged.emit($event)"
|
|
200
203
|
/>
|
|
201
204
|
}
|
|
202
205
|
</vater-flex>
|
|
203
206
|
</watt-card>
|
|
204
207
|
`, styles: ["watt-data-table h3,watt-data-table h4{line-height:44px;min-height:44px;margin:0}watt-data-table watt-paginator{display:block;margin:calc(-1 * var(--watt-space-m)) -24px -24px}watt-data-table watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:none}watt-data-table watt-empty-state{margin:var(--watt-space-xl) 0}\n"] }]
|
|
205
|
-
}], propDecorators: { error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], ready: [{ type: i0.Input, args: [{ isSignal: true, alias: "ready", required: false }] }], enableSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableSearch", required: false }] }], trimSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "trimSearch", required: false }] }], header: [{ type: i0.Input, args: [{ isSignal: true, alias: "header", required: false }] }], enableRetry: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableRetry", required: false }] }], enableCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableCount", required: false }] }], enableEmptyState: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableEmptyState", required: false }] }], queryTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryTime", required: false }] }], searchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchLabel", required: false }] }], enablePaginator: [{ type: i0.Input, args: [{ isSignal: true, alias: "enablePaginator", required: false }] }], count: [{ type: i0.Input, args: [{ isSignal: true, alias: "count", required: false }] }], autoSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoSize", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], emptyStateIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyStateIcon", required: false }] }], clear: [{ type: i0.Output, args: ["clear"] }], pageChanged: [{ type: i0.Output, args: ["pageChanged"] }], retry: [{ type: i0.Output, args: ["retry"] }], table: [{ type: i0.ContentChild, args: [i0.forwardRef(() => WattTableComponent), { ...{ descendants: true }, isSignal: true }] }], search: [{ type: i0.ViewChild, args: [i0.forwardRef(() => WattSearchComponent), { isSignal: true }] }] } });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kYXRhLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2RhdGEvd2F0dC1kYXRhLXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN0QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUczRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUEyRy9ELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRW5DLEtBQUssR0FBRyxLQUFLLDJEQUFXLENBQUM7SUFDekIsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLGlEQUFDLENBQUM7SUFDcEIsWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLHdEQUFDLENBQUM7SUFDM0IsVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLHNEQUFDLENBQUM7SUFDekIsTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLGtEQUFDLENBQUM7SUFDckIsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLHVEQUFDLENBQUM7SUFDM0IsV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLHVEQUFDLENBQUM7SUFDMUIsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLElBQUksNERBQUMsQ0FBQztJQUMvQixTQUFTLEdBQUcsS0FBSywrREFBVSxDQUFDO0lBQzVCLFdBQVcsR0FBRyxLQUFLLGlFQUFVLENBQUM7SUFDOUIsZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLDJEQUFDLENBQUM7SUFDOUIsS0FBSyxHQUFHLEtBQUssMkRBQVUsQ0FBQztJQUN4QixRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssb0RBQUMsQ0FBQztJQUN4QixPQUFPLEdBQUcsS0FBSyxDQUFvQixPQUFPLG1EQUFDLENBQUM7SUFDNUMsY0FBYyxHQUFHLEtBQUssQ0FDcEIsUUFBUSwwREFDVCxDQUFDO0lBRUYsS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ2pCLFdBQVcsR0FBRyxNQUFNLEVBQWEsQ0FBQztJQUNsQyxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFFakIsS0FBSyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQSxrQkFBMkIsQ0FBQSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFbEYsTUFBTSxHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsa0RBQUMsQ0FBQztJQUN4QyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBRXJDLFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO3VHQWpDVSxzQkFBc0I7MkZBQXRCLHNCQUFzQiw2cEVBeUJILENBQUEsa0JBQTJCLENBQUEsd0dBRXRDLG1CQUFtQixnRUEvRjVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrRVQsdWFBcEdDLGtCQUFrQiwyRkFDbEIsb0JBQW9CLHlFQUNwQixtQkFBbUIsdUVBQ25CLHFCQUFxQix1R0FDckIsaUJBQWlCLHNGQUNqQix1QkFBdUIsc0hBQ3ZCLHNCQUFzQix3SkFDdEIsbUJBQW1CLGdJQUNuQixtQkFBbUI7OzJGQThGVixzQkFBc0I7a0JBekdsQyxTQUFTOytCQUNFLGlCQUFpQixXQUNsQjt3QkFDUCxrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3FCQUNwQixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLFlBd0IzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0VUO3FzREEyQjZCLGtCQUEyQixRQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxrRkFFN0QsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgY29udGVudENoaWxkLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuXG5pbXBvcnQge1xuICBWYXRlckZsZXhDb21wb25lbnQsXG4gIFZhdGVyU3BhY2VyQ29tcG9uZW50LFxuICBWYXRlclN0YWNrQ29tcG9uZW50LFxuICBWYXRlclV0aWxpdHlEaXJlY3RpdmUsXG59IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC92YXRlcic7XG5pbXBvcnQgeyBXQVRUX0NBUkRfVkFSSUFOVCwgV2F0dENhcmRDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvY2FyZCc7XG5pbXBvcnQgeyBXYXR0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2J1dHRvbic7XG5pbXBvcnQgeyBXYXR0RW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9lbXB0eS1zdGF0ZSc7XG5pbXBvcnQgeyBXYXR0UGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3BhZ2luYXRvcic7XG5pbXBvcnQgeyBXYXR0U2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3NlYXJjaCc7XG5pbXBvcnQgeyBXYXR0VGFibGVDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvdGFibGUnO1xuaW1wb3J0IHsgV2F0dEljb24gfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvaWNvbic7XG5cbmltcG9ydCB7IFdhdHREYXRhSW50bFNlcnZpY2UgfSBmcm9tICcuL3dhdHQtZGF0YS1pbnRsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YXR0LWRhdGEtdGFibGUnLFxuICBpbXBvcnRzOiBbXG4gICAgVmF0ZXJGbGV4Q29tcG9uZW50LFxuICAgIFZhdGVyU3BhY2VyQ29tcG9uZW50LFxuICAgIFZhdGVyU3RhY2tDb21wb25lbnQsXG4gICAgVmF0ZXJVdGlsaXR5RGlyZWN0aXZlLFxuICAgIFdhdHRDYXJkQ29tcG9uZW50LFxuICAgIFdhdHRFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIFdhdHRQYWdpbmF0b3JDb21wb25lbnQsXG4gICAgV2F0dFNlYXJjaENvbXBvbmVudCxcbiAgICBXYXR0QnV0dG9uQ29tcG9uZW50LFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICB3YXR0LWRhdGEtdGFibGUgaDMsXG4gICAgICB3YXR0LWRhdGEtdGFibGUgaDQge1xuICAgICAgICBsaW5lLWhlaWdodDogNDRweDtcbiAgICAgICAgbWluLWhlaWdodDogNDRweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICB3YXR0LWRhdGEtdGFibGUgd2F0dC1wYWdpbmF0b3Ige1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiBjYWxjKC0xICogdmFyKC0td2F0dC1zcGFjZS1tKSkgLTI0cHggLTI0cHg7XG4gICAgICB9XG5cbiAgICAgIHdhdHQtZGF0YS10YWJsZSB3YXR0LXRhYmxlIC5tYXQtbWRjLXRhYmxlIHRyLm1kYy1kYXRhLXRhYmxlX19yb3c6bGFzdC1jaGlsZCAubWF0LW1kYy1jZWxsIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgd2F0dC1kYXRhLXRhYmxlIHdhdHQtZW1wdHktc3RhdGUge1xuICAgICAgICBtYXJnaW46IHZhcigtLXdhdHQtc3BhY2UteGwpIDA7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8d2F0dC1jYXJkIHZhdGVyIGZpbGw9XCJ2ZXJ0aWNhbFwiIFt2YXJpYW50XT1cInZhcmlhbnQoKVwiPlxuICAgICAgPHZhdGVyLWZsZXggYXV0b1NpemUgZmlsbD1cInZlcnRpY2FsXCIgZ2FwPVwibVwiPlxuICAgICAgICBAaWYgKGhlYWRlcigpKSB7XG4gICAgICAgICAgPHZhdGVyLXN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGdhcD1cIm1cIj5cbiAgICAgICAgICAgIDx2YXRlci1zdGFjayBkaXJlY3Rpb249XCJyb3dcIiBnYXA9XCJzXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImgzXCIgLz5cbiAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaDRcIiAvPlxuICAgICAgICAgICAgICBAaWYgKGVuYWJsZUNvdW50KCkpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndhdHQtY2hpcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAge3sgY291bnQoKSA/PyB0YWJsZSgpLmRhdGFTb3VyY2UoKS50b3RhbENvdW50IH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAocXVlcnlUaW1lKCkpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndhdHQtbGFiZWxcIj5pbiB7eyBxdWVyeVRpbWUoKSB9fSBtczwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICA8dmF0ZXItc3BhY2VyIC8+XG4gICAgICAgICAgICBAaWYgKGVuYWJsZVNlYXJjaCgpKSB7XG4gICAgICAgICAgICAgIDx3YXR0LXNlYXJjaFxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzZWFyY2hMYWJlbCgpID8/IGludGwuc2VhcmNoXCJcbiAgICAgICAgICAgICAgICBbdHJpbV09XCJ0cmltU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgIChzZWFyY2gpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LWRhdGEtYWN0aW9uc1wiIC8+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LWJ1dHRvblwiIC8+XG4gICAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgICAgfVxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LWRhdGEtZmlsdGVyc1wiIC8+XG4gICAgICAgIDx2YXRlci1mbGV4IFthdXRvU2l6ZV09XCJhdXRvU2l6ZSgpXCIgZmlsbD1cInZlcnRpY2FsXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwid2F0dC10YWJsZVwiIC8+XG4gICAgICAgICAgQGlmIChcbiAgICAgICAgICAgIGVuYWJsZUVtcHR5U3RhdGUoKSAmJlxuICAgICAgICAgICAgIXRhYmxlKCkubG9hZGluZygpICYmXG4gICAgICAgICAgICB0YWJsZSgpLmRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGEubGVuZ3RoID09PSAwXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICA8dmF0ZXItZmxleCBbYXV0b1NpemVdPVwiYXV0b1NpemUoKVwiIGZpbGw9XCJ2ZXJ0aWNhbFwiPlxuICAgICAgICAgICAgICA8dmF0ZXItc3RhY2sgc2Nyb2xsYWJsZSBqdXN0aWZ5PVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPHdhdHQtZW1wdHktc3RhdGVcbiAgICAgICAgICAgICAgICAgIFtpY29uXT1cImVycm9yKCkgPyAnY3VzdG9tLXBvd2VyJyA6IHJlYWR5KCkgPyBlbXB0eVN0YXRlSWNvbigpIDogJ2N1c3RvbS1leHBsb3JlJ1wiXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgIGVycm9yKCkgPyBpbnRsLmVycm9yVGl0bGUgOiByZWFkeSgpID8gaW50bC5lbXB0eVRpdGxlIDogaW50bC5kZWZhdWx0VGl0bGVcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBbbWVzc2FnZV09XCJlcnJvcigpID8gaW50bC5lcnJvclRleHQgOiByZWFkeSgpID8gaW50bC5lbXB0eVRleHQgOiBpbnRsLmRlZmF1bHRUZXh0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBAaWYgKGVuYWJsZVJldHJ5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHdhdHQtYnV0dG9uIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwicmV0cnkuZW1pdCgpXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICBpbnRsLmVtcHR5UmV0cnlcbiAgICAgICAgICAgICAgICAgICAgfX08L3dhdHQtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvd2F0dC1lbXB0eS1zdGF0ZT5cbiAgICAgICAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgICAgICAgIDwvdmF0ZXItZmxleD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdmF0ZXItZmxleD5cbiAgICAgICAgQGlmIChlbmFibGVQYWdpbmF0b3IoKSkge1xuICAgICAgICAgIDx3YXR0LXBhZ2luYXRvclxuICAgICAgICAgICAgW2Zvcl09XCJ0YWJsZSgpLmRhdGFTb3VyY2UoKVwiXG4gICAgICAgICAgICBbbGVuZ3RoXT1cImNvdW50KCkgPz8gMFwiXG4gICAgICAgICAgICAoY2hhbmdlZCk9XCJwYWdlQ2hhbmdlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvdmF0ZXItZmxleD5cbiAgICA8L3dhdHQtY2FyZD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dERhdGFUYWJsZUNvbXBvbmVudCB7XG4gIGludGwgPSBpbmplY3QoV2F0dERhdGFJbnRsU2VydmljZSk7XG5cbiAgZXJyb3IgPSBpbnB1dDx1bmtub3duPigpO1xuICByZWFkeSA9IGlucHV0KHRydWUpO1xuICBlbmFibGVTZWFyY2ggPSBpbnB1dCh0cnVlKTtcbiAgdHJpbVNlYXJjaCA9IGlucHV0KHRydWUpO1xuICBoZWFkZXIgPSBpbnB1dCh0cnVlKTtcbiAgZW5hYmxlUmV0cnkgPSBpbnB1dChmYWxzZSk7XG4gIGVuYWJsZUNvdW50ID0gaW5wdXQodHJ1ZSk7XG4gIGVuYWJsZUVtcHR5U3RhdGUgPSBpbnB1dCh0cnVlKTtcbiAgcXVlcnlUaW1lID0gaW5wdXQ8bnVtYmVyPigpO1xuICBzZWFyY2hMYWJlbCA9IGlucHV0PHN0cmluZz4oKTtcbiAgZW5hYmxlUGFnaW5hdG9yID0gaW5wdXQodHJ1ZSk7XG4gIGNvdW50ID0gaW5wdXQ8bnVtYmVyPigpO1xuICBhdXRvU2l6ZSA9IGlucHV0KGZhbHNlKTtcbiAgdmFyaWFudCA9IGlucHV0PFdBVFRfQ0FSRF9WQVJJQU5UPignc29saWQnKTtcbiAgZW1wdHlTdGF0ZUljb24gPSBpbnB1dDxXYXR0SWNvbiB8ICdjdXN0b20tcG93ZXInIHwgJ2N1c3RvbS1leHBsb3JlJyB8ICdjdXN0b20tbm8tcmVzdWx0cyc+KFxuICAgICdjYW5jZWwnXG4gICk7XG5cbiAgY2xlYXIgPSBvdXRwdXQoKTtcbiAgcGFnZUNoYW5nZWQgPSBvdXRwdXQ8UGFnZUV2ZW50PigpO1xuICByZXRyeSA9IG91dHB1dCgpO1xuXG4gIHRhYmxlID0gY29udGVudENoaWxkLnJlcXVpcmVkKFdhdHRUYWJsZUNvbXBvbmVudDx1bmtub3duPiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcblxuICBzZWFyY2ggPSB2aWV3Q2hpbGQoV2F0dFNlYXJjaENvbXBvbmVudCk7XG4gIHJlc2V0ID0gKCkgPT4gdGhpcy5zZWFyY2goKT8uY2xlYXIoKTtcblxuICBvblNlYXJjaCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy50YWJsZSgpLmRhdGFTb3VyY2UoKS5maWx0ZXIgPSB2YWx1ZTtcbiAgICBpZiAoIXZhbHVlKSB0aGlzLmNsZWFyLmVtaXQoKTtcbiAgfVxufVxuIl19
|
|
208
|
+
}], propDecorators: { error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], ready: [{ type: i0.Input, args: [{ isSignal: true, alias: "ready", required: false }] }], enableSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableSearch", required: false }] }], trimSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "trimSearch", required: false }] }], header: [{ type: i0.Input, args: [{ isSignal: true, alias: "header", required: false }] }], enableRetry: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableRetry", required: false }] }], enableCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableCount", required: false }] }], enableEmptyState: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableEmptyState", required: false }] }], queryTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryTime", required: false }] }], searchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchLabel", required: false }] }], enablePaginator: [{ type: i0.Input, args: [{ isSignal: true, alias: "enablePaginator", required: false }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }], count: [{ type: i0.Input, args: [{ isSignal: true, alias: "count", required: false }] }], autoSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoSize", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], emptyStateIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyStateIcon", required: false }] }], clear: [{ type: i0.Output, args: ["clear"] }], pageChanged: [{ type: i0.Output, args: ["pageChanged"] }], retry: [{ type: i0.Output, args: ["retry"] }], table: [{ type: i0.ContentChild, args: [i0.forwardRef(() => WattTableComponent), { ...{ descendants: true }, isSignal: true }] }], search: [{ type: i0.ViewChild, args: [i0.forwardRef(() => WattSearchComponent), { isSignal: true }] }] } });
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kYXRhLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2RhdGEvd2F0dC1kYXRhLXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN0QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUczRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUE0Ry9ELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRW5DLEtBQUssR0FBRyxLQUFLLDJEQUFXLENBQUM7SUFDekIsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLGlEQUFDLENBQUM7SUFDcEIsWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLHdEQUFDLENBQUM7SUFDM0IsVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLHNEQUFDLENBQUM7SUFDekIsTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLGtEQUFDLENBQUM7SUFDckIsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLHVEQUFDLENBQUM7SUFDM0IsV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLHVEQUFDLENBQUM7SUFDMUIsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLElBQUksNERBQUMsQ0FBQztJQUMvQixTQUFTLEdBQUcsS0FBSywrREFBVSxDQUFDO0lBQzVCLFdBQVcsR0FBRyxLQUFLLGlFQUFVLENBQUM7SUFDOUIsZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLDJEQUFDLENBQUM7SUFDOUIsUUFBUSxHQUFHLEtBQUssQ0FBUyxFQUFFLG9EQUFDLENBQUM7SUFDN0IsS0FBSyxHQUFHLEtBQUssMkRBQVUsQ0FBQztJQUN4QixRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssb0RBQUMsQ0FBQztJQUN4QixPQUFPLEdBQUcsS0FBSyxDQUFvQixPQUFPLG1EQUFDLENBQUM7SUFDNUMsY0FBYyxHQUFHLEtBQUssQ0FDcEIsUUFBUSwwREFDVCxDQUFDO0lBRUYsS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ2pCLFdBQVcsR0FBRyxNQUFNLEVBQWEsQ0FBQztJQUNsQyxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFFakIsS0FBSyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQSxrQkFBMkIsQ0FBQSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFbEYsTUFBTSxHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsa0RBQUMsQ0FBQztJQUN4QyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBRXJDLFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO3VHQWxDVSxzQkFBc0I7MkZBQXRCLHNCQUFzQiw4eEVBMEJILENBQUEsa0JBQTJCLENBQUEsd0dBRXRDLG1CQUFtQixnRUFqRzVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUVULHVhQXJHQyxrQkFBa0IsMkZBQ2xCLG9CQUFvQix5RUFDcEIsbUJBQW1CLHVFQUNuQixxQkFBcUIsdUdBQ3JCLGlCQUFpQixzRkFDakIsdUJBQXVCLHNIQUN2QixzQkFBc0Isd0pBQ3RCLG1CQUFtQixnSUFDbkIsbUJBQW1COzsyRkErRlYsc0JBQXNCO2tCQTFHbEMsU0FBUzsrQkFDRSxpQkFBaUIsV0FDbEI7d0JBQ1Asa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLG1CQUFtQjtxQkFDcEIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxZQXdCM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRVQ7cXlEQTRCNkIsa0JBQTJCLFFBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLGtGQUU3RCxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb250ZW50Q2hpbGQsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5cbmltcG9ydCB7XG4gIFZhdGVyRmxleENvbXBvbmVudCxcbiAgVmF0ZXJTcGFjZXJDb21wb25lbnQsXG4gIFZhdGVyU3RhY2tDb21wb25lbnQsXG4gIFZhdGVyVXRpbGl0eURpcmVjdGl2ZSxcbn0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3ZhdGVyJztcbmltcG9ydCB7IFdBVFRfQ0FSRF9WQVJJQU5ULCBXYXR0Q2FyZENvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9jYXJkJztcbmltcG9ydCB7IFdhdHRCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvYnV0dG9uJztcbmltcG9ydCB7IFdhdHRFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2VtcHR5LXN0YXRlJztcbmltcG9ydCB7IFdhdHRQYWdpbmF0b3JDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvcGFnaW5hdG9yJztcbmltcG9ydCB7IFdhdHRTZWFyY2hDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvc2VhcmNoJztcbmltcG9ydCB7IFdhdHRUYWJsZUNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC90YWJsZSc7XG5pbXBvcnQgeyBXYXR0SWNvbiB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9pY29uJztcblxuaW1wb3J0IHsgV2F0dERhdGFJbnRsU2VydmljZSB9IGZyb20gJy4vd2F0dC1kYXRhLWludGwuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhdHQtZGF0YS10YWJsZScsXG4gIGltcG9ydHM6IFtcbiAgICBWYXRlckZsZXhDb21wb25lbnQsXG4gICAgVmF0ZXJTcGFjZXJDb21wb25lbnQsXG4gICAgVmF0ZXJTdGFja0NvbXBvbmVudCxcbiAgICBWYXRlclV0aWxpdHlEaXJlY3RpdmUsXG4gICAgV2F0dENhcmRDb21wb25lbnQsXG4gICAgV2F0dEVtcHR5U3RhdGVDb21wb25lbnQsXG4gICAgV2F0dFBhZ2luYXRvckNvbXBvbmVudCxcbiAgICBXYXR0U2VhcmNoQ29tcG9uZW50LFxuICAgIFdhdHRCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIHdhdHQtZGF0YS10YWJsZSBoMyxcbiAgICAgIHdhdHQtZGF0YS10YWJsZSBoNCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0NHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIHdhdHQtZGF0YS10YWJsZSB3YXR0LXBhZ2luYXRvciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IGNhbGMoLTEgKiB2YXIoLS13YXR0LXNwYWNlLW0pKSAtMjRweCAtMjRweDtcbiAgICAgIH1cblxuICAgICAgd2F0dC1kYXRhLXRhYmxlIHdhdHQtdGFibGUgLm1hdC1tZGMtdGFibGUgdHIubWRjLWRhdGEtdGFibGVfX3JvdzpsYXN0LWNoaWxkIC5tYXQtbWRjLWNlbGwge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgfVxuXG4gICAgICB3YXR0LWRhdGEtdGFibGUgd2F0dC1lbXB0eS1zdGF0ZSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0td2F0dC1zcGFjZS14bCkgMDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx3YXR0LWNhcmQgdmF0ZXIgZmlsbD1cInZlcnRpY2FsXCIgW3ZhcmlhbnRdPVwidmFyaWFudCgpXCI+XG4gICAgICA8dmF0ZXItZmxleCBhdXRvU2l6ZSBmaWxsPVwidmVydGljYWxcIiBnYXA9XCJtXCI+XG4gICAgICAgIEBpZiAoaGVhZGVyKCkpIHtcbiAgICAgICAgICA8dmF0ZXItc3RhY2sgZGlyZWN0aW9uPVwicm93XCIgZ2FwPVwibVwiPlxuICAgICAgICAgICAgPHZhdGVyLXN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGdhcD1cInNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaDNcIiAvPlxuICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJoNFwiIC8+XG4gICAgICAgICAgICAgIEBpZiAoZW5hYmxlQ291bnQoKSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2F0dC1jaGlwLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICB7eyBjb3VudCgpID8/IHRhYmxlKCkuZGF0YVNvdXJjZSgpLnRvdGFsQ291bnQgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChxdWVyeVRpbWUoKSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2F0dC1sYWJlbFwiPmluIHt7IHF1ZXJ5VGltZSgpIH19IG1zPC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3ZhdGVyLXN0YWNrPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgIDx2YXRlci1zcGFjZXIgLz5cbiAgICAgICAgICAgIEBpZiAoZW5hYmxlU2VhcmNoKCkpIHtcbiAgICAgICAgICAgICAgPHdhdHQtc2VhcmNoXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInNlYXJjaExhYmVsKCkgPz8gaW50bC5zZWFyY2hcIlxuICAgICAgICAgICAgICAgIFt0cmltXT1cInRyaW1TZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgKHNlYXJjaCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZGF0YS1hY3Rpb25zXCIgLz5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtYnV0dG9uXCIgLz5cbiAgICAgICAgICA8L3ZhdGVyLXN0YWNrPlxuICAgICAgICB9XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZGF0YS1maWx0ZXJzXCIgLz5cbiAgICAgICAgPHZhdGVyLWZsZXggW2F1dG9TaXplXT1cImF1dG9TaXplKClcIiBmaWxsPVwidmVydGljYWxcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LXRhYmxlXCIgLz5cbiAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgZW5hYmxlRW1wdHlTdGF0ZSgpICYmXG4gICAgICAgICAgICAhdGFibGUoKS5sb2FkaW5nKCkgJiZcbiAgICAgICAgICAgIHRhYmxlKCkuZGF0YVNvdXJjZSgpLmZpbHRlcmVkRGF0YS5sZW5ndGggPT09IDBcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIDx2YXRlci1mbGV4IFthdXRvU2l6ZV09XCJhdXRvU2l6ZSgpXCIgZmlsbD1cInZlcnRpY2FsXCI+XG4gICAgICAgICAgICAgIDx2YXRlci1zdGFjayBzY3JvbGxhYmxlIGp1c3RpZnk9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8d2F0dC1lbXB0eS1zdGF0ZVxuICAgICAgICAgICAgICAgICAgW2ljb25dPVwiZXJyb3IoKSA/ICdjdXN0b20tcG93ZXInIDogcmVhZHkoKSA/IGVtcHR5U3RhdGVJY29uKCkgOiAnY3VzdG9tLWV4cGxvcmUnXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IoKSA/IGludGwuZXJyb3JUaXRsZSA6IHJlYWR5KCkgPyBpbnRsLmVtcHR5VGl0bGUgOiBpbnRsLmRlZmF1bHRUaXRsZVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFttZXNzYWdlXT1cImVycm9yKCkgPyBpbnRsLmVycm9yVGV4dCA6IHJlYWR5KCkgPyBpbnRsLmVtcHR5VGV4dCA6IGludGwuZGVmYXVsdFRleHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEBpZiAoZW5hYmxlUmV0cnkoKSkge1xuICAgICAgICAgICAgICAgICAgICA8d2F0dC1idXR0b24gdmFyaWFudD1cInNlY29uZGFyeVwiIChjbGljayk9XCJyZXRyeS5lbWl0KClcIj57e1xuICAgICAgICAgICAgICAgICAgICAgIGludGwuZW1wdHlSZXRyeVxuICAgICAgICAgICAgICAgICAgICB9fTwvd2F0dC1idXR0b24+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC93YXR0LWVtcHR5LXN0YXRlPlxuICAgICAgICAgICAgICA8L3ZhdGVyLXN0YWNrPlxuICAgICAgICAgICAgPC92YXRlci1mbGV4PlxuICAgICAgICAgIH1cbiAgICAgICAgPC92YXRlci1mbGV4PlxuICAgICAgICBAaWYgKGVuYWJsZVBhZ2luYXRvcigpKSB7XG4gICAgICAgICAgPHdhdHQtcGFnaW5hdG9yXG4gICAgICAgICAgICBbZm9yXT1cInRhYmxlKCkuZGF0YVNvdXJjZSgpXCJcbiAgICAgICAgICAgIFtsZW5ndGhdPVwiY291bnQoKSA/PyAwXCJcbiAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZSgpXCJcbiAgICAgICAgICAgIChjaGFuZ2VkKT1cInBhZ2VDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC92YXRlci1mbGV4PlxuICAgIDwvd2F0dC1jYXJkPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBXYXR0RGF0YVRhYmxlQ29tcG9uZW50IHtcbiAgaW50bCA9IGluamVjdChXYXR0RGF0YUludGxTZXJ2aWNlKTtcblxuICBlcnJvciA9IGlucHV0PHVua25vd24+KCk7XG4gIHJlYWR5ID0gaW5wdXQodHJ1ZSk7XG4gIGVuYWJsZVNlYXJjaCA9IGlucHV0KHRydWUpO1xuICB0cmltU2VhcmNoID0gaW5wdXQodHJ1ZSk7XG4gIGhlYWRlciA9IGlucHV0KHRydWUpO1xuICBlbmFibGVSZXRyeSA9IGlucHV0KGZhbHNlKTtcbiAgZW5hYmxlQ291bnQgPSBpbnB1dCh0cnVlKTtcbiAgZW5hYmxlRW1wdHlTdGF0ZSA9IGlucHV0KHRydWUpO1xuICBxdWVyeVRpbWUgPSBpbnB1dDxudW1iZXI+KCk7XG4gIHNlYXJjaExhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuICBlbmFibGVQYWdpbmF0b3IgPSBpbnB1dCh0cnVlKTtcbiAgcGFnZVNpemUgPSBpbnB1dDxudW1iZXI+KDUwKTtcbiAgY291bnQgPSBpbnB1dDxudW1iZXI+KCk7XG4gIGF1dG9TaXplID0gaW5wdXQoZmFsc2UpO1xuICB2YXJpYW50ID0gaW5wdXQ8V0FUVF9DQVJEX1ZBUklBTlQ+KCdzb2xpZCcpO1xuICBlbXB0eVN0YXRlSWNvbiA9IGlucHV0PFdhdHRJY29uIHwgJ2N1c3RvbS1wb3dlcicgfCAnY3VzdG9tLWV4cGxvcmUnIHwgJ2N1c3RvbS1uby1yZXN1bHRzJz4oXG4gICAgJ2NhbmNlbCdcbiAgKTtcblxuICBjbGVhciA9IG91dHB1dCgpO1xuICBwYWdlQ2hhbmdlZCA9IG91dHB1dDxQYWdlRXZlbnQ+KCk7XG4gIHJldHJ5ID0gb3V0cHV0KCk7XG5cbiAgdGFibGUgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoV2F0dFRhYmxlQ29tcG9uZW50PHVua25vd24+LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pO1xuXG4gIHNlYXJjaCA9IHZpZXdDaGlsZChXYXR0U2VhcmNoQ29tcG9uZW50KTtcbiAgcmVzZXQgPSAoKSA9PiB0aGlzLnNlYXJjaCgpPy5jbGVhcigpO1xuXG4gIG9uU2VhcmNoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhYmxlKCkuZGF0YVNvdXJjZSgpLmZpbHRlciA9IHZhbHVlO1xuICAgIGlmICghdmFsdWUpIHRoaXMuY2xlYXIuZW1pdCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -99,7 +99,7 @@ export class WattModalComponent {
|
|
|
99
99
|
this.scrollable.set(event.target.scrollHeight > event.target.clientHeight);
|
|
100
100
|
}
|
|
101
101
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
102
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattModalComponent, isStandalone: true, selector: "watt-modal", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingMessage: { classPropertyName: "loadingMessage", publicName: "loadingMessage", isSignal: true, isRequired: false, transformFunction: null }, disableClose: { classPropertyName: "disableClose", publicName: "disableClose", isSignal: true, isRequired: false, transformFunction: null }, hideCloseButton: { classPropertyName: "hideCloseButton", publicName: "hideCloseButton", isSignal: true, isRequired: false, transformFunction: null }, disableEscAndBackdropClose: { classPropertyName: "disableEscAndBackdropClose", publicName: "disableEscAndBackdropClose", isSignal: true, isRequired: false, transformFunction: null }, closeLabel: { classPropertyName: "closeLabel", publicName: "closeLabel", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, titleIcon: { classPropertyName: "titleIcon", publicName: "titleIcon", isSignal: true, isRequired: false, transformFunction: null }, autoOpen: { classPropertyName: "autoOpen", publicName: "autoOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<ng-template #modal>\n <div class=\"watt-modal\" [ngClass]=\"'watt-modal--' + size()\">\n @if (!disableClose() && !hideCloseButton()) {\n <watt-button\n variant=\"icon\"\n icon=\"close\"\n class=\"watt-modal-close\"\n [attr.aria-label]=\"closeLabel()\"\n (click)=\"close(false)\"\n />\n }\n
|
|
102
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattModalComponent, isStandalone: true, selector: "watt-modal", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingMessage: { classPropertyName: "loadingMessage", publicName: "loadingMessage", isSignal: true, isRequired: false, transformFunction: null }, disableClose: { classPropertyName: "disableClose", publicName: "disableClose", isSignal: true, isRequired: false, transformFunction: null }, hideCloseButton: { classPropertyName: "hideCloseButton", publicName: "hideCloseButton", isSignal: true, isRequired: false, transformFunction: null }, disableEscAndBackdropClose: { classPropertyName: "disableEscAndBackdropClose", publicName: "disableEscAndBackdropClose", isSignal: true, isRequired: false, transformFunction: null }, closeLabel: { classPropertyName: "closeLabel", publicName: "closeLabel", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, titleIcon: { classPropertyName: "titleIcon", publicName: "titleIcon", isSignal: true, isRequired: false, transformFunction: null }, autoOpen: { classPropertyName: "autoOpen", publicName: "autoOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<ng-template #modal>\n <div class=\"watt-modal\" [ngClass]=\"'watt-modal--' + size()\">\n @if (!disableClose() && !hideCloseButton()) {\n <watt-button\n variant=\"icon\"\n icon=\"close\"\n class=\"watt-modal-close\"\n [attr.aria-label]=\"closeLabel()\"\n (click)=\"close(false)\"\n />\n }\n\n @if (!loading()) {\n <ng-content select=\"h2\">\n @if (title()) {\n <h2 class=\"watt-modal-title\" [ngClass]=\"{ 'watt-modal-title-icon': titleIcon() }\">\n @if (titleIcon()) {\n <watt-icon [name]=\"titleIcon()\" size=\"l\" />\n }\n {{ title() }}\n </h2>\n }\n </ng-content>\n }\n\n <div\n wattResizeObserver\n class=\"watt-modal-content\"\n [class.watt-modal-scrollable]=\"scrollable()\"\n (resize)=\"onResize($event)\"\n >\n <ng-content />\n </div>\n <ng-content select=\"watt-modal-actions\" />\n\n @if (loading()) {\n <div class=\"watt-modal__spinner\">\n <div>\n <watt-spinner />\n <p>{{ loadingMessage() }}</p>\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n@if (dialogRef) {\n <ng-template [ngTemplateOutlet]=\"modal\" />\n}\n", styles: [":root{--watt-modal-width: 100vw;--watt-modal-min-height: auto;--watt-modal-height: calc(100vh - var(--watt-topbar-height, 0px));--watt-modal-content-padding: 0 var(--watt-space-ml)}.watt-modal{width:var(--watt-modal-width);max-width:100vw;height:var(--watt-modal-height);min-height:var(--watt-modal-min-height);max-height:100vh;position:relative;display:grid;padding:0;align-items:center;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;grid-template-areas:\"title close\" \"content content\" \"actions actions\"}.watt-modal--small{--watt-modal-width: 320px;--watt-modal-height: auto}@media(min-width:600.02px){.watt-modal--small{--watt-modal-width: 520px}}.watt-modal--small .watt-modal-title{color:var(--watt-typography-headline-color);font-size:1rem;line-height:1.5rem;font-weight:600;text-transform:none;letter-spacing:0}@media(min-width:1280px){.watt-modal--small .watt-modal-title{font-size:1.25rem;line-height:1.75rem}}@media(min-width:720.02px){.watt-modal--medium{--watt-modal-width: 720px;--watt-modal-height: auto}}@media(min-width:786.02px){.watt-modal--large{--watt-modal-width: 786px;--watt-modal-height: auto}}@media(min-width:960.02px){.watt-modal--large{--watt-modal-width: 936px;--watt-modal-height: auto}}.watt-modal-panel{margin-top:var(--watt-topbar-height)}.watt-modal-panel .mat-mdc-dialog-container .mdc-dialog__surface{width:auto}.watt-modal-panel .watt-modal-close{grid-area:close;align-self:start;margin:var(--watt-space-s);color:var(--watt-color-primary)}.watt-modal-panel .watt-modal-title{grid-area:title;margin:var(--watt-space-s) var(--watt-space-ml);color:var(--watt-typography-text-color)}.watt-modal-panel .watt-modal-title.watt-modal-title-icon{display:flex;align-items:center;gap:var(--watt-space-s)}.watt-modal-panel .watt-modal-content{align-self:stretch;grid-area:content;overflow:auto;padding:var(--watt-modal-content-padding)}.watt-modal-panel .watt-modal-content .watt-modal-content--full-width{display:block;margin:0 calc(-1 * var(--watt-space-s)) 0 0}@media(min-width:720.02px){.watt-modal-panel .watt-modal-content .watt-modal-content--full-width{margin:0 calc(-1 * var(--watt-space-ml))}}.watt-modal-panel .watt-modal-scrollable{border:1px solid var(--watt-color-neutral-grey-300);border-left:none;border-right:none}.watt-modal-panel watt-modal-actions{grid-area:actions;display:flex;justify-content:flex-end;padding:var(--watt-space-ml);gap:var(--watt-space-m)}.watt-modal-panel .watt-modal__spinner{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:#fffc}.watt-modal-panel .watt-modal__spinner div{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.watt-modal-panel .watt-modal__spinner div p{margin-top:var(--watt-space-m);width:100%}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: WattResizeObserverDirective, selector: "[wattResizeObserver]", outputs: ["resize"] }, { kind: "component", type: WattButtonComponent, selector: "watt-button", inputs: ["icon", "variant", "size", "type", "formId", "disabled", "loading"] }, { kind: "component", type: WattSpinnerComponent, selector: "watt-spinner", inputs: ["diameter", "strokeWidth"] }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
103
103
|
}
|
|
104
104
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattModalComponent, decorators: [{
|
|
105
105
|
type: Component,
|
|
@@ -110,7 +110,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
110
110
|
WattButtonComponent,
|
|
111
111
|
WattSpinnerComponent,
|
|
112
112
|
WattIconComponent,
|
|
113
|
-
], template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<ng-template #modal>\n <div class=\"watt-modal\" [ngClass]=\"'watt-modal--' + size()\">\n @if (!disableClose() && !hideCloseButton()) {\n <watt-button\n variant=\"icon\"\n icon=\"close\"\n class=\"watt-modal-close\"\n [attr.aria-label]=\"closeLabel()\"\n (click)=\"close(false)\"\n />\n }\n
|
|
113
|
+
], template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<ng-template #modal>\n <div class=\"watt-modal\" [ngClass]=\"'watt-modal--' + size()\">\n @if (!disableClose() && !hideCloseButton()) {\n <watt-button\n variant=\"icon\"\n icon=\"close\"\n class=\"watt-modal-close\"\n [attr.aria-label]=\"closeLabel()\"\n (click)=\"close(false)\"\n />\n }\n\n @if (!loading()) {\n <ng-content select=\"h2\">\n @if (title()) {\n <h2 class=\"watt-modal-title\" [ngClass]=\"{ 'watt-modal-title-icon': titleIcon() }\">\n @if (titleIcon()) {\n <watt-icon [name]=\"titleIcon()\" size=\"l\" />\n }\n {{ title() }}\n </h2>\n }\n </ng-content>\n }\n\n <div\n wattResizeObserver\n class=\"watt-modal-content\"\n [class.watt-modal-scrollable]=\"scrollable()\"\n (resize)=\"onResize($event)\"\n >\n <ng-content />\n </div>\n <ng-content select=\"watt-modal-actions\" />\n\n @if (loading()) {\n <div class=\"watt-modal__spinner\">\n <div>\n <watt-spinner />\n <p>{{ loadingMessage() }}</p>\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n@if (dialogRef) {\n <ng-template [ngTemplateOutlet]=\"modal\" />\n}\n", styles: [":root{--watt-modal-width: 100vw;--watt-modal-min-height: auto;--watt-modal-height: calc(100vh - var(--watt-topbar-height, 0px));--watt-modal-content-padding: 0 var(--watt-space-ml)}.watt-modal{width:var(--watt-modal-width);max-width:100vw;height:var(--watt-modal-height);min-height:var(--watt-modal-min-height);max-height:100vh;position:relative;display:grid;padding:0;align-items:center;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;grid-template-areas:\"title close\" \"content content\" \"actions actions\"}.watt-modal--small{--watt-modal-width: 320px;--watt-modal-height: auto}@media(min-width:600.02px){.watt-modal--small{--watt-modal-width: 520px}}.watt-modal--small .watt-modal-title{color:var(--watt-typography-headline-color);font-size:1rem;line-height:1.5rem;font-weight:600;text-transform:none;letter-spacing:0}@media(min-width:1280px){.watt-modal--small .watt-modal-title{font-size:1.25rem;line-height:1.75rem}}@media(min-width:720.02px){.watt-modal--medium{--watt-modal-width: 720px;--watt-modal-height: auto}}@media(min-width:786.02px){.watt-modal--large{--watt-modal-width: 786px;--watt-modal-height: auto}}@media(min-width:960.02px){.watt-modal--large{--watt-modal-width: 936px;--watt-modal-height: auto}}.watt-modal-panel{margin-top:var(--watt-topbar-height)}.watt-modal-panel .mat-mdc-dialog-container .mdc-dialog__surface{width:auto}.watt-modal-panel .watt-modal-close{grid-area:close;align-self:start;margin:var(--watt-space-s);color:var(--watt-color-primary)}.watt-modal-panel .watt-modal-title{grid-area:title;margin:var(--watt-space-s) var(--watt-space-ml);color:var(--watt-typography-text-color)}.watt-modal-panel .watt-modal-title.watt-modal-title-icon{display:flex;align-items:center;gap:var(--watt-space-s)}.watt-modal-panel .watt-modal-content{align-self:stretch;grid-area:content;overflow:auto;padding:var(--watt-modal-content-padding)}.watt-modal-panel .watt-modal-content .watt-modal-content--full-width{display:block;margin:0 calc(-1 * var(--watt-space-s)) 0 0}@media(min-width:720.02px){.watt-modal-panel .watt-modal-content .watt-modal-content--full-width{margin:0 calc(-1 * var(--watt-space-ml))}}.watt-modal-panel .watt-modal-scrollable{border:1px solid var(--watt-color-neutral-grey-300);border-left:none;border-right:none}.watt-modal-panel watt-modal-actions{grid-area:actions;display:flex;justify-content:flex-end;padding:var(--watt-space-ml);gap:var(--watt-space-m)}.watt-modal-panel .watt-modal__spinner{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:#fffc}.watt-modal-panel .watt-modal__spinner div{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.watt-modal-panel .watt-modal__spinner div p{margin-top:var(--watt-space-m);width:100%}\n"] }]
|
|
114
114
|
}], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], loadingMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingMessage", required: false }] }], disableClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableClose", required: false }] }], hideCloseButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideCloseButton", required: false }] }], disableEscAndBackdropClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableEscAndBackdropClose", required: false }] }], closeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeLabel", required: false }] }], panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelClass", required: false }] }], minHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "minHeight", required: false }] }], restoreFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreFocus", required: false }] }], titleIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleIcon", required: false }] }], autoOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoOpen", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }], modal: [{ type: i0.ViewChild, args: ['modal', { isSignal: true }] }] } });
|
|
115
115
|
/**
|
|
116
116
|
* Component for projecting buttons (actions) to the bottom of the modal.
|
|
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
127
127
|
}]
|
|
128
128
|
}] });
|
|
129
129
|
export const WATT_MODAL = [WattModalComponent, WattModalActionsComponent];
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9tb2RhbC93YXR0LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL21vZGFsL3dhdHQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFZLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBSW5FOzs7Ozs7R0FNRztBQWdCSCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3JCLFlBQVksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN0QyxTQUFTLEdBQUcsTUFBTSxDQUF3QixZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUV0RiwyQ0FB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QixpQkFBaUI7OzJGQUdSLGtCQUFrQjtrQkFmOUIsU0FBUztzQ0FDUyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFlBQzNCLFlBQVksV0FHYjt3QkFDUCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3FCQUNsQjt3N0NBNkN1QyxPQUFPO0FBNkNqRDs7R0FFRztBQUtILE1BQU0sT0FBTyx5QkFBeUI7dUdBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCLDhFQUYxQixnQkFBZ0I7OzJGQUVmLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjs7QUFHRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBhZnRlclJlbmRlckVmZmVjdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICB2aWV3Q2hpbGQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IFdhdHRSZXNpemVPYnNlcnZlckRpcmVjdGl2ZSB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC91dGlscy9yZXNpemUtb2JzZXJ2ZXInO1xuaW1wb3J0IHsgV2F0dEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9idXR0b24nO1xuaW1wb3J0IHsgV2F0dFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvc3Bpbm5lcic7XG5cbmltcG9ydCB7IFdhdHRNb2RhbFNlcnZpY2UgfSBmcm9tICcuL3dhdHQtbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBXYXR0SWNvbiwgV2F0dEljb25Db21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvaWNvbic7XG5cbmV4cG9ydCB0eXBlIFdhdHRNb2RhbFNpemUgPSAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgcmVwcmVzZW50aW5nIGEgYmluYXJ5IGRlY2lzaW9uIGluIHRoZSBmb3JtIG9mXG4gKiBhIG1vZGFsIHdpbmRvdyB0aGF0IGFwcGVhcnMgaW4gZnJvbnQgb2YgdGhlIGVudGlyZSBjb250ZW50LlxuICpcbiAqIFVzYWdlOlxuICogYGltcG9ydCB7IFdBVFRfTU9EQUwgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvbW9kYWwnO2BcbiAqL1xuQENvbXBvbmVudCh7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzZWxlY3RvcjogJ3dhdHQtbW9kYWwnLFxuICBzdHlsZVVybHM6IFsnLi93YXR0LW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi93YXR0LW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBXYXR0UmVzaXplT2JzZXJ2ZXJEaXJlY3RpdmUsXG4gICAgV2F0dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBXYXR0U3Bpbm5lckNvbXBvbmVudCxcbiAgICBXYXR0SWNvbkNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dE1vZGFsQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBtb2RhbFNlcnZpY2UgPSBpbmplY3QoV2F0dE1vZGFsU2VydmljZSk7XG4gIHByb3RlY3RlZCBkaWFsb2dSZWYgPSBpbmplY3Q8TWF0RGlhbG9nUmVmPHVua25vd24+PihNYXREaWFsb2dSZWYsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqIFRpdGxlIHRvIHN0YXkgZml4ZWQgdG8gdG9wIG9mIG1vZGFsLiAqL1xuICB0aXRsZSA9IGlucHV0KCcnKTtcblxuICBzaXplID0gaW5wdXQ8V2F0dE1vZGFsU2l6ZT4oJ21lZGl1bScpO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBtb2RhbCBzaG91bGQgc2hvdyBhIGxvYWRpbmcgc3RhdGUuICovXG4gIGxvYWRpbmcgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG1vZGFsIHNob3VsZCBzaG93IGEgbG9hZGluZyB0ZXh0IGZvciB0aGUgbG9hZGluZyBzdGF0ZS4gKi9cbiAgbG9hZGluZ01lc3NhZ2UgPSBpbnB1dCgnJyk7XG5cbiAgLyoqIERpc2FibGUgRVNDLCBjbG9zZSBidXR0b24gYW5kIGJhY2tkcm9wIGNsaWNrIGFzIG1ldGhvZHMgb2YgY2xvc2luZy4gKi9cbiAgZGlzYWJsZUNsb3NlID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgdGhlIGNsb3NlIGJ1dHRvbiAqL1xuICBoaWRlQ2xvc2VCdXR0b24gPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqIERpc2FibGUgRVNDLCBiYWNrZHJvcCBjbGljayBhcyBtZXRob2RzIG9mIGNsb3NpbmcuICovXG4gIGRpc2FibGVFc2NBbmRCYWNrZHJvcENsb3NlID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKiBUaGUgYXJpYS1sYWJlbCBmb3IgdGhlIGNsb3NlIGJ1dHRvbi4gKi9cbiAgY2xvc2VMYWJlbCA9IGlucHV0KCdDbG9zZScpO1xuXG4gIC8qKiBDbGFzc2VzIGFkZGVkIHRvIHRoZSBtb2RhbCBwYW5lbCAqL1xuICBwYW5lbENsYXNzID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcblxuICBtaW5IZWlnaHQgPSBpbnB1dCgnMTQ3cHgnKTtcblxuICAvKiogV2hldGhlciB0aGUgZGlhbG9nIHNob3VsZCByZXN0b3JlIGZvY3VzIHRvIHRoZSBwcmV2aW91c2x5LWZvY3VzZWQgZWxlbWVudCwgYWZ0ZXIgaXQncyBjbG9zZWQuICovXG4gIHJlc3RvcmVGb2N1cyA9IGlucHV0KHRydWUpO1xuXG4gIC8qKiBJY29uIGRpc3BsYXllZCBuZXh0IHRvIHRoZSBtb2RhbCB0aXRsZS4gKi9cbiAgdGl0bGVJY29uID0gaW5wdXQ8V2F0dEljb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG1vZGFsIHNob3VsZCBvcGVuIGF1dG9tYXRpY2FsbHkgd2hlbiByZW5kZXJlZC4gICovXG4gIGF1dG9PcGVuID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIGNsb3NlZCA9IG91dHB1dDxib29sZWFuPigpO1xuXG4gIG1vZGFsID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEVsZW1lbnQ+PignbW9kYWwnKTtcblxuICBzY3JvbGxhYmxlID0gc2lnbmFsKGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZnRlclJlbmRlckVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hdXRvT3BlbigpKSB7XG4gICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBtb2RhbC4gU3Vic2VxdWVudCBjYWxscyBhcmUgaWdub3JlZCB3aGlsZSB0aGUgbW9kYWwgaXMgb3BlbmVkLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvcGVuKCkge1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oe1xuICAgICAgZGlzYWJsZUNsb3NlOiB0aGlzLmRpc2FibGVFc2NBbmRCYWNrZHJvcENsb3NlKCkgfHwgdGhpcy5kaXNhYmxlQ2xvc2UoKSxcbiAgICAgIHRlbXBsYXRlUmVmOiB0aGlzLm1vZGFsKCksXG4gICAgICBvbkNsb3NlZDogKHJlc3VsdDogYm9vbGVhbikgPT4gdGhpcy5jbG9zZWQuZW1pdChyZXN1bHQpLFxuICAgICAgbWluSGVpZ2h0OiB0aGlzLm1pbkhlaWdodCgpLFxuICAgICAgcGFuZWxDbGFzczogdGhpcy5wYW5lbENsYXNzKCksXG4gICAgICByZXN0b3JlRm9jdXM6IHRoaXMucmVzdG9yZUZvY3VzKCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBtb2RhbCB3aXRoIGB0cnVlYCBmb3IgYWNjZXB0YW5jZSBvciBgZmFsc2VgIGZvciByZWplY3Rpb24uXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNsb3NlKHJlc3VsdDogYm9vbGVhbikge1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLmNsb3NlKHJlc3VsdCk7IC8vIGlubGluZSBtb2RhbFxuICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZShyZXN1bHQpOyAvLyBpbmplY3RlZCBtb2RhbFxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBtb2RhbCBjb250ZW50IGVsZW1lbnQgY2hhbmdlcyBzaXplLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvblJlc2l6ZShldmVudDogUmVzaXplT2JzZXJ2ZXJFbnRyeSkge1xuICAgIHRoaXMuc2Nyb2xsYWJsZS5zZXQoZXZlbnQudGFyZ2V0LnNjcm9sbEhlaWdodCA+IGV2ZW50LnRhcmdldC5jbGllbnRIZWlnaHQpO1xuICB9XG59XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBwcm9qZWN0aW5nIGJ1dHRvbnMgKGFjdGlvbnMpIHRvIHRoZSBib3R0b20gb2YgdGhlIG1vZGFsLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YXR0LW1vZGFsLWFjdGlvbnMnLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50IC8+Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dE1vZGFsQWN0aW9uc0NvbXBvbmVudCB7fVxuXG5leHBvcnQgY29uc3QgV0FUVF9NT0RBTCA9IFtXYXR0TW9kYWxDb21wb25lbnQsIFdhdHRNb2RhbEFjdGlvbnNDb21wb25lbnRdO1xuIiwiPCEtLVxuQGxpY2Vuc2VcbkNvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cblVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxubGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4tLT5cbjxuZy10ZW1wbGF0ZSAjbW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJ3YXR0LW1vZGFsXCIgW25nQ2xhc3NdPVwiJ3dhdHQtbW9kYWwtLScgKyBzaXplKClcIj5cbiAgICBAaWYgKCFkaXNhYmxlQ2xvc2UoKSAmJiAhaGlkZUNsb3NlQnV0dG9uKCkpIHtcbiAgICAgIDx3YXR0LWJ1dHRvblxuICAgICAgICB2YXJpYW50PVwiaWNvblwiXG4gICAgICAgIGljb249XCJjbG9zZVwiXG4gICAgICAgIGNsYXNzPVwid2F0dC1tb2RhbC1jbG9zZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY2xvc2VMYWJlbCgpXCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlKGZhbHNlKVwiXG4gICAgICAvPlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwid2F0dC1tb2RhbC10aXRsZVwiPlxuICAgICAgQGlmICghbG9hZGluZygpKSB7XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImgxLGgyLGgzLGg0LGg1LGg2XCI+XG4gICAgICAgICAgQGlmICh0aXRsZSgpKSB7XG4gICAgICAgICAgICA8aDIgW25nQ2xhc3NdPVwieyAnd2F0dC1tb2RhbC10aXRsZS1pY29uJzogdGl0bGVJY29uKCkgfVwiPlxuICAgICAgICAgICAgICBAaWYgKHRpdGxlSWNvbigpKSB7XG4gICAgICAgICAgICAgICAgPHdhdHQtaWNvbiBbbmFtZV09XCJ0aXRsZUljb24oKVwiIFtzaXplXT1cIidsJ1wiIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAge3sgdGl0bGUoKSB9fVxuICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbmctY29udGVudD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICB3YXR0UmVzaXplT2JzZXJ2ZXJcbiAgICAgIGNsYXNzPVwid2F0dC1tb2RhbC1jb250ZW50XCJcbiAgICAgIFtjbGFzcy53YXR0LW1vZGFsLXNjcm9sbGFibGVdPVwic2Nyb2xsYWJsZSgpXCJcbiAgICAgIChyZXNpemUpPVwib25SZXNpemUoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LW1vZGFsLWFjdGlvbnNcIiAvPlxuXG4gICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ3YXR0LW1vZGFsX19zcGlubmVyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHdhdHQtc3Bpbm5lciAvPlxuICAgICAgICAgIDxwPnt7IGxvYWRpbmdNZXNzYWdlKCkgfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbkBpZiAoZGlhbG9nUmVmKSB7XG4gIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJtb2RhbFwiIC8+XG59XG4iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9tb2RhbC93YXR0LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL21vZGFsL3dhdHQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFZLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBSW5FOzs7Ozs7R0FNRztBQWdCSCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3JCLFlBQVksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN0QyxTQUFTLEdBQUcsTUFBTSxDQUF3QixZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUV0RiwyQ0FB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QixpQkFBaUI7OzJGQUdSLGtCQUFrQjtrQkFmOUIsU0FBUztzQ0FDUyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFlBQzNCLFlBQVksV0FHYjt3QkFDUCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3FCQUNsQjt3N0NBNkN1QyxPQUFPO0FBNkNqRDs7R0FFRztBQUtILE1BQU0sT0FBTyx5QkFBeUI7dUdBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCLDhFQUYxQixnQkFBZ0I7OzJGQUVmLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjs7QUFHRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBhZnRlclJlbmRlckVmZmVjdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICB2aWV3Q2hpbGQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IFdhdHRSZXNpemVPYnNlcnZlckRpcmVjdGl2ZSB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC91dGlscy9yZXNpemUtb2JzZXJ2ZXInO1xuaW1wb3J0IHsgV2F0dEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9idXR0b24nO1xuaW1wb3J0IHsgV2F0dFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvc3Bpbm5lcic7XG5cbmltcG9ydCB7IFdhdHRNb2RhbFNlcnZpY2UgfSBmcm9tICcuL3dhdHQtbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBXYXR0SWNvbiwgV2F0dEljb25Db21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvaWNvbic7XG5cbmV4cG9ydCB0eXBlIFdhdHRNb2RhbFNpemUgPSAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgcmVwcmVzZW50aW5nIGEgYmluYXJ5IGRlY2lzaW9uIGluIHRoZSBmb3JtIG9mXG4gKiBhIG1vZGFsIHdpbmRvdyB0aGF0IGFwcGVhcnMgaW4gZnJvbnQgb2YgdGhlIGVudGlyZSBjb250ZW50LlxuICpcbiAqIFVzYWdlOlxuICogYGltcG9ydCB7IFdBVFRfTU9EQUwgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvbW9kYWwnO2BcbiAqL1xuQENvbXBvbmVudCh7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzZWxlY3RvcjogJ3dhdHQtbW9kYWwnLFxuICBzdHlsZVVybHM6IFsnLi93YXR0LW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi93YXR0LW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBXYXR0UmVzaXplT2JzZXJ2ZXJEaXJlY3RpdmUsXG4gICAgV2F0dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBXYXR0U3Bpbm5lckNvbXBvbmVudCxcbiAgICBXYXR0SWNvbkNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dE1vZGFsQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBtb2RhbFNlcnZpY2UgPSBpbmplY3QoV2F0dE1vZGFsU2VydmljZSk7XG4gIHByb3RlY3RlZCBkaWFsb2dSZWYgPSBpbmplY3Q8TWF0RGlhbG9nUmVmPHVua25vd24+PihNYXREaWFsb2dSZWYsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqIFRpdGxlIHRvIHN0YXkgZml4ZWQgdG8gdG9wIG9mIG1vZGFsLiAqL1xuICB0aXRsZSA9IGlucHV0KCcnKTtcblxuICBzaXplID0gaW5wdXQ8V2F0dE1vZGFsU2l6ZT4oJ21lZGl1bScpO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBtb2RhbCBzaG91bGQgc2hvdyBhIGxvYWRpbmcgc3RhdGUuICovXG4gIGxvYWRpbmcgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG1vZGFsIHNob3VsZCBzaG93IGEgbG9hZGluZyB0ZXh0IGZvciB0aGUgbG9hZGluZyBzdGF0ZS4gKi9cbiAgbG9hZGluZ01lc3NhZ2UgPSBpbnB1dCgnJyk7XG5cbiAgLyoqIERpc2FibGUgRVNDLCBjbG9zZSBidXR0b24gYW5kIGJhY2tkcm9wIGNsaWNrIGFzIG1ldGhvZHMgb2YgY2xvc2luZy4gKi9cbiAgZGlzYWJsZUNsb3NlID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgdGhlIGNsb3NlIGJ1dHRvbiAqL1xuICBoaWRlQ2xvc2VCdXR0b24gPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqIERpc2FibGUgRVNDLCBiYWNrZHJvcCBjbGljayBhcyBtZXRob2RzIG9mIGNsb3NpbmcuICovXG4gIGRpc2FibGVFc2NBbmRCYWNrZHJvcENsb3NlID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKiBUaGUgYXJpYS1sYWJlbCBmb3IgdGhlIGNsb3NlIGJ1dHRvbi4gKi9cbiAgY2xvc2VMYWJlbCA9IGlucHV0KCdDbG9zZScpO1xuXG4gIC8qKiBDbGFzc2VzIGFkZGVkIHRvIHRoZSBtb2RhbCBwYW5lbCAqL1xuICBwYW5lbENsYXNzID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcblxuICBtaW5IZWlnaHQgPSBpbnB1dCgnMTQ3cHgnKTtcblxuICAvKiogV2hldGhlciB0aGUgZGlhbG9nIHNob3VsZCByZXN0b3JlIGZvY3VzIHRvIHRoZSBwcmV2aW91c2x5LWZvY3VzZWQgZWxlbWVudCwgYWZ0ZXIgaXQncyBjbG9zZWQuICovXG4gIHJlc3RvcmVGb2N1cyA9IGlucHV0KHRydWUpO1xuXG4gIC8qKiBJY29uIGRpc3BsYXllZCBuZXh0IHRvIHRoZSBtb2RhbCB0aXRsZS4gKi9cbiAgdGl0bGVJY29uID0gaW5wdXQ8V2F0dEljb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG1vZGFsIHNob3VsZCBvcGVuIGF1dG9tYXRpY2FsbHkgd2hlbiByZW5kZXJlZC4gICovXG4gIGF1dG9PcGVuID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIGNsb3NlZCA9IG91dHB1dDxib29sZWFuPigpO1xuXG4gIG1vZGFsID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEVsZW1lbnQ+PignbW9kYWwnKTtcblxuICBzY3JvbGxhYmxlID0gc2lnbmFsKGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZnRlclJlbmRlckVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hdXRvT3BlbigpKSB7XG4gICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBtb2RhbC4gU3Vic2VxdWVudCBjYWxscyBhcmUgaWdub3JlZCB3aGlsZSB0aGUgbW9kYWwgaXMgb3BlbmVkLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvcGVuKCkge1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oe1xuICAgICAgZGlzYWJsZUNsb3NlOiB0aGlzLmRpc2FibGVFc2NBbmRCYWNrZHJvcENsb3NlKCkgfHwgdGhpcy5kaXNhYmxlQ2xvc2UoKSxcbiAgICAgIHRlbXBsYXRlUmVmOiB0aGlzLm1vZGFsKCksXG4gICAgICBvbkNsb3NlZDogKHJlc3VsdDogYm9vbGVhbikgPT4gdGhpcy5jbG9zZWQuZW1pdChyZXN1bHQpLFxuICAgICAgbWluSGVpZ2h0OiB0aGlzLm1pbkhlaWdodCgpLFxuICAgICAgcGFuZWxDbGFzczogdGhpcy5wYW5lbENsYXNzKCksXG4gICAgICByZXN0b3JlRm9jdXM6IHRoaXMucmVzdG9yZUZvY3VzKCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBtb2RhbCB3aXRoIGB0cnVlYCBmb3IgYWNjZXB0YW5jZSBvciBgZmFsc2VgIGZvciByZWplY3Rpb24uXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNsb3NlKHJlc3VsdDogYm9vbGVhbikge1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLmNsb3NlKHJlc3VsdCk7IC8vIGlubGluZSBtb2RhbFxuICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZShyZXN1bHQpOyAvLyBpbmplY3RlZCBtb2RhbFxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBtb2RhbCBjb250ZW50IGVsZW1lbnQgY2hhbmdlcyBzaXplLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvblJlc2l6ZShldmVudDogUmVzaXplT2JzZXJ2ZXJFbnRyeSkge1xuICAgIHRoaXMuc2Nyb2xsYWJsZS5zZXQoZXZlbnQudGFyZ2V0LnNjcm9sbEhlaWdodCA+IGV2ZW50LnRhcmdldC5jbGllbnRIZWlnaHQpO1xuICB9XG59XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBwcm9qZWN0aW5nIGJ1dHRvbnMgKGFjdGlvbnMpIHRvIHRoZSBib3R0b20gb2YgdGhlIG1vZGFsLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YXR0LW1vZGFsLWFjdGlvbnMnLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50IC8+Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dE1vZGFsQWN0aW9uc0NvbXBvbmVudCB7fVxuXG5leHBvcnQgY29uc3QgV0FUVF9NT0RBTCA9IFtXYXR0TW9kYWxDb21wb25lbnQsIFdhdHRNb2RhbEFjdGlvbnNDb21wb25lbnRdO1xuIiwiPCEtLVxuQGxpY2Vuc2VcbkNvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cblVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxubGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4tLT5cbjxuZy10ZW1wbGF0ZSAjbW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJ3YXR0LW1vZGFsXCIgW25nQ2xhc3NdPVwiJ3dhdHQtbW9kYWwtLScgKyBzaXplKClcIj5cbiAgICBAaWYgKCFkaXNhYmxlQ2xvc2UoKSAmJiAhaGlkZUNsb3NlQnV0dG9uKCkpIHtcbiAgICAgIDx3YXR0LWJ1dHRvblxuICAgICAgICB2YXJpYW50PVwiaWNvblwiXG4gICAgICAgIGljb249XCJjbG9zZVwiXG4gICAgICAgIGNsYXNzPVwid2F0dC1tb2RhbC1jbG9zZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY2xvc2VMYWJlbCgpXCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlKGZhbHNlKVwiXG4gICAgICAvPlxuICAgIH1cblxuICAgIEBpZiAoIWxvYWRpbmcoKSkge1xuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaDJcIj5cbiAgICAgICAgQGlmICh0aXRsZSgpKSB7XG4gICAgICAgICAgPGgyIGNsYXNzPVwid2F0dC1tb2RhbC10aXRsZVwiIFtuZ0NsYXNzXT1cInsgJ3dhdHQtbW9kYWwtdGl0bGUtaWNvbic6IHRpdGxlSWNvbigpIH1cIj5cbiAgICAgICAgICAgIEBpZiAodGl0bGVJY29uKCkpIHtcbiAgICAgICAgICAgICAgPHdhdHQtaWNvbiBbbmFtZV09XCJ0aXRsZUljb24oKVwiIHNpemU9XCJsXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHt7IHRpdGxlKCkgfX1cbiAgICAgICAgICA8L2gyPlxuICAgICAgICB9XG4gICAgICA8L25nLWNvbnRlbnQ+XG4gICAgfVxuXG4gICAgPGRpdlxuICAgICAgd2F0dFJlc2l6ZU9ic2VydmVyXG4gICAgICBjbGFzcz1cIndhdHQtbW9kYWwtY29udGVudFwiXG4gICAgICBbY2xhc3Mud2F0dC1tb2RhbC1zY3JvbGxhYmxlXT1cInNjcm9sbGFibGUoKVwiXG4gICAgICAocmVzaXplKT1cIm9uUmVzaXplKCRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwid2F0dC1tb2RhbC1hY3Rpb25zXCIgLz5cblxuICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwid2F0dC1tb2RhbF9fc3Bpbm5lclwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDx3YXR0LXNwaW5uZXIgLz5cbiAgICAgICAgICA8cD57eyBsb2FkaW5nTWVzc2FnZSgpIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG5AaWYgKGRpYWxvZ1JlZikge1xuICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibW9kYWxcIiAvPlxufVxuIl19
|
|
@@ -126,6 +126,10 @@ export class WattTableComponent {
|
|
|
126
126
|
* Whether to allow the user to clear the sort. Defaults to `true`.
|
|
127
127
|
*/
|
|
128
128
|
sortClear = input(true, ...(ngDevMode ? [{ debugName: "sortClear" }] : []));
|
|
129
|
+
/**
|
|
130
|
+
* Optional function to determine CSS class(es) for each row.
|
|
131
|
+
*/
|
|
132
|
+
rowClass = input(...(ngDevMode ? [undefined, { debugName: "rowClass" }] : []));
|
|
129
133
|
/**
|
|
130
134
|
* Whether the table should include a checkbox column for row selection.
|
|
131
135
|
*/
|
|
@@ -268,6 +272,13 @@ export class WattTableComponent {
|
|
|
268
272
|
return false;
|
|
269
273
|
return activeRowComparator ? activeRowComparator(row, activeRow) : row === activeRow;
|
|
270
274
|
};
|
|
275
|
+
getRowClass = (row) => {
|
|
276
|
+
const rowClass = this.rowClass();
|
|
277
|
+
if (!rowClass)
|
|
278
|
+
return '';
|
|
279
|
+
const result = rowClass(row);
|
|
280
|
+
return Array.isArray(result) ? result.join(' ') : result;
|
|
281
|
+
};
|
|
271
282
|
onRowClick = (row) => {
|
|
272
283
|
if (this.disabled() || window.getSelection()?.toString() !== '')
|
|
273
284
|
return;
|
|
@@ -302,7 +313,7 @@ export class WattTableComponent {
|
|
|
302
313
|
*/
|
|
303
314
|
toggleSelection = (row) => this.selection.update((s) => (s.includes(row) ? s.filter((r) => r !== row) : s.concat(row)));
|
|
304
315
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
305
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattTableComponent, isStandalone: true, selector: "watt-table", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, displayedColumns: { classPropertyName: "displayedColumns", publicName: "displayedColumns", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, stickyFooter: { classPropertyName: "stickyFooter", publicName: "stickyFooter", isSignal: true, isRequired: false, transformFunction: null }, resolveHeader: { classPropertyName: "resolveHeader", publicName: "resolveHeader", isSignal: true, isRequired: false, transformFunction: null }, sortBy: { classPropertyName: "sortBy", publicName: "sortBy", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, sortClear: { classPropertyName: "sortClear", publicName: "sortClear", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, suppressRowHoverHighlight: { classPropertyName: "suppressRowHoverHighlight", publicName: "suppressRowHoverHighlight", isSignal: true, isRequired: false, transformFunction: null }, activeRow: { classPropertyName: "activeRow", publicName: "activeRow", isSignal: true, isRequired: false, transformFunction: null }, activeRowComparator: { classPropertyName: "activeRowComparator", publicName: "activeRowComparator", isSignal: true, isRequired: false, transformFunction: null }, hideColumnHeaders: { classPropertyName: "hideColumnHeaders", publicName: "hideColumnHeaders", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selection: "selectionChange", expanded: "expandedChange", rowClick: "rowClick", sortChange: "sortChange" }, host: { properties: { "class.watt-table-variant-zebra": "variant() === \"zebra\"", "style.--watt-table-grid-template-columns": "sizing().join(\" \")" } }, queries: [{ propertyName: "cells", predicate: (WattTableCellDirective), isSignal: true }, { propertyName: "toolbar", first: true, predicate: (WattTableToolbarDirective), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, isSignal: true }, { propertyName: "tableCellElements", predicate: ["td"], descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<table\n mat-table\n matSort\n role=\"treegrid\"\n [ngClass]=\"{ 'watt-table-has-selection': getSelectionState() !== false }\"\n [matSortActive]=\"sortBy()\"\n [matSortDirection]=\"sortDirection()\"\n [matSortDisableClear]=\"!sortClear()\"\n [dataSource]=\"dataSource()\"\n [attr.aria-label]=\"description()\"\n (matSortChange)=\"sortChange.emit($event)\"\n>\n @if (selectable()) {\n <ng-container [matColumnDef]=\"checkboxColumn\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"getSelectionState()\"\n (ngModelChange)=\"$event ? selection.set(dataSource().filteredData) : clearSelection()\"\n />\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"selection().includes(row)\"\n (ngModelChange)=\"toggleSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n </ng-container>\n }\n\n <ng-container [matColumnDef]=\"expandableColumn\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n (click)=\"onRowClick(row)\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n >\n <watt-icon name=\"right\" size=\"xs\" />\n </td>\n </ng-container>\n\n @for (column of columns() | keyvalue; track column.key) {\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"column.value.stickyEnd?.()\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{\n column.value.headerCellClass\n }}\"\n >\n @if (column.value.helperAction; as action) {\n <watt-icon name=\"help\" (click)=\"action()\" />\n }\n\n <div\n class=\"watt-table-header-cell\"\n mat-sort-header\n [arrowPosition]=\"column.value.align === 'right' ? 'before' : 'after'\"\n [disabled]=\"!column.value.accessor || column.value.sort === false\"\n >\n {{ getColumnHeader(column) }}\n @if (column.value.tooltip; as tooltip) {\n <watt-icon [title]=\"tooltip\" name=\"info\" state=\"default\" />\n }\n </div>\n </th>\n\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{ column.value.dataCellClass }}\"\n (click)=\"!column.value.expandable && onRowClick(row)\"\n >\n @if (isExpandable()) {\n @defer (when !column.value.expandable || expanded().includes(row)) {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n } @else {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n </td>\n\n @if (hasFooter()) {\n <td\n mat-footer-cell\n *matFooterCellDef\n class=\"{{ column.value.footer?.class }} watt-table-align-{{\n column.value.align ?? 'left'\n }} \"\n >\n {{ column.value.footer?.value?.() }}\n </td>\n }\n </ng-container>\n }\n\n <ng-container matColumnDef=\"spacer\">\n <td class=\"watt-table-footer-spacer\" mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideColumnHeaders()) {\n <tr mat-header-row *matHeaderRowDef=\"renderedColumns()\"></tr>\n }\n <tr\n mat-row\n *matRowDef=\"let row; columns: renderedColumns()\"\n [attr.aria-selected]=\"row === activeRow()\"\n [ngClass]=\"{\n 'watt-table-highlight-row': !disabled() && !suppressRowHoverHighlight(),\n 'watt-table-clickable-row': !disabled() && rowClick$.observed,\n 'watt-table-active-row': isActiveRow(row),\n 'watt-table-no-end-divider': hideColumnHeaders(),\n }\"\n ></tr>\n\n @if (toolbar()) {\n <tr mat-footer-row *matFooterRowDef=\"['spacer']\"></tr>\n }\n\n @if (hasFooter()) {\n <tr\n mat-footer-row\n [class.watt-table-hide-footer]=\"loading() || dataSource().filteredData.length === 0\"\n *matFooterRowDef=\"renderedColumns(); sticky: stickyFooter()\"\n ></tr>\n }\n\n <ng-container *matNoDataRow>\n @if (loading()) {\n @for (i of [1, 2, 3]; track i) {\n <tr class=\"mat-mdc-row\">\n @for (_ of renderedColumns(); track _; let i = $index) {\n <td class=\"mat-mdc-cell\" [class.watt-table-loading-cell]=\"i > 0 || !selectable()\"></td>\n }\n </tr>\n }\n }\n </ng-container>\n</table>\n\n@if (toolbar(); as toolbar) {\n <div class=\"watt-table-toolbar\" role=\"toolbar\">\n <ng-container\n *ngTemplateOutlet=\"\n toolbar.templateRef;\n context: { $implicit: filterSelectionBy(dataSource().filteredData) }\n \"\n />\n </div>\n}\n", styles: ["watt-table{--mat-table-row-item-label-text-font: $primary-font-family;--mat-table-row-item-outline-color: var(--watt-color-neutral-grey-300);--mat-table-header-headline-font: $primary-font-family}watt-table,watt-table .mat-mdc-table{display:grid;position:relative;overflow:auto;min-height:44px}watt-table .mat-mdc-table{grid-template-columns:var(--watt-table-grid-template-columns);grid-auto-rows:max-content;max-height:100%;z-index:1}watt-table .mat-mdc-table thead,watt-table .mat-mdc-table tbody,watt-table .mat-mdc-table tfoot,watt-table .mat-mdc-table tr.mat-mdc-row,watt-table .mat-mdc-table tr.mat-mdc-header-row,watt-table .mat-mdc-table tr.mat-mdc-footer-row{display:contents}watt-table .mat-mdc-table tr.watt-table-hide-footer{display:none}watt-table .mat-mdc-table tr.mat-mdc-header-row{flex:0 0 auto}watt-table .mat-mdc-table th.mat-mdc-header-cell{color:var(--watt-typography-label-color);font-size:.875rem;line-height:1.25rem;font-weight:600;box-sizing:border-box;display:flex;position:sticky;top:0;padding:0 var(--watt-space-s);height:auto;background:var(--watt-color-primary-ultralight);box-shadow:0 -1px #0000001f inset;border:0;z-index:2!important;white-space:nowrap;-webkit-user-select:none;user-select:none}watt-table .mat-mdc-table td.mat-mdc-footer-cell,watt-table .mat-mdc-table td.mat-mdc-cell{display:flex;align-items:center;min-height:48px;padding:var(--watt-space-xs) var(--watt-space-m);line-height:18px}watt-table .mat-mdc-table td.mat-mdc-cell.watt-table-cell--expandable{padding:0}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer),watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:1px solid var(--watt-color-neutral-grey-300)}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer){font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;border-top:2px solid var(--watt-color-neutral-grey-300);background-color:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-no-end-divider:last-child .mat-mdc-cell{border-bottom:0px solid var(--watt-color-neutral-grey-300)!important}watt-table .mat-mdc-table .watt-table-clickable-row>td:not(.watt-table-cell--expandable),watt-table .mat-mdc-table tr:has(>.watt-table-cell--expandable)>td:not(.watt-table-cell--expandable){cursor:pointer;-webkit-user-select:text;user-select:text}watt-table .mat-mdc-table .watt-table-highlight-row:hover:not(.watt-table-active-row,:has(>.watt-table-cell--expandable:hover))>td{background:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-active-row>td{background:var(--watt-color-secondary-ultralight)}watt-table .mat-mdc-table .mat-column-__expandableColumn__>watt-icon{transition:transform .2s}watt-table .mat-mdc-table .mat-column-__expandableColumn__.watt-table-cell--expanded>watt-icon{transform:rotate(90deg)}watt-table .mat-mdc-table .mat-sort-header-arrow{margin:0}watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-arrow{margin-right:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-arrow,watt-table .mat-mdc-table .watt-table-align-left .mat-sort-header-arrow{margin-left:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-header-cell{padding:.75rem var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-checkbox-cell{justify-content:center}watt-table .mat-mdc-table th.watt-table-checkbox-cell{display:flex;align-items:center}watt-table .mat-mdc-table .watt-table-align-center,watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-container{justify-content:center;text-align:center}watt-table .mat-mdc-table .watt-table-align-right,watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-container{justify-content:right;text-align:right}.watt-table-variant-zebra>table>tbody>tr:nth-child(2n):not(.watt-table-active-row)>td{background-color:var(--watt-color-neutral-grey-50)}watt-table .mat-mdc-table th.watt-table-cell--expandable{display:none}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable{position:relative;min-height:0;max-height:0;border-bottom-width:0;overflow:hidden;pointer-events:none;grid-column:1/-1;background:transparent;flex:1 1 auto;opacity:0;will-change:opacity;transition:opacity .2s cubic-bezier(.4,0,.2,1),overflow 0s .3s allow-discrete}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable>.watt-table-cell-wrapper{position:absolute;top:0;width:100%}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded{height:auto;max-height:initial;opacity:1;border-bottom-width:1px;pointer-events:all;overflow:visible}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded>.watt-table-cell-wrapper{position:relative}.watt-table-cell-wrapper{width:100%}.watt-table-footer-spacer{display:none;height:76px;border:0}.watt-table-has-selection .watt-table-footer-spacer{display:block}.watt-table-has-selection+.watt-table-toolbar{opacity:1;visibility:visible;transition:opacity .3s cubic-bezier(0,0,.2,1),visibility .5s}.watt-table-toolbar{position:absolute;bottom:var(--watt-space-m);left:50%;transform:translate(-50%);display:flex;align-items:center;padding:0 var(--watt-space-m);min-height:44px;border-radius:22px;color:var(--watt-color-primary-contrast);background-color:var(--watt-color-primary);z-index:1;opacity:0;visibility:hidden;transition:none}.watt-table-toolbar .watt-button--disabled{opacity:.4;--watt-button-primary-disabled-color: #fff}.watt-table-loading-cell:before{content:\"\";flex:1;display:block;max-width:200px;height:var(--watt-space-m);border-radius:var(--watt-space-m);opacity:.75;animation:shine 2s infinite linear;background-color:var(--watt-color-neutral-grey-200);background-size:300px;background-position:-100px;background-image:linear-gradient(90deg,var(--watt-color-neutral-grey-300) 0px,var(--watt-color-neutral-grey-200) 40px,var(--watt-color-neutral-grey-300) 80px)}@keyframes shine{40%,to{background-position:200px}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i3.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i3.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i3.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "directive", type: i3.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }, { kind: "component", type: WattCheckboxComponent, selector: "watt-checkbox", inputs: ["required"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [NgTemplateOutlet]] });
|
|
316
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattTableComponent, isStandalone: true, selector: "watt-table", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, displayedColumns: { classPropertyName: "displayedColumns", publicName: "displayedColumns", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, stickyFooter: { classPropertyName: "stickyFooter", publicName: "stickyFooter", isSignal: true, isRequired: false, transformFunction: null }, resolveHeader: { classPropertyName: "resolveHeader", publicName: "resolveHeader", isSignal: true, isRequired: false, transformFunction: null }, sortBy: { classPropertyName: "sortBy", publicName: "sortBy", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, sortClear: { classPropertyName: "sortClear", publicName: "sortClear", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, suppressRowHoverHighlight: { classPropertyName: "suppressRowHoverHighlight", publicName: "suppressRowHoverHighlight", isSignal: true, isRequired: false, transformFunction: null }, activeRow: { classPropertyName: "activeRow", publicName: "activeRow", isSignal: true, isRequired: false, transformFunction: null }, activeRowComparator: { classPropertyName: "activeRowComparator", publicName: "activeRowComparator", isSignal: true, isRequired: false, transformFunction: null }, hideColumnHeaders: { classPropertyName: "hideColumnHeaders", publicName: "hideColumnHeaders", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selection: "selectionChange", expanded: "expandedChange", rowClick: "rowClick", sortChange: "sortChange" }, host: { properties: { "class.watt-table-variant-zebra": "variant() === \"zebra\"", "style.--watt-table-grid-template-columns": "sizing().join(\" \")" } }, queries: [{ propertyName: "cells", predicate: (WattTableCellDirective), isSignal: true }, { propertyName: "toolbar", first: true, predicate: (WattTableToolbarDirective), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, isSignal: true }, { propertyName: "tableCellElements", predicate: ["td"], descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<table\n mat-table\n matSort\n role=\"treegrid\"\n [ngClass]=\"{ 'watt-table-has-selection': getSelectionState() !== false }\"\n [matSortActive]=\"sortBy()\"\n [matSortDirection]=\"sortDirection()\"\n [matSortDisableClear]=\"!sortClear()\"\n [dataSource]=\"dataSource()\"\n [attr.aria-label]=\"description()\"\n (matSortChange)=\"sortChange.emit($event)\"\n>\n @if (selectable()) {\n <ng-container [matColumnDef]=\"checkboxColumn\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"getSelectionState()\"\n (ngModelChange)=\"$event ? selection.set(dataSource().filteredData) : clearSelection()\"\n />\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"selection().includes(row)\"\n (ngModelChange)=\"toggleSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n </ng-container>\n }\n\n <ng-container [matColumnDef]=\"expandableColumn\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n (click)=\"onRowClick(row)\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n >\n <watt-icon name=\"right\" size=\"xs\" />\n </td>\n </ng-container>\n\n @for (column of columns() | keyvalue; track column.key) {\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"column.value.stickyEnd?.()\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{\n column.value.headerCellClass\n }}\"\n >\n @if (column.value.helperAction; as action) {\n <watt-icon name=\"help\" (click)=\"action()\" />\n }\n\n <div\n class=\"watt-table-header-cell\"\n mat-sort-header\n [arrowPosition]=\"column.value.align === 'right' ? 'before' : 'after'\"\n [disabled]=\"!column.value.accessor || column.value.sort === false\"\n >\n {{ getColumnHeader(column) }}\n @if (column.value.tooltip; as tooltip) {\n <watt-icon [title]=\"tooltip\" name=\"info\" state=\"default\" />\n }\n </div>\n </th>\n\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{ column.value.dataCellClass }}\"\n (click)=\"!column.value.expandable && onRowClick(row)\"\n >\n @if (isExpandable()) {\n @defer (when !column.value.expandable || expanded().includes(row)) {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n } @else {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n </td>\n\n @if (hasFooter()) {\n <td\n mat-footer-cell\n *matFooterCellDef\n class=\"{{ column.value.footer?.class }} watt-table-align-{{\n column.value.align ?? 'left'\n }} \"\n >\n {{ column.value.footer?.value?.() }}\n </td>\n }\n </ng-container>\n }\n\n <ng-container matColumnDef=\"spacer\">\n <td class=\"watt-table-footer-spacer\" mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideColumnHeaders()) {\n <tr mat-header-row *matHeaderRowDef=\"renderedColumns()\"></tr>\n }\n <tr\n mat-row\n *matRowDef=\"let row; columns: renderedColumns()\"\n [attr.aria-selected]=\"row === activeRow()\"\n [class]=\"getRowClass(row)\"\n [ngClass]=\"{\n 'watt-table-highlight-row': !disabled() && !suppressRowHoverHighlight(),\n 'watt-table-clickable-row': !disabled() && rowClick$.observed,\n 'watt-table-active-row': isActiveRow(row),\n 'watt-table-no-end-divider': hideColumnHeaders(),\n }\"\n ></tr>\n\n @if (toolbar()) {\n <tr mat-footer-row *matFooterRowDef=\"['spacer']\"></tr>\n }\n\n @if (hasFooter()) {\n <tr\n mat-footer-row\n [class.watt-table-hide-footer]=\"loading() || dataSource().filteredData.length === 0\"\n *matFooterRowDef=\"renderedColumns(); sticky: stickyFooter()\"\n ></tr>\n }\n\n <ng-container *matNoDataRow>\n @if (loading()) {\n @for (i of [1, 2, 3]; track i) {\n <tr class=\"mat-mdc-row\">\n @for (_ of renderedColumns(); track _; let i = $index) {\n <td class=\"mat-mdc-cell\" [class.watt-table-loading-cell]=\"i > 0 || !selectable()\"></td>\n }\n </tr>\n }\n }\n </ng-container>\n</table>\n\n@if (toolbar(); as toolbar) {\n <div class=\"watt-table-toolbar\" role=\"toolbar\">\n <ng-container\n *ngTemplateOutlet=\"\n toolbar.templateRef;\n context: { $implicit: filterSelectionBy(dataSource().filteredData) }\n \"\n />\n </div>\n}\n", styles: ["watt-table{--mat-table-row-item-label-text-font: $primary-font-family;--mat-table-row-item-outline-color: var(--watt-color-neutral-grey-300);--mat-table-header-headline-font: $primary-font-family}watt-table,watt-table .mat-mdc-table{display:grid;position:relative;overflow:auto;min-height:44px}watt-table .mat-mdc-table{grid-template-columns:var(--watt-table-grid-template-columns);grid-auto-rows:max-content;max-height:100%;z-index:1}watt-table .mat-mdc-table thead,watt-table .mat-mdc-table tbody,watt-table .mat-mdc-table tfoot,watt-table .mat-mdc-table tr.mat-mdc-row,watt-table .mat-mdc-table tr.mat-mdc-header-row,watt-table .mat-mdc-table tr.mat-mdc-footer-row{display:contents}watt-table .mat-mdc-table tr.watt-table-hide-footer{display:none}watt-table .mat-mdc-table tr.mat-mdc-header-row{flex:0 0 auto}watt-table .mat-mdc-table th.mat-mdc-header-cell{color:var(--watt-typography-label-color);font-size:.875rem;line-height:1.25rem;font-weight:600;box-sizing:border-box;display:flex;position:sticky;top:0;padding:0 var(--watt-space-s);height:auto;background:var(--watt-color-primary-ultralight);box-shadow:0 -1px #0000001f inset;border:0;z-index:2!important;white-space:nowrap;-webkit-user-select:none;user-select:none}watt-table .mat-mdc-table td.mat-mdc-footer-cell,watt-table .mat-mdc-table td.mat-mdc-cell{display:flex;align-items:center;min-height:48px;padding:var(--watt-space-xs) var(--watt-space-m);line-height:18px}watt-table .mat-mdc-table td.mat-mdc-cell.watt-table-cell--expandable{padding:0}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer),watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:1px solid var(--watt-color-neutral-grey-300)}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer){font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;border-top:2px solid var(--watt-color-neutral-grey-300);background-color:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-no-end-divider:last-child .mat-mdc-cell{border-bottom:0px solid var(--watt-color-neutral-grey-300)!important}watt-table .mat-mdc-table .watt-table-clickable-row>td:not(.watt-table-cell--expandable),watt-table .mat-mdc-table tr:has(>.watt-table-cell--expandable)>td:not(.watt-table-cell--expandable){cursor:pointer;-webkit-user-select:text;user-select:text}watt-table .mat-mdc-table .watt-table-highlight-row:hover:not(.watt-table-active-row,:has(>.watt-table-cell--expandable:hover))>td{background:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-active-row>td{background:var(--watt-color-secondary-ultralight)}watt-table .mat-mdc-table .mat-column-__expandableColumn__>watt-icon{transition:transform .2s}watt-table .mat-mdc-table .mat-column-__expandableColumn__.watt-table-cell--expanded>watt-icon{transform:rotate(90deg)}watt-table .mat-mdc-table .mat-sort-header-arrow{margin:0}watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-arrow{margin-right:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-arrow,watt-table .mat-mdc-table .watt-table-align-left .mat-sort-header-arrow{margin-left:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-header-cell{padding:.75rem var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-checkbox-cell{justify-content:center}watt-table .mat-mdc-table th.watt-table-checkbox-cell{display:flex;align-items:center}watt-table .mat-mdc-table .watt-table-align-center,watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-container{justify-content:center;text-align:center}watt-table .mat-mdc-table .watt-table-align-right,watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-container{justify-content:right;text-align:right}.watt-table-variant-zebra>table>tbody>tr:nth-child(2n):not(.watt-table-active-row)>td{background-color:var(--watt-color-neutral-grey-50)}watt-table .mat-mdc-table th.watt-table-cell--expandable{display:none}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable{position:relative;min-height:0;max-height:0;border-bottom-width:0;overflow:hidden;pointer-events:none;grid-column:1/-1;background:transparent;flex:1 1 auto;opacity:0;will-change:opacity;transition:opacity .2s cubic-bezier(.4,0,.2,1),overflow 0s .3s allow-discrete}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable>.watt-table-cell-wrapper{position:absolute;top:0;width:100%}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded{height:auto;max-height:initial;opacity:1;border-bottom-width:1px;pointer-events:all;overflow:visible}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded>.watt-table-cell-wrapper{position:relative}.watt-table-cell-wrapper{width:100%}.watt-table-footer-spacer{display:none;height:76px;border:0}.watt-table-has-selection .watt-table-footer-spacer{display:block}.watt-table-has-selection+.watt-table-toolbar{opacity:1;visibility:visible;transition:opacity .3s cubic-bezier(0,0,.2,1),visibility .5s}.watt-table-toolbar{position:absolute;bottom:var(--watt-space-m);left:50%;transform:translate(-50%);display:flex;align-items:center;padding:0 var(--watt-space-m);min-height:44px;border-radius:22px;color:var(--watt-color-primary-contrast);background-color:var(--watt-color-primary);z-index:1;opacity:0;visibility:hidden;transition:none}.watt-table-toolbar .watt-button--disabled{opacity:.4;--watt-button-primary-disabled-color: #fff}.watt-table-loading-cell:before{content:\"\";flex:1;display:block;max-width:200px;height:var(--watt-space-m);border-radius:var(--watt-space-m);opacity:.75;animation:shine 2s infinite linear;background-color:var(--watt-color-neutral-grey-200);background-size:300px;background-position:-100px;background-image:linear-gradient(90deg,var(--watt-color-neutral-grey-300) 0px,var(--watt-color-neutral-grey-200) 40px,var(--watt-color-neutral-grey-300) 80px)}@keyframes shine{40%,to{background-position:200px}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i3.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i3.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i3.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "directive", type: i3.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }, { kind: "component", type: WattCheckboxComponent, selector: "watt-checkbox", inputs: ["required"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [NgTemplateOutlet]] });
|
|
306
317
|
}
|
|
307
318
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattTableComponent, decorators: [{
|
|
308
319
|
type: Component,
|
|
@@ -318,7 +329,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
318
329
|
], encapsulation: ViewEncapsulation.None, selector: 'watt-table', host: {
|
|
319
330
|
'[class.watt-table-variant-zebra]': 'variant() === "zebra"',
|
|
320
331
|
'[style.--watt-table-grid-template-columns]': 'sizing().join(" ")',
|
|
321
|
-
}, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<table\n mat-table\n matSort\n role=\"treegrid\"\n [ngClass]=\"{ 'watt-table-has-selection': getSelectionState() !== false }\"\n [matSortActive]=\"sortBy()\"\n [matSortDirection]=\"sortDirection()\"\n [matSortDisableClear]=\"!sortClear()\"\n [dataSource]=\"dataSource()\"\n [attr.aria-label]=\"description()\"\n (matSortChange)=\"sortChange.emit($event)\"\n>\n @if (selectable()) {\n <ng-container [matColumnDef]=\"checkboxColumn\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"getSelectionState()\"\n (ngModelChange)=\"$event ? selection.set(dataSource().filteredData) : clearSelection()\"\n />\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"selection().includes(row)\"\n (ngModelChange)=\"toggleSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n </ng-container>\n }\n\n <ng-container [matColumnDef]=\"expandableColumn\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n (click)=\"onRowClick(row)\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n >\n <watt-icon name=\"right\" size=\"xs\" />\n </td>\n </ng-container>\n\n @for (column of columns() | keyvalue; track column.key) {\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"column.value.stickyEnd?.()\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{\n column.value.headerCellClass\n }}\"\n >\n @if (column.value.helperAction; as action) {\n <watt-icon name=\"help\" (click)=\"action()\" />\n }\n\n <div\n class=\"watt-table-header-cell\"\n mat-sort-header\n [arrowPosition]=\"column.value.align === 'right' ? 'before' : 'after'\"\n [disabled]=\"!column.value.accessor || column.value.sort === false\"\n >\n {{ getColumnHeader(column) }}\n @if (column.value.tooltip; as tooltip) {\n <watt-icon [title]=\"tooltip\" name=\"info\" state=\"default\" />\n }\n </div>\n </th>\n\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{ column.value.dataCellClass }}\"\n (click)=\"!column.value.expandable && onRowClick(row)\"\n >\n @if (isExpandable()) {\n @defer (when !column.value.expandable || expanded().includes(row)) {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n } @else {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n </td>\n\n @if (hasFooter()) {\n <td\n mat-footer-cell\n *matFooterCellDef\n class=\"{{ column.value.footer?.class }} watt-table-align-{{\n column.value.align ?? 'left'\n }} \"\n >\n {{ column.value.footer?.value?.() }}\n </td>\n }\n </ng-container>\n }\n\n <ng-container matColumnDef=\"spacer\">\n <td class=\"watt-table-footer-spacer\" mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideColumnHeaders()) {\n <tr mat-header-row *matHeaderRowDef=\"renderedColumns()\"></tr>\n }\n <tr\n mat-row\n *matRowDef=\"let row; columns: renderedColumns()\"\n [attr.aria-selected]=\"row === activeRow()\"\n [ngClass]=\"{\n 'watt-table-highlight-row': !disabled() && !suppressRowHoverHighlight(),\n 'watt-table-clickable-row': !disabled() && rowClick$.observed,\n 'watt-table-active-row': isActiveRow(row),\n 'watt-table-no-end-divider': hideColumnHeaders(),\n }\"\n ></tr>\n\n @if (toolbar()) {\n <tr mat-footer-row *matFooterRowDef=\"['spacer']\"></tr>\n }\n\n @if (hasFooter()) {\n <tr\n mat-footer-row\n [class.watt-table-hide-footer]=\"loading() || dataSource().filteredData.length === 0\"\n *matFooterRowDef=\"renderedColumns(); sticky: stickyFooter()\"\n ></tr>\n }\n\n <ng-container *matNoDataRow>\n @if (loading()) {\n @for (i of [1, 2, 3]; track i) {\n <tr class=\"mat-mdc-row\">\n @for (_ of renderedColumns(); track _; let i = $index) {\n <td class=\"mat-mdc-cell\" [class.watt-table-loading-cell]=\"i > 0 || !selectable()\"></td>\n }\n </tr>\n }\n }\n </ng-container>\n</table>\n\n@if (toolbar(); as toolbar) {\n <div class=\"watt-table-toolbar\" role=\"toolbar\">\n <ng-container\n *ngTemplateOutlet=\"\n toolbar.templateRef;\n context: { $implicit: filterSelectionBy(dataSource().filteredData) }\n \"\n />\n </div>\n}\n", styles: ["watt-table{--mat-table-row-item-label-text-font: $primary-font-family;--mat-table-row-item-outline-color: var(--watt-color-neutral-grey-300);--mat-table-header-headline-font: $primary-font-family}watt-table,watt-table .mat-mdc-table{display:grid;position:relative;overflow:auto;min-height:44px}watt-table .mat-mdc-table{grid-template-columns:var(--watt-table-grid-template-columns);grid-auto-rows:max-content;max-height:100%;z-index:1}watt-table .mat-mdc-table thead,watt-table .mat-mdc-table tbody,watt-table .mat-mdc-table tfoot,watt-table .mat-mdc-table tr.mat-mdc-row,watt-table .mat-mdc-table tr.mat-mdc-header-row,watt-table .mat-mdc-table tr.mat-mdc-footer-row{display:contents}watt-table .mat-mdc-table tr.watt-table-hide-footer{display:none}watt-table .mat-mdc-table tr.mat-mdc-header-row{flex:0 0 auto}watt-table .mat-mdc-table th.mat-mdc-header-cell{color:var(--watt-typography-label-color);font-size:.875rem;line-height:1.25rem;font-weight:600;box-sizing:border-box;display:flex;position:sticky;top:0;padding:0 var(--watt-space-s);height:auto;background:var(--watt-color-primary-ultralight);box-shadow:0 -1px #0000001f inset;border:0;z-index:2!important;white-space:nowrap;-webkit-user-select:none;user-select:none}watt-table .mat-mdc-table td.mat-mdc-footer-cell,watt-table .mat-mdc-table td.mat-mdc-cell{display:flex;align-items:center;min-height:48px;padding:var(--watt-space-xs) var(--watt-space-m);line-height:18px}watt-table .mat-mdc-table td.mat-mdc-cell.watt-table-cell--expandable{padding:0}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer),watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:1px solid var(--watt-color-neutral-grey-300)}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer){font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;border-top:2px solid var(--watt-color-neutral-grey-300);background-color:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-no-end-divider:last-child .mat-mdc-cell{border-bottom:0px solid var(--watt-color-neutral-grey-300)!important}watt-table .mat-mdc-table .watt-table-clickable-row>td:not(.watt-table-cell--expandable),watt-table .mat-mdc-table tr:has(>.watt-table-cell--expandable)>td:not(.watt-table-cell--expandable){cursor:pointer;-webkit-user-select:text;user-select:text}watt-table .mat-mdc-table .watt-table-highlight-row:hover:not(.watt-table-active-row,:has(>.watt-table-cell--expandable:hover))>td{background:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-active-row>td{background:var(--watt-color-secondary-ultralight)}watt-table .mat-mdc-table .mat-column-__expandableColumn__>watt-icon{transition:transform .2s}watt-table .mat-mdc-table .mat-column-__expandableColumn__.watt-table-cell--expanded>watt-icon{transform:rotate(90deg)}watt-table .mat-mdc-table .mat-sort-header-arrow{margin:0}watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-arrow{margin-right:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-arrow,watt-table .mat-mdc-table .watt-table-align-left .mat-sort-header-arrow{margin-left:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-header-cell{padding:.75rem var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-checkbox-cell{justify-content:center}watt-table .mat-mdc-table th.watt-table-checkbox-cell{display:flex;align-items:center}watt-table .mat-mdc-table .watt-table-align-center,watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-container{justify-content:center;text-align:center}watt-table .mat-mdc-table .watt-table-align-right,watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-container{justify-content:right;text-align:right}.watt-table-variant-zebra>table>tbody>tr:nth-child(2n):not(.watt-table-active-row)>td{background-color:var(--watt-color-neutral-grey-50)}watt-table .mat-mdc-table th.watt-table-cell--expandable{display:none}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable{position:relative;min-height:0;max-height:0;border-bottom-width:0;overflow:hidden;pointer-events:none;grid-column:1/-1;background:transparent;flex:1 1 auto;opacity:0;will-change:opacity;transition:opacity .2s cubic-bezier(.4,0,.2,1),overflow 0s .3s allow-discrete}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable>.watt-table-cell-wrapper{position:absolute;top:0;width:100%}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded{height:auto;max-height:initial;opacity:1;border-bottom-width:1px;pointer-events:all;overflow:visible}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded>.watt-table-cell-wrapper{position:relative}.watt-table-cell-wrapper{width:100%}.watt-table-footer-spacer{display:none;height:76px;border:0}.watt-table-has-selection .watt-table-footer-spacer{display:block}.watt-table-has-selection+.watt-table-toolbar{opacity:1;visibility:visible;transition:opacity .3s cubic-bezier(0,0,.2,1),visibility .5s}.watt-table-toolbar{position:absolute;bottom:var(--watt-space-m);left:50%;transform:translate(-50%);display:flex;align-items:center;padding:0 var(--watt-space-m);min-height:44px;border-radius:22px;color:var(--watt-color-primary-contrast);background-color:var(--watt-color-primary);z-index:1;opacity:0;visibility:hidden;transition:none}.watt-table-toolbar .watt-button--disabled{opacity:.4;--watt-button-primary-disabled-color: #fff}.watt-table-loading-cell:before{content:\"\";flex:1;display:block;max-width:200px;height:var(--watt-space-m);border-radius:var(--watt-space-m);opacity:.75;animation:shine 2s infinite linear;background-color:var(--watt-color-neutral-grey-200);background-size:300px;background-position:-100px;background-image:linear-gradient(90deg,var(--watt-color-neutral-grey-300) 0px,var(--watt-color-neutral-grey-200) 40px,var(--watt-color-neutral-grey-300) 80px)}@keyframes shine{40%,to{background-position:200px}}\n"] }]
|
|
322
|
-
}], ctorParameters: () => [], propDecorators: { dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: true }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], displayedColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayedColumns", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], stickyFooter: [{ type: i0.Input, args: [{ isSignal: true, alias: "stickyFooter", required: false }] }], resolveHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "resolveHeader", required: false }] }], sortBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortBy", required: false }] }], sortDirection: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortDirection", required: false }] }], sortClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortClear", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }, { type: i0.Output, args: ["selectionChange"] }], suppressRowHoverHighlight: [{ type: i0.Input, args: [{ isSignal: true, alias: "suppressRowHoverHighlight", required: false }] }], activeRow: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeRow", required: false }] }], activeRowComparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeRowComparator", required: false }] }], hideColumnHeaders: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideColumnHeaders", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }, { type: i0.Output, args: ["expandedChange"] }], trackBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "trackBy", required: false }] }], rowClick: [{ type: i0.Output, args: ["rowClick"] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }], cells: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => WattTableCellDirective), { isSignal: true }] }], toolbar: [{ type: i0.ContentChild, args: [i0.forwardRef(() => WattTableToolbarDirective), { isSignal: true }] }], sort: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatSort), { isSignal: true }] }], tableCellElements: [{ type: i0.ViewChildren, args: ['td', { isSignal: true }] }] } });
|
|
332
|
+
}, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<table\n mat-table\n matSort\n role=\"treegrid\"\n [ngClass]=\"{ 'watt-table-has-selection': getSelectionState() !== false }\"\n [matSortActive]=\"sortBy()\"\n [matSortDirection]=\"sortDirection()\"\n [matSortDisableClear]=\"!sortClear()\"\n [dataSource]=\"dataSource()\"\n [attr.aria-label]=\"description()\"\n (matSortChange)=\"sortChange.emit($event)\"\n>\n @if (selectable()) {\n <ng-container [matColumnDef]=\"checkboxColumn\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"getSelectionState()\"\n (ngModelChange)=\"$event ? selection.set(dataSource().filteredData) : clearSelection()\"\n />\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"selection().includes(row)\"\n (ngModelChange)=\"toggleSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n </ng-container>\n }\n\n <ng-container [matColumnDef]=\"expandableColumn\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n (click)=\"onRowClick(row)\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n >\n <watt-icon name=\"right\" size=\"xs\" />\n </td>\n </ng-container>\n\n @for (column of columns() | keyvalue; track column.key) {\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"column.value.stickyEnd?.()\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{\n column.value.headerCellClass\n }}\"\n >\n @if (column.value.helperAction; as action) {\n <watt-icon name=\"help\" (click)=\"action()\" />\n }\n\n <div\n class=\"watt-table-header-cell\"\n mat-sort-header\n [arrowPosition]=\"column.value.align === 'right' ? 'before' : 'after'\"\n [disabled]=\"!column.value.accessor || column.value.sort === false\"\n >\n {{ getColumnHeader(column) }}\n @if (column.value.tooltip; as tooltip) {\n <watt-icon [title]=\"tooltip\" name=\"info\" state=\"default\" />\n }\n </div>\n </th>\n\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{ column.value.dataCellClass }}\"\n (click)=\"!column.value.expandable && onRowClick(row)\"\n >\n @if (isExpandable()) {\n @defer (when !column.value.expandable || expanded().includes(row)) {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n } @else {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n </td>\n\n @if (hasFooter()) {\n <td\n mat-footer-cell\n *matFooterCellDef\n class=\"{{ column.value.footer?.class }} watt-table-align-{{\n column.value.align ?? 'left'\n }} \"\n >\n {{ column.value.footer?.value?.() }}\n </td>\n }\n </ng-container>\n }\n\n <ng-container matColumnDef=\"spacer\">\n <td class=\"watt-table-footer-spacer\" mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideColumnHeaders()) {\n <tr mat-header-row *matHeaderRowDef=\"renderedColumns()\"></tr>\n }\n <tr\n mat-row\n *matRowDef=\"let row; columns: renderedColumns()\"\n [attr.aria-selected]=\"row === activeRow()\"\n [class]=\"getRowClass(row)\"\n [ngClass]=\"{\n 'watt-table-highlight-row': !disabled() && !suppressRowHoverHighlight(),\n 'watt-table-clickable-row': !disabled() && rowClick$.observed,\n 'watt-table-active-row': isActiveRow(row),\n 'watt-table-no-end-divider': hideColumnHeaders(),\n }\"\n ></tr>\n\n @if (toolbar()) {\n <tr mat-footer-row *matFooterRowDef=\"['spacer']\"></tr>\n }\n\n @if (hasFooter()) {\n <tr\n mat-footer-row\n [class.watt-table-hide-footer]=\"loading() || dataSource().filteredData.length === 0\"\n *matFooterRowDef=\"renderedColumns(); sticky: stickyFooter()\"\n ></tr>\n }\n\n <ng-container *matNoDataRow>\n @if (loading()) {\n @for (i of [1, 2, 3]; track i) {\n <tr class=\"mat-mdc-row\">\n @for (_ of renderedColumns(); track _; let i = $index) {\n <td class=\"mat-mdc-cell\" [class.watt-table-loading-cell]=\"i > 0 || !selectable()\"></td>\n }\n </tr>\n }\n }\n </ng-container>\n</table>\n\n@if (toolbar(); as toolbar) {\n <div class=\"watt-table-toolbar\" role=\"toolbar\">\n <ng-container\n *ngTemplateOutlet=\"\n toolbar.templateRef;\n context: { $implicit: filterSelectionBy(dataSource().filteredData) }\n \"\n />\n </div>\n}\n", styles: ["watt-table{--mat-table-row-item-label-text-font: $primary-font-family;--mat-table-row-item-outline-color: var(--watt-color-neutral-grey-300);--mat-table-header-headline-font: $primary-font-family}watt-table,watt-table .mat-mdc-table{display:grid;position:relative;overflow:auto;min-height:44px}watt-table .mat-mdc-table{grid-template-columns:var(--watt-table-grid-template-columns);grid-auto-rows:max-content;max-height:100%;z-index:1}watt-table .mat-mdc-table thead,watt-table .mat-mdc-table tbody,watt-table .mat-mdc-table tfoot,watt-table .mat-mdc-table tr.mat-mdc-row,watt-table .mat-mdc-table tr.mat-mdc-header-row,watt-table .mat-mdc-table tr.mat-mdc-footer-row{display:contents}watt-table .mat-mdc-table tr.watt-table-hide-footer{display:none}watt-table .mat-mdc-table tr.mat-mdc-header-row{flex:0 0 auto}watt-table .mat-mdc-table th.mat-mdc-header-cell{color:var(--watt-typography-label-color);font-size:.875rem;line-height:1.25rem;font-weight:600;box-sizing:border-box;display:flex;position:sticky;top:0;padding:0 var(--watt-space-s);height:auto;background:var(--watt-color-primary-ultralight);box-shadow:0 -1px #0000001f inset;border:0;z-index:2!important;white-space:nowrap;-webkit-user-select:none;user-select:none}watt-table .mat-mdc-table td.mat-mdc-footer-cell,watt-table .mat-mdc-table td.mat-mdc-cell{display:flex;align-items:center;min-height:48px;padding:var(--watt-space-xs) var(--watt-space-m);line-height:18px}watt-table .mat-mdc-table td.mat-mdc-cell.watt-table-cell--expandable{padding:0}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer),watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:1px solid var(--watt-color-neutral-grey-300)}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer){font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;border-top:2px solid var(--watt-color-neutral-grey-300);background-color:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-no-end-divider:last-child .mat-mdc-cell{border-bottom:0px solid var(--watt-color-neutral-grey-300)!important}watt-table .mat-mdc-table .watt-table-clickable-row>td:not(.watt-table-cell--expandable),watt-table .mat-mdc-table tr:has(>.watt-table-cell--expandable)>td:not(.watt-table-cell--expandable){cursor:pointer;-webkit-user-select:text;user-select:text}watt-table .mat-mdc-table .watt-table-highlight-row:hover:not(.watt-table-active-row,:has(>.watt-table-cell--expandable:hover))>td{background:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-active-row>td{background:var(--watt-color-secondary-ultralight)}watt-table .mat-mdc-table .mat-column-__expandableColumn__>watt-icon{transition:transform .2s}watt-table .mat-mdc-table .mat-column-__expandableColumn__.watt-table-cell--expanded>watt-icon{transform:rotate(90deg)}watt-table .mat-mdc-table .mat-sort-header-arrow{margin:0}watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-arrow{margin-right:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-arrow,watt-table .mat-mdc-table .watt-table-align-left .mat-sort-header-arrow{margin-left:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-header-cell{padding:.75rem var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-checkbox-cell{justify-content:center}watt-table .mat-mdc-table th.watt-table-checkbox-cell{display:flex;align-items:center}watt-table .mat-mdc-table .watt-table-align-center,watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-container{justify-content:center;text-align:center}watt-table .mat-mdc-table .watt-table-align-right,watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-container{justify-content:right;text-align:right}.watt-table-variant-zebra>table>tbody>tr:nth-child(2n):not(.watt-table-active-row)>td{background-color:var(--watt-color-neutral-grey-50)}watt-table .mat-mdc-table th.watt-table-cell--expandable{display:none}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable{position:relative;min-height:0;max-height:0;border-bottom-width:0;overflow:hidden;pointer-events:none;grid-column:1/-1;background:transparent;flex:1 1 auto;opacity:0;will-change:opacity;transition:opacity .2s cubic-bezier(.4,0,.2,1),overflow 0s .3s allow-discrete}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable>.watt-table-cell-wrapper{position:absolute;top:0;width:100%}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded{height:auto;max-height:initial;opacity:1;border-bottom-width:1px;pointer-events:all;overflow:visible}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded>.watt-table-cell-wrapper{position:relative}.watt-table-cell-wrapper{width:100%}.watt-table-footer-spacer{display:none;height:76px;border:0}.watt-table-has-selection .watt-table-footer-spacer{display:block}.watt-table-has-selection+.watt-table-toolbar{opacity:1;visibility:visible;transition:opacity .3s cubic-bezier(0,0,.2,1),visibility .5s}.watt-table-toolbar{position:absolute;bottom:var(--watt-space-m);left:50%;transform:translate(-50%);display:flex;align-items:center;padding:0 var(--watt-space-m);min-height:44px;border-radius:22px;color:var(--watt-color-primary-contrast);background-color:var(--watt-color-primary);z-index:1;opacity:0;visibility:hidden;transition:none}.watt-table-toolbar .watt-button--disabled{opacity:.4;--watt-button-primary-disabled-color: #fff}.watt-table-loading-cell:before{content:\"\";flex:1;display:block;max-width:200px;height:var(--watt-space-m);border-radius:var(--watt-space-m);opacity:.75;animation:shine 2s infinite linear;background-color:var(--watt-color-neutral-grey-200);background-size:300px;background-position:-100px;background-image:linear-gradient(90deg,var(--watt-color-neutral-grey-300) 0px,var(--watt-color-neutral-grey-200) 40px,var(--watt-color-neutral-grey-300) 80px)}@keyframes shine{40%,to{background-position:200px}}\n"] }]
|
|
333
|
+
}], ctorParameters: () => [], propDecorators: { dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: true }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], displayedColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayedColumns", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], stickyFooter: [{ type: i0.Input, args: [{ isSignal: true, alias: "stickyFooter", required: false }] }], resolveHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "resolveHeader", required: false }] }], sortBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortBy", required: false }] }], sortDirection: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortDirection", required: false }] }], sortClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortClear", required: false }] }], rowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowClass", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }, { type: i0.Output, args: ["selectionChange"] }], suppressRowHoverHighlight: [{ type: i0.Input, args: [{ isSignal: true, alias: "suppressRowHoverHighlight", required: false }] }], activeRow: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeRow", required: false }] }], activeRowComparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeRowComparator", required: false }] }], hideColumnHeaders: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideColumnHeaders", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }, { type: i0.Output, args: ["expandedChange"] }], trackBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "trackBy", required: false }] }], rowClick: [{ type: i0.Output, args: ["rowClick"] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }], cells: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => WattTableCellDirective), { isSignal: true }] }], toolbar: [{ type: i0.ContentChild, args: [i0.forwardRef(() => WattTableToolbarDirective), { isSignal: true }] }], sort: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatSort), { isSignal: true }] }], tableCellElements: [{ type: i0.ViewChildren, args: ['td', { isSignal: true }] }] } });
|
|
323
334
|
export const WATT_TABLE = [WattTableComponent, WattTableCellDirective, WattTableToolbarDirective];
|
|
324
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS90YWJsZS93YXR0LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL3RhYmxlL3dhdHQtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQVksWUFBWSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFFTixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBdUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUF3QixtQkFBbUIsRUFBRSxNQUFN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c0JBQXNCLEVBQUUseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7IEtleVZhbHVlLCBLZXlWYWx1ZVBpcGUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgdmlld0NoaWxkLFxuICB2aWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgU2lnbmFsLCBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG91dHB1dEZyb21PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTb3J0LCBNYXRTb3J0TW9kdWxlLCBTb3J0LCBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgV2F0dENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2NoZWNrYm94JztcbmltcG9ydCB7IHdhdHRGb3JtYXREYXRlIH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2NvcmUvZGF0ZSc7XG5pbXBvcnQgeyBXYXR0SWNvbkNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9pY29uJztcbmltcG9ydCB7IElXYXR0VGFibGVEYXRhU291cmNlLCBXYXR0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi93YXR0LXRhYmxlLWRhdGEtc291cmNlJztcbmltcG9ydCB7IGFuaW1hdGVFeHBhbmRhYmxlQ2VsbHMgfSBmcm9tICcuL3dhdHQtdGFibGUtZXhwYW5kLWFuaW1hdGlvbic7XG5cbi8qKiBDbGFzcyBuYW1lIGZvciBleHBhbmRhYmxlIGNlbGxzLiAqL1xuZXhwb3J0IGNvbnN0IEVYUEFOREFCTEVfQ0xBU1MgPSAnd2F0dC10YWJsZS1jZWxsLS1leHBhbmRhYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBXYXR0VGFibGVDb2x1bW48VD4ge1xuICAvKipcbiAgICogVGhlIGRhdGEgdGhhdCB0aGlzIGNvbHVtbiBzaG91bGQgYmUgYm91bmQgdG8sIGVpdGhlciBhcyBhIHByb3BlcnR5IG9mIGBUYFxuICAgKiBvciBkZXJpdmVkIGZyb20gZWFjaCByb3cgb2YgYFRgIHVzaW5nIGFuIGFjY2Vzc29yIGZ1bmN0aW9uLiAgVXNlIGBudWxsYFxuICAgKiBmb3IgY29sdW1ucyB0aGF0IHNob3VsZCBub3QgYmUgYXNzb2NpYXRlZCB3aXRoIGRhdGEsIGJ1dCBub3RlIHRoYXQgdGhpc1xuICAgKiB3aWxsIGRpc2FibGUgc29ydGluZyBhbmQgYXV0b21hdGljIGNlbGwgcG9wdWxhdGlvbi5cbiAgICovXG4gIGFjY2Vzc29yOiBrZXlvZiBUIHwgKChyb3c6IFQpID0+IHVua25vd24pIHwgbnVsbDtcblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgaGVhZGVyIHRleHQgdG8gYSBzdGF0aWMgZGlzcGxheSB2YWx1ZS4gVGhpcyB3aWxsIHByZXZlbnRcbiAgICogdGhlIGByZXNvbHZlSGVhZGVyYCBpbnB1dCBmdW5jdGlvbiBmcm9tIGJlaW5nIGNhbGxlZCBmb3IgdGhpcyBjb2x1bW4uXG4gICAqL1xuICBoZWFkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZvciBkZXRlcm1pbmluZyBjZWxsIGNvbnRlbnQgd2hlbiBub3QgdXNpbmcgdGVtcGxhdGUuIEJ5IGRlZmF1bHQsXG4gICAqIGNlbGwgY29udGVudCBpcyBmb3VuZCB1c2luZyB0aGUgYGFjY2Vzc29yYCAodW5sZXNzIGl0IGlzIGBudWxsYCkuXG4gICAqL1xuICBjZWxsPzogKHJvdzogVCkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzb3J0aW5nIGZvciB0aGlzIGNvbHVtbi4gRGVmYXVsdHMgdG8gYHRydWVgXG4gICAqIHVubGVzcyBgYWNjZXNzb3JgIGlzIGBudWxsYC5cbiAgICovXG4gIHNvcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNvbHVtbiBzaXplIHVzaW5nIGdyaWQgc2l6aW5nIHZhbHVlcy4gRGVmYXVsdHMgdG8gYFwiYXV0b1wiYC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogQWNjZXB0cyBhbGwgb2YgdGhlIENTUyBncmlkIHRyYWNrIHNpemUga2V5d29yZHMgKHN1Y2ggYXMgYG1pbi1jb250ZW50YCxcbiAgICogYG1heC1jb250ZW50YCwgYG1pbm1heCgpYCkgYXMgd2VsbCBhcyBmcmFjdGlvbmFsIChgZnJgKSwgcGVyY2VudGFnZSAoYCVgKVxuICAgKiBhbmQgbGVuZ3RoIChgcHhgLCBgZW1gLCBldGMpIHVuaXRzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZ3JpZC8jdHJhY2stc2l6ZXNcbiAgICovXG4gIHNpemU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhvcml6b250YWxseSBhbGlnbiB0aGUgY29udGVudHMgb2YgdGhlIGNvbHVtbi4gRGVmYXVsdHMgdG8gYFwibGVmdFwiYC5cbiAgICovXG4gIGFsaWduPzogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdjZW50ZXInO1xuXG4gIC8qKlxuICAgKiBIZWxwZXIgaWNvbiB3aWxsIGJlIHNob3duIGluIHRoZSBoZWFkZXIgY2VsbCwgd2l0aCBhbiBjbGljayBldmVudC5cbiAgICovXG4gIGhlbHBlckFjdGlvbj86ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENTUyBjbGFzcyB0byBhcHBseSB0byB0aGUgaGVhZGVyIGNlbGwgZWxlbWVudC5cbiAgICovXG4gIGhlYWRlckNlbGxDbGFzcz86IHN0cmluZztcblxuICAvKipcbiAgICogQ1NTIGNsYXNzIHRvIGFwcGx5IHRvIHRoZSBkYXRhIGNlbGwgZWxlbWVudC5cbiAgICovXG4gIGRhdGFDZWxsQ2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZvb3RlciBjb25maWd1cmF0aW9uIGZvciB0aGUgY29sdW1uLlxuICAgKi9cbiAgZm9vdGVyPzogV2F0dFRhYmxlQ29sdW1uRm9vdGVyO1xuXG4gIC8qKlxuICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIHRoZSBjb2x1bW4gcmVtYWlucyB2aXNpYmxlIHdoZW4gaG9yaXpvbnRhbGx5IHNjcm9sbGluZy5cbiAgICovXG4gIHN0aWNreUVuZD86IFNpZ25hbDxib29sZWFuPjtcblxuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIHRoZSBjZWxsIGlzIHJlcGxhY2VkIHdpdGggYW4gZXhwYW5kYWJsZSBhcnJvdyBhbmQgdGhlIGNvbnRlbnQgaXMgZGVmZXJyZWQuXG4gICAqIENsaWNraW5nIG9uIHRoZSBhcnJvdyByZXZlYWxzIHRoZSBjb250ZW50IGJlbG93IHRoZSBjdXJyZW50IHJvdy5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogSXQgaXMgcmVjb21tZW5kZWQgdG8gcHJvdmlkZSBhIGN1c3RvbSBgdHJhY2tCeWAgZnVuY3Rpb24gd2hlbiB1c2luZyBgZXhwYW5kYWJsZWAsXG4gICAqIG90aGVyd2lzZSBhbmltYXRpb25zIGNhbiBiZSBpbmFjY3VyYXRlIHdoZW4gZGF0YSBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgZXhwYW5kYWJsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRvb2x0aXAgdGV4dCB0byBzaG93IG9uIGhvdmVyIG9mIHRoZSBoZWFkZXIgY2VsbC5cbiAgICovXG4gIHRvb2x0aXA/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGZvb3RlciBjZWxsIG9mIGEgY29sdW1uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdHRUYWJsZUNvbHVtbkZvb3RlciB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgZm9vdGVyIGNlbGwuXG4gICAqL1xuICB2YWx1ZT86IFNpZ25hbDxzdHJpbmcgfCBudW1iZXI+O1xuXG4gIC8qKlxuICAgKiBDU1MgY2xhc3MgdG8gYXBwbHkgdG8gdGhlIGZvb3RlciBjZWxsLlxuICAgKi9cbiAgY2xhc3M/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVjb3JkIGZvciBkZWZpbmluZyBjb2x1bW5zIHdpdGgga2V5cyB1c2VkIGFzIGNvbHVtbiBpZGVudGlmaWVycy5cbiAqL1xuZXhwb3J0IHR5cGUgV2F0dFRhYmxlQ29sdW1uRGVmPFQ+ID0gUmVjb3JkPHN0cmluZywgV2F0dFRhYmxlQ29sdW1uPFQ+PjtcblxuLy8gVXNlZCBmb3Igc3Ryb25nbHkgdHlwaW5nIHRoZSBzdHJ1Y3R1cmFsIGRpcmVjdGl2ZVxuaW50ZXJmYWNlIFdhdHRUYWJsZUNlbGxDb250ZXh0PFQ+IHtcbiAgJGltcGxpY2l0OiBUO1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgV2F0dFRhYmxlVG9vbGJhckNvbnRleHQ8VD4ge1xuICAkaW1wbGljaXQ6IFQ7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3YXR0VGFibGVDZWxsXScsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRUYWJsZUNlbGxEaXJlY3RpdmU8VD4ge1xuICB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxXYXR0VGFibGVDZWxsQ29udGV4dDxUPj4pO1xuXG4gIC8qKlxuICAgKiBUaGUgV2F0dFRhYmxlQ29sdW1uIHRoaXMgdGVtcGxhdGUgYXBwbGllcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IGNvbHVtbiA9IGlucHV0LnJlcXVpcmVkPFdhdHRUYWJsZUNvbHVtbjxUPj4oeyBhbGlhczogJ3dhdHRUYWJsZUNlbGwnIH0pO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBoZWFkZXIgdGV4dCBmb3IgdGhlIGNvbHVtbi5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWRlciA9IGlucHV0PHN0cmluZz4odW5kZWZpbmVkLCB7IGFsaWFzOiAnd2F0dFRhYmxlQ2VsbEhlYWRlcicgfSk7XG5cbiAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQ8VD4oXG4gICAgX2RpcmVjdGl2ZTogV2F0dFRhYmxlQ2VsbERpcmVjdGl2ZTxUPixcbiAgICBjb250ZXh0OiB1bmtub3duXG4gICk6IGNvbnRleHQgaXMgV2F0dFRhYmxlQ2VsbENvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3YXR0VGFibGVUb29sYmFyXScsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRUYWJsZVRvb2xiYXJEaXJlY3RpdmU8VD4ge1xuICB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxXYXR0VGFibGVUb29sYmFyQ29udGV4dDxUW10+Pik7XG4gIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KFxuICAgIF9kaXJlY3RpdmU6IFdhdHRUYWJsZVRvb2xiYXJEaXJlY3RpdmU8VD4sXG4gICAgY29udGV4dDogdW5rbm93blxuICApOiBjb250ZXh0IGlzIFdhdHRUYWJsZVRvb2xiYXJDb250ZXh0PFRbXT4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8qKlxuICogVXNhZ2U6XG4gKiBgaW1wb3J0IHsgV0FUVF9UQUJMRSB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC90YWJsZSc7YFxuICovXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBLZXlWYWx1ZVBpcGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0U29ydE1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBXYXR0SWNvbkNvbXBvbmVudCxcbiAgICBXYXR0Q2hlY2tib3hDb21wb25lbnQsXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHNlbGVjdG9yOiAnd2F0dC10YWJsZScsXG4gIHN0eWxlVXJsczogWycuL3dhdHQtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3dhdHQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy53YXR0LXRhYmxlLXZhcmlhbnQtemVicmFdJzogJ3ZhcmlhbnQoKSA9PT0gXCJ6ZWJyYVwiJyxcbiAgICAnW3N0eWxlLi0td2F0dC10YWJsZS1ncmlkLXRlbXBsYXRlLWNvbHVtbnNdJzogJ3NpemluZygpLmpvaW4oXCIgXCIpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dFRhYmxlQ29tcG9uZW50PFQ+IHtcbiAgLyoqXG4gICAqIFRoZSB0YWJsZSdzIHNvdXJjZSBvZiBkYXRhLiBQcm9wZXJ0eSBzaG91bGQgbm90IGJlIGNoYW5nZWQgYWZ0ZXJcbiAgICogaW5pdGlhbGl6YXRpb24sIGluc3RlYWQgdXBkYXRlIHRoZSBkYXRhIG9uIHRoZSBpbnN0YW5jZSBpdHNlbGYuXG4gICAqL1xuICByZWFkb25seSBkYXRhU291cmNlID0gaW5wdXQucmVxdWlyZWQ8SVdhdHRUYWJsZURhdGFTb3VyY2U8VD4+KCk7XG5cbiAgLyoqXG4gICAqIENvbHVtbiBkZWZpbml0aW9uIHJlY29yZCB3aXRoIGtleXMgcmVwcmVzZW50aW5nIHRoZSBjb2x1bW4gaWRlbnRpZmllcnNcbiAgICogYW5kIHZhbHVlcyBiZWluZyB0aGUgY29sdW1uIGNvbmZpZ3VyYXRpb24uIFRoZSBvcmRlciBvZiB0aGUgY29sdW1uc1xuICAgKiBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBwcm9wZXJ0eSBvcmRlciwgYnV0IGNhbiBiZSBvdmVycnVsZWQgYnkgdGhlXG4gICAqIGBkaXNwbGF5ZWRDb2x1bW5zYCBpbnB1dC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbHVtbnMgPSBpbnB1dDxXYXR0VGFibGVDb2x1bW5EZWY8VD4+KHt9KTtcblxuICAvKipcbiAgICogVXNlZCBmb3IgaGlkaW5nIG9yIHJlb3JkZXJpbmcgY29sdW1ucyBkZWZpbmVkIGluIHRoZSBgY29sdW1uc2AgaW5wdXQuXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5ZWRDb2x1bW5zID0gaW5wdXQ8c3RyaW5nW10+KCk7XG5cbiAgLyoqXG4gICAqIFVzZWQgZm9yIGRpc2FibGluZyB0aGUgdGFibGUuIFRoaXMgd2lsbCBkaXNhYmxlIGFsbCB1c2VyIGludGVyYWN0aW9uXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogUHJvdmlkZSBhIGRlc2NyaXB0aW9uIG9mIHRoZSB0YWJsZSBmb3IgdmlzdWFsbHkgaW1wYWlyZWQgdXNlcnMuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbiA9IGlucHV0KCcnKTtcblxuICAvKipcbiAgICogSWYgc2V0IHRvIGB0cnVlYCwgdGhlIHRhYmxlIHdpbGwgc2hvdyBhIGxvYWRpbmcgaW5kaWNhdG9yXG4gICAqIHdoZW4gdGhlcmUgaXMgbm8gZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRpbmcgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIElmIHRydWUgdGhlIGZvb3RlciB3aWxsIGJlIHN0aWNreVxuICAgKi9cbiAgcmVhZG9ubHkgc3RpY2t5Rm9vdGVyID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjYWxsYmFjayBmb3IgZGV0ZXJtaW5pbmcgaGVhZGVyIHRleHQgZm9yIGNvbHVtbnMgdGhhdFxuICAgKiBkbyBub3QgaGF2ZSBhIHN0YXRpYyBoZWFkZXIgdGV4dCBzZXQgaW4gdGhlIGNvbHVtbiBkZWZpbml0aW9uLlxuICAgKiBVc2VmdWwgZm9yIHByb3ZpZGluZyB0cmFuc2xhdGlvbnMgb2YgY29sdW1uIGhlYWRlcnMuXG4gICAqL1xuICByZWFkb25seSByZXNvbHZlSGVhZGVyID0gaW5wdXQ8KGtleTogc3RyaW5nKSA9PiBzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXIgZm9yIGNvbHVtbiB0aGF0IHNob3VsZCBiZSBzb3J0ZWQgaW5pdGlhbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydEJ5ID0gaW5wdXQoJycpO1xuXG4gIC8qKlxuICAgKiBUaGUgc29ydCBkaXJlY3Rpb24gb2YgdGhlIGluaXRpYWxseSBzb3J0ZWQgY29sdW1uLlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydERpcmVjdGlvbiA9IGlucHV0PFNvcnREaXJlY3Rpb24+KCcnKTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhbGxvdyB0aGUgdXNlciB0byBjbGVhciB0aGUgc29ydC4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydENsZWFyID0gaW5wdXQodHJ1ZSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHRhYmxlIHNob3VsZCBpbmNsdWRlIGEgY2hlY2tib3ggY29sdW1uIGZvciByb3cgc2VsZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZWN0YWJsZSA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgc2VsZWN0ZWQgcm93cy4gT25seSBhcHBsaWNhYmxlIHdoZW4gc2VsZWN0YWJsZSBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzZWxlY3Rpb24gPSBtb2RlbDxUW10+KFtdKTtcblxuICAvKipcbiAgICogU2V0IHRvIHRydWUgdG8gZGlzYWJsZSByb3cgaG92ZXIgaGlnaGxpZ2h0LlxuICAgKi9cbiAgcmVhZG9ubHkgc3VwcHJlc3NSb3dIb3ZlckhpZ2hsaWdodCA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogSGlnaGxpZ2h0cyB0aGUgY3VycmVudGx5IGFjdGl2ZSByb3cuXG4gICAqL1xuICByZWFkb25seSBhY3RpdmVSb3cgPSBpbnB1dDxUPigpO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gY29tcGFyYXRvciBmdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgdHdvIHJvd3MgYXJlIGVxdWFsLlxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBUaGUgZGVmYXVsdCBiZWhhdmlvciBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFjdGl2ZSByb3cgaXMgdG8gY29tcGFyZVxuICAgKiB0aGUgdHdvIHJvdyBvYmplY3RzIHVzaW5nIHN0cmljdCBlcXVhbGl0eSBjaGVjay4gVGhpcyBpcyBzdWZmaWNpZW50XG4gICAqIGFzIGxvbmcgYXMgdGhlIGluc3RhbmNlcyByZW1haW4gdGhlIHNhbWUsIHdoaWNoIG1heSBub3QgYmUgdGhlIGNhc2VcbiAgICogaWYgcm93IGRhdGEgaXMgcmVjcmVhdGVkIG9yIHJlYnVpbHQgZnJvbSBzZXJpYWxpemF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aXZlUm93Q29tcGFyYXRvciA9IGlucHV0PChjdXJyZW50Um93OiBULCBhY3RpdmVSb3c6IFQpID0+IGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIElmIHNldCB0byBgdHJ1ZWAsIHRoZSBjb2x1bW4gaGVhZGVycyB3aWxsIG5vdCBiZSBzaG93bi4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgaGlkZUNvbHVtbkhlYWRlcnMgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIENob29zZSBmcm9tIGEgcHJlZGVmaW5lZCBzZXQgb2YgZGlzcGxheSB2YXJpYW50cy5cbiAgICovXG4gIHJlYWRvbmx5IHZhcmlhbnQgPSBpbnB1dDwnemVicmEnPigpO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiByb3dzIHRoYXQgYXJlIGN1cnJlbnRseSBleHBhbmRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGV4cGFuZGVkID0gbW9kZWw8VFtdPihbXSk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGZ1bmN0aW9uIGZvciB1bmlxdWVseSBpZGVudGlmeWluZyByb3dzLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhY2tCeSA9IGlucHV0PFRyYWNrQnlGdW5jdGlvbjxUPiB8IGtleW9mIFQ+KCk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICogVGhlIGBvYnNlcnZlZGAgYm9vbGVhbiBmcm9tIHRoZSBgU3ViamVjdGAgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgYSByb3cgaXNcbiAgICogY2xpY2thYmxlIG9yIG5vdC4gVGhpcyBpcyBhdmFpbGFibGUgb24gYEV2ZW50RW1pdHRlcmAsIGJ1dCBub3Qgb24gYG91dHB1dGAsXG4gICAqIHdoaWNoIGlzIHdoeSB0aGlzIHdvcmthcm91bmQgaXMgdXNlZC5cbiAgICovXG4gIHByb3RlY3RlZCByb3dDbGljayQgPSBuZXcgU3ViamVjdDxUPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciBhIHJvdyBpcyBjbGlja2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgcm93Q2xpY2sgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLnJvd0NsaWNrJCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBjaGFuZ2VzIHRoZSBhY3RpdmUgc29ydCBvciBzb3J0IGRpcmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHNvcnRDaGFuZ2UgPSBvdXRwdXQ8U29ydD4oKTtcblxuICAvLyBRdWVyaWVzXG4gIHByb3RlY3RlZCBjZWxscyA9IGNvbnRlbnRDaGlsZHJlbihXYXR0VGFibGVDZWxsRGlyZWN0aXZlPFQ+KTtcbiAgcHJvdGVjdGVkIHRvb2xiYXIgPSBjb250ZW50Q2hpbGQoV2F0dFRhYmxlVG9vbGJhckRpcmVjdGl2ZTxUPik7XG4gIHByb3RlY3RlZCBzb3J0ID0gdmlld0NoaWxkKE1hdFNvcnQpO1xuXG4gIC8vIEVuYWJsZXMgYW5pbWF0aW9uIGZvciBleHBhbmRpbmcvY29sbGFwc2luZyBjZWxsc1xuICBwcm90ZWN0ZWQgdGFibGVDZWxsRWxlbWVudHMgPSB2aWV3Q2hpbGRyZW48RWxlbWVudFJlZjxIVE1MVGFibGVDZWxsRWxlbWVudD4+KCd0ZCcpO1xuICBwcm90ZWN0ZWQgYW5pbWF0aW9uRWZmZWN0ID0gYW5pbWF0ZUV4cGFuZGFibGVDZWxscyh0aGlzLnRhYmxlQ2VsbEVsZW1lbnRzLCB0aGlzLmV4cGFuZGVkKTtcblxuICAvLyBTZWxlY3RhYmxlXG4gIHByb3RlY3RlZCBmaWx0ZXJTZWxlY3Rpb25CeSA9IChyb3dzOiBUW10pID0+IHJvd3MuZmlsdGVyKChyb3cpID0+IHRoaXMuc2VsZWN0aW9uKCkuaW5jbHVkZXMocm93KSk7XG4gIHByb3RlY3RlZCBnZXRTZWxlY3Rpb25TdGF0ZSA9ICgpID0+IHtcbiAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSB0aGlzLmRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGE7XG4gICAgY29uc3QgZmlsdGVyZWRTZWxlY3Rpb24gPSB0aGlzLmZpbHRlclNlbGVjdGlvbkJ5KGZpbHRlcmVkRGF0YSk7XG4gICAgaWYgKCFmaWx0ZXJlZFNlbGVjdGlvbi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gZmlsdGVyZWRTZWxlY3Rpb24ubGVuZ3RoID09PSB0aGlzLmRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGEubGVuZ3RoID8gdHJ1ZSA6IG51bGw7XG4gIH07XG5cbiAgLy8gVW5pcXVlIG5hbWVzIGZvciBzcGVjaWFsIGNvbHVtbnNcbiAgcHJvdGVjdGVkIGNoZWNrYm94Q29sdW1uID0gJ19fY2hlY2tib3hDb2x1bW5fXyc7XG4gIHByb3RlY3RlZCBleHBhbmRhYmxlQ29sdW1uID0gJ19fZXhwYW5kYWJsZUNvbHVtbl9fJztcblxuICBwcm90ZWN0ZWQgaGFzRm9vdGVyID0gY29tcHV0ZWQoKCkgPT4gT2JqZWN0LnZhbHVlcyh0aGlzLmNvbHVtbnMoKSkuc29tZSgoYykgPT4gYy5mb290ZXIpKTtcbiAgcHJvdGVjdGVkIGlzRXhwYW5kYWJsZSA9IGNvbXB1dGVkKCgpID0+IE9iamVjdC52YWx1ZXModGhpcy5jb2x1bW5zKCkpLnNvbWUoKGMpID0+IGMuZXhwYW5kYWJsZSkpO1xuICBwcm90ZWN0ZWQgcmVuZGVyZWRDb2x1bW5zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmRpc3BsYXllZENvbHVtbnMoKSA/PyBPYmplY3Qua2V5cyh0aGlzLmNvbHVtbnMoKSk7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLih0aGlzLnNlbGVjdGFibGUoKSA/IFt0aGlzLmNoZWNrYm94Q29sdW1uXSA6IFtdKSxcbiAgICAgIC4uLmNvbHVtbnMuZmlsdGVyKChrZXkpID0+ICF0aGlzLmNvbHVtbnMoKVtrZXldLmV4cGFuZGFibGUpLFxuICAgICAgLi4uKHRoaXMuaXNFeHBhbmRhYmxlKCkgPyBbdGhpcy5leHBhbmRhYmxlQ29sdW1uXSA6IFtdKSxcbiAgICAgIC4uLmNvbHVtbnMuZmlsdGVyKChrZXkpID0+IHRoaXMuY29sdW1ucygpW2tleV0uZXhwYW5kYWJsZSksXG4gICAgXTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHNpemluZyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5jb2x1bW5zKCk7XG4gICAgcmV0dXJuIHRoaXMucmVuZGVyZWRDb2x1bW5zKClcbiAgICAgIC5maWx0ZXIoKGtleSkgPT4gIWNvbHVtbnNba2V5XT8uZXhwYW5kYWJsZSlcbiAgICAgIC5tYXAoKGtleSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgIGNhc2UgdGhpcy5jaGVja2JveENvbHVtbjpcbiAgICAgICAgICAgIHJldHVybiAndmFyKC0td2F0dC1zcGFjZS14bCknO1xuICAgICAgICAgIGNhc2UgdGhpcy5leHBhbmRhYmxlQ29sdW1uOlxuICAgICAgICAgICAgcmV0dXJuICdtaW4tY29udGVudCc7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW5zW2tleV0/LnNpemUgPz8gJ2F1dG8nO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfSk7XG5cbiAgLyoqIFRyeSB0byBnZXQgY2VsbCBkYXRhIGZvciBhIHNwZWNpZmljIGBjb2x1bW5gIGFuZCBgcm93YC4gKi9cbiAgcHJpdmF0ZSBnZXRDZWxsRGF0YSA9IChjb2x1bW46IFdhdHRUYWJsZUNvbHVtbjxUPiwgcm93OiBUKSA9PiB7XG4gICAgaWYgKGNvbHVtbi5jZWxsKSByZXR1cm4gY29sdW1uLmNlbGwocm93KTtcbiAgICByZXR1cm4gIWNvbHVtbi5hY2Nlc3NvclxuICAgICAgPyAnJ1xuICAgICAgOiB0eXBlb2YgY29sdW1uLmFjY2Vzc29yID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gY29sdW1uLmFjY2Vzc29yKHJvdylcbiAgICAgICAgOiByb3dbY29sdW1uLmFjY2Vzc29yXTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0Q29sdW1uVGVtcGxhdGUgPSAoY29sdW1uOiBXYXR0VGFibGVDb2x1bW48VD4pID0+XG4gICAgdGhpcy5jZWxscygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uY29sdW1uKCkgPT09IGNvbHVtbik/LnRlbXBsYXRlUmVmO1xuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5IZWFkZXIgPSAoY29sdW1uOiBLZXlWYWx1ZTxzdHJpbmcsIFdhdHRUYWJsZUNvbHVtbjxUPj4pID0+IHtcbiAgICBpZiAodHlwZW9mIGNvbHVtbi52YWx1ZS5oZWFkZXIgPT09ICdzdHJpbmcnKSByZXR1cm4gY29sdW1uLnZhbHVlLmhlYWRlcjtcbiAgICBjb25zdCBjZWxsID0gdGhpcy5jZWxscygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uY29sdW1uKCkgPT09IGNvbHVtbi52YWx1ZSk7XG4gICAgcmV0dXJuIGNlbGw/LmhlYWRlcigpID8/IHRoaXMucmVzb2x2ZUhlYWRlcigpPy4oY29sdW1uLmtleSkgPz8gY29sdW1uLmtleTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0Q29sdW1uQ2VsbCA9IChjb2x1bW46IFdhdHRUYWJsZUNvbHVtbjxUPiwgcm93OiBUKSA9PiB7XG4gICAgY29uc3QgY2VsbCA9IHRoaXMuZ2V0Q2VsbERhdGEoY29sdW1uLCByb3cpO1xuICAgIGlmIChjZWxsID09PSB1bmRlZmluZWQgfHwgY2VsbCA9PT0gbnVsbCkgcmV0dXJuICfigJQnO1xuICAgIGlmIChjZWxsIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIHdhdHRGb3JtYXREYXRlKGNlbGwpO1xuICAgIHJldHVybiBjZWxsO1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRSb3dLZXkgPSAoaW5kZXg6IG51bWJlciwgcm93OiBUKSA9PiB7XG4gICAgY29uc3QgdHJhY2tCeSA9IHRoaXMudHJhY2tCeSgpO1xuICAgIGlmICh0eXBlb2YgdHJhY2tCeSA9PT0gJ3N0cmluZycpIHJldHVybiByb3dbdHJhY2tCeV07XG4gICAgaWYgKHR5cGVvZiB0cmFja0J5ID09PSAnZnVuY3Rpb24nKSByZXR1cm4gdHJhY2tCeShpbmRleCwgcm93KTtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlKCkuZGF0YS5pbmRleE9mKHJvdyk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGlzQWN0aXZlUm93ID0gKHJvdzogVCkgPT4ge1xuICAgIGNvbnN0IGFjdGl2ZVJvdyA9IHRoaXMuYWN0aXZlUm93KCk7XG4gICAgY29uc3QgYWN0aXZlUm93Q29tcGFyYXRvciA9IHRoaXMuYWN0aXZlUm93Q29tcGFyYXRvcigpO1xuICAgIGlmICghYWN0aXZlUm93KSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGFjdGl2ZVJvd0NvbXBhcmF0b3IgPyBhY3RpdmVSb3dDb21wYXJhdG9yKHJvdywgYWN0aXZlUm93KSA6IHJvdyA9PT0gYWN0aXZlUm93O1xuICB9O1xuXG4gIHByb3RlY3RlZCBvblJvd0NsaWNrID0gKHJvdzogVCkgPT4ge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkgfHwgd2luZG93LmdldFNlbGVjdGlvbigpPy50b1N0cmluZygpICE9PSAnJykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmlzRXhwYW5kYWJsZSgpKSB7XG4gICAgICB0aGlzLmV4cGFuZGVkLnVwZGF0ZSgocm93cykgPT5cbiAgICAgICAgcm93cy5pbmNsdWRlcyhyb3cpID8gcm93cy5maWx0ZXIoKHIpID0+IHIgIT0gcm93KSA6IFsuLi5yb3dzLCByb3ddXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucm93Q2xpY2skLm5leHQocm93KTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSgpO1xuICAgICAgZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0KCk7XG4gICAgICBpZiAoIShkYXRhU291cmNlIGluc3RhbmNlb2YgV2F0dFRhYmxlRGF0YVNvdXJjZSkpIHJldHVybjtcbiAgICAgIGRhdGFTb3VyY2Uuc29ydGluZ0RhdGFBY2Nlc3NvciA9IChyb3c6IFQsIHNvcnRIZWFkZXJJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuY29sdW1ucygpW3NvcnRIZWFkZXJJZF07XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRDZWxsRGF0YShjb2x1bW4sIHJvdyk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKTsgLy8gY2FzZSBpbnNlbnNpdGl2ZSBzb3J0aW5nXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHJldHVybiB2YWx1ZS5nZXRUaW1lKCk7XG4gICAgICAgIHJldHVybiB2YWx1ZSBhcyBudW1iZXI7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgc2VsZWN0aW9uLCBlbWl0dGluZyBgc2VsZWN0aW9uQ2hhbmdlYCBpZiBgc2VsZWN0aW9uYCB3YXMgbm90IGVtcHR5LlxuICAgKi9cbiAgY2xlYXJTZWxlY3Rpb24gPSAoKSA9PiB0aGlzLnNlbGVjdGlvbi51cGRhdGUoKHMpID0+ICghcy5sZW5ndGggPyBzIDogW10pKTtcblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgc2VsZWN0aW9uIG9mIGEgcm93LlxuICAgKi9cbiAgdG9nZ2xlU2VsZWN0aW9uID0gKHJvdzogVCkgPT5cbiAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGUoKHMpID0+IChzLmluY2x1ZGVzKHJvdykgPyBzLmZpbHRlcigocikgPT4gciAhPT0gcm93KSA6IHMuY29uY2F0KHJvdykpKTtcbn1cblxuZXhwb3J0IGNvbnN0IFdBVFRfVEFCTEUgPSBbV2F0dFRhYmxlQ29tcG9uZW50LCBXYXR0VGFibGVDZWxsRGlyZWN0aXZlLCBXYXR0VGFibGVUb29sYmFyRGlyZWN0aXZlXTtcbiIsIjwhLS1cbkBsaWNlbnNlXG5Db3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcblxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG55b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG5Zb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG5Vbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG5kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG5XSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cblNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuLS0+XG48dGFibGVcbiAgbWF0LXRhYmxlXG4gIG1hdFNvcnRcbiAgcm9sZT1cInRyZWVncmlkXCJcbiAgW25nQ2xhc3NdPVwieyAnd2F0dC10YWJsZS1oYXMtc2VsZWN0aW9uJzogZ2V0U2VsZWN0aW9uU3RhdGUoKSAhPT0gZmFsc2UgfVwiXG4gIFttYXRTb3J0QWN0aXZlXT1cInNvcnRCeSgpXCJcbiAgW21hdFNvcnREaXJlY3Rpb25dPVwic29ydERpcmVjdGlvbigpXCJcbiAgW21hdFNvcnREaXNhYmxlQ2xlYXJdPVwiIXNvcnRDbGVhcigpXCJcbiAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZSgpXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJkZXNjcmlwdGlvbigpXCJcbiAgKG1hdFNvcnRDaGFuZ2UpPVwic29ydENoYW5nZS5lbWl0KCRldmVudClcIlxuPlxuICBAaWYgKHNlbGVjdGFibGUoKSkge1xuICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjaGVja2JveENvbHVtblwiIFtzdGlja3ldPVwidHJ1ZVwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cIndhdHQtdGFibGUtY2hlY2tib3gtY2VsbFwiPlxuICAgICAgICA8d2F0dC1jaGVja2JveFxuICAgICAgICAgIFtuZ01vZGVsXT1cImdldFNlbGVjdGlvblN0YXRlKClcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdGlvbi5zZXQoZGF0YVNvdXJjZSgpLmZpbHRlcmVkRGF0YSkgOiBjbGVhclNlbGVjdGlvbigpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJ3YXR0LXRhYmxlLWNoZWNrYm94LWNlbGxcIj5cbiAgICAgICAgPHdhdHQtY2hlY2tib3hcbiAgICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3Rpb24oKS5pbmNsdWRlcyhyb3cpXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0b2dnbGVTZWxlY3Rpb24ocm93KVwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIC8+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICB9XG5cbiAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cImV4cGFuZGFibGVDb2x1bW5cIj5cbiAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XG4gICAgPHRkXG4gICAgICAjdGRcbiAgICAgIG1hdC1jZWxsXG4gICAgICAqbWF0Q2VsbERlZj1cImxldCByb3c7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgIFthdHRyLmRhdGEta2V5XT1cImdldFJvd0tleShpbmRleCwgcm93KVwiXG4gICAgICBbYXR0ci5kYXRhLXJvdy1pbmRleF09XCJpbmRleFwiXG4gICAgICAoY2xpY2spPVwib25Sb3dDbGljayhyb3cpXCJcbiAgICAgIFtjbGFzcy53YXR0LXRhYmxlLWNlbGwtLWV4cGFuZGVkXT1cImV4cGFuZGVkKCkuaW5jbHVkZXMocm93KVwiXG4gICAgPlxuICAgICAgPHdhdHQtaWNvbiBuYW1lPVwicmlnaHRcIiBzaXplPVwieHNcIiAvPlxuICAgIDwvdGQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zKCkgfCBrZXl2YWx1ZTsgdHJhY2sgY29sdW1uLmtleSkge1xuICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4ua2V5XCIgW3N0aWNreUVuZF09XCJjb2x1bW4udmFsdWUuc3RpY2t5RW5kPy4oKVwiPlxuICAgICAgPHRoXG4gICAgICAgIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAqbWF0SGVhZGVyQ2VsbERlZlxuICAgICAgICBbY2xhc3Mud2F0dC10YWJsZS1jZWxsLS1leHBhbmRhYmxlXT1cImNvbHVtbi52YWx1ZS5leHBhbmRhYmxlXCJcbiAgICAgICAgY2xhc3M9XCJ3YXR0LXRhYmxlLWFsaWduLXt7IGNvbHVtbi52YWx1ZS5hbGlnbiA/PyAnbGVmdCcgfX0ge3tcbiAgICAgICAgICBjb2x1bW4udmFsdWUuaGVhZGVyQ2VsbENsYXNzXG4gICAgICAgIH19XCJcbiAgICAgID5cbiAgICAgICAgQGlmIChjb2x1bW4udmFsdWUuaGVscGVyQWN0aW9uOyBhcyBhY3Rpb24pIHtcbiAgICAgICAgICA8d2F0dC1pY29uIG5hbWU9XCJoZWxwXCIgKGNsaWNrKT1cImFjdGlvbigpXCIgLz5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIndhdHQtdGFibGUtaGVhZGVyLWNlbGxcIlxuICAgICAgICAgIG1hdC1zb3J0LWhlYWRlclxuICAgICAgICAgIFthcnJvd1Bvc2l0aW9uXT1cImNvbHVtbi52YWx1ZS5hbGlnbiA9PT0gJ3JpZ2h0JyA/ICdiZWZvcmUnIDogJ2FmdGVyJ1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2x1bW4udmFsdWUuYWNjZXNzb3IgfHwgY29sdW1uLnZhbHVlLnNvcnQgPT09IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGdldENvbHVtbkhlYWRlcihjb2x1bW4pIH19XG4gICAgICAgICAgQGlmIChjb2x1bW4udmFsdWUudG9vbHRpcDsgYXMgdG9vbHRpcCkge1xuICAgICAgICAgICAgPHdhdHQtaWNvbiBbdGl0bGVdPVwidG9vbHRpcFwiIG5hbWU9XCJpbmZvXCIgc3RhdGU9XCJkZWZhdWx0XCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90aD5cblxuICAgICAgPHRkXG4gICAgICAgICN0ZFxuICAgICAgICBtYXQtY2VsbFxuICAgICAgICAqbWF0Q2VsbERlZj1cImxldCByb3c7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgW2F0dHIuZGF0YS1rZXldPVwiZ2V0Um93S2V5KGluZGV4LCByb3cpXCJcbiAgICAgICAgW2F0dHIuZGF0YS1yb3ctaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbY2xhc3Mud2F0dC10YWJsZS1jZWxsLS1leHBhbmRlZF09XCJleHBhbmRlZCgpLmluY2x1ZGVzKHJvdylcIlxuICAgICAgICBbY2xhc3Mud2F0dC10YWJsZS1jZWxsLS1leHBhbmRhYmxlXT1cImNvbHVtbi52YWx1ZS5leHBhbmRhYmxlXCJcbiAgICAgICAgY2xhc3M9XCJ3YXR0LXRhYmxlLWFsaWduLXt7IGNvbHVtbi52YWx1ZS5hbGlnbiA/PyAnbGVmdCcgfX0ge3sgY29sdW1uLnZhbHVlLmRhdGFDZWxsQ2xhc3MgfX1cIlxuICAgICAgICAoY2xpY2spPVwiIWNvbHVtbi52YWx1ZS5leHBhbmRhYmxlICYmIG9uUm93Q2xpY2socm93KVwiXG4gICAgICA+XG4gICAgICAgIEBpZiAoaXNFeHBhbmRhYmxlKCkpIHtcbiAgICAgICAgICBAZGVmZXIgKHdoZW4gIWNvbHVtbi52YWx1ZS5leHBhbmRhYmxlIHx8IGV4cGFuZGVkKCkuaW5jbHVkZXMocm93KSkge1xuICAgICAgICAgICAgQGlmIChnZXRDb2x1bW5UZW1wbGF0ZShjb2x1bW4udmFsdWUpOyBhcyB0ZW1wbGF0ZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2F0dC10YWJsZS1jZWxsLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3csIGluZGV4IH1cIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICB7eyBnZXRDb2x1bW5DZWxsKGNvbHVtbi52YWx1ZSwgcm93KSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgQGlmIChnZXRDb2x1bW5UZW1wbGF0ZShjb2x1bW4udmFsdWUpOyBhcyB0ZW1wbGF0ZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhdHQtdGFibGUtY2VsbC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdywgaW5kZXggfVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHt7IGdldENvbHVtbkNlbGwoY29sdW1uLnZhbHVlLCByb3cpIH19XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L3RkPlxuXG4gICAgICBAaWYgKGhhc0Zvb3RlcigpKSB7XG4gICAgICAgIDx0ZFxuICAgICAgICAgIG1hdC1mb290ZXItY2VsbFxuICAgICAgICAgICptYXRGb290ZXJDZWxsRGVmXG4gICAgICAgICAgY2xhc3M9XCJ7eyBjb2x1bW4udmFsdWUuZm9vdGVyPy5jbGFzcyB9fSB3YXR0LXRhYmxlLWFsaWduLXt7XG4gICAgICAgICAgICBjb2x1bW4udmFsdWUuYWxpZ24gPz8gJ2xlZnQnXG4gICAgICAgICAgfX0gXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGNvbHVtbi52YWx1ZS5mb290ZXI/LnZhbHVlPy4oKSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgfVxuICAgIDwvbmctY29udGFpbmVyPlxuICB9XG5cbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzcGFjZXJcIj5cbiAgICA8dGQgY2xhc3M9XCJ3YXR0LXRhYmxlLWZvb3Rlci1zcGFjZXJcIiBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+PC90ZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgQGlmICghaGlkZUNvbHVtbkhlYWRlcnMoKSkge1xuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwicmVuZGVyZWRDb2x1bW5zKClcIj48L3RyPlxuICB9XG4gIDx0clxuICAgIG1hdC1yb3dcbiAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogcmVuZGVyZWRDb2x1bW5zKClcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwicm93ID09PSBhY3RpdmVSb3coKVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3dhdHQtdGFibGUtaGlnaGxpZ2h0LXJvdyc6ICFkaXNhYmxlZCgpICYmICFzdXBwcmVzc1Jvd0hvdmVySGlnaGxpZ2h0KCksXG4gICAgICAnd2F0dC10YWJsZS1jbGlja2FibGUtcm93JzogIWRpc2FibGVkKCkgJiYgcm93Q2xpY2skLm9ic2VydmVkLFxuICAgICAgJ3dhdHQtdGFibGUtYWN0aXZlLXJvdyc6IGlzQWN0aXZlUm93KHJvdyksXG4gICAgICAnd2F0dC10YWJsZS1uby1lbmQtZGl2aWRlcic6IGhpZGVDb2x1bW5IZWFkZXJzKCksXG4gICAgfVwiXG4gID48L3RyPlxuXG4gIEBpZiAodG9vbGJhcigpKSB7XG4gICAgPHRyIG1hdC1mb290ZXItcm93ICptYXRGb290ZXJSb3dEZWY9XCJbJ3NwYWNlciddXCI+PC90cj5cbiAgfVxuXG4gIEBpZiAoaGFzRm9vdGVyKCkpIHtcbiAgICA8dHJcbiAgICAgIG1hdC1mb290ZXItcm93XG4gICAgICBbY2xhc3Mud2F0dC10YWJsZS1oaWRlLWZvb3Rlcl09XCJsb2FkaW5nKCkgfHwgZGF0YVNvdXJjZSgpLmZpbHRlcmVkRGF0YS5sZW5ndGggPT09IDBcIlxuICAgICAgKm1hdEZvb3RlclJvd0RlZj1cInJlbmRlcmVkQ29sdW1ucygpOyBzdGlja3k6IHN0aWNreUZvb3RlcigpXCJcbiAgICA+PC90cj5cbiAgfVxuXG4gIDxuZy1jb250YWluZXIgKm1hdE5vRGF0YVJvdz5cbiAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgQGZvciAoaSBvZiBbMSwgMiwgM107IHRyYWNrIGkpIHtcbiAgICAgICAgPHRyIGNsYXNzPVwibWF0LW1kYy1yb3dcIj5cbiAgICAgICAgICBAZm9yIChfIG9mIHJlbmRlcmVkQ29sdW1ucygpOyB0cmFjayBfOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LW1kYy1jZWxsXCIgW2NsYXNzLndhdHQtdGFibGUtbG9hZGluZy1jZWxsXT1cImkgPiAwIHx8ICFzZWxlY3RhYmxlKClcIj48L3RkPlxuICAgICAgICAgIH1cbiAgICAgICAgPC90cj5cbiAgICAgIH1cbiAgICB9XG4gIDwvbmctY29udGFpbmVyPlxuPC90YWJsZT5cblxuQGlmICh0b29sYmFyKCk7IGFzIHRvb2xiYXIpIHtcbiAgPGRpdiBjbGFzcz1cIndhdHQtdGFibGUtdG9vbGJhclwiIHJvbGU9XCJ0b29sYmFyXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgdG9vbGJhci50ZW1wbGF0ZVJlZjtcbiAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGZpbHRlclNlbGVjdGlvbkJ5KGRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGEpIH1cbiAgICAgIFwiXG4gICAgLz5cbiAgPC9kaXY+XG59XG4iXX0=
|
|
335
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS90YWJsZS93YXR0LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL3RhYmxlL3dhdHQtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQVksWUFBWSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFFTixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBdUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUF3QixtQkFBbUIsRUFBRSxNQUFN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OzsyRkFpQlAsa0JBQWtCO2tCQXBCOUIsU0FBUzs4QkFDQzt3QkFDUCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLHFCQUFxQjtxQkFDdEIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxZQUMzQixZQUFZLFFBR2hCO3dCQUNKLGtDQUFrQyxFQUFFLHVCQUF1Qjt3QkFDM0QsNENBQTRDLEVBQUUsb0JBQW9CO3FCQUNuRTtpNkVBNElpQyxzQkFBeUIseUZBQzFCLHlCQUE0QixtRkFDbEMsT0FBTywrRUFHMkMsSUFBSTtBQWlJbkYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7IEtleVZhbHVlLCBLZXlWYWx1ZVBpcGUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgdmlld0NoaWxkLFxuICB2aWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgU2lnbmFsLCBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG91dHB1dEZyb21PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTb3J0LCBNYXRTb3J0TW9kdWxlLCBTb3J0LCBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgV2F0dENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2NoZWNrYm94JztcbmltcG9ydCB7IHdhdHRGb3JtYXREYXRlIH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2NvcmUvZGF0ZSc7XG5pbXBvcnQgeyBXYXR0SWNvbkNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9pY29uJztcbmltcG9ydCB7IElXYXR0VGFibGVEYXRhU291cmNlLCBXYXR0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi93YXR0LXRhYmxlLWRhdGEtc291cmNlJztcbmltcG9ydCB7IGFuaW1hdGVFeHBhbmRhYmxlQ2VsbHMgfSBmcm9tICcuL3dhdHQtdGFibGUtZXhwYW5kLWFuaW1hdGlvbic7XG5cbi8qKiBDbGFzcyBuYW1lIGZvciBleHBhbmRhYmxlIGNlbGxzLiAqL1xuZXhwb3J0IGNvbnN0IEVYUEFOREFCTEVfQ0xBU1MgPSAnd2F0dC10YWJsZS1jZWxsLS1leHBhbmRhYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBXYXR0VGFibGVDb2x1bW48VD4ge1xuICAvKipcbiAgICogVGhlIGRhdGEgdGhhdCB0aGlzIGNvbHVtbiBzaG91bGQgYmUgYm91bmQgdG8sIGVpdGhlciBhcyBhIHByb3BlcnR5IG9mIGBUYFxuICAgKiBvciBkZXJpdmVkIGZyb20gZWFjaCByb3cgb2YgYFRgIHVzaW5nIGFuIGFjY2Vzc29yIGZ1bmN0aW9uLiAgVXNlIGBudWxsYFxuICAgKiBmb3IgY29sdW1ucyB0aGF0IHNob3VsZCBub3QgYmUgYXNzb2NpYXRlZCB3aXRoIGRhdGEsIGJ1dCBub3RlIHRoYXQgdGhpc1xuICAgKiB3aWxsIGRpc2FibGUgc29ydGluZyBhbmQgYXV0b21hdGljIGNlbGwgcG9wdWxhdGlvbi5cbiAgICovXG4gIGFjY2Vzc29yOiBrZXlvZiBUIHwgKChyb3c6IFQpID0+IHVua25vd24pIHwgbnVsbDtcblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgaGVhZGVyIHRleHQgdG8gYSBzdGF0aWMgZGlzcGxheSB2YWx1ZS4gVGhpcyB3aWxsIHByZXZlbnRcbiAgICogdGhlIGByZXNvbHZlSGVhZGVyYCBpbnB1dCBmdW5jdGlvbiBmcm9tIGJlaW5nIGNhbGxlZCBmb3IgdGhpcyBjb2x1bW4uXG4gICAqL1xuICBoZWFkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZvciBkZXRlcm1pbmluZyBjZWxsIGNvbnRlbnQgd2hlbiBub3QgdXNpbmcgdGVtcGxhdGUuIEJ5IGRlZmF1bHQsXG4gICAqIGNlbGwgY29udGVudCBpcyBmb3VuZCB1c2luZyB0aGUgYGFjY2Vzc29yYCAodW5sZXNzIGl0IGlzIGBudWxsYCkuXG4gICAqL1xuICBjZWxsPzogKHJvdzogVCkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzb3J0aW5nIGZvciB0aGlzIGNvbHVtbi4gRGVmYXVsdHMgdG8gYHRydWVgXG4gICAqIHVubGVzcyBgYWNjZXNzb3JgIGlzIGBudWxsYC5cbiAgICovXG4gIHNvcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNvbHVtbiBzaXplIHVzaW5nIGdyaWQgc2l6aW5nIHZhbHVlcy4gRGVmYXVsdHMgdG8gYFwiYXV0b1wiYC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogQWNjZXB0cyBhbGwgb2YgdGhlIENTUyBncmlkIHRyYWNrIHNpemUga2V5d29yZHMgKHN1Y2ggYXMgYG1pbi1jb250ZW50YCxcbiAgICogYG1heC1jb250ZW50YCwgYG1pbm1heCgpYCkgYXMgd2VsbCBhcyBmcmFjdGlvbmFsIChgZnJgKSwgcGVyY2VudGFnZSAoYCVgKVxuICAgKiBhbmQgbGVuZ3RoIChgcHhgLCBgZW1gLCBldGMpIHVuaXRzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZ3JpZC8jdHJhY2stc2l6ZXNcbiAgICovXG4gIHNpemU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhvcml6b250YWxseSBhbGlnbiB0aGUgY29udGVudHMgb2YgdGhlIGNvbHVtbi4gRGVmYXVsdHMgdG8gYFwibGVmdFwiYC5cbiAgICovXG4gIGFsaWduPzogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdjZW50ZXInO1xuXG4gIC8qKlxuICAgKiBIZWxwZXIgaWNvbiB3aWxsIGJlIHNob3duIGluIHRoZSBoZWFkZXIgY2VsbCwgd2l0aCBhbiBjbGljayBldmVudC5cbiAgICovXG4gIGhlbHBlckFjdGlvbj86ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENTUyBjbGFzcyB0byBhcHBseSB0byB0aGUgaGVhZGVyIGNlbGwgZWxlbWVudC5cbiAgICovXG4gIGhlYWRlckNlbGxDbGFzcz86IHN0cmluZztcblxuICAvKipcbiAgICogQ1NTIGNsYXNzIHRvIGFwcGx5IHRvIHRoZSBkYXRhIGNlbGwgZWxlbWVudC5cbiAgICovXG4gIGRhdGFDZWxsQ2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZvb3RlciBjb25maWd1cmF0aW9uIGZvciB0aGUgY29sdW1uLlxuICAgKi9cbiAgZm9vdGVyPzogV2F0dFRhYmxlQ29sdW1uRm9vdGVyO1xuXG4gIC8qKlxuICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIHRoZSBjb2x1bW4gcmVtYWlucyB2aXNpYmxlIHdoZW4gaG9yaXpvbnRhbGx5IHNjcm9sbGluZy5cbiAgICovXG4gIHN0aWNreUVuZD86IFNpZ25hbDxib29sZWFuPjtcblxuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIHRoZSBjZWxsIGlzIHJlcGxhY2VkIHdpdGggYW4gZXhwYW5kYWJsZSBhcnJvdyBhbmQgdGhlIGNvbnRlbnQgaXMgZGVmZXJyZWQuXG4gICAqIENsaWNraW5nIG9uIHRoZSBhcnJvdyByZXZlYWxzIHRoZSBjb250ZW50IGJlbG93IHRoZSBjdXJyZW50IHJvdy5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogSXQgaXMgcmVjb21tZW5kZWQgdG8gcHJvdmlkZSBhIGN1c3RvbSBgdHJhY2tCeWAgZnVuY3Rpb24gd2hlbiB1c2luZyBgZXhwYW5kYWJsZWAsXG4gICAqIG90aGVyd2lzZSBhbmltYXRpb25zIGNhbiBiZSBpbmFjY3VyYXRlIHdoZW4gZGF0YSBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgZXhwYW5kYWJsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRvb2x0aXAgdGV4dCB0byBzaG93IG9uIGhvdmVyIG9mIHRoZSBoZWFkZXIgY2VsbC5cbiAgICovXG4gIHRvb2x0aXA/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGZvb3RlciBjZWxsIG9mIGEgY29sdW1uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdHRUYWJsZUNvbHVtbkZvb3RlciB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgZm9vdGVyIGNlbGwuXG4gICAqL1xuICB2YWx1ZT86IFNpZ25hbDxzdHJpbmcgfCBudW1iZXI+O1xuXG4gIC8qKlxuICAgKiBDU1MgY2xhc3MgdG8gYXBwbHkgdG8gdGhlIGZvb3RlciBjZWxsLlxuICAgKi9cbiAgY2xhc3M/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVjb3JkIGZvciBkZWZpbmluZyBjb2x1bW5zIHdpdGgga2V5cyB1c2VkIGFzIGNvbHVtbiBpZGVudGlmaWVycy5cbiAqL1xuZXhwb3J0IHR5cGUgV2F0dFRhYmxlQ29sdW1uRGVmPFQ+ID0gUmVjb3JkPHN0cmluZywgV2F0dFRhYmxlQ29sdW1uPFQ+PjtcblxuLy8gVXNlZCBmb3Igc3Ryb25nbHkgdHlwaW5nIHRoZSBzdHJ1Y3R1cmFsIGRpcmVjdGl2ZVxuaW50ZXJmYWNlIFdhdHRUYWJsZUNlbGxDb250ZXh0PFQ+IHtcbiAgJGltcGxpY2l0OiBUO1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgV2F0dFRhYmxlVG9vbGJhckNvbnRleHQ8VD4ge1xuICAkaW1wbGljaXQ6IFQ7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3YXR0VGFibGVDZWxsXScsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRUYWJsZUNlbGxEaXJlY3RpdmU8VD4ge1xuICB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxXYXR0VGFibGVDZWxsQ29udGV4dDxUPj4pO1xuXG4gIC8qKlxuICAgKiBUaGUgV2F0dFRhYmxlQ29sdW1uIHRoaXMgdGVtcGxhdGUgYXBwbGllcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IGNvbHVtbiA9IGlucHV0LnJlcXVpcmVkPFdhdHRUYWJsZUNvbHVtbjxUPj4oeyBhbGlhczogJ3dhdHRUYWJsZUNlbGwnIH0pO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBoZWFkZXIgdGV4dCBmb3IgdGhlIGNvbHVtbi5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWRlciA9IGlucHV0PHN0cmluZz4odW5kZWZpbmVkLCB7IGFsaWFzOiAnd2F0dFRhYmxlQ2VsbEhlYWRlcicgfSk7XG5cbiAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQ8VD4oXG4gICAgX2RpcmVjdGl2ZTogV2F0dFRhYmxlQ2VsbERpcmVjdGl2ZTxUPixcbiAgICBjb250ZXh0OiB1bmtub3duXG4gICk6IGNvbnRleHQgaXMgV2F0dFRhYmxlQ2VsbENvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3YXR0VGFibGVUb29sYmFyXScsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRUYWJsZVRvb2xiYXJEaXJlY3RpdmU8VD4ge1xuICB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxXYXR0VGFibGVUb29sYmFyQ29udGV4dDxUW10+Pik7XG4gIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KFxuICAgIF9kaXJlY3RpdmU6IFdhdHRUYWJsZVRvb2xiYXJEaXJlY3RpdmU8VD4sXG4gICAgY29udGV4dDogdW5rbm93blxuICApOiBjb250ZXh0IGlzIFdhdHRUYWJsZVRvb2xiYXJDb250ZXh0PFRbXT4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8qKlxuICogVXNhZ2U6XG4gKiBgaW1wb3J0IHsgV0FUVF9UQUJMRSB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC90YWJsZSc7YFxuICovXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBLZXlWYWx1ZVBpcGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0U29ydE1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBXYXR0SWNvbkNvbXBvbmVudCxcbiAgICBXYXR0Q2hlY2tib3hDb21wb25lbnQsXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHNlbGVjdG9yOiAnd2F0dC10YWJsZScsXG4gIHN0eWxlVXJsczogWycuL3dhdHQtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3dhdHQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy53YXR0LXRhYmxlLXZhcmlhbnQtemVicmFdJzogJ3ZhcmlhbnQoKSA9PT0gXCJ6ZWJyYVwiJyxcbiAgICAnW3N0eWxlLi0td2F0dC10YWJsZS1ncmlkLXRlbXBsYXRlLWNvbHVtbnNdJzogJ3NpemluZygpLmpvaW4oXCIgXCIpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dFRhYmxlQ29tcG9uZW50PFQ+IHtcbiAgLyoqXG4gICAqIFRoZSB0YWJsZSdzIHNvdXJjZSBvZiBkYXRhLiBQcm9wZXJ0eSBzaG91bGQgbm90IGJlIGNoYW5nZWQgYWZ0ZXJcbiAgICogaW5pdGlhbGl6YXRpb24sIGluc3RlYWQgdXBkYXRlIHRoZSBkYXRhIG9uIHRoZSBpbnN0YW5jZSBpdHNlbGYuXG4gICAqL1xuICByZWFkb25seSBkYXRhU291cmNlID0gaW5wdXQucmVxdWlyZWQ8SVdhdHRUYWJsZURhdGFTb3VyY2U8VD4+KCk7XG5cbiAgLyoqXG4gICAqIENvbHVtbiBkZWZpbml0aW9uIHJlY29yZCB3aXRoIGtleXMgcmVwcmVzZW50aW5nIHRoZSBjb2x1bW4gaWRlbnRpZmllcnNcbiAgICogYW5kIHZhbHVlcyBiZWluZyB0aGUgY29sdW1uIGNvbmZpZ3VyYXRpb24uIFRoZSBvcmRlciBvZiB0aGUgY29sdW1uc1xuICAgKiBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBwcm9wZXJ0eSBvcmRlciwgYnV0IGNhbiBiZSBvdmVycnVsZWQgYnkgdGhlXG4gICAqIGBkaXNwbGF5ZWRDb2x1bW5zYCBpbnB1dC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbHVtbnMgPSBpbnB1dDxXYXR0VGFibGVDb2x1bW5EZWY8VD4+KHt9KTtcblxuICAvKipcbiAgICogVXNlZCBmb3IgaGlkaW5nIG9yIHJlb3JkZXJpbmcgY29sdW1ucyBkZWZpbmVkIGluIHRoZSBgY29sdW1uc2AgaW5wdXQuXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5ZWRDb2x1bW5zID0gaW5wdXQ8c3RyaW5nW10+KCk7XG5cbiAgLyoqXG4gICAqIFVzZWQgZm9yIGRpc2FibGluZyB0aGUgdGFibGUuIFRoaXMgd2lsbCBkaXNhYmxlIGFsbCB1c2VyIGludGVyYWN0aW9uXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogUHJvdmlkZSBhIGRlc2NyaXB0aW9uIG9mIHRoZSB0YWJsZSBmb3IgdmlzdWFsbHkgaW1wYWlyZWQgdXNlcnMuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbiA9IGlucHV0KCcnKTtcblxuICAvKipcbiAgICogSWYgc2V0IHRvIGB0cnVlYCwgdGhlIHRhYmxlIHdpbGwgc2hvdyBhIGxvYWRpbmcgaW5kaWNhdG9yXG4gICAqIHdoZW4gdGhlcmUgaXMgbm8gZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRpbmcgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIElmIHRydWUgdGhlIGZvb3RlciB3aWxsIGJlIHN0aWNreVxuICAgKi9cbiAgcmVhZG9ubHkgc3RpY2t5Rm9vdGVyID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjYWxsYmFjayBmb3IgZGV0ZXJtaW5pbmcgaGVhZGVyIHRleHQgZm9yIGNvbHVtbnMgdGhhdFxuICAgKiBkbyBub3QgaGF2ZSBhIHN0YXRpYyBoZWFkZXIgdGV4dCBzZXQgaW4gdGhlIGNvbHVtbiBkZWZpbml0aW9uLlxuICAgKiBVc2VmdWwgZm9yIHByb3ZpZGluZyB0cmFuc2xhdGlvbnMgb2YgY29sdW1uIGhlYWRlcnMuXG4gICAqL1xuICByZWFkb25seSByZXNvbHZlSGVhZGVyID0gaW5wdXQ8KGtleTogc3RyaW5nKSA9PiBzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXIgZm9yIGNvbHVtbiB0aGF0IHNob3VsZCBiZSBzb3J0ZWQgaW5pdGlhbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydEJ5ID0gaW5wdXQoJycpO1xuXG4gIC8qKlxuICAgKiBUaGUgc29ydCBkaXJlY3Rpb24gb2YgdGhlIGluaXRpYWxseSBzb3J0ZWQgY29sdW1uLlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydERpcmVjdGlvbiA9IGlucHV0PFNvcnREaXJlY3Rpb24+KCcnKTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhbGxvdyB0aGUgdXNlciB0byBjbGVhciB0aGUgc29ydC4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydENsZWFyID0gaW5wdXQodHJ1ZSk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGZ1bmN0aW9uIHRvIGRldGVybWluZSBDU1MgY2xhc3MoZXMpIGZvciBlYWNoIHJvdy5cbiAgICovXG4gIHJlYWRvbmx5IHJvd0NsYXNzID0gaW5wdXQ8KHJvdzogVCkgPT4gc3RyaW5nIHwgc3RyaW5nW10+KCk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHRhYmxlIHNob3VsZCBpbmNsdWRlIGEgY2hlY2tib3ggY29sdW1uIGZvciByb3cgc2VsZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZWN0YWJsZSA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgc2VsZWN0ZWQgcm93cy4gT25seSBhcHBsaWNhYmxlIHdoZW4gc2VsZWN0YWJsZSBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzZWxlY3Rpb24gPSBtb2RlbDxUW10+KFtdKTtcblxuICAvKipcbiAgICogU2V0IHRvIHRydWUgdG8gZGlzYWJsZSByb3cgaG92ZXIgaGlnaGxpZ2h0LlxuICAgKi9cbiAgcmVhZG9ubHkgc3VwcHJlc3NSb3dIb3ZlckhpZ2hsaWdodCA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogSGlnaGxpZ2h0cyB0aGUgY3VycmVudGx5IGFjdGl2ZSByb3cuXG4gICAqL1xuICByZWFkb25seSBhY3RpdmVSb3cgPSBpbnB1dDxUPigpO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gY29tcGFyYXRvciBmdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgdHdvIHJvd3MgYXJlIGVxdWFsLlxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBUaGUgZGVmYXVsdCBiZWhhdmlvciBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFjdGl2ZSByb3cgaXMgdG8gY29tcGFyZVxuICAgKiB0aGUgdHdvIHJvdyBvYmplY3RzIHVzaW5nIHN0cmljdCBlcXVhbGl0eSBjaGVjay4gVGhpcyBpcyBzdWZmaWNpZW50XG4gICAqIGFzIGxvbmcgYXMgdGhlIGluc3RhbmNlcyByZW1haW4gdGhlIHNhbWUsIHdoaWNoIG1heSBub3QgYmUgdGhlIGNhc2VcbiAgICogaWYgcm93IGRhdGEgaXMgcmVjcmVhdGVkIG9yIHJlYnVpbHQgZnJvbSBzZXJpYWxpemF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aXZlUm93Q29tcGFyYXRvciA9IGlucHV0PChjdXJyZW50Um93OiBULCBhY3RpdmVSb3c6IFQpID0+IGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIElmIHNldCB0byBgdHJ1ZWAsIHRoZSBjb2x1bW4gaGVhZGVycyB3aWxsIG5vdCBiZSBzaG93bi4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgaGlkZUNvbHVtbkhlYWRlcnMgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIENob29zZSBmcm9tIGEgcHJlZGVmaW5lZCBzZXQgb2YgZGlzcGxheSB2YXJpYW50cy5cbiAgICovXG4gIHJlYWRvbmx5IHZhcmlhbnQgPSBpbnB1dDwnemVicmEnPigpO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiByb3dzIHRoYXQgYXJlIGN1cnJlbnRseSBleHBhbmRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGV4cGFuZGVkID0gbW9kZWw8VFtdPihbXSk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGZ1bmN0aW9uIGZvciB1bmlxdWVseSBpZGVudGlmeWluZyByb3dzLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhY2tCeSA9IGlucHV0PFRyYWNrQnlGdW5jdGlvbjxUPiB8IGtleW9mIFQ+KCk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICogVGhlIGBvYnNlcnZlZGAgYm9vbGVhbiBmcm9tIHRoZSBgU3ViamVjdGAgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgYSByb3cgaXNcbiAgICogY2xpY2thYmxlIG9yIG5vdC4gVGhpcyBpcyBhdmFpbGFibGUgb24gYEV2ZW50RW1pdHRlcmAsIGJ1dCBub3Qgb24gYG91dHB1dGAsXG4gICAqIHdoaWNoIGlzIHdoeSB0aGlzIHdvcmthcm91bmQgaXMgdXNlZC5cbiAgICovXG4gIHByb3RlY3RlZCByb3dDbGljayQgPSBuZXcgU3ViamVjdDxUPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciBhIHJvdyBpcyBjbGlja2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgcm93Q2xpY2sgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLnJvd0NsaWNrJCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBjaGFuZ2VzIHRoZSBhY3RpdmUgc29ydCBvciBzb3J0IGRpcmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHNvcnRDaGFuZ2UgPSBvdXRwdXQ8U29ydD4oKTtcblxuICAvLyBRdWVyaWVzXG4gIHByb3RlY3RlZCBjZWxscyA9IGNvbnRlbnRDaGlsZHJlbihXYXR0VGFibGVDZWxsRGlyZWN0aXZlPFQ+KTtcbiAgcHJvdGVjdGVkIHRvb2xiYXIgPSBjb250ZW50Q2hpbGQoV2F0dFRhYmxlVG9vbGJhckRpcmVjdGl2ZTxUPik7XG4gIHByb3RlY3RlZCBzb3J0ID0gdmlld0NoaWxkKE1hdFNvcnQpO1xuXG4gIC8vIEVuYWJsZXMgYW5pbWF0aW9uIGZvciBleHBhbmRpbmcvY29sbGFwc2luZyBjZWxsc1xuICBwcm90ZWN0ZWQgdGFibGVDZWxsRWxlbWVudHMgPSB2aWV3Q2hpbGRyZW48RWxlbWVudFJlZjxIVE1MVGFibGVDZWxsRWxlbWVudD4+KCd0ZCcpO1xuICBwcm90ZWN0ZWQgYW5pbWF0aW9uRWZmZWN0ID0gYW5pbWF0ZUV4cGFuZGFibGVDZWxscyh0aGlzLnRhYmxlQ2VsbEVsZW1lbnRzLCB0aGlzLmV4cGFuZGVkKTtcblxuICAvLyBTZWxlY3RhYmxlXG4gIHByb3RlY3RlZCBmaWx0ZXJTZWxlY3Rpb25CeSA9IChyb3dzOiBUW10pID0+IHJvd3MuZmlsdGVyKChyb3cpID0+IHRoaXMuc2VsZWN0aW9uKCkuaW5jbHVkZXMocm93KSk7XG4gIHByb3RlY3RlZCBnZXRTZWxlY3Rpb25TdGF0ZSA9ICgpID0+IHtcbiAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSB0aGlzLmRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGE7XG4gICAgY29uc3QgZmlsdGVyZWRTZWxlY3Rpb24gPSB0aGlzLmZpbHRlclNlbGVjdGlvbkJ5KGZpbHRlcmVkRGF0YSk7XG4gICAgaWYgKCFmaWx0ZXJlZFNlbGVjdGlvbi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gZmlsdGVyZWRTZWxlY3Rpb24ubGVuZ3RoID09PSB0aGlzLmRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGEubGVuZ3RoID8gdHJ1ZSA6IG51bGw7XG4gIH07XG5cbiAgLy8gVW5pcXVlIG5hbWVzIGZvciBzcGVjaWFsIGNvbHVtbnNcbiAgcHJvdGVjdGVkIGNoZWNrYm94Q29sdW1uID0gJ19fY2hlY2tib3hDb2x1bW5fXyc7XG4gIHByb3RlY3RlZCBleHBhbmRhYmxlQ29sdW1uID0gJ19fZXhwYW5kYWJsZUNvbHVtbl9fJztcblxuICBwcm90ZWN0ZWQgaGFzRm9vdGVyID0gY29tcHV0ZWQoKCkgPT4gT2JqZWN0LnZhbHVlcyh0aGlzLmNvbHVtbnMoKSkuc29tZSgoYykgPT4gYy5mb290ZXIpKTtcbiAgcHJvdGVjdGVkIGlzRXhwYW5kYWJsZSA9IGNvbXB1dGVkKCgpID0+IE9iamVjdC52YWx1ZXModGhpcy5jb2x1bW5zKCkpLnNvbWUoKGMpID0+IGMuZXhwYW5kYWJsZSkpO1xuICBwcm90ZWN0ZWQgcmVuZGVyZWRDb2x1bW5zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmRpc3BsYXllZENvbHVtbnMoKSA/PyBPYmplY3Qua2V5cyh0aGlzLmNvbHVtbnMoKSk7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLih0aGlzLnNlbGVjdGFibGUoKSA/IFt0aGlzLmNoZWNrYm94Q29sdW1uXSA6IFtdKSxcbiAgICAgIC4uLmNvbHVtbnMuZmlsdGVyKChrZXkpID0+ICF0aGlzLmNvbHVtbnMoKVtrZXldLmV4cGFuZGFibGUpLFxuICAgICAgLi4uKHRoaXMuaXNFeHBhbmRhYmxlKCkgPyBbdGhpcy5leHBhbmRhYmxlQ29sdW1uXSA6IFtdKSxcbiAgICAgIC4uLmNvbHVtbnMuZmlsdGVyKChrZXkpID0+IHRoaXMuY29sdW1ucygpW2tleV0uZXhwYW5kYWJsZSksXG4gICAgXTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHNpemluZyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5jb2x1bW5zKCk7XG4gICAgcmV0dXJuIHRoaXMucmVuZGVyZWRDb2x1bW5zKClcbiAgICAgIC5maWx0ZXIoKGtleSkgPT4gIWNvbHVtbnNba2V5XT8uZXhwYW5kYWJsZSlcbiAgICAgIC5tYXAoKGtleSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgIGNhc2UgdGhpcy5jaGVja2JveENvbHVtbjpcbiAgICAgICAgICAgIHJldHVybiAndmFyKC0td2F0dC1zcGFjZS14bCknO1xuICAgICAgICAgIGNhc2UgdGhpcy5leHBhbmRhYmxlQ29sdW1uOlxuICAgICAgICAgICAgcmV0dXJuICdtaW4tY29udGVudCc7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW5zW2tleV0/LnNpemUgPz8gJ2F1dG8nO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfSk7XG5cbiAgLyoqIFRyeSB0byBnZXQgY2VsbCBkYXRhIGZvciBhIHNwZWNpZmljIGBjb2x1bW5gIGFuZCBgcm93YC4gKi9cbiAgcHJpdmF0ZSBnZXRDZWxsRGF0YSA9IChjb2x1bW46IFdhdHRUYWJsZUNvbHVtbjxUPiwgcm93OiBUKSA9PiB7XG4gICAgaWYgKGNvbHVtbi5jZWxsKSByZXR1cm4gY29sdW1uLmNlbGwocm93KTtcbiAgICByZXR1cm4gIWNvbHVtbi5hY2Nlc3NvclxuICAgICAgPyAnJ1xuICAgICAgOiB0eXBlb2YgY29sdW1uLmFjY2Vzc29yID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gY29sdW1uLmFjY2Vzc29yKHJvdylcbiAgICAgICAgOiByb3dbY29sdW1uLmFjY2Vzc29yXTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0Q29sdW1uVGVtcGxhdGUgPSAoY29sdW1uOiBXYXR0VGFibGVDb2x1bW48VD4pID0+XG4gICAgdGhpcy5jZWxscygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uY29sdW1uKCkgPT09IGNvbHVtbik/LnRlbXBsYXRlUmVmO1xuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5IZWFkZXIgPSAoY29sdW1uOiBLZXlWYWx1ZTxzdHJpbmcsIFdhdHRUYWJsZUNvbHVtbjxUPj4pID0+IHtcbiAgICBpZiAodHlwZW9mIGNvbHVtbi52YWx1ZS5oZWFkZXIgPT09ICdzdHJpbmcnKSByZXR1cm4gY29sdW1uLnZhbHVlLmhlYWRlcjtcbiAgICBjb25zdCBjZWxsID0gdGhpcy5jZWxscygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uY29sdW1uKCkgPT09IGNvbHVtbi52YWx1ZSk7XG4gICAgcmV0dXJuIGNlbGw/LmhlYWRlcigpID8/IHRoaXMucmVzb2x2ZUhlYWRlcigpPy4oY29sdW1uLmtleSkgPz8gY29sdW1uLmtleTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0Q29sdW1uQ2VsbCA9IChjb2x1bW46IFdhdHRUYWJsZUNvbHVtbjxUPiwgcm93OiBUKSA9PiB7XG4gICAgY29uc3QgY2VsbCA9IHRoaXMuZ2V0Q2VsbERhdGEoY29sdW1uLCByb3cpO1xuICAgIGlmIChjZWxsID09PSB1bmRlZmluZWQgfHwgY2VsbCA9PT0gbnVsbCkgcmV0dXJuICfigJQnO1xuICAgIGlmIChjZWxsIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIHdhdHRGb3JtYXREYXRlKGNlbGwpO1xuICAgIHJldHVybiBjZWxsO1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRSb3dLZXkgPSAoaW5kZXg6IG51bWJlciwgcm93OiBUKSA9PiB7XG4gICAgY29uc3QgdHJhY2tCeSA9IHRoaXMudHJhY2tCeSgpO1xuICAgIGlmICh0eXBlb2YgdHJhY2tCeSA9PT0gJ3N0cmluZycpIHJldHVybiByb3dbdHJhY2tCeV07XG4gICAgaWYgKHR5cGVvZiB0cmFja0J5ID09PSAnZnVuY3Rpb24nKSByZXR1cm4gdHJhY2tCeShpbmRleCwgcm93KTtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlKCkuZGF0YS5pbmRleE9mKHJvdyk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGlzQWN0aXZlUm93ID0gKHJvdzogVCkgPT4ge1xuICAgIGNvbnN0IGFjdGl2ZVJvdyA9IHRoaXMuYWN0aXZlUm93KCk7XG4gICAgY29uc3QgYWN0aXZlUm93Q29tcGFyYXRvciA9IHRoaXMuYWN0aXZlUm93Q29tcGFyYXRvcigpO1xuICAgIGlmICghYWN0aXZlUm93KSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGFjdGl2ZVJvd0NvbXBhcmF0b3IgPyBhY3RpdmVSb3dDb21wYXJhdG9yKHJvdywgYWN0aXZlUm93KSA6IHJvdyA9PT0gYWN0aXZlUm93O1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRSb3dDbGFzcyA9IChyb3c6IFQpOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IHJvd0NsYXNzID0gdGhpcy5yb3dDbGFzcygpO1xuICAgIGlmICghcm93Q2xhc3MpIHJldHVybiAnJztcbiAgICBjb25zdCByZXN1bHQgPSByb3dDbGFzcyhyb3cpO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHJlc3VsdCkgPyByZXN1bHQuam9pbignICcpIDogcmVzdWx0O1xuICB9O1xuXG4gIHByb3RlY3RlZCBvblJvd0NsaWNrID0gKHJvdzogVCkgPT4ge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkgfHwgd2luZG93LmdldFNlbGVjdGlvbigpPy50b1N0cmluZygpICE9PSAnJykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmlzRXhwYW5kYWJsZSgpKSB7XG4gICAgICB0aGlzLmV4cGFuZGVkLnVwZGF0ZSgocm93cykgPT5cbiAgICAgICAgcm93cy5pbmNsdWRlcyhyb3cpID8gcm93cy5maWx0ZXIoKHIpID0+IHIgIT0gcm93KSA6IFsuLi5yb3dzLCByb3ddXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucm93Q2xpY2skLm5leHQocm93KTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSgpO1xuICAgICAgZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0KCk7XG4gICAgICBpZiAoIShkYXRhU291cmNlIGluc3RhbmNlb2YgV2F0dFRhYmxlRGF0YVNvdXJjZSkpIHJldHVybjtcbiAgICAgIGRhdGFTb3VyY2Uuc29ydGluZ0RhdGFBY2Nlc3NvciA9IChyb3c6IFQsIHNvcnRIZWFkZXJJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuY29sdW1ucygpW3NvcnRIZWFkZXJJZF07XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRDZWxsRGF0YShjb2x1bW4sIHJvdyk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKTsgLy8gY2FzZSBpbnNlbnNpdGl2ZSBzb3J0aW5nXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHJldHVybiB2YWx1ZS5nZXRUaW1lKCk7XG4gICAgICAgIHJldHVybiB2YWx1ZSBhcyBudW1iZXI7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgc2VsZWN0aW9uLCBlbWl0dGluZyBgc2VsZWN0aW9uQ2hhbmdlYCBpZiBgc2VsZWN0aW9uYCB3YXMgbm90IGVtcHR5LlxuICAgKi9cbiAgY2xlYXJTZWxlY3Rpb24gPSAoKSA9PiB0aGlzLnNlbGVjdGlvbi51cGRhdGUoKHMpID0+ICghcy5sZW5ndGggPyBzIDogW10pKTtcblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgc2VsZWN0aW9uIG9mIGEgcm93LlxuICAgKi9cbiAgdG9nZ2xlU2VsZWN0aW9uID0gKHJvdzogVCkgPT5cbiAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGUoKHMpID0+IChzLmluY2x1ZGVzKHJvdykgPyBzLmZpbHRlcigocikgPT4gciAhPT0gcm93KSA6IHMuY29uY2F0KHJvdykpKTtcbn1cblxuZXhwb3J0IGNvbnN0IFdBVFRfVEFCTEUgPSBbV2F0dFRhYmxlQ29tcG9uZW50LCBXYXR0VGFibGVDZWxsRGlyZWN0aXZlLCBXYXR0VGFibGVUb29sYmFyRGlyZWN0aXZlXTtcbiIsIjwhLS1cbkBsaWNlbnNlXG5Db3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcblxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG55b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG5Zb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG5Vbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG5kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG5XSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cblNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuLS0+XG48dGFibGVcbiAgbWF0LXRhYmxlXG4gIG1hdFNvcnRcbiAgcm9sZT1cInRyZWVncmlkXCJcbiAgW25nQ2xhc3NdPVwieyAnd2F0dC10YWJsZS1oYXMtc2VsZWN0aW9uJzogZ2V0U2VsZWN0aW9uU3RhdGUoKSAhPT0gZmFsc2UgfVwiXG4gIFttYXRTb3J0QWN0aXZlXT1cInNvcnRCeSgpXCJcbiAgW21hdFNvcnREaXJlY3Rpb25dPVwic29ydERpcmVjdGlvbigpXCJcbiAgW21hdFNvcnREaXNhYmxlQ2xlYXJdPVwiIXNvcnRDbGVhcigpXCJcbiAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZSgpXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJkZXNjcmlwdGlvbigpXCJcbiAgKG1hdFNvcnRDaGFuZ2UpPVwic29ydENoYW5nZS5lbWl0KCRldmVudClcIlxuPlxuICBAaWYgKHNlbGVjdGFibGUoKSkge1xuICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjaGVja2JveENvbHVtblwiIFtzdGlja3ldPVwidHJ1ZVwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cIndhdHQtdGFibGUtY2hlY2tib3gtY2VsbFwiPlxuICAgICAgICA8d2F0dC1jaGVja2JveFxuICAgICAgICAgIFtuZ01vZGVsXT1cImdldFNlbGVjdGlvblN0YXRlKClcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdGlvbi5zZXQoZGF0YVNvdXJjZSgpLmZpbHRlcmVkRGF0YSkgOiBjbGVhclNlbGVjdGlvbigpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJ3YXR0LXRhYmxlLWNoZWNrYm94LWNlbGxcIj5cbiAgICAgICAgPHdhdHQtY2hlY2tib3hcbiAgICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3Rpb24oKS5pbmNsdWRlcyhyb3cpXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0b2dnbGVTZWxlY3Rpb24ocm93KVwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIC8+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICB9XG5cbiAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cImV4cGFuZGFibGVDb2x1bW5cIj5cbiAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XG4gICAgPHRkXG4gICAgICAjdGRcbiAgICAgIG1hdC1jZWxsXG4gICAgICAqbWF0Q2VsbERlZj1cImxldCByb3c7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgIFthdHRyLmRhdGEta2V5XT1cImdldFJvd0tleShpbmRleCwgcm93KVwiXG4gICAgICBbYXR0ci5kYXRhLXJvdy1pbmRleF09XCJpbmRleFwiXG4gICAgICAoY2xpY2spPVwib25Sb3dDbGljayhyb3cpXCJcbiAgICAgIFtjbGFzcy53YXR0LXRhYmxlLWNlbGwtLWV4cGFuZGVkXT1cImV4cGFuZGVkKCkuaW5jbHVkZXMocm93KVwiXG4gICAgPlxuICAgICAgPHdhdHQtaWNvbiBuYW1lPVwicmlnaHRcIiBzaXplPVwieHNcIiAvPlxuICAgIDwvdGQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zKCkgfCBrZXl2YWx1ZTsgdHJhY2sgY29sdW1uLmtleSkge1xuICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4ua2V5XCIgW3N0aWNreUVuZF09XCJjb2x1bW4udmFsdWUuc3RpY2t5RW5kPy4oKVwiPlxuICAgICAgPHRoXG4gICAgICAgIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAqbWF0SGVhZGVyQ2VsbERlZlxuICAgICAgICBbY2xhc3Mud2F0dC10YWJsZS1jZWxsLS1leHBhbmRhYmxlXT1cImNvbHVtbi52YWx1ZS5leHBhbmRhYmxlXCJcbiAgICAgICAgY2xhc3M9XCJ3YXR0LXRhYmxlLWFsaWduLXt7IGNvbHVtbi52YWx1ZS5hbGlnbiA/PyAnbGVmdCcgfX0ge3tcbiAgICAgICAgICBjb2x1bW4udmFsdWUuaGVhZGVyQ2VsbENsYXNzXG4gICAgICAgIH19XCJcbiAgICAgID5cbiAgICAgICAgQGlmIChjb2x1bW4udmFsdWUuaGVscGVyQWN0aW9uOyBhcyBhY3Rpb24pIHtcbiAgICAgICAgICA8d2F0dC1pY29uIG5hbWU9XCJoZWxwXCIgKGNsaWNrKT1cImFjdGlvbigpXCIgLz5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIndhdHQtdGFibGUtaGVhZGVyLWNlbGxcIlxuICAgICAgICAgIG1hdC1zb3J0LWhlYWRlclxuICAgICAgICAgIFthcnJvd1Bvc2l0aW9uXT1cImNvbHVtbi52YWx1ZS5hbGlnbiA9PT0gJ3JpZ2h0JyA/ICdiZWZvcmUnIDogJ2FmdGVyJ1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2x1bW4udmFsdWUuYWNjZXNzb3IgfHwgY29sdW1uLnZhbHVlLnNvcnQgPT09IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGdldENvbHVtbkhlYWRlcihjb2x1bW4pIH19XG4gICAgICAgICAgQGlmIChjb2x1bW4udmFsdWUudG9vbHRpcDsgYXMgdG9vbHRpcCkge1xuICAgICAgICAgICAgPHdhdHQtaWNvbiBbdGl0bGVdPVwidG9vbHRpcFwiIG5hbWU9XCJpbmZvXCIgc3RhdGU9XCJkZWZhdWx0XCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90aD5cblxuICAgICAgPHRkXG4gICAgICAgICN0ZFxuICAgICAgICBtYXQtY2VsbFxuICAgICAgICAqbWF0Q2VsbERlZj1cImxldCByb3c7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgW2F0dHIuZGF0YS1rZXldPVwiZ2V0Um93S2V5KGluZGV4LCByb3cpXCJcbiAgICAgICAgW2F0dHIuZGF0YS1yb3ctaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbY2xhc3Mud2F0dC10YWJsZS1jZWxsLS1leHBhbmRlZF09XCJleHBhbmRlZCgpLmluY2x1ZGVzKHJvdylcIlxuICAgICAgICBbY2xhc3Mud2F0dC10YWJsZS1jZWxsLS1leHBhbmRhYmxlXT1cImNvbHVtbi52YWx1ZS5leHBhbmRhYmxlXCJcbiAgICAgICAgY2xhc3M9XCJ3YXR0LXRhYmxlLWFsaWduLXt7IGNvbHVtbi52YWx1ZS5hbGlnbiA/PyAnbGVmdCcgfX0ge3sgY29sdW1uLnZhbHVlLmRhdGFDZWxsQ2xhc3MgfX1cIlxuICAgICAgICAoY2xpY2spPVwiIWNvbHVtbi52YWx1ZS5leHBhbmRhYmxlICYmIG9uUm93Q2xpY2socm93KVwiXG4gICAgICA+XG4gICAgICAgIEBpZiAoaXNFeHBhbmRhYmxlKCkpIHtcbiAgICAgICAgICBAZGVmZXIgKHdoZW4gIWNvbHVtbi52YWx1ZS5leHBhbmRhYmxlIHx8IGV4cGFuZGVkKCkuaW5jbHVkZXMocm93KSkge1xuICAgICAgICAgICAgQGlmIChnZXRDb2x1bW5UZW1wbGF0ZShjb2x1bW4udmFsdWUpOyBhcyB0ZW1wbGF0ZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2F0dC10YWJsZS1jZWxsLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3csIGluZGV4IH1cIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICB7eyBnZXRDb2x1bW5DZWxsKGNvbHVtbi52YWx1ZSwgcm93KSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgQGlmIChnZXRDb2x1bW5UZW1wbGF0ZShjb2x1bW4udmFsdWUpOyBhcyB0ZW1wbGF0ZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhdHQtdGFibGUtY2VsbC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdywgaW5kZXggfVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHt7IGdldENvbHVtbkNlbGwoY29sdW1uLnZhbHVlLCByb3cpIH19XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L3RkPlxuXG4gICAgICBAaWYgKGhhc0Zvb3RlcigpKSB7XG4gICAgICAgIDx0ZFxuICAgICAgICAgIG1hdC1mb290ZXItY2VsbFxuICAgICAgICAgICptYXRGb290ZXJDZWxsRGVmXG4gICAgICAgICAgY2xhc3M9XCJ7eyBjb2x1bW4udmFsdWUuZm9vdGVyPy5jbGFzcyB9fSB3YXR0LXRhYmxlLWFsaWduLXt7XG4gICAgICAgICAgICBjb2x1bW4udmFsdWUuYWxpZ24gPz8gJ2xlZnQnXG4gICAgICAgICAgfX0gXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGNvbHVtbi52YWx1ZS5mb290ZXI/LnZhbHVlPy4oKSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgfVxuICAgIDwvbmctY29udGFpbmVyPlxuICB9XG5cbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzcGFjZXJcIj5cbiAgICA8dGQgY2xhc3M9XCJ3YXR0LXRhYmxlLWZvb3Rlci1zcGFjZXJcIiBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+PC90ZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgQGlmICghaGlkZUNvbHVtbkhlYWRlcnMoKSkge1xuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwicmVuZGVyZWRDb2x1bW5zKClcIj48L3RyPlxuICB9XG4gIDx0clxuICAgIG1hdC1yb3dcbiAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogcmVuZGVyZWRDb2x1bW5zKClcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwicm93ID09PSBhY3RpdmVSb3coKVwiXG4gICAgW2NsYXNzXT1cImdldFJvd0NsYXNzKHJvdylcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICd3YXR0LXRhYmxlLWhpZ2hsaWdodC1yb3cnOiAhZGlzYWJsZWQoKSAmJiAhc3VwcHJlc3NSb3dIb3ZlckhpZ2hsaWdodCgpLFxuICAgICAgJ3dhdHQtdGFibGUtY2xpY2thYmxlLXJvdyc6ICFkaXNhYmxlZCgpICYmIHJvd0NsaWNrJC5vYnNlcnZlZCxcbiAgICAgICd3YXR0LXRhYmxlLWFjdGl2ZS1yb3cnOiBpc0FjdGl2ZVJvdyhyb3cpLFxuICAgICAgJ3dhdHQtdGFibGUtbm8tZW5kLWRpdmlkZXInOiBoaWRlQ29sdW1uSGVhZGVycygpLFxuICAgIH1cIlxuICA+PC90cj5cblxuICBAaWYgKHRvb2xiYXIoKSkge1xuICAgIDx0ciBtYXQtZm9vdGVyLXJvdyAqbWF0Rm9vdGVyUm93RGVmPVwiWydzcGFjZXInXVwiPjwvdHI+XG4gIH1cblxuICBAaWYgKGhhc0Zvb3RlcigpKSB7XG4gICAgPHRyXG4gICAgICBtYXQtZm9vdGVyLXJvd1xuICAgICAgW2NsYXNzLndhdHQtdGFibGUtaGlkZS1mb290ZXJdPVwibG9hZGluZygpIHx8IGRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGEubGVuZ3RoID09PSAwXCJcbiAgICAgICptYXRGb290ZXJSb3dEZWY9XCJyZW5kZXJlZENvbHVtbnMoKTsgc3RpY2t5OiBzdGlja3lGb290ZXIoKVwiXG4gICAgPjwvdHI+XG4gIH1cblxuICA8bmctY29udGFpbmVyICptYXROb0RhdGFSb3c+XG4gICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgIEBmb3IgKGkgb2YgWzEsIDIsIDNdOyB0cmFjayBpKSB7XG4gICAgICAgIDx0ciBjbGFzcz1cIm1hdC1tZGMtcm93XCI+XG4gICAgICAgICAgQGZvciAoXyBvZiByZW5kZXJlZENvbHVtbnMoKTsgdHJhY2sgXzsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiIFtjbGFzcy53YXR0LXRhYmxlLWxvYWRpbmctY2VsbF09XCJpID4gMCB8fCAhc2VsZWN0YWJsZSgpXCI+PC90ZD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdHI+XG4gICAgICB9XG4gICAgfVxuICA8L25nLWNvbnRhaW5lcj5cbjwvdGFibGU+XG5cbkBpZiAodG9vbGJhcigpOyBhcyB0b29sYmFyKSB7XG4gIDxkaXYgY2xhc3M9XCJ3YXR0LXRhYmxlLXRvb2xiYXJcIiByb2xlPVwidG9vbGJhclwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIHRvb2xiYXIudGVtcGxhdGVSZWY7XG4gICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBmaWx0ZXJTZWxlY3Rpb25CeShkYXRhU291cmNlKCkuZmlsdGVyZWREYXRhKSB9XG4gICAgICBcIlxuICAgIC8+XG4gIDwvZGl2PlxufVxuIl19
|
|
@@ -72,7 +72,7 @@ export declare class WattModalComponent {
|
|
|
72
72
|
*/
|
|
73
73
|
onResize(event: ResizeObserverEntry): void;
|
|
74
74
|
static ɵfac: i0.ɵɵFactoryDeclaration<WattModalComponent, never>;
|
|
75
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<WattModalComponent, "watt-modal", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingMessage": { "alias": "loadingMessage"; "required": false; "isSignal": true; }; "disableClose": { "alias": "disableClose"; "required": false; "isSignal": true; }; "hideCloseButton": { "alias": "hideCloseButton"; "required": false; "isSignal": true; }; "disableEscAndBackdropClose": { "alias": "disableEscAndBackdropClose"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "restoreFocus": { "alias": "restoreFocus"; "required": false; "isSignal": true; }; "titleIcon": { "alias": "titleIcon"; "required": false; "isSignal": true; }; "autoOpen": { "alias": "autoOpen"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["
|
|
75
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WattModalComponent, "watt-modal", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingMessage": { "alias": "loadingMessage"; "required": false; "isSignal": true; }; "disableClose": { "alias": "disableClose"; "required": false; "isSignal": true; }; "hideCloseButton": { "alias": "hideCloseButton"; "required": false; "isSignal": true; }; "disableEscAndBackdropClose": { "alias": "disableEscAndBackdropClose"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "restoreFocus": { "alias": "restoreFocus"; "required": false; "isSignal": true; }; "titleIcon": { "alias": "titleIcon"; "required": false; "isSignal": true; }; "autoOpen": { "alias": "autoOpen"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["h2", "*", "watt-modal-actions"], true, never>;
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
78
|
* Component for projecting buttons (actions) to the bottom of the modal.
|
package/package.json
CHANGED
|
@@ -195,6 +195,10 @@ export declare class WattTableComponent<T> {
|
|
|
195
195
|
* Whether to allow the user to clear the sort. Defaults to `true`.
|
|
196
196
|
*/
|
|
197
197
|
readonly sortClear: import("@angular/core").InputSignal<boolean>;
|
|
198
|
+
/**
|
|
199
|
+
* Optional function to determine CSS class(es) for each row.
|
|
200
|
+
*/
|
|
201
|
+
readonly rowClass: import("@angular/core").InputSignal<((row: T) => string | string[]) | undefined>;
|
|
198
202
|
/**
|
|
199
203
|
* Whether the table should include a checkbox column for row selection.
|
|
200
204
|
*/
|
|
@@ -272,6 +276,7 @@ export declare class WattTableComponent<T> {
|
|
|
272
276
|
protected getColumnCell: (column: WattTableColumn<T>, row: T) => {} | null;
|
|
273
277
|
protected getRowKey: (index: number, row: T) => any;
|
|
274
278
|
protected isActiveRow: (row: T) => boolean;
|
|
279
|
+
protected getRowClass: (row: T) => string;
|
|
275
280
|
protected onRowClick: (row: T) => void;
|
|
276
281
|
constructor();
|
|
277
282
|
/**
|
|
@@ -283,7 +288,7 @@ export declare class WattTableComponent<T> {
|
|
|
283
288
|
*/
|
|
284
289
|
toggleSelection: (row: T) => void;
|
|
285
290
|
static ɵfac: i0.ɵɵFactoryDeclaration<WattTableComponent<any>, never>;
|
|
286
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<WattTableComponent<any>, "watt-table", never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "displayedColumns": { "alias": "displayedColumns"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "stickyFooter": { "alias": "stickyFooter"; "required": false; "isSignal": true; }; "resolveHeader": { "alias": "resolveHeader"; "required": false; "isSignal": true; }; "sortBy": { "alias": "sortBy"; "required": false; "isSignal": true; }; "sortDirection": { "alias": "sortDirection"; "required": false; "isSignal": true; }; "sortClear": { "alias": "sortClear"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "suppressRowHoverHighlight": { "alias": "suppressRowHoverHighlight"; "required": false; "isSignal": true; }; "activeRow": { "alias": "activeRow"; "required": false; "isSignal": true; }; "activeRowComparator": { "alias": "activeRowComparator"; "required": false; "isSignal": true; }; "hideColumnHeaders": { "alias": "hideColumnHeaders"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; }, { "selection": "selectionChange"; "expanded": "expandedChange"; "rowClick": "rowClick"; "sortChange": "sortChange"; }, ["cells", "toolbar"], never, true, never>;
|
|
291
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WattTableComponent<any>, "watt-table", never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "displayedColumns": { "alias": "displayedColumns"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "stickyFooter": { "alias": "stickyFooter"; "required": false; "isSignal": true; }; "resolveHeader": { "alias": "resolveHeader"; "required": false; "isSignal": true; }; "sortBy": { "alias": "sortBy"; "required": false; "isSignal": true; }; "sortDirection": { "alias": "sortDirection"; "required": false; "isSignal": true; }; "sortClear": { "alias": "sortClear"; "required": false; "isSignal": true; }; "rowClass": { "alias": "rowClass"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "suppressRowHoverHighlight": { "alias": "suppressRowHoverHighlight"; "required": false; "isSignal": true; }; "activeRow": { "alias": "activeRow"; "required": false; "isSignal": true; }; "activeRowComparator": { "alias": "activeRowComparator"; "required": false; "isSignal": true; }; "hideColumnHeaders": { "alias": "hideColumnHeaders"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; }, { "selection": "selectionChange"; "expanded": "expandedChange"; "rowClick": "rowClick"; "sortChange": "sortChange"; }, ["cells", "toolbar"], never, true, never>;
|
|
287
292
|
}
|
|
288
293
|
export declare const WATT_TABLE: (typeof WattTableToolbarDirective | typeof WattTableComponent)[];
|
|
289
294
|
export {};
|