@c8y/ngx-components 1011.0.18 → 1011.0.21

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 (49) hide show
  1. package/assets-navigator/asset-node.service.d.ts +7 -3
  2. package/assets-navigator/c8y-ngx-components-assets-navigator.metadata.json +1 -1
  3. package/bundles/c8y-ngx-components-assets-navigator.umd.js +7 -2
  4. package/bundles/c8y-ngx-components-assets-navigator.umd.js.map +1 -1
  5. package/bundles/c8y-ngx-components-assets-navigator.umd.min.js +1 -1
  6. package/bundles/c8y-ngx-components-assets-navigator.umd.min.js.map +1 -1
  7. package/bundles/c8y-ngx-components-child-devices.umd.js +416 -0
  8. package/bundles/c8y-ngx-components-child-devices.umd.js.map +1 -0
  9. package/bundles/c8y-ngx-components-child-devices.umd.min.js +16 -0
  10. package/bundles/c8y-ngx-components-child-devices.umd.min.js.map +1 -0
  11. package/bundles/c8y-ngx-components-device-grid.umd.js +169 -36
  12. package/bundles/c8y-ngx-components-device-grid.umd.js.map +1 -1
  13. package/bundles/c8y-ngx-components-device-grid.umd.min.js +2 -2
  14. package/bundles/c8y-ngx-components-device-grid.umd.min.js.map +1 -1
  15. package/bundles/c8y-ngx-components-sub-assets.umd.js +5 -3
  16. package/bundles/c8y-ngx-components-sub-assets.umd.js.map +1 -1
  17. package/bundles/c8y-ngx-components-sub-assets.umd.min.js +1 -1
  18. package/bundles/c8y-ngx-components-sub-assets.umd.min.js.map +1 -1
  19. package/child-devices/c8y-ngx-components-child-devices.d.ts +5 -0
  20. package/child-devices/c8y-ngx-components-child-devices.metadata.json +1 -0
  21. package/child-devices/child-devices.component.d.ts +9 -0
  22. package/child-devices/child-devices.guard.d.ts +7 -0
  23. package/child-devices/child-devices.module.d.ts +2 -0
  24. package/child-devices/index.d.ts +2 -0
  25. package/child-devices/package.json +11 -0
  26. package/device-grid/c8y-ngx-components-device-grid.metadata.json +1 -1
  27. package/device-grid/device-grid.component.d.ts +18 -4
  28. package/device-grid/device-grid.service.d.ts +8 -3
  29. package/esm2015/assets-navigator/asset-node.service.js +8 -3
  30. package/esm2015/child-devices/c8y-ngx-components-child-devices.js +6 -0
  31. package/esm2015/child-devices/child-devices.component.js +30 -0
  32. package/esm2015/child-devices/child-devices.guard.js +30 -0
  33. package/esm2015/child-devices/child-devices.module.js +36 -0
  34. package/esm2015/child-devices/index.js +3 -0
  35. package/esm2015/device-grid/device-grid.component.js +62 -15
  36. package/esm2015/device-grid/device-grid.service.js +59 -22
  37. package/esm2015/sub-assets/sub-assets.service.js +7 -5
  38. package/fesm2015/c8y-ngx-components-assets-navigator.js +7 -2
  39. package/fesm2015/c8y-ngx-components-assets-navigator.js.map +1 -1
  40. package/fesm2015/c8y-ngx-components-child-devices.js +96 -0
  41. package/fesm2015/c8y-ngx-components-child-devices.js.map +1 -0
  42. package/fesm2015/c8y-ngx-components-device-grid.js +118 -35
  43. package/fesm2015/c8y-ngx-components-device-grid.js.map +1 -1
  44. package/fesm2015/c8y-ngx-components-sub-assets.js +6 -4
  45. package/fesm2015/c8y-ngx-components-sub-assets.js.map +1 -1
  46. package/locales/locales.pot +6 -0
  47. package/package.json +2 -2
  48. package/sub-assets/c8y-ngx-components-sub-assets.metadata.json +1 -1
  49. package/sub-assets/sub-assets.service.d.ts +3 -2
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"exports":[{"from":"./custom.device-grid-column"},{"from":"./registration-date.device-grid-column"},{"from":"./status.device-grid-column"},{"from":"./group.device-grid-column"},{"from":"./name.cell-renderer.component"},{"from":"./system-id.device-grid-column"},{"from":"./model.cell-renderer.component"},{"from":"./group.cell-renderer.component"},{"from":"./type.device-grid-column"},{"from":"./status.cell-renderer.component"},{"from":"./base.filtering-form-renderer.component"},{"from":"./imei.device-grid-column"},{"from":"./name.device-grid-column"},{"from":"./model.device-grid-column"},{"from":"./registration-date.cell-renderer.component"},{"from":"./base.device-grid-column"},{"from":"./alarms.device-grid-column"},{"from":"./alarms.cell-renderer.component"},{"from":"./group.filtering-form-renderer.component"},{"from":"./serial-number.device-grid-column"},{"from":"./serial-number.cell-renderer.component"}],"metadata":{"DeviceGridService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":30,"character":32},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":31,"character":32}]}],"getDefaultColumns":[{"__symbolic":"method"}],"getDefaultPagination":[{"__symbolic":"method"}],"getInfiniteScrollPagination":[{"__symbolic":"method"}],"getDefaultActionControls":[{"__symbolic":"method"}],"getDefaultBulkActionControls":[{"__symbolic":"method"}],"getProperName":[{"__symbolic":"method"}],"getModel":[{"__symbolic":"method"}],"getSerialNumber":[{"__symbolic":"method"}],"getParentsNames":[{"__symbolic":"method"}],"getHref":[{"__symbolic":"method"}],"getAlarmsHref":[{"__symbolic":"method"}],"getUserConfiguredColumns":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"getCount":[{"__symbolic":"method"}],"getTotal":[{"__symbolic":"method"}],"getDeviceQueryString":[{"__symbolic":"method"}],"getQueryObj":[{"__symbolic":"method"}],"getConfig":[{"__symbolic":"method"}],"saveConfig":[{"__symbolic":"method"}],"clearConfig":[{"__symbolic":"method"}],"getHardware":[{"__symbolic":"method"}],"isVendme":[{"__symbolic":"method"}],"getDevicesFilters":[{"__symbolic":"method"}],"extendQueryByColumn":[{"__symbolic":"method"}]}},"DeviceGridComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"c8y-device-grid","template":"<c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"infiniteScroll\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [bulkActionControls]=\"bulkActionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n (itemsSelect)=\"itemsSelect.emit($event)\"\n (onConfigChange)=\"configChange($event)\"\n [refresh]=\"refresh\"\n [showChildDevices]=\"showChildDevices\"\n (onChildDevices)=\"withChildren=$event;onChildDevices.emit($event)\"\n>\n <div class=\"c8y-empty-state\">\n <h1 c8yIcon=\"search\"></h1>\n <div>\n <p>\n <strong>{{ 'No matching devices.' | translate }}</strong>\n </p>\n <small>{{ 'Refine your search terms' | translate }}</small>\n </div>\n </div>\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"}]}],"members":{"dataCallback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"refresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"loadMoreItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"loadingItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"_columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3},"arguments":["columns"]}]}],"_pagination":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3},"arguments":["pagination"]}]}],"_infiniteScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3},"arguments":["infiniteScroll"]}]}],"_actionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3},"arguments":["actionControls"]}]}],"selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"baseQuery":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"_bulkActionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3},"arguments":["bulkActionControls"]}]}],"showChildDevices":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3}}]}],"onColumnsChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":65,"character":3}}]}],"onDeviceQueryStringChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":68,"character":3}}]}],"itemsSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"onChildDevices":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":70,"character":3}}]}],"dataGrid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":79,"character":3},"arguments":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"DataGridComponent","line":79,"character":13},{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DeviceGridService"}]}],"trackByName":[{"__symbolic":"method"}],"onDataSourceModifier":[{"__symbolic":"method"}],"updateFiltering":[{"__symbolic":"method"}],"configChange":[{"__symbolic":"method"}]}},"DeviceGridModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":18,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CommonModule","line":19,"character":12},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"FormsModule","line":19,"character":26},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"DeviceStatusModule","line":19,"character":39},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"DataGridModule","line":19,"character":59},{"__symbolic":"reference","module":"@c8y/ngx-components/assets-navigator","name":"AssetSelectorModule","line":19,"character":75}],"declarations":[{"__symbolic":"reference","name":"DeviceGridComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"SchemaFormComponent"}],"exports":[{"__symbolic":"reference","name":"DeviceGridComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"SchemaFormComponent"}],"entryComponents":[{"__symbolic":"reference","name":"DeviceGridComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"}],"providers":[{"__symbolic":"reference","name":"DeviceGridService"}]}]}],"members":{}},"DataCallback":{"__symbolic":"interface"},"DeviceGridColumn":{"__symbolic":"interface"},"DeviceGridColumnFilteringConfig":{"__symbolic":"interface"},"DeviceGridColumnSortingConfig":{"__symbolic":"interface"},"PathSortingConfig":{"__symbolic":"interface"},"ContextConfig":{"__symbolic":"interface"},"SortOrderModifier":{"Keep":0,"Invert":1},"DeviceGridActionType":{"Delete":"DELETE"},"SchemaFormComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/upgrade/static","name":"UpgradeComponent","line":7,"character":41},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"c8y-schema-form"}]}],"members":{"schema":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"inputForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3},"arguments":["form"]}]}],"inputOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3},"arguments":["options"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":13,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":13,"character":48}]}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"template":"<c8y-schema-form\n [schema]=\"schema\"\n [form]=\"form\"\n [model]=\"model\"\n [options]=\"options\"\n></c8y-schema-form>\n<div class=\"data-grid__dropdown__footer d-flex separator-top\">\n <button\n class=\"btn btn-default btn-sm m-r-8 flex-grow\"\n (click)=\"resetFilter()\"\n title=\"{{ 'Reset' | translate }}\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n (click)=\"applyFilter()\"\n [disabled]=\"canApply()\"\n title=\"{{ 'Apply' | translate }}\"\n translate\n >\n Apply\n </button>\n</div>\n"}]}],"members":{"schemaFormComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":10,"character":3},"arguments":[{"__symbolic":"reference","name":"SchemaFormComponent"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"FilteringFormRendererContext","line":17,"character":30}]}],"onEnterKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":19,"character":3},"arguments":["keydown.enter",["$event"]]}]}],"onEscapeKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":23,"character":3},"arguments":["keydown.escape",["$event"]]}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"canApply":[{"__symbolic":"method"}],"applyFilter":[{"__symbolic":"method"}],"resetFilter":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"template":"<c8y-asset-selector\n #assetSelector\n [selected]=\"preselected\"\n (onChange)=\"selectionChanged($event)\"\n></c8y-asset-selector>\n\n<div class=\"data-grid__dropdown__footer d-flex separator-top\">\n <button\n class=\"btn btn-default btn-sm m-r-8 flex-grow\"\n (click)=\"resetFilter()\"\n title=\"{{ 'Reset' | translate }}\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n (click)=\"applyFilter()\"\n title=\"{{ 'Apply' | translate }}\"\n translate\n >\n Apply\n </button>\n</div>\n"}]}],"members":{"assetSelector":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":9,"character":3},"arguments":["assetSelector",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":9,"character":53}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"FilteringFormRendererContext","line":13,"character":30}]}],"onEnterKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":15,"character":3},"arguments":["keydown.enter",["$event"]]}]}],"onEscapeKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":19,"character":3},"arguments":["keydown.escape",["$event"]]}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"applyFilter":[{"__symbolic":"method"}],"resetFilter":[{"__symbolic":"method"}],"selectionChanged":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"template":"\n <device-status [mo]=\"context.item\"></device-status>\n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":9,"character":30}]}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"template":"\n <a\n [href]=\"deviceGridService.getHref(context.item)\"\n title=\"{{ deviceGridService.getProperName(context.item) }}\"\n class=\"interact\"\n >\n {{ deviceGridService.getProperName(context.item) }}\n </a>\n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":5},"arguments":[{"__symbolic":"reference","name":"DeviceGridService"}]}]],"parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":17,"character":20},{"__symbolic":"reference","name":"DeviceGridService"}]}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"template":"\n {{ deviceGridService.getModel(context.item) }}\n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":5},"arguments":[{"__symbolic":"reference","name":"DeviceGridService"}]}]],"parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":11,"character":20},{"__symbolic":"reference","name":"DeviceGridService"}]}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"template":"\n {{ deviceGridService.getSerialNumber(context.item) }}\n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":5},"arguments":[{"__symbolic":"reference","name":"DeviceGridService"}]}]],"parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":11,"character":20},{"__symbolic":"reference","name":"DeviceGridService"}]}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"template":"<span\n title=\"{{\n deviceGridService.getParentsNames(\n context.item,\n context.property.externalFilterQuery?.deviceGroupId\n )\n }}\"\n class=\"text-truncate\"\n>\n {{\n deviceGridService.getParentsNames(\n context.item,\n context.property.externalFilterQuery?.deviceGroupId\n )\n }}\n</span>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":10,"character":5},"arguments":[{"__symbolic":"reference","name":"DeviceGridService"}]}]],"parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":9,"character":20},{"__symbolic":"reference","name":"DeviceGridService"}]}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"template":"\n {{ context.value | c8yDate }}\n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":9,"character":30}]}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"template":"<a class=\"listLink\"\n [href]=\"deviceGridService.getAlarmsHref(context.item)\" \n>\n <small class=\"status critical text-nowrap\"\n *ngIf=\"context.item.c8y_ActiveAlarmsStatus?.critical\"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.critical }}\n <i [c8yIcon]=\"'warning'\"></i>\n </small>\n <small class=\"status major text-nowrap\"\n *ngIf=\"context.item.c8y_ActiveAlarmsStatus?.major\"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.major }}\n <i [c8yIcon]=\"'exclamation-circle'\"></i>\n </small>\n <small class=\"status minor text-nowrap\"\n *ngIf=\"context.item.c8y_ActiveAlarmsStatus?.minor\"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.minor }}\n <i [c8yIcon]=\"'exclamation-circle'\"></i>\n </small>\n <small class=\"status warning text-nowrap\"\n *ngIf=\"context.item.c8y_ActiveAlarmsStatus?.warning\"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.warning }}\n <i [c8yIcon]=\"'circle'\"></i>\n </small>\n</a>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":10,"character":5},"arguments":[{"__symbolic":"reference","name":"DeviceGridService"}]}]],"parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":9,"character":20},{"__symbolic":"reference","name":"DeviceGridService"}]}]}}},"origins":{"DeviceGridService":"./device-grid.service","DeviceGridComponent":"./device-grid.component","DeviceGridModule":"./device-grid.module","DataCallback":"./device-grid.models","DeviceGridColumn":"./device-grid.models","DeviceGridColumnFilteringConfig":"./device-grid.models","DeviceGridColumnSortingConfig":"./device-grid.models","PathSortingConfig":"./device-grid.models","ContextConfig":"./device-grid.models","SortOrderModifier":"./device-grid.models","DeviceGridActionType":"./device-grid.models","SchemaFormComponent":"./schema-form.component","ɵa":"./columns/base.filtering-form-renderer.component","ɵb":"./columns/group.filtering-form-renderer.component","ɵc":"./columns/status.cell-renderer.component","ɵd":"./columns/name.cell-renderer.component","ɵe":"./columns/model.cell-renderer.component","ɵf":"./columns/serial-number.cell-renderer.component","ɵg":"./columns/group.cell-renderer.component","ɵh":"./columns/registration-date.cell-renderer.component","ɵi":"./columns/alarms.cell-renderer.component"},"importAs":"@c8y/ngx-components/device-grid"}
1
+ {"__symbolic":"module","version":4,"exports":[{"from":"./custom.device-grid-column"},{"from":"./registration-date.device-grid-column"},{"from":"./status.device-grid-column"},{"from":"./group.device-grid-column"},{"from":"./name.cell-renderer.component"},{"from":"./system-id.device-grid-column"},{"from":"./model.cell-renderer.component"},{"from":"./group.cell-renderer.component"},{"from":"./type.device-grid-column"},{"from":"./status.cell-renderer.component"},{"from":"./base.filtering-form-renderer.component"},{"from":"./imei.device-grid-column"},{"from":"./name.device-grid-column"},{"from":"./model.device-grid-column"},{"from":"./registration-date.cell-renderer.component"},{"from":"./base.device-grid-column"},{"from":"./alarms.device-grid-column"},{"from":"./alarms.cell-renderer.component"},{"from":"./group.filtering-form-renderer.component"},{"from":"./serial-number.device-grid-column"},{"from":"./serial-number.cell-renderer.component"}],"metadata":{"DeviceGridService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":27,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":34,"character":32},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":35,"character":32},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":36,"character":28},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"ModalService","line":37,"character":21}]}],"getDefaultColumns":[{"__symbolic":"method"}],"getDefaultPagination":[{"__symbolic":"method"}],"getInfiniteScrollPagination":[{"__symbolic":"method"}],"getDefaultActionControls":[{"__symbolic":"method"}],"getDefaultBulkActionControls":[{"__symbolic":"method"}],"getProperName":[{"__symbolic":"method"}],"getModel":[{"__symbolic":"method"}],"getSerialNumber":[{"__symbolic":"method"}],"getParentsNames":[{"__symbolic":"method"}],"getHref":[{"__symbolic":"method"}],"getAlarmsHref":[{"__symbolic":"method"}],"getUserConfiguredColumns":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"getChildDeviceData":[{"__symbolic":"method"}],"getCount":[{"__symbolic":"method"}],"getCountChildDevices":[{"__symbolic":"method"}],"getTotalChildDevices":[{"__symbolic":"method"}],"getTotal":[{"__symbolic":"method"}],"getDeviceQueryString":[{"__symbolic":"method"}],"getQueryObj":[{"__symbolic":"method"}],"getConfig":[{"__symbolic":"method"}],"saveConfig":[{"__symbolic":"method"}],"clearConfig":[{"__symbolic":"method"}],"getHardware":[{"__symbolic":"method"}],"isVendme":[{"__symbolic":"method"}],"getDevicesFilters":[{"__symbolic":"method"}],"extendQueryByColumn":[{"__symbolic":"method"}]}},"DeviceGridComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"c8y-device-grid","template":"<c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"infiniteScroll\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [bulkActionControls]=\"bulkActionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n (itemsSelect)=\"itemsSelect.emit($event)\"\n (onConfigChange)=\"configChange($event)\"\n [refresh]=\"refresh\"\n [showChildDevices]=\"showChildDevices\"\n (onChildDevices)=\"withChildren = $event; onChildDevices.emit($event)\"\n>\n <div class=\"c8y-empty-state\">\n <h1 c8yIcon=\"search\"></h1>\n <div>\n <p>\n <strong>{{ 'No matching devices.' | translate }}</strong>\n </p>\n <small>{{ 'Refine your search terms' | translate }}</small>\n </div>\n </div>\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"}]}],"members":{"dataCallback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"refresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"loadMoreItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"loadingItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"_columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3},"arguments":["columns"]}]}],"_pagination":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3},"arguments":["pagination"]}]}],"_infiniteScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3},"arguments":["infiniteScroll"]}]}],"_actionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3},"arguments":["actionControls"]}]}],"selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"baseQuery":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"_bulkActionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3},"arguments":["bulkActionControls"]}]}],"childDeviceGrid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"parentDeviceId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"showChildDevices":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":74,"character":3}}]}],"onColumnsChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":76,"character":3}}]}],"onDeviceQueryStringChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":79,"character":3}}]}],"itemsSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":80,"character":3}}]}],"onChildDevices":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":81,"character":3}}]}],"dataGrid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":90,"character":3},"arguments":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"DataGridComponent","line":90,"character":13},{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DeviceGridService"}]}],"ngOnInit":[{"__symbolic":"method"}],"trackByName":[{"__symbolic":"method"}],"onDataSourceModifier":[{"__symbolic":"method"}],"setActionControls":[{"__symbolic":"method"}],"onDeleteDevice":[{"__symbolic":"method"}],"updateFiltering":[{"__symbolic":"method"}],"configChange":[{"__symbolic":"method"}]}},"DeviceGridModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":18,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CommonModule","line":19,"character":12},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"FormsModule","line":19,"character":26},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"DeviceStatusModule","line":19,"character":39},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"DataGridModule","line":19,"character":59},{"__symbolic":"reference","module":"@c8y/ngx-components/assets-navigator","name":"AssetSelectorModule","line":19,"character":75}],"declarations":[{"__symbolic":"reference","name":"DeviceGridComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"SchemaFormComponent"}],"exports":[{"__symbolic":"reference","name":"DeviceGridComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"SchemaFormComponent"}],"entryComponents":[{"__symbolic":"reference","name":"DeviceGridComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"}],"providers":[{"__symbolic":"reference","name":"DeviceGridService"}]}]}],"members":{}},"DataCallback":{"__symbolic":"interface"},"DeviceGridColumn":{"__symbolic":"interface"},"DeviceGridColumnFilteringConfig":{"__symbolic":"interface"},"DeviceGridColumnSortingConfig":{"__symbolic":"interface"},"PathSortingConfig":{"__symbolic":"interface"},"ContextConfig":{"__symbolic":"interface"},"SortOrderModifier":{"Keep":0,"Invert":1},"DeviceGridActionType":{"Delete":"DELETE"},"SchemaFormComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/upgrade/static","name":"UpgradeComponent","line":7,"character":41},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"c8y-schema-form"}]}],"members":{"schema":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"inputForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3},"arguments":["form"]}]}],"inputOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3},"arguments":["options"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":13,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":13,"character":48}]}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"template":"<c8y-schema-form\n [schema]=\"schema\"\n [form]=\"form\"\n [model]=\"model\"\n [options]=\"options\"\n></c8y-schema-form>\n<div class=\"data-grid__dropdown__footer d-flex separator-top\">\n <button\n class=\"btn btn-default btn-sm m-r-8 flex-grow\"\n (click)=\"resetFilter()\"\n title=\"{{ 'Reset' | translate }}\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n (click)=\"applyFilter()\"\n [disabled]=\"canApply()\"\n title=\"{{ 'Apply' | translate }}\"\n translate\n >\n Apply\n </button>\n</div>\n"}]}],"members":{"schemaFormComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":10,"character":3},"arguments":[{"__symbolic":"reference","name":"SchemaFormComponent"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"FilteringFormRendererContext","line":17,"character":30}]}],"onEnterKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":19,"character":3},"arguments":["keydown.enter",["$event"]]}]}],"onEscapeKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":23,"character":3},"arguments":["keydown.escape",["$event"]]}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"canApply":[{"__symbolic":"method"}],"applyFilter":[{"__symbolic":"method"}],"resetFilter":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"template":"<c8y-asset-selector\n #assetSelector\n [selected]=\"preselected\"\n (onChange)=\"selectionChanged($event)\"\n></c8y-asset-selector>\n\n<div class=\"data-grid__dropdown__footer d-flex separator-top\">\n <button\n class=\"btn btn-default btn-sm m-r-8 flex-grow\"\n (click)=\"resetFilter()\"\n title=\"{{ 'Reset' | translate }}\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n (click)=\"applyFilter()\"\n title=\"{{ 'Apply' | translate }}\"\n translate\n >\n Apply\n </button>\n</div>\n"}]}],"members":{"assetSelector":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":9,"character":3},"arguments":["assetSelector",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":9,"character":53}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"FilteringFormRendererContext","line":13,"character":30}]}],"onEnterKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":15,"character":3},"arguments":["keydown.enter",["$event"]]}]}],"onEscapeKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":19,"character":3},"arguments":["keydown.escape",["$event"]]}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"applyFilter":[{"__symbolic":"method"}],"resetFilter":[{"__symbolic":"method"}],"selectionChanged":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"template":"\n <device-status [mo]=\"context.item\"></device-status>\n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":9,"character":30}]}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"template":"\n <a\n [href]=\"deviceGridService.getHref(context.item)\"\n title=\"{{ deviceGridService.getProperName(context.item) }}\"\n class=\"interact\"\n >\n {{ deviceGridService.getProperName(context.item) }}\n </a>\n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":5},"arguments":[{"__symbolic":"reference","name":"DeviceGridService"}]}]],"parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":17,"character":20},{"__symbolic":"reference","name":"DeviceGridService"}]}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"template":"\n {{ deviceGridService.getModel(context.item) }}\n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":5},"arguments":[{"__symbolic":"reference","name":"DeviceGridService"}]}]],"parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":11,"character":20},{"__symbolic":"reference","name":"DeviceGridService"}]}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"template":"\n {{ deviceGridService.getSerialNumber(context.item) }}\n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":5},"arguments":[{"__symbolic":"reference","name":"DeviceGridService"}]}]],"parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":11,"character":20},{"__symbolic":"reference","name":"DeviceGridService"}]}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"template":"<span\n title=\"{{\n deviceGridService.getParentsNames(\n context.item,\n context.property.externalFilterQuery?.deviceGroupId\n )\n }}\"\n class=\"text-truncate\"\n>\n {{\n deviceGridService.getParentsNames(\n context.item,\n context.property.externalFilterQuery?.deviceGroupId\n )\n }}\n</span>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":10,"character":5},"arguments":[{"__symbolic":"reference","name":"DeviceGridService"}]}]],"parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":9,"character":20},{"__symbolic":"reference","name":"DeviceGridService"}]}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"template":"\n {{ context.value | c8yDate }}\n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":9,"character":30}]}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"template":"<a class=\"listLink\"\n [href]=\"deviceGridService.getAlarmsHref(context.item)\" \n>\n <small class=\"status critical text-nowrap\"\n *ngIf=\"context.item.c8y_ActiveAlarmsStatus?.critical\"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.critical }}\n <i [c8yIcon]=\"'warning'\"></i>\n </small>\n <small class=\"status major text-nowrap\"\n *ngIf=\"context.item.c8y_ActiveAlarmsStatus?.major\"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.major }}\n <i [c8yIcon]=\"'exclamation-circle'\"></i>\n </small>\n <small class=\"status minor text-nowrap\"\n *ngIf=\"context.item.c8y_ActiveAlarmsStatus?.minor\"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.minor }}\n <i [c8yIcon]=\"'exclamation-circle'\"></i>\n </small>\n <small class=\"status warning text-nowrap\"\n *ngIf=\"context.item.c8y_ActiveAlarmsStatus?.warning\"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.warning }}\n <i [c8yIcon]=\"'circle'\"></i>\n </small>\n</a>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":10,"character":5},"arguments":[{"__symbolic":"reference","name":"DeviceGridService"}]}]],"parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":9,"character":20},{"__symbolic":"reference","name":"DeviceGridService"}]}]}}},"origins":{"DeviceGridService":"./device-grid.service","DeviceGridComponent":"./device-grid.component","DeviceGridModule":"./device-grid.module","DataCallback":"./device-grid.models","DeviceGridColumn":"./device-grid.models","DeviceGridColumnFilteringConfig":"./device-grid.models","DeviceGridColumnSortingConfig":"./device-grid.models","PathSortingConfig":"./device-grid.models","ContextConfig":"./device-grid.models","SortOrderModifier":"./device-grid.models","DeviceGridActionType":"./device-grid.models","SchemaFormComponent":"./schema-form.component","ɵa":"./columns/base.filtering-form-renderer.component","ɵb":"./columns/group.filtering-form-renderer.component","ɵc":"./columns/status.cell-renderer.component","ɵd":"./columns/name.cell-renderer.component","ɵe":"./columns/model.cell-renderer.component","ɵf":"./columns/serial-number.cell-renderer.component","ɵg":"./columns/group.cell-renderer.component","ɵh":"./columns/registration-date.cell-renderer.component","ɵi":"./columns/alarms.cell-renderer.component"},"importAs":"@c8y/ngx-components/device-grid"}
@@ -1,9 +1,10 @@
1
- import { EventEmitter } from '@angular/core';
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
2
  import { ActionControl, BulkActionControl, DataGridComponent, DataSourceModifier, FilteringActionType, FilteringModifier, LoadMoreMode, Pagination, ServerSideDataResult, GridConfig } from '@c8y/ngx-components';
3
3
  import { DeviceGridColumn, DataCallback } from './device-grid.models';
4
4
  import { DeviceGridService } from './device-grid.service';
5
- export declare class DeviceGridComponent {
5
+ export declare class DeviceGridComponent implements OnInit {
6
6
  deviceGridService: DeviceGridService;
7
+ /** Optional callback function that allows to modify server side data result before it's rendered. */
7
8
  dataCallback: DataCallback;
8
9
  refresh: EventEmitter<any>;
9
10
  title: string;
@@ -17,21 +18,34 @@ export declare class DeviceGridComponent {
17
18
  selectable: boolean;
18
19
  baseQuery: any;
19
20
  set _bulkActionControls(value: BulkActionControl[]);
20
- showChildDevices: any;
21
+ childDeviceGrid: boolean;
22
+ parentDeviceId: string;
23
+ /**
24
+ * Determines if additional "Show child devices" toggle should be shown and in what state it should be.
25
+ * @deprecated It's going to be replaced with a generic hook allowing to easily add custom actions in the grid header.
26
+ */
27
+ showChildDevices: {
28
+ show: boolean;
29
+ value: boolean;
30
+ };
31
+ /** Emits an event when columns configuration changes. */
21
32
  onColumnsChange: EventEmitter<DeviceGridColumn[]>;
22
33
  onDeviceQueryStringChange: EventEmitter<string>;
23
34
  itemsSelect: EventEmitter<string[]>;
24
35
  onChildDevices: EventEmitter<boolean>;
36
+ actionControls: ActionControl[];
25
37
  columns: DeviceGridColumn[];
26
38
  pagination: Pagination;
27
- actionControls: ActionControl[];
28
39
  bulkActionControls: BulkActionControl[];
29
40
  serverSideDataCallback: any;
30
41
  withChildren: boolean;
31
42
  dataGrid: DataGridComponent;
32
43
  constructor(deviceGridService: DeviceGridService);
44
+ ngOnInit(): void;
33
45
  trackByName(_index: any, column: DeviceGridColumn): string;
34
46
  onDataSourceModifier(dataSourceModifier: DataSourceModifier): Promise<ServerSideDataResult>;
47
+ setActionControls(): Promise<void>;
48
+ onDeleteDevice(device: any): Promise<void>;
35
49
  updateFiltering(columnNames: string[], action: {
36
50
  type: FilteringActionType;
37
51
  payload?: {
@@ -1,14 +1,16 @@
1
1
  import { IManagedObject, InventoryService, QueriesUtil } from '@c8y/client';
2
- import { ActionControl, BulkActionControl, Pagination, GridConfig, Column } from '@c8y/ngx-components';
2
+ import { ActionControl, BulkActionControl, Column, GridConfig, AlertService, ModalService, Pagination } from '@c8y/ngx-components';
3
3
  import { TranslateService } from '@ngx-translate/core';
4
4
  import { DeviceGridColumn } from './device-grid.models';
5
5
  export declare class DeviceGridService {
6
6
  protected inventoryService: InventoryService;
7
7
  protected translateService: TranslateService;
8
+ protected alertService: AlertService;
9
+ protected modal: ModalService;
8
10
  protected queriesUtil: QueriesUtil;
9
11
  protected GRID_CONFIG_DEFAULT_STORAGE_KEY: string;
10
12
  protected DEFAULT_PAGE_SIZE: number;
11
- constructor(inventoryService: InventoryService, translateService: TranslateService);
13
+ constructor(inventoryService: InventoryService, translateService: TranslateService, alertService: AlertService, modal: ModalService);
12
14
  getDefaultColumns(): DeviceGridColumn[];
13
15
  getDefaultPagination(): Pagination;
14
16
  getInfiniteScrollPagination(): Pagination;
@@ -21,9 +23,12 @@ export declare class DeviceGridService {
21
23
  getHref(groupOrDevice: IManagedObject, prefix?: string): string;
22
24
  getAlarmsHref(device: IManagedObject): string;
23
25
  getUserConfiguredColumns(columns: Column[]): any[];
24
- delete(device: IManagedObject): void;
26
+ delete(device: IManagedObject): Promise<void>;
25
27
  getData(columns: DeviceGridColumn[], pagination: Pagination, query?: any, withChildren?: boolean): Promise<import("@c8y/client").IResultList<IManagedObject>>;
28
+ getChildDeviceData(columns: DeviceGridColumn[], pagination: Pagination, query: any, withChildren: boolean, id: string): Promise<import("@c8y/client").IResultList<IManagedObject>>;
26
29
  getCount(columns: DeviceGridColumn[], pagination: Pagination, query?: any): Promise<number>;
30
+ getCountChildDevices(columns: DeviceGridColumn[], pagination: Pagination, query: any, id: string): Promise<number>;
31
+ getTotalChildDevices(query: any, id: string): Promise<number>;
27
32
  getTotal(query?: any): Promise<number>;
28
33
  getDeviceQueryString(columns: DeviceGridColumn[], query: any): string;
29
34
  getQueryObj(columns: DeviceGridColumn[], defaultFilter?: {}): any;
@@ -51,7 +51,7 @@ export class AssetNodeService {
51
51
  const defaultFilter = {
52
52
  pageSize: this.PAGE_SIZE,
53
53
  withChildren: false,
54
- query: this.queriesUtil.buildQuery(this.rootQueryFilter())
54
+ query: this.queriesUtil.buildQuery(this.navRootQueryFilter())
55
55
  };
56
56
  const groupFilter = customFilter ? customFilter : defaultFilter;
57
57
  // due to BE performance limitations we do not allow filtering and sorting for a user without inventory roles
@@ -89,13 +89,18 @@ export class AssetNodeService {
89
89
  groupQueryFilter(moId) {
90
90
  return `$filter=(bygroupid(${moId}))$orderby=name`;
91
91
  }
92
+ navRootQueryFilter() {
93
+ const navRootFilter = this.rootQueryFilter();
94
+ navRootFilter.__orderby = [{ name: 1 }];
95
+ return navRootFilter;
96
+ }
92
97
  rootQueryFilter() {
93
98
  const { moduleConfig } = this;
94
99
  const rootFilter = {
95
100
  __filter: {
96
101
  type: `${GroupFragment.groupType}`
97
102
  },
98
- __orderby: [{ name: 1 }]
103
+ __orderby: []
99
104
  };
100
105
  if (moduleConfig.smartGroups) {
101
106
  const queryFilter = {
@@ -189,4 +194,4 @@ AssetNodeService.ctorParameters = () => [
189
194
  { type: AppStateService },
190
195
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [ASSET_NAVIGATOR_CONFIG,] }] }
191
196
  ];
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbm9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXNzZXRzLW5hdmlnYXRvci9hc3NldC1ub2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBMkIsTUFBTSxhQUFhLENBQUM7QUFDbEcsT0FBTyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsWUFBWSxFQUVaLGVBQWUsRUFDaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUF3QixzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVFyRCxNQUFNLE9BQU8sZ0JBQWdCO0lBTzNCLFlBQ1MsU0FBMkIsRUFDM0IsTUFBMEIsRUFDMUIsVUFBc0IsRUFDdEIsS0FBbUIsRUFDbkIsS0FBbUIsRUFDaEIsaUJBQW9DLEVBQ3BDLElBQWlCLEVBQ2pCLFFBQXlCLEVBQ2dCLFlBQWtDO1FBUjlFLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQzFC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QUMsY0FBbUIsRUFBRTtRQUMxQyxNQUFNLE1BQU0sR0FBRztZQUNiLFdBQVcsRUFBRSxDQUFDO1lBQ2QsY0FBYyxFQUFFLElBQUk7WUFDcEIsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDO1FBQ0YsdUNBQVksTUFBTSxHQUFLLFdBQVcsRUFBRztJQUN2QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBSyxFQUFFLFlBQVk7UUFDNUMsSUFBSSxhQUFhLENBQUM7UUFDbEIsSUFBSSxLQUFLLElBQUksWUFBWSxFQUFFO1lBQ3pCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO2dCQUM5QyxzQkFBc0IsRUFBRSxLQUFLO2FBQzlCLENBQUMsQ0FBQztZQUNILGFBQWEsR0FBRyxHQUFHLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztTQUNsRDthQUFNO1lBQ0wsYUFBYSxHQUFHLEtBQUssSUFBSSxZQUFZLElBQUksRUFBRSxDQUFDO1NBQzdDO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQzs7O1lBNU1GLFVBQVU7OztZQXRCRixnQkFBZ0I7WUFlaEIsa0JBQWtCO1lBUGxCLFVBQVU7WUFKakIsWUFBWTtZQUZaLFlBQVk7WUFDWixpQkFBaUI7WUFIcUIsV0FBVztZQU1qRCxlQUFlOzRDQWlDWixRQUFRLFlBQUksTUFBTSxTQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEludmVudG9yeVNlcnZpY2UsIFF1ZXJpZXNVdGlsLCBVc2VyU2VydmljZSwgSU1hbmFnZWRPYmplY3QsIElSZXN1bHQgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEJyZWFkY3J1bWJTZXJ2aWNlLFxuICBNb2RhbFNlcnZpY2UsXG4gIE5hdmlnYXRvck5vZGUsXG4gIEFwcFN0YXRlU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FwaSc7XG5pbXBvcnQgeyBlbXB0eSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFzc2V0Tm9kZSB9IGZyb20gJy4vYXNzZXQtbm9kZSc7XG5pbXBvcnQgeyBBc3NldE5hdmlnYXRvckNvbmZpZywgQVNTRVRfTkFWSUdBVE9SX0NPTkZJRyB9IGZyb20gJy4vYXNzZXQtbm9kZS1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgRHluYW1pY0dyb3VwTm9kZSB9IGZyb20gJy4vZHluYW1pYy1ncm91cC1ub2RlJztcbmltcG9ydCB7IEdyb3VwRnJhZ21lbnQgfSBmcm9tICcuL2dyb3VwLWZyYWdtZW50Lm1vZGVsJztcbmltcG9ydCB7IERldmljZUdyb3VwU2VydmljZSB9IGZyb20gJy4vZ3JvdXAuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXROb2RlTW8ge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBc3NldE5vZGVTZXJ2aWNlIHtcbiAgcm9vdE5vZGU6IEFzc2V0Tm9kZTtcbiAgZmlyc3RVcmwgPSB0cnVlO1xuICBkcmFnZ2VkRGF0YTogQXNzZXROb2RlO1xuICBxdWVyaWVzVXRpbDogUXVlcmllc1V0aWw7XG4gIHByb3RlY3RlZCBQQUdFX1NJWkUgPSAyMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaW52ZW50b3J5OiBJbnZlbnRvcnlTZXJ2aWNlLFxuICAgIHB1YmxpYyBncm91cHM6IERldmljZUdyb3VwU2VydmljZSxcbiAgICBwdWJsaWMgYXBpU2VydmljZTogQXBpU2VydmljZSxcbiAgICBwdWJsaWMgbW9kYWw6IE1vZGFsU2VydmljZSxcbiAgICBwdWJsaWMgYWxlcnQ6IEFsZXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYnJlYWRjcnVtYlNlcnZpY2U6IEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCB1c2VyOiBVc2VyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFTU0VUX05BVklHQVRPUl9DT05GSUcpIHB1YmxpYyBtb2R1bGVDb25maWc6IEFzc2V0TmF2aWdhdG9yQ29uZmlnXG4gICkge1xuICAgIHRoaXMubW9kdWxlQ29uZmlnID0ge1xuICAgICAgcm9vdE5vZGVQcmlvcml0eTogMjAwMCxcbiAgICAgIC4uLihtb2R1bGVDb25maWcgfHwge30pXG4gICAgfTtcbiAgICB0aGlzLnF1ZXJpZXNVdGlsID0gbmV3IFF1ZXJpZXNVdGlsKCk7XG4gIH1cblxuICBjcmVhdGVSb290Tm9kZSgpIHtcbiAgICB0aGlzLnJvb3ROb2RlID0gdGhpcy5jcmVhdGVBc3NldE5vZGUoe1xuICAgICAgcm9vdDogdHJ1ZSxcbiAgICAgIHByaW9yaXR5OiB0aGlzLm1vZHVsZUNvbmZpZy5yb290Tm9kZVByaW9yaXR5XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMucm9vdE5vZGU7XG4gIH1cblxuICBjcmVhdGVEeW5hbWljR3JvdXBOb2RlKGNvbmZpZykge1xuICAgIHJldHVybiBuZXcgRHluYW1pY0dyb3VwTm9kZSh0aGlzLCBjb25maWcpO1xuICB9XG5cbiAgY3JlYXRlQXNzZXROb2RlKGNvbmZpZykge1xuICAgIHJldHVybiBuZXcgQXNzZXROb2RlKHRoaXMsIGNvbmZpZyk7XG4gIH1cblxuICBjcmVhdGVDaGlsZE5vZGUobWFuYWdlZE9iamVjdCkge1xuICAgIGNvbnN0IHsgdHlwZSB9ID0gbWFuYWdlZE9iamVjdDtcbiAgICBjb25zdCBjb25maWc6IFBhcnRpYWw8QXNzZXROb2RlPiA9IHsgbW86IG1hbmFnZWRPYmplY3QgfTtcbiAgICBpZiAodHlwZSA9PT0gR3JvdXBGcmFnbWVudC5keW5hbWljR3JvdXBUeXBlKSB7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVEeW5hbWljR3JvdXBOb2RlKGNvbmZpZyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUFzc2V0Tm9kZShjb25maWcpO1xuICB9XG5cbiAgZ2V0Um9vdE5vZGVzKGN1c3RvbUZpbHRlcj86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZGVmYXVsdEZpbHRlciA9IHtcbiAgICAgIHBhZ2VTaXplOiB0aGlzLlBBR0VfU0laRSxcbiAgICAgIHdpdGhDaGlsZHJlbjogZmFsc2UsXG4gICAgICBxdWVyeTogdGhpcy5xdWVyaWVzVXRpbC5idWlsZFF1ZXJ5KHRoaXMucm9vdFF1ZXJ5RmlsdGVyKCkpXG4gICAgfTtcbiAgICBjb25zdCBncm91cEZpbHRlciA9IGN1c3RvbUZpbHRlciA/IGN1c3RvbUZpbHRlciA6IGRlZmF1bHRGaWx0ZXI7XG5cbiAgICAvLyBkdWUgdG8gQkUgcGVyZm9ybWFuY2UgbGltaXRhdGlvbnMgd2UgZG8gbm90IGFsbG93IGZpbHRlcmluZyBhbmQgc29ydGluZyBmb3IgYSB1c2VyIHdpdGhvdXQgaW52ZW50b3J5IHJvbGVzXG4gICAgaWYgKCF0aGlzLnVzZXIuaGFzUm9sZSh0aGlzLmFwcFN0YXRlLmN1cnJlbnRVc2VyLnZhbHVlLCAnUk9MRV9JTlZFTlRPUllfUkVBRCcpKSB7XG4gICAgICBkZWxldGUgZ3JvdXBGaWx0ZXIucXVlcnk7XG4gICAgICBPYmplY3QuYXNzaWduKGdyb3VwRmlsdGVyLCB7XG4gICAgICAgIGZyYWdtZW50VHlwZTogR3JvdXBGcmFnbWVudC5ncm91cEZyYWdtZW50VHlwZSxcbiAgICAgICAgb25seVJvb3RzOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5Lmxpc3QodGhpcy5jcmVhdGVGaWx0ZXIoZ3JvdXBGaWx0ZXIpKTtcbiAgfVxuXG4gIGdldEdyb3VwSXRlbXMobW9JZDogc3RyaW5nLCBleHRyYUZpbHRlcjogb2JqZWN0ID0ge30pIHtcbiAgICBjb25zdCBxdWVyeUZpbHRlciA9IHtcbiAgICAgIHdpdGhDaGlsZHJlbjogZmFsc2UsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5QQUdFX1NJWkUsXG4gICAgICBxdWVyeTogdGhpcy5ncm91cFF1ZXJ5RmlsdGVyKG1vSWQpXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5pbnZlbnRvcnkuY2hpbGRBc3NldHNMaXN0KG1vSWQsIHsgLi4ucXVlcnlGaWx0ZXIsIC4uLmV4dHJhRmlsdGVyIH0pO1xuICB9XG5cbiAgZ2V0RHluYW1pY0dyb3VwSXRlbXMoZ3JvdXBRdWVyeTogc3RyaW5nLCBmaWx0ZXJPYmo6IGFueSA9IHt9KSB7XG4gICAgY29uc3QgeyBxdWVyeSwgLi4ucXVlcnlQYXJhbXMgfSA9IGZpbHRlck9iajtcbiAgICBjb25zdCBvcmRlckJ5UXVlcnkgPSBxdWVyeTtcbiAgICBjb25zdCBxdWVyeUZpbHRlciA9IHtcbiAgICAgIHE6IHRoaXMuYnVpbGRDb21iaW5lZFF1ZXJ5KGdyb3VwUXVlcnksIG9yZGVyQnlRdWVyeSksXG4gICAgICAuLi5xdWVyeVBhcmFtc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5Lmxpc3QodGhpcy5jcmVhdGVGaWx0ZXIocXVlcnlGaWx0ZXIpKTtcbiAgfVxuXG4gIGdldERldmljZUNoaWxkcmVuKG1vSWQ6IHN0cmluZywgZXh0cmFGaWx0ZXI6IG9iamVjdCA9IHt9KSB7XG4gICAgY29uc3QgcXVlcnlGaWx0ZXIgPSB7XG4gICAgICB3aXRoQ2hpbGRyZW46IGZhbHNlLFxuICAgICAgcGFnZVNpemU6IHRoaXMuUEFHRV9TSVpFLFxuICAgICAgcXVlcnk6IHRoaXMuZ3JvdXBRdWVyeUZpbHRlcihtb0lkKVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5LmNoaWxkRGV2aWNlc0xpc3QobW9JZCwgeyAuLi5xdWVyeUZpbHRlciwgLi4uZXh0cmFGaWx0ZXIgfSk7XG4gIH1cblxuICBncm91cFF1ZXJ5RmlsdGVyKG1vSWQ6IHN0cmluZykge1xuICAgIHJldHVybiBgJGZpbHRlcj0oYnlncm91cGlkKCR7bW9JZH0pKSRvcmRlcmJ5PW5hbWVgO1xuICB9XG5cbiAgcm9vdFF1ZXJ5RmlsdGVyKCkge1xuICAgIGNvbnN0IHsgbW9kdWxlQ29uZmlnIH0gPSB0aGlzO1xuICAgIGNvbnN0IHJvb3RGaWx0ZXIgPSB7XG4gICAgICBfX2ZpbHRlcjoge1xuICAgICAgICB0eXBlOiBgJHtHcm91cEZyYWdtZW50Lmdyb3VwVHlwZX1gXG4gICAgICB9LFxuICAgICAgX19vcmRlcmJ5OiBbeyBuYW1lOiAxIH1dXG4gICAgfTtcbiAgICBpZiAobW9kdWxlQ29uZmlnLnNtYXJ0R3JvdXBzKSB7XG4gICAgICBjb25zdCBxdWVyeUZpbHRlciA9IHtcbiAgICAgICAgX19maWx0ZXI6IHtcbiAgICAgICAgICBfX2FuZDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiBgJHtHcm91cEZyYWdtZW50LmR5bmFtaWNHcm91cFR5cGV9YFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgX19oYXM6IGAke0dyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwRnJhZ21lbnR9YFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgX19ub3Q6IHsgX19oYXM6IGAke0dyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwRnJhZ21lbnR9LmludmlzaWJsZWAgfSB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgdGhpcy5xdWVyaWVzVXRpbC5hZGRPckZpbHRlcihyb290RmlsdGVyLCBxdWVyeUZpbHRlcik7XG4gICAgfVxuICAgIHJldHVybiByb290RmlsdGVyO1xuICB9XG5cbiAgb25VcGRhdGUoeyBtbywgcm9vdCB9KSB7XG4gICAgaWYgKG1vLmlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAgIC5ob29rUmVzcG9uc2UoXG4gICAgICAgICAgKHsgdXJsLCBtZXRob2QgfSkgPT5cbiAgICAgICAgICAgIFsnUFVUJywgJ0RFTEVURScsICdQT1NUJ10uaW5jbHVkZXMobWV0aG9kKSAmJlxuICAgICAgICAgICAgUmVnRXhwKGAoKGludmVudG9yeS9tYW5hZ2VkT2JqZWN0cyl8KHNlcnZpY2Uvc21hcnRncm91cC9zbWFydGdyb3VwcykpLyR7bW8uaWR9YCkudGVzdChcbiAgICAgICAgICAgICAgdXJsXG4gICAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLmRyYWdnZWREYXRhKSxcbiAgICAgICAgICBtZXJnZU1hcCh0aGlzLmFwaVNlcnZpY2UucmVzb2x2ZURhdGEpLFxuICAgICAgICAgIGZpbHRlcihyZXNwb25zZSA9PiAhcmVzcG9uc2UuZGF0YS5jOHlfRGFzaGJvYXJkKVxuICAgICAgICApO1xuICAgIH0gZWxzZSBpZiAocm9vdCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgICAuaG9va1Jlc3BvbnNlKFxuICAgICAgICAgICh7IHVybCwgbWV0aG9kIH0pID0+XG4gICAgICAgICAgICBSZWdFeHAoJygoaW52ZW50b3J5L21hbmFnZWRPYmplY3RzKXwoc2VydmljZS9zbWFydGdyb3VwL3NtYXJ0Z3JvdXBzKSkvPyQnKS50ZXN0KHVybCkgJiZcbiAgICAgICAgICAgIG1ldGhvZCA9PT0gJ1BPU1QnXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAodGhpcy5hcGlTZXJ2aWNlLnJlc29sdmVEYXRhKSxcbiAgICAgICAgICBmaWx0ZXIocmVzcG9uc2UgPT4gdGhpcy5pc05ld01hbmFnZWRPYmplY3RSb290KHJlc3BvbnNlKSlcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVtcHR5KCk7XG4gICAgfVxuICB9XG5cbiAgaXNOZXdNYW5hZ2VkT2JqZWN0Um9vdChyZXNwb25zZTogUGFydGlhbDxJUmVzdWx0PElNYW5hZ2VkT2JqZWN0Pj4gPSB7fSkge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gcmVzcG9uc2U7XG4gICAgbGV0IGlzUm9vdEFzc2V0ID0gZmFsc2U7XG5cbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICBpc1Jvb3RBc3NldCA9ICEhZGF0YVtHcm91cEZyYWdtZW50Lmdyb3VwRnJhZ21lbnRUeXBlXTtcbiAgICAgIGlmICghaXNSb290QXNzZXQgJiYgdGhpcy5tb2R1bGVDb25maWcuc21hcnRHcm91cHMpIHtcbiAgICAgICAgaXNSb290QXNzZXQgPSAhIWRhdGFbR3JvdXBGcmFnbWVudC5keW5hbWljR3JvdXBGcmFnbWVudF07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc1Jvb3RBc3NldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGVyZSBjb3VsZCBiZSBtdWx0aXBsZSBicmVhZGNydW1icyBmb3IgZGV2aWNlcyxcbiAgICogc28gd2Ugc2V0IGEgcHJlZmVycmVkIG9uZSBvbiBjbGljayBvbiBhIGRldmljZS5cbiAgICogQHBhcmFtIHBhcmVudHMgVGhlIHBhcmVudCBub2RlcyBvZiB0aGUgZGV2aWNlIHRvIHNlbGVjdCB0aGUgcHJlZmVyZWQgb25lLlxuICAgKi9cbiAgcHJlZmVyQnJlYWRjcnVtYihwYXJlbnRzOiBOYXZpZ2F0b3JOb2RlW10pIHtcbiAgICBpZiAocGFyZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuYnJlYWRjcnVtYlNlcnZpY2Uuc2VsZWN0UHJlZmVycmVkQnlQYXRoKHBhcmVudHNbMF0ucGF0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUZpbHRlcihleHRyYVBhcmFtczogYW55ID0ge30pIHtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBjdXJyZW50UGFnZTogMSxcbiAgICAgIHdpdGhUb3RhbFBhZ2VzOiB0cnVlLFxuICAgICAgcGFnZVNpemU6IDEwXG4gICAgfTtcbiAgICByZXR1cm4geyAuLi5wYXJhbXMsIC4uLmV4dHJhUGFyYW1zIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ29tYmluZWRRdWVyeShxdWVyeSwgb3JkZXJCeVF1ZXJ5KSB7XG4gICAgbGV0IGNvbWJpbmVkUXVlcnk7XG4gICAgaWYgKHF1ZXJ5ICYmIG9yZGVyQnlRdWVyeSkge1xuICAgICAgY29uc3QgZmlsdGVyUXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmJ1aWxkUXVlcnkoe1xuICAgICAgICBfX3VzZUZpbHRlclF1ZXJ5U3RyaW5nOiBxdWVyeVxuICAgICAgfSk7XG4gICAgICBjb21iaW5lZFF1ZXJ5ID0gYCR7ZmlsdGVyUXVlcnl9ICR7b3JkZXJCeVF1ZXJ5fWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbWJpbmVkUXVlcnkgPSBxdWVyeSB8fCBvcmRlckJ5UXVlcnkgfHwgJyc7XG4gICAgfVxuICAgIHJldHVybiBjb21iaW5lZFF1ZXJ5O1xuICB9XG59XG4iXX0=
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbm9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXNzZXRzLW5hdmlnYXRvci9hc3NldC1ub2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBMkIsTUFBTSxhQUFhLENBQUM7QUFDbEcsT0FBTyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsWUFBWSxFQUVaLGVBQWUsRUFDaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUF3QixzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVFyRCxNQUFNLE9BQU8sZ0JBQWdCO0lBTzNCLFlBQ1MsU0FBMkIsRUFDM0IsTUFBMEIsRUFDMUIsVUFBc0IsRUFDdEIsS0FBbUIsRUFDbkIsS0FBbUIsRUFDaEIsaUJBQW9DLEVBQ3BDLElBQWlCLEVBQ2pCLFFBQXlCLEVBQ2dCLFlBQWtDO1FBUjlFLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQzFC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QUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBRVMsWUFBWSxDQUFDLGNBQW1CLEVBQUU7UUFDMUMsTUFBTSxNQUFNLEdBQUc7WUFDYixXQUFXLEVBQUUsQ0FBQztZQUNkLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztRQUNGLHVDQUFZLE1BQU0sR0FBSyxXQUFXLEVBQUc7SUFDdkMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQUssRUFBRSxZQUFZO1FBQzVDLElBQUksYUFBYSxDQUFDO1FBQ2xCLElBQUksS0FBSyxJQUFJLFlBQVksRUFBRTtZQUN6QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztnQkFDOUMsc0JBQXNCLEVBQUUsS0FBSzthQUM5QixDQUFDLENBQUM7WUFDSCxhQUFhLEdBQUcsR0FBRyxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7U0FDbEQ7YUFBTTtZQUNMLGFBQWEsR0FBRyxLQUFLLElBQUksWUFBWSxJQUFJLEVBQUUsQ0FBQztTQUM3QztRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7OztZQWxORixVQUFVOzs7WUF0QkYsZ0JBQWdCO1lBZWhCLGtCQUFrQjtZQVBsQixVQUFVO1lBSmpCLFlBQVk7WUFGWixZQUFZO1lBQ1osaUJBQWlCO1lBSHFCLFdBQVc7WUFNakQsZUFBZTs0Q0FpQ1osUUFBUSxZQUFJLE1BQU0sU0FBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnZlbnRvcnlTZXJ2aWNlLCBRdWVyaWVzVXRpbCwgVXNlclNlcnZpY2UsIElNYW5hZ2VkT2JqZWN0LCBJUmVzdWx0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWxlcnRTZXJ2aWNlLFxuICBCcmVhZGNydW1iU2VydmljZSxcbiAgTW9kYWxTZXJ2aWNlLFxuICBOYXZpZ2F0b3JOb2RlLFxuICBBcHBTdGF0ZVNlcnZpY2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9hcGknO1xuaW1wb3J0IHsgZW1wdHkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBc3NldE5vZGUgfSBmcm9tICcuL2Fzc2V0LW5vZGUnO1xuaW1wb3J0IHsgQXNzZXROYXZpZ2F0b3JDb25maWcsIEFTU0VUX05BVklHQVRPUl9DT05GSUcgfSBmcm9tICcuL2Fzc2V0LW5vZGUtY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IER5bmFtaWNHcm91cE5vZGUgfSBmcm9tICcuL2R5bmFtaWMtZ3JvdXAtbm9kZSc7XG5pbXBvcnQgeyBHcm91cEZyYWdtZW50IH0gZnJvbSAnLi9ncm91cC1mcmFnbWVudC5tb2RlbCc7XG5pbXBvcnQgeyBEZXZpY2VHcm91cFNlcnZpY2UgfSBmcm9tICcuL2dyb3VwLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0Tm9kZU1vIHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXNzZXROb2RlU2VydmljZSB7XG4gIHJvb3ROb2RlOiBBc3NldE5vZGU7XG4gIGZpcnN0VXJsID0gdHJ1ZTtcbiAgZHJhZ2dlZERhdGE6IEFzc2V0Tm9kZTtcbiAgcXVlcmllc1V0aWw6IFF1ZXJpZXNVdGlsO1xuICBwcm90ZWN0ZWQgUEFHRV9TSVpFID0gMjA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGludmVudG9yeTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwdWJsaWMgZ3JvdXBzOiBEZXZpY2VHcm91cFNlcnZpY2UsXG4gICAgcHVibGljIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXG4gICAgcHVibGljIG1vZGFsOiBNb2RhbFNlcnZpY2UsXG4gICAgcHVibGljIGFsZXJ0OiBBbGVydFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGJyZWFkY3J1bWJTZXJ2aWNlOiBCcmVhZGNydW1iU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdXNlcjogVXNlclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGFwcFN0YXRlOiBBcHBTdGF0ZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBU1NFVF9OQVZJR0FUT1JfQ09ORklHKSBwdWJsaWMgbW9kdWxlQ29uZmlnOiBBc3NldE5hdmlnYXRvckNvbmZpZ1xuICApIHtcbiAgICB0aGlzLm1vZHVsZUNvbmZpZyA9IHtcbiAgICAgIHJvb3ROb2RlUHJpb3JpdHk6IDIwMDAsXG4gICAgICAuLi4obW9kdWxlQ29uZmlnIHx8IHt9KVxuICAgIH07XG4gICAgdGhpcy5xdWVyaWVzVXRpbCA9IG5ldyBRdWVyaWVzVXRpbCgpO1xuICB9XG5cbiAgY3JlYXRlUm9vdE5vZGUoKSB7XG4gICAgdGhpcy5yb290Tm9kZSA9IHRoaXMuY3JlYXRlQXNzZXROb2RlKHtcbiAgICAgIHJvb3Q6IHRydWUsXG4gICAgICBwcmlvcml0eTogdGhpcy5tb2R1bGVDb25maWcucm9vdE5vZGVQcmlvcml0eVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLnJvb3ROb2RlO1xuICB9XG5cbiAgY3JlYXRlRHluYW1pY0dyb3VwTm9kZShjb25maWcpIHtcbiAgICByZXR1cm4gbmV3IER5bmFtaWNHcm91cE5vZGUodGhpcywgY29uZmlnKTtcbiAgfVxuXG4gIGNyZWF0ZUFzc2V0Tm9kZShjb25maWcpIHtcbiAgICByZXR1cm4gbmV3IEFzc2V0Tm9kZSh0aGlzLCBjb25maWcpO1xuICB9XG5cbiAgY3JlYXRlQ2hpbGROb2RlKG1hbmFnZWRPYmplY3QpIHtcbiAgICBjb25zdCB7IHR5cGUgfSA9IG1hbmFnZWRPYmplY3Q7XG4gICAgY29uc3QgY29uZmlnOiBQYXJ0aWFsPEFzc2V0Tm9kZT4gPSB7IG1vOiBtYW5hZ2VkT2JqZWN0IH07XG4gICAgaWYgKHR5cGUgPT09IEdyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwVHlwZSkge1xuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRHluYW1pY0dyb3VwTm9kZShjb25maWcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVBc3NldE5vZGUoY29uZmlnKTtcbiAgfVxuXG4gIGdldFJvb3ROb2RlcyhjdXN0b21GaWx0ZXI/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGRlZmF1bHRGaWx0ZXIgPSB7XG4gICAgICBwYWdlU2l6ZTogdGhpcy5QQUdFX1NJWkUsXG4gICAgICB3aXRoQ2hpbGRyZW46IGZhbHNlLFxuICAgICAgcXVlcnk6IHRoaXMucXVlcmllc1V0aWwuYnVpbGRRdWVyeSh0aGlzLm5hdlJvb3RRdWVyeUZpbHRlcigpKVxuICAgIH07XG4gICAgY29uc3QgZ3JvdXBGaWx0ZXIgPSBjdXN0b21GaWx0ZXIgPyBjdXN0b21GaWx0ZXIgOiBkZWZhdWx0RmlsdGVyO1xuXG4gICAgLy8gZHVlIHRvIEJFIHBlcmZvcm1hbmNlIGxpbWl0YXRpb25zIHdlIGRvIG5vdCBhbGxvdyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgZm9yIGEgdXNlciB3aXRob3V0IGludmVudG9yeSByb2xlc1xuICAgIGlmICghdGhpcy51c2VyLmhhc1JvbGUodGhpcy5hcHBTdGF0ZS5jdXJyZW50VXNlci52YWx1ZSwgJ1JPTEVfSU5WRU5UT1JZX1JFQUQnKSkge1xuICAgICAgZGVsZXRlIGdyb3VwRmlsdGVyLnF1ZXJ5O1xuICAgICAgT2JqZWN0LmFzc2lnbihncm91cEZpbHRlciwge1xuICAgICAgICBmcmFnbWVudFR5cGU6IEdyb3VwRnJhZ21lbnQuZ3JvdXBGcmFnbWVudFR5cGUsXG4gICAgICAgIG9ubHlSb290czogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmludmVudG9yeS5saXN0KHRoaXMuY3JlYXRlRmlsdGVyKGdyb3VwRmlsdGVyKSk7XG4gIH1cblxuICBnZXRHcm91cEl0ZW1zKG1vSWQ6IHN0cmluZywgZXh0cmFGaWx0ZXI6IG9iamVjdCA9IHt9KSB7XG4gICAgY29uc3QgcXVlcnlGaWx0ZXIgPSB7XG4gICAgICB3aXRoQ2hpbGRyZW46IGZhbHNlLFxuICAgICAgcGFnZVNpemU6IHRoaXMuUEFHRV9TSVpFLFxuICAgICAgcXVlcnk6IHRoaXMuZ3JvdXBRdWVyeUZpbHRlcihtb0lkKVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5LmNoaWxkQXNzZXRzTGlzdChtb0lkLCB7IC4uLnF1ZXJ5RmlsdGVyLCAuLi5leHRyYUZpbHRlciB9KTtcbiAgfVxuXG4gIGdldER5bmFtaWNHcm91cEl0ZW1zKGdyb3VwUXVlcnk6IHN0cmluZywgZmlsdGVyT2JqOiBhbnkgPSB7fSkge1xuICAgIGNvbnN0IHsgcXVlcnksIC4uLnF1ZXJ5UGFyYW1zIH0gPSBmaWx0ZXJPYmo7XG4gICAgY29uc3Qgb3JkZXJCeVF1ZXJ5ID0gcXVlcnk7XG4gICAgY29uc3QgcXVlcnlGaWx0ZXIgPSB7XG4gICAgICBxOiB0aGlzLmJ1aWxkQ29tYmluZWRRdWVyeShncm91cFF1ZXJ5LCBvcmRlckJ5UXVlcnkpLFxuICAgICAgLi4ucXVlcnlQYXJhbXNcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeS5saXN0KHRoaXMuY3JlYXRlRmlsdGVyKHF1ZXJ5RmlsdGVyKSk7XG4gIH1cblxuICBnZXREZXZpY2VDaGlsZHJlbihtb0lkOiBzdHJpbmcsIGV4dHJhRmlsdGVyOiBvYmplY3QgPSB7fSkge1xuICAgIGNvbnN0IHF1ZXJ5RmlsdGVyID0ge1xuICAgICAgd2l0aENoaWxkcmVuOiBmYWxzZSxcbiAgICAgIHBhZ2VTaXplOiB0aGlzLlBBR0VfU0laRSxcbiAgICAgIHF1ZXJ5OiB0aGlzLmdyb3VwUXVlcnlGaWx0ZXIobW9JZClcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeS5jaGlsZERldmljZXNMaXN0KG1vSWQsIHsgLi4ucXVlcnlGaWx0ZXIsIC4uLmV4dHJhRmlsdGVyIH0pO1xuICB9XG5cbiAgZ3JvdXBRdWVyeUZpbHRlcihtb0lkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCRmaWx0ZXI9KGJ5Z3JvdXBpZCgke21vSWR9KSkkb3JkZXJieT1uYW1lYDtcbiAgfVxuXG4gIG5hdlJvb3RRdWVyeUZpbHRlcigpIHtcbiAgICBjb25zdCBuYXZSb290RmlsdGVyID0gdGhpcy5yb290UXVlcnlGaWx0ZXIoKTtcbiAgICBuYXZSb290RmlsdGVyLl9fb3JkZXJieSA9IFt7IG5hbWU6IDEgfV07XG4gICAgcmV0dXJuIG5hdlJvb3RGaWx0ZXI7XG4gIH1cblxuICByb290UXVlcnlGaWx0ZXIoKSB7XG4gICAgY29uc3QgeyBtb2R1bGVDb25maWcgfSA9IHRoaXM7XG4gICAgY29uc3Qgcm9vdEZpbHRlciA9IHtcbiAgICAgIF9fZmlsdGVyOiB7XG4gICAgICAgIHR5cGU6IGAke0dyb3VwRnJhZ21lbnQuZ3JvdXBUeXBlfWBcbiAgICAgIH0sXG4gICAgICBfX29yZGVyYnk6IFtdXG4gICAgfTtcbiAgICBpZiAobW9kdWxlQ29uZmlnLnNtYXJ0R3JvdXBzKSB7XG4gICAgICBjb25zdCBxdWVyeUZpbHRlciA9IHtcbiAgICAgICAgX19maWx0ZXI6IHtcbiAgICAgICAgICBfX2FuZDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiBgJHtHcm91cEZyYWdtZW50LmR5bmFtaWNHcm91cFR5cGV9YFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgX19oYXM6IGAke0dyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwRnJhZ21lbnR9YFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgX19ub3Q6IHsgX19oYXM6IGAke0dyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwRnJhZ21lbnR9LmludmlzaWJsZWAgfSB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgdGhpcy5xdWVyaWVzVXRpbC5hZGRPckZpbHRlcihyb290RmlsdGVyLCBxdWVyeUZpbHRlcik7XG4gICAgfVxuICAgIHJldHVybiByb290RmlsdGVyO1xuICB9XG5cbiAgb25VcGRhdGUoeyBtbywgcm9vdCB9KSB7XG4gICAgaWYgKG1vLmlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAgIC5ob29rUmVzcG9uc2UoXG4gICAgICAgICAgKHsgdXJsLCBtZXRob2QgfSkgPT5cbiAgICAgICAgICAgIFsnUFVUJywgJ0RFTEVURScsICdQT1NUJ10uaW5jbHVkZXMobWV0aG9kKSAmJlxuICAgICAgICAgICAgUmVnRXhwKGAoKGludmVudG9yeS9tYW5hZ2VkT2JqZWN0cyl8KHNlcnZpY2Uvc21hcnRncm91cC9zbWFydGdyb3VwcykpLyR7bW8uaWR9YCkudGVzdChcbiAgICAgICAgICAgICAgdXJsXG4gICAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLmRyYWdnZWREYXRhKSxcbiAgICAgICAgICBtZXJnZU1hcCh0aGlzLmFwaVNlcnZpY2UucmVzb2x2ZURhdGEpLFxuICAgICAgICAgIGZpbHRlcihyZXNwb25zZSA9PiAhcmVzcG9uc2UuZGF0YS5jOHlfRGFzaGJvYXJkKVxuICAgICAgICApO1xuICAgIH0gZWxzZSBpZiAocm9vdCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgICAuaG9va1Jlc3BvbnNlKFxuICAgICAgICAgICh7IHVybCwgbWV0aG9kIH0pID0+XG4gICAgICAgICAgICBSZWdFeHAoJygoaW52ZW50b3J5L21hbmFnZWRPYmplY3RzKXwoc2VydmljZS9zbWFydGdyb3VwL3NtYXJ0Z3JvdXBzKSkvPyQnKS50ZXN0KHVybCkgJiZcbiAgICAgICAgICAgIG1ldGhvZCA9PT0gJ1BPU1QnXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAodGhpcy5hcGlTZXJ2aWNlLnJlc29sdmVEYXRhKSxcbiAgICAgICAgICBmaWx0ZXIocmVzcG9uc2UgPT4gdGhpcy5pc05ld01hbmFnZWRPYmplY3RSb290KHJlc3BvbnNlKSlcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVtcHR5KCk7XG4gICAgfVxuICB9XG5cbiAgaXNOZXdNYW5hZ2VkT2JqZWN0Um9vdChyZXNwb25zZTogUGFydGlhbDxJUmVzdWx0PElNYW5hZ2VkT2JqZWN0Pj4gPSB7fSkge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gcmVzcG9uc2U7XG4gICAgbGV0IGlzUm9vdEFzc2V0ID0gZmFsc2U7XG5cbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICBpc1Jvb3RBc3NldCA9ICEhZGF0YVtHcm91cEZyYWdtZW50Lmdyb3VwRnJhZ21lbnRUeXBlXTtcbiAgICAgIGlmICghaXNSb290QXNzZXQgJiYgdGhpcy5tb2R1bGVDb25maWcuc21hcnRHcm91cHMpIHtcbiAgICAgICAgaXNSb290QXNzZXQgPSAhIWRhdGFbR3JvdXBGcmFnbWVudC5keW5hbWljR3JvdXBGcmFnbWVudF07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc1Jvb3RBc3NldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGVyZSBjb3VsZCBiZSBtdWx0aXBsZSBicmVhZGNydW1icyBmb3IgZGV2aWNlcyxcbiAgICogc28gd2Ugc2V0IGEgcHJlZmVycmVkIG9uZSBvbiBjbGljayBvbiBhIGRldmljZS5cbiAgICogQHBhcmFtIHBhcmVudHMgVGhlIHBhcmVudCBub2RlcyBvZiB0aGUgZGV2aWNlIHRvIHNlbGVjdCB0aGUgcHJlZmVyZWQgb25lLlxuICAgKi9cbiAgcHJlZmVyQnJlYWRjcnVtYihwYXJlbnRzOiBOYXZpZ2F0b3JOb2RlW10pIHtcbiAgICBpZiAocGFyZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuYnJlYWRjcnVtYlNlcnZpY2Uuc2VsZWN0UHJlZmVycmVkQnlQYXRoKHBhcmVudHNbMF0ucGF0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUZpbHRlcihleHRyYVBhcmFtczogYW55ID0ge30pIHtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBjdXJyZW50UGFnZTogMSxcbiAgICAgIHdpdGhUb3RhbFBhZ2VzOiB0cnVlLFxuICAgICAgcGFnZVNpemU6IDEwXG4gICAgfTtcbiAgICByZXR1cm4geyAuLi5wYXJhbXMsIC4uLmV4dHJhUGFyYW1zIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ29tYmluZWRRdWVyeShxdWVyeSwgb3JkZXJCeVF1ZXJ5KSB7XG4gICAgbGV0IGNvbWJpbmVkUXVlcnk7XG4gICAgaWYgKHF1ZXJ5ICYmIG9yZGVyQnlRdWVyeSkge1xuICAgICAgY29uc3QgZmlsdGVyUXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmJ1aWxkUXVlcnkoe1xuICAgICAgICBfX3VzZUZpbHRlclF1ZXJ5U3RyaW5nOiBxdWVyeVxuICAgICAgfSk7XG4gICAgICBjb21iaW5lZFF1ZXJ5ID0gYCR7ZmlsdGVyUXVlcnl9ICR7b3JkZXJCeVF1ZXJ5fWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbWJpbmVkUXVlcnkgPSBxdWVyeSB8fCBvcmRlckJ5UXVlcnkgfHwgJyc7XG4gICAgfVxuICAgIHJldHVybiBjb21iaW5lZFF1ZXJ5O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ export { ChildDevicesTabGuard as ɵa } from './child-devices.guard';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzh5LW5neC1jb21wb25lbnRzLWNoaWxkLWRldmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jaGlsZC1kZXZpY2VzL2M4eS1uZ3gtY29tcG9uZW50cy1jaGlsZC1kZXZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUM7QUFFeEIsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IHtDaGlsZERldmljZXNUYWJHdWFyZCBhcyDJtWF9IGZyb20gJy4vY2hpbGQtZGV2aWNlcy5ndWFyZCc7Il19
@@ -0,0 +1,30 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Component } from '@angular/core';
3
+ import { ActivatedRoute } from '@angular/router';
4
+ import { ManagedObjectRealtimeService } from '@c8y/ngx-components';
5
+ export class ChildDevicesComponent {
6
+ constructor(route) {
7
+ this.route = route;
8
+ }
9
+ ngOnInit() {
10
+ return __awaiter(this, void 0, void 0, function* () {
11
+ yield this.getAllDevices();
12
+ });
13
+ }
14
+ getAllDevices() {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ this.id = this.route.snapshot.parent.data.contextData;
17
+ });
18
+ }
19
+ }
20
+ ChildDevicesComponent.decorators = [
21
+ { type: Component, args: [{
22
+ selector: 'c8y-child-devices',
23
+ template: "<c8y-device-grid\n [title]=\"'Child Devices' | translate\"\n class=\"flex-grow col-xs-12 no-gutter\"\n [childDeviceGrid]=\"true\"\n [parentDeviceId]=\"id\"\n>\n <div class=\"c8y-empty-state\">\n <h1 c8yIcon=\"search\"></h1>\n <div>\n <p>\n <strong>{{ 'No matching devices.' | translate }}</strong>\n </p>\n <small>{{ 'Refine your search terms' | translate }}</small>\n </div>\n </div>\n</c8y-device-grid>\n",
24
+ providers: [ManagedObjectRealtimeService]
25
+ },] }
26
+ ];
27
+ ChildDevicesComponent.ctorParameters = () => [
28
+ { type: ActivatedRoute }
29
+ ];
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQtZGV2aWNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jaGlsZC1kZXZpY2VzL2NoaWxkLWRldmljZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFPbkUsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQyxZQUFvQixLQUFxQjtRQUFyQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtJQUFHLENBQUM7SUFFdkMsUUFBUTs7WUFDWixNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3QixDQUFDO0tBQUE7SUFFSyxhQUFhOztZQUNqQixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3hELENBQUM7S0FBQTs7O1lBaEJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3Qix1Y0FBNkM7Z0JBQzdDLFNBQVMsRUFBRSxDQUFDLDRCQUE0QixDQUFDO2FBQzFDOzs7WUFSUSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBNYW5hZ2VkT2JqZWN0UmVhbHRpbWVTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1jaGlsZC1kZXZpY2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoaWxkLWRldmljZXMuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtNYW5hZ2VkT2JqZWN0UmVhbHRpbWVTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBDaGlsZERldmljZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBpZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGF3YWl0IHRoaXMuZ2V0QWxsRGV2aWNlcygpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QWxsRGV2aWNlcygpIHtcbiAgICB0aGlzLmlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YTtcbiAgfVxufVxuIl19
@@ -0,0 +1,30 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { InventoryService } from '@c8y/client';
4
+ export class ChildDevicesTabGuard {
5
+ constructor(inventory) {
6
+ this.inventory = inventory;
7
+ }
8
+ canActivate(route) {
9
+ return __awaiter(this, void 0, void 0, function* () {
10
+ const contextData = route.data.contextData;
11
+ const filter = {
12
+ pageSize: 1
13
+ };
14
+ if (!contextData) {
15
+ return true;
16
+ }
17
+ const device = yield this.inventory.childDevicesList(contextData.id, filter);
18
+ const hasChildren = device.data.length;
19
+ const isVendme = route.data.contextData.type === 'com_nsn_startups_vendme_VendingMachine';
20
+ return hasChildren && !isVendme;
21
+ });
22
+ }
23
+ }
24
+ ChildDevicesTabGuard.decorators = [
25
+ { type: Injectable }
26
+ ];
27
+ ChildDevicesTabGuard.ctorParameters = () => [
28
+ { type: InventoryService }
29
+ ];
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQtZGV2aWNlcy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NoaWxkLWRldmljZXMvY2hpbGQtZGV2aWNlcy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHL0MsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFHLENBQUM7SUFFN0MsV0FBVyxDQUFDLEtBQTZCOztZQUM3QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUMzQyxNQUFNLE1BQU0sR0FBVztnQkFDckIsUUFBUSxFQUFFLENBQUM7YUFDWixDQUFDO1lBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDaEIsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzdFLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3ZDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyx3Q0FBd0MsQ0FBQztZQUMxRixPQUFPLFdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxDQUFDO0tBQUE7OztZQWhCRixVQUFVOzs7WUFGRixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJbnZlbnRvcnlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2hpbGREZXZpY2VzVGFiR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW52ZW50b3J5OiBJbnZlbnRvcnlTZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgY29udGV4dERhdGEgPSByb3V0ZS5kYXRhLmNvbnRleHREYXRhO1xuICAgIGNvbnN0IGZpbHRlcjogb2JqZWN0ID0ge1xuICAgICAgcGFnZVNpemU6IDFcbiAgICB9O1xuICAgIGlmICghY29udGV4dERhdGEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBkZXZpY2UgPSBhd2FpdCB0aGlzLmludmVudG9yeS5jaGlsZERldmljZXNMaXN0KGNvbnRleHREYXRhLmlkLCBmaWx0ZXIpO1xuICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gZGV2aWNlLmRhdGEubGVuZ3RoO1xuICAgIGNvbnN0IGlzVmVuZG1lID0gcm91dGUuZGF0YS5jb250ZXh0RGF0YS50eXBlID09PSAnY29tX25zbl9zdGFydHVwc192ZW5kbWVfVmVuZGluZ01hY2hpbmUnO1xuICAgIHJldHVybiBoYXNDaGlsZHJlbiAmJiAhaXNWZW5kbWU7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,36 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CoreModule, gettext, HOOK_ONCE_ROUTE, ViewContext } from '@c8y/ngx-components';
3
+ import { DeviceGridModule } from '@c8y/ngx-components/device-grid';
4
+ import { PopoverModule } from 'ngx-bootstrap/popover';
5
+ import { ChildDevicesComponent } from './child-devices.component';
6
+ import { ChildDevicesTabGuard } from './child-devices.guard';
7
+ const ɵ0 = [
8
+ {
9
+ context: ViewContext.Device,
10
+ path: 'child-devices',
11
+ priority: 1000,
12
+ icon: 'code-fork',
13
+ label: gettext('Child devices'),
14
+ component: ChildDevicesComponent,
15
+ canActivate: [ChildDevicesTabGuard]
16
+ }
17
+ ];
18
+ export class ChildDevicesModule {
19
+ }
20
+ ChildDevicesModule.decorators = [
21
+ { type: NgModule, args: [{
22
+ declarations: [ChildDevicesComponent],
23
+ imports: [CoreModule, DeviceGridModule, PopoverModule],
24
+ entryComponents: [ChildDevicesComponent],
25
+ providers: [
26
+ ChildDevicesTabGuard,
27
+ {
28
+ provide: HOOK_ONCE_ROUTE,
29
+ useValue: ɵ0,
30
+ multi: true
31
+ }
32
+ ]
33
+ },] }
34
+ ];
35
+ export { ɵ0 };
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQtZGV2aWNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jaGlsZC1kZXZpY2VzL2NoaWxkLWRldmljZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztXQVU3QztJQUNSO1FBQ0UsT0FBTyxFQUFFLFdBQVcsQ0FBQyxNQUFNO1FBQzNCLElBQUksRUFBRSxlQUFlO1FBQ3JCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsSUFBSSxFQUFFLFdBQVc7UUFDakIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDL0IsU0FBUyxFQUFFLHFCQUFxQjtRQUNoQyxXQUFXLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztLQUNwQztDQUNGO0FBS1AsTUFBTSxPQUFPLGtCQUFrQjs7O1lBdkI5QixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ3JDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLENBQUM7Z0JBQ3RELGVBQWUsRUFBRSxDQUFDLHFCQUFxQixDQUFDO2dCQUN4QyxTQUFTLEVBQUU7b0JBQ1Qsb0JBQW9CO29CQUNwQjt3QkFDRSxPQUFPLEVBQUUsZUFBZTt3QkFDeEIsUUFBUSxJQVVQO3dCQUNELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSwgZ2V0dGV4dCwgSE9PS19PTkNFX1JPVVRFLCBWaWV3Q29udGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGV2aWNlR3JpZE1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZGV2aWNlLWdyaWQnO1xuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvcG9wb3Zlcic7XG5pbXBvcnQgeyBDaGlsZERldmljZXNDb21wb25lbnQgfSBmcm9tICcuL2NoaWxkLWRldmljZXMuY29tcG9uZW50JztcbmltcG9ydCB7IENoaWxkRGV2aWNlc1RhYkd1YXJkIH0gZnJvbSAnLi9jaGlsZC1kZXZpY2VzLmd1YXJkJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQ2hpbGREZXZpY2VzQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIERldmljZUdyaWRNb2R1bGUsIFBvcG92ZXJNb2R1bGVdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtDaGlsZERldmljZXNDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtcbiAgICBDaGlsZERldmljZXNUYWJHdWFyZCxcbiAgICB7XG4gICAgICBwcm92aWRlOiBIT09LX09OQ0VfUk9VVEUsXG4gICAgICB1c2VWYWx1ZTogW1xuICAgICAgICB7XG4gICAgICAgICAgY29udGV4dDogVmlld0NvbnRleHQuRGV2aWNlLFxuICAgICAgICAgIHBhdGg6ICdjaGlsZC1kZXZpY2VzJyxcbiAgICAgICAgICBwcmlvcml0eTogMTAwMCxcbiAgICAgICAgICBpY29uOiAnY29kZS1mb3JrJyxcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQ2hpbGQgZGV2aWNlcycpLFxuICAgICAgICAgIGNvbXBvbmVudDogQ2hpbGREZXZpY2VzQ29tcG9uZW50LFxuICAgICAgICAgIGNhbkFjdGl2YXRlOiBbQ2hpbGREZXZpY2VzVGFiR3VhcmRdXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDaGlsZERldmljZXNNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './child-devices.component';
2
+ export * from './child-devices.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jaGlsZC1kZXZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2hpbGQtZGV2aWNlcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGlsZC1kZXZpY2VzLm1vZHVsZSc7XG4iXX0=