@c8y/ngx-components 1021.78.7 → 1021.81.0
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/asset-property/asset-property.model.d.ts +33 -0
- package/core/asset-property/asset-property.model.d.ts.map +1 -0
- package/core/asset-property/asset-property.service.d.ts +20 -0
- package/core/asset-property/asset-property.service.d.ts.map +1 -0
- package/core/common/virtual-scroll/virtual-scroller-wrapper.component.d.ts +7 -1
- package/core/common/virtual-scroll/virtual-scroller-wrapper.component.d.ts.map +1 -1
- package/core/data-grid/column/tree-node-column/tree-node.cell-renderer.component.d.ts +23 -0
- package/core/data-grid/column/tree-node-column/tree-node.cell-renderer.component.d.ts.map +1 -0
- package/core/data-grid/column/tree-node-column/tree-node.data-grid-column.d.ts +23 -0
- package/core/data-grid/column/tree-node-column/tree-node.data-grid-column.d.ts.map +1 -0
- package/core/data-grid/column/tree-node-column/tree-node.header-cell-renderer.component.d.ts +6 -0
- package/core/data-grid/column/tree-node-column/tree-node.header-cell-renderer.component.d.ts.map +1 -0
- package/core/data-grid/configure-custom-column/asset-property-grid.component.d.ts +31 -0
- package/core/data-grid/configure-custom-column/asset-property-grid.component.d.ts.map +1 -0
- package/core/data-grid/configure-custom-column/configure-custom-column.service.d.ts +17 -0
- package/core/data-grid/configure-custom-column/configure-custom-column.service.d.ts.map +1 -0
- package/core/data-grid/configure-custom-column/identifier.cell-renderer.component.d.ts +9 -0
- package/core/data-grid/configure-custom-column/identifier.cell-renderer.component.d.ts.map +1 -0
- package/core/data-grid/configure-custom-column/identifier.data-grid-column.d.ts +6 -0
- package/core/data-grid/configure-custom-column/identifier.data-grid-column.d.ts.map +1 -0
- package/core/data-grid/configure-custom-column/tags.cell-renderer.components.d.ts +9 -0
- package/core/data-grid/configure-custom-column/tags.cell-renderer.components.d.ts.map +1 -0
- package/core/data-grid/configure-custom-column/tags.data-grid-column.d.ts +6 -0
- package/core/data-grid/configure-custom-column/tags.data-grid-column.d.ts.map +1 -0
- package/core/data-grid/configure-custom-column/title.cell-renderer.component.d.ts +9 -0
- package/core/data-grid/configure-custom-column/title.cell-renderer.component.d.ts.map +1 -0
- package/core/data-grid/configure-custom-column/title.data-grid-column.d.ts +6 -0
- package/core/data-grid/configure-custom-column/title.data-grid-column.d.ts.map +1 -0
- package/core/data-grid/data-grid.component.d.ts +33 -6
- package/core/data-grid/data-grid.component.d.ts.map +1 -1
- package/core/data-grid/data-grid.model.d.ts +13 -1
- package/core/data-grid/data-grid.model.d.ts.map +1 -1
- package/core/data-grid/data-grid.module.d.ts.map +1 -1
- package/core/data-grid/filter-chip/filter-mapper.module.d.ts.map +1 -1
- package/core/data-grid/grid-data-source.d.ts +11 -2
- package/core/data-grid/grid-data-source.d.ts.map +1 -1
- package/core/data-grid/index.d.ts +4 -1
- package/core/data-grid/index.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/asset-property/asset-property.model.mjs +2 -0
- package/esm2022/core/asset-property/asset-property.service.mjs +84 -0
- package/esm2022/core/common/virtual-scroll/virtual-scroller-wrapper.component.mjs +25 -6
- package/esm2022/core/data-grid/column/tree-node-column/tree-node.cell-renderer.component.mjs +87 -0
- package/esm2022/core/data-grid/column/tree-node-column/tree-node.data-grid-column.mjs +15 -0
- package/esm2022/core/data-grid/column/tree-node-column/tree-node.header-cell-renderer.component.mjs +15 -0
- package/esm2022/core/data-grid/configure-custom-column/asset-property-grid.component.mjs +131 -0
- package/esm2022/core/data-grid/configure-custom-column/configure-custom-column.component.mjs +3 -3
- package/esm2022/core/data-grid/configure-custom-column/configure-custom-column.service.mjs +51 -0
- package/esm2022/core/data-grid/configure-custom-column/identifier.cell-renderer.component.mjs +20 -0
- package/esm2022/core/data-grid/configure-custom-column/identifier.data-grid-column.mjs +26 -0
- package/esm2022/core/data-grid/configure-custom-column/tags.cell-renderer.components.mjs +20 -0
- package/esm2022/core/data-grid/configure-custom-column/tags.data-grid-column.mjs +25 -0
- package/esm2022/core/data-grid/configure-custom-column/title.cell-renderer.component.mjs +20 -0
- package/esm2022/core/data-grid/configure-custom-column/title.data-grid-column.mjs +26 -0
- package/esm2022/core/data-grid/data-grid.component.mjs +104 -58
- package/esm2022/core/data-grid/data-grid.model.mjs +1 -1
- package/esm2022/core/data-grid/data-grid.module.mjs +1 -1
- package/esm2022/core/data-grid/filter-chip/filter-mapper.module.mjs +3 -2
- package/esm2022/core/data-grid/grid-data-source.mjs +92 -22
- package/esm2022/core/data-grid/index.mjs +5 -2
- 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 +1 -1
- package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +1 -1
- package/esm2022/files-repository/files-repository.component.mjs +1 -1
- package/esm2022/messaging-management/messaging/topic/topic-list-view.component.mjs +2 -2
- package/esm2022/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-view.component.mjs +2 -2
- package/esm2022/operations/bulk-single-operations-list/single-operations-list.component.mjs +2 -2
- 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-asset-property-grid.component-xQgHuomT.mjs +233 -0
- package/fesm2022/c8y-ngx-components-asset-property-grid.component-xQgHuomT.mjs.map +1 -0
- 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-c8y-ngx-components-D2rmddmn.mjs +36873 -0
- package/fesm2022/c8y-ngx-components-c8y-ngx-components-D2rmddmn.mjs.map +1 -0
- 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 +1 -1
- 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-messaging-management.mjs +2 -2
- package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.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 +1 -36518
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/locales.pot +36 -0
- package/package.json +1 -1
|
@@ -127,7 +127,7 @@ export class SingleOperationsListComponent {
|
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SingleOperationsListComponent, deps: [{ token: i1.BulkOperationsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
130
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SingleOperationsListComponent, isStandalone: true, selector: "c8y-single-operations-list", inputs: { bulkOperation: "bulkOperation", readOnly: "readOnly" }, outputs: { onRetryFailedOperations: "onRetryFailedOperations" }, viewQueries: [{ propertyName: "statusFilter", first: true, predicate: StatusFilterComponent, descendants: true }, { propertyName: "dataGrid", first: true, predicate: DataGridComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container\n *ngIf=\"\n bulkOperation.progress.failed ||\n bulkOperation.progress.executing ||\n bulkOperation.progress.pending ||\n bulkOperation.progress.successful\n \"\n>\n <div\n class=\"legend form-block p-t-16 m-b-0\"\n translate\n >\n Operations\n </div>\n <div class=\"d-flex a-i-center\">\n <div class=\"d-flex a-i-center p-b-8\">\n <span\n class=\"m-r-4 text-medium\"\n translate\n >\n Filter by status\n </span>\n <c8y-status-filter\n small\n [options]=\"OPERATION_STATUS_OPTIONS_MAP\"\n (onFilterChanged)=\"reload($event)\"\n ></c8y-status-filter>\n </div>\n <div\n class=\"m-l-auto p-b-8\"\n *ngIf=\"!readOnly && bulkOperation.progress.failed > 0\"\n >\n <button\n class=\"btn btn-navbar\"\n title=\"{{ 'Retry failed operations' | translate }}\"\n (click)=\"retryBulkOperation()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"repeat\"\n ></i>\n <span translate>Retry failed operations</span>\n </button>\n </div>\n </div>\n <c8y-data-grid\n [actionControls]=\"actions\"\n [columns]=\"columns\"\n [displayOptions]=\"displayOptions\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [pagination]=\"pagination\"\n >\n <c8y-ui-empty-state\n icon=\"search\"\n [title]=\"'No single operations of the selected status to display.' | translate\"\n [subtitle]=\"'Single operations will be displayed here' | translate\"\n horizontal\n ></c8y-ui-empty-state>\n </c8y-data-grid>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: StatusFilterModule }, { kind: "component", type: i2.StatusFilterComponent, selector: "c8y-status-filter", inputs: ["options", "multiple", "small"], outputs: ["onFilterChanged"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "ngmodule", type: DataGridModule }, { 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: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }] }); }
|
|
130
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SingleOperationsListComponent, isStandalone: true, selector: "c8y-single-operations-list", inputs: { bulkOperation: "bulkOperation", readOnly: "readOnly" }, outputs: { onRetryFailedOperations: "onRetryFailedOperations" }, viewQueries: [{ propertyName: "statusFilter", first: true, predicate: StatusFilterComponent, descendants: true }, { propertyName: "dataGrid", first: true, predicate: DataGridComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container\n *ngIf=\"\n bulkOperation.progress.failed ||\n bulkOperation.progress.executing ||\n bulkOperation.progress.pending ||\n bulkOperation.progress.successful\n \"\n>\n <div\n class=\"legend form-block p-t-16 m-b-0\"\n translate\n >\n Operations\n </div>\n <div class=\"d-flex a-i-center\">\n <div class=\"d-flex a-i-center p-b-8\">\n <span\n class=\"m-r-4 text-medium\"\n translate\n >\n Filter by status\n </span>\n <c8y-status-filter\n small\n [options]=\"OPERATION_STATUS_OPTIONS_MAP\"\n (onFilterChanged)=\"reload($event)\"\n ></c8y-status-filter>\n </div>\n <div\n class=\"m-l-auto p-b-8\"\n *ngIf=\"!readOnly && bulkOperation.progress.failed > 0\"\n >\n <button\n class=\"btn btn-navbar\"\n title=\"{{ 'Retry failed operations' | translate }}\"\n (click)=\"retryBulkOperation()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"repeat\"\n ></i>\n <span translate>Retry failed operations</span>\n </button>\n </div>\n </div>\n <c8y-data-grid\n [actionControls]=\"actions\"\n [columns]=\"columns\"\n [displayOptions]=\"displayOptions\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [pagination]=\"pagination\"\n >\n <c8y-ui-empty-state\n icon=\"search\"\n [title]=\"'No single operations of the selected status to display.' | translate\"\n [subtitle]=\"'Single operations will be displayed here' | translate\"\n horizontal\n ></c8y-ui-empty-state>\n </c8y-data-grid>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: StatusFilterModule }, { kind: "component", type: i2.StatusFilterComponent, selector: "c8y-status-filter", inputs: ["options", "multiple", "small"], outputs: ["onFilterChanged"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "ngmodule", type: DataGridModule }, { kind: "component", type: i3.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }] }); }
|
|
131
131
|
}
|
|
132
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SingleOperationsListComponent, decorators: [{
|
|
133
133
|
type: Component,
|
|
@@ -152,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
152
152
|
type: ViewChild,
|
|
153
153
|
args: [DataGridComponent, { static: false }]
|
|
154
154
|
}] } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLW9wZXJhdGlvbnMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2J1bGstc2luZ2xlLW9wZXJhdGlvbnMtbGlzdC9zaW5nbGUtb3BlcmF0aW9ucy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL29wZXJhdGlvbnMvYnVsay1zaW5nbGUtb3BlcmF0aW9ucy1saXN0L3NpbmdsZS1vcGVyYXRpb25zLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBSUwsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDaEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUVMLFlBQVksRUFDWixnQkFBZ0IsRUFFaEIsaUJBQWlCLEVBQ2pCLGNBQWMsRUFHZCxtQkFBbUIsRUFDbkIsT0FBTyxFQUNQLGFBQWEsRUFJZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQy9GLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDMUIsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUc3QixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ25CLE1BQU0sOENBQThDLENBQUM7QUFDdEQsT0FBTyxFQUFFLElB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RSxLQUFLLEVBQUU7Z0JBR25ELFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgSU9wZXJhdGlvbixcbiAgSU9wZXJhdGlvbkJ1bGssXG4gIElSZXN1bHRMaXN0LFxuICBPcGVyYXRpb25TZXJ2aWNlLFxuICBPcGVyYXRpb25TdGF0dXNcbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29udHJvbCxcbiAgQWxlcnRTZXJ2aWNlLFxuICBDOHlUcmFuc2xhdGVQaXBlLFxuICBDb2x1bW4sXG4gIERhdGFHcmlkQ29tcG9uZW50LFxuICBEYXRhR3JpZE1vZHVsZSxcbiAgRGF0YVNvdXJjZU1vZGlmaWVyLFxuICBEaXNwbGF5T3B0aW9ucyxcbiAgRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgZ2V0dGV4dCxcbiAgSWNvbkRpcmVjdGl2ZSxcbiAgUGFnaW5hdGlvbixcbiAgU2VydmVyU2lkZURhdGFDYWxsYmFjayxcbiAgU2VydmVyU2lkZURhdGFSZXN1bHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCdWxrT3BlcmF0aW9uc1NlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL29wZXJhdGlvbnMvYnVsay1vcGVyYXRpb25zLXNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQ3JlYXRpb25UaW1lR3JpZENvbHVtbixcbiAgRGV2aWNlR3JpZENvbHVtbixcbiAgRmFpbHVyZVJlYXNvbkdyaWRDb2x1bW4sXG4gIE9wZXJhdGlvblN0YXR1c0dyaWRDb2x1bW5cbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL2dyaWQtY29sdW1ucyc7XG5pbXBvcnQge1xuICBPUEVSQVRJT05fU1RBVFVTX0xBQkVMUyxcbiAgT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUCxcbiAgT3BlcmF0aW9uU3RhdHVzT3B0aW9uLFxuICBPcGVyYXRpb25TdGF0dXNPcHRpb25zTWFwU2hhcmVkXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvb3BlcmF0aW9ucy9zaGFyZWQnO1xuaW1wb3J0IHtcbiAgU3RhdHVzRmlsdGVyQ29tcG9uZW50LFxuICBTdGF0dXNGaWx0ZXJNb2R1bGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL3N0YXR1cy1maWx0ZXInO1xuaW1wb3J0IHsgb21pdCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2M4eS1zaW5nbGUtb3BlcmF0aW9ucy1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpbmdsZS1vcGVyYXRpb25zLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbXG4gICAgU3RhdHVzRmlsdGVyTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgQzh5VHJhbnNsYXRlUGlwZSxcbiAgICBJY29uRGlyZWN0aXZlLFxuICAgIERhdGFHcmlkTW9kdWxlLFxuICAgIEVtcHR5U3RhdGVDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTaW5nbGVPcGVyYXRpb25zTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIGJ1bGtPcGVyYXRpb246IFBhcnRpYWw8SU9wZXJhdGlvbkJ1bGs+O1xuICBASW5wdXQoKVxuICByZWFkT25seSA9IGZhbHNlO1xuICBAT3V0cHV0KCkgb25SZXRyeUZhaWxlZE9wZXJhdGlvbnM6IEV2ZW50RW1pdHRlcjxQYXJ0aWFsPElPcGVyYXRpb25CdWxrPj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZChTdGF0dXNGaWx0ZXJDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBzdGF0dXNGaWx0ZXI6IFN0YXR1c0ZpbHRlckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZChEYXRhR3JpZENvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGRhdGFHcmlkOiBEYXRhR3JpZENvbXBvbmVudDtcblxuICBPUEVSQVRJT05fU1RBVFVTID0geyAuLi5PcGVyYXRpb25TdGF0dXMsIEFMTDogZ2V0dGV4dCgnQUxMJykgfTtcbiAgT1BFUkFUSU9OX1NUQVRVU19MQUJFTFMgPSBPUEVSQVRJT05fU1RBVFVTX0xBQkVMUztcbiAgT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUDogT3BlcmF0aW9uU3RhdHVzT3B0aW9uc01hcFNoYXJlZCA9IE9QRVJBVElPTl9TVEFUVVNfT1BUSU9OU19NQVA7XG4gIHNpbmdsZU9wZXJhdGlvbnM6IElSZXN1bHRMaXN0PElPcGVyYXRpb24+O1xuXG4gIGRpc3BsYXlPcHRpb25zOiBQYXJ0aWFsPERpc3BsYXlPcHRpb25zPiA9IHtcbiAgICBncmlkSGVhZGVyOiBmYWxzZVxuICB9O1xuICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uID0ge1xuICAgIHBhZ2VTaXplOiAyNSxcbiAgICBjdXJyZW50UGFnZTogMVxuICB9O1xuXG4gIGNvbHVtbnM6IENvbHVtbltdID0gW1xuICAgIG5ldyBPcGVyYXRpb25TdGF0dXNHcmlkQ29sdW1uKCksXG4gICAgbmV3IERldmljZUdyaWRDb2x1bW4oKSxcbiAgICBuZXcgQ3JlYXRpb25UaW1lR3JpZENvbHVtbigpLFxuICAgIG5ldyBGYWlsdXJlUmVhc29uR3JpZENvbHVtbigpXG4gIF07XG5cbiAgYWN0aW9uczogQWN0aW9uQ29udHJvbFtdID0gW1xuICAgIHtcbiAgICAgIHR5cGU6ICdyZXRyeScsXG4gICAgICBpY29uOiAncmVwZWF0JyxcbiAgICAgIGxhYmVsOiBnZXR0ZXh0KCdSZXRyeSBvcGVyYXRpb24nKSxcbiAgICAgIHRleHQ6IGdldHRleHQoJ1JldHJ5IG9wZXJhdGlvbicpLFxuICAgICAgY2FsbGJhY2s6IG9wZXJhdGlvbiA9PiB7XG4gICAgICAgIHRoaXMucmV0cnlTaW5nbGVPcGVyYXRpb24ob3BlcmF0aW9uKTtcbiAgICAgIH0sXG4gICAgICBzaG93SWY6IG9wZXJhdGlvbiA9PlxuICAgICAgICAhdGhpcy5yZWFkT25seSAmJlxuICAgICAgICBvcGVyYXRpb24uc3RhdHVzLnRvU3RyaW5nKCkgPT09IE9QRVJBVElPTl9TVEFUVVNfT1BUSU9OU19NQVAuRkFJTEVELnN0YXR1cy50b1N0cmluZygpXG4gICAgfVxuICBdO1xuXG4gIHNlcnZlclNpZGVEYXRhQ2FsbGJhY2s6IFNlcnZlclNpZGVEYXRhQ2FsbGJhY2s7XG5cbiAgcHJpdmF0ZSBvcGVyYXRpb25TZXJ2aWNlID0gaW5qZWN0KE9wZXJhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGFsZXJ0U2VydmljZSA9IGluamVjdChBbGVydFNlcnZpY2UpO1xuICBwcml2YXRlIGZpbHRlclN0YXR1czogT3BlcmF0aW9uU3RhdHVzO1xuICBwcml2YXRlIHJlbG9hZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlbG9hZFRocm90dGxlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYnVsa09wZXJhdGlvbnNTZXJ2aWNlOiBCdWxrT3BlcmF0aW9uc1NlcnZpY2UpIHtcbiAgICB0aGlzLnNlcnZlclNpZGVEYXRhQ2FsbGJhY2sgPSB0aGlzLm9uRGF0YVNvdXJjZU1vZGlmaWVyLmJpbmQodGhpcyk7XG4gICAgbWVyZ2UodGhpcy5yZWxvYWQkLCB0aGlzLnJlbG9hZFRocm90dGxlZCQucGlwZSh0aHJvdHRsZVRpbWUoMzBfMDAwKSkpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5kYXRhR3JpZD8ucmVsb2FkKGZhbHNlKSk7XG4gIH1cblxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuc3RhdHVzRmlsdGVyKSB7XG4gICAgICB0aGlzLnNldFN0YXR1c0ZpbHRlcihmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLmJ1bGtPcGVyYXRpb24gJiYgIWNoYW5nZXMuYnVsa09wZXJhdGlvbi5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5yZWxvYWRUaHJvdHRsZWQkLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICByZWxvYWQob3B0aW9uPzogT3BlcmF0aW9uU3RhdHVzT3B0aW9uW10pIHtcbiAgICBjb25zdCBbb3B0XSA9IG9wdGlvbiA/PyBbXTtcbiAgICB0aGlzLmZpbHRlclN0YXR1cyA9IG9wdD8uc3RhdHVzID8/IHRoaXMuZmlsdGVyU3RhdHVzO1xuICAgIHRoaXMucmVsb2FkJC5uZXh0KCk7XG4gIH1cblxuICBhc3luYyBvbkRhdGFTb3VyY2VNb2RpZmllcihcbiAgICBkYXRhU291cmNlTW9kaWZpZXI6IERhdGFTb3VyY2VNb2RpZmllclxuICApOiBQcm9taXNlPFNlcnZlclNpZGVEYXRhUmVzdWx0PiB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXJTdGF0dXMgPz8gdGhpcy5nZXRGaWx0ZXJUeXBlT2ZTaW5nbGVPcGVyYXRpb25zKCk7XG4gICAgY29uc3QgeyByZXMsIGRhdGEsIHBhZ2luZyB9ID0gYXdhaXQgdGhpcy5idWxrT3BlcmF0aW9uc1NlcnZpY2UuZ2V0U2luZ2xlT3BlcmF0aW9uc0J5U3RhdHVzKFxuICAgICAgZmlsdGVyLFxuICAgICAgdGhpcy5idWxrT3BlcmF0aW9uLmlkLFxuICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLnBhZ2luYXRpb25cbiAgICApO1xuXG4gICAgY29uc3QgZmlsdGVyZWRTaXplID0gYXdhaXQgdGhpcy5idWxrT3BlcmF0aW9uc1NlcnZpY2UuZ2V0U2luZ2xlT3BlcmF0aW9uc0NvdW50QnlTdGF0dXMoXG4gICAgICBmaWx0ZXIsXG4gICAgICB0aGlzLmJ1bGtPcGVyYXRpb24uaWRcbiAgICApO1xuXG4gICAgY29uc3Qgc2l6ZSA9IGF3YWl0IHRoaXMuYnVsa09wZXJhdGlvbnNTZXJ2aWNlLmdldFNpbmdsZU9wZXJhdGlvbnNUb3RhbCh0aGlzLmJ1bGtPcGVyYXRpb24uaWQpO1xuXG4gICAgY29uc3Qgc2VydmVyU2lkZURhdGFSZXN1bHQ6IFNlcnZlclNpZGVEYXRhUmVzdWx0ID0geyByZXMsIGRhdGEsIHBhZ2luZywgZmlsdGVyZWRTaXplLCBzaXplIH07XG5cbiAgICByZXR1cm4gc2VydmVyU2lkZURhdGFSZXN1bHQ7XG4gIH1cblxuICBzZXRTdGF0dXNGaWx0ZXIoZW1pdCA9IHRydWUpIHtcbiAgICBpZiAodGhpcy5zdGF0dXNGaWx0ZXIpIHtcbiAgICAgIGNvbnN0IHR5cGVGaWx0ZXIgPSB0aGlzLmdldEZpbHRlclR5cGVPZlNpbmdsZU9wZXJhdGlvbnMoKTtcbiAgICAgIHRoaXMuc3RhdHVzRmlsdGVyLnByZXNldChcbiAgICAgICAgdHlwZUZpbHRlciA9PT0gdGhpcy5PUEVSQVRJT05fU1RBVFVTLkFMTFxuICAgICAgICAgID8gW11cbiAgICAgICAgICA6IFt7IGxhYmVsOiB0aGlzLk9QRVJBVElPTl9TVEFUVVNfTEFCRUxTW3R5cGVGaWx0ZXJdIH1dLFxuICAgICAgICBlbWl0XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lb3V0KHRoaXMuc2V0U3RhdHVzRmlsdGVyLmJpbmQodGhpcywgZW1pdCkpO1xuICAgIH1cbiAgfVxuXG4gIGdldEZpbHRlclR5cGVPZlNpbmdsZU9wZXJhdGlvbnMoKSB7XG4gICAgY29uc3QgeyBwcm9ncmVzcyB9ID0gdGhpcy5idWxrT3BlcmF0aW9uO1xuXG4gICAgaWYgKHByb2dyZXNzLmZhaWxlZCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLk9QRVJBVElPTl9TVEFUVVMuRkFJTEVEO1xuICAgIH0gZWxzZSBpZiAocHJvZ3Jlc3MuZmFpbGVkID09PSAwICYmIHByb2dyZXNzLnN1Y2Nlc3NmdWwgPT09IDAgJiYgcHJvZ3Jlc3MucGVuZGluZyA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuT1BFUkFUSU9OX1NUQVRVUy5FWEVDVVRJTkc7XG4gICAgfSBlbHNlIGlmIChwcm9ncmVzcy5mYWlsZWQgPT09IDAgJiYgcHJvZ3Jlc3Muc3VjY2Vzc2Z1bCA9PT0gMCAmJiBwcm9ncmVzcy5leGVjdXRpbmcgPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLk9QRVJBVElPTl9TVEFUVVMuUEVORElORztcbiAgICB9IGVsc2UgaWYgKHByb2dyZXNzLmZhaWxlZCA9PT0gMCAmJiBwcm9ncmVzcy5wZW5kaW5nID09PSAwICYmIHByb2dyZXNzLmV4ZWN1dGluZyA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuT1BFUkFUSU9OX1NUQVRVUy5TVUNDRVNTRlVMO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLk9QRVJBVElPTl9TVEFUVVMuQUxMO1xuICB9XG5cbiAgcmV0cnlCdWxrT3BlcmF0aW9uKCkge1xuICAgIHRoaXMub25SZXRyeUZhaWxlZE9wZXJhdGlvbnMuZW1pdCh0aGlzLmJ1bGtPcGVyYXRpb24pO1xuICB9XG5cbiAgYXN5bmMgcmV0cnlTaW5nbGVPcGVyYXRpb24oc2luZ2xlT3BlcmF0aW9uKSB7XG4gICAgY29uc3Qgb3BlcmF0aW9uVG9DcmVhdGUgPSBvbWl0KHNpbmdsZU9wZXJhdGlvbiwgW1xuICAgICAgJ2lkJyxcbiAgICAgICdzZWxmJyxcbiAgICAgICdzdGF0dXMnLFxuICAgICAgJ2ZhaWx1cmVSZWFzb24nLFxuICAgICAgJ2NyZWF0aW9uVGltZScsXG4gICAgICAnZGVsaXZlcnknXG4gICAgXSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5vcGVyYXRpb25TZXJ2aWNlLmNyZWF0ZShvcGVyYXRpb25Ub0NyZWF0ZSk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ09wZXJhdGlvbiBjcmVhdGVkLicpKTtcbiAgICB9IGNhdGNoIChlcikge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlcik7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyXG4gICpuZ0lmPVwiXG4gICAgYnVsa09wZXJhdGlvbi5wcm9ncmVzcy5mYWlsZWQgfHxcbiAgICBidWxrT3BlcmF0aW9uLnByb2dyZXNzLmV4ZWN1dGluZyB8fFxuICAgIGJ1bGtPcGVyYXRpb24ucHJvZ3Jlc3MucGVuZGluZyB8fFxuICAgIGJ1bGtPcGVyYXRpb24ucHJvZ3Jlc3Muc3VjY2Vzc2Z1bFxuICBcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9jayBwLXQtMTYgbS1iLTBcIlxuICAgIHRyYW5zbGF0ZVxuICA+XG4gICAgT3BlcmF0aW9uc1xuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyIHAtYi04XCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIm0tci00IHRleHQtbWVkaXVtXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIEZpbHRlciBieSBzdGF0dXNcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxjOHktc3RhdHVzLWZpbHRlclxuICAgICAgICBzbWFsbFxuICAgICAgICBbb3B0aW9uc109XCJPUEVSQVRJT05fU1RBVFVTX09QVElPTlNfTUFQXCJcbiAgICAgICAgKG9uRmlsdGVyQ2hhbmdlZCk9XCJyZWxvYWQoJGV2ZW50KVwiXG4gICAgICA+PC9jOHktc3RhdHVzLWZpbHRlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm0tbC1hdXRvIHAtYi04XCJcbiAgICAgICpuZ0lmPVwiIXJlYWRPbmx5ICYmIGJ1bGtPcGVyYXRpb24ucHJvZ3Jlc3MuZmFpbGVkID4gMFwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBidG4tbmF2YmFyXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnUmV0cnkgZmFpbGVkIG9wZXJhdGlvbnMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgKGNsaWNrKT1cInJldHJ5QnVsa09wZXJhdGlvbigpXCJcbiAgICAgID5cbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgICAgICBjOHlJY29uPVwicmVwZWF0XCJcbiAgICAgICAgPjwvaT5cbiAgICAgICAgPHNwYW4gdHJhbnNsYXRlPlJldHJ5IGZhaWxlZCBvcGVyYXRpb25zPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8Yzh5LWRhdGEtZ3JpZFxuICAgIFthY3Rpb25Db250cm9sc109XCJhY3Rpb25zXCJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICBbZGlzcGxheU9wdGlvbnNdPVwiZGlzcGxheU9wdGlvbnNcIlxuICAgIFtzZXJ2ZXJTaWRlRGF0YUNhbGxiYWNrXT1cInNlcnZlclNpZGVEYXRhQ2FsbGJhY2tcIlxuICAgIFtwYWdpbmF0aW9uXT1cInBhZ2luYXRpb25cIlxuICA+XG4gICAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgICAgaWNvbj1cInNlYXJjaFwiXG4gICAgICBbdGl0bGVdPVwiJ05vIHNpbmdsZSBvcGVyYXRpb25zIG9mIHRoZSBzZWxlY3RlZCBzdGF0dXMgdG8gZGlzcGxheS4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtzdWJ0aXRsZV09XCInU2luZ2xlIG9wZXJhdGlvbnMgd2lsbCBiZSBkaXNwbGF5ZWQgaGVyZScgfCB0cmFuc2xhdGVcIlxuICAgICAgaG9yaXpvbnRhbFxuICAgID48L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgPC9jOHktZGF0YS1ncmlkPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLW9wZXJhdGlvbnMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2J1bGstc2luZ2xlLW9wZXJhdGlvbnMtbGlzdC9zaW5nbGUtb3BlcmF0aW9ucy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL29wZXJhdGlvbnMvYnVsay1zaW5nbGUtb3BlcmF0aW9ucy1saXN0L3NpbmdsZS1vcGVyYXRpb25zLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBSUwsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDaEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUVMLFlBQVksRUFDWixnQkFBZ0IsRUFFaEIsaUJBQWlCLEVBQ2pCLGNBQWMsRUFHZCxtQkFBbUIsRUFDbkIsT0FBTyxFQUNQLGFBQWEsRUFJZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQy9GLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDMUIsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUc3QixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ25CLE1BQU0sOENBQThDLENBQUM7QUFDdEQsT0FBTyxFQUFFLElB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RSxLQUFLLEVBQUU7Z0JBR25ELFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgSU9wZXJhdGlvbixcbiAgSU9wZXJhdGlvbkJ1bGssXG4gIElSZXN1bHRMaXN0LFxuICBPcGVyYXRpb25TZXJ2aWNlLFxuICBPcGVyYXRpb25TdGF0dXNcbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29udHJvbCxcbiAgQWxlcnRTZXJ2aWNlLFxuICBDOHlUcmFuc2xhdGVQaXBlLFxuICBDb2x1bW4sXG4gIERhdGFHcmlkQ29tcG9uZW50LFxuICBEYXRhR3JpZE1vZHVsZSxcbiAgRGF0YVNvdXJjZU1vZGlmaWVyLFxuICBEaXNwbGF5T3B0aW9ucyxcbiAgRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgZ2V0dGV4dCxcbiAgSWNvbkRpcmVjdGl2ZSxcbiAgUGFnaW5hdGlvbixcbiAgU2VydmVyU2lkZURhdGFDYWxsYmFjayxcbiAgU2VydmVyU2lkZURhdGFSZXN1bHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCdWxrT3BlcmF0aW9uc1NlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL29wZXJhdGlvbnMvYnVsay1vcGVyYXRpb25zLXNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQ3JlYXRpb25UaW1lR3JpZENvbHVtbixcbiAgRGV2aWNlR3JpZENvbHVtbixcbiAgRmFpbHVyZVJlYXNvbkdyaWRDb2x1bW4sXG4gIE9wZXJhdGlvblN0YXR1c0dyaWRDb2x1bW5cbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL2dyaWQtY29sdW1ucyc7XG5pbXBvcnQge1xuICBPUEVSQVRJT05fU1RBVFVTX0xBQkVMUyxcbiAgT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUCxcbiAgT3BlcmF0aW9uU3RhdHVzT3B0aW9uLFxuICBPcGVyYXRpb25TdGF0dXNPcHRpb25zTWFwU2hhcmVkXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvb3BlcmF0aW9ucy9zaGFyZWQnO1xuaW1wb3J0IHtcbiAgU3RhdHVzRmlsdGVyQ29tcG9uZW50LFxuICBTdGF0dXNGaWx0ZXJNb2R1bGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL3N0YXR1cy1maWx0ZXInO1xuaW1wb3J0IHsgb21pdCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2M4eS1zaW5nbGUtb3BlcmF0aW9ucy1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpbmdsZS1vcGVyYXRpb25zLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbXG4gICAgU3RhdHVzRmlsdGVyTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgQzh5VHJhbnNsYXRlUGlwZSxcbiAgICBJY29uRGlyZWN0aXZlLFxuICAgIERhdGFHcmlkTW9kdWxlLFxuICAgIEVtcHR5U3RhdGVDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTaW5nbGVPcGVyYXRpb25zTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIGJ1bGtPcGVyYXRpb246IFBhcnRpYWw8SU9wZXJhdGlvbkJ1bGs+O1xuICBASW5wdXQoKVxuICByZWFkT25seSA9IGZhbHNlO1xuICBAT3V0cHV0KCkgb25SZXRyeUZhaWxlZE9wZXJhdGlvbnM6IEV2ZW50RW1pdHRlcjxQYXJ0aWFsPElPcGVyYXRpb25CdWxrPj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZChTdGF0dXNGaWx0ZXJDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBzdGF0dXNGaWx0ZXI6IFN0YXR1c0ZpbHRlckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZChEYXRhR3JpZENvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGRhdGFHcmlkOiBEYXRhR3JpZENvbXBvbmVudDtcblxuICBPUEVSQVRJT05fU1RBVFVTID0geyAuLi5PcGVyYXRpb25TdGF0dXMsIEFMTDogZ2V0dGV4dCgnQUxMJykgfTtcbiAgT1BFUkFUSU9OX1NUQVRVU19MQUJFTFMgPSBPUEVSQVRJT05fU1RBVFVTX0xBQkVMUztcbiAgT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUDogT3BlcmF0aW9uU3RhdHVzT3B0aW9uc01hcFNoYXJlZCA9IE9QRVJBVElPTl9TVEFUVVNfT1BUSU9OU19NQVA7XG4gIHNpbmdsZU9wZXJhdGlvbnM6IElSZXN1bHRMaXN0PElPcGVyYXRpb24+O1xuXG4gIGRpc3BsYXlPcHRpb25zOiBQYXJ0aWFsPERpc3BsYXlPcHRpb25zPiA9IHtcbiAgICBncmlkSGVhZGVyOiBmYWxzZVxuICB9O1xuICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uID0ge1xuICAgIHBhZ2VTaXplOiAyNSxcbiAgICBjdXJyZW50UGFnZTogMVxuICB9O1xuXG4gIGNvbHVtbnM6IENvbHVtbltdID0gW1xuICAgIG5ldyBPcGVyYXRpb25TdGF0dXNHcmlkQ29sdW1uKCksXG4gICAgbmV3IERldmljZUdyaWRDb2x1bW4oKSxcbiAgICBuZXcgQ3JlYXRpb25UaW1lR3JpZENvbHVtbigpLFxuICAgIG5ldyBGYWlsdXJlUmVhc29uR3JpZENvbHVtbigpXG4gIF07XG5cbiAgYWN0aW9uczogQWN0aW9uQ29udHJvbFtdID0gW1xuICAgIHtcbiAgICAgIHR5cGU6ICdyZXRyeScsXG4gICAgICBpY29uOiAncmVwZWF0JyxcbiAgICAgIGxhYmVsOiBnZXR0ZXh0KCdSZXRyeSBvcGVyYXRpb24nKSxcbiAgICAgIHRleHQ6IGdldHRleHQoJ1JldHJ5IG9wZXJhdGlvbicpLFxuICAgICAgY2FsbGJhY2s6IG9wZXJhdGlvbiA9PiB7XG4gICAgICAgIHRoaXMucmV0cnlTaW5nbGVPcGVyYXRpb24ob3BlcmF0aW9uKTtcbiAgICAgIH0sXG4gICAgICBzaG93SWY6IG9wZXJhdGlvbiA9PlxuICAgICAgICAhdGhpcy5yZWFkT25seSAmJlxuICAgICAgICBvcGVyYXRpb24uc3RhdHVzLnRvU3RyaW5nKCkgPT09IE9QRVJBVElPTl9TVEFUVVNfT1BUSU9OU19NQVAuRkFJTEVELnN0YXR1cy50b1N0cmluZygpXG4gICAgfVxuICBdO1xuXG4gIHNlcnZlclNpZGVEYXRhQ2FsbGJhY2s6IFNlcnZlclNpZGVEYXRhQ2FsbGJhY2s7XG5cbiAgcHJpdmF0ZSBvcGVyYXRpb25TZXJ2aWNlID0gaW5qZWN0KE9wZXJhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGFsZXJ0U2VydmljZSA9IGluamVjdChBbGVydFNlcnZpY2UpO1xuICBwcml2YXRlIGZpbHRlclN0YXR1czogT3BlcmF0aW9uU3RhdHVzO1xuICBwcml2YXRlIHJlbG9hZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlbG9hZFRocm90dGxlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYnVsa09wZXJhdGlvbnNTZXJ2aWNlOiBCdWxrT3BlcmF0aW9uc1NlcnZpY2UpIHtcbiAgICB0aGlzLnNlcnZlclNpZGVEYXRhQ2FsbGJhY2sgPSB0aGlzLm9uRGF0YVNvdXJjZU1vZGlmaWVyLmJpbmQodGhpcyk7XG4gICAgbWVyZ2UodGhpcy5yZWxvYWQkLCB0aGlzLnJlbG9hZFRocm90dGxlZCQucGlwZSh0aHJvdHRsZVRpbWUoMzBfMDAwKSkpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5kYXRhR3JpZD8ucmVsb2FkKGZhbHNlKSk7XG4gIH1cblxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuc3RhdHVzRmlsdGVyKSB7XG4gICAgICB0aGlzLnNldFN0YXR1c0ZpbHRlcihmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLmJ1bGtPcGVyYXRpb24gJiYgIWNoYW5nZXMuYnVsa09wZXJhdGlvbi5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5yZWxvYWRUaHJvdHRsZWQkLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICByZWxvYWQob3B0aW9uPzogT3BlcmF0aW9uU3RhdHVzT3B0aW9uW10pIHtcbiAgICBjb25zdCBbb3B0XSA9IG9wdGlvbiA/PyBbXTtcbiAgICB0aGlzLmZpbHRlclN0YXR1cyA9IG9wdD8uc3RhdHVzID8/IHRoaXMuZmlsdGVyU3RhdHVzO1xuICAgIHRoaXMucmVsb2FkJC5uZXh0KCk7XG4gIH1cblxuICBhc3luYyBvbkRhdGFTb3VyY2VNb2RpZmllcihcbiAgICBkYXRhU291cmNlTW9kaWZpZXI6IERhdGFTb3VyY2VNb2RpZmllclxuICApOiBQcm9taXNlPFNlcnZlclNpZGVEYXRhUmVzdWx0PiB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXJTdGF0dXMgPz8gdGhpcy5nZXRGaWx0ZXJUeXBlT2ZTaW5nbGVPcGVyYXRpb25zKCk7XG4gICAgY29uc3QgeyByZXMsIGRhdGEsIHBhZ2luZyB9ID0gYXdhaXQgdGhpcy5idWxrT3BlcmF0aW9uc1NlcnZpY2UuZ2V0U2luZ2xlT3BlcmF0aW9uc0J5U3RhdHVzKFxuICAgICAgZmlsdGVyLFxuICAgICAgdGhpcy5idWxrT3BlcmF0aW9uLmlkLFxuICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLnBhZ2luYXRpb25cbiAgICApO1xuXG4gICAgY29uc3QgZmlsdGVyZWRTaXplID0gYXdhaXQgdGhpcy5idWxrT3BlcmF0aW9uc1NlcnZpY2UuZ2V0U2luZ2xlT3BlcmF0aW9uc0NvdW50QnlTdGF0dXMoXG4gICAgICBmaWx0ZXIsXG4gICAgICB0aGlzLmJ1bGtPcGVyYXRpb24uaWRcbiAgICApO1xuXG4gICAgY29uc3Qgc2l6ZSA9IGF3YWl0IHRoaXMuYnVsa09wZXJhdGlvbnNTZXJ2aWNlLmdldFNpbmdsZU9wZXJhdGlvbnNUb3RhbCh0aGlzLmJ1bGtPcGVyYXRpb24uaWQpO1xuXG4gICAgY29uc3Qgc2VydmVyU2lkZURhdGFSZXN1bHQ6IFNlcnZlclNpZGVEYXRhUmVzdWx0ID0geyByZXMsIGRhdGEsIHBhZ2luZywgZmlsdGVyZWRTaXplLCBzaXplIH07XG5cbiAgICByZXR1cm4gc2VydmVyU2lkZURhdGFSZXN1bHQ7XG4gIH1cblxuICBzZXRTdGF0dXNGaWx0ZXIoZW1pdCA9IHRydWUpIHtcbiAgICBpZiAodGhpcy5zdGF0dXNGaWx0ZXIpIHtcbiAgICAgIGNvbnN0IHR5cGVGaWx0ZXIgPSB0aGlzLmdldEZpbHRlclR5cGVPZlNpbmdsZU9wZXJhdGlvbnMoKTtcbiAgICAgIHRoaXMuc3RhdHVzRmlsdGVyLnByZXNldChcbiAgICAgICAgdHlwZUZpbHRlciA9PT0gdGhpcy5PUEVSQVRJT05fU1RBVFVTLkFMTFxuICAgICAgICAgID8gW11cbiAgICAgICAgICA6IFt7IGxhYmVsOiB0aGlzLk9QRVJBVElPTl9TVEFUVVNfTEFCRUxTW3R5cGVGaWx0ZXJdIH1dLFxuICAgICAgICBlbWl0XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lb3V0KHRoaXMuc2V0U3RhdHVzRmlsdGVyLmJpbmQodGhpcywgZW1pdCkpO1xuICAgIH1cbiAgfVxuXG4gIGdldEZpbHRlclR5cGVPZlNpbmdsZU9wZXJhdGlvbnMoKSB7XG4gICAgY29uc3QgeyBwcm9ncmVzcyB9ID0gdGhpcy5idWxrT3BlcmF0aW9uO1xuXG4gICAgaWYgKHByb2dyZXNzLmZhaWxlZCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLk9QRVJBVElPTl9TVEFUVVMuRkFJTEVEO1xuICAgIH0gZWxzZSBpZiAocHJvZ3Jlc3MuZmFpbGVkID09PSAwICYmIHByb2dyZXNzLnN1Y2Nlc3NmdWwgPT09IDAgJiYgcHJvZ3Jlc3MucGVuZGluZyA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuT1BFUkFUSU9OX1NUQVRVUy5FWEVDVVRJTkc7XG4gICAgfSBlbHNlIGlmIChwcm9ncmVzcy5mYWlsZWQgPT09IDAgJiYgcHJvZ3Jlc3Muc3VjY2Vzc2Z1bCA9PT0gMCAmJiBwcm9ncmVzcy5leGVjdXRpbmcgPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLk9QRVJBVElPTl9TVEFUVVMuUEVORElORztcbiAgICB9IGVsc2UgaWYgKHByb2dyZXNzLmZhaWxlZCA9PT0gMCAmJiBwcm9ncmVzcy5wZW5kaW5nID09PSAwICYmIHByb2dyZXNzLmV4ZWN1dGluZyA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuT1BFUkFUSU9OX1NUQVRVUy5TVUNDRVNTRlVMO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLk9QRVJBVElPTl9TVEFUVVMuQUxMO1xuICB9XG5cbiAgcmV0cnlCdWxrT3BlcmF0aW9uKCkge1xuICAgIHRoaXMub25SZXRyeUZhaWxlZE9wZXJhdGlvbnMuZW1pdCh0aGlzLmJ1bGtPcGVyYXRpb24pO1xuICB9XG5cbiAgYXN5bmMgcmV0cnlTaW5nbGVPcGVyYXRpb24oc2luZ2xlT3BlcmF0aW9uKSB7XG4gICAgY29uc3Qgb3BlcmF0aW9uVG9DcmVhdGUgPSBvbWl0KHNpbmdsZU9wZXJhdGlvbiwgW1xuICAgICAgJ2lkJyxcbiAgICAgICdzZWxmJyxcbiAgICAgICdzdGF0dXMnLFxuICAgICAgJ2ZhaWx1cmVSZWFzb24nLFxuICAgICAgJ2NyZWF0aW9uVGltZScsXG4gICAgICAnZGVsaXZlcnknXG4gICAgXSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5vcGVyYXRpb25TZXJ2aWNlLmNyZWF0ZShvcGVyYXRpb25Ub0NyZWF0ZSk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ09wZXJhdGlvbiBjcmVhdGVkLicpKTtcbiAgICB9IGNhdGNoIChlcikge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlcik7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyXG4gICpuZ0lmPVwiXG4gICAgYnVsa09wZXJhdGlvbi5wcm9ncmVzcy5mYWlsZWQgfHxcbiAgICBidWxrT3BlcmF0aW9uLnByb2dyZXNzLmV4ZWN1dGluZyB8fFxuICAgIGJ1bGtPcGVyYXRpb24ucHJvZ3Jlc3MucGVuZGluZyB8fFxuICAgIGJ1bGtPcGVyYXRpb24ucHJvZ3Jlc3Muc3VjY2Vzc2Z1bFxuICBcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9jayBwLXQtMTYgbS1iLTBcIlxuICAgIHRyYW5zbGF0ZVxuICA+XG4gICAgT3BlcmF0aW9uc1xuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyIHAtYi04XCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIm0tci00IHRleHQtbWVkaXVtXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIEZpbHRlciBieSBzdGF0dXNcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxjOHktc3RhdHVzLWZpbHRlclxuICAgICAgICBzbWFsbFxuICAgICAgICBbb3B0aW9uc109XCJPUEVSQVRJT05fU1RBVFVTX09QVElPTlNfTUFQXCJcbiAgICAgICAgKG9uRmlsdGVyQ2hhbmdlZCk9XCJyZWxvYWQoJGV2ZW50KVwiXG4gICAgICA+PC9jOHktc3RhdHVzLWZpbHRlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm0tbC1hdXRvIHAtYi04XCJcbiAgICAgICpuZ0lmPVwiIXJlYWRPbmx5ICYmIGJ1bGtPcGVyYXRpb24ucHJvZ3Jlc3MuZmFpbGVkID4gMFwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBidG4tbmF2YmFyXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnUmV0cnkgZmFpbGVkIG9wZXJhdGlvbnMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgKGNsaWNrKT1cInJldHJ5QnVsa09wZXJhdGlvbigpXCJcbiAgICAgID5cbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgICAgICBjOHlJY29uPVwicmVwZWF0XCJcbiAgICAgICAgPjwvaT5cbiAgICAgICAgPHNwYW4gdHJhbnNsYXRlPlJldHJ5IGZhaWxlZCBvcGVyYXRpb25zPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8Yzh5LWRhdGEtZ3JpZFxuICAgIFthY3Rpb25Db250cm9sc109XCJhY3Rpb25zXCJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICBbZGlzcGxheU9wdGlvbnNdPVwiZGlzcGxheU9wdGlvbnNcIlxuICAgIFtzZXJ2ZXJTaWRlRGF0YUNhbGxiYWNrXT1cInNlcnZlclNpZGVEYXRhQ2FsbGJhY2tcIlxuICAgIFtwYWdpbmF0aW9uXT1cInBhZ2luYXRpb25cIlxuICA+XG4gICAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgICAgaWNvbj1cInNlYXJjaFwiXG4gICAgICBbdGl0bGVdPVwiJ05vIHNpbmdsZSBvcGVyYXRpb25zIG9mIHRoZSBzZWxlY3RlZCBzdGF0dXMgdG8gZGlzcGxheS4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtzdWJ0aXRsZV09XCInU2luZ2xlIG9wZXJhdGlvbnMgd2lsbCBiZSBkaXNwbGF5ZWQgaGVyZScgfCB0cmFuc2xhdGVcIlxuICAgICAgaG9yaXpvbnRhbFxuICAgID48L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgPC9jOHktZGF0YS1ncmlkPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -206,7 +206,7 @@ export class RemoteAccessConfigurationListComponent {
|
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
208
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteAccessConfigurationListComponent, deps: [{ token: i1.RemoteAccessService }, { token: i2.ActivatedRoute }, { token: i3.ModalService }, { token: i3.AlertService }, { token: i4.BsModalService }, { token: i5.TranslateService }, { token: i3.ContextRouteService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
209
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RemoteAccessConfigurationListComponent, isStandalone: true, selector: "c8y-remote-access-configuration-list", ngImport: i0, template: "<c8y-title translate>Remote access</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n (click)=\"addEndpoint()\"\n [disabled]=\"!protocolProviders?.length\"\n [attr.data-cy]=\"'remoteAccessConfigurationList--add-endpoint'\"\n >\n <i [c8yIcon]=\"'plus-circle'\"></i>\n <span translate>Add endpoint</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]=\"gridTitle\"\n [rows]=\"rows\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n (onReload)=\"reload()\"\n [actionControls]=\"actionControls\"\n [displayOptions]=\"displayOptions\"\n >\n <c8y-ui-empty-state\n [icon]=\"'window-restore'\"\n [title]=\"'No endpoints configured.' | translate\"\n [subtitle]=\"'Click below to add your first endpoint.' | translate\"\n [horizontal]=\"false\"\n >\n <button\n class=\"btn btn-default\"\n (click)=\"addEndpoint()\"\n translate\n >\n Add endpoint\n </button>\n </c8y-ui-empty-state>\n </c8y-data-grid>\n</div>\n", dependencies: [{ kind: "ngmodule", type: DataGridModule }, { 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: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
209
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RemoteAccessConfigurationListComponent, isStandalone: true, selector: "c8y-remote-access-configuration-list", ngImport: i0, template: "<c8y-title translate>Remote access</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n (click)=\"addEndpoint()\"\n [disabled]=\"!protocolProviders?.length\"\n [attr.data-cy]=\"'remoteAccessConfigurationList--add-endpoint'\"\n >\n <i [c8yIcon]=\"'plus-circle'\"></i>\n <span translate>Add endpoint</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]=\"gridTitle\"\n [rows]=\"rows\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n (onReload)=\"reload()\"\n [actionControls]=\"actionControls\"\n [displayOptions]=\"displayOptions\"\n >\n <c8y-ui-empty-state\n [icon]=\"'window-restore'\"\n [title]=\"'No endpoints configured.' | translate\"\n [subtitle]=\"'Click below to add your first endpoint.' | translate\"\n [horizontal]=\"false\"\n >\n <button\n class=\"btn btn-default\"\n (click)=\"addEndpoint()\"\n translate\n >\n Add endpoint\n </button>\n </c8y-ui-empty-state>\n </c8y-data-grid>\n</div>\n", dependencies: [{ kind: "ngmodule", type: DataGridModule }, { kind: "component", type: i3.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
210
210
|
}
|
|
211
211
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteAccessConfigurationListComponent, decorators: [{
|
|
212
212
|
type: Component,
|
|
@@ -220,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
220
220
|
C8yTranslatePipe
|
|
221
221
|
], template: "<c8y-title translate>Remote access</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n (click)=\"addEndpoint()\"\n [disabled]=\"!protocolProviders?.length\"\n [attr.data-cy]=\"'remoteAccessConfigurationList--add-endpoint'\"\n >\n <i [c8yIcon]=\"'plus-circle'\"></i>\n <span translate>Add endpoint</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]=\"gridTitle\"\n [rows]=\"rows\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n (onReload)=\"reload()\"\n [actionControls]=\"actionControls\"\n [displayOptions]=\"displayOptions\"\n >\n <c8y-ui-empty-state\n [icon]=\"'window-restore'\"\n [title]=\"'No endpoints configured.' | translate\"\n [subtitle]=\"'Click below to add your first endpoint.' | translate\"\n [horizontal]=\"false\"\n >\n <button\n class=\"btn btn-default\"\n (click)=\"addEndpoint()\"\n translate\n >\n Add endpoint\n </button>\n </c8y-ui-empty-state>\n </c8y-data-grid>\n</div>\n" }]
|
|
222
222
|
}], ctorParameters: () => [{ type: i1.RemoteAccessService }, { type: i2.ActivatedRoute }, { type: i3.ModalService }, { type: i3.AlertService }, { type: i4.BsModalService }, { type: i5.TranslateService }, { type: i3.ContextRouteService }] });
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWFjY2Vzcy1jb25maWd1cmF0aW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcmVtb3RlLWFjY2Vzcy9jb25maWd1cmF0aW9ucy9yZW1vdGUtYWNjZXNzLWNvbmZpZ3VyYXRpb24tbGlzdC9yZW1vdGUtYWNjZXNzLWNvbmZpZ3VyYXRpb24tbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL2NvbmZpZ3VyYXRpb25zL3JlbW90ZS1hY2Nlc3MtY29uZmlndXJhdGlvbi1saXN0L3JlbW90ZS1hY2Nlc3MtY29uZmlndXJhdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFDTCxzQkFBc0IsRUFFdEIsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBRWhCLG1CQUFtQixFQUNuQixjQUFjLEVBRWQsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsYUFBYSxFQUNiLFlBQVksRUFFWixNQUFNLEVBQ04sY0FBYyxFQUNmLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUdMLG1CQUFtQixFQUNwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQzNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUMxSSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFB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OG5DQXdDQSwyQ0RESSxjQUFjLHF6QkFDZCxjQUFjLG1GQUNkLHFCQUFxQix3RUFDckIsc0JBQXNCLDBKQUN0QixhQUFhLDJFQUNiLG1CQUFtQiwrR0FDbkIsZ0JBQWdCOzs0RkFHUCxzQ0FBc0M7a0JBZGxELFNBQVM7K0JBQ0Usc0NBQXNDLGNBRXBDLElBQUksV0FDUDt3QkFDUCxjQUFjO3dCQUNkLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixnQkFBZ0I7cUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFjdGlvbkJhckl0ZW1Db21wb25lbnQsXG4gIEFjdGlvbkNvbnRyb2wsXG4gIEFsZXJ0U2VydmljZSxcbiAgQnVpbHRJbkFjdGlvblR5cGUsXG4gIEM4eVRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgQzh5VHJhbnNsYXRlUGlwZSxcbiAgQ29sdW1uLFxuICBDb250ZXh0Um91dGVTZXJ2aWNlLFxuICBEYXRhR3JpZE1vZHVsZSxcbiAgRGlzcGxheU9wdGlvbnMsXG4gIEVtcHR5Q29tcG9uZW50LFxuICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICBnZXR0ZXh0LFxuICBJY29uRGlyZWN0aXZlLFxuICBNb2RhbFNlcnZpY2UsXG4gIFBhZ2luYXRpb24sXG4gIFN0YXR1cyxcbiAgVGl0bGVDb21wb25lbnRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uLFxuICBSZW1vdGVBY2Nlc3NQcm90b2NvbFByb3ZpZGVyLFxuICBSZW1vdGVBY2Nlc3NTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcmVtb3RlLWFjY2Vzcy9kYXRhJztcbmltcG9ydCB7IFJlbW90ZUFjY2Vzc0Nvbm5lY3RCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3JlbW90ZS1hY2Nlc3MtY29ubmVjdC1idXR0b24vcmVtb3RlLWFjY2Vzcy1jb25uZWN0LWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFJlbW90ZUFjY2Vzc1BpY2tQcm90b2NvbE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVtb3RlLWFjY2Vzcy1waWNrLXByb3RvY29sLW1vZGFsL3JlbW90ZS1hY2Nlc3MtcGljay1wcm90b2NvbC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkRldmljZUdyaWRDb2x1bW4gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2RldmljZS1ncmlkJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktcmVtb3RlLWFjY2Vzcy1jb25maWd1cmF0aW9uLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVtb3RlLWFjY2Vzcy1jb25maWd1cmF0aW9uLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRGF0YUdyaWRNb2R1bGUsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgQzh5VHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIEFjdGlvbkJhckl0ZW1Db21wb25lbnQsXG4gICAgSWNvbkRpcmVjdGl2ZSxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIEM4eVRyYW5zbGF0ZVBpcGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJvd3M6IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb25bXSA9IFtdO1xuICBjb2x1bW5zOiBDb2x1bW5bXSA9IFtcbiAgICBuZXcgSWNvbkRldmljZUdyaWRDb2x1bW4oXG4gICAgICB7XG4gICAgICAgIGhlYWRlckNlbGxSZW5kZXJlckNvbXBvbmVudDogRW1wdHlDb21wb25lbnRcbiAgICAgIH0sXG4gICAgICBjb250ZXh0ID0+IHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0aGlzLnByb3RvY29sUHJvdmlkZXJzLmZpbmQocCA9PiBwLnByb3RvY29sTmFtZSA9PT0gY29udGV4dC5pdGVtLnByb3RvY29sKTtcbiAgICAgICAgcmV0dXJuIHByb3ZpZGVyPy5wcm90b2NvbEljb24gfHwgJ2xhcHRvcCc7XG4gICAgICB9XG4gICAgKSxcbiAgICB7XG4gICAgICBuYW1lOiAnbmFtZScsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ0VuZHBvaW50JyksXG4gICAgICBwYXRoOiAnbmFtZSdcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdob3N0bmFtZScsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ0hvc3QnKSxcbiAgICAgIHBhdGg6ICdob3N0bmFtZSdcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdwb3J0JyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnUG9ydCcpLFxuICAgICAgcGF0aDogJ3BvcnQnXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAncHJvdG9jb2wnLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdQcm90b2NvbCcpLFxuICAgICAgcGF0aDogJ3Byb3RvY29sJ1xuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2Nvbm5lY3QnLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdDb25uZWN0JyksXG4gICAgICBjZWxsUmVuZGVyZXJDb21wb25lbnQ6IFJlbW90ZUFjY2Vzc0Nvbm5lY3RCdXR0b25Db21wb25lbnRcbiAgICB9XG4gIF07XG4gIGFjdGlvbkNvbnRyb2xzOiBBY3Rpb25Db250cm9sW10gPSBbXG4gICAge1xuICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRWRpdCxcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoZW50cnk6IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0aGlzLmdldFByb3RvY29sUHJvdmlkZXJGb3JDb25maWd1cmF0aW9uKGVudHJ5KTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGxldCByZXN1bHQ6IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb247XG4gICAgICAgICAgaWYgKHByb3ZpZGVyLmVkaXRFbmRwb2ludCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgcHJvdmlkZXIuZWRpdEVuZHBvaW50KHRoaXMuZGV2aWNlSWQsIGVudHJ5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgdGhpcy5kZWZhdWx0RWRpdEVuZHBvaW50KHRoaXMuZGV2aWNlSWQsIGVudHJ5KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuYWxlcnQuc3VjY2VzcyhnZXR0ZXh0KCdFbmRwb2ludCBzYXZlZC4nKSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oZSk7XG4gICAgICAgICAgdGhpcy5hbGVydC5kYW5nZXIoZ2V0dGV4dCgnRmFpbGVkIHRvIHNhdmUgZW5kcG9pbnQuJyksIGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBCdWlsdEluQWN0aW9uVHlwZS5EZWxldGUsXG4gICAgICBjYWxsYmFjazogYXN5bmMgKGVudHJ5OiBSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLmNvbmZpcm0oXG4gICAgICAgICAgZ2V0dGV4dCgnRGVsZXRlIGVuZHBvaW50JyksXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICBnZXR0ZXh0KFxuICAgICAgICAgICAgICBgWW91IGFyZSBhYm91dCB0byBkZWxldGUgZW5kcG9pbnQgXCJ7eyBlbmRwb2ludE5hbWUgfX1cIi4gRG8geW91IHdhbnQgdG8gcHJvY2VlZD9gXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgeyBlbmRwb2ludE5hbWU6IGVudHJ5Lm5hbWUgfVxuICAgICAgICAgICksXG4gICAgICAgICAgU3RhdHVzLkRBTkdFUixcbiAgICAgICAgICB7IGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJyksIG9rOiBnZXR0ZXh0KCdEZWxldGUnKSB9XG4gICAgICAgICk7XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0aGlzLmdldFByb3RvY29sUHJvdmlkZXJGb3JDb25maWd1cmF0aW9uKGVudHJ5KTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHByb3ZpZGVyLnJlbW92ZUVuZHBvaW50KHRoaXMuZGV2aWNlSWQsIGVudHJ5KTtcbiAgICAgICAgICB0aGlzLmFsZXJ0LnN1Y2Nlc3MoZ2V0dGV4dCgnRW5kcG9pbnQgZGVsZXRlZC4nKSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oZSk7XG4gICAgICAgICAgdGhpcy5hbGVydC5kYW5nZXIoZ2V0dGV4dCgnRmFpbGVkIHRvIGRlbGV0ZSBlbmRwb2ludC4nKSwgZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICB9XG4gIF07XG4gIGRldmljZUlkOiBzdHJpbmc7XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB7XG4gICAgcGFnZVNpemU6IDEwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG4gIGRpc3BsYXlPcHRpb25zOiBEaXNwbGF5T3B0aW9ucyA9IHtcbiAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgc3RyaXBlZDogdHJ1ZSxcbiAgICBmaWx0ZXI6IHRydWUsXG4gICAgZ3JpZEhlYWRlcjogdHJ1ZSxcbiAgICBob3ZlcjogdHJ1ZVxuICB9O1xuICBwcm90b2NvbFByb3ZpZGVyczogUmVtb3RlQWNjZXNzUHJvdG9jb2xQcm92aWRlcltdID0gW107XG4gIGdyaWRUaXRsZSA9IGdldHRleHQoJ1JlbW90ZSBhY2Nlc3MgZW5kcG9pbnRzJyk7XG5cbiAgcHJpdmF0ZSBkZXZpY2U6IElNYW5hZ2VkT2JqZWN0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVtb3RlQWNjZXNzOiBSZW1vdGVBY2Nlc3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGN0eDogQ29udGV4dFJvdXRlU2VydmljZVxuICApIHtcbiAgICB0aGlzLmRldmljZSA9IHRoaXMuY3R4LmdldENvbnRleHREYXRhKHRoaXMuYWN0aXZhdGVkUm91dGUpPy5jb250ZXh0RGF0YSBhcyBJTWFuYWdlZE9iamVjdDtcbiAgICB0aGlzLmRldmljZUlkID0gdGhpcy5kZXZpY2U/LmlkIGFzIHN0cmluZztcbiAgICB0aGlzLnByb3RvY29sUHJvdmlkZXJzID0gdGhpcy5yZW1vdGVBY2Nlc3MuZ2V0U3VwcG9ydGVkUHJvdG9jb2xQcm92aWRlcnNGb3IodGhpcy5kZXZpY2UpO1xuICAgIGNvbnN0IGNvbm5lY3RDb2x1bSA9IHRoaXMuY29sdW1ucy5maW5kKGMgPT4gYy5uYW1lID09PSAnY29ubmVjdCcpO1xuICAgIGlmIChjb25uZWN0Q29sdW0pIHtcbiAgICAgICg8YW55PmNvbm5lY3RDb2x1bSkudGFyZ2V0ID0gdGhpcy5kZXZpY2VJZDtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlbG9hZCgpO1xuICB9XG5cbiAgYXN5bmMgcmVsb2FkKCkge1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb25zID0gYXdhaXQgdGhpcy5yZW1vdGVBY2Nlc3MubGlzdENvbmZpZ3VyYXRpb25zKHRoaXMuZGV2aWNlSWQpO1xuICAgIGNvbnN0IHN1cHBvcnRlZFByb3RvY29scyA9IHRoaXMucmVtb3RlQWNjZXNzLmdldFN1cHBvcnRlZFByb3RvY29sUHJvdmlkZXJzRm9yKHRoaXMuZGV2aWNlKTtcbiAgICBjb25zdCBzdXBwb3J0ZWRQcm90b2NvbHNOYW1lcyA9IHN1cHBvcnRlZFByb3RvY29scy5tYXAocCA9PiBwLnByb3RvY29sTmFtZSk7XG4gICAgdGhpcy5yb3dzID0gY29uZmlndXJhdGlvbnMuZmlsdGVyKGMgPT5cbiAgICAgIHN1cHBvcnRlZFByb3RvY29sc05hbWVzLmluY2x1ZGVzKGMucHJvdG9jb2wudG9VcHBlckNhc2UoKSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgYWRkRW5kcG9pbnQoKSB7XG4gICAgbGV0IHByb3ZpZGVyOiBSZW1vdGVBY2Nlc3NQcm90b2NvbFByb3ZpZGVyID0gbnVsbDtcbiAgICBpZiAodGhpcy5wcm90b2NvbFByb3ZpZGVycy5sZW5ndGggPiAxKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhSZW1vdGVBY2Nlc3NQaWNrUHJvdG9jb2xNb2RhbENvbXBvbmVudCwge1xuICAgICAgICAgIGluaXRpYWxTdGF0ZTogeyBwcm90b2NvbFByb3ZpZGVyczogdGhpcy5wcm90b2NvbFByb3ZpZGVycyB9XG4gICAgICAgIH0pO1xuICAgICAgICBwcm92aWRlciA9IGF3YWl0IG1vZGFsUmVmLmNvbnRlbnQucmVzdWx0O1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBtb2RhbCBjbG9zZWRcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5wcm90b2NvbFByb3ZpZGVycy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHByb3ZpZGVyID0gdGhpcy5wcm90b2NvbFByb3ZpZGVyc1swXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBsZXQgYWRkTW9kYWxSZXN1bHQ6IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24gPSBudWxsO1xuICAgICAgaWYgKHByb3ZpZGVyLmFkZEVuZHBvaW50KSB7XG4gICAgICAgIGFkZE1vZGFsUmVzdWx0ID0gYXdhaXQgcHJvdmlkZXIuYWRkRW5kcG9pbnQodGhpcy5kZXZpY2VJZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGRNb2RhbFJlc3VsdCA9IGF3YWl0IHRoaXMuZGVmYXVsdEFkZEVuZHBvaW50KHRoaXMuZGV2aWNlSWQsIHByb3ZpZGVyKTtcbiAgICAgIH1cbiAgICAgIGlmICghYWRkTW9kYWxSZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKGdldHRleHQoJ0VuZHBvaW50IGFkZGVkLicpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oZSk7XG4gICAgICB0aGlzLmFsZXJ0LmRhbmdlcihnZXR0ZXh0KCdGYWlsZWQgdG8gYWRkIGVuZHBvaW50LicpLCBlKTtcbiAgICB9XG4gICAgdGhpcy5yZWxvYWQoKTtcbiAgfVxuXG4gIGdldFByb3RvY29sUHJvdmlkZXJGb3JDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb246IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5wcm90b2NvbFByb3ZpZGVycy5maW5kKHAgPT4gcC5wcm90b2NvbE5hbWUgPT09IGNvbmZpZ3VyYXRpb24ucHJvdG9jb2wpO1xuICB9XG5cbiAgYXN5bmMgZGVmYXVsdEVkaXRFbmRwb2ludChkZXZpY2VJZDogc3RyaW5nLCBjb25maWd1cmF0aW9uOiBSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uKSB7XG4gICAgY29uc3QgbW9kYWxSZXN1bHQgPSBhd2FpdCB0aGlzLm9wZW5CYXNpY0VuZHBvaW50TW9kYWwoY29uZmlndXJhdGlvbik7XG4gICAgaWYgKCFtb2RhbFJlc3VsdCkge1xuICAgICAgcmV0dXJuIG1vZGFsUmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlbW90ZUFjY2Vzcy51cGRhdGVDb25maWd1cmF0aW9uKGRldmljZUlkLCBtb2RhbFJlc3VsdCk7XG4gIH1cblxuICBhc3luYyBkZWZhdWx0QWRkRW5kcG9pbnQoZGV2aWNlSWQ6IHN0cmluZywgcHJvdmlkZXI6IFJlbW90ZUFjY2Vzc1Byb3RvY29sUHJvdmlkZXIpIHtcbiAgICBsZXQgZGVmYXVsdENvbmZpZyA9IHsgcHJvdG9jb2w6IHByb3ZpZGVyLnByb3RvY29sTmFtZSB9O1xuICAgIGlmIChwcm92aWRlci5nZXREZWZhdWx0RW5kcG9pbnRDb25maWd1cmF0aW9uKSB7XG4gICAgICBjb25zdCBkZWZhdWx0Q29uZmlnRnJvbVByb3ZpZGVyID0gYXdhaXQgcHJvdmlkZXIuZ2V0RGVmYXVsdEVuZHBvaW50Q29uZmlndXJhdGlvbigpO1xuICAgICAgZGVmYXVsdENvbmZpZyA9IHsgLi4uZGVmYXVsdENvbmZpZywgLi4uZGVmYXVsdENvbmZpZ0Zyb21Qcm92aWRlciB9O1xuICAgIH1cbiAgICBjb25zdCBtb2RhbFJlc3VsdCA9IGF3YWl0IHRoaXMub3BlbkJhc2ljRW5kcG9pbnRNb2RhbChkZWZhdWx0Q29uZmlnKTtcbiAgICBpZiAoIW1vZGFsUmVzdWx0KSB7XG4gICAgICByZXR1cm4gbW9kYWxSZXN1bHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVtb3RlQWNjZXNzLmFkZENvbmZpZ3VyYXRpb24oZGV2aWNlSWQsIG1vZGFsUmVzdWx0KTtcbiAgfVxuXG4gIGFzeW5jIG9wZW5CYXNpY0VuZHBvaW50TW9kYWwoXG4gICAgY3VycmVudENvbmZpZ3VyYXRpb246IFBhcnRpYWw8UmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbj5cbiAgKTogUHJvbWlzZTxSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgUmVtb3RlQWNjZXNzQmFzaWNFbmRwb2ludE1vZGFsQ29tcG9uZW50IH0gPSBhd2FpdCBpbXBvcnQoXG4gICAgICAnQGM4eS9uZ3gtY29tcG9uZW50cy9yZW1vdGUtYWNjZXNzL3NoYXJlZCdcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5ic01vZGFsU2VydmljZS5zaG93KFJlbW90ZUFjY2Vzc0Jhc2ljRW5kcG9pbnRNb2RhbENvbXBvbmVudCwge1xuICAgICAgICBpbml0aWFsU3RhdGU6IHsgY3VycmVudFZhbHVlOiBjdXJyZW50Q29uZmlndXJhdGlvbiB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoYXdhaXQgbW9kYWxSZWYuY29udGVudC5yZXN1bHQpIGFzIFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb247XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbW9kYWwgY2xvc2VkXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsIjxjOHktdGl0bGUgdHJhbnNsYXRlPlJlbW90ZSBhY2Nlc3M8L2M4eS10aXRsZT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgKGNsaWNrKT1cImFkZEVuZHBvaW50KClcIlxuICAgIFtkaXNhYmxlZF09XCIhcHJvdG9jb2xQcm92aWRlcnM/Lmxlbmd0aFwiXG4gICAgW2F0dHIuZGF0YS1jeV09XCIncmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbkxpc3QtLWFkZC1lbmRwb2ludCdcIlxuICA+XG4gICAgPGkgW2M4eUljb25dPVwiJ3BsdXMtY2lyY2xlJ1wiPjwvaT5cbiAgICA8c3BhbiB0cmFuc2xhdGU+QWRkIGVuZHBvaW50PC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGRpdiBjbGFzcz1cImNvbnRlbnQtZnVsbHBhZ2UgZC1mbGV4IGQtY29sIGJvcmRlci10b3BcIj5cbiAgPGM4eS1kYXRhLWdyaWRcbiAgICBbdGl0bGVdPVwiZ3JpZFRpdGxlXCJcbiAgICBbcm93c109XCJyb3dzXCJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgICAob25SZWxvYWQpPVwicmVsb2FkKClcIlxuICAgIFthY3Rpb25Db250cm9sc109XCJhY3Rpb25Db250cm9sc1wiXG4gICAgW2Rpc3BsYXlPcHRpb25zXT1cImRpc3BsYXlPcHRpb25zXCJcbiAgPlxuICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgIFtpY29uXT1cIid3aW5kb3ctcmVzdG9yZSdcIlxuICAgICAgW3RpdGxlXT1cIidObyBlbmRwb2ludHMgY29uZmlndXJlZC4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtzdWJ0aXRsZV09XCInQ2xpY2sgYmVsb3cgdG8gYWRkIHlvdXIgZmlyc3QgZW5kcG9pbnQuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbaG9yaXpvbnRhbF09XCJmYWxzZVwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgIChjbGljayk9XCJhZGRFbmRwb2ludCgpXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIEFkZCBlbmRwb2ludFxuICAgICAgPC9idXR0b24+XG4gICAgPC9jOHktdWktZW1wdHktc3RhdGU+XG4gIDwvYzh5LWRhdGEtZ3JpZD5cbjwvZGl2PlxuIl19
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWFjY2Vzcy1jb25maWd1cmF0aW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcmVtb3RlLWFjY2Vzcy9jb25maWd1cmF0aW9ucy9yZW1vdGUtYWNjZXNzLWNvbmZpZ3VyYXRpb24tbGlzdC9yZW1vdGUtYWNjZXNzLWNvbmZpZ3VyYXRpb24tbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL2NvbmZpZ3VyYXRpb25zL3JlbW90ZS1hY2Nlc3MtY29uZmlndXJhdGlvbi1saXN0L3JlbW90ZS1hY2Nlc3MtY29uZmlndXJhdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFDTCxzQkFBc0IsRUFFdEIsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBRWhCLG1CQUFtQixFQUNuQixjQUFjLEVBRWQsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsYUFBYSxFQUNiLFlBQVksRUFFWixNQUFNLEVBQ04sY0FBYyxFQUNmLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUdMLG1CQUFtQixFQUNwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQzNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUMxSSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFB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OG5DQXdDQSwyQ0RESSxjQUFjLHk0QkFDZCxjQUFjLG1GQUNkLHFCQUFxQix3RUFDckIsc0JBQXNCLDBKQUN0QixhQUFhLDJFQUNiLG1CQUFtQiwrR0FDbkIsZ0JBQWdCOzs0RkFHUCxzQ0FBc0M7a0JBZGxELFNBQVM7K0JBQ0Usc0NBQXNDLGNBRXBDLElBQUksV0FDUDt3QkFDUCxjQUFjO3dCQUNkLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixnQkFBZ0I7cUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFjdGlvbkJhckl0ZW1Db21wb25lbnQsXG4gIEFjdGlvbkNvbnRyb2wsXG4gIEFsZXJ0U2VydmljZSxcbiAgQnVpbHRJbkFjdGlvblR5cGUsXG4gIEM4eVRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgQzh5VHJhbnNsYXRlUGlwZSxcbiAgQ29sdW1uLFxuICBDb250ZXh0Um91dGVTZXJ2aWNlLFxuICBEYXRhR3JpZE1vZHVsZSxcbiAgRGlzcGxheU9wdGlvbnMsXG4gIEVtcHR5Q29tcG9uZW50LFxuICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICBnZXR0ZXh0LFxuICBJY29uRGlyZWN0aXZlLFxuICBNb2RhbFNlcnZpY2UsXG4gIFBhZ2luYXRpb24sXG4gIFN0YXR1cyxcbiAgVGl0bGVDb21wb25lbnRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uLFxuICBSZW1vdGVBY2Nlc3NQcm90b2NvbFByb3ZpZGVyLFxuICBSZW1vdGVBY2Nlc3NTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcmVtb3RlLWFjY2Vzcy9kYXRhJztcbmltcG9ydCB7IFJlbW90ZUFjY2Vzc0Nvbm5lY3RCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3JlbW90ZS1hY2Nlc3MtY29ubmVjdC1idXR0b24vcmVtb3RlLWFjY2Vzcy1jb25uZWN0LWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFJlbW90ZUFjY2Vzc1BpY2tQcm90b2NvbE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVtb3RlLWFjY2Vzcy1waWNrLXByb3RvY29sLW1vZGFsL3JlbW90ZS1hY2Nlc3MtcGljay1wcm90b2NvbC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkRldmljZUdyaWRDb2x1bW4gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2RldmljZS1ncmlkJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktcmVtb3RlLWFjY2Vzcy1jb25maWd1cmF0aW9uLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVtb3RlLWFjY2Vzcy1jb25maWd1cmF0aW9uLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRGF0YUdyaWRNb2R1bGUsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgQzh5VHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIEFjdGlvbkJhckl0ZW1Db21wb25lbnQsXG4gICAgSWNvbkRpcmVjdGl2ZSxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIEM4eVRyYW5zbGF0ZVBpcGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJvd3M6IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb25bXSA9IFtdO1xuICBjb2x1bW5zOiBDb2x1bW5bXSA9IFtcbiAgICBuZXcgSWNvbkRldmljZUdyaWRDb2x1bW4oXG4gICAgICB7XG4gICAgICAgIGhlYWRlckNlbGxSZW5kZXJlckNvbXBvbmVudDogRW1wdHlDb21wb25lbnRcbiAgICAgIH0sXG4gICAgICBjb250ZXh0ID0+IHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0aGlzLnByb3RvY29sUHJvdmlkZXJzLmZpbmQocCA9PiBwLnByb3RvY29sTmFtZSA9PT0gY29udGV4dC5pdGVtLnByb3RvY29sKTtcbiAgICAgICAgcmV0dXJuIHByb3ZpZGVyPy5wcm90b2NvbEljb24gfHwgJ2xhcHRvcCc7XG4gICAgICB9XG4gICAgKSxcbiAgICB7XG4gICAgICBuYW1lOiAnbmFtZScsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ0VuZHBvaW50JyksXG4gICAgICBwYXRoOiAnbmFtZSdcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdob3N0bmFtZScsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ0hvc3QnKSxcbiAgICAgIHBhdGg6ICdob3N0bmFtZSdcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdwb3J0JyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnUG9ydCcpLFxuICAgICAgcGF0aDogJ3BvcnQnXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAncHJvdG9jb2wnLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdQcm90b2NvbCcpLFxuICAgICAgcGF0aDogJ3Byb3RvY29sJ1xuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2Nvbm5lY3QnLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdDb25uZWN0JyksXG4gICAgICBjZWxsUmVuZGVyZXJDb21wb25lbnQ6IFJlbW90ZUFjY2Vzc0Nvbm5lY3RCdXR0b25Db21wb25lbnRcbiAgICB9XG4gIF07XG4gIGFjdGlvbkNvbnRyb2xzOiBBY3Rpb25Db250cm9sW10gPSBbXG4gICAge1xuICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRWRpdCxcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoZW50cnk6IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0aGlzLmdldFByb3RvY29sUHJvdmlkZXJGb3JDb25maWd1cmF0aW9uKGVudHJ5KTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGxldCByZXN1bHQ6IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb247XG4gICAgICAgICAgaWYgKHByb3ZpZGVyLmVkaXRFbmRwb2ludCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgcHJvdmlkZXIuZWRpdEVuZHBvaW50KHRoaXMuZGV2aWNlSWQsIGVudHJ5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgdGhpcy5kZWZhdWx0RWRpdEVuZHBvaW50KHRoaXMuZGV2aWNlSWQsIGVudHJ5KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuYWxlcnQuc3VjY2VzcyhnZXR0ZXh0KCdFbmRwb2ludCBzYXZlZC4nKSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oZSk7XG4gICAgICAgICAgdGhpcy5hbGVydC5kYW5nZXIoZ2V0dGV4dCgnRmFpbGVkIHRvIHNhdmUgZW5kcG9pbnQuJyksIGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBCdWlsdEluQWN0aW9uVHlwZS5EZWxldGUsXG4gICAgICBjYWxsYmFjazogYXN5bmMgKGVudHJ5OiBSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLmNvbmZpcm0oXG4gICAgICAgICAgZ2V0dGV4dCgnRGVsZXRlIGVuZHBvaW50JyksXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICBnZXR0ZXh0KFxuICAgICAgICAgICAgICBgWW91IGFyZSBhYm91dCB0byBkZWxldGUgZW5kcG9pbnQgXCJ7eyBlbmRwb2ludE5hbWUgfX1cIi4gRG8geW91IHdhbnQgdG8gcHJvY2VlZD9gXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgeyBlbmRwb2ludE5hbWU6IGVudHJ5Lm5hbWUgfVxuICAgICAgICAgICksXG4gICAgICAgICAgU3RhdHVzLkRBTkdFUixcbiAgICAgICAgICB7IGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJyksIG9rOiBnZXR0ZXh0KCdEZWxldGUnKSB9XG4gICAgICAgICk7XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0aGlzLmdldFByb3RvY29sUHJvdmlkZXJGb3JDb25maWd1cmF0aW9uKGVudHJ5KTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHByb3ZpZGVyLnJlbW92ZUVuZHBvaW50KHRoaXMuZGV2aWNlSWQsIGVudHJ5KTtcbiAgICAgICAgICB0aGlzLmFsZXJ0LnN1Y2Nlc3MoZ2V0dGV4dCgnRW5kcG9pbnQgZGVsZXRlZC4nKSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oZSk7XG4gICAgICAgICAgdGhpcy5hbGVydC5kYW5nZXIoZ2V0dGV4dCgnRmFpbGVkIHRvIGRlbGV0ZSBlbmRwb2ludC4nKSwgZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICB9XG4gIF07XG4gIGRldmljZUlkOiBzdHJpbmc7XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB7XG4gICAgcGFnZVNpemU6IDEwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG4gIGRpc3BsYXlPcHRpb25zOiBEaXNwbGF5T3B0aW9ucyA9IHtcbiAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgc3RyaXBlZDogdHJ1ZSxcbiAgICBmaWx0ZXI6IHRydWUsXG4gICAgZ3JpZEhlYWRlcjogdHJ1ZSxcbiAgICBob3ZlcjogdHJ1ZVxuICB9O1xuICBwcm90b2NvbFByb3ZpZGVyczogUmVtb3RlQWNjZXNzUHJvdG9jb2xQcm92aWRlcltdID0gW107XG4gIGdyaWRUaXRsZSA9IGdldHRleHQoJ1JlbW90ZSBhY2Nlc3MgZW5kcG9pbnRzJyk7XG5cbiAgcHJpdmF0ZSBkZXZpY2U6IElNYW5hZ2VkT2JqZWN0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVtb3RlQWNjZXNzOiBSZW1vdGVBY2Nlc3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGN0eDogQ29udGV4dFJvdXRlU2VydmljZVxuICApIHtcbiAgICB0aGlzLmRldmljZSA9IHRoaXMuY3R4LmdldENvbnRleHREYXRhKHRoaXMuYWN0aXZhdGVkUm91dGUpPy5jb250ZXh0RGF0YSBhcyBJTWFuYWdlZE9iamVjdDtcbiAgICB0aGlzLmRldmljZUlkID0gdGhpcy5kZXZpY2U/LmlkIGFzIHN0cmluZztcbiAgICB0aGlzLnByb3RvY29sUHJvdmlkZXJzID0gdGhpcy5yZW1vdGVBY2Nlc3MuZ2V0U3VwcG9ydGVkUHJvdG9jb2xQcm92aWRlcnNGb3IodGhpcy5kZXZpY2UpO1xuICAgIGNvbnN0IGNvbm5lY3RDb2x1bSA9IHRoaXMuY29sdW1ucy5maW5kKGMgPT4gYy5uYW1lID09PSAnY29ubmVjdCcpO1xuICAgIGlmIChjb25uZWN0Q29sdW0pIHtcbiAgICAgICg8YW55PmNvbm5lY3RDb2x1bSkudGFyZ2V0ID0gdGhpcy5kZXZpY2VJZDtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlbG9hZCgpO1xuICB9XG5cbiAgYXN5bmMgcmVsb2FkKCkge1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb25zID0gYXdhaXQgdGhpcy5yZW1vdGVBY2Nlc3MubGlzdENvbmZpZ3VyYXRpb25zKHRoaXMuZGV2aWNlSWQpO1xuICAgIGNvbnN0IHN1cHBvcnRlZFByb3RvY29scyA9IHRoaXMucmVtb3RlQWNjZXNzLmdldFN1cHBvcnRlZFByb3RvY29sUHJvdmlkZXJzRm9yKHRoaXMuZGV2aWNlKTtcbiAgICBjb25zdCBzdXBwb3J0ZWRQcm90b2NvbHNOYW1lcyA9IHN1cHBvcnRlZFByb3RvY29scy5tYXAocCA9PiBwLnByb3RvY29sTmFtZSk7XG4gICAgdGhpcy5yb3dzID0gY29uZmlndXJhdGlvbnMuZmlsdGVyKGMgPT5cbiAgICAgIHN1cHBvcnRlZFByb3RvY29sc05hbWVzLmluY2x1ZGVzKGMucHJvdG9jb2wudG9VcHBlckNhc2UoKSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgYWRkRW5kcG9pbnQoKSB7XG4gICAgbGV0IHByb3ZpZGVyOiBSZW1vdGVBY2Nlc3NQcm90b2NvbFByb3ZpZGVyID0gbnVsbDtcbiAgICBpZiAodGhpcy5wcm90b2NvbFByb3ZpZGVycy5sZW5ndGggPiAxKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhSZW1vdGVBY2Nlc3NQaWNrUHJvdG9jb2xNb2RhbENvbXBvbmVudCwge1xuICAgICAgICAgIGluaXRpYWxTdGF0ZTogeyBwcm90b2NvbFByb3ZpZGVyczogdGhpcy5wcm90b2NvbFByb3ZpZGVycyB9XG4gICAgICAgIH0pO1xuICAgICAgICBwcm92aWRlciA9IGF3YWl0IG1vZGFsUmVmLmNvbnRlbnQucmVzdWx0O1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBtb2RhbCBjbG9zZWRcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5wcm90b2NvbFByb3ZpZGVycy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHByb3ZpZGVyID0gdGhpcy5wcm90b2NvbFByb3ZpZGVyc1swXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBsZXQgYWRkTW9kYWxSZXN1bHQ6IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24gPSBudWxsO1xuICAgICAgaWYgKHByb3ZpZGVyLmFkZEVuZHBvaW50KSB7XG4gICAgICAgIGFkZE1vZGFsUmVzdWx0ID0gYXdhaXQgcHJvdmlkZXIuYWRkRW5kcG9pbnQodGhpcy5kZXZpY2VJZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGRNb2RhbFJlc3VsdCA9IGF3YWl0IHRoaXMuZGVmYXVsdEFkZEVuZHBvaW50KHRoaXMuZGV2aWNlSWQsIHByb3ZpZGVyKTtcbiAgICAgIH1cbiAgICAgIGlmICghYWRkTW9kYWxSZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKGdldHRleHQoJ0VuZHBvaW50IGFkZGVkLicpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oZSk7XG4gICAgICB0aGlzLmFsZXJ0LmRhbmdlcihnZXR0ZXh0KCdGYWlsZWQgdG8gYWRkIGVuZHBvaW50LicpLCBlKTtcbiAgICB9XG4gICAgdGhpcy5yZWxvYWQoKTtcbiAgfVxuXG4gIGdldFByb3RvY29sUHJvdmlkZXJGb3JDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb246IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5wcm90b2NvbFByb3ZpZGVycy5maW5kKHAgPT4gcC5wcm90b2NvbE5hbWUgPT09IGNvbmZpZ3VyYXRpb24ucHJvdG9jb2wpO1xuICB9XG5cbiAgYXN5bmMgZGVmYXVsdEVkaXRFbmRwb2ludChkZXZpY2VJZDogc3RyaW5nLCBjb25maWd1cmF0aW9uOiBSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uKSB7XG4gICAgY29uc3QgbW9kYWxSZXN1bHQgPSBhd2FpdCB0aGlzLm9wZW5CYXNpY0VuZHBvaW50TW9kYWwoY29uZmlndXJhdGlvbik7XG4gICAgaWYgKCFtb2RhbFJlc3VsdCkge1xuICAgICAgcmV0dXJuIG1vZGFsUmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlbW90ZUFjY2Vzcy51cGRhdGVDb25maWd1cmF0aW9uKGRldmljZUlkLCBtb2RhbFJlc3VsdCk7XG4gIH1cblxuICBhc3luYyBkZWZhdWx0QWRkRW5kcG9pbnQoZGV2aWNlSWQ6IHN0cmluZywgcHJvdmlkZXI6IFJlbW90ZUFjY2Vzc1Byb3RvY29sUHJvdmlkZXIpIHtcbiAgICBsZXQgZGVmYXVsdENvbmZpZyA9IHsgcHJvdG9jb2w6IHByb3ZpZGVyLnByb3RvY29sTmFtZSB9O1xuICAgIGlmIChwcm92aWRlci5nZXREZWZhdWx0RW5kcG9pbnRDb25maWd1cmF0aW9uKSB7XG4gICAgICBjb25zdCBkZWZhdWx0Q29uZmlnRnJvbVByb3ZpZGVyID0gYXdhaXQgcHJvdmlkZXIuZ2V0RGVmYXVsdEVuZHBvaW50Q29uZmlndXJhdGlvbigpO1xuICAgICAgZGVmYXVsdENvbmZpZyA9IHsgLi4uZGVmYXVsdENvbmZpZywgLi4uZGVmYXVsdENvbmZpZ0Zyb21Qcm92aWRlciB9O1xuICAgIH1cbiAgICBjb25zdCBtb2RhbFJlc3VsdCA9IGF3YWl0IHRoaXMub3BlbkJhc2ljRW5kcG9pbnRNb2RhbChkZWZhdWx0Q29uZmlnKTtcbiAgICBpZiAoIW1vZGFsUmVzdWx0KSB7XG4gICAgICByZXR1cm4gbW9kYWxSZXN1bHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVtb3RlQWNjZXNzLmFkZENvbmZpZ3VyYXRpb24oZGV2aWNlSWQsIG1vZGFsUmVzdWx0KTtcbiAgfVxuXG4gIGFzeW5jIG9wZW5CYXNpY0VuZHBvaW50TW9kYWwoXG4gICAgY3VycmVudENvbmZpZ3VyYXRpb246IFBhcnRpYWw8UmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbj5cbiAgKTogUHJvbWlzZTxSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgUmVtb3RlQWNjZXNzQmFzaWNFbmRwb2ludE1vZGFsQ29tcG9uZW50IH0gPSBhd2FpdCBpbXBvcnQoXG4gICAgICAnQGM4eS9uZ3gtY29tcG9uZW50cy9yZW1vdGUtYWNjZXNzL3NoYXJlZCdcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5ic01vZGFsU2VydmljZS5zaG93KFJlbW90ZUFjY2Vzc0Jhc2ljRW5kcG9pbnRNb2RhbENvbXBvbmVudCwge1xuICAgICAgICBpbml0aWFsU3RhdGU6IHsgY3VycmVudFZhbHVlOiBjdXJyZW50Q29uZmlndXJhdGlvbiB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoYXdhaXQgbW9kYWxSZWYuY29udGVudC5yZXN1bHQpIGFzIFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb247XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbW9kYWwgY2xvc2VkXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsIjxjOHktdGl0bGUgdHJhbnNsYXRlPlJlbW90ZSBhY2Nlc3M8L2M4eS10aXRsZT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgKGNsaWNrKT1cImFkZEVuZHBvaW50KClcIlxuICAgIFtkaXNhYmxlZF09XCIhcHJvdG9jb2xQcm92aWRlcnM/Lmxlbmd0aFwiXG4gICAgW2F0dHIuZGF0YS1jeV09XCIncmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbkxpc3QtLWFkZC1lbmRwb2ludCdcIlxuICA+XG4gICAgPGkgW2M4eUljb25dPVwiJ3BsdXMtY2lyY2xlJ1wiPjwvaT5cbiAgICA8c3BhbiB0cmFuc2xhdGU+QWRkIGVuZHBvaW50PC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGRpdiBjbGFzcz1cImNvbnRlbnQtZnVsbHBhZ2UgZC1mbGV4IGQtY29sIGJvcmRlci10b3BcIj5cbiAgPGM4eS1kYXRhLWdyaWRcbiAgICBbdGl0bGVdPVwiZ3JpZFRpdGxlXCJcbiAgICBbcm93c109XCJyb3dzXCJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgICAob25SZWxvYWQpPVwicmVsb2FkKClcIlxuICAgIFthY3Rpb25Db250cm9sc109XCJhY3Rpb25Db250cm9sc1wiXG4gICAgW2Rpc3BsYXlPcHRpb25zXT1cImRpc3BsYXlPcHRpb25zXCJcbiAgPlxuICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgIFtpY29uXT1cIid3aW5kb3ctcmVzdG9yZSdcIlxuICAgICAgW3RpdGxlXT1cIidObyBlbmRwb2ludHMgY29uZmlndXJlZC4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtzdWJ0aXRsZV09XCInQ2xpY2sgYmVsb3cgdG8gYWRkIHlvdXIgZmlyc3QgZW5kcG9pbnQuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbaG9yaXpvbnRhbF09XCJmYWxzZVwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgIChjbGljayk9XCJhZGRFbmRwb2ludCgpXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIEFkZCBlbmRwb2ludFxuICAgICAgPC9idXR0b24+XG4gICAgPC9jOHktdWktZW1wdHktc3RhdGU+XG4gIDwvYzh5LWRhdGEtZ3JpZD5cbjwvZGl2PlxuIl19
|
|
@@ -200,7 +200,7 @@ export class ConfigurationListComponent {
|
|
|
200
200
|
return column.name;
|
|
201
201
|
}
|
|
202
202
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigurationListComponent, deps: [{ token: i1.AlertService }, { token: i1.DataGridService }, { token: i2.RepositoryService }, { token: i3.BsModalService }, { token: i1.ModalService }, { token: i4.TranslateService }, { token: i5.InventoryBinaryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
203
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ConfigurationListComponent, selector: "c8y-configuration-list", viewQueries: [{ propertyName: "filter", first: true, predicate: FilterInputComponent, descendants: true }], ngImport: i0, template: "<c8y-title>\n <span\n class=\"m-r-4\"\n translate\n >\n Configuration repository\n </span>\n <small>\n {{ size$ | async }}\n <span translate>snapshots</span>\n </small>\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n label=\"{{ 'Management' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"gears\"\n label=\"{{ 'Configuration repository' | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add configuration snapshot' | translate }}\"\n type=\"button\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add configuration snapshot' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/managing-device-data/#managing-configurations\"\n></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"'Configurations' | translate\"\n [refresh]=\"refresh$\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'gears'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <ng-container *ngIf=\"stats?.size === 0\">\n <p>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add configuration snapshot' | translate }}\"\n type=\"button\"\n (click)=\"add()\"\n >\n {{ 'Add configuration snapshot' | translate }}\n </button>\n </p>\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a\n c8y-guide-href=\"/docs/device-management-application/managing-device-data/#managing-configurations\"\n >\n user documentation\n </a>\n .\n </small>\n </p>\n </ng-container>\n </c8y-ui-empty-state>\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</div>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i1.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: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i1.GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: i1.GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "component", type: i1.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
|
|
203
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ConfigurationListComponent, selector: "c8y-configuration-list", viewQueries: [{ propertyName: "filter", first: true, predicate: FilterInputComponent, descendants: true }], ngImport: i0, template: "<c8y-title>\n <span\n class=\"m-r-4\"\n translate\n >\n Configuration repository\n </span>\n <small>\n {{ size$ | async }}\n <span translate>snapshots</span>\n </small>\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n label=\"{{ 'Management' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"gears\"\n label=\"{{ 'Configuration repository' | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add configuration snapshot' | translate }}\"\n type=\"button\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add configuration snapshot' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/managing-device-data/#managing-configurations\"\n></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"'Configurations' | translate\"\n [refresh]=\"refresh$\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'gears'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <ng-container *ngIf=\"stats?.size === 0\">\n <p>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add configuration snapshot' | translate }}\"\n type=\"button\"\n (click)=\"add()\"\n >\n {{ 'Add configuration snapshot' | translate }}\n </button>\n </p>\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a\n c8y-guide-href=\"/docs/device-management-application/managing-device-data/#managing-configurations\"\n >\n user documentation\n </a>\n .\n </small>\n </p>\n </ng-container>\n </c8y-ui-empty-state>\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</div>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i1.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i1.GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: i1.GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "component", type: i1.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
|
|
204
204
|
}
|
|
205
205
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigurationListComponent, decorators: [{
|
|
206
206
|
type: Component,
|
|
@@ -152,7 +152,7 @@ export class FirmwareListComponent {
|
|
|
152
152
|
return column.name;
|
|
153
153
|
}
|
|
154
154
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FirmwareListComponent, deps: [{ token: i1.RepositoryService }, { token: i2.DataGridService }, { token: i2.ModalService }, { token: i3.BsModalService }, { token: i4.TranslateService }, { token: i2.AlertService }, { token: i5.Router }, { token: i5.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
155
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FirmwareListComponent, selector: "c8y-firmware-list", ngImport: i0, template: "<c8y-title>\n {{ 'Firmware repository' | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n label=\"{{ 'Management' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-firmware\"\n label=\"{{ 'Firmware repository' | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add firmware' | translate }}\"\n (click)=\"addFirmware()\"\n data-cy=\"firmware-list--toolbar-add-firmware-btn\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add firmware' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add firmware patch' | translate }}\"\n *ngIf=\"isDataPresent$ | async\"\n (click)=\"addFirmwarePatch()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add firmware patch' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/managing-device-data/#managing-firmware\"\n></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"'Firmware' | translate\"\n [refresh]=\"refresh$\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-tools'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <p *ngIf=\"stats?.size === 0\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add firmware' | translate }}\"\n type=\"button\"\n (click)=\"addFirmware()\"\n >\n {{ 'Add firmware' | translate }}\n </button>\n </p>\n </c8y-ui-empty-state>\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</div>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i2.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i2.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i2.EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i2.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: i2.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i2.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
|
|
155
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FirmwareListComponent, selector: "c8y-firmware-list", ngImport: i0, template: "<c8y-title>\n {{ 'Firmware repository' | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n label=\"{{ 'Management' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-firmware\"\n label=\"{{ 'Firmware repository' | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add firmware' | translate }}\"\n (click)=\"addFirmware()\"\n data-cy=\"firmware-list--toolbar-add-firmware-btn\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add firmware' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add firmware patch' | translate }}\"\n *ngIf=\"isDataPresent$ | async\"\n (click)=\"addFirmwarePatch()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add firmware patch' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/managing-device-data/#managing-firmware\"\n></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"'Firmware' | translate\"\n [refresh]=\"refresh$\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-tools'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <p *ngIf=\"stats?.size === 0\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add firmware' | translate }}\"\n type=\"button\"\n (click)=\"addFirmware()\"\n >\n {{ 'Add firmware' | translate }}\n </button>\n </p>\n </c8y-ui-empty-state>\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</div>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i2.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i2.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i2.EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i2.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: i2.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i2.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
|
|
156
156
|
}
|
|
157
157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FirmwareListComponent, decorators: [{
|
|
158
158
|
type: Component,
|
|
@@ -144,7 +144,7 @@ export class SoftwareListComponent {
|
|
|
144
144
|
return column.name;
|
|
145
145
|
}
|
|
146
146
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SoftwareListComponent, deps: [{ token: i1.RepositoryService }, { token: i2.DataGridService }, { token: i2.ModalService }, { token: i3.BsModalService }, { token: i4.TranslateService }, { token: i2.AlertService }, { token: i5.Router }, { token: i5.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
147
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SoftwareListComponent, selector: "c8y-software-list", ngImport: i0, template: "<c8y-title>\n {{ 'Software repository' | translate }}\n</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n label=\"{{ 'Management' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-tools\"\n label=\"{{ 'Software repository' | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add software' | translate }}\"\n type=\"button\"\n (click)=\"addSoftware()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add software' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/managing-device-data/#managing-software\"\n></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"'Software' | translate\"\n [refresh]=\"refresh$\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-tools'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <p *ngIf=\"stats?.size === 0\">\n <button\n class=\"btn btn-primary\"\n [title]=\"'Add software' | translate\"\n type=\"button\"\n (click)=\"addSoftware()\"\n >\n {{ 'Add software' | translate }}\n </button>\n </p>\n </c8y-ui-empty-state>\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</div>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i2.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i2.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i2.EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i2.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: i2.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i2.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
|
|
147
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SoftwareListComponent, selector: "c8y-software-list", ngImport: i0, template: "<c8y-title>\n {{ 'Software repository' | translate }}\n</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n label=\"{{ 'Management' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-tools\"\n label=\"{{ 'Software repository' | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add software' | translate }}\"\n type=\"button\"\n (click)=\"addSoftware()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add software' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/managing-device-data/#managing-software\"\n></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"'Software' | translate\"\n [refresh]=\"refresh$\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-tools'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <p *ngIf=\"stats?.size === 0\">\n <button\n class=\"btn btn-primary\"\n [title]=\"'Add software' | translate\"\n type=\"button\"\n (click)=\"addSoftware()\"\n >\n {{ 'Add software' | translate }}\n </button>\n </p>\n </c8y-ui-empty-state>\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</div>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i2.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i2.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i2.EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i2.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: i2.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i2.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
|
|
148
148
|
}
|
|
149
149
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SoftwareListComponent, decorators: [{
|
|
150
150
|
type: Component,
|
|
@@ -187,7 +187,7 @@ export class SearchGridComponent {
|
|
|
187
187
|
provide: DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER,
|
|
188
188
|
useExisting: SearchGridComponent
|
|
189
189
|
}
|
|
190
|
-
], viewQueries: [{ propertyName: "dataGrid", first: true, predicate: DataGridComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"card--grid--fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"'Search results' | translate\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [bulkActionControls]=\"bulkActionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"'auto'\"\n [showSearch]=\"true\"\n [searchText]=\"searchText\"\n [refresh]=\"refresh\"\n (onColumnFilterReset)=\"onColumnFilterReset($event)\"\n >\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms or check your spelling.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-data-grid>\n</div>", dependencies: [{ kind: "component", type: i5.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i5.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: i5.C8yTranslatePipe, name: "translate" }] }); }
|
|
190
|
+
], viewQueries: [{ propertyName: "dataGrid", first: true, predicate: DataGridComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"card--grid--fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"'Search results' | translate\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [bulkActionControls]=\"bulkActionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"'auto'\"\n [showSearch]=\"true\"\n [searchText]=\"searchText\"\n [refresh]=\"refresh\"\n (onColumnFilterReset)=\"onColumnFilterReset($event)\"\n >\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms or check your spelling.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-data-grid>\n</div>", dependencies: [{ kind: "component", type: i5.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i5.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "pipe", type: i5.C8yTranslatePipe, name: "translate" }] }); }
|
|
191
191
|
}
|
|
192
192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchGridComponent, decorators: [{
|
|
193
193
|
type: Component,
|
|
@@ -87,7 +87,7 @@ export class ServicesDeviceTabComponent {
|
|
|
87
87
|
return column.name;
|
|
88
88
|
}
|
|
89
89
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServicesDeviceTabComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.InventoryService }, { token: i3.DataGridService }, { token: i4.StatusOptionsService }, { token: i5.ServiceCommandService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
90
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ServicesDeviceTabComponent, selector: "c8y-services-device-tab", ngImport: i0, template: "<div class=\"content-fullpage\">\n <c8y-data-grid\n [title]=\"'Services' | translate\"\n [refresh]=\"refresh$\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-tools'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : null\"\n *emptyStateContext=\"let stats; isLoading as isLoading\"\n [horizontal]=\"stats?.size > 0\"\n ></c8y-ui-empty-state>\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</div>\n", dependencies: [{ kind: "component", type: i3.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] }); }
|
|
90
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ServicesDeviceTabComponent, selector: "c8y-services-device-tab", ngImport: i0, template: "<div class=\"content-fullpage\">\n <c8y-data-grid\n [title]=\"'Services' | translate\"\n [refresh]=\"refresh$\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-tools'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : null\"\n *emptyStateContext=\"let stats; isLoading as isLoading\"\n [horizontal]=\"stats?.size > 0\"\n ></c8y-ui-empty-state>\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</div>\n", dependencies: [{ kind: "component", type: i3.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] }); }
|
|
91
91
|
}
|
|
92
92
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServicesDeviceTabComponent, decorators: [{
|
|
93
93
|
type: Component,
|
|
@@ -230,7 +230,7 @@ export class SubAssetsGridComponent {
|
|
|
230
230
|
provide: DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER,
|
|
231
231
|
useExisting: SubAssetsGridComponent
|
|
232
232
|
}
|
|
233
|
-
], viewQueries: [{ propertyName: "dataGrid", first: true, predicate: DataGridComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<c8y-data-grid\n [title]=\"title\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [bulkActionControls]=\"bulkActionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"getInfiniteScrollMode\"\n [showCounterWarning]=\"showCounterWarning\"\n [refresh]=\"refresh\"\n [showSearch]=\"showSearch\"\n [displayOptions]=\"displayOptions\"\n (itemsSelect)=\"itemsSelect.emit($event)\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n (onReload)=\"onReload()\"\n>\n <c8y-ui-empty-state\n [icon]=\"'c8y-group-add'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (emptyStateText | translate)\"\n *emptyStateContext=\"let stats\"\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: i6.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i6.EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i6.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: i6.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: i6.C8yTranslatePipe, name: "translate" }] }); }
|
|
233
|
+
], viewQueries: [{ propertyName: "dataGrid", first: true, predicate: DataGridComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<c8y-data-grid\n [title]=\"title\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [bulkActionControls]=\"bulkActionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"getInfiniteScrollMode\"\n [showCounterWarning]=\"showCounterWarning\"\n [refresh]=\"refresh\"\n [showSearch]=\"showSearch\"\n [displayOptions]=\"displayOptions\"\n (itemsSelect)=\"itemsSelect.emit($event)\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n (onReload)=\"onReload()\"\n>\n <c8y-ui-empty-state\n [icon]=\"'c8y-group-add'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (emptyStateText | translate)\"\n *emptyStateContext=\"let stats\"\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: i6.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i6.EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i6.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "directive", type: i6.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: i6.C8yTranslatePipe, name: "translate" }] }); }
|
|
234
234
|
}
|
|
235
235
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubAssetsGridComponent, decorators: [{
|
|
236
236
|
type: Component,
|
|
@@ -274,7 +274,7 @@ export class TenantListComponent {
|
|
|
274
274
|
saveAs(blob, filename);
|
|
275
275
|
}
|
|
276
276
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TenantListComponent, deps: [{ token: i1.AppStateService }, { token: i1.AlertService }, { token: i1.ModalService }, { token: i2.TranslateService }, { token: i3.TenantService }, { token: i1.TenantUiService }, { token: i4.Location }, { token: i1.PasswordService }, { token: i3.UserService }, { token: i1.Permissions }, { token: i1.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
277
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TenantListComponent, selector: "c8y-tenant-list", ngImport: i0, template: "<c8y-title>\n {{ 'Subtenants' | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-layers\"\n label=\"{{ 'Tenants' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-layers'\"\n [label]=\"'Subtenants' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n *ngIf=\"!!(appState.state$ | async).newsletter\"\n [placement]=\"'right'\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{\n 'Downloads the list of emails of users subscribed for newsletter on the current tenant and its subtenants.'\n | translate\n }}\"\n type=\"button\"\n (click)=\"downloadNewsletterEmails()\"\n >\n <i c8yIcon=\"download\"></i>\n {{ 'Email addresses' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Create tenant' | translate }}\"\n type=\"button\"\n (click)=\"createTenant({ sendGainsightEvent: false })\"\n [disabled]=\"!isPermittedToCreateTenanant\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Create tenant' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/docs/enterprise-tenant/managing-tenants/#managing-subtenants\"></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [rows]=\"tenants$ | async\"\n [pagination]=\"pagination\"\n [showSearch]=\"showSearch\"\n [actionControls]=\"actionControls\"\n (onReload)=\"loadTenants()\"\n >\n <ng-container *ngIf=\"!(tenants$ | async); else empty\">\n <c8y-loading></c8y-loading>\n </ng-container>\n <ng-template #empty>\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-layers'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"\n stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\n \"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <ng-container *ngIf=\"stats?.size === 0\">\n <div>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Create tenant' | translate }}\"\n (click)=\"createTenant()\"\n [disabled]=\"!isPermittedToCreateTenanant\"\n >\n {{ 'Create tenant' | translate }}\n </button>\n </div>\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/enterprise-tenant/managing-tenants\">user documentation</a>\n .\n </small>\n </p>\n </ng-container>\n </c8y-ui-empty-state>\n </ng-template>\n\n <c8y-column name=\"company\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }}\">\n <a [routerLink]=\"['/tenants', context.item.id]\">{{ context.value }}</a>\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"parent\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value || currentTenant.name }}\">\n {{ context.value || currentTenant.name }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"creationTime\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value | c8yDate }}\">\n {{ context.value | c8yDate }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"status\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span\n title=\"{{ 'Active`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.ACTIVE\"\n >\n <i\n class=\"text-success\"\n c8yIcon=\"check-circle\"\n ></i>\n </span>\n <span\n title=\"{{ 'Suspended`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.SUSPENDED\"\n >\n <i\n class=\"text-danger\"\n c8yIcon=\"ban\"\n ></i>\n </span>\n </ng-container>\n </c8y-column>\n </c8y-data-grid>\n</div>\n", dependencies: [{ kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "directive", type: i1.CellRendererDefDirective, selector: "[c8yCellRendererDef]" }, { kind: "directive", type: i1.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i1.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: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i1.GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: i1.GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "component", type: i1.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DatePipe, name: "c8yDate" }] }); }
|
|
277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TenantListComponent, selector: "c8y-tenant-list", ngImport: i0, template: "<c8y-title>\n {{ 'Subtenants' | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-layers\"\n label=\"{{ 'Tenants' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-layers'\"\n [label]=\"'Subtenants' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n *ngIf=\"!!(appState.state$ | async).newsletter\"\n [placement]=\"'right'\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{\n 'Downloads the list of emails of users subscribed for newsletter on the current tenant and its subtenants.'\n | translate\n }}\"\n type=\"button\"\n (click)=\"downloadNewsletterEmails()\"\n >\n <i c8yIcon=\"download\"></i>\n {{ 'Email addresses' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Create tenant' | translate }}\"\n type=\"button\"\n (click)=\"createTenant({ sendGainsightEvent: false })\"\n [disabled]=\"!isPermittedToCreateTenanant\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Create tenant' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/docs/enterprise-tenant/managing-tenants/#managing-subtenants\"></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [rows]=\"tenants$ | async\"\n [pagination]=\"pagination\"\n [showSearch]=\"showSearch\"\n [actionControls]=\"actionControls\"\n (onReload)=\"loadTenants()\"\n >\n <ng-container *ngIf=\"!(tenants$ | async); else empty\">\n <c8y-loading></c8y-loading>\n </ng-container>\n <ng-template #empty>\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-layers'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"\n stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\n \"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <ng-container *ngIf=\"stats?.size === 0\">\n <div>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Create tenant' | translate }}\"\n (click)=\"createTenant()\"\n [disabled]=\"!isPermittedToCreateTenanant\"\n >\n {{ 'Create tenant' | translate }}\n </button>\n </div>\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/enterprise-tenant/managing-tenants\">user documentation</a>\n .\n </small>\n </p>\n </ng-container>\n </c8y-ui-empty-state>\n </ng-template>\n\n <c8y-column name=\"company\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }}\">\n <a [routerLink]=\"['/tenants', context.item.id]\">{{ context.value }}</a>\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"parent\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value || currentTenant.name }}\">\n {{ context.value || currentTenant.name }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"creationTime\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value | c8yDate }}\">\n {{ context.value | c8yDate }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"status\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span\n title=\"{{ 'Active`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.ACTIVE\"\n >\n <i\n class=\"text-success\"\n c8yIcon=\"check-circle\"\n ></i>\n </span>\n <span\n title=\"{{ 'Suspended`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.SUSPENDED\"\n >\n <i\n class=\"text-danger\"\n c8yIcon=\"ban\"\n ></i>\n </span>\n </ng-container>\n </c8y-column>\n </c8y-data-grid>\n</div>\n", dependencies: [{ kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "directive", type: i1.CellRendererDefDirective, selector: "[c8yCellRendererDef]" }, { kind: "directive", type: i1.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i1.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i1.GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: i1.GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "component", type: i1.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DatePipe, name: "c8yDate" }] }); }
|
|
278
278
|
}
|
|
279
279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TenantListComponent, decorators: [{
|
|
280
280
|
type: Component,
|