@c8y/ngx-components 1021.62.2 → 1021.62.6
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/core/data-grid/data-grid.component.d.ts +7 -1
- package/core/data-grid/data-grid.component.d.ts.map +1 -1
- package/core/login/totp-auth.component.d.ts +1 -5
- package/core/login/totp-auth.component.d.ts.map +1 -1
- package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts +9 -3
- package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map +1 -1
- package/esm2022/branding/shared/lazy/branding/branding.component.mjs +2 -2
- package/esm2022/context-dashboard/dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.mjs +1 -1
- package/esm2022/context-dashboard/dashboard-manager/type-dashboards-list/type-dashboards-list.component.mjs +1 -1
- package/esm2022/core/data-grid/data-grid.component.mjs +35 -16
- package/esm2022/core/login/totp-auth.component.mjs +2 -7
- package/esm2022/device-grid/device-grid.component.mjs +1 -1
- package/esm2022/device-profile/device-profile-list.component.mjs +1 -1
- package/esm2022/device-provisioned-certificates/device-tab-provisioned-certificates.component.mjs +48 -8
- package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +1 -1
- package/esm2022/files-repository/files-repository.component.mjs +1 -1
- package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.mjs +2 -2
- package/esm2022/repository/configuration/list/configuration-list.component.mjs +1 -1
- package/esm2022/repository/firmware/list/firmware-list.component.mjs +1 -1
- package/esm2022/repository/software/list/software-list.component.mjs +1 -1
- package/esm2022/search/search-grid.component.mjs +1 -1
- package/esm2022/services/services-device-tab/services-device-tab.component.mjs +1 -1
- package/esm2022/sub-assets/sub-assets-grid.component.mjs +1 -1
- package/esm2022/tenants/tenant-list/tenant-list.component.mjs +1 -1
- package/esm2022/translation-editor/lazy/translation-editor/translation-editor.component.mjs +2 -2
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +2 -2
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-grid.mjs +1 -1
- package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-profile.mjs +1 -1
- package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +48 -8
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-files-repository.mjs +1 -1
- package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs +1 -1
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-software.mjs +1 -1
- package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-search.mjs +1 -1
- package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services.mjs +1 -1
- package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sub-assets.mjs +1 -1
- package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-tenants.mjs +1 -1
- package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +35 -21
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +0 -3
- package/locales/es.po +2 -4
- package/locales/fr.po +0 -3
- package/locales/ja_JP.po +0 -3
- package/locales/ko.po +0 -3
- package/locales/locales.pot +0 -3
- package/locales/nl.po +0 -3
- package/locales/pl.po +0 -3
- package/locales/pt_BR.po +0 -3
- package/locales/zh_CN.po +0 -3
- package/locales/zh_TW.po +0 -3
- package/package.json +1 -1
|
@@ -112,6 +112,8 @@ export declare class DataGridComponent implements DataGrid, OnChanges, AfterView
|
|
|
112
112
|
* - `ASYNC` - additional column with expand button is displayed and expandable rows are expanding asynchronously when button is clicked
|
|
113
113
|
*/
|
|
114
114
|
expandableRows: 'NONE' | 'SYNC' | 'ASYNC';
|
|
115
|
+
/** Determines if the Reload button will be hidden. */
|
|
116
|
+
hideReload: boolean;
|
|
115
117
|
/** Emits an event when mouse is over a row. */
|
|
116
118
|
rowMouseOver: EventEmitter<object>;
|
|
117
119
|
/** Emits an event when mouse leaves a row. */
|
|
@@ -230,6 +232,8 @@ export declare class DataGridComponent implements DataGrid, OnChanges, AfterView
|
|
|
230
232
|
private reloadConfiguration$;
|
|
231
233
|
private actionControlsInput$;
|
|
232
234
|
private unsubscribe$;
|
|
235
|
+
private manualSearch$;
|
|
236
|
+
private lastManualSearchValue;
|
|
233
237
|
private readonly SEARCH_DEBOUNCE_TIME;
|
|
234
238
|
/**
|
|
235
239
|
* Event emitter, taking boolean values used for loading data grid data with debounce.
|
|
@@ -302,6 +306,8 @@ export declare class DataGridComponent implements DataGrid, OnChanges, AfterView
|
|
|
302
306
|
emitConfigChange(eventType?: GridEventType): void;
|
|
303
307
|
triggerEvent(eventData: any): void;
|
|
304
308
|
handleClick(row: Row): void;
|
|
309
|
+
performSearch(searchText: string): void;
|
|
310
|
+
private setupSearchObservables;
|
|
305
311
|
private onResetFilterAction;
|
|
306
312
|
private mapColumnToConfig;
|
|
307
313
|
private loadData;
|
|
@@ -328,6 +334,6 @@ export declare class DataGridComponent implements DataGrid, OnChanges, AfterView
|
|
|
328
334
|
private resolveConfigFilter;
|
|
329
335
|
private safelyInvokeMatcher;
|
|
330
336
|
static ɵfac: i0.ɵɵFactoryDeclaration<DataGridComponent, [{ optional: true; }, null, null, null, null, null, null, null]>;
|
|
331
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DataGridComponent, "c8y-data-grid", never, { "title": { "alias": "title"; "required": false; }; "loadMoreItemsLabel": { "alias": "loadMoreItemsLabel"; "required": false; }; "loadingItemsLabel": { "alias": "loadingItemsLabel"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "refresh": { "alias": "refresh"; "required": false; }; "_columns": { "alias": "columns"; "required": false; }; "_rows": { "alias": "rows"; "required": false; }; "_pagination": { "alias": "pagination"; "required": false; }; "_infiniteScroll": { "alias": "infiniteScroll"; "required": false; }; "_serverSideDataCallback": { "alias": "serverSideDataCallback"; "required": false; }; "_selectable": { "alias": "selectable"; "required": false; }; "_singleSelection": { "alias": "singleSelection"; "required": false; }; "_selectionPrimaryKey": { "alias": "selectionPrimaryKey"; "required": false; }; "_displayOptions": { "alias": "displayOptions"; "required": false; }; "_actionControls": { "alias": "actionControls"; "required": false; }; "_bulkActionControls": { "alias": "bulkActionControls"; "required": false; }; "_headerActionControls": { "alias": "headerActionControls"; "required": false; }; "searchText": { "alias": "searchText"; "required": false; }; "configureColumnsEnabled": { "alias": "configureColumnsEnabled"; "required": false; }; "showCounterWarning": { "alias": "showCounterWarning"; "required": false; }; "activeClassName": { "alias": "activeClassName"; "required": false; }; "expandableRows": { "alias": "expandableRows"; "required": false; }; }, { "rowMouseOver": "rowMouseOver"; "rowMouseLeave": "rowMouseLeave"; "rowClick": "rowClick"; "onConfigChange": "onConfigChange"; "onBeforeFilter": "onBeforeFilter"; "onBeforeSearch": "onBeforeSearch"; "onFilter": "onFilter"; "itemsSelect": "itemsSelect"; "onReload": "onReload"; "onAddCustomColumn": "onAddCustomColumn"; "onRemoveCustomColumn": "onRemoveCustomColumn"; "onColumnFilterReset": "onColumnFilterReset"; "onSort": "onSort"; "onPageSizeChange": "onPageSizeChange"; "onColumnReordered": "onColumnReordered"; "onColumnVisibilityChange": "onColumnVisibilityChange"; }, ["expandableRow", "emptyState", "columnRenderers"], ["c8y-ui-empty-state, .c8y-empty-state"], false, never>;
|
|
337
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DataGridComponent, "c8y-data-grid", never, { "title": { "alias": "title"; "required": false; }; "loadMoreItemsLabel": { "alias": "loadMoreItemsLabel"; "required": false; }; "loadingItemsLabel": { "alias": "loadingItemsLabel"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "refresh": { "alias": "refresh"; "required": false; }; "_columns": { "alias": "columns"; "required": false; }; "_rows": { "alias": "rows"; "required": false; }; "_pagination": { "alias": "pagination"; "required": false; }; "_infiniteScroll": { "alias": "infiniteScroll"; "required": false; }; "_serverSideDataCallback": { "alias": "serverSideDataCallback"; "required": false; }; "_selectable": { "alias": "selectable"; "required": false; }; "_singleSelection": { "alias": "singleSelection"; "required": false; }; "_selectionPrimaryKey": { "alias": "selectionPrimaryKey"; "required": false; }; "_displayOptions": { "alias": "displayOptions"; "required": false; }; "_actionControls": { "alias": "actionControls"; "required": false; }; "_bulkActionControls": { "alias": "bulkActionControls"; "required": false; }; "_headerActionControls": { "alias": "headerActionControls"; "required": false; }; "searchText": { "alias": "searchText"; "required": false; }; "configureColumnsEnabled": { "alias": "configureColumnsEnabled"; "required": false; }; "showCounterWarning": { "alias": "showCounterWarning"; "required": false; }; "activeClassName": { "alias": "activeClassName"; "required": false; }; "expandableRows": { "alias": "expandableRows"; "required": false; }; "hideReload": { "alias": "hideReload"; "required": false; }; }, { "rowMouseOver": "rowMouseOver"; "rowMouseLeave": "rowMouseLeave"; "rowClick": "rowClick"; "onConfigChange": "onConfigChange"; "onBeforeFilter": "onBeforeFilter"; "onBeforeSearch": "onBeforeSearch"; "onFilter": "onFilter"; "itemsSelect": "itemsSelect"; "onReload": "onReload"; "onAddCustomColumn": "onAddCustomColumn"; "onRemoveCustomColumn": "onRemoveCustomColumn"; "onColumnFilterReset": "onColumnFilterReset"; "onSort": "onSort"; "onPageSizeChange": "onPageSizeChange"; "onColumnReordered": "onColumnReordered"; "onColumnVisibilityChange": "onColumnVisibilityChange"; }, ["expandableRow", "emptyState", "columnRenderers"], ["c8y-ui-empty-state, .c8y-empty-state"], false, never>;
|
|
332
338
|
}
|
|
333
339
|
//# sourceMappingURL=data-grid.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-grid.component.d.ts","sourceRoot":"","sources":["../../../core/data-grid/data-grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EACL,aAAa,EAIb,UAAU,EACV,YAAY,EAGZ,SAAS,EAGT,SAAS,EAGT,gBAAgB,EAEjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAe,WAAW,EAAU,MAAM,aAAa,CAAC;AAa/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,eAAe,EACf,UAAU,EACV,OAAO,EAQR,MAAM,MAAM,CAAC;AAiBd,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAEL,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAEhG,OAAO,EAEL,6BAA6B,EAG7B,aAAa,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,aAAa,EAEb,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,EAGN,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,GAAG,EACH,sBAAsB,EACtB,SAAS,EAIV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;;AAQpD,qBAWa,iBACX,YAAW,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,4BAA4B;
|
|
1
|
+
{"version":3,"file":"data-grid.component.d.ts","sourceRoot":"","sources":["../../../core/data-grid/data-grid.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,11 +16,7 @@ export declare class TotpAuthComponent implements OnInit {
|
|
|
16
16
|
hasError: boolean;
|
|
17
17
|
isSetup: boolean;
|
|
18
18
|
constructor(loginService: LoginService, userService: UserService, alert: AlertService);
|
|
19
|
-
|
|
20
|
-
* In case of a setup we need the user to be authorized
|
|
21
|
-
* first.
|
|
22
|
-
*/
|
|
23
|
-
ngOnInit(): Promise<void>;
|
|
19
|
+
ngOnInit(): void;
|
|
24
20
|
onTotpSuccess(code: any): Promise<void>;
|
|
25
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<TotpAuthComponent, never>;
|
|
26
22
|
static ɵcmp: i0.ɵɵComponentDeclaration<TotpAuthComponent, "c8y-totp-auth", never, { "credentials": { "alias": "credentials"; "required": false; }; "view": { "alias": "view"; "required": false; }; }, { "onCancel": "onCancel"; }, never, never, false, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"totp-auth.component.d.ts","sourceRoot":"","sources":["../../../core/login/totp-auth.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAU,YAAY,EAAS,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;;AAG3C,qBAIa,iBAAkB,YAAW,MAAM;IAUrC,YAAY,EAAE,YAAY;IACjC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,KAAK;IAXN,WAAW,EAAE,YAAY,CAAC;IAC1B,IAAI,EAAE,UAAU,CAAC;IAChB,QAAQ,oBAAsB;IACxC,WAAW,oBAAc;IACzB,OAAO,UAAS;IAChB,QAAQ,UAAS;IACjB,OAAO,UAAS;gBAGP,YAAY,EAAE,YAAY,EACzB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY;IAG7B
|
|
1
|
+
{"version":3,"file":"totp-auth.component.d.ts","sourceRoot":"","sources":["../../../core/login/totp-auth.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAU,YAAY,EAAS,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;;AAG3C,qBAIa,iBAAkB,YAAW,MAAM;IAUrC,YAAY,EAAE,YAAY;IACjC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,KAAK;IAXN,WAAW,EAAE,YAAY,CAAC;IAC1B,IAAI,EAAE,UAAU,CAAC;IAChB,QAAQ,oBAAsB;IACxC,WAAW,oBAAc;IACzB,OAAO,UAAS;IAChB,QAAQ,UAAS;IACjB,OAAO,UAAS;gBAGP,YAAY,EAAE,YAAY,EACzB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY;IAG7B,QAAQ;IAMF,aAAa,CAAC,IAAI,KAAA;yCArBb,iBAAiB;2CAAjB,iBAAiB;CA4C7B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
|
-
import { AlertService, ModalService } from '@c8y/ngx-components';
|
|
2
|
+
import { ActionControl, AlertService, Column, DisplayOptions, ModalService, Pagination, Row } from '@c8y/ngx-components';
|
|
3
3
|
import { DeviceProvisionedCertificatesService } from './device-provisioned-certificates.service';
|
|
4
4
|
import { ActivatedRoute } from '@angular/router';
|
|
5
5
|
import { CrlService } from '@c8y/client';
|
|
@@ -18,8 +18,13 @@ export declare class DeviceTabProvisionedCertificatesComponent implements OnInit
|
|
|
18
18
|
private route;
|
|
19
19
|
private translateService;
|
|
20
20
|
reloading: boolean;
|
|
21
|
-
reload
|
|
22
|
-
|
|
21
|
+
reload$: BehaviorSubject<void>;
|
|
22
|
+
tableTitle: "Provisioned certificates";
|
|
23
|
+
columns: Column[];
|
|
24
|
+
rows$: Observable<Array<Row & ProvisionedCertificate>>;
|
|
25
|
+
pagination: Pagination;
|
|
26
|
+
actionControls: ActionControl[];
|
|
27
|
+
displayOptions: DisplayOptions;
|
|
23
28
|
protected readonly PX_ACTIONS: {
|
|
24
29
|
APPLY_FILTER: string;
|
|
25
30
|
RESET_FILTER: string;
|
|
@@ -48,6 +53,7 @@ export declare class DeviceTabProvisionedCertificatesComponent implements OnInit
|
|
|
48
53
|
};
|
|
49
54
|
constructor(alertService: AlertService, modalService: ModalService, deviceSerialsService: DeviceProvisionedCertificatesService, crlService: CrlService, route: ActivatedRoute, translateService: TranslateService);
|
|
50
55
|
ngOnInit(): void;
|
|
56
|
+
reload(): void;
|
|
51
57
|
highlightDependingOnExpirationStatus(item: ProvisionedCertificate): "text-danger" | "text-warning" | "";
|
|
52
58
|
revokeProvisionedCertificate(provisionedCertificate: ProvisionedCertificate): Promise<void>;
|
|
53
59
|
private confirmRevocation;
|
package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-tab-provisioned-certificates.component.d.ts","sourceRoot":"","sources":["../../device-provisioned-certificates/device-tab-provisioned-certificates.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"device-tab-provisioned-certificates.component.d.ts","sourceRoot":"","sources":["../../device-provisioned-certificates/device-tab-provisioned-certificates.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,MAAM,EACN,cAAc,EAEd,YAAY,EACZ,UAAU,EAEV,GAAG,EAEJ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oCAAoC,EAAE,MAAM,2CAA2C,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;;AAEvD,MAAM,MAAM,sBAAsB,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,qBAIa,yCAA0C,YAAW,MAAM;IA8DpE,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,gBAAgB;IAlE1B,SAAS,UAAS;IAClB,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,CAA6B;IAE3D,UAAU,6BAAuC;IACjD,OAAO,EAAE,MAAM,EAAE,CAWf;IACF,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,sBAAsB,CAAC,CAAC,CAmBpD;IACF,UAAU,EAAE,UAAU,CAGpB;IACF,cAAc,EAAE,aAAa,EAAE,CAS7B;IACF,cAAc,EAAE,cAAc,CAM5B;IAEF,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;MAAc;gBAGjC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,oBAAoB,EAAE,oCAAoC,EAC1D,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,cAAc,EACrB,gBAAgB,EAAE,gBAAgB;IAG5C,QAAQ,IAAI,IAAI;IAIhB,MAAM;IAIN,oCAAoC,CAAC,IAAI,EAAE,sBAAsB;IAgB3D,4BAA4B,CAAC,sBAAsB,EAAE,sBAAsB;YAcnE,iBAAiB;yCA5GpB,yCAAyC;2CAAzC,yCAAyC;CAyHrD"}
|
|
@@ -318,10 +318,10 @@ export class BrandingComponent {
|
|
|
318
318
|
}
|
|
319
319
|
}
|
|
320
320
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BrandingComponent, deps: [{ token: i1.StoreBrandingService }, { token: i2.ActivatedRoute }, { token: i3.AppStateService }, { token: i4.ApplicationService }, { token: i3.ZipService }, { token: i5.StaticAssetsService }, { token: i2.Router }, { token: i6.BsModalService }, { token: i3.ModalService }, { token: i1.BrandingVersionService }, { token: i7.AddBrandingModalService }, { token: i3.AlertService }, { token: i8.BrandingImportModalService }, { token: i1.BrandingTrackingService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
321
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BrandingComponent, isStandalone: true, selector: "c8y-branding", ngImport: i0, template: "<c8y-title translate>Branding</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n [path]=\"'/branding-editor'\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<ng-container *ngIf=\"availableBrandingVariants$ | async as brandingVariant; else loading\">\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"30\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"addNewVersion()\"\n data-cy=\"branding-add-branding-variant\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add variant</span>\n </button>\n </c8y-action-bar-item>\n <c8y-action-bar-item\n [placement]=\"'right'\"\n [priority]=\"20\"\n >\n <button\n class=\"btn btn-link\"\n data-cy=\"branding-import-branding\"\n (click)=\"importBranding()\"\n >\n <i [c8yIcon]=\"'data-import'\"></i>\n <span translate>Import variant</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"10\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"deleteAllBrandings(brandingVariant.publicOptions)\"\n data-cy=\"branding-remove-all-brandings\"\n >\n <i [c8yIcon]=\"'trash-o'\"></i>\n <span translate>Delete all variants</span>\n </button>\n </c8y-action-bar-item>\n\n <div class=\"content-fullpage d-flex d-col border-top\">\n <c8y-data-grid\n [title]=\"'Branding variants' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"brandingVariant.variants\"\n >\n <c8y-ui-empty-state\n [icon]=\"'palette'\"\n [title]=\"'No branding variants' | translate\"\n [subtitle]=\"\n 'Personalize your experience with a theme-able interface. Create a unique look that aligns\n with your brand identity.'\n | translate\n \"\n *ngIf=\"!brandingVariant.publicOptions\"\n [horizontal]=\"false\"\n >\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-get-started-using-branding\"\n (click)=\"getStartedUsingBranding()\"\n translate\n >\n Add branding variant\n </button>\n </c8y-ui-empty-state>\n </c8y-data-grid>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <c8y-loading></c8y-loading>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "component", type: i3.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i3.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i3.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i3.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "component", type: i3.LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "component", type: i3.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: i3.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "ngmodule", type: DataGridModule }] }); }
|
|
321
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BrandingComponent, isStandalone: true, selector: "c8y-branding", ngImport: i0, template: "<c8y-title translate>Branding</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n [path]=\"'/branding-editor'\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<ng-container *ngIf=\"availableBrandingVariants$ | async as brandingVariant; else loading\">\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"30\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"addNewVersion()\"\n data-cy=\"branding-add-branding-variant\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add variant</span>\n </button>\n </c8y-action-bar-item>\n <c8y-action-bar-item\n [placement]=\"'right'\"\n [priority]=\"20\"\n >\n <button\n class=\"btn btn-link\"\n data-cy=\"branding-import-branding\"\n (click)=\"importBranding()\"\n >\n <i [c8yIcon]=\"'data-import'\"></i>\n <span translate>Import variant</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"10\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"deleteAllBrandings(brandingVariant.publicOptions)\"\n data-cy=\"branding-remove-all-brandings\"\n >\n <i [c8yIcon]=\"'trash-o'\"></i>\n <span translate>Delete all variants</span>\n </button>\n </c8y-action-bar-item>\n\n <div class=\"content-fullpage d-flex d-col border-top\">\n <c8y-data-grid\n [title]=\"'Branding variants' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"brandingVariant.variants\"\n >\n <c8y-ui-empty-state\n [icon]=\"'palette'\"\n [title]=\"'No branding variants' | translate\"\n [subtitle]=\"\n 'Personalize your experience with a theme-able interface. Create a unique look that aligns\n with your brand identity.'\n | translate\n \"\n *ngIf=\"!brandingVariant.publicOptions\"\n [horizontal]=\"false\"\n >\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-get-started-using-branding\"\n (click)=\"getStartedUsingBranding()\"\n translate\n >\n Add branding variant\n </button>\n </c8y-ui-empty-state>\n </c8y-data-grid>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <c8y-loading></c8y-loading>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "component", type: i3.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i3.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i3.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i3.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "component", type: i3.LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "component", type: i3.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "hideReload"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: i3.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "ngmodule", type: DataGridModule }] }); }
|
|
322
322
|
}
|
|
323
323
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BrandingComponent, decorators: [{
|
|
324
324
|
type: Component,
|
|
325
325
|
args: [{ selector: 'c8y-branding', standalone: true, imports: [CoreModule, DataGridModule], template: "<c8y-title translate>Branding</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n [path]=\"'/branding-editor'\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<ng-container *ngIf=\"availableBrandingVariants$ | async as brandingVariant; else loading\">\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"30\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"addNewVersion()\"\n data-cy=\"branding-add-branding-variant\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add variant</span>\n </button>\n </c8y-action-bar-item>\n <c8y-action-bar-item\n [placement]=\"'right'\"\n [priority]=\"20\"\n >\n <button\n class=\"btn btn-link\"\n data-cy=\"branding-import-branding\"\n (click)=\"importBranding()\"\n >\n <i [c8yIcon]=\"'data-import'\"></i>\n <span translate>Import variant</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"10\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"deleteAllBrandings(brandingVariant.publicOptions)\"\n data-cy=\"branding-remove-all-brandings\"\n >\n <i [c8yIcon]=\"'trash-o'\"></i>\n <span translate>Delete all variants</span>\n </button>\n </c8y-action-bar-item>\n\n <div class=\"content-fullpage d-flex d-col border-top\">\n <c8y-data-grid\n [title]=\"'Branding variants' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"brandingVariant.variants\"\n >\n <c8y-ui-empty-state\n [icon]=\"'palette'\"\n [title]=\"'No branding variants' | translate\"\n [subtitle]=\"\n 'Personalize your experience with a theme-able interface. Create a unique look that aligns\n with your brand identity.'\n | translate\n \"\n *ngIf=\"!brandingVariant.publicOptions\"\n [horizontal]=\"false\"\n >\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-get-started-using-branding\"\n (click)=\"getStartedUsingBranding()\"\n translate\n >\n Add branding variant\n </button>\n </c8y-ui-empty-state>\n </c8y-data-grid>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <c8y-loading></c8y-loading>\n</ng-template>\n" }]
|
|
326
326
|
}], ctorParameters: () => [{ type: i1.StoreBrandingService }, { type: i2.ActivatedRoute }, { type: i3.AppStateService }, { type: i4.ApplicationService }, { type: i3.ZipService }, { type: i5.StaticAssetsService }, { type: i2.Router }, { type: i6.BsModalService }, { type: i3.ModalService }, { type: i1.BrandingVersionService }, { type: i7.AddBrandingModalService }, { type: i3.AlertService }, { type: i8.BrandingImportModalService }, { type: i1.BrandingTrackingService }] });
|
|
327
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYnJhbmRpbmcvYnJhbmRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYnJhbmRpbmcvYnJhbmRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDeEIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFjLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFFTCxZQUFZLEVBQ1osZUFBZSxFQUNmLGlCQUFpQixFQUdqQixZQUFZLEVBRVosTUFBTSxFQUNOLFVBQVUsRUFDVixPQUFPLEVBQ1AsVUFBVSxFQUNWLGNBQWMsRUFDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxrQkFBa0IsRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDeEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkRB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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJyYW5kVmVyc2lvbixcbiAgU3RvcmVCcmFuZGluZ1NlcnZpY2UsXG4gIEJyYW5kaW5nVmVyc2lvblNlcnZpY2UsXG4gIEJyYW5kaW5nVHJhY2tpbmdTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYnJhbmRpbmcvc2hhcmVkL2RhdGEnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBY3Rpb25Db250cm9sLFxuICBBbGVydFNlcnZpY2UsXG4gIEFwcFN0YXRlU2VydmljZSxcbiAgQnVpbHRJbkFjdGlvblR5cGUsXG4gIENvbHVtbixcbiAgRGlzcGxheU9wdGlvbnMsXG4gIE1vZGFsU2VydmljZSxcbiAgUGFnaW5hdGlvbixcbiAgU3RhdHVzLFxuICBaaXBTZXJ2aWNlLFxuICBnZXR0ZXh0LFxuICBDb3JlTW9kdWxlLFxuICBEYXRhR3JpZE1vZHVsZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU2VydmljZSwgSUFwcGxpY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBTdGF0aWNBc3NldHNTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9zdGF0aWMtYXNzZXRzL2RhdGEnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IEFwcGx5QnJhbmRpbmdUb0FwcE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYXBwbHktYnJhbmRpbmctdG8tYXBwLW1vZGFsL2FwcGx5LWJyYW5kaW5nLXRvLWFwcC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRkQnJhbmRpbmdNb2RhbFNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2JyYW5kaW5nL3NoYXJlZC9sYXp5L2FkZC1icmFuZGluZy1tb2RhbCc7XG5pbXBvcnQgeyBCcmFuZGluZ1RhZ3NDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9icmFuZGluZy10YWdzLWNlbGwtcmVuZGVyZXIvYnJhbmRpbmctdGFncy1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCcmFuZGluZ0ltcG9ydE1vZGFsU2VydmljZSB9IGZyb20gJy4uL2JyYW5kaW5nLWltcG9ydC1tb2RhbC9icmFuZGluZy1pbXBvcnQtbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBCcmFuZGluZ05hbWVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9icmFuZGluZy1uYW1lLWNlbGwtcmVuZGVyZXIvYnJhbmRpbmctbmFtZS1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCcmFuZGluZ1RhZ3NIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9icmFuZGluZy10YWdzLWhlYWRlci1jZWxsLXJlbmRlcmVyL2JyYW5kaW5nLXRhZ3MtaGVhZGVyLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWJyYW5kaW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyYW5kaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIERhdGFHcmlkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBCcmFuZGluZ0NvbXBvbmVudCB7XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB7XG4gICAgcGFnZVNpemU6IDEwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG4gIGRpc3BsYXlPcHRpb25zOiBEaXNwbGF5T3B0aW9ucyA9IHtcbiAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgc3RyaXBlZDogdHJ1ZSxcbiAgICBmaWx0ZXI6IHRydWUsXG4gICAgZ3JpZEhlYWRlcjogdHJ1ZSxcbiAgICBob3ZlcjogdHJ1ZVxuICB9O1xuICBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gW1xuICAgIHtcbiAgICAgIHR5cGU6IEJ1aWx0SW5BY3Rpb25UeXBlLkVkaXQsXG4gICAgICBjYWxsYmFjazogKGVudHJ5OiBCcmFuZFZlcnNpb24sIF9yZWxvYWQpID0+IHtcbiAgICAgICAgdGhpcy5lZGl0QnJhbmRpbmcoZW50cnkubmFtZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBCdWlsdEluQWN0aW9uVHlwZS5FeHBvcnQsXG4gICAgICBjYWxsYmFjazogYXN5bmMgKGVudHJ5OiBCcmFuZFZlcnNpb24sIF9yZWxvYWQpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5leHBvcnRCcmFuZGluZyhlbnRyeSk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiAncHJldmlldycsXG4gICAgICBpY29uOiAnZXh0ZXJuYWwtbGluaycsXG4gICAgICB0ZXh0OiBnZXR0ZXh0KCdPcGVuIHByZXZpZXcnKSxcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoZW50cnk6IEJyYW5kVmVyc2lvbiwgX3JlbG9hZCkgPT4ge1xuICAgICAgICB0aGlzLmJyYW5kaW5ncy5vcGVuUHJldmlld0ZvckJyYW5kaW5nKGVudHJ5Lm5hbWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ2R1cGxpY2F0ZScsXG4gICAgICBpY29uOiAnY29weScsXG4gICAgICB0ZXh0OiBnZXR0ZXh0KCdEdXBsaWNhdGUnKSxcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoZW50cnk6IEJyYW5kVmVyc2lvbiwgX3JlbG9hZCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLmR1cGxpY2F0ZVZlcnNpb24oZW50cnkpO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdhcHBseS10by1hcHAnLFxuICAgICAgaWNvbjogJ2Zvcm0nLFxuICAgICAgdGV4dDogZ2V0dGV4dCgnQXBwbHkgdG8gc3BlY2lmaWMgYXBwcycpLFxuICAgICAgY2FsbGJhY2s6IGFzeW5jIChlbnRyeTogQnJhbmRWZXJzaW9uLCBfcmVsb2FkKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuYXBwbHlUb0FwcHMoZW50cnkpO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdzZXQtYXMtZGVmYXVsdCcsXG4gICAgICBpY29uOiAnZ2xvYmUxJyxcbiAgICAgIHRleHQ6IGdldHRleHQoJ1NldCBhcyBnbG9iYWwnKSxcbiAgICAgIHNob3dJZjogKGVudHJ5OiBCcmFuZFZlcnNpb24pID0+IHtcbiAgICAgICAgaWYgKGVudHJ5LnRhZ3M/LmluY2x1ZGVzKCdsYXRlc3QnKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0sXG4gICAgICBjYWxsYmFjazogYXN5bmMgKGVudHJ5OiBCcmFuZFZlcnNpb24sIF9yZWxvYWQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbmZpcm1Nb2RhbC5jb25maXJtKFxuICAgICAgICAgICAgZ2V0dGV4dCgnU2V0IGFzIGdsb2JhbCBicmFuZGluZycpLFxuICAgICAgICAgICAgZ2V0dGV4dChcbiAgICAgICAgICAgICAgJ0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3YW50IHRvIHNldCB0aGlzIHZhcmlhbnQgYXMgdGhlIGdsb2JhbCBicmFuZGluZz8gQnkgZG9pbmcgc28sIHRoaXMgdmFyaWFudCB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIGFwcHMgdGhhdCBkbyBub3QgaGF2ZSBhIHNwZWNpZmljIGJyYW5kaW5nIGFwcGxpZWQuIERvIHlvdSB3YW50IHRvIHByb2NlZWQ/J1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFN0YXR1cy5JTkZPXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gZGlkIG5vdCBjb25maXJtXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuYnJhbmRpbmdzLm1hcmtBc0FjdGl2ZShlbnRyeSk7XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRGVsZXRlLFxuICAgICAgc2hvd0lmOiAoZW50cnk6IEJyYW5kVmVyc2lvbikgPT4ge1xuICAgICAgICBpZiAoZW50cnkudGFncz8uaW5jbHVkZXMoJ2xhdGVzdCcpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoZW50cnk6IEJyYW5kVmVyc2lvbiwgX3JlbG9hZCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuY29uZmlybU1vZGFsLmNvbmZpcm0oXG4gICAgICAgICAgICBnZXR0ZXh0KCdEZWxldGUgYnJhbmRpbmcgdmFyaWFudCcpLFxuICAgICAgICAgICAgZ2V0dGV4dChcbiAgICAgICAgICAgICAgJ1lvdSBhcmUgYWJvdXQgdG8gZGVsZXRlIHRoaXMgYnJhbmRpbmcgdmFyaWFudC4gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS4gRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgU3RhdHVzLkRBTkdFUlxuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIGRpZCBub3QgY29uZmlybVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYnJhbmRpbmdUcmFja2luZy5kZWxldGVCcmFuZGluZ1ZhcmlhbnQoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UuZGVsZXRlVmVyc2lvblBhY2thZ2UoZW50cnkucHVibGljT3B0aW9uc0FwcCwge1xuICAgICAgICAgIHZlcnNpb246IGVudHJ5LnZlcnNpb25cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbiAgY29sdW1uczogQ29sdW1uW10gPSBbXG4gICAge1xuICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdOYW1lJyksXG4gICAgICBwYXRoOiAnbmFtZScsXG4gICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgY2VsbFJlbmRlcmVyQ29tcG9uZW50OiBCcmFuZGluZ05hbWVDZWxsUmVuZGVyZXJDb21wb25lbnRcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IGdldHRleHQoJ0FwcGxpZWQgdG9gQXBwbGljYXRpb25zIGEgYnJhbmRpbmcgYXBwbGllcyB0byAodGFibGUgY29sdW1uIGhlYWRlcilgJyksXG4gICAgICBwYXRoOiAndGFncycsXG4gICAgICBmaWx0ZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNlbGxDU1NDbGFzc05hbWU6ICdzbWFsbCcsXG4gICAgICBjZWxsUmVuZGVyZXJDb21wb25lbnQ6IEJyYW5kaW5nVGFnc0NlbGxSZW5kZXJlckNvbXBvbmVudCxcbiAgICAgIGhlYWRlckNlbGxSZW5kZXJlckNvbXBvbmVudDogQnJhbmRpbmdUYWdzSGVhZGVyQ2VsbFJlbmRlcmVyQ29tcG9uZW50XG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnb3duZXInLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdPd25lcicpLFxuICAgICAgcGF0aDogJ293bmVyJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnbGFzdFVwZGF0ZWQnLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdMYXN0IHVwZGF0ZWQnKSxcbiAgICAgIHBhdGg6ICdsYXN0VXBkYXRlZCcsXG4gICAgICBmaWx0ZXJhYmxlOiBmYWxzZVxuICAgIH1cbiAgXTtcbiAgY3VycmVudEFwcENvbnRleHRQYXRoID0gJ2FkbWluaXN0cmF0aW9uJztcbiAgYXZhaWxhYmxlQnJhbmRpbmdWYXJpYW50cyQ6IE9ic2VydmFibGU8e1xuICAgIHB1YmxpY09wdGlvbnM6IElBcHBsaWNhdGlvbjtcbiAgICB2YXJpYW50czogQnJhbmRWZXJzaW9uW107XG4gIH0+O1xuXG4gIHByaXZhdGUgcmVsb2FkVHJpZ2dlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dm9pZD4odW5kZWZpbmVkKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBicmFuZGluZ3M6IFN0b3JlQnJhbmRpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIGFwcGxpY2F0aW9uU2VydmljZTogQXBwbGljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgemlwOiBaaXBTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RhdGljQXNzZXRzOiBTdGF0aWNBc3NldHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBtb2RhbDogQnNNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maXJtTW9kYWw6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGJyYW5kaW5nVmVyc2lvblNlcnZpY2U6IEJyYW5kaW5nVmVyc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhZGRCcmFuZGluZ01vZGFsU2VydmljZTogQWRkQnJhbmRpbmdNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnJhbmRpbmdJbXBvcnRNb2RhbFNlcnZpY2U6IEJyYW5kaW5nSW1wb3J0TW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnJhbmRpbmdUcmFja2luZzogQnJhbmRpbmdUcmFja2luZ1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jdXJyZW50QXBwQ29udGV4dFBhdGggPSB0aGlzLmFwcFN0YXRlLnN0YXRlLmFwcD8uY29udGV4dFBhdGggfHwgdGhpcy5jdXJyZW50QXBwQ29udGV4dFBhdGg7XG4gICAgdGhpcy5hdmFpbGFibGVCcmFuZGluZ1ZhcmlhbnRzJCA9IHRoaXMucmVsb2FkVHJpZ2dlci5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuYnJhbmRpbmdzLmxvYWRCcmFuZGluZ1ZhcmlhbnRzKCkpLFxuICAgICAgLy8gaGlkZSB0aGUgZmFsbGJhY2sgZnJvbSB1c2Vyc1xuICAgICAgbWFwKHZhcmlhbnRzID0+IHtcbiAgICAgICAgdmFyaWFudHMudmFyaWFudHMgPSB2YXJpYW50cy52YXJpYW50cy5maWx0ZXIodiA9PiAhdi50YWdzPy5pbmNsdWRlcygnZmFsbGJhY2snKSk7XG4gICAgICAgIHJldHVybiB2YXJpYW50cztcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KVxuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGVBbGxCcmFuZGluZ3MocHVibGljT3B0aW9ucz86IElBcHBsaWNhdGlvbikge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29uZmlybU1vZGFsLmNvbmZpcm0oXG4gICAgICBnZXR0ZXh0KCdEZWxldGUgYWxsIGJyYW5kaW5nIHZhcmlhbnRzJyksXG4gICAgICBnZXR0ZXh0KFxuICAgICAgICBgPHAgY2xhc3M9XCJtLWItOFwiPlxuICAgICAgICAgIFRoaXMgYWN0aW9uIHdpbGwgcGVybWFuZW50bHkgcmVtb3ZlIGFsbCBjdXN0b20gYnJhbmRpbmcgdmFyaWFudHMuIFlvdXIgdGVuYW50IHdpbGwgcmV2ZXJ0XG4gICAgICAgICAgdG8gdGhlIGRlZmF1bHQgYnJhbmRpbmcuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJtLWItOFwiPlxuICAgICAgICAgIENvbnNpZGVyIGV4cG9ydGluZyB5b3VyIGN1c3RvbSBicmFuZGluZyB2YXJpYW50cyBiZWZvcmUgcHJvY2VlZGluZywgYXMgdGhpcyBhY3Rpb24gY2Fubm90XG4gICAgICAgICAgYmUgdW5kb25lLlxuICAgICAgICA8L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb250aW51ZT9cbiAgICAgICAgPC9wPmBcbiAgICAgICksXG4gICAgICBTdGF0dXMuREFOR0VSLFxuICAgICAgeyBjYW5jZWw6IGdldHRleHQoJ0NhbmNlbCcpLCBvazogZ2V0dGV4dCgnRGVsZXRlIGFsbCcpIH1cbiAgICApO1xuICAgIGlmIChyZXN1bHQgPT09IGZhbHNlIHx8ICh0eXBlb2YgcmVzdWx0ID09PSAnb2JqZWN0JyAmJiAhcmVzdWx0LmNvbmZpcm1lZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmJyYW5kaW5nVHJhY2tpbmcuZGVsZXRlQWxsQnJhbmRpbmdzKCk7XG5cbiAgICBhd2FpdCB0aGlzLmJyYW5kaW5ncy5kZWxldGVBbGxCcmFuZGluZ3MocHVibGljT3B0aW9ucyk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBhc3luYyBleHBvcnRCcmFuZGluZyh2YXJpYW50OiBCcmFuZFZlcnNpb24pIHtcbiAgICB0aGlzLmJyYW5kaW5nVHJhY2tpbmcuZXhwb3J0QnJhbmRpbmcoKTtcbiAgICBjb25zdCBicmFuZGluZyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYnJhbmRpbmdzLmdldFppcEZvckJpbmFyeSh2YXJpYW50LmlkKSk7XG4gICAgY29uc3Qgc3RhdGljQXNzZXRzQXBwID0gYXdhaXQgdGhpcy5zdGF0aWNBc3NldHMuZ2V0QXBwRm9yVGVuYW50KCdicmFuZGluZycpO1xuICAgIGNvbnN0IHN0YXRpY0Fzc2V0c1ppcCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5icmFuZGluZ3MuZ2V0WmlwRm9yQmluYXJ5KFxuICAgICAgICBzdGF0aWNBc3NldHNBcHAuYWN0aXZlVmVyc2lvbklkLFxuICAgICAgICB0aGlzLnN0YXRpY0Fzc2V0cy5maWxlTmFtZXMuZXhwb3J0WmlwTmFtZVxuICAgICAgKVxuICAgICk7XG4gICAgY29uc3QgYmxvYiA9IGF3YWl0IHRoaXMuemlwLmNyZWF0ZVppcChbXG4gICAgICB7IGZpbGVOYW1lOiB0aGlzLmJyYW5kaW5ncy5maWxlTmFtZXMuZXhwb3J0WmlwTmFtZSwgYmxvYjogYnJhbmRpbmcgfSxcbiAgICAgIHsgZmlsZU5hbWU6IHRoaXMuc3RhdGljQXNzZXRzLmZpbGVOYW1lcy5leHBvcnRaaXBOYW1lLCBibG9iOiBzdGF0aWNBc3NldHNaaXAgfVxuICAgIF0pO1xuICAgIHNhdmVBcyhibG9iLCBgYnJhbmRpbmctZXhwb3J0LSR7dmFyaWFudC5uYW1lfS0ke3ZhcmlhbnQucmV2aXNpb259LSR7bmV3IERhdGUoKS5nZXRUaW1lKCl9LnppcGApO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnJlbG9hZFRyaWdnZXIubmV4dCgpO1xuICB9XG5cbiAgYXN5bmMgYWRkTmV3VmVyc2lvbigpIHtcbiAgICBjb25zdCB2ZXJzaW9uRGV0YWlscyA9IGF3YWl0IHRoaXMuYWRkQnJhbmRpbmdNb2RhbFNlcnZpY2Uub3BlbkFkZEJyYW5kaW5nTW9kYWwoKTtcbiAgICBpZiAoIXZlcnNpb25EZXRhaWxzKSB7XG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGZhbGxCYWNrQnJhbmRpbmcgPSB7fTtcbiAgICB0cnkge1xuICAgICAgZmFsbEJhY2tCcmFuZGluZyA9IGF3YWl0IHRoaXMuYnJhbmRpbmdzLmdldEJyYW5kaW5nT3B0aW9uc0ZvclZlcnNpb24oJ2xhdGVzdCcpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIGxvYWQgbGF0ZXN0IGJyYW5kaW5nYCk7XG4gICAgfVxuXG4gICAgdGhpcy5icmFuZGluZ1RyYWNraW5nLmFkZE5ld1ZlcnNpb24oKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmJyYW5kaW5ncy5hZGRCcmFuZGluZyhcbiAgICAgICAgdGhpcy5icmFuZGluZ1ZlcnNpb25TZXJ2aWNlLmNyZWF0ZUluaXRpYWxCcmFuZGluZ1ZlcnNpb24odmVyc2lvbkRldGFpbHMuYnJhbmRpbmdOYW1lKSxcbiAgICAgICAgZmFsbEJhY2tCcmFuZGluZyxcbiAgICAgICAgW3ZlcnNpb25EZXRhaWxzLmJyYW5kaW5nTmFtZV1cbiAgICAgICk7XG4gICAgICBhd2FpdCB0aGlzLmJyYW5kaW5ncy53YWl0Rm9yQnJhbmRpbmdUb0JlUHJlc2VudCh2ZXJzaW9uRGV0YWlscy5icmFuZGluZ05hbWUpO1xuICAgICAgdGhpcy5lZGl0QnJhbmRpbmcodmVyc2lvbkRldGFpbHMuYnJhbmRpbmdOYW1lKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSwgJ2RhbmdlcicpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGR1cGxpY2F0ZVZlcnNpb24odmVyc2lvbjogQnJhbmRWZXJzaW9uKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IHRoaXMuYnJhbmRpbmdzLmdldEJyYW5kaW5nT3B0aW9uc0ZvclZlcnNpb24odmVyc2lvbi52ZXJzaW9uKTtcbiAgICBjb25zdCB2ZXJzaW9uRGV0YWlscyA9IGF3YWl0IHRoaXMuYWRkQnJhbmRpbmdNb2RhbFNlcnZpY2Uub3BlbkR1cGxpY2F0ZUJyYW5kaW5nTW9kYWwoKTtcbiAgICBpZiAoIXZlcnNpb25EZXRhaWxzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5icmFuZGluZ1RyYWNraW5nLmR1cGxpY2F0ZVZlcnNpb24oKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmJyYW5kaW5ncy5hZGRCcmFuZGluZyhcbiAgICAgICAgdGhpcy5icmFuZGluZ1ZlcnNpb25TZXJ2aWNlLmNyZWF0ZUluaXRpYWxCcmFuZGluZ1ZlcnNpb24odmVyc2lvbkRldGFpbHMuYnJhbmRpbmdOYW1lKSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgW3ZlcnNpb25EZXRhaWxzLmJyYW5kaW5nTmFtZV1cbiAgICAgICk7XG4gICAgICBhd2FpdCB0aGlzLmJyYW5kaW5ncy53YWl0Rm9yQnJhbmRpbmdUb0JlUHJlc2VudCh2ZXJzaW9uRGV0YWlscy5icmFuZGluZ05hbWUpO1xuICAgICAgdGhpcy5lZGl0QnJhbmRpbmcodmVyc2lvbkRldGFpbHMuYnJhbmRpbmdOYW1lKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSwgJ2RhbmdlcicpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGVkaXRCcmFuZGluZyhicmFuZGluZ05hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYnJhbmRpbmdOYW1lLCAnZWRpdCddLCB7IHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUgfSk7XG4gIH1cblxuICBhc3luYyBnZXRTdGFydGVkVXNpbmdCcmFuZGluZygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbmZpcm1Nb2RhbC5jb25maXJtKFxuICAgICAgZ2V0dGV4dChgR2V0IHN0YXJ0ZWQgdXNpbmcgYnJhbmRpbmcgdmFyaWFudHNgKSxcbiAgICAgIGdldHRleHQoXG4gICAgICAgIGA8cCBjbGFzcz1cIm0tYi04XCI+Q29uZmlybWluZyB0aGlzIGFjdGlvbiBjcmVhdGVzIHR3byBicmFuZGluZyB2YXJpYW50czo8L3A+XG4gICAgICAgIDx1bCBjbGFzcz1cIm0tYi04IHAtbC0xNlwiPlxuICAgICAgICAgIDxsaT5BIGRlZmF1bHQgY29weSBvZiB5b3VyIGN1cnJlbnQgZ2xvYmFsIGJyYW5kaW5nPC9saT5cbiAgICAgICAgICA8bGk+WW91ciBuZXcgY3VzdG9taXphYmxlIHZhcmlhbnQuPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgICAgPHAgY2xhc3M9XCJtLWItOFwiPlxuICAgICAgICAgIEFmdGVyIGN1c3RvbWl6YXRpb24sIHlvdSBjYW4gc2V0IHlvdXIgbmV3IHZhcmlhbnQgYXMgZ2xvYmFsIG9yIGFwcGx5IGl0IHRvIHNwZWNpZmljIGFwcHMuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgVG8gcmV2ZXJ0IGNoYW5nZXMsIHNpbXBseSBzZXQgdGhlIGRlZmF1bHQgYnJhbmRpbmcgYXMgZ2xvYmFsIG9yIHVzZSB0aGUgXCJEZWxldGUgYWxsXG4gICAgICAgICAgYnJhbmRpbmdzXCIgYnV0dG9uIGF0IGFueSB0aW1lLlxuICAgICAgICA8L3A+YFxuICAgICAgKVxuICAgICk7XG4gICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UgfHwgKHR5cGVvZiByZXN1bHQgPT09ICdvYmplY3QnICYmICFyZXN1bHQuY29uZmlybWVkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYnJhbmRpbmdUcmFja2luZy5nZXRTdGFydGVkVXNpbmdCcmFuZGluZygpO1xuXG4gICAgYXdhaXQgdGhpcy5icmFuZGluZ3MuZ2V0U3RhcnRlZFVzaW5nQnJhbmRpbmcoKTtcbiAgICBhd2FpdCB0aGlzLmFkZE5ld1ZlcnNpb24oKTtcbiAgfVxuXG4gIGFzeW5jIGFwcGx5VG9BcHBzKHZlcnNpb246IEJyYW5kVmVyc2lvbikge1xuICAgIGNvbnN0IHByZWZpeCA9ICdhcHAtJztcbiAgICBjb25zdCBjdXJyZW50VGFncyA9IHZlcnNpb24udGFnc1xuICAgICAgLmZpbHRlcih0YWcgPT4gdGFnLnN0YXJ0c1dpdGgocHJlZml4KSlcbiAgICAgIC5tYXAodGFnID0+IHRhZy5yZXBsYWNlKHByZWZpeCwgJycpKTtcbiAgICBjb25zdCBvdGhlclRhZ3MgPSB2ZXJzaW9uLnRhZ3MuZmlsdGVyKHRhZyA9PiAhdGFnLnN0YXJ0c1dpdGgocHJlZml4KSk7XG4gICAgbGV0IHNlbGVjdGVkVGFnczogQXdhaXRlZDxBcHBseUJyYW5kaW5nVG9BcHBNb2RhbENvbXBvbmVudFsncmVzdWx0J10+O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWwuc2hvdyhBcHBseUJyYW5kaW5nVG9BcHBNb2RhbENvbXBvbmVudCwge1xuICAgICAgICBpbml0aWFsU3RhdGU6IHsgY3VycmVudFRhZ3MgfSxcbiAgICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgICAgICAga2V5Ym9hcmQ6IGZhbHNlXG4gICAgICB9KTtcbiAgICAgIHNlbGVjdGVkVGFncyA9IGF3YWl0IG1vZGFsUmVmLmNvbnRlbnQucmVzdWx0O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG1vZGFsIGNsb3NlZFxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGVkQXBwcyA9IE9iamVjdC5rZXlzKHNlbGVjdGVkVGFncykuZmlsdGVyKGtleSA9PiBzZWxlY3RlZFRhZ3Nba2V5XSk7XG5cbiAgICB0aGlzLmJyYW5kaW5nVHJhY2tpbmcuYXBwbHlUb0FwcHMoc2VsZWN0ZWRBcHBzKTtcblxuICAgIGNvbnN0IHRhZ3NUb1NldCA9IFsuLi5vdGhlclRhZ3MsIC4uLnNlbGVjdGVkQXBwcy5tYXAodGFnID0+IGAke3ByZWZpeH0ke3RhZ31gKV07XG5cbiAgICBhd2FpdCB0aGlzLnJlbW92ZVRhZ3NGcm9tT3RoZXJWZXJzaW9ucyh2ZXJzaW9uLnB1YmxpY09wdGlvbnNBcHAsIHRhZ3NUb1NldCwgdmVyc2lvbi52ZXJzaW9uKTtcbiAgICBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5zZXRQYWNrYWdlVmVyc2lvblRhZyhcbiAgICAgIHZlcnNpb24ucHVibGljT3B0aW9uc0FwcCxcbiAgICAgIHZlcnNpb24udmVyc2lvbixcbiAgICAgIHRhZ3NUb1NldFxuICAgICk7XG4gIH1cblxuICBhc3luYyBpbXBvcnRCcmFuZGluZygpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5icmFuZGluZ0ltcG9ydE1vZGFsU2VydmljZS5vcGVuQnJhbmRpbmdJbXBvcnRNb2RhbCgpO1xuXG4gICAgICB0aGlzLmJyYW5kaW5ncy5yZWZyZXNoVHJpZ2dlckJyYW5kaW5nVmFyaWFudHMubmV4dCgpO1xuICAgICAgdGhpcy5yZWxvYWRUcmlnZ2VyLm5leHQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBtb2RhbCBjbG9zZWRcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlbW92ZVRhZ3NGcm9tT3RoZXJWZXJzaW9ucyhcbiAgICBwdWJsaWNPcHRpb25zQXBwOiBJQXBwbGljYXRpb24sXG4gICAgdGFnc1RvUmVtb3ZlOiBzdHJpbmdbXSxcbiAgICB2ZXJzaW9uVG9JZ25vcmU/OiBzdHJpbmdcbiAgKSB7XG4gICAgZm9yIChjb25zdCB2ZXJzaW9uIG9mIHB1YmxpY09wdGlvbnNBcHAuYXBwbGljYXRpb25WZXJzaW9ucykge1xuICAgICAgaWYgKHZlcnNpb24udmVyc2lvbiA9PT0gdmVyc2lvblRvSWdub3JlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVtb3ZlZFRhZ3MgPSB2ZXJzaW9uLnRhZ3MuZmlsdGVyKHRhZyA9PiAhdGFnc1RvUmVtb3ZlLmluY2x1ZGVzKHRhZykpO1xuICAgICAgaWYgKHJlbW92ZWRUYWdzLmxlbmd0aCA9PT0gdmVyc2lvbi50YWdzLmxlbmd0aCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLnNldFBhY2thZ2VWZXJzaW9uVGFnKFxuICAgICAgICBwdWJsaWNPcHRpb25zQXBwLFxuICAgICAgICB2ZXJzaW9uLnZlcnNpb24sXG4gICAgICAgIHJlbW92ZWRUYWdzXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiPGM4eS10aXRsZSB0cmFuc2xhdGU+QnJhbmRpbmc8L2M4eS10aXRsZT5cblxuPGM4eS1icmVhZGNydW1iPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidwYWxldHRlJ1wiXG4gICAgW2xhYmVsXT1cIidCcmFuZGluZycgfCB0cmFuc2xhdGVcIlxuICAgIFtwYXRoXT1cIicvYnJhbmRpbmctZWRpdG9yJ1wiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiYXZhaWxhYmxlQnJhbmRpbmdWYXJpYW50cyQgfCBhc3luYyBhcyBicmFuZGluZ1ZhcmlhbnQ7IGVsc2UgbG9hZGluZ1wiPlxuICA8Yzh5LWFjdGlvbi1iYXItaXRlbVxuICAgICpuZ0lmPVwiYnJhbmRpbmdWYXJpYW50LnB1YmxpY09wdGlvbnNcIlxuICAgIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4gICAgW3ByaW9yaXR5XT1cIjMwXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICAgIChjbGljayk9XCJhZGROZXdWZXJzaW9uKClcIlxuICAgICAgZGF0YS1jeT1cImJyYW5kaW5nLWFkZC1icmFuZGluZy12YXJpYW50XCJcbiAgICA+XG4gICAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+QWRkIHZhcmlhbnQ8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvYzh5LWFjdGlvbi1iYXItaXRlbT5cbiAgPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuICAgIFtwcmlvcml0eV09XCIyMFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgICBkYXRhLWN5PVwiYnJhbmRpbmctaW1wb3J0LWJyYW5kaW5nXCJcbiAgICAgIChjbGljayk9XCJpbXBvcnRCcmFuZGluZygpXCJcbiAgICA+XG4gICAgICA8aSBbYzh5SWNvbl09XCInZGF0YS1pbXBvcnQnXCI+PC9pPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPkltcG9ydCB2YXJpYW50PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbiAgPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgICAqbmdJZj1cImJyYW5kaW5nVmFyaWFudC5wdWJsaWNPcHRpb25zXCJcbiAgICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuICAgIFtwcmlvcml0eV09XCIxMFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgICAoY2xpY2spPVwiZGVsZXRlQWxsQnJhbmRpbmdzKGJyYW5kaW5nVmFyaWFudC5wdWJsaWNPcHRpb25zKVwiXG4gICAgICBkYXRhLWN5PVwiYnJhbmRpbmctcmVtb3ZlLWFsbC1icmFuZGluZ3NcIlxuICAgID5cbiAgICAgIDxpIFtjOHlJY29uXT1cIid0cmFzaC1vJ1wiPjwvaT5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5EZWxldGUgYWxsIHZhcmlhbnRzPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZnVsbHBhZ2UgZC1mbGV4IGQtY29sIGJvcmRlci10b3BcIj5cbiAgICA8Yzh5LWRhdGEtZ3JpZFxuICAgICAgW3RpdGxlXT1cIidCcmFuZGluZyB2YXJpYW50cycgfCB0cmFuc2xhdGVcIlxuICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICBbYWN0aW9uQ29udHJvbHNdPVwiYWN0aW9uQ29udHJvbHNcIlxuICAgICAgW3BhZ2luYXRpb25dPVwicGFnaW5hdGlvblwiXG4gICAgICBbZGlzcGxheU9wdGlvbnNdPVwiZGlzcGxheU9wdGlvbnNcIlxuICAgICAgKG9uUmVsb2FkKT1cInJlZnJlc2goKVwiXG4gICAgICBbcm93c109XCJicmFuZGluZ1ZhcmlhbnQudmFyaWFudHNcIlxuICAgID5cbiAgICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgICAgW2ljb25dPVwiJ3BhbGV0dGUnXCJcbiAgICAgICAgW3RpdGxlXT1cIidObyBicmFuZGluZyB2YXJpYW50cycgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbc3VidGl0bGVdPVwiXG4gICAgICAgICAgJ1BlcnNvbmFsaXplIHlvdXIgZXhwZXJpZW5jZSB3aXRoIGEgdGhlbWUtYWJsZSBpbnRlcmZhY2UuIENyZWF0ZSBhIHVuaXF1ZSBsb29rIHRoYXQgYWxpZ25zXG4gICAgICAgICAgIHdpdGggeW91ciBicmFuZCBpZGVudGl0eS4nXG4gICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICBcIlxuICAgICAgICAqbmdJZj1cIiFicmFuZGluZ1ZhcmlhbnQucHVibGljT3B0aW9uc1wiXG4gICAgICAgIFtob3Jpem9udGFsXT1cImZhbHNlXCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgICBkYXRhLWN5PVwiYnJhbmRpbmctZ2V0LXN0YXJ0ZWQtdXNpbmctYnJhbmRpbmdcIlxuICAgICAgICAgIChjbGljayk9XCJnZXRTdGFydGVkVXNpbmdCcmFuZGluZygpXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPlxuICAgICAgICAgIEFkZCBicmFuZGluZyB2YXJpYW50XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9jOHktdWktZW1wdHktc3RhdGU+XG4gICAgPC9jOHktZGF0YS1ncmlkPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
327
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYnJhbmRpbmcvYnJhbmRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYnJhbmRpbmcvYnJhbmRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDeEIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFjLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFFTCxZQUFZLEVBQ1osZUFBZSxFQUNmLGlCQUFpQixFQUdqQixZQUFZLEVBRVosTUFBTSxFQUNOLFVBQVUsRUFDVixPQUFPLEVBQ1AsVUFBVSxFQUNWLGNBQWMsRUFDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxrQkFBa0IsRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDeEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkRB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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJyYW5kVmVyc2lvbixcbiAgU3RvcmVCcmFuZGluZ1NlcnZpY2UsXG4gIEJyYW5kaW5nVmVyc2lvblNlcnZpY2UsXG4gIEJyYW5kaW5nVHJhY2tpbmdTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYnJhbmRpbmcvc2hhcmVkL2RhdGEnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBY3Rpb25Db250cm9sLFxuICBBbGVydFNlcnZpY2UsXG4gIEFwcFN0YXRlU2VydmljZSxcbiAgQnVpbHRJbkFjdGlvblR5cGUsXG4gIENvbHVtbixcbiAgRGlzcGxheU9wdGlvbnMsXG4gIE1vZGFsU2VydmljZSxcbiAgUGFnaW5hdGlvbixcbiAgU3RhdHVzLFxuICBaaXBTZXJ2aWNlLFxuICBnZXR0ZXh0LFxuICBDb3JlTW9kdWxlLFxuICBEYXRhR3JpZE1vZHVsZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU2VydmljZSwgSUFwcGxpY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBTdGF0aWNBc3NldHNTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9zdGF0aWMtYXNzZXRzL2RhdGEnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IEFwcGx5QnJhbmRpbmdUb0FwcE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYXBwbHktYnJhbmRpbmctdG8tYXBwLW1vZGFsL2FwcGx5LWJyYW5kaW5nLXRvLWFwcC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRkQnJhbmRpbmdNb2RhbFNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2JyYW5kaW5nL3NoYXJlZC9sYXp5L2FkZC1icmFuZGluZy1tb2RhbCc7XG5pbXBvcnQgeyBCcmFuZGluZ1RhZ3NDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9icmFuZGluZy10YWdzLWNlbGwtcmVuZGVyZXIvYnJhbmRpbmctdGFncy1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCcmFuZGluZ0ltcG9ydE1vZGFsU2VydmljZSB9IGZyb20gJy4uL2JyYW5kaW5nLWltcG9ydC1tb2RhbC9icmFuZGluZy1pbXBvcnQtbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBCcmFuZGluZ05hbWVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9icmFuZGluZy1uYW1lLWNlbGwtcmVuZGVyZXIvYnJhbmRpbmctbmFtZS1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCcmFuZGluZ1RhZ3NIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9icmFuZGluZy10YWdzLWhlYWRlci1jZWxsLXJlbmRlcmVyL2JyYW5kaW5nLXRhZ3MtaGVhZGVyLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWJyYW5kaW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyYW5kaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIERhdGFHcmlkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBCcmFuZGluZ0NvbXBvbmVudCB7XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB7XG4gICAgcGFnZVNpemU6IDEwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG4gIGRpc3BsYXlPcHRpb25zOiBEaXNwbGF5T3B0aW9ucyA9IHtcbiAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgc3RyaXBlZDogdHJ1ZSxcbiAgICBmaWx0ZXI6IHRydWUsXG4gICAgZ3JpZEhlYWRlcjogdHJ1ZSxcbiAgICBob3ZlcjogdHJ1ZVxuICB9O1xuICBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gW1xuICAgIHtcbiAgICAgIHR5cGU6IEJ1aWx0SW5BY3Rpb25UeXBlLkVkaXQsXG4gICAgICBjYWxsYmFjazogKGVudHJ5OiBCcmFuZFZlcnNpb24sIF9yZWxvYWQpID0+IHtcbiAgICAgICAgdGhpcy5lZGl0QnJhbmRpbmcoZW50cnkubmFtZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBCdWlsdEluQWN0aW9uVHlwZS5FeHBvcnQsXG4gICAgICBjYWxsYmFjazogYXN5bmMgKGVudHJ5OiBCcmFuZFZlcnNpb24sIF9yZWxvYWQpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5leHBvcnRCcmFuZGluZyhlbnRyeSk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiAncHJldmlldycsXG4gICAgICBpY29uOiAnZXh0ZXJuYWwtbGluaycsXG4gICAgICB0ZXh0OiBnZXR0ZXh0KCdPcGVuIHByZXZpZXcnKSxcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoZW50cnk6IEJyYW5kVmVyc2lvbiwgX3JlbG9hZCkgPT4ge1xuICAgICAgICB0aGlzLmJyYW5kaW5ncy5vcGVuUHJldmlld0ZvckJyYW5kaW5nKGVudHJ5Lm5hbWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ2R1cGxpY2F0ZScsXG4gICAgICBpY29uOiAnY29weScsXG4gICAgICB0ZXh0OiBnZXR0ZXh0KCdEdXBsaWNhdGUnKSxcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoZW50cnk6IEJyYW5kVmVyc2lvbiwgX3JlbG9hZCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLmR1cGxpY2F0ZVZlcnNpb24oZW50cnkpO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdhcHBseS10by1hcHAnLFxuICAgICAgaWNvbjogJ2Zvcm0nLFxuICAgICAgdGV4dDogZ2V0dGV4dCgnQXBwbHkgdG8gc3BlY2lmaWMgYXBwcycpLFxuICAgICAgY2FsbGJhY2s6IGFzeW5jIChlbnRyeTogQnJhbmRWZXJzaW9uLCBfcmVsb2FkKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuYXBwbHlUb0FwcHMoZW50cnkpO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdzZXQtYXMtZGVmYXVsdCcsXG4gICAgICBpY29uOiAnZ2xvYmUxJyxcbiAgICAgIHRleHQ6IGdldHRleHQoJ1NldCBhcyBnbG9iYWwnKSxcbiAgICAgIHNob3dJZjogKGVudHJ5OiBCcmFuZFZlcnNpb24pID0+IHtcbiAgICAgICAgaWYgKGVudHJ5LnRhZ3M/LmluY2x1ZGVzKCdsYXRlc3QnKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0sXG4gICAgICBjYWxsYmFjazogYXN5bmMgKGVudHJ5OiBCcmFuZFZlcnNpb24sIF9yZWxvYWQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbmZpcm1Nb2RhbC5jb25maXJtKFxuICAgICAgICAgICAgZ2V0dGV4dCgnU2V0IGFzIGdsb2JhbCBicmFuZGluZycpLFxuICAgICAgICAgICAgZ2V0dGV4dChcbiAgICAgICAgICAgICAgJ0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3YW50IHRvIHNldCB0aGlzIHZhcmlhbnQgYXMgdGhlIGdsb2JhbCBicmFuZGluZz8gQnkgZG9pbmcgc28sIHRoaXMgdmFyaWFudCB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIGFwcHMgdGhhdCBkbyBub3QgaGF2ZSBhIHNwZWNpZmljIGJyYW5kaW5nIGFwcGxpZWQuIERvIHlvdSB3YW50IHRvIHByb2NlZWQ/J1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFN0YXR1cy5JTkZPXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gZGlkIG5vdCBjb25maXJtXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuYnJhbmRpbmdzLm1hcmtBc0FjdGl2ZShlbnRyeSk7XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRGVsZXRlLFxuICAgICAgc2hvd0lmOiAoZW50cnk6IEJyYW5kVmVyc2lvbikgPT4ge1xuICAgICAgICBpZiAoZW50cnkudGFncz8uaW5jbHVkZXMoJ2xhdGVzdCcpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoZW50cnk6IEJyYW5kVmVyc2lvbiwgX3JlbG9hZCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuY29uZmlybU1vZGFsLmNvbmZpcm0oXG4gICAgICAgICAgICBnZXR0ZXh0KCdEZWxldGUgYnJhbmRpbmcgdmFyaWFudCcpLFxuICAgICAgICAgICAgZ2V0dGV4dChcbiAgICAgICAgICAgICAgJ1lvdSBhcmUgYWJvdXQgdG8gZGVsZXRlIHRoaXMgYnJhbmRpbmcgdmFyaWFudC4gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS4gRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgU3RhdHVzLkRBTkdFUlxuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIGRpZCBub3QgY29uZmlybVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYnJhbmRpbmdUcmFja2luZy5kZWxldGVCcmFuZGluZ1ZhcmlhbnQoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UuZGVsZXRlVmVyc2lvblBhY2thZ2UoZW50cnkucHVibGljT3B0aW9uc0FwcCwge1xuICAgICAgICAgIHZlcnNpb246IGVudHJ5LnZlcnNpb25cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbiAgY29sdW1uczogQ29sdW1uW10gPSBbXG4gICAge1xuICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdOYW1lJyksXG4gICAgICBwYXRoOiAnbmFtZScsXG4gICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgY2VsbFJlbmRlcmVyQ29tcG9uZW50OiBCcmFuZGluZ05hbWVDZWxsUmVuZGVyZXJDb21wb25lbnRcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IGdldHRleHQoJ0FwcGxpZWQgdG9gQXBwbGljYXRpb25zIGEgYnJhbmRpbmcgYXBwbGllcyB0byAodGFibGUgY29sdW1uIGhlYWRlcilgJyksXG4gICAgICBwYXRoOiAndGFncycsXG4gICAgICBmaWx0ZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNlbGxDU1NDbGFzc05hbWU6ICdzbWFsbCcsXG4gICAgICBjZWxsUmVuZGVyZXJDb21wb25lbnQ6IEJyYW5kaW5nVGFnc0NlbGxSZW5kZXJlckNvbXBvbmVudCxcbiAgICAgIGhlYWRlckNlbGxSZW5kZXJlckNvbXBvbmVudDogQnJhbmRpbmdUYWdzSGVhZGVyQ2VsbFJlbmRlcmVyQ29tcG9uZW50XG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnb3duZXInLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdPd25lcicpLFxuICAgICAgcGF0aDogJ293bmVyJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnbGFzdFVwZGF0ZWQnLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdMYXN0IHVwZGF0ZWQnKSxcbiAgICAgIHBhdGg6ICdsYXN0VXBkYXRlZCcsXG4gICAgICBmaWx0ZXJhYmxlOiBmYWxzZVxuICAgIH1cbiAgXTtcbiAgY3VycmVudEFwcENvbnRleHRQYXRoID0gJ2FkbWluaXN0cmF0aW9uJztcbiAgYXZhaWxhYmxlQnJhbmRpbmdWYXJpYW50cyQ6IE9ic2VydmFibGU8e1xuICAgIHB1YmxpY09wdGlvbnM6IElBcHBsaWNhdGlvbjtcbiAgICB2YXJpYW50czogQnJhbmRWZXJzaW9uW107XG4gIH0+O1xuXG4gIHByaXZhdGUgcmVsb2FkVHJpZ2dlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dm9pZD4odW5kZWZpbmVkKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBicmFuZGluZ3M6IFN0b3JlQnJhbmRpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIGFwcGxpY2F0aW9uU2VydmljZTogQXBwbGljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgemlwOiBaaXBTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RhdGljQXNzZXRzOiBTdGF0aWNBc3NldHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBtb2RhbDogQnNNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maXJtTW9kYWw6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGJyYW5kaW5nVmVyc2lvblNlcnZpY2U6IEJyYW5kaW5nVmVyc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhZGRCcmFuZGluZ01vZGFsU2VydmljZTogQWRkQnJhbmRpbmdNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnJhbmRpbmdJbXBvcnRNb2RhbFNlcnZpY2U6IEJyYW5kaW5nSW1wb3J0TW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnJhbmRpbmdUcmFja2luZzogQnJhbmRpbmdUcmFja2luZ1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jdXJyZW50QXBwQ29udGV4dFBhdGggPSB0aGlzLmFwcFN0YXRlLnN0YXRlLmFwcD8uY29udGV4dFBhdGggfHwgdGhpcy5jdXJyZW50QXBwQ29udGV4dFBhdGg7XG4gICAgdGhpcy5hdmFpbGFibGVCcmFuZGluZ1ZhcmlhbnRzJCA9IHRoaXMucmVsb2FkVHJpZ2dlci5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuYnJhbmRpbmdzLmxvYWRCcmFuZGluZ1ZhcmlhbnRzKCkpLFxuICAgICAgLy8gaGlkZSB0aGUgZmFsbGJhY2sgZnJvbSB1c2Vyc1xuICAgICAgbWFwKHZhcmlhbnRzID0+IHtcbiAgICAgICAgdmFyaWFudHMudmFyaWFudHMgPSB2YXJpYW50cy52YXJpYW50cy5maWx0ZXIodiA9PiAhdi50YWdzPy5pbmNsdWRlcygnZmFsbGJhY2snKSk7XG4gICAgICAgIHJldHVybiB2YXJpYW50cztcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KVxuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGVBbGxCcmFuZGluZ3MocHVibGljT3B0aW9ucz86IElBcHBsaWNhdGlvbikge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29uZmlybU1vZGFsLmNvbmZpcm0oXG4gICAgICBnZXR0ZXh0KCdEZWxldGUgYWxsIGJyYW5kaW5nIHZhcmlhbnRzJyksXG4gICAgICBnZXR0ZXh0KFxuICAgICAgICBgPHAgY2xhc3M9XCJtLWItOFwiPlxuICAgICAgICAgIFRoaXMgYWN0aW9uIHdpbGwgcGVybWFuZW50bHkgcmVtb3ZlIGFsbCBjdXN0b20gYnJhbmRpbmcgdmFyaWFudHMuIFlvdXIgdGVuYW50IHdpbGwgcmV2ZXJ0XG4gICAgICAgICAgdG8gdGhlIGRlZmF1bHQgYnJhbmRpbmcuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJtLWItOFwiPlxuICAgICAgICAgIENvbnNpZGVyIGV4cG9ydGluZyB5b3VyIGN1c3RvbSBicmFuZGluZyB2YXJpYW50cyBiZWZvcmUgcHJvY2VlZGluZywgYXMgdGhpcyBhY3Rpb24gY2Fubm90XG4gICAgICAgICAgYmUgdW5kb25lLlxuICAgICAgICA8L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb250aW51ZT9cbiAgICAgICAgPC9wPmBcbiAgICAgICksXG4gICAgICBTdGF0dXMuREFOR0VSLFxuICAgICAgeyBjYW5jZWw6IGdldHRleHQoJ0NhbmNlbCcpLCBvazogZ2V0dGV4dCgnRGVsZXRlIGFsbCcpIH1cbiAgICApO1xuICAgIGlmIChyZXN1bHQgPT09IGZhbHNlIHx8ICh0eXBlb2YgcmVzdWx0ID09PSAnb2JqZWN0JyAmJiAhcmVzdWx0LmNvbmZpcm1lZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmJyYW5kaW5nVHJhY2tpbmcuZGVsZXRlQWxsQnJhbmRpbmdzKCk7XG5cbiAgICBhd2FpdCB0aGlzLmJyYW5kaW5ncy5kZWxldGVBbGxCcmFuZGluZ3MocHVibGljT3B0aW9ucyk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBhc3luYyBleHBvcnRCcmFuZGluZyh2YXJpYW50OiBCcmFuZFZlcnNpb24pIHtcbiAgICB0aGlzLmJyYW5kaW5nVHJhY2tpbmcuZXhwb3J0QnJhbmRpbmcoKTtcbiAgICBjb25zdCBicmFuZGluZyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYnJhbmRpbmdzLmdldFppcEZvckJpbmFyeSh2YXJpYW50LmlkKSk7XG4gICAgY29uc3Qgc3RhdGljQXNzZXRzQXBwID0gYXdhaXQgdGhpcy5zdGF0aWNBc3NldHMuZ2V0QXBwRm9yVGVuYW50KCdicmFuZGluZycpO1xuICAgIGNvbnN0IHN0YXRpY0Fzc2V0c1ppcCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5icmFuZGluZ3MuZ2V0WmlwRm9yQmluYXJ5KFxuICAgICAgICBzdGF0aWNBc3NldHNBcHAuYWN0aXZlVmVyc2lvbklkLFxuICAgICAgICB0aGlzLnN0YXRpY0Fzc2V0cy5maWxlTmFtZXMuZXhwb3J0WmlwTmFtZVxuICAgICAgKVxuICAgICk7XG4gICAgY29uc3QgYmxvYiA9IGF3YWl0IHRoaXMuemlwLmNyZWF0ZVppcChbXG4gICAgICB7IGZpbGVOYW1lOiB0aGlzLmJyYW5kaW5ncy5maWxlTmFtZXMuZXhwb3J0WmlwTmFtZSwgYmxvYjogYnJhbmRpbmcgfSxcbiAgICAgIHsgZmlsZU5hbWU6IHRoaXMuc3RhdGljQXNzZXRzLmZpbGVOYW1lcy5leHBvcnRaaXBOYW1lLCBibG9iOiBzdGF0aWNBc3NldHNaaXAgfVxuICAgIF0pO1xuICAgIHNhdmVBcyhibG9iLCBgYnJhbmRpbmctZXhwb3J0LSR7dmFyaWFudC5uYW1lfS0ke3ZhcmlhbnQucmV2aXNpb259LSR7bmV3IERhdGUoKS5nZXRUaW1lKCl9LnppcGApO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnJlbG9hZFRyaWdnZXIubmV4dCgpO1xuICB9XG5cbiAgYXN5bmMgYWRkTmV3VmVyc2lvbigpIHtcbiAgICBjb25zdCB2ZXJzaW9uRGV0YWlscyA9IGF3YWl0IHRoaXMuYWRkQnJhbmRpbmdNb2RhbFNlcnZpY2Uub3BlbkFkZEJyYW5kaW5nTW9kYWwoKTtcbiAgICBpZiAoIXZlcnNpb25EZXRhaWxzKSB7XG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGZhbGxCYWNrQnJhbmRpbmcgPSB7fTtcbiAgICB0cnkge1xuICAgICAgZmFsbEJhY2tCcmFuZGluZyA9IGF3YWl0IHRoaXMuYnJhbmRpbmdzLmdldEJyYW5kaW5nT3B0aW9uc0ZvclZlcnNpb24oJ2xhdGVzdCcpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIGxvYWQgbGF0ZXN0IGJyYW5kaW5nYCk7XG4gICAgfVxuXG4gICAgdGhpcy5icmFuZGluZ1RyYWNraW5nLmFkZE5ld1ZlcnNpb24oKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmJyYW5kaW5ncy5hZGRCcmFuZGluZyhcbiAgICAgICAgdGhpcy5icmFuZGluZ1ZlcnNpb25TZXJ2aWNlLmNyZWF0ZUluaXRpYWxCcmFuZGluZ1ZlcnNpb24odmVyc2lvbkRldGFpbHMuYnJhbmRpbmdOYW1lKSxcbiAgICAgICAgZmFsbEJhY2tCcmFuZGluZyxcbiAgICAgICAgW3ZlcnNpb25EZXRhaWxzLmJyYW5kaW5nTmFtZV1cbiAgICAgICk7XG4gICAgICBhd2FpdCB0aGlzLmJyYW5kaW5ncy53YWl0Rm9yQnJhbmRpbmdUb0JlUHJlc2VudCh2ZXJzaW9uRGV0YWlscy5icmFuZGluZ05hbWUpO1xuICAgICAgdGhpcy5lZGl0QnJhbmRpbmcodmVyc2lvbkRldGFpbHMuYnJhbmRpbmdOYW1lKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSwgJ2RhbmdlcicpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGR1cGxpY2F0ZVZlcnNpb24odmVyc2lvbjogQnJhbmRWZXJzaW9uKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IHRoaXMuYnJhbmRpbmdzLmdldEJyYW5kaW5nT3B0aW9uc0ZvclZlcnNpb24odmVyc2lvbi52ZXJzaW9uKTtcbiAgICBjb25zdCB2ZXJzaW9uRGV0YWlscyA9IGF3YWl0IHRoaXMuYWRkQnJhbmRpbmdNb2RhbFNlcnZpY2Uub3BlbkR1cGxpY2F0ZUJyYW5kaW5nTW9kYWwoKTtcbiAgICBpZiAoIXZlcnNpb25EZXRhaWxzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5icmFuZGluZ1RyYWNraW5nLmR1cGxpY2F0ZVZlcnNpb24oKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmJyYW5kaW5ncy5hZGRCcmFuZGluZyhcbiAgICAgICAgdGhpcy5icmFuZGluZ1ZlcnNpb25TZXJ2aWNlLmNyZWF0ZUluaXRpYWxCcmFuZGluZ1ZlcnNpb24odmVyc2lvbkRldGFpbHMuYnJhbmRpbmdOYW1lKSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgW3ZlcnNpb25EZXRhaWxzLmJyYW5kaW5nTmFtZV1cbiAgICAgICk7XG4gICAgICBhd2FpdCB0aGlzLmJyYW5kaW5ncy53YWl0Rm9yQnJhbmRpbmdUb0JlUHJlc2VudCh2ZXJzaW9uRGV0YWlscy5icmFuZGluZ05hbWUpO1xuICAgICAgdGhpcy5lZGl0QnJhbmRpbmcodmVyc2lvbkRldGFpbHMuYnJhbmRpbmdOYW1lKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSwgJ2RhbmdlcicpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGVkaXRCcmFuZGluZyhicmFuZGluZ05hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYnJhbmRpbmdOYW1lLCAnZWRpdCddLCB7IHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUgfSk7XG4gIH1cblxuICBhc3luYyBnZXRTdGFydGVkVXNpbmdCcmFuZGluZygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbmZpcm1Nb2RhbC5jb25maXJtKFxuICAgICAgZ2V0dGV4dChgR2V0IHN0YXJ0ZWQgdXNpbmcgYnJhbmRpbmcgdmFyaWFudHNgKSxcbiAgICAgIGdldHRleHQoXG4gICAgICAgIGA8cCBjbGFzcz1cIm0tYi04XCI+Q29uZmlybWluZyB0aGlzIGFjdGlvbiBjcmVhdGVzIHR3byBicmFuZGluZyB2YXJpYW50czo8L3A+XG4gICAgICAgIDx1bCBjbGFzcz1cIm0tYi04IHAtbC0xNlwiPlxuICAgICAgICAgIDxsaT5BIGRlZmF1bHQgY29weSBvZiB5b3VyIGN1cnJlbnQgZ2xvYmFsIGJyYW5kaW5nPC9saT5cbiAgICAgICAgICA8bGk+WW91ciBuZXcgY3VzdG9taXphYmxlIHZhcmlhbnQuPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgICAgPHAgY2xhc3M9XCJtLWItOFwiPlxuICAgICAgICAgIEFmdGVyIGN1c3RvbWl6YXRpb24sIHlvdSBjYW4gc2V0IHlvdXIgbmV3IHZhcmlhbnQgYXMgZ2xvYmFsIG9yIGFwcGx5IGl0IHRvIHNwZWNpZmljIGFwcHMuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgVG8gcmV2ZXJ0IGNoYW5nZXMsIHNpbXBseSBzZXQgdGhlIGRlZmF1bHQgYnJhbmRpbmcgYXMgZ2xvYmFsIG9yIHVzZSB0aGUgXCJEZWxldGUgYWxsXG4gICAgICAgICAgYnJhbmRpbmdzXCIgYnV0dG9uIGF0IGFueSB0aW1lLlxuICAgICAgICA8L3A+YFxuICAgICAgKVxuICAgICk7XG4gICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UgfHwgKHR5cGVvZiByZXN1bHQgPT09ICdvYmplY3QnICYmICFyZXN1bHQuY29uZmlybWVkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYnJhbmRpbmdUcmFja2luZy5nZXRTdGFydGVkVXNpbmdCcmFuZGluZygpO1xuXG4gICAgYXdhaXQgdGhpcy5icmFuZGluZ3MuZ2V0U3RhcnRlZFVzaW5nQnJhbmRpbmcoKTtcbiAgICBhd2FpdCB0aGlzLmFkZE5ld1ZlcnNpb24oKTtcbiAgfVxuXG4gIGFzeW5jIGFwcGx5VG9BcHBzKHZlcnNpb246IEJyYW5kVmVyc2lvbikge1xuICAgIGNvbnN0IHByZWZpeCA9ICdhcHAtJztcbiAgICBjb25zdCBjdXJyZW50VGFncyA9IHZlcnNpb24udGFnc1xuICAgICAgLmZpbHRlcih0YWcgPT4gdGFnLnN0YXJ0c1dpdGgocHJlZml4KSlcbiAgICAgIC5tYXAodGFnID0+IHRhZy5yZXBsYWNlKHByZWZpeCwgJycpKTtcbiAgICBjb25zdCBvdGhlclRhZ3MgPSB2ZXJzaW9uLnRhZ3MuZmlsdGVyKHRhZyA9PiAhdGFnLnN0YXJ0c1dpdGgocHJlZml4KSk7XG4gICAgbGV0IHNlbGVjdGVkVGFnczogQXdhaXRlZDxBcHBseUJyYW5kaW5nVG9BcHBNb2RhbENvbXBvbmVudFsncmVzdWx0J10+O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWwuc2hvdyhBcHBseUJyYW5kaW5nVG9BcHBNb2RhbENvbXBvbmVudCwge1xuICAgICAgICBpbml0aWFsU3RhdGU6IHsgY3VycmVudFRhZ3MgfSxcbiAgICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgICAgICAga2V5Ym9hcmQ6IGZhbHNlXG4gICAgICB9KTtcbiAgICAgIHNlbGVjdGVkVGFncyA9IGF3YWl0IG1vZGFsUmVmLmNvbnRlbnQucmVzdWx0O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG1vZGFsIGNsb3NlZFxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGVkQXBwcyA9IE9iamVjdC5rZXlzKHNlbGVjdGVkVGFncykuZmlsdGVyKGtleSA9PiBzZWxlY3RlZFRhZ3Nba2V5XSk7XG5cbiAgICB0aGlzLmJyYW5kaW5nVHJhY2tpbmcuYXBwbHlUb0FwcHMoc2VsZWN0ZWRBcHBzKTtcblxuICAgIGNvbnN0IHRhZ3NUb1NldCA9IFsuLi5vdGhlclRhZ3MsIC4uLnNlbGVjdGVkQXBwcy5tYXAodGFnID0+IGAke3ByZWZpeH0ke3RhZ31gKV07XG5cbiAgICBhd2FpdCB0aGlzLnJlbW92ZVRhZ3NGcm9tT3RoZXJWZXJzaW9ucyh2ZXJzaW9uLnB1YmxpY09wdGlvbnNBcHAsIHRhZ3NUb1NldCwgdmVyc2lvbi52ZXJzaW9uKTtcbiAgICBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5zZXRQYWNrYWdlVmVyc2lvblRhZyhcbiAgICAgIHZlcnNpb24ucHVibGljT3B0aW9uc0FwcCxcbiAgICAgIHZlcnNpb24udmVyc2lvbixcbiAgICAgIHRhZ3NUb1NldFxuICAgICk7XG4gIH1cblxuICBhc3luYyBpbXBvcnRCcmFuZGluZygpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5icmFuZGluZ0ltcG9ydE1vZGFsU2VydmljZS5vcGVuQnJhbmRpbmdJbXBvcnRNb2RhbCgpO1xuXG4gICAgICB0aGlzLmJyYW5kaW5ncy5yZWZyZXNoVHJpZ2dlckJyYW5kaW5nVmFyaWFudHMubmV4dCgpO1xuICAgICAgdGhpcy5yZWxvYWRUcmlnZ2VyLm5leHQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBtb2RhbCBjbG9zZWRcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlbW92ZVRhZ3NGcm9tT3RoZXJWZXJzaW9ucyhcbiAgICBwdWJsaWNPcHRpb25zQXBwOiBJQXBwbGljYXRpb24sXG4gICAgdGFnc1RvUmVtb3ZlOiBzdHJpbmdbXSxcbiAgICB2ZXJzaW9uVG9JZ25vcmU/OiBzdHJpbmdcbiAgKSB7XG4gICAgZm9yIChjb25zdCB2ZXJzaW9uIG9mIHB1YmxpY09wdGlvbnNBcHAuYXBwbGljYXRpb25WZXJzaW9ucykge1xuICAgICAgaWYgKHZlcnNpb24udmVyc2lvbiA9PT0gdmVyc2lvblRvSWdub3JlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVtb3ZlZFRhZ3MgPSB2ZXJzaW9uLnRhZ3MuZmlsdGVyKHRhZyA9PiAhdGFnc1RvUmVtb3ZlLmluY2x1ZGVzKHRhZykpO1xuICAgICAgaWYgKHJlbW92ZWRUYWdzLmxlbmd0aCA9PT0gdmVyc2lvbi50YWdzLmxlbmd0aCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLnNldFBhY2thZ2VWZXJzaW9uVGFnKFxuICAgICAgICBwdWJsaWNPcHRpb25zQXBwLFxuICAgICAgICB2ZXJzaW9uLnZlcnNpb24sXG4gICAgICAgIHJlbW92ZWRUYWdzXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiPGM4eS10aXRsZSB0cmFuc2xhdGU+QnJhbmRpbmc8L2M4eS10aXRsZT5cblxuPGM4eS1icmVhZGNydW1iPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidwYWxldHRlJ1wiXG4gICAgW2xhYmVsXT1cIidCcmFuZGluZycgfCB0cmFuc2xhdGVcIlxuICAgIFtwYXRoXT1cIicvYnJhbmRpbmctZWRpdG9yJ1wiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiYXZhaWxhYmxlQnJhbmRpbmdWYXJpYW50cyQgfCBhc3luYyBhcyBicmFuZGluZ1ZhcmlhbnQ7IGVsc2UgbG9hZGluZ1wiPlxuICA8Yzh5LWFjdGlvbi1iYXItaXRlbVxuICAgICpuZ0lmPVwiYnJhbmRpbmdWYXJpYW50LnB1YmxpY09wdGlvbnNcIlxuICAgIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4gICAgW3ByaW9yaXR5XT1cIjMwXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICAgIChjbGljayk9XCJhZGROZXdWZXJzaW9uKClcIlxuICAgICAgZGF0YS1jeT1cImJyYW5kaW5nLWFkZC1icmFuZGluZy12YXJpYW50XCJcbiAgICA+XG4gICAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+QWRkIHZhcmlhbnQ8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvYzh5LWFjdGlvbi1iYXItaXRlbT5cbiAgPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuICAgIFtwcmlvcml0eV09XCIyMFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgICBkYXRhLWN5PVwiYnJhbmRpbmctaW1wb3J0LWJyYW5kaW5nXCJcbiAgICAgIChjbGljayk9XCJpbXBvcnRCcmFuZGluZygpXCJcbiAgICA+XG4gICAgICA8aSBbYzh5SWNvbl09XCInZGF0YS1pbXBvcnQnXCI+PC9pPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPkltcG9ydCB2YXJpYW50PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbiAgPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgICAqbmdJZj1cImJyYW5kaW5nVmFyaWFudC5wdWJsaWNPcHRpb25zXCJcbiAgICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuICAgIFtwcmlvcml0eV09XCIxMFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgICAoY2xpY2spPVwiZGVsZXRlQWxsQnJhbmRpbmdzKGJyYW5kaW5nVmFyaWFudC5wdWJsaWNPcHRpb25zKVwiXG4gICAgICBkYXRhLWN5PVwiYnJhbmRpbmctcmVtb3ZlLWFsbC1icmFuZGluZ3NcIlxuICAgID5cbiAgICAgIDxpIFtjOHlJY29uXT1cIid0cmFzaC1vJ1wiPjwvaT5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5EZWxldGUgYWxsIHZhcmlhbnRzPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZnVsbHBhZ2UgZC1mbGV4IGQtY29sIGJvcmRlci10b3BcIj5cbiAgICA8Yzh5LWRhdGEtZ3JpZFxuICAgICAgW3RpdGxlXT1cIidCcmFuZGluZyB2YXJpYW50cycgfCB0cmFuc2xhdGVcIlxuICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICBbYWN0aW9uQ29udHJvbHNdPVwiYWN0aW9uQ29udHJvbHNcIlxuICAgICAgW3BhZ2luYXRpb25dPVwicGFnaW5hdGlvblwiXG4gICAgICBbZGlzcGxheU9wdGlvbnNdPVwiZGlzcGxheU9wdGlvbnNcIlxuICAgICAgKG9uUmVsb2FkKT1cInJlZnJlc2goKVwiXG4gICAgICBbcm93c109XCJicmFuZGluZ1ZhcmlhbnQudmFyaWFudHNcIlxuICAgID5cbiAgICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgICAgW2ljb25dPVwiJ3BhbGV0dGUnXCJcbiAgICAgICAgW3RpdGxlXT1cIidObyBicmFuZGluZyB2YXJpYW50cycgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbc3VidGl0bGVdPVwiXG4gICAgICAgICAgJ1BlcnNvbmFsaXplIHlvdXIgZXhwZXJpZW5jZSB3aXRoIGEgdGhlbWUtYWJsZSBpbnRlcmZhY2UuIENyZWF0ZSBhIHVuaXF1ZSBsb29rIHRoYXQgYWxpZ25zXG4gICAgICAgICAgIHdpdGggeW91ciBicmFuZCBpZGVudGl0eS4nXG4gICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICBcIlxuICAgICAgICAqbmdJZj1cIiFicmFuZGluZ1ZhcmlhbnQucHVibGljT3B0aW9uc1wiXG4gICAgICAgIFtob3Jpem9udGFsXT1cImZhbHNlXCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgICBkYXRhLWN5PVwiYnJhbmRpbmctZ2V0LXN0YXJ0ZWQtdXNpbmctYnJhbmRpbmdcIlxuICAgICAgICAgIChjbGljayk9XCJnZXRTdGFydGVkVXNpbmdCcmFuZGluZygpXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPlxuICAgICAgICAgIEFkZCBicmFuZGluZyB2YXJpYW50XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9jOHktdWktZW1wdHktc3RhdGU+XG4gICAgPC9jOHktZGF0YS1ncmlkPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -59,7 +59,7 @@ export class TypeDashboardTargetAssetsGridComponent {
|
|
|
59
59
|
this.router.navigate([`/${parentSubPath}/${val.id}/dashboard/${this.dashboard.id}`]);
|
|
60
60
|
}
|
|
61
61
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TypeDashboardTargetAssetsGridComponent, deps: [{ token: i1.Router }, { token: i2.TypeDashboardAssetsGridService }, { token: i3.ContextDashboardService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TypeDashboardTargetAssetsGridComponent, selector: "c8y-type-dashboard-target-assets-grid", inputs: { dashboard: "dashboard" }, outputs: { onNavigateToAsset: "onNavigateToAsset" }, ngImport: i0, template: "<c8y-data-grid\n [title]=\"''\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [showSearch]=\"true\"\n>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n", dependencies: [{ kind: "component", type: i4.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i4.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "pipe", type: i4.C8yTranslatePipe, name: "translate" }] }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TypeDashboardTargetAssetsGridComponent, selector: "c8y-type-dashboard-target-assets-grid", inputs: { dashboard: "dashboard" }, outputs: { onNavigateToAsset: "onNavigateToAsset" }, ngImport: i0, template: "<c8y-data-grid\n [title]=\"''\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [showSearch]=\"true\"\n>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n", dependencies: [{ kind: "component", type: i4.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i4.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "hideReload"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "pipe", type: i4.C8yTranslatePipe, name: "translate" }] }); }
|
|
63
63
|
}
|
|
64
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TypeDashboardTargetAssetsGridComponent, decorators: [{
|
|
65
65
|
type: Component,
|
|
@@ -69,7 +69,7 @@ export class TypeDashboardsListComponent {
|
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
71
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TypeDashboardsListComponent, deps: [{ token: i1.DashboardManagerService }, { token: i2.BsModalService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
72
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TypeDashboardsListComponent, selector: "c8y-dashboard-manager", ngImport: i0, template: "<c8y-title>\n {{ 'Dashboard manager' | translate }}\n</c8y-title>\n\n<div class=\"content-fullpage d-flex d-col border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [showSearch]=\"true\"\n [displayOptions]=\"displayOptions\"\n [refresh]=\"refresh\"\n [expandableRows]=\"'ASYNC'\"\n >\n <div\n *c8yExpandableRow=\"\n let context;\n let asyncRenderSuccess = asyncRenderSuccess;\n let asyncRenderFail = asyncRenderFail\n \"\n >\n <c8y-type-dashboard-info\n [context]=\"context\"\n [asyncRenderSuccess]=\"asyncRenderSuccess\"\n [asyncRenderFail]=\"asyncRenderFail\"\n ></c8y-type-dashboard-info>\n </div>\n\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No matching dashboards.' | translate\"\n [subtitle]=\"'Refine your search terms' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column name=\"icon\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <i [c8yIcon]=\"context.value\"></i>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"deviceTypeValue\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span class=\"label label-info\">\n {{ context.value }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n", dependencies: [{ kind: "component", type: i3.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.CellRendererDefDirective, selector: "[c8yCellRendererDef]" }, { kind: "directive", type: i3.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i3.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "directive", type: i3.ExpandableRowDirective, selector: "[c8yExpandableRow]" }, { kind: "component", type: i3.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i5.TypeDashboardInfoComponent, selector: "c8y-type-dashboard-info", inputs: ["deviceTypeValue", "displayDeviceTypeValue", "context", "asyncRenderSuccess", "asyncRenderFail"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] }); }
|
|
72
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TypeDashboardsListComponent, selector: "c8y-dashboard-manager", ngImport: i0, template: "<c8y-title>\n {{ 'Dashboard manager' | translate }}\n</c8y-title>\n\n<div class=\"content-fullpage d-flex d-col border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [showSearch]=\"true\"\n [displayOptions]=\"displayOptions\"\n [refresh]=\"refresh\"\n [expandableRows]=\"'ASYNC'\"\n >\n <div\n *c8yExpandableRow=\"\n let context;\n let asyncRenderSuccess = asyncRenderSuccess;\n let asyncRenderFail = asyncRenderFail\n \"\n >\n <c8y-type-dashboard-info\n [context]=\"context\"\n [asyncRenderSuccess]=\"asyncRenderSuccess\"\n [asyncRenderFail]=\"asyncRenderFail\"\n ></c8y-type-dashboard-info>\n </div>\n\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No matching dashboards.' | translate\"\n [subtitle]=\"'Refine your search terms' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column name=\"icon\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <i [c8yIcon]=\"context.value\"></i>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"deviceTypeValue\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span class=\"label label-info\">\n {{ context.value }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n", dependencies: [{ kind: "component", type: i3.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.CellRendererDefDirective, selector: "[c8yCellRendererDef]" }, { kind: "directive", type: i3.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i3.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "hideReload"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "directive", type: i3.ExpandableRowDirective, selector: "[c8yExpandableRow]" }, { kind: "component", type: i3.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i5.TypeDashboardInfoComponent, selector: "c8y-type-dashboard-info", inputs: ["deviceTypeValue", "displayDeviceTypeValue", "context", "asyncRenderSuccess", "asyncRenderFail"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] }); }
|
|
73
73
|
}
|
|
74
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TypeDashboardsListComponent, decorators: [{
|
|
75
75
|
type: Component,
|