@c8y/ngx-components 1021.80.1 → 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.
Files changed (88) hide show
  1. package/core/data-grid/column/tree-node-column/tree-node.cell-renderer.component.d.ts +23 -0
  2. package/core/data-grid/column/tree-node-column/tree-node.cell-renderer.component.d.ts.map +1 -0
  3. package/core/data-grid/column/tree-node-column/tree-node.data-grid-column.d.ts +23 -0
  4. package/core/data-grid/column/tree-node-column/tree-node.data-grid-column.d.ts.map +1 -0
  5. package/core/data-grid/column/tree-node-column/tree-node.header-cell-renderer.component.d.ts +6 -0
  6. package/core/data-grid/column/tree-node-column/tree-node.header-cell-renderer.component.d.ts.map +1 -0
  7. package/core/data-grid/data-grid.component.d.ts +29 -1
  8. package/core/data-grid/data-grid.component.d.ts.map +1 -1
  9. package/core/data-grid/data-grid.model.d.ts +13 -1
  10. package/core/data-grid/data-grid.model.d.ts.map +1 -1
  11. package/core/data-grid/grid-data-source.d.ts +11 -2
  12. package/core/data-grid/grid-data-source.d.ts.map +1 -1
  13. package/core/data-grid/index.d.ts +4 -1
  14. package/core/data-grid/index.d.ts.map +1 -1
  15. package/esm2022/branding/shared/lazy/branding/branding.component.mjs +2 -2
  16. package/esm2022/context-dashboard/dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.mjs +1 -1
  17. package/esm2022/context-dashboard/dashboard-manager/type-dashboards-list/type-dashboards-list.component.mjs +1 -1
  18. package/esm2022/core/data-grid/column/tree-node-column/tree-node.cell-renderer.component.mjs +87 -0
  19. package/esm2022/core/data-grid/column/tree-node-column/tree-node.data-grid-column.mjs +15 -0
  20. package/esm2022/core/data-grid/column/tree-node-column/tree-node.header-cell-renderer.component.mjs +15 -0
  21. package/esm2022/core/data-grid/configure-custom-column/asset-property-grid.component.mjs +1 -1
  22. package/esm2022/core/data-grid/data-grid.component.mjs +68 -11
  23. package/esm2022/core/data-grid/data-grid.model.mjs +1 -1
  24. package/esm2022/core/data-grid/grid-data-source.mjs +92 -22
  25. package/esm2022/core/data-grid/index.mjs +5 -2
  26. package/esm2022/device-grid/device-grid.component.mjs +1 -1
  27. package/esm2022/device-profile/device-profile-list.component.mjs +1 -1
  28. package/esm2022/device-provisioned-certificates/device-tab-provisioned-certificates.component.mjs +1 -1
  29. package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +1 -1
  30. package/esm2022/files-repository/files-repository.component.mjs +1 -1
  31. package/esm2022/messaging-management/messaging/topic/topic-list-view.component.mjs +2 -2
  32. package/esm2022/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-view.component.mjs +2 -2
  33. package/esm2022/operations/bulk-single-operations-list/single-operations-list.component.mjs +2 -2
  34. package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.mjs +2 -2
  35. package/esm2022/repository/configuration/list/configuration-list.component.mjs +1 -1
  36. package/esm2022/repository/firmware/list/firmware-list.component.mjs +1 -1
  37. package/esm2022/repository/software/list/software-list.component.mjs +1 -1
  38. package/esm2022/search/search-grid.component.mjs +1 -1
  39. package/esm2022/services/services-device-tab/services-device-tab.component.mjs +1 -1
  40. package/esm2022/sub-assets/sub-assets-grid.component.mjs +1 -1
  41. package/esm2022/tenants/tenant-list/tenant-list.component.mjs +1 -1
  42. package/esm2022/translation-editor/lazy/translation-editor/translation-editor.component.mjs +2 -2
  43. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CmhkghTo.mjs → c8y-ngx-components-asset-property-grid.component-xQgHuomT.mjs} +3 -3
  44. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CmhkghTo.mjs.map → c8y-ngx-components-asset-property-grid.component-xQgHuomT.mjs.map} +1 -1
  45. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +1 -1
  46. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  47. package/fesm2022/{c8y-ngx-components-c8y-ngx-components-D-YOjLHK.mjs → c8y-ngx-components-c8y-ngx-components-D2rmddmn.mjs} +455 -228
  48. package/fesm2022/c8y-ngx-components-c8y-ngx-components-D2rmddmn.mjs.map +1 -0
  49. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +2 -2
  50. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  51. package/fesm2022/c8y-ngx-components-device-grid.mjs +1 -1
  52. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  53. package/fesm2022/c8y-ngx-components-device-profile.mjs +1 -1
  54. package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
  55. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +1 -1
  56. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
  57. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +1 -1
  58. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  59. package/fesm2022/c8y-ngx-components-ecosystem.mjs +1 -1
  60. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  61. package/fesm2022/c8y-ngx-components-files-repository.mjs +1 -1
  62. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  63. package/fesm2022/c8y-ngx-components-messaging-management.mjs +2 -2
  64. package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -1
  65. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +1 -1
  66. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs.map +1 -1
  67. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +1 -1
  68. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -1
  69. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +1 -1
  70. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  71. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +1 -1
  72. package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
  73. package/fesm2022/c8y-ngx-components-repository-software.mjs +1 -1
  74. package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
  75. package/fesm2022/c8y-ngx-components-search.mjs +1 -1
  76. package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
  77. package/fesm2022/c8y-ngx-components-services.mjs +1 -1
  78. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  79. package/fesm2022/c8y-ngx-components-sub-assets.mjs +1 -1
  80. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  81. package/fesm2022/c8y-ngx-components-tenants.mjs +1 -1
  82. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  83. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +1 -1
  84. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
  85. package/fesm2022/c8y-ngx-components.mjs +1 -1
  86. package/locales/locales.pot +6 -0
  87. package/package.json +1 -1
  88. package/fesm2022/c8y-ngx-components-c8y-ngx-components-D-YOjLHK.mjs.map +0 -1
@@ -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,
@@ -106,7 +106,7 @@ export class TranslationEditorComponent {
106
106
  return columns;
107
107
  }
108
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationEditorComponent, deps: [{ token: i1.TranslationStoreService }, { token: i2.BsModalService }, { token: i3.AlertService }, { token: i3.AppStateService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TranslationEditorComponent, isStandalone: true, selector: "c8y-translation-editor", ngImport: i0, template: "<c8y-title translate>Localization</c8y-title>\n\n<ng-container *ngIf=\"!isLoading; else loading\">\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"addEntry()\"\n data-cy=\"c8y-translation-editor--add-translation\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add translation</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"saveTranslations()\"\n data-cy=\"c8y-translation-editor--save-and-apply\"\n >\n <i c8yIcon=\"save\"></i>\n <span translate>Save & apply</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-help src=\"/docs/standard-tenant/changing-settings/#localization\"></c8y-help>\n\n <c8y-data-grid\n class=\"content-fullpage d-flex d-col\"\n [title]=\"'Translations' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"items\"\n ></c8y-data-grid>\n</ng-container>\n\n<ng-template #loading>\n <c8y-loading></c8y-loading>\n</ng-template>\n", dependencies: [{ kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { 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: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "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: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: HelpModule }, { kind: "component", type: i3.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }] }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TranslationEditorComponent, isStandalone: true, selector: "c8y-translation-editor", ngImport: i0, template: "<c8y-title translate>Localization</c8y-title>\n\n<ng-container *ngIf=\"!isLoading; else loading\">\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"addEntry()\"\n data-cy=\"c8y-translation-editor--add-translation\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add translation</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"saveTranslations()\"\n data-cy=\"c8y-translation-editor--save-and-apply\"\n >\n <i c8yIcon=\"save\"></i>\n <span translate>Save & apply</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-help src=\"/docs/standard-tenant/changing-settings/#localization\"></c8y-help>\n\n <c8y-data-grid\n class=\"content-fullpage d-flex d-col\"\n [title]=\"'Translations' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"items\"\n ></c8y-data-grid>\n</ng-container>\n\n<ng-template #loading>\n <c8y-loading></c8y-loading>\n</ng-template>\n", dependencies: [{ kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { 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: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "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: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: HelpModule }, { kind: "component", type: i3.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }] }); }
110
110
  }
111
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationEditorComponent, decorators: [{
112
112
  type: Component,
@@ -122,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
122
122
  HelpModule
123
123
  ], template: "<c8y-title translate>Localization</c8y-title>\n\n<ng-container *ngIf=\"!isLoading; else loading\">\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"addEntry()\"\n data-cy=\"c8y-translation-editor--add-translation\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add translation</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"saveTranslations()\"\n data-cy=\"c8y-translation-editor--save-and-apply\"\n >\n <i c8yIcon=\"save\"></i>\n <span translate>Save & apply</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-help src=\"/docs/standard-tenant/changing-settings/#localization\"></c8y-help>\n\n <c8y-data-grid\n class=\"content-fullpage d-flex d-col\"\n [title]=\"'Translations' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"items\"\n ></c8y-data-grid>\n</ng-container>\n\n<ng-template #loading>\n <c8y-loading></c8y-loading>\n</ng-template>\n" }]
124
124
  }], ctorParameters: () => [{ type: i1.TranslationStoreService }, { type: i2.BsModalService }, { type: i3.AlertService }, { type: i3.AppStateService }, { type: i3.TranslateService }] });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RyYW5zbGF0aW9uLWVkaXRvci9sYXp5L3RyYW5zbGF0aW9uLWVkaXRvci90cmFuc2xhdGlvbi1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vdHJhbnNsYXRpb24tZWRpdG9yL2xhenkvdHJhbnNsYXRpb24tZWRpdG9yL3RyYW5zbGF0aW9uLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsc0JBQXNCLEVBRXRCLFlBQVksRUFDWixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFFaEIsY0FBYyxFQUVkLE9BQU8sRUFDUCxVQUFVLEVBQ1YsYUFBYSxFQUNiLGdCQUFnQixFQUVoQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7QUFDeEksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDOzs7OztBQWtCeEcsTUFBTSxPQUFPLDBCQUEwQjtJQThCckMsWUFDVSxnQkFBeUMsRUFDekMsWUFBNEIsRUFDNUIsS0FBbUIsRUFDbkIsUUFBeUIsRUFDekIsU0FBMkI7UUFKM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQUN6QyxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFDNUIsVUFBSyxH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RUFBRSxRQUFRLENBQUMsSUFBSTtZQUNuQixVQUFVLEVBQUUsS0FBSztZQUNqQixPQUFPLEVBQUUsS0FBSyxHQUFHLENBQUM7WUFDbEIscUJBQXFCLEVBQUUsc0NBQXNDO1NBQzlELENBQVcsQ0FDZixDQUNGLENBQUM7UUFFRixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOytHQXRIVSwwQkFBMEI7bUdBQTFCLDBCQUEwQixrRkMxQ3ZDLHdzQ0EwQ0EsNENEWEksY0FBYyxrRkFDZCxjQUFjLHF6QkFDZCxnQkFBZ0IsbUdBQ2hCLElBQUksd0ZBQ0osZ0JBQWdCLGtEQUNoQixzQkFBc0IsMEpBQ3RCLGFBQWEsMkVBQ2IscUJBQXFCLHVFQUNyQixVQUFVOzs0RkFHRCwwQkFBMEI7a0JBaEJ0QyxTQUFTOytCQUNFLHdCQUF3QixjQUV0QixJQUFJLFdBQ1A7d0JBQ1AsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsSUFBSTt3QkFDSixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLFVBQVU7cUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3Rpb25CYXJJdGVtQ29tcG9uZW50LFxuICBBY3Rpb25Db250cm9sLFxuICBBbGVydFNlcnZpY2UsXG4gIEFwcFN0YXRlU2VydmljZSxcbiAgQnVpbHRJbkFjdGlvblR5cGUsXG4gIEM4eVRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgQzh5VHJhbnNsYXRlUGlwZSxcbiAgQ29sdW1uLFxuICBEYXRhR3JpZE1vZHVsZSxcbiAgRGlzcGxheU9wdGlvbnMsXG4gIGdldHRleHQsXG4gIEhlbHBNb2R1bGUsXG4gIEljb25EaXJlY3RpdmUsXG4gIExvYWRpbmdDb21wb25lbnQsXG4gIFBhZ2luYXRpb24sXG4gIFRpdGxlQ29tcG9uZW50LFxuICBUcmFuc2xhdGVTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TdG9yZVNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3RyYW5zbGF0aW9uLWVkaXRvci9kYXRhJztcbmltcG9ydCB7IE1hbmFnZVRyYW5zbGF0aW9uQ2VsbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbWFuYWdlLXRyYW5zbGF0aW9uLWNlbGwtcmVuZGVyZXIvbWFuYWdlLXRyYW5zbGF0aW9uLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBBZGRUcmFuc2xhdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkLXRyYW5zbGF0aW9uLW1vZGFsL2FkZC10cmFuc2xhdGlvbi1tb2RhbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktdHJhbnNsYXRpb24tZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zbGF0aW9uLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBEYXRhR3JpZE1vZHVsZSxcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gICAgQzh5VHJhbnNsYXRlUGlwZSxcbiAgICBBY3Rpb25CYXJJdGVtQ29tcG9uZW50LFxuICAgIEljb25EaXJlY3RpdmUsXG4gICAgQzh5VHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIEhlbHBNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbkVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB7XG4gICAgcGFnZVNpemU6IDEwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG4gIGRpc3BsYXlPcHRpb25zOiBEaXNwbGF5T3B0aW9ucyA9IHtcbiAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgc3RyaXBlZDogdHJ1ZSxcbiAgICBmaWx0ZXI6IHRydWUsXG4gICAgZ3JpZEhlYWRlcjogdHJ1ZSxcbiAgICBob3ZlcjogdHJ1ZVxuICB9O1xuICBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gW1xuICAgIHtcbiAgICAgIHR5cGU6IEJ1aWx0SW5BY3Rpb25UeXBlLkRlbGV0ZSxcbiAgICAgIGNhbGxiYWNrOiBpdGVtID0+IHtcbiAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKGkgPT4gaS5rZXkgIT09IGl0ZW0ua2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIF07XG4gIGNvbHVtbnM6IENvbHVtbltdID0gW107XG4gIGlzTG9hZGluZyA9IHRydWU7XG4gIGl0ZW1zOiBBd2FpdGVkPFJldHVyblR5cGU8VHJhbnNsYXRpb25TdG9yZVNlcnZpY2VbJ2dldENvbWJpbmVkTGlzdE9mVHJhbnNsYXRpb25zRm9yUGVyS2V5J10+PiA9XG4gICAgbmV3IEFycmF5PGFueT4oKTtcbiAgaXNIYXZpbmdDaGFuZ2VzID0gZmFsc2U7XG4gIGF2YWlsYWJsZUxhbmdzOiB7XG4gICAgbGFuZzogc3RyaW5nO1xuICAgIG5hdGl2ZUxhbmd1YWdlOiBzdHJpbmc7XG4gIH1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRpb25TdG9yZTogVHJhbnNsYXRpb25TdG9yZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnQ6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGFwcFN0YXRlOiBBcHBTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5hdmFpbGFibGVMYW5ncyA9ICh0aGlzLmFwcFN0YXRlLnN0YXRlLmxhbmdzIGFzIHN0cmluZ1tdKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSlcbiAgICAgIC5tYXAobCA9PiAoe1xuICAgICAgICBsYW5nOiBsLFxuICAgICAgICBuYXRpdmVMYW5ndWFnZTogdGhpcy50cmFuc2xhdGUuZ2V0TmF0aXZlTGFuZ3VhZ2UobClcbiAgICAgIH0pKTtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgYXN5bmMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5yZWZyZXNoQ29sdW1ucygpO1xuXG4gICAgY29uc3QgdHJhbnNsYXRpb25zID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvblN0b3JlLmdldENvbWJpbmVkTGlzdE9mVHJhbnNsYXRpb25zRm9yUGVyS2V5KFxuICAgICAgdGhpcy5hdmFpbGFibGVMYW5ncy5tYXAobCA9PiBsLmxhbmcpXG4gICAgKTtcblxuICAgIHRoaXMuaXRlbXMgPSB0cmFuc2xhdGlvbnM7XG5cbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgYWRkRW50cnkoKSB7XG4gICAgY29uc3QgY3VycmVudEtleXMgPSB0aGlzLml0ZW1zLm1hcChpdGVtID0+IGl0ZW0ua2V5KTtcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3coQWRkVHJhbnNsYXRpb25Nb2RhbENvbXBvbmVudCwge1xuICAgICAgaW5pdGlhbFN0YXRlOiB7IGFscmVhZHlEZWZpbmVkS2V5czogY3VycmVudEtleXMsIGF2YWlsYWJsZUxhbmdzOiB0aGlzLmF2YWlsYWJsZUxhbmdzIH1cbiAgICB9KTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kYWxSZWYuY29udGVudC5yZXN1bHQ7XG4gICAgICB0aGlzLml0ZW1zID0gWy4uLnRoaXMuaXRlbXMsIHJlc3VsdCBhcyBhbnldO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGRvIG5vdGhpbmcsIG1vZGFsIHdhcyBjbG9zZWQuXG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaENvbHVtbnMoKSB7XG4gICAgdGhpcy5jb2x1bW5zID0gdGhpcy5nZXRDb2x1bW5zRm9yTG9jYWxlcygpO1xuICB9XG5cbiAgdmFsdWVDaGFuZ2VkKCkge1xuICAgIHRoaXMuaXNIYXZpbmdDaGFuZ2VzID0gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVUcmFuc2xhdGlvbnMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TdG9yZS51cGRhdGVUcmFuc2xhdGlvbnModGhpcy5pdGVtcyk7XG4gICAgICBhd2FpdCB0aGlzLnJlZnJlc2goKTtcbiAgICAgIHRoaXMuYWxlcnQuc3VjY2VzcyhnZXR0ZXh0KCdUcmFuc2xhdGlvbnMgc2F2ZWQnKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5hbGVydC5kYW5nZXIoZ2V0dGV4dCgnRmFpbGVkIHRvIHNhdmUgdHJhbnNsYXRpb25zJykpO1xuICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29sdW1uc0ZvckxvY2FsZXMoKSB7XG4gICAgY29uc3QgY29sdW1ucyA9IG5ldyBBcnJheTxDb2x1bW4+KCk7XG4gICAgY29sdW1ucy5wdXNoKHtcbiAgICAgIG5hbWU6ICdrZXknLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdUcmFuc2xhdGlvbiBrZXknKSxcbiAgICAgIHBhdGg6ICdrZXknLFxuICAgICAgZmlsdGVyYWJsZTogdHJ1ZVxuICAgIH0pO1xuXG4gICAgY29sdW1ucy5wdXNoKFxuICAgICAgLi4udGhpcy5hdmFpbGFibGVMYW5ncy5tYXAoXG4gICAgICAgIChsYW5ndWFnZSwgaW5kZXgpID0+XG4gICAgICAgICAgKHtcbiAgICAgICAgICAgIG5hbWU6IGxhbmd1YWdlLmxhbmcsXG4gICAgICAgICAgICBoZWFkZXI6IGAke2xhbmd1YWdlLm5hdGl2ZUxhbmd1YWdlfSAoJHtsYW5ndWFnZS5sYW5nfSlgLFxuICAgICAgICAgICAgcGF0aDogbGFuZ3VhZ2UubGFuZyxcbiAgICAgICAgICAgIGZpbHRlcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgdmlzaWJsZTogaW5kZXggPCA1LFxuICAgICAgICAgICAgY2VsbFJlbmRlcmVyQ29tcG9uZW50OiBNYW5hZ2VUcmFuc2xhdGlvbkNlbGxSZW5kZXJlckNvbXBvbmVudFxuICAgICAgICAgIH0pIGFzIENvbHVtblxuICAgICAgKVxuICAgICk7XG5cbiAgICByZXR1cm4gY29sdW1ucztcbiAgfVxufVxuIiwiPGM4eS10aXRsZSB0cmFuc2xhdGU+TG9jYWxpemF0aW9uPC9jOHktdGl0bGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nOyBlbHNlIGxvYWRpbmdcIj5cbiAgPGM4eS1hY3Rpb24tYmFyLWl0ZW0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgICAoY2xpY2spPVwiYWRkRW50cnkoKVwiXG4gICAgICBkYXRhLWN5PVwiYzh5LXRyYW5zbGF0aW9uLWVkaXRvci0tYWRkLXRyYW5zbGF0aW9uXCJcbiAgICA+XG4gICAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+QWRkIHRyYW5zbGF0aW9uPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbiAgPGM4eS1hY3Rpb24tYmFyLWl0ZW0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgICAoY2xpY2spPVwic2F2ZVRyYW5zbGF0aW9ucygpXCJcbiAgICAgIGRhdGEtY3k9XCJjOHktdHJhbnNsYXRpb24tZWRpdG9yLS1zYXZlLWFuZC1hcHBseVwiXG4gICAgPlxuICAgICAgPGkgYzh5SWNvbj1cInNhdmVcIj48L2k+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+U2F2ZSAmIGFwcGx5PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbiAgPGM4eS1oZWxwIHNyYz1cIi9kb2NzL3N0YW5kYXJkLXRlbmFudC9jaGFuZ2luZy1zZXR0aW5ncy8jbG9jYWxpemF0aW9uXCI+PC9jOHktaGVscD5cblxuICA8Yzh5LWRhdGEtZ3JpZFxuICAgIGNsYXNzPVwiY29udGVudC1mdWxscGFnZSBkLWZsZXggZC1jb2xcIlxuICAgIFt0aXRsZV09XCInVHJhbnNsYXRpb25zJyB8IHRyYW5zbGF0ZVwiXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgW2FjdGlvbkNvbnRyb2xzXT1cImFjdGlvbkNvbnRyb2xzXCJcbiAgICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgICBbZGlzcGxheU9wdGlvbnNdPVwiZGlzcGxheU9wdGlvbnNcIlxuICAgIChvblJlbG9hZCk9XCJyZWZyZXNoKClcIlxuICAgIFtyb3dzXT1cIml0ZW1zXCJcbiAgPjwvYzh5LWRhdGEtZ3JpZD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RyYW5zbGF0aW9uLWVkaXRvci9sYXp5L3RyYW5zbGF0aW9uLWVkaXRvci90cmFuc2xhdGlvbi1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vdHJhbnNsYXRpb24tZWRpdG9yL2xhenkvdHJhbnNsYXRpb24tZWRpdG9yL3RyYW5zbGF0aW9uLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsc0JBQXNCLEVBRXRCLFlBQVksRUFDWixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFFaEIsY0FBYyxFQUVkLE9BQU8sRUFDUCxVQUFVLEVBQ1YsYUFBYSxFQUNiLGdCQUFnQixFQUVoQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7QUFDeEksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDOzs7OztBQWtCeEcsTUFBTSxPQUFPLDBCQUEwQjtJQThCckMsWUFDVSxnQkFBeUMsRUFDekMsWUFBNEIsRUFDNUIsS0FBbUIsRUFDbkIsUUFBeUIsRUFDekIsU0FBMkI7UUFKM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQUN6QyxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFDNUIsVUFBSyxH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RUFBRSxRQUFRLENBQUMsSUFBSTtZQUNuQixVQUFVLEVBQUUsS0FBSztZQUNqQixPQUFPLEVBQUUsS0FBSyxHQUFHLENBQUM7WUFDbEIscUJBQXFCLEVBQUUsc0NBQXNDO1NBQzlELENBQVcsQ0FDZixDQUNGLENBQUM7UUFFRixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOytHQXRIVSwwQkFBMEI7bUdBQTFCLDBCQUEwQixrRkMxQ3ZDLHdzQ0EwQ0EsNENEWEksY0FBYyxrRkFDZCxjQUFjLHk0QkFDZCxnQkFBZ0IsbUdBQ2hCLElBQUksd0ZBQ0osZ0JBQWdCLGtEQUNoQixzQkFBc0IsMEpBQ3RCLGFBQWEsMkVBQ2IscUJBQXFCLHVFQUNyQixVQUFVOzs0RkFHRCwwQkFBMEI7a0JBaEJ0QyxTQUFTOytCQUNFLHdCQUF3QixjQUV0QixJQUFJLFdBQ1A7d0JBQ1AsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsSUFBSTt3QkFDSixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLFVBQVU7cUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3Rpb25CYXJJdGVtQ29tcG9uZW50LFxuICBBY3Rpb25Db250cm9sLFxuICBBbGVydFNlcnZpY2UsXG4gIEFwcFN0YXRlU2VydmljZSxcbiAgQnVpbHRJbkFjdGlvblR5cGUsXG4gIEM4eVRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgQzh5VHJhbnNsYXRlUGlwZSxcbiAgQ29sdW1uLFxuICBEYXRhR3JpZE1vZHVsZSxcbiAgRGlzcGxheU9wdGlvbnMsXG4gIGdldHRleHQsXG4gIEhlbHBNb2R1bGUsXG4gIEljb25EaXJlY3RpdmUsXG4gIExvYWRpbmdDb21wb25lbnQsXG4gIFBhZ2luYXRpb24sXG4gIFRpdGxlQ29tcG9uZW50LFxuICBUcmFuc2xhdGVTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TdG9yZVNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3RyYW5zbGF0aW9uLWVkaXRvci9kYXRhJztcbmltcG9ydCB7IE1hbmFnZVRyYW5zbGF0aW9uQ2VsbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbWFuYWdlLXRyYW5zbGF0aW9uLWNlbGwtcmVuZGVyZXIvbWFuYWdlLXRyYW5zbGF0aW9uLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBBZGRUcmFuc2xhdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkLXRyYW5zbGF0aW9uLW1vZGFsL2FkZC10cmFuc2xhdGlvbi1tb2RhbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktdHJhbnNsYXRpb24tZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zbGF0aW9uLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBEYXRhR3JpZE1vZHVsZSxcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gICAgQzh5VHJhbnNsYXRlUGlwZSxcbiAgICBBY3Rpb25CYXJJdGVtQ29tcG9uZW50LFxuICAgIEljb25EaXJlY3RpdmUsXG4gICAgQzh5VHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIEhlbHBNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbkVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB7XG4gICAgcGFnZVNpemU6IDEwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG4gIGRpc3BsYXlPcHRpb25zOiBEaXNwbGF5T3B0aW9ucyA9IHtcbiAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgc3RyaXBlZDogdHJ1ZSxcbiAgICBmaWx0ZXI6IHRydWUsXG4gICAgZ3JpZEhlYWRlcjogdHJ1ZSxcbiAgICBob3ZlcjogdHJ1ZVxuICB9O1xuICBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gW1xuICAgIHtcbiAgICAgIHR5cGU6IEJ1aWx0SW5BY3Rpb25UeXBlLkRlbGV0ZSxcbiAgICAgIGNhbGxiYWNrOiBpdGVtID0+IHtcbiAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKGkgPT4gaS5rZXkgIT09IGl0ZW0ua2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIF07XG4gIGNvbHVtbnM6IENvbHVtbltdID0gW107XG4gIGlzTG9hZGluZyA9IHRydWU7XG4gIGl0ZW1zOiBBd2FpdGVkPFJldHVyblR5cGU8VHJhbnNsYXRpb25TdG9yZVNlcnZpY2VbJ2dldENvbWJpbmVkTGlzdE9mVHJhbnNsYXRpb25zRm9yUGVyS2V5J10+PiA9XG4gICAgbmV3IEFycmF5PGFueT4oKTtcbiAgaXNIYXZpbmdDaGFuZ2VzID0gZmFsc2U7XG4gIGF2YWlsYWJsZUxhbmdzOiB7XG4gICAgbGFuZzogc3RyaW5nO1xuICAgIG5hdGl2ZUxhbmd1YWdlOiBzdHJpbmc7XG4gIH1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRpb25TdG9yZTogVHJhbnNsYXRpb25TdG9yZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnQ6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGFwcFN0YXRlOiBBcHBTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5hdmFpbGFibGVMYW5ncyA9ICh0aGlzLmFwcFN0YXRlLnN0YXRlLmxhbmdzIGFzIHN0cmluZ1tdKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSlcbiAgICAgIC5tYXAobCA9PiAoe1xuICAgICAgICBsYW5nOiBsLFxuICAgICAgICBuYXRpdmVMYW5ndWFnZTogdGhpcy50cmFuc2xhdGUuZ2V0TmF0aXZlTGFuZ3VhZ2UobClcbiAgICAgIH0pKTtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgYXN5bmMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5yZWZyZXNoQ29sdW1ucygpO1xuXG4gICAgY29uc3QgdHJhbnNsYXRpb25zID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvblN0b3JlLmdldENvbWJpbmVkTGlzdE9mVHJhbnNsYXRpb25zRm9yUGVyS2V5KFxuICAgICAgdGhpcy5hdmFpbGFibGVMYW5ncy5tYXAobCA9PiBsLmxhbmcpXG4gICAgKTtcblxuICAgIHRoaXMuaXRlbXMgPSB0cmFuc2xhdGlvbnM7XG5cbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgYWRkRW50cnkoKSB7XG4gICAgY29uc3QgY3VycmVudEtleXMgPSB0aGlzLml0ZW1zLm1hcChpdGVtID0+IGl0ZW0ua2V5KTtcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3coQWRkVHJhbnNsYXRpb25Nb2RhbENvbXBvbmVudCwge1xuICAgICAgaW5pdGlhbFN0YXRlOiB7IGFscmVhZHlEZWZpbmVkS2V5czogY3VycmVudEtleXMsIGF2YWlsYWJsZUxhbmdzOiB0aGlzLmF2YWlsYWJsZUxhbmdzIH1cbiAgICB9KTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kYWxSZWYuY29udGVudC5yZXN1bHQ7XG4gICAgICB0aGlzLml0ZW1zID0gWy4uLnRoaXMuaXRlbXMsIHJlc3VsdCBhcyBhbnldO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGRvIG5vdGhpbmcsIG1vZGFsIHdhcyBjbG9zZWQuXG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaENvbHVtbnMoKSB7XG4gICAgdGhpcy5jb2x1bW5zID0gdGhpcy5nZXRDb2x1bW5zRm9yTG9jYWxlcygpO1xuICB9XG5cbiAgdmFsdWVDaGFuZ2VkKCkge1xuICAgIHRoaXMuaXNIYXZpbmdDaGFuZ2VzID0gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVUcmFuc2xhdGlvbnMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TdG9yZS51cGRhdGVUcmFuc2xhdGlvbnModGhpcy5pdGVtcyk7XG4gICAgICBhd2FpdCB0aGlzLnJlZnJlc2goKTtcbiAgICAgIHRoaXMuYWxlcnQuc3VjY2VzcyhnZXR0ZXh0KCdUcmFuc2xhdGlvbnMgc2F2ZWQnKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5hbGVydC5kYW5nZXIoZ2V0dGV4dCgnRmFpbGVkIHRvIHNhdmUgdHJhbnNsYXRpb25zJykpO1xuICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29sdW1uc0ZvckxvY2FsZXMoKSB7XG4gICAgY29uc3QgY29sdW1ucyA9IG5ldyBBcnJheTxDb2x1bW4+KCk7XG4gICAgY29sdW1ucy5wdXNoKHtcbiAgICAgIG5hbWU6ICdrZXknLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdUcmFuc2xhdGlvbiBrZXknKSxcbiAgICAgIHBhdGg6ICdrZXknLFxuICAgICAgZmlsdGVyYWJsZTogdHJ1ZVxuICAgIH0pO1xuXG4gICAgY29sdW1ucy5wdXNoKFxuICAgICAgLi4udGhpcy5hdmFpbGFibGVMYW5ncy5tYXAoXG4gICAgICAgIChsYW5ndWFnZSwgaW5kZXgpID0+XG4gICAgICAgICAgKHtcbiAgICAgICAgICAgIG5hbWU6IGxhbmd1YWdlLmxhbmcsXG4gICAgICAgICAgICBoZWFkZXI6IGAke2xhbmd1YWdlLm5hdGl2ZUxhbmd1YWdlfSAoJHtsYW5ndWFnZS5sYW5nfSlgLFxuICAgICAgICAgICAgcGF0aDogbGFuZ3VhZ2UubGFuZyxcbiAgICAgICAgICAgIGZpbHRlcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgdmlzaWJsZTogaW5kZXggPCA1LFxuICAgICAgICAgICAgY2VsbFJlbmRlcmVyQ29tcG9uZW50OiBNYW5hZ2VUcmFuc2xhdGlvbkNlbGxSZW5kZXJlckNvbXBvbmVudFxuICAgICAgICAgIH0pIGFzIENvbHVtblxuICAgICAgKVxuICAgICk7XG5cbiAgICByZXR1cm4gY29sdW1ucztcbiAgfVxufVxuIiwiPGM4eS10aXRsZSB0cmFuc2xhdGU+TG9jYWxpemF0aW9uPC9jOHktdGl0bGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nOyBlbHNlIGxvYWRpbmdcIj5cbiAgPGM4eS1hY3Rpb24tYmFyLWl0ZW0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgICAoY2xpY2spPVwiYWRkRW50cnkoKVwiXG4gICAgICBkYXRhLWN5PVwiYzh5LXRyYW5zbGF0aW9uLWVkaXRvci0tYWRkLXRyYW5zbGF0aW9uXCJcbiAgICA+XG4gICAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+QWRkIHRyYW5zbGF0aW9uPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbiAgPGM4eS1hY3Rpb24tYmFyLWl0ZW0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgICAoY2xpY2spPVwic2F2ZVRyYW5zbGF0aW9ucygpXCJcbiAgICAgIGRhdGEtY3k9XCJjOHktdHJhbnNsYXRpb24tZWRpdG9yLS1zYXZlLWFuZC1hcHBseVwiXG4gICAgPlxuICAgICAgPGkgYzh5SWNvbj1cInNhdmVcIj48L2k+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+U2F2ZSAmIGFwcGx5PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbiAgPGM4eS1oZWxwIHNyYz1cIi9kb2NzL3N0YW5kYXJkLXRlbmFudC9jaGFuZ2luZy1zZXR0aW5ncy8jbG9jYWxpemF0aW9uXCI+PC9jOHktaGVscD5cblxuICA8Yzh5LWRhdGEtZ3JpZFxuICAgIGNsYXNzPVwiY29udGVudC1mdWxscGFnZSBkLWZsZXggZC1jb2xcIlxuICAgIFt0aXRsZV09XCInVHJhbnNsYXRpb25zJyB8IHRyYW5zbGF0ZVwiXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgW2FjdGlvbkNvbnRyb2xzXT1cImFjdGlvbkNvbnRyb2xzXCJcbiAgICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgICBbZGlzcGxheU9wdGlvbnNdPVwiZGlzcGxheU9wdGlvbnNcIlxuICAgIChvblJlbG9hZCk9XCJyZWZyZXNoKClcIlxuICAgIFtyb3dzXT1cIml0ZW1zXCJcbiAgPjwvYzh5LWRhdGEtZ3JpZD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, EventEmitter, Output } from '@angular/core';
3
- import { C as CellRendererContext, B as BaseColumn, g as getBasicInputArrayFormFieldConfig, A as AssetPropertyService, a as BottomDrawerRef, b as AlertService, c as C8yTranslatePipe, D as DataGridModule, d as DataGridComponent } from './c8y-ngx-components-c8y-ngx-components-D-YOjLHK.mjs';
3
+ import { C as CellRendererContext, B as BaseColumn, g as getBasicInputArrayFormFieldConfig, A as AssetPropertyService, a as BottomDrawerRef, b as AlertService, c as C8yTranslatePipe, D as DataGridModule, d as DataGridComponent } from './c8y-ngx-components-c8y-ngx-components-D2rmddmn.mjs';
4
4
  import { gettext } from '@c8y/ngx-components/gettext';
5
5
  import { camelCase } from 'lodash-es';
6
6
 
@@ -214,7 +214,7 @@ class AssetPropertyGridComponent {
214
214
  }
215
215
  }
216
216
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AssetPropertyGridComponent, deps: [{ token: AssetPropertyService }, { token: BottomDrawerRef }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
217
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AssetPropertyGridComponent, isStandalone: true, selector: "c8y-asset-property-grid", outputs: { onAddCustomColumn: "onAddCustomColumn" }, ngImport: i0, template: "<c8y-data-grid\n class=\"content-fullpage d-flex d-col border-top border-bottom\"\n [title]=\"'Asset properties' | translate\"\n [loadMoreItemsLabel]=\"'Load more asset properties' | translate\"\n [loadingItemsLabel]=\"'Loading asset properties\u2026' | translate\"\n [displayOptions]=\"displayOptions\"\n [headerActionControls]=\"headerActionControls\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [selectable]=\"true\"\n [singleSelection]=\"true\"\n [selectionPrimaryKey]=\"'identifier'\"\n (itemsSelect)=\"selectItem($event)\"\n></c8y-data-grid>\n", dependencies: [{ kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "ngmodule", type: DataGridModule }, { kind: "component", type: 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"] }] }); }
217
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AssetPropertyGridComponent, isStandalone: true, selector: "c8y-asset-property-grid", outputs: { onAddCustomColumn: "onAddCustomColumn" }, ngImport: i0, template: "<c8y-data-grid\n class=\"content-fullpage d-flex d-col border-top border-bottom\"\n [title]=\"'Asset properties' | translate\"\n [loadMoreItemsLabel]=\"'Load more asset properties' | translate\"\n [loadingItemsLabel]=\"'Loading asset properties\u2026' | translate\"\n [displayOptions]=\"displayOptions\"\n [headerActionControls]=\"headerActionControls\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [selectable]=\"true\"\n [singleSelection]=\"true\"\n [selectionPrimaryKey]=\"'identifier'\"\n (itemsSelect)=\"selectItem($event)\"\n></c8y-data-grid>\n", dependencies: [{ kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "ngmodule", type: DataGridModule }, { kind: "component", type: 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"] }] }); }
218
218
  }
219
219
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AssetPropertyGridComponent, decorators: [{
220
220
  type: Component,
@@ -230,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
230
230
  }] } });
231
231
 
232
232
  export { AssetPropertyGridComponent };
233
- //# sourceMappingURL=c8y-ngx-components-asset-property-grid.component-CmhkghTo.mjs.map
233
+ //# sourceMappingURL=c8y-ngx-components-asset-property-grid.component-xQgHuomT.mjs.map