@c8y/ngx-components 1010.0.15 → 1010.0.16

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 (34) hide show
  1. package/bundles/c8y-ngx-components-search.umd.js +34 -3
  2. package/bundles/c8y-ngx-components-search.umd.js.map +1 -1
  3. package/bundles/c8y-ngx-components-search.umd.min.js +1 -1
  4. package/bundles/c8y-ngx-components-search.umd.min.js.map +1 -1
  5. package/bundles/c8y-ngx-components.umd.js +2 -2
  6. package/bundles/c8y-ngx-components.umd.js.map +1 -1
  7. package/bundles/c8y-ngx-components.umd.min.js +1 -1
  8. package/bundles/c8y-ngx-components.umd.min.js.map +1 -1
  9. package/c8y-ngx-components.metadata.json +1 -1
  10. package/core/data-grid/data-grid.model.d.ts +4 -0
  11. package/esm2015/core/data-grid/data-grid.component.js +2 -2
  12. package/esm2015/core/data-grid/data-grid.model.js +1 -1
  13. package/esm2015/core/data-grid/grid-data-source.js +2 -2
  14. package/esm2015/search/search-grid.component.js +25 -4
  15. package/esm2015/search/search-results.component.js +12 -2
  16. package/esm2015/search/search.service.js +1 -1
  17. package/esm5/core/data-grid/data-grid.component.js +2 -2
  18. package/esm5/core/data-grid/data-grid.model.js +1 -1
  19. package/esm5/core/data-grid/grid-data-source.js +2 -2
  20. package/esm5/search/search-grid.component.js +25 -4
  21. package/esm5/search/search-results.component.js +13 -2
  22. package/esm5/search/search.service.js +1 -1
  23. package/fesm2015/c8y-ngx-components-search.js +35 -5
  24. package/fesm2015/c8y-ngx-components-search.js.map +1 -1
  25. package/fesm2015/c8y-ngx-components.js +2 -2
  26. package/fesm2015/c8y-ngx-components.js.map +1 -1
  27. package/fesm5/c8y-ngx-components-search.js +36 -5
  28. package/fesm5/c8y-ngx-components-search.js.map +1 -1
  29. package/fesm5/c8y-ngx-components.js +2 -2
  30. package/fesm5/c8y-ngx-components.js.map +1 -1
  31. package/package.json +2 -2
  32. package/search/c8y-ngx-components-search.metadata.json +1 -1
  33. package/search/search-grid.component.d.ts +2 -1
  34. package/search/search-results.component.d.ts +2 -0
@@ -3,8 +3,9 @@ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core
3
3
  import { DataGridComponent, FilteringActionType, gettext } from '@c8y/ngx-components';
4
4
  import { IManagedObject, SmartGroupsService } from '@c8y/client';
5
5
  import { SearchService } from './search.service';
6
- import { DeleteAssetsModalComponent, DeleteModalCheckboxes, SubAssetsService } from '@c8y/ngx-components/sub-assets';
6
+ import { AssetTypeGridColumn, DeleteAssetsModalComponent, DeleteModalCheckboxes, SubAssetsService } from '@c8y/ngx-components/sub-assets';
7
7
  import { BsModalService } from 'ngx-bootstrap/modal';
8
+ import { AlarmsDeviceGridColumn, ImeiDeviceGridColumn, ModelDeviceGridColumn, NameDeviceGridColumn, RegistrationDateDeviceGridColumn, SerialNumberDeviceGridColumn, SystemIdDeviceGridColumn } from '@c8y/ngx-components/device-grid';
8
9
  var SearchGridComponent = /** @class */ (function () {
9
10
  function SearchGridComponent(searchService, bsModalService, smartGroupsService, subAssetsGridService) {
10
11
  this.searchService = searchService;
@@ -16,7 +17,6 @@ var SearchGridComponent = /** @class */ (function () {
16
17
  this.selectable = false;
17
18
  this.onColumnsChange = new EventEmitter();
18
19
  this.searchText = '';
19
- this.columns = this.searchService.getDefaultColumns();
20
20
  this.pagination = this.searchService.getDefaultPagination();
21
21
  this.bulkActionControls = this.searchService.getDefaultBulkActionControls();
22
22
  this.refresh = new EventEmitter();
@@ -70,7 +70,25 @@ var SearchGridComponent = /** @class */ (function () {
70
70
  enumerable: true,
71
71
  configurable: true
72
72
  });
73
- SearchGridComponent.prototype.ngAfterViewInit = function () {
73
+ SearchGridComponent.prototype.ngOnInit = function () {
74
+ if (!this.filteringName) {
75
+ this.columns = this.searchService.getDefaultColumns();
76
+ }
77
+ else {
78
+ this.columns = [
79
+ new AssetTypeGridColumn({ sortOrder: 'desc' }),
80
+ new NameDeviceGridColumn({
81
+ sortOrder: 'asc',
82
+ filter: { externalFilterQuery: { names: [this.filteringName] } }
83
+ }),
84
+ new ModelDeviceGridColumn(),
85
+ new SerialNumberDeviceGridColumn({ visible: false }),
86
+ new RegistrationDateDeviceGridColumn({ visible: false }),
87
+ new SystemIdDeviceGridColumn({ visible: false }),
88
+ new ImeiDeviceGridColumn({ visible: false }),
89
+ new AlarmsDeviceGridColumn()
90
+ ];
91
+ }
74
92
  this.serverSideDataCallback = this.onDataSourceModifier.bind(this);
75
93
  this.setActionControls();
76
94
  };
@@ -195,6 +213,9 @@ var SearchGridComponent = /** @class */ (function () {
195
213
  tslib_1.__decorate([
196
214
  Input()
197
215
  ], SearchGridComponent.prototype, "searchText", void 0);
216
+ tslib_1.__decorate([
217
+ Input()
218
+ ], SearchGridComponent.prototype, "filteringName", void 0);
198
219
  tslib_1.__decorate([
199
220
  ViewChild(DataGridComponent, { static: true })
200
221
  ], SearchGridComponent.prototype, "dataGrid", void 0);
@@ -207,4 +228,4 @@ var SearchGridComponent = /** @class */ (function () {
207
228
  return SearchGridComponent;
208
229
  }());
209
230
  export { SearchGridComponent };
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy9zZWFyY2gvIiwic291cmNlcyI6WyJzZWFyY2gtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFJTCxpQkFBaUIsRUFFakIsbUJBQW1CLEVBRW5CLE9BQU8sRUFJUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNqQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU1yRDtJQW9ERSw2QkFDUyxhQUE0QixFQUMzQixjQUE4QixFQUM5QixrQkFBc0MsRUFDdEMsb0JBQXNDO1FBSHZDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBa0I7UUF0RHZDLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsc0JBQWlCLEdBQVcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFzQnhELGVBQVUsR0FBWSxLQUFLLENBQUM7UUFRM0Isb0JBQWUsR0FBcUMsSUFBSSxZQUFZLEVBRTNFLENBQUM7UUFHSixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRWhCLFlBQU8sR0FBdUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxp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RUFBRTtnRUFFTDtJQUdKO1FBREMsS0FBSyxFQUFFOzJEQUNRO0lBVWhCO1FBREMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO3lEQUNuQjtJQWhEakIsbUJBQW1CO1FBSi9CLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IseWlDQUEyQztTQUM1QyxDQUFDO09BQ1csbUJBQW1CLENBb0ovQjtJQUFELDBCQUFDO0NBQUEsQUFwSkQsSUFvSkM7U0FwSlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29udHJvbCxcbiAgQnVpbHRJbkFjdGlvblR5cGUsXG4gIEJ1bGtBY3Rpb25Db250cm9sLFxuICBEYXRhR3JpZENvbXBvbmVudCxcbiAgRGF0YVNvdXJjZU1vZGlmaWVyLFxuICBGaWx0ZXJpbmdBY3Rpb25UeXBlLFxuICBGaWx0ZXJpbmdNb2RpZmllcixcbiAgZ2V0dGV4dCxcbiAgUGFnaW5hdGlvbixcbiAgUm93LFxuICBTZXJ2ZXJTaWRlRGF0YVJlc3VsdFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IERldmljZUdyaWRDb2x1bW4gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2RldmljZS1ncmlkJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBTbWFydEdyb3Vwc1NlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge1xuICBEZWxldGVBc3NldHNNb2RhbENvbXBvbmVudCxcbiAgRGVsZXRlTW9kYWxDaGVja2JveGVzLFxuICBTdWJBc3NldHNTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvc3ViLWFzc2V0cyc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktc2VhcmNoLWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWdyaWQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaEdyaWRDb21wb25lbnQge1xuICBASW5wdXQoJ3BhcmVudC1ncm91cCcpIHBhcmVudEdyb3VwOiBJTWFuYWdlZE9iamVjdDtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBsb2FkaW5nSXRlbXNMYWJlbDogc3RyaW5nID0gZ2V0dGV4dCgnTG9hZGluZyByZXN1bHRz4oCmJyk7XG4gIEBJbnB1dCgnY29sdW1ucycpIHNldCBfY29sdW1ucyh2YWx1ZTogRGV2aWNlR3JpZENvbHVtbltdKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmNvbHVtbnMgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2x1bW5zID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldERlZmF1bHRDb2x1bW5zKCk7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgncGFnaW5hdGlvbicpIHNldCBfcGFnaW5hdGlvbih2YWx1ZTogUGFnaW5hdGlvbikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5wYWdpbmF0aW9uID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHRoaXMuc2VhcmNoU2VydmljZS5nZXREZWZhdWx0UGFnaW5hdGlvbigpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoJ2FjdGlvbkNvbnRyb2xzJykgc2V0IF9hY3Rpb25Db250cm9scyh2YWx1ZTogQWN0aW9uQ29udHJvbFtdKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbnRyb2xzID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aW9uQ29udHJvbHMgPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0RGVmYXVsdEFjdGlvbkNvbnRyb2xzKCk7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIHNlbGVjdGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCdidWxrQWN0aW9uQ29udHJvbHMnKSBzZXQgX2J1bGtBY3Rpb25Db250cm9scyh2YWx1ZTogQnVsa0FjdGlvbkNvbnRyb2xbXSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5idWxrQWN0aW9uQ29udHJvbHMgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5idWxrQWN0aW9uQ29udHJvbHMgPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0RGVmYXVsdEJ1bGtBY3Rpb25Db250cm9scygpO1xuICAgIH1cbiAgfVxuICBAT3V0cHV0KCkgb25Db2x1bW5zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGV2aWNlR3JpZENvbHVtbltdPiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgRGV2aWNlR3JpZENvbHVtbltdXG4gID4oKTtcblxuICBASW5wdXQoKVxuICBzZWFyY2hUZXh0ID0gJyc7XG5cbiAgY29sdW1uczogRGV2aWNlR3JpZENvbHVtbltdID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldERlZmF1bHRDb2x1bW5zKCk7XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0RGVmYXVsdFBhZ2luYXRpb24oKTtcbiAgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXTtcbiAgYnVsa0FjdGlvbkNvbnRyb2xzOiBCdWxrQWN0aW9uQ29udHJvbFtdID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldERlZmF1bHRCdWxrQWN0aW9uQ29udHJvbHMoKTtcbiAgc2VydmVyU2lkZURhdGFDYWxsYmFjazogYW55O1xuICByZWZyZXNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKERhdGFHcmlkQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBkYXRhR3JpZDogRGF0YUdyaWRDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBzaXplQ291bnQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgc21hcnRHcm91cHNTZXJ2aWNlOiBTbWFydEdyb3Vwc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdWJBc3NldHNHcmlkU2VydmljZTogU3ViQXNzZXRzU2VydmljZVxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmVyU2lkZURhdGFDYWxsYmFjayA9IHRoaXMub25EYXRhU291cmNlTW9kaWZpZXIuYmluZCh0aGlzKTtcbiAgICB0aGlzLnNldEFjdGlvbkNvbnRyb2xzKCk7XG4gIH1cblxuICB0cmFja0J5TmFtZShfaW5kZXgsIGNvbHVtbjogRGV2aWNlR3JpZENvbHVtbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICB9XG5cbiAgYXN5bmMgb25EYXRhU291cmNlTW9kaWZpZXIoXG4gICAgZGF0YVNvdXJjZU1vZGlmaWVyOiBEYXRhU291cmNlTW9kaWZpZXJcbiAgKTogUHJvbWlzZTxTZXJ2ZXJTaWRlRGF0YVJlc3VsdD4ge1xuICAgIGxldCByZXNwb25zZTtcbiAgICBpZiAoZGF0YVNvdXJjZU1vZGlmaWVyLnNlYXJjaFRleHQpIHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaChkYXRhU291cmNlTW9kaWZpZXIuc2VhcmNoVGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZWFyY2hTZXJ2aWNlLmdldERhdGEoXG4gICAgICAgIGRhdGFTb3VyY2VNb2RpZmllci5jb2x1bW5zLFxuICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIucGFnaW5hdGlvbixcbiAgICAgICAgdW5kZWZpbmVkXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCB7IHJlcywgZGF0YSwgcGFnaW5nIH0gPSByZXNwb25zZTtcbiAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyT25seUFzc2V0cyhkYXRhKTtcblxuICAgIGlmIChwYWdpbmcuY3VycmVudFBhZ2UgPT09IDEpIHtcbiAgICAgIHRoaXMuc2l6ZUNvdW50ID0gMDtcbiAgICB9XG4gICAgdGhpcy5zaXplQ291bnQgKz0gZmlsdGVyZWREYXRhLmxlbmd0aDtcbiAgICB0aGlzLm9uQ29sdW1uc0NoYW5nZS5lbWl0KGRhdGFTb3VyY2VNb2RpZmllci5jb2x1bW5zKTtcblxuICAgIHJldHVybiB7XG4gICAgICByZXMsXG4gICAgICBkYXRhOiBmaWx0ZXJlZERhdGEsXG4gICAgICBwYWdpbmcsXG4gICAgICBmaWx0ZXJlZFNpemU6IHRoaXMuc2l6ZUNvdW50LFxuICAgICAgc2l6ZTogdW5kZWZpbmVkXG4gICAgfTtcbiAgfVxuXG4gIHNldEFjdGlvbkNvbnRyb2xzKCkge1xuICAgIGNvbnN0IGFjdGlvbkNvbnRyb2xzOiBBY3Rpb25Db250cm9sW10gPSBbXTtcbiAgICBjb25zdCBkZWxldGVBY3Rpb246IEFjdGlvbkNvbnRyb2wgPSB7XG4gICAgICB0eXBlOiBCdWlsdEluQWN0aW9uVHlwZS5EZWxldGUsXG4gICAgICBjYWxsYmFjazogKGFzc2V0OiBSb3cpID0+IHRoaXMub25EZWxldGVBc3NldChhc3NldCBhcyBJTWFuYWdlZE9iamVjdCwgdGhpcy5wYXJlbnRHcm91cClcbiAgICB9O1xuICAgIGFjdGlvbkNvbnRyb2xzLnB1c2goZGVsZXRlQWN0aW9uKTtcbiAgICBpZiAoIXRoaXMuYWN0aW9uQ29udHJvbHMpIHtcbiAgICAgIHRoaXMuYWN0aW9uQ29udHJvbHMgPSBhY3Rpb25Db250cm9scztcbiAgICB9XG4gIH1cblxuICB1cGRhdGVGaWx0ZXJpbmcoXG4gICAgY29sdW1uTmFtZXM6IHN0cmluZ1tdLFxuICAgIGFjdGlvbjoge1xuICAgICAgdHlwZTogRmlsdGVyaW5nQWN0aW9uVHlwZTtcbiAgICAgIHBheWxvYWQ/OiB7IGZpbHRlcmluZ01vZGlmaWVyOiBGaWx0ZXJpbmdNb2RpZmllciB9O1xuICAgIH1cbiAgKSB7XG4gICAgY29uc3QgeyB0eXBlIH0gPSBhY3Rpb247XG4gICAgaWYgKHR5cGUgPT09IEZpbHRlcmluZ0FjdGlvblR5cGUuUmVzZXRGaWx0ZXIpIHtcbiAgICAgIHRoaXMuZGF0YUdyaWQuY2xlYXJGaWx0ZXJzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF0YUdyaWQudXBkYXRlRmlsdGVyaW5nKGNvbHVtbk5hbWVzLCBhY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIGNvbmZpZ0NoYW5nZShjb25maWcpIHtcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2F2ZUNvbmZpZyhjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkRlbGV0ZUFzc2V0KGFzc2V0LCBwYXJlbnRSZWYpIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gICAgICBzaG93V2l0aERldmljZVVzZXJDaGVja2JveDogdGhpcy5zdWJBc3NldHNHcmlkU2VydmljZS5zaG91bGRTaG93V2l0aERldmljZVVzZXJDaGVja2JveChhc3NldCksXG4gICAgICBhc3NldCxcbiAgICAgIHNob3dXaXRoQ2FzY2FkZUNoZWNrYm94OlxuICAgICAgICAhdGhpcy5zbWFydEdyb3Vwc1NlcnZpY2UuaXNTbWFydEdyb3VwKGFzc2V0KSAmJlxuICAgICAgICAhdGhpcy5zbWFydEdyb3Vwc1NlcnZpY2UuaXNTbWFydEdyb3VwVjIoYXNzZXQpXG4gICAgfTtcblxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5ic01vZGFsU2VydmljZS5zaG93KERlbGV0ZUFzc2V0c01vZGFsQ29tcG9uZW50LCB7IGluaXRpYWxTdGF0ZSB9KTtcblxuICAgIG1vZGFsUmVmLmNvbnRlbnQuY2xvc2VTdWJqZWN0LnN1YnNjcmliZShhc3luYyAocmVzdWx0OiBEZWxldGVNb2RhbENoZWNrYm94ZXMpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zdWJBc3NldHNHcmlkU2VydmljZS5kZWxldGVBc3NldChhc3NldCwgcGFyZW50UmVmLCByZXN1bHQpO1xuICAgICAgICB0aGlzLnJlZnJlc2guZW1pdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy9zZWFyY2gvIiwic291cmNlcyI6WyJzZWFyY2gtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFJTCxpQkFBaUIsRUFFakIsbUJBQW1CLEVBRW5CLE9BQU8sRUFJUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsMEJBQTBCLEVBQzFCLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDakIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUNMLHNCQUFzQixFQUV0QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixnQ0FBZ0MsRUFDaEMsNEJBQTRCLEVBQzVCLHdCQUF3QixFQUN6QixNQUFNLGlDQUFpQyxDQUFDO0FBTXpDO0lBdURFLDZCQUNTLGFBQTRCLEVBQzNCLGNBQThCLEVBQzlCLGtCQUFzQyxFQUN0QyxvQkFBc0M7UUFIdkMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFrQjtRQXpEdkMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixzQkFBaUIsR0FBVyxPQUFPLENBQUMsa0JBQWtCLENB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QztPQUNXLG1CQUFtQixDQXdLL0I7SUFBRCwwQkFBQztDQUFBLEFBeEtELElBd0tDO1NBeEtZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGlvbkNvbnRyb2wsXG4gIEJ1aWx0SW5BY3Rpb25UeXBlLFxuICBCdWxrQWN0aW9uQ29udHJvbCxcbiAgRGF0YUdyaWRDb21wb25lbnQsXG4gIERhdGFTb3VyY2VNb2RpZmllcixcbiAgRmlsdGVyaW5nQWN0aW9uVHlwZSxcbiAgRmlsdGVyaW5nTW9kaWZpZXIsXG4gIGdldHRleHQsXG4gIFBhZ2luYXRpb24sXG4gIFJvdyxcbiAgU2VydmVyU2lkZURhdGFSZXN1bHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEZXZpY2VHcmlkQ29sdW1uIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9kZXZpY2UtZ3JpZCc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgU21hcnRHcm91cHNTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4vc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQXNzZXRUeXBlR3JpZENvbHVtbixcbiAgRGVsZXRlQXNzZXRzTW9kYWxDb21wb25lbnQsXG4gIERlbGV0ZU1vZGFsQ2hlY2tib3hlcyxcbiAgU3ViQXNzZXRzU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3N1Yi1hc3NldHMnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7XG4gIEFsYXJtc0RldmljZUdyaWRDb2x1bW4sXG4gIERldmljZUdyaWRTZXJ2aWNlLFxuICBJbWVpRGV2aWNlR3JpZENvbHVtbixcbiAgTW9kZWxEZXZpY2VHcmlkQ29sdW1uLFxuICBOYW1lRGV2aWNlR3JpZENvbHVtbixcbiAgUmVnaXN0cmF0aW9uRGF0ZURldmljZUdyaWRDb2x1bW4sXG4gIFNlcmlhbE51bWJlckRldmljZUdyaWRDb2x1bW4sXG4gIFN5c3RlbUlkRGV2aWNlR3JpZENvbHVtblxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2RldmljZS1ncmlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXNlYXJjaC1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1ncmlkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hHcmlkQ29tcG9uZW50IHtcbiAgQElucHV0KCdwYXJlbnQtZ3JvdXAnKSBwYXJlbnRHcm91cDogSU1hbmFnZWRPYmplY3Q7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbG9hZGluZ0l0ZW1zTGFiZWw6IHN0cmluZyA9IGdldHRleHQoJ0xvYWRpbmcgcmVzdWx0c+KApicpO1xuICBASW5wdXQoJ2NvbHVtbnMnKSBzZXQgX2NvbHVtbnModmFsdWU6IERldmljZUdyaWRDb2x1bW5bXSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5jb2x1bW5zID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuc2VhcmNoU2VydmljZS5nZXREZWZhdWx0Q29sdW1ucygpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoJ3BhZ2luYXRpb24nKSBzZXQgX3BhZ2luYXRpb24odmFsdWU6IFBhZ2luYXRpb24pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhZ2luYXRpb24gPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0RGVmYXVsdFBhZ2luYXRpb24oKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KCdhY3Rpb25Db250cm9scycpIHNldCBfYWN0aW9uQ29udHJvbHModmFsdWU6IEFjdGlvbkNvbnRyb2xbXSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hY3Rpb25Db250cm9scyA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbnRyb2xzID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldERlZmF1bHRBY3Rpb25Db250cm9scygpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBzZWxlY3RhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgnYnVsa0FjdGlvbkNvbnRyb2xzJykgc2V0IF9idWxrQWN0aW9uQ29udHJvbHModmFsdWU6IEJ1bGtBY3Rpb25Db250cm9sW10pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuYnVsa0FjdGlvbkNvbnRyb2xzID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYnVsa0FjdGlvbkNvbnRyb2xzID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldERlZmF1bHRCdWxrQWN0aW9uQ29udHJvbHMoKTtcbiAgICB9XG4gIH1cbiAgQE91dHB1dCgpIG9uQ29sdW1uc0NoYW5nZTogRXZlbnRFbWl0dGVyPERldmljZUdyaWRDb2x1bW5bXT4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIERldmljZUdyaWRDb2x1bW5bXVxuICA+KCk7XG5cbiAgQElucHV0KClcbiAgc2VhcmNoVGV4dCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGZpbHRlcmluZ05hbWU6IHN0cmluZztcblxuICBjb2x1bW5zOiBEZXZpY2VHcmlkQ29sdW1uW107XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0RGVmYXVsdFBhZ2luYXRpb24oKTtcbiAgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXTtcbiAgYnVsa0FjdGlvbkNvbnRyb2xzOiBCdWxrQWN0aW9uQ29udHJvbFtdID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldERlZmF1bHRCdWxrQWN0aW9uQ29udHJvbHMoKTtcbiAgc2VydmVyU2lkZURhdGFDYWxsYmFjazogYW55O1xuICByZWZyZXNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKERhdGFHcmlkQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBkYXRhR3JpZDogRGF0YUdyaWRDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBzaXplQ291bnQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgc21hcnRHcm91cHNTZXJ2aWNlOiBTbWFydEdyb3Vwc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdWJBc3NldHNHcmlkU2VydmljZTogU3ViQXNzZXRzU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZpbHRlcmluZ05hbWUpIHtcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuc2VhcmNoU2VydmljZS5nZXREZWZhdWx0Q29sdW1ucygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbHVtbnMgPSBbXG4gICAgICAgIG5ldyBBc3NldFR5cGVHcmlkQ29sdW1uKHsgc29ydE9yZGVyOiAnZGVzYycgfSksXG4gICAgICAgIG5ldyBOYW1lRGV2aWNlR3JpZENvbHVtbih7XG4gICAgICAgICAgc29ydE9yZGVyOiAnYXNjJyxcbiAgICAgICAgICBmaWx0ZXI6IHsgZXh0ZXJuYWxGaWx0ZXJRdWVyeTogeyBuYW1lczogW3RoaXMuZmlsdGVyaW5nTmFtZV0gfSB9XG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgTW9kZWxEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICAgIG5ldyBTZXJpYWxOdW1iZXJEZXZpY2VHcmlkQ29sdW1uKHsgdmlzaWJsZTogZmFsc2UgfSksXG4gICAgICAgIG5ldyBSZWdpc3RyYXRpb25EYXRlRGV2aWNlR3JpZENvbHVtbih7IHZpc2libGU6IGZhbHNlIH0pLFxuICAgICAgICBuZXcgU3lzdGVtSWREZXZpY2VHcmlkQ29sdW1uKHsgdmlzaWJsZTogZmFsc2UgfSksXG4gICAgICAgIG5ldyBJbWVpRGV2aWNlR3JpZENvbHVtbih7IHZpc2libGU6IGZhbHNlIH0pLFxuICAgICAgICBuZXcgQWxhcm1zRGV2aWNlR3JpZENvbHVtbigpXG4gICAgICBdO1xuICAgIH1cbiAgICB0aGlzLnNlcnZlclNpZGVEYXRhQ2FsbGJhY2sgPSB0aGlzLm9uRGF0YVNvdXJjZU1vZGlmaWVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXRBY3Rpb25Db250cm9scygpO1xuICB9XG5cbiAgdHJhY2tCeU5hbWUoX2luZGV4LCBjb2x1bW46IERldmljZUdyaWRDb2x1bW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4ubmFtZTtcbiAgfVxuXG4gIGFzeW5jIG9uRGF0YVNvdXJjZU1vZGlmaWVyKFxuICAgIGRhdGFTb3VyY2VNb2RpZmllcjogRGF0YVNvdXJjZU1vZGlmaWVyXG4gICk6IFByb21pc2U8U2VydmVyU2lkZURhdGFSZXN1bHQ+IHtcbiAgICBsZXQgcmVzcG9uc2U7XG4gICAgaWYgKGRhdGFTb3VyY2VNb2RpZmllci5zZWFyY2hUZXh0KSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2goZGF0YVNvdXJjZU1vZGlmaWVyLnNlYXJjaFRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VhcmNoU2VydmljZS5nZXREYXRhKFxuICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIuY29sdW1ucyxcbiAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLnBhZ2luYXRpb24sXG4gICAgICAgIHVuZGVmaW5lZFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgeyByZXMsIGRhdGEsIHBhZ2luZyB9ID0gcmVzcG9uc2U7XG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlck9ubHlBc3NldHMoZGF0YSk7XG5cbiAgICBpZiAocGFnaW5nLmN1cnJlbnRQYWdlID09PSAxKSB7XG4gICAgICB0aGlzLnNpemVDb3VudCA9IDA7XG4gICAgfVxuICAgIHRoaXMuc2l6ZUNvdW50ICs9IGZpbHRlcmVkRGF0YS5sZW5ndGg7XG4gICAgdGhpcy5vbkNvbHVtbnNDaGFuZ2UuZW1pdChkYXRhU291cmNlTW9kaWZpZXIuY29sdW1ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVzLFxuICAgICAgZGF0YTogZmlsdGVyZWREYXRhLFxuICAgICAgcGFnaW5nLFxuICAgICAgZmlsdGVyZWRTaXplOiB0aGlzLnNpemVDb3VudCxcbiAgICAgIHNpemU6IHVuZGVmaW5lZFxuICAgIH07XG4gIH1cblxuICBzZXRBY3Rpb25Db250cm9scygpIHtcbiAgICBjb25zdCBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gW107XG4gICAgY29uc3QgZGVsZXRlQWN0aW9uOiBBY3Rpb25Db250cm9sID0ge1xuICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRGVsZXRlLFxuICAgICAgY2FsbGJhY2s6IChhc3NldDogUm93KSA9PiB0aGlzLm9uRGVsZXRlQXNzZXQoYXNzZXQgYXMgSU1hbmFnZWRPYmplY3QsIHRoaXMucGFyZW50R3JvdXApXG4gICAgfTtcbiAgICBhY3Rpb25Db250cm9scy5wdXNoKGRlbGV0ZUFjdGlvbik7XG4gICAgaWYgKCF0aGlzLmFjdGlvbkNvbnRyb2xzKSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbnRyb2xzID0gYWN0aW9uQ29udHJvbHM7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlRmlsdGVyaW5nKFxuICAgIGNvbHVtbk5hbWVzOiBzdHJpbmdbXSxcbiAgICBhY3Rpb246IHtcbiAgICAgIHR5cGU6IEZpbHRlcmluZ0FjdGlvblR5cGU7XG4gICAgICBwYXlsb2FkPzogeyBmaWx0ZXJpbmdNb2RpZmllcjogRmlsdGVyaW5nTW9kaWZpZXIgfTtcbiAgICB9XG4gICkge1xuICAgIGNvbnN0IHsgdHlwZSB9ID0gYWN0aW9uO1xuICAgIGlmICh0eXBlID09PSBGaWx0ZXJpbmdBY3Rpb25UeXBlLlJlc2V0RmlsdGVyKSB7XG4gICAgICB0aGlzLmRhdGFHcmlkLmNsZWFyRmlsdGVycygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGFHcmlkLnVwZGF0ZUZpbHRlcmluZyhjb2x1bW5OYW1lcywgYWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBjb25maWdDaGFuZ2UoY29uZmlnKSB7XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNhdmVDb25maWcoY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgb25EZWxldGVBc3NldChhc3NldCwgcGFyZW50UmVmKSB7XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICAgICAgc2hvd1dpdGhEZXZpY2VVc2VyQ2hlY2tib3g6IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2Uuc2hvdWxkU2hvd1dpdGhEZXZpY2VVc2VyQ2hlY2tib3goYXNzZXQpLFxuICAgICAgYXNzZXQsXG4gICAgICBzaG93V2l0aENhc2NhZGVDaGVja2JveDpcbiAgICAgICAgIXRoaXMuc21hcnRHcm91cHNTZXJ2aWNlLmlzU21hcnRHcm91cChhc3NldCkgJiZcbiAgICAgICAgIXRoaXMuc21hcnRHcm91cHNTZXJ2aWNlLmlzU21hcnRHcm91cFYyKGFzc2V0KVxuICAgIH07XG5cbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhEZWxldGVBc3NldHNNb2RhbENvbXBvbmVudCwgeyBpbml0aWFsU3RhdGUgfSk7XG5cbiAgICBtb2RhbFJlZi5jb250ZW50LmNsb3NlU3ViamVjdC5zdWJzY3JpYmUoYXN5bmMgKHJlc3VsdDogRGVsZXRlTW9kYWxDaGVja2JveGVzKSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuZGVsZXRlQXNzZXQoYXNzZXQsIHBhcmVudFJlZiwgcmVzdWx0KTtcbiAgICAgICAgdGhpcy5yZWZyZXNoLmVtaXQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -13,6 +13,14 @@ var SearchResultsComponent = /** @class */ (function () {
13
13
  this.searchTerm = '';
14
14
  this.unsubscribe$ = new Subject();
15
15
  }
16
+ SearchResultsComponent.prototype.ngOnInit = function () {
17
+ var _this = this;
18
+ this.route.queryParams.subscribe(function (params) {
19
+ if (params.filter) {
20
+ _this.filteringName = params.filter;
21
+ }
22
+ });
23
+ };
16
24
  SearchResultsComponent.prototype.ngAfterViewInit = function () {
17
25
  var _this = this;
18
26
  this.route.queryParams
@@ -62,6 +70,9 @@ var SearchResultsComponent = /** @class */ (function () {
62
70
  if (!this.shouldFilter(filter) && searchTerm) {
63
71
  this.search(searchTerm);
64
72
  }
73
+ else if (this.shouldFilter(filter) && searchTerm) {
74
+ this.search(searchTerm);
75
+ }
65
76
  };
66
77
  SearchResultsComponent.prototype.shouldFilter = function (filter) {
67
78
  if (!filter) {
@@ -95,10 +106,10 @@ var SearchResultsComponent = /** @class */ (function () {
95
106
  SearchResultsComponent = tslib_1.__decorate([
96
107
  Component({
97
108
  selector: 'c8y-search-results',
98
- template: "<c8y-title>\n <span translate class=\"p-r-4\">Search</span>\n <small\n ngNonBindable\n translate\n *ngIf=\"searchTerm\"\n [translateParams]=\"{\n searchHint: searchTerm\n }\"\n >searching \"{{ searchHint }}\"</small\n >\n <small\n ngNonBindable\n translate\n *ngIf=\"filter\"\n [translateParams]=\"{\n filterHint: filter\n }\"\n >filtered by \"{{ filterHint }}\"</small\n >\n</c8y-title>\n\n<c8y-search-grid [searchText]=\"searchTerm\"></c8y-search-grid>\n"
109
+ template: "<c8y-title>\n <span translate class=\"p-r-4\">Search</span>\n <small\n ngNonBindable\n translate\n *ngIf=\"searchTerm\"\n [translateParams]=\"{\n searchHint: searchTerm\n }\"\n >searching \"{{ searchHint }}\"</small\n >\n <small\n ngNonBindable\n translate\n *ngIf=\"filter\"\n [translateParams]=\"{\n filterHint: filter\n }\"\n >filtered by \"{{ filterHint }}\"</small\n >\n</c8y-title>\n\n<c8y-search-grid [searchText]=\"searchTerm\" [filteringName]=\"filteringName\"></c8y-search-grid>\n"
99
110
  })
100
111
  ], SearchResultsComponent);
101
112
  return SearchResultsComponent;
102
113
  }());
103
114
  export { SearchResultsComponent };
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy9zZWFyY2gvIiwic291cmNlcyI6WyJzZWFyY2gtcmVzdWx0cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBTWhHO0lBUUUsZ0NBQW9CLEtBQXFCLEVBQVUsS0FBbUI7UUFBbEQsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBUHRFLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDcEIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUloQixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7SUFFK0IsQ0FBQztJQUUxRSxnREFBZSxHQUFmO1FBQUEsaUJBa0JDO1FBakJDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVzthQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNsQyxTQUFTLENBQUMsVUFBQyxFQUFrQjtnQkFBaEIsa0JBQU0sRUFBRSxrQkFBTTtZQUFPLE9BQUEsS0FBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFBeEMsQ0FBd0MsQ0FBQyxDQUFDO1FBRS9F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QUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7Z0JBOUUwQixjQUFjO2dCQUFpQixZQUFZOztJQUp0RTtRQURDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzs4REFDakI7SUFKckIsc0JBQXNCO1FBSmxDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsdWdCQUE4QztTQUMvQyxDQUFDO09BQ1csc0JBQXNCLENBdUZsQztJQUFELDZCQUFDO0NBQUEsQUF2RkQsSUF1RkM7U0F2Rlksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTZWFyY2hHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2gtZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsdGVyaW5nQWN0aW9uVHlwZSwgQWxlcnRTZXJ2aWNlLCBTdGF0dXMsIGdldHRleHQsIEFsZXJ0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zZWFyY2gtcmVzdWx0cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtcmVzdWx0cy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoUmVzdWx0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGZpbHRlcjogc3RyaW5nID0gJyc7XG4gIHNlYXJjaFRlcm06IHN0cmluZyA9ICcnO1xuICBAVmlld0NoaWxkKFNlYXJjaEdyaWRDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHNlYXJjaEdyaWQ6IFNlYXJjaEdyaWRDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgYWxlcnQ6IEFsZXJ0U2VydmljZSkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtc1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHsgZmlsdGVyLCBzZWFyY2ggfSkgPT4gdGhpcy5vblF1ZXJ5UGFyYW1zQ2hhbmdlKGZpbHRlciwgc2VhcmNoKSk7XG5cbiAgICB0aGlzLnNlYXJjaEdyaWQuZGF0YUdyaWQuc2VhcmNoVGV4dCQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUodGV4dCA9PiB7XG4gICAgICBpZiAodGV4dCkge1xuICAgICAgICB0aGlzLnJlc2V0RmlsdGVyKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNlYXJjaFRlcm0gPSB0ZXh0O1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZWFyY2hHcmlkLmRhdGFHcmlkLm9uRmlsdGVyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlc2V0U2VhcmNoKCkpO1xuXG4gICAgLy8gdG8gcHJldmVudCByYWNlIGNvbmRpdGlvbiAoc2VhcmNoIGVtcHR5KTpcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnNlYXJjaCB8fCAnJztcbiAgfVxuXG4gIHJlc2V0U2VhcmNoKCkge1xuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuICAgIGlmICh0aGlzLnNlYXJjaFRlcm0pIHtcbiAgICAgIHRoaXMuYWxlcnQuYWRkKHtcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnU2VhcmNoIHJlc2V0LiBGdWxsIHRleHQgc2VhcmNoIGRvZXMgbm90IHN1cHBvcnQgZmlsdGVyaW5nLicpLFxuICAgICAgICB0eXBlOiBTdGF0dXMuV0FSTklORyxcbiAgICAgICAgdGltZW91dDogNTAwMFxuICAgICAgfSBhcyBBbGVydCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRGaWx0ZXIoKSB7XG4gICAgdGhpcy5maWx0ZXIgPSAnJztcbiAgICBpZiAodGhpcy5zZWFyY2hHcmlkLmRhdGFHcmlkLmZpbHRlcmluZ0FwcGxpZWQpIHtcbiAgICAgIHRoaXMuYWxlcnQuYWRkKHtcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnRmlsdGVyIHJlc2V0LiBGdWxsIHRleHQgc2VhcmNoIGRvZXMgbm90IHN1cHBvcnQgZmlsdGVyaW5nLicpLFxuICAgICAgICB0eXBlOiBTdGF0dXMuV0FSTklORyxcbiAgICAgICAgdGltZW91dDogNTAwMFxuICAgICAgfSBhcyBBbGVydCk7XG4gICAgICB0aGlzLnNlYXJjaEdyaWQuZGF0YUdyaWQuY2xlYXJGaWx0ZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIG9uUXVlcnlQYXJhbXNDaGFuZ2UoZmlsdGVyOiBzdHJpbmcsIHNlYXJjaFRlcm06IHN0cmluZykge1xuICAgIGlmICghdGhpcy5zaG91bGRGaWx0ZXIoZmlsdGVyKSAmJiBzZWFyY2hUZXJtKSB7XG4gICAgICB0aGlzLnNlYXJjaChzZWFyY2hUZXJtKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3VsZEZpbHRlcihmaWx0ZXIpIHtcbiAgICBpZiAoIWZpbHRlcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnJlc2V0U2VhcmNoKCk7XG4gICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXIgfHwgJyc7XG4gICAgdGhpcy5zZWFyY2hHcmlkLnVwZGF0ZUZpbHRlcmluZyhbJ25hbWUnXSwge1xuICAgICAgdHlwZTogRmlsdGVyaW5nQWN0aW9uVHlwZS5BcHBseUZpbHRlcixcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgZmlsdGVyaW5nTW9kaWZpZXI6IHtcbiAgICAgICAgICBleHRlcm5hbEZpbHRlclF1ZXJ5OiB7XG4gICAgICAgICAgICBuYW1lczogW3RoaXMuZmlsdGVyXVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2goc2VhcmNoVGVybTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWFyY2hUZXJtID0gc2VhcmNoVGVybSB8fCAnJztcbiAgICB0aGlzLnNlYXJjaEdyaWQuZGF0YUdyaWQuc2VhcmNoVGV4dCQubmV4dCh0aGlzLnNlYXJjaFRlcm0pO1xuICB9XG59XG4iXX0=
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy9zZWFyY2gvIiwic291cmNlcyI6WyJzZWFyY2gtcmVzdWx0cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFNaEc7SUFRRSxnQ0FBb0IsS0FBcUIsRUFBVSxLQUFtQjtRQUFsRCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWM7UUFQdEUsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNwQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBSWhCLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUUrQixDQUFDO0lBRTFFLHlDQUFRLEdBQVI7UUFBQSxpQkFNQztRQUxDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxVQUFBLE1BQU07WUFDckMsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUNqQixLQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7YUFDcEM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnREFBZSxHQUFmO1FBQUEsaUJBa0JDO1FBakJDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVzthQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNsQyxTQUFTLENBQUMsVUFBQyxFQUFrQjtnQkFBaEIsa0JBQU0sRUFBRSxrQkFBTTtZQUFPLE9BQUEsS0FBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFBeEMsQ0FBd0MsQ0FBQyxDQUFDO1FBRS9FLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFBLElBQUk7WUFDcEYsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsS0FBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1lBQ0QsS0FBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRO2FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLFdBQVcsRUFBRSxFQUFsQixDQUFrQixDQUFDLENBQUM7UUFFdkMsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVELDRDQUFXLEdBQVg7UUFDRSxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7Z0JBQ2IsSUFBSSxFQUFFLE9BQU8sQ0FBQyw0REFBNEQsQ0FBQztnQkFDM0UsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPO2dCQUNwQixPQUFPLEVBQUUsSUFBSTthQUNMLENBQUMsQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELDRDQUFXLEdBQVg7UUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFO1lBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUNiLElBQUksRUFBRSxPQUFPLENBQUMsNERBQTRELENBQUM7Z0JBQzNFLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDcEIsT0FBTyxFQUFFLElBQUk7YUFDTCxDQUFDLENBQUM7WUFDWixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRCw0Q0FBVyxHQUFYO1FBQ0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxvREFBbUIsR0FBM0IsVUFBNEIsTUFBYyxFQUFFLFVBQWtCO1FBQzVELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRTtZQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3pCO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRTtZQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVPLDZDQUFZLEdBQXBCLFVBQXFCLE1BQU07UUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFdBQVc7WUFDckMsT0FBTyxFQUFFO2dCQUNQLGlCQUFpQixFQUFFO29CQUNqQixtQkFBbUIsRUFBRTt3QkFDbkIsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztxQkFDckI7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLHVDQUFNLEdBQWQsVUFBZSxVQUFrQjtRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7Z0JBeEYwQixjQUFjO2dCQUFpQixZQUFZOztJQUp0RTtRQURDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzs4REFDakI7SUFKckIsc0JBQXNCO1FBSmxDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIseWlCQUE4QztTQUMvQyxDQUFDO09BQ1csc0JBQXNCLENBaUdsQztJQUFELDZCQUFDO0NBQUEsQUFqR0QsSUFpR0M7U0FqR1ksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2VhcmNoR3JpZENvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoLWdyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlcmluZ0FjdGlvblR5cGUsIEFsZXJ0U2VydmljZSwgU3RhdHVzLCBnZXR0ZXh0LCBBbGVydCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktc2VhcmNoLXJlc3VsdHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXJlc3VsdHMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFJlc3VsdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBmaWx0ZXI6IHN0cmluZyA9ICcnO1xuICBzZWFyY2hUZXJtOiBzdHJpbmcgPSAnJztcbiAgQFZpZXdDaGlsZChTZWFyY2hHcmlkQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBzZWFyY2hHcmlkOiBTZWFyY2hHcmlkQ29tcG9uZW50O1xuICBmaWx0ZXJpbmdOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIGFsZXJ0OiBBbGVydFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIGlmIChwYXJhbXMuZmlsdGVyKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyaW5nTmFtZSA9IHBhcmFtcy5maWx0ZXI7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtc1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHsgZmlsdGVyLCBzZWFyY2ggfSkgPT4gdGhpcy5vblF1ZXJ5UGFyYW1zQ2hhbmdlKGZpbHRlciwgc2VhcmNoKSk7XG5cbiAgICB0aGlzLnNlYXJjaEdyaWQuZGF0YUdyaWQuc2VhcmNoVGV4dCQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUodGV4dCA9PiB7XG4gICAgICBpZiAodGV4dCkge1xuICAgICAgICB0aGlzLnJlc2V0RmlsdGVyKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNlYXJjaFRlcm0gPSB0ZXh0O1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZWFyY2hHcmlkLmRhdGFHcmlkLm9uRmlsdGVyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlc2V0U2VhcmNoKCkpO1xuXG4gICAgLy8gdG8gcHJldmVudCByYWNlIGNvbmRpdGlvbiAoc2VhcmNoIGVtcHR5KTpcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnNlYXJjaCB8fCAnJztcbiAgfVxuXG4gIHJlc2V0U2VhcmNoKCkge1xuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuICAgIGlmICh0aGlzLnNlYXJjaFRlcm0pIHtcbiAgICAgIHRoaXMuYWxlcnQuYWRkKHtcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnU2VhcmNoIHJlc2V0LiBGdWxsIHRleHQgc2VhcmNoIGRvZXMgbm90IHN1cHBvcnQgZmlsdGVyaW5nLicpLFxuICAgICAgICB0eXBlOiBTdGF0dXMuV0FSTklORyxcbiAgICAgICAgdGltZW91dDogNTAwMFxuICAgICAgfSBhcyBBbGVydCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRGaWx0ZXIoKSB7XG4gICAgdGhpcy5maWx0ZXIgPSAnJztcbiAgICBpZiAodGhpcy5zZWFyY2hHcmlkLmRhdGFHcmlkLmZpbHRlcmluZ0FwcGxpZWQpIHtcbiAgICAgIHRoaXMuYWxlcnQuYWRkKHtcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnRmlsdGVyIHJlc2V0LiBGdWxsIHRleHQgc2VhcmNoIGRvZXMgbm90IHN1cHBvcnQgZmlsdGVyaW5nLicpLFxuICAgICAgICB0eXBlOiBTdGF0dXMuV0FSTklORyxcbiAgICAgICAgdGltZW91dDogNTAwMFxuICAgICAgfSBhcyBBbGVydCk7XG4gICAgICB0aGlzLnNlYXJjaEdyaWQuZGF0YUdyaWQuY2xlYXJGaWx0ZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIG9uUXVlcnlQYXJhbXNDaGFuZ2UoZmlsdGVyOiBzdHJpbmcsIHNlYXJjaFRlcm06IHN0cmluZykge1xuICAgIGlmICghdGhpcy5zaG91bGRGaWx0ZXIoZmlsdGVyKSAmJiBzZWFyY2hUZXJtKSB7XG4gICAgICB0aGlzLnNlYXJjaChzZWFyY2hUZXJtKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2hvdWxkRmlsdGVyKGZpbHRlcikgJiYgc2VhcmNoVGVybSkge1xuICAgICAgdGhpcy5zZWFyY2goc2VhcmNoVGVybSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRGaWx0ZXIoZmlsdGVyKSB7XG4gICAgaWYgKCFmaWx0ZXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5yZXNldFNlYXJjaCgpO1xuICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyIHx8ICcnO1xuICAgIHRoaXMuc2VhcmNoR3JpZC51cGRhdGVGaWx0ZXJpbmcoWyduYW1lJ10sIHtcbiAgICAgIHR5cGU6IEZpbHRlcmluZ0FjdGlvblR5cGUuQXBwbHlGaWx0ZXIsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGZpbHRlcmluZ01vZGlmaWVyOiB7XG4gICAgICAgICAgZXh0ZXJuYWxGaWx0ZXJRdWVyeToge1xuICAgICAgICAgICAgbmFtZXM6IFt0aGlzLmZpbHRlcl1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc2VhcmNoKHNlYXJjaFRlcm06IHN0cmluZykge1xuICAgIHRoaXMuc2VhcmNoVGVybSA9IHNlYXJjaFRlcm0gfHwgJyc7XG4gICAgdGhpcy5zZWFyY2hHcmlkLmRhdGFHcmlkLnNlYXJjaFRleHQkLm5leHQodGhpcy5zZWFyY2hUZXJtKTtcbiAgfVxufVxuIl19
@@ -104,4 +104,4 @@ var SearchService = /** @class */ (function (_super) {
104
104
  return SearchService;
105
105
  }(SubAssetsService));
106
106
  export { SearchService };
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYzh5L25neC1jb21wb25lbnRzL3NlYXJjaC8iLCJzb3VyY2VzIjpbInNlYXJjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHekQ7SUFBbUMseUNBQWdCO0lBRG5EO1FBQUEscUVBbUdDO1FBakdXLDZCQUF1QixHQUFHLG9CQUFvQixDQUFDO1FBQy9DLHVCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUNoQiw2QkFBdUIsR0FBRztZQUN6QyxlQUFlO1lBQ2YsWUFBWTtZQUNaLFNBQVM7WUFDVCx5QkFBeUI7WUFDekIsY0FBYztZQUNkLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGtEQUFrRDtZQUNsRCxxREFBcUQ7WUFDckQsY0FBYztZQUNkLGtCQUFrQjtZQUNsQixpQ0FBaUM7U0FDbEMsQ0FBQztRQUNlLHlCQUFtQixHQUFHO1lBQ3JDLHVCQUF1QjtZQUN2QixjQUFjO1lBQ2QsZUFBZTtZQUNmLGNBQWM7WUFDZCx1QkFBdUI7WUFDdkIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixzQkFBc0I7WUFDdEIsd0JBQXdCO1lBQ3hCLGdCQUFnQjtZQUNoQix5QkFBeUI7WUFDekIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIseUJBQXlCO1lBQ3pCLDRCQUE0QjtZQUM1QixjQUFjO1NBQ2YsQ0FBQztRQUNlLDBCQUFvQixHQUFHLGNBQWMsQ0FBQzs7SUEwRHpELENBQUM7SUF4REM7Ozs7T0FJRztJQUNILHdDQUFnQixHQUFoQixVQUFpQixJQUFzQjtRQUF2QyxpQkFFQztRQURDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsQ0FBQyxpQkFBaUIsSUFBSSxLQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUE1QyxDQUE0QyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELG9EQUE0QixHQUE1QixVQUE2QixPQUFPLEVBQUUsVUFBVTtRQUM5QyxJQUFNLFNBQVMsR0FBRztZQUNoQixRQUFRLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxFQUFFO2FBQzVDO1NBQ0YsQ0FBQztRQUNGLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pGLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDhCQUFNLEdBQU4sVUFBTyxJQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUNoQyxJQUFJLEVBQUUsSUFBSTtZQUNWLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ2hDLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxvQ0FBWSxHQUFwQixVQUFxQixFQUFFO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sbUNBQVcsR0FBbkIsVUFBb0IsRUFBRTtRQUNwQixJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxzREFBOEIsR0FBdEMsVUFBdUMsRUFBRTtRQUN2QyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVPLDRDQUFvQixHQUE1QixVQUE2QixFQUFFO1FBQzdCLElBQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQXJCLENBQXFCLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU8sZ0RBQXdCLEdBQWhDLFVBQWlDLEVBQUU7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQW5CLENBQW1CLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBakdVLGFBQWE7UUFEekIsVUFBVSxFQUFFO09BQ0EsYUFBYSxDQWtHekI7SUFBRCxvQkFBQztDQUFBLEFBbEdELENBQW1DLGdCQUFnQixHQWtHbEQ7U0FsR1ksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbiB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgU3ViQXNzZXRzU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvc3ViLWFzc2V0cyc7XG5pbXBvcnQgeyBmaW5kLCBnZXQsIGlzVW5kZWZpbmVkLCBzb21lIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlYXJjaFNlcnZpY2UgZXh0ZW5kcyBTdWJBc3NldHNTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIEdSSURfQ09ORklHX1NUT1JBR0VfS0VZID0gJ3NlYXJjaC1ncmlkLWNvbmZpZyc7XG4gIHByb3RlY3RlZCBERUZBVUxUX1BBR0VfU0laRSA9IDUwO1xuICBwcml2YXRlIHJlYWRvbmx5IEZSQUdNRU5UU19GT1JfTk9fREVWSUNFID0gW1xuICAgICdjOHlfRGFzaGJvYXJkJyxcbiAgICAnYzh5X1JlcG9ydCcsXG4gICAgJ2M4eV9LcGknLFxuICAgICdjOHlfRXhwb3J0Q29uZmlndXJhdGlvbicsXG4gICAgJ2M4eV9Jc0JpbmFyeScsXG4gICAgJ2M4eV9Ob0RldmljZScsXG4gICAgJ2M4eV9Jc0RldmljZUdyb3VwJyxcbiAgICAnYzh5X0dyb3VwJyxcbiAgICAnY29tX2N1bXVsb2NpdHlfbW9kZWxfc21hcnRyZXN0X1NtYXJ0UmVzdFRlbXBsYXRlJyxcbiAgICAnY29tX2N1bXVsb2NpdHlfbW9kZWxfZGV2aWNlc2ltdWxhdG9yX1NlbnNvclRlbXBsYXRlJyxcbiAgICAnX2F0dGFjaG1lbnRzJyxcbiAgICAnYzh5X0lzRGV2aWNlVHlwZScsXG4gICAgJ2M4eV9vYmplY3RtYXBwaW5nX09iamVjdE1hcHBpbmcnXG4gIF07XG4gIHByaXZhdGUgcmVhZG9ubHkgVFlQRVNfRk9SX05PX0RFVklDRSA9IFtcbiAgICAnYzh5X0NvbmZpZ3VyYXRpb25EdW1wJyxcbiAgICAnYzh5X0Zpcm13YXJlJyxcbiAgICAnYzh5X1NtYXJ0UnVsZScsXG4gICAgJ2M4eV9Tb2Z0d2FyZScsXG4gICAgJ2ltcGFjdF9vYmplY3RfbWFwcGluZycsXG4gICAgJ2M4eV9Vc2VyUHJlZmVyZW5jZScsXG4gICAgJ2M4eV9UZW5hbnRQb2xpY3knLFxuICAgICdjOHlfUHJpdmF0ZVNtYXJ0UnVsZScsXG4gICAgJ2M4eV9TbWFydFJlc3QyVGVtcGxhdGUnLFxuICAgICdjOHlfSnNvblNjaGVtYScsXG4gICAgJ2M4eV9EZXZpY2VTaGVsbFRlbXBsYXRlJyxcbiAgICAnYzh5X0RlbW9TdGF0dXMnLFxuICAgICdjOHlfRGF0YUJyb2tlcicsXG4gICAgJ2M4eV9BcHBsaWNhdGlvbl8nLFxuICAgICdicmFuZGluZ1ZhcmlhYmxlcycsXG4gICAgJ2M4eV9EZXZpY2VTaW11bGF0b3InLFxuICAgICdjOHlfQ2VydGlmaWNhdGVNZXRhZGF0YScsXG4gICAgJ2x3bTJtX3Bvc3RfcmVnaXN0cmF0aW9uJyxcbiAgICAnYzh5X21pY3Jvc2VydmljZV9tYW5pZmVzdF8nLFxuICAgICdjOHlfQ2VwQWdlbnQnXG4gIF07XG4gIHByaXZhdGUgcmVhZG9ubHkgREVWSUNFX0ZSQUdNRU5UX1RZUEUgPSAnYzh5X0lzRGV2aWNlJztcblxuICAvKipcbiAgICogV2lsbCByZXR1cm4gb25seSB2YWxpZCBhc3NldHMgKGdyb3VwcyBhbmQgZGV2aWNlcykgYW5kIGZpbHRlciBvdXRcbiAgICogbm9uZSB1c2VmdWwgaW52ZW50b3JpZXMgKGUuZy4gYzh5X0pzb25TY2hlbWEpLlxuICAgKiBAcGFyYW0gZGF0YSBBbGwgbWFuYWdlZCBvYmplY3RzIHRoYXQgc2hvdWxkIGJlIGZpbHRlcmVkLlxuICAgKi9cbiAgZmlsdGVyT25seUFzc2V0cyhkYXRhOiBJTWFuYWdlZE9iamVjdFtdKSB7XG4gICAgcmV0dXJuIGRhdGEuZmlsdGVyKG1vID0+IG1vLmM4eV9Jc0RldmljZUdyb3VwIHx8IHRoaXMuaXNBbnlEZXZpY2UobW8pKTtcbiAgfVxuXG4gIGJ1aWxkQ29tYmluZWRSb290UXVlcnlGaWx0ZXIoY29sdW1ucywgcGFnaW5hdGlvbikge1xuICAgIGNvbnN0IHJvb3RRdWVyeSA9IHtcbiAgICAgIF9fZmlsdGVyOiB7XG4gICAgICAgIF9fYW5kOiB7IF9fbm90OiB7IF9faGFzOiBgYzh5X0lzQmluYXJ5YCB9IH1cbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHVzZXJRdWVyeSA9IHRoaXMuZ2V0UXVlcnlPYmooY29sdW1ucywgcGFnaW5hdGlvbik7XG4gICAgY29uc3QgcXVlcnlQYXJ0ID0gdGhpcy5xdWVyaWVzVXRpbC5hZGRPcmRlcmJ5cyhyb290UXVlcnksIHVzZXJRdWVyeS5fX29yZGVyYnksICdhcHBlbmQnKTtcbiAgICBjb25zdCBmdWxsUXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmFkZEFuZEZpbHRlcihxdWVyeVBhcnQsIHVzZXJRdWVyeS5fX2ZpbHRlcik7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllc1V0aWwuYnVpbGRRdWVyeShmdWxsUXVlcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZ1bGwtdGV4dCBzZWFyY2ggcmVzdWx0cy5cbiAgICpcbiAgICogQHBhcmFtIHRlcm0gVGhlIHNlYXJjaCB0ZXJtLlxuICAgKi9cbiAgc2VhcmNoKHRlcm06IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeVNlcnZpY2UubGlzdCh7XG4gICAgICB0ZXh0OiB0ZXJtLFxuICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWUsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5ERUZBVUxUX1BBR0VfU0laRSxcbiAgICAgIHdpdGhDaGlsZHJlbjogZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNSb290RGV2aWNlKG1vKSB7XG4gICAgcmV0dXJuICEhbW9bdGhpcy5ERVZJQ0VfRlJBR01FTlRfVFlQRV07XG4gIH1cblxuICBwcml2YXRlIGlzQW55RGV2aWNlKG1vKSB7XG4gICAgY29uc3QgaXNEZXZpY2UgPSB0aGlzLmlzUm9vdERldmljZShtbykgfHwgIXRoaXMuaGFzRnJhZ21lbnRPclR5cGVGcm9tQmxhY2tsaXN0KG1vKTtcbiAgICByZXR1cm4gaXNEZXZpY2U7XG4gIH1cblxuICBwcml2YXRlIGhhc0ZyYWdtZW50T3JUeXBlRnJvbUJsYWNrbGlzdChtbykge1xuICAgIHJldHVybiB0aGlzLmhhc1R5cGVGcm9tQmxhY2tsaXN0KG1vKSB8fCB0aGlzLmhhc0ZyYWdtZW50RnJvbUJsYWNrbGlzdChtbyk7XG4gIH1cblxuICBwcml2YXRlIGhhc1R5cGVGcm9tQmxhY2tsaXN0KG1vKSB7XG4gICAgY29uc3QgbW9UeXBlID0gZ2V0KG1vLCAndHlwZScsICcnKTtcbiAgICByZXR1cm4gc29tZSh0aGlzLlRZUEVTX0ZPUl9OT19ERVZJQ0UsIHR5cGUgPT4gbW9UeXBlLmluY2x1ZGVzKHR5cGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzRnJhZ21lbnRGcm9tQmxhY2tsaXN0KG1vKSB7XG4gICAgcmV0dXJuIGZpbmQodGhpcy5GUkFHTUVOVFNfRk9SX05PX0RFVklDRSwgZiA9PiAhaXNVbmRlZmluZWQobW9bZl0pKTtcbiAgfVxufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYzh5L25neC1jb21wb25lbnRzL3NlYXJjaC8iLCJzb3VyY2VzIjpbInNlYXJjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHekQ7SUFBbUMseUNBQWdCO0lBRG5EO1FBQUEscUVBbUdDO1FBakdXLDZCQUF1QixHQUFHLG9CQUFvQixDQUFDO1FBQy9DLHVCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUNoQiw2QkFBdUIsR0FBRztZQUN6QyxlQUFlO1lBQ2YsWUFBWTtZQUNaLFNBQVM7WUFDVCx5QkFBeUI7WUFDekIsY0FBYztZQUNkLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGtEQUFrRDtZQUNsRCxxREFBcUQ7WUFDckQsY0FBYztZQUNkLGtCQUFrQjtZQUNsQixpQ0FBaUM7U0FDbEMsQ0FBQztRQUNlLHlCQUFtQixHQUFHO1lBQ3JDLHVCQUF1QjtZQUN2QixjQUFjO1lBQ2QsZUFBZTtZQUNmLGNBQWM7WUFDZCx1QkFBdUI7WUFDdkIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixzQkFBc0I7WUFDdEIsd0JBQXdCO1lBQ3hCLGdCQUFnQjtZQUNoQix5QkFBeUI7WUFDekIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIseUJBQXlCO1lBQ3pCLDRCQUE0QjtZQUM1QixjQUFjO1NBQ2YsQ0FBQztRQUNlLDBCQUFvQixHQUFHLGNBQWMsQ0FBQzs7SUEwRHpELENBQUM7SUF4REM7Ozs7T0FJRztJQUNILHdDQUFnQixHQUFoQixVQUFpQixJQUFzQjtRQUF2QyxpQkFFQztRQURDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsQ0FBQyxpQkFBaUIsSUFBSSxLQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUE1QyxDQUE0QyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELG9EQUE0QixHQUE1QixVQUE2QixPQUFPLEVBQUUsVUFBVTtRQUM5QyxJQUFNLFNBQVMsR0FBRztZQUNoQixRQUFRLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxFQUFFO2FBQzVDO1NBQ0YsQ0FBQztRQUNGLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pGLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDhCQUFNLEdBQU4sVUFBTyxJQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUNoQyxJQUFJLEVBQUUsSUFBSTtZQUNWLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ2hDLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxvQ0FBWSxHQUFwQixVQUFxQixFQUFFO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sbUNBQVcsR0FBbkIsVUFBb0IsRUFBRTtRQUNwQixJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxzREFBOEIsR0FBdEMsVUFBdUMsRUFBRTtRQUN2QyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVPLDRDQUFvQixHQUE1QixVQUE2QixFQUFFO1FBQzdCLElBQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQXJCLENBQXFCLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU8sZ0RBQXdCLEdBQWhDLFVBQWlDLEVBQUU7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQW5CLENBQW1CLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBakdVLGFBQWE7UUFEekIsVUFBVSxFQUFFO09BQ0EsYUFBYSxDQWtHekI7SUFBRCxvQkFBQztDQUFBLEFBbEdELENBQW1DLGdCQUFnQixHQWtHbEQ7U0FsR1ksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgU3ViQXNzZXRzU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvc3ViLWFzc2V0cyc7XG5pbXBvcnQgeyBmaW5kLCBnZXQsIGlzVW5kZWZpbmVkLCBzb21lIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlYXJjaFNlcnZpY2UgZXh0ZW5kcyBTdWJBc3NldHNTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIEdSSURfQ09ORklHX1NUT1JBR0VfS0VZID0gJ3NlYXJjaC1ncmlkLWNvbmZpZyc7XG4gIHByb3RlY3RlZCBERUZBVUxUX1BBR0VfU0laRSA9IDUwO1xuICBwcml2YXRlIHJlYWRvbmx5IEZSQUdNRU5UU19GT1JfTk9fREVWSUNFID0gW1xuICAgICdjOHlfRGFzaGJvYXJkJyxcbiAgICAnYzh5X1JlcG9ydCcsXG4gICAgJ2M4eV9LcGknLFxuICAgICdjOHlfRXhwb3J0Q29uZmlndXJhdGlvbicsXG4gICAgJ2M4eV9Jc0JpbmFyeScsXG4gICAgJ2M4eV9Ob0RldmljZScsXG4gICAgJ2M4eV9Jc0RldmljZUdyb3VwJyxcbiAgICAnYzh5X0dyb3VwJyxcbiAgICAnY29tX2N1bXVsb2NpdHlfbW9kZWxfc21hcnRyZXN0X1NtYXJ0UmVzdFRlbXBsYXRlJyxcbiAgICAnY29tX2N1bXVsb2NpdHlfbW9kZWxfZGV2aWNlc2ltdWxhdG9yX1NlbnNvclRlbXBsYXRlJyxcbiAgICAnX2F0dGFjaG1lbnRzJyxcbiAgICAnYzh5X0lzRGV2aWNlVHlwZScsXG4gICAgJ2M4eV9vYmplY3RtYXBwaW5nX09iamVjdE1hcHBpbmcnXG4gIF07XG4gIHByaXZhdGUgcmVhZG9ubHkgVFlQRVNfRk9SX05PX0RFVklDRSA9IFtcbiAgICAnYzh5X0NvbmZpZ3VyYXRpb25EdW1wJyxcbiAgICAnYzh5X0Zpcm13YXJlJyxcbiAgICAnYzh5X1NtYXJ0UnVsZScsXG4gICAgJ2M4eV9Tb2Z0d2FyZScsXG4gICAgJ2ltcGFjdF9vYmplY3RfbWFwcGluZycsXG4gICAgJ2M4eV9Vc2VyUHJlZmVyZW5jZScsXG4gICAgJ2M4eV9UZW5hbnRQb2xpY3knLFxuICAgICdjOHlfUHJpdmF0ZVNtYXJ0UnVsZScsXG4gICAgJ2M4eV9TbWFydFJlc3QyVGVtcGxhdGUnLFxuICAgICdjOHlfSnNvblNjaGVtYScsXG4gICAgJ2M4eV9EZXZpY2VTaGVsbFRlbXBsYXRlJyxcbiAgICAnYzh5X0RlbW9TdGF0dXMnLFxuICAgICdjOHlfRGF0YUJyb2tlcicsXG4gICAgJ2M4eV9BcHBsaWNhdGlvbl8nLFxuICAgICdicmFuZGluZ1ZhcmlhYmxlcycsXG4gICAgJ2M4eV9EZXZpY2VTaW11bGF0b3InLFxuICAgICdjOHlfQ2VydGlmaWNhdGVNZXRhZGF0YScsXG4gICAgJ2x3bTJtX3Bvc3RfcmVnaXN0cmF0aW9uJyxcbiAgICAnYzh5X21pY3Jvc2VydmljZV9tYW5pZmVzdF8nLFxuICAgICdjOHlfQ2VwQWdlbnQnXG4gIF07XG4gIHByaXZhdGUgcmVhZG9ubHkgREVWSUNFX0ZSQUdNRU5UX1RZUEUgPSAnYzh5X0lzRGV2aWNlJztcblxuICAvKipcbiAgICogV2lsbCByZXR1cm4gb25seSB2YWxpZCBhc3NldHMgKGdyb3VwcyBhbmQgZGV2aWNlcykgYW5kIGZpbHRlciBvdXRcbiAgICogbm9uZSB1c2VmdWwgaW52ZW50b3JpZXMgKGUuZy4gYzh5X0pzb25TY2hlbWEpLlxuICAgKiBAcGFyYW0gZGF0YSBBbGwgbWFuYWdlZCBvYmplY3RzIHRoYXQgc2hvdWxkIGJlIGZpbHRlcmVkLlxuICAgKi9cbiAgZmlsdGVyT25seUFzc2V0cyhkYXRhOiBJTWFuYWdlZE9iamVjdFtdKSB7XG4gICAgcmV0dXJuIGRhdGEuZmlsdGVyKG1vID0+IG1vLmM4eV9Jc0RldmljZUdyb3VwIHx8IHRoaXMuaXNBbnlEZXZpY2UobW8pKTtcbiAgfVxuXG4gIGJ1aWxkQ29tYmluZWRSb290UXVlcnlGaWx0ZXIoY29sdW1ucywgcGFnaW5hdGlvbikge1xuICAgIGNvbnN0IHJvb3RRdWVyeSA9IHtcbiAgICAgIF9fZmlsdGVyOiB7XG4gICAgICAgIF9fYW5kOiB7IF9fbm90OiB7IF9faGFzOiBgYzh5X0lzQmluYXJ5YCB9IH1cbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHVzZXJRdWVyeSA9IHRoaXMuZ2V0UXVlcnlPYmooY29sdW1ucywgcGFnaW5hdGlvbik7XG4gICAgY29uc3QgcXVlcnlQYXJ0ID0gdGhpcy5xdWVyaWVzVXRpbC5hZGRPcmRlcmJ5cyhyb290UXVlcnksIHVzZXJRdWVyeS5fX29yZGVyYnksICdhcHBlbmQnKTtcbiAgICBjb25zdCBmdWxsUXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmFkZEFuZEZpbHRlcihxdWVyeVBhcnQsIHVzZXJRdWVyeS5fX2ZpbHRlcik7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllc1V0aWwuYnVpbGRRdWVyeShmdWxsUXVlcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZ1bGwtdGV4dCBzZWFyY2ggcmVzdWx0cy5cbiAgICpcbiAgICogQHBhcmFtIHRlcm0gVGhlIHNlYXJjaCB0ZXJtLlxuICAgKi9cbiAgc2VhcmNoKHRlcm06IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeVNlcnZpY2UubGlzdCh7XG4gICAgICB0ZXh0OiB0ZXJtLFxuICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWUsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5ERUZBVUxUX1BBR0VfU0laRSxcbiAgICAgIHdpdGhDaGlsZHJlbjogZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNSb290RGV2aWNlKG1vKSB7XG4gICAgcmV0dXJuICEhbW9bdGhpcy5ERVZJQ0VfRlJBR01FTlRfVFlQRV07XG4gIH1cblxuICBwcml2YXRlIGlzQW55RGV2aWNlKG1vKSB7XG4gICAgY29uc3QgaXNEZXZpY2UgPSB0aGlzLmlzUm9vdERldmljZShtbykgfHwgIXRoaXMuaGFzRnJhZ21lbnRPclR5cGVGcm9tQmxhY2tsaXN0KG1vKTtcbiAgICByZXR1cm4gaXNEZXZpY2U7XG4gIH1cblxuICBwcml2YXRlIGhhc0ZyYWdtZW50T3JUeXBlRnJvbUJsYWNrbGlzdChtbykge1xuICAgIHJldHVybiB0aGlzLmhhc1R5cGVGcm9tQmxhY2tsaXN0KG1vKSB8fCB0aGlzLmhhc0ZyYWdtZW50RnJvbUJsYWNrbGlzdChtbyk7XG4gIH1cblxuICBwcml2YXRlIGhhc1R5cGVGcm9tQmxhY2tsaXN0KG1vKSB7XG4gICAgY29uc3QgbW9UeXBlID0gZ2V0KG1vLCAndHlwZScsICcnKTtcbiAgICByZXR1cm4gc29tZSh0aGlzLlRZUEVTX0ZPUl9OT19ERVZJQ0UsIHR5cGUgPT4gbW9UeXBlLmluY2x1ZGVzKHR5cGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzRnJhZ21lbnRGcm9tQmxhY2tsaXN0KG1vKSB7XG4gICAgcmV0dXJuIGZpbmQodGhpcy5GUkFHTUVOVFNfRk9SX05PX0RFVklDRSwgZiA9PiAhaXNVbmRlZmluZWQobW9bZl0pKTtcbiAgfVxufVxuIl19
@@ -1,11 +1,11 @@
1
1
  import { __decorate, __awaiter } from 'tslib';
2
2
  import { Injectable, ViewChild, Component, EventEmitter, Input, Output, NgModule } from '@angular/core';
3
- import { SubAssetsService, DeleteAssetsModalComponent } from '@c8y/ngx-components/sub-assets';
3
+ import { SubAssetsService, AssetTypeGridColumn, DeleteAssetsModalComponent } from '@c8y/ngx-components/sub-assets';
4
4
  import { get, some, find, isUndefined } from 'lodash-es';
5
5
  import { Router, ActivatedRoute } from '@angular/router';
6
6
  import { InventoryService, SmartGroupsService } from '@c8y/client';
7
7
  import { TypeaheadComponent, gettext, FilteringActionType, DataGridComponent, Status, AlertService, CoreModule, HOOK_ONCE_ROUTE, HOOK_SEARCH } from '@c8y/ngx-components';
8
- import { DeviceGridService, DeviceGridModule } from '@c8y/ngx-components/device-grid';
8
+ import { DeviceGridService, NameDeviceGridColumn, ModelDeviceGridColumn, SerialNumberDeviceGridColumn, RegistrationDateDeviceGridColumn, SystemIdDeviceGridColumn, ImeiDeviceGridColumn, AlarmsDeviceGridColumn, DeviceGridModule } from '@c8y/ngx-components/device-grid';
9
9
  import { pipe, defer, merge, of, empty, Subject } from 'rxjs';
10
10
  import { map, tap, switchMap, takeUntil } from 'rxjs/operators';
11
11
  import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
@@ -255,7 +255,6 @@ let SearchGridComponent = class SearchGridComponent {
255
255
  this.selectable = false;
256
256
  this.onColumnsChange = new EventEmitter();
257
257
  this.searchText = '';
258
- this.columns = this.searchService.getDefaultColumns();
259
258
  this.pagination = this.searchService.getDefaultPagination();
260
259
  this.bulkActionControls = this.searchService.getDefaultBulkActionControls();
261
260
  this.refresh = new EventEmitter();
@@ -293,7 +292,25 @@ let SearchGridComponent = class SearchGridComponent {
293
292
  this.bulkActionControls = this.searchService.getDefaultBulkActionControls();
294
293
  }
295
294
  }
296
- ngAfterViewInit() {
295
+ ngOnInit() {
296
+ if (!this.filteringName) {
297
+ this.columns = this.searchService.getDefaultColumns();
298
+ }
299
+ else {
300
+ this.columns = [
301
+ new AssetTypeGridColumn({ sortOrder: 'desc' }),
302
+ new NameDeviceGridColumn({
303
+ sortOrder: 'asc',
304
+ filter: { externalFilterQuery: { names: [this.filteringName] } }
305
+ }),
306
+ new ModelDeviceGridColumn(),
307
+ new SerialNumberDeviceGridColumn({ visible: false }),
308
+ new RegistrationDateDeviceGridColumn({ visible: false }),
309
+ new SystemIdDeviceGridColumn({ visible: false }),
310
+ new ImeiDeviceGridColumn({ visible: false }),
311
+ new AlarmsDeviceGridColumn()
312
+ ];
313
+ }
297
314
  this.serverSideDataCallback = this.onDataSourceModifier.bind(this);
298
315
  this.setActionControls();
299
316
  }
@@ -400,6 +417,9 @@ __decorate([
400
417
  __decorate([
401
418
  Input()
402
419
  ], SearchGridComponent.prototype, "searchText", void 0);
420
+ __decorate([
421
+ Input()
422
+ ], SearchGridComponent.prototype, "filteringName", void 0);
403
423
  __decorate([
404
424
  ViewChild(DataGridComponent, { static: true })
405
425
  ], SearchGridComponent.prototype, "dataGrid", void 0);
@@ -418,6 +438,13 @@ let SearchResultsComponent = class SearchResultsComponent {
418
438
  this.searchTerm = '';
419
439
  this.unsubscribe$ = new Subject();
420
440
  }
441
+ ngOnInit() {
442
+ this.route.queryParams.subscribe(params => {
443
+ if (params.filter) {
444
+ this.filteringName = params.filter;
445
+ }
446
+ });
447
+ }
421
448
  ngAfterViewInit() {
422
449
  this.route.queryParams
423
450
  .pipe(takeUntil(this.unsubscribe$))
@@ -463,6 +490,9 @@ let SearchResultsComponent = class SearchResultsComponent {
463
490
  if (!this.shouldFilter(filter) && searchTerm) {
464
491
  this.search(searchTerm);
465
492
  }
493
+ else if (this.shouldFilter(filter) && searchTerm) {
494
+ this.search(searchTerm);
495
+ }
466
496
  }
467
497
  shouldFilter(filter) {
468
498
  if (!filter) {
@@ -497,7 +527,7 @@ __decorate([
497
527
  SearchResultsComponent = __decorate([
498
528
  Component({
499
529
  selector: 'c8y-search-results',
500
- template: "<c8y-title>\n <span translate class=\"p-r-4\">Search</span>\n <small\n ngNonBindable\n translate\n *ngIf=\"searchTerm\"\n [translateParams]=\"{\n searchHint: searchTerm\n }\"\n >searching \"{{ searchHint }}\"</small\n >\n <small\n ngNonBindable\n translate\n *ngIf=\"filter\"\n [translateParams]=\"{\n filterHint: filter\n }\"\n >filtered by \"{{ filterHint }}\"</small\n >\n</c8y-title>\n\n<c8y-search-grid [searchText]=\"searchTerm\"></c8y-search-grid>\n"
530
+ template: "<c8y-title>\n <span translate class=\"p-r-4\">Search</span>\n <small\n ngNonBindable\n translate\n *ngIf=\"searchTerm\"\n [translateParams]=\"{\n searchHint: searchTerm\n }\"\n >searching \"{{ searchHint }}\"</small\n >\n <small\n ngNonBindable\n translate\n *ngIf=\"filter\"\n [translateParams]=\"{\n filterHint: filter\n }\"\n >filtered by \"{{ filterHint }}\"</small\n >\n</c8y-title>\n\n<c8y-search-grid [searchText]=\"searchTerm\" [filteringName]=\"filteringName\"></c8y-search-grid>\n"
501
531
  })
502
532
  ], SearchResultsComponent);
503
533
 
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-search.js","sources":["ng://@c8y/ngx-components/search/search.service.ts","ng://@c8y/ngx-components/search/search-box.component.ts","ng://@c8y/ngx-components/search/search-grid.component.ts","ng://@c8y/ngx-components/search/search-results.component.ts","ng://@c8y/ngx-components/search/search.module.ts","ng://@c8y/ngx-components/search/c8y-ngx-components-search.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport { Pagination } from '@c8y/ngx-components';\nimport { SubAssetsService } from '@c8y/ngx-components/sub-assets';\nimport { find, get, isUndefined, some } from 'lodash-es';\n\n@Injectable()\nexport class SearchService extends SubAssetsService {\n protected GRID_CONFIG_STORAGE_KEY = 'search-grid-config';\n protected DEFAULT_PAGE_SIZE = 50;\n private readonly FRAGMENTS_FOR_NO_DEVICE = [\n 'c8y_Dashboard',\n 'c8y_Report',\n 'c8y_Kpi',\n 'c8y_ExportConfiguration',\n 'c8y_IsBinary',\n 'c8y_NoDevice',\n 'c8y_IsDeviceGroup',\n 'c8y_Group',\n 'com_cumulocity_model_smartrest_SmartRestTemplate',\n 'com_cumulocity_model_devicesimulator_SensorTemplate',\n '_attachments',\n 'c8y_IsDeviceType',\n 'c8y_objectmapping_ObjectMapping'\n ];\n private readonly TYPES_FOR_NO_DEVICE = [\n 'c8y_ConfigurationDump',\n 'c8y_Firmware',\n 'c8y_SmartRule',\n 'c8y_Software',\n 'impact_object_mapping',\n 'c8y_UserPreference',\n 'c8y_TenantPolicy',\n 'c8y_PrivateSmartRule',\n 'c8y_SmartRest2Template',\n 'c8y_JsonSchema',\n 'c8y_DeviceShellTemplate',\n 'c8y_DemoStatus',\n 'c8y_DataBroker',\n 'c8y_Application_',\n 'brandingVariables',\n 'c8y_DeviceSimulator',\n 'c8y_CertificateMetadata',\n 'lwm2m_post_registration',\n 'c8y_microservice_manifest_',\n 'c8y_CepAgent'\n ];\n private readonly DEVICE_FRAGMENT_TYPE = 'c8y_IsDevice';\n\n /**\n * Will return only valid assets (groups and devices) and filter out\n * none useful inventories (e.g. c8y_JsonSchema).\n * @param data All managed objects that should be filtered.\n */\n filterOnlyAssets(data: IManagedObject[]) {\n return data.filter(mo => mo.c8y_IsDeviceGroup || this.isAnyDevice(mo));\n }\n\n buildCombinedRootQueryFilter(columns, pagination) {\n const rootQuery = {\n __filter: {\n __and: { __not: { __has: `c8y_IsBinary` } }\n }\n };\n const userQuery = this.getQueryObj(columns, pagination);\n const queryPart = this.queriesUtil.addOrderbys(rootQuery, userQuery.__orderby, 'append');\n const fullQuery = this.queriesUtil.addAndFilter(queryPart, userQuery.__filter);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n\n /**\n * Returns the full-text search results.\n *\n * @param term The search term.\n */\n search(term: string) {\n return this.inventoryService.list({\n text: term,\n withTotalPages: true,\n pageSize: this.DEFAULT_PAGE_SIZE,\n withChildren: false\n });\n }\n\n private isRootDevice(mo) {\n return !!mo[this.DEVICE_FRAGMENT_TYPE];\n }\n\n private isAnyDevice(mo) {\n const isDevice = this.isRootDevice(mo) || !this.hasFragmentOrTypeFromBlacklist(mo);\n return isDevice;\n }\n\n private hasFragmentOrTypeFromBlacklist(mo) {\n return this.hasTypeFromBlacklist(mo) || this.hasFragmentFromBlacklist(mo);\n }\n\n private hasTypeFromBlacklist(mo) {\n const moType = get(mo, 'type', '');\n return some(this.TYPES_FOR_NO_DEVICE, type => moType.includes(type));\n }\n\n private hasFragmentFromBlacklist(mo) {\n return find(this.FRAGMENTS_FOR_NO_DEVICE, f => !isUndefined(mo[f]));\n }\n}\n","import { Component, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { IManagedObject, InventoryService, IResultList, Paging } from '@c8y/client';\nimport { TypeaheadComponent } from '@c8y/ngx-components';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\nimport { BsDropdownDirective } from 'ngx-bootstrap/dropdown';\nimport { defer, empty, merge, Observable, of, pipe } from 'rxjs';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { SearchService } from './search.service';\n\n@Component({\n selector: 'c8y-search-box',\n templateUrl: './search-box.component.html'\n})\nexport class SearchBoxComponent {\n term = '';\n selected;\n filterPipe = pipe(\n map((data: IManagedObject[]) => {\n return this.searchService.filterOnlyAssets(data);\n })\n );\n results$: Observable<IResultList<IManagedObject>>;\n recentSearchResults: IManagedObject[] = [];\n recentlyRegisteredResults$: Observable<IResultList<IManagedObject>>;\n isLoading = false;\n noMatch = false;\n\n private readonly RECENT_SEARCH_STORAGE_KEY = 'recent_search_view';\n private readonly MAX_RECENT_SEARCH_RESULTS = 5;\n private readonly DEFAULT_FILTER: object = {\n withTotalPages: true,\n pageSize: 5,\n withChildren: false\n };\n private readonly KEYCODE_ENTER = 13;\n private readonly KEYCODE_ESC = 27;\n\n @ViewChild(TypeaheadComponent, { static: false })\n private typeahead: TypeaheadComponent;\n\n @ViewChild('dropdown', { static: false })\n private dropdown: BsDropdownDirective;\n\n constructor(\n private router: Router,\n private inventory: InventoryService,\n private deviceGridService: DeviceGridService,\n private searchService: SearchService\n ) {}\n\n async ngOnInit() {\n const recentSearchIds = JSON.parse(localStorage.getItem(this.RECENT_SEARCH_STORAGE_KEY));\n if (recentSearchIds && recentSearchIds.length > 0) {\n const { data } = await this.inventory.list({ ids: recentSearchIds.join(',') });\n this.recentSearchResults = data;\n this.recentlyRegisteredResults$ = defer(() =>\n this.inventory.list({\n q: '$orderby=creationTime desc',\n ...this.DEFAULT_FILTER\n })\n );\n }\n }\n\n onOpenChange(isOpen: boolean): void {\n if (isOpen) {\n // needs to request an animation frame as\n // otherwise the typeahead is undefined\n requestAnimationFrame(() => {\n this.subscribeOnSearch();\n this.typeahead.dropdown.show();\n this.typeahead.searchControl.nativeElement.focus();\n });\n }\n }\n\n open(event: Event, mo: IManagedObject) {\n event.stopPropagation();\n const isAlreadyRecent = this.recentSearchResults.find(({ id }) => id === mo.id);\n if (!isAlreadyRecent) {\n this.recentSearchResults.unshift(mo);\n this.recentSearchResults = this.recentSearchResults.slice(0, this.MAX_RECENT_SEARCH_RESULTS);\n }\n const recentSearchIds = this.recentSearchResults.map(({ id }) => id);\n localStorage.setItem(this.RECENT_SEARCH_STORAGE_KEY, JSON.stringify(recentSearchIds));\n this.router.navigateByUrl(this.deviceGridService.getHref(mo, '/'));\n this.dropdown.hide();\n }\n\n reset() {\n this.typeahead.onSearch.emit('');\n this.selected = undefined;\n this.typeahead.searchControl.nativeElement.focus();\n }\n\n keyDown(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n if (keyCode === this.KEYCODE_ENTER) {\n // enter hit can be faster then typeahead debounce,\n // therefore we take the term from the DOM element\n // itself:\n const searchTerm = (event.target as any).value;\n this.navigate(['/assetsearch'], { queryParams: { search: searchTerm } });\n this.dropdown.hide();\n } else if (keyCode === this.KEYCODE_ESC) {\n if (this.term === '') {\n this.dropdown.hide();\n }\n this.reset();\n }\n }\n\n filter(on) {\n this.navigate(['/assetsearch'], { queryParams: { filter: on } });\n this.dropdown.hide();\n }\n\n openSearch() {\n this.router.navigateByUrl('/assetsearch');\n this.dropdown.hide();\n }\n\n private subscribeOnSearch() {\n if (!this.results$) {\n this.results$ = this.typeahead.onSearch.pipe(\n tap(term => this.onTypingStarted(term)),\n switchMap(term => this.mergeRequest(term))\n );\n }\n }\n\n private navigate(commands, extras?) {\n this.router\n .navigateByUrl('/', { skipLocationChange: true })\n .then(() => this.router.navigate(commands, extras));\n }\n\n private mergeRequest(term: string): Observable<IResultList<IManagedObject>> {\n return merge(\n of({ data: [] } as IResultList<IManagedObject>),\n this.queryInventoryService(term).pipe(\n tap(({ data, paging }) => this.onLoadingDone(data, paging))\n )\n );\n }\n\n private queryInventoryService(term: string) {\n if (term) {\n return defer(() => this.searchService.search(term));\n }\n return empty();\n }\n\n private onLoadingDone(data: IManagedObject[], paging: Paging<IManagedObject>) {\n this.isLoading = false;\n this.noMatch =\n paging && paging.nextPage === null && this.searchService.filterOnlyAssets(data).length === 0;\n }\n\n private onTypingStarted(term) {\n this.noMatch = false;\n this.term = term;\n this.isLoading = term.length > 0;\n }\n}\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport {\n ActionControl,\n BuiltInActionType,\n BulkActionControl,\n DataGridComponent,\n DataSourceModifier,\n FilteringActionType,\n FilteringModifier,\n gettext,\n Pagination,\n Row,\n ServerSideDataResult\n} from '@c8y/ngx-components';\nimport { DeviceGridColumn } from '@c8y/ngx-components/device-grid';\nimport { IManagedObject, SmartGroupsService } from '@c8y/client';\nimport { SearchService } from './search.service';\nimport {\n DeleteAssetsModalComponent,\n DeleteModalCheckboxes,\n SubAssetsService\n} from '@c8y/ngx-components/sub-assets';\nimport { BsModalService } from 'ngx-bootstrap/modal';\n\n@Component({\n selector: 'c8y-search-grid',\n templateUrl: './search-grid.component.html'\n})\nexport class SearchGridComponent {\n @Input('parent-group') parentGroup: IManagedObject;\n @Input() title: string = '';\n @Input() loadingItemsLabel: string = gettext('Loading results…');\n @Input('columns') set _columns(value: DeviceGridColumn[]) {\n if (value) {\n this.columns = value;\n } else {\n this.columns = this.searchService.getDefaultColumns();\n }\n }\n @Input('pagination') set _pagination(value: Pagination) {\n if (value) {\n this.pagination = value;\n } else {\n this.pagination = this.searchService.getDefaultPagination();\n }\n }\n @Input('actionControls') set _actionControls(value: ActionControl[]) {\n if (value) {\n this.actionControls = value;\n } else {\n this.actionControls = this.searchService.getDefaultActionControls();\n }\n }\n @Input() selectable: boolean = false;\n @Input('bulkActionControls') set _bulkActionControls(value: BulkActionControl[]) {\n if (value) {\n this.bulkActionControls = value;\n } else {\n this.bulkActionControls = this.searchService.getDefaultBulkActionControls();\n }\n }\n @Output() onColumnsChange: EventEmitter<DeviceGridColumn[]> = new EventEmitter<\n DeviceGridColumn[]\n >();\n\n @Input()\n searchText = '';\n\n columns: DeviceGridColumn[] = this.searchService.getDefaultColumns();\n pagination: Pagination = this.searchService.getDefaultPagination();\n actionControls: ActionControl[];\n bulkActionControls: BulkActionControl[] = this.searchService.getDefaultBulkActionControls();\n serverSideDataCallback: any;\n refresh: EventEmitter<any> = new EventEmitter();\n\n @ViewChild(DataGridComponent, { static: true })\n dataGrid: DataGridComponent;\n\n private sizeCount = 0;\n\n constructor(\n public searchService: SearchService,\n private bsModalService: BsModalService,\n private smartGroupsService: SmartGroupsService,\n private subAssetsGridService: SubAssetsService\n ) {}\n\n ngAfterViewInit(): void {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n this.setActionControls();\n }\n\n trackByName(_index, column: DeviceGridColumn): string {\n return column.name;\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n let response;\n if (dataSourceModifier.searchText) {\n response = await this.searchService.search(dataSourceModifier.searchText);\n } else {\n response = await this.searchService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n undefined\n );\n }\n const { res, data, paging } = response;\n const filteredData = this.searchService.filterOnlyAssets(data);\n\n if (paging.currentPage === 1) {\n this.sizeCount = 0;\n }\n this.sizeCount += filteredData.length;\n this.onColumnsChange.emit(dataSourceModifier.columns);\n\n return {\n res,\n data: filteredData,\n paging,\n filteredSize: this.sizeCount,\n size: undefined\n };\n }\n\n setActionControls() {\n const actionControls: ActionControl[] = [];\n const deleteAction: ActionControl = {\n type: BuiltInActionType.Delete,\n callback: (asset: Row) => this.onDeleteAsset(asset as IManagedObject, this.parentGroup)\n };\n actionControls.push(deleteAction);\n if (!this.actionControls) {\n this.actionControls = actionControls;\n }\n }\n\n updateFiltering(\n columnNames: string[],\n action: {\n type: FilteringActionType;\n payload?: { filteringModifier: FilteringModifier };\n }\n ) {\n const { type } = action;\n if (type === FilteringActionType.ResetFilter) {\n this.dataGrid.clearFilters();\n } else {\n this.dataGrid.updateFiltering(columnNames, action);\n }\n }\n\n configChange(config) {\n this.searchService.saveConfig(config);\n }\n\n private onDeleteAsset(asset, parentRef) {\n const initialState = {\n showWithDeviceUserCheckbox: this.subAssetsGridService.shouldShowWithDeviceUserCheckbox(asset),\n asset,\n showWithCascadeCheckbox:\n !this.smartGroupsService.isSmartGroup(asset) &&\n !this.smartGroupsService.isSmartGroupV2(asset)\n };\n\n const modalRef = this.bsModalService.show(DeleteAssetsModalComponent, { initialState });\n\n modalRef.content.closeSubject.subscribe(async (result: DeleteModalCheckboxes) => {\n if (result) {\n await this.subAssetsGridService.deleteAsset(asset, parentRef, result);\n this.refresh.emit();\n }\n });\n }\n}\n","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SearchGridComponent } from './search-grid.component';\nimport { FilteringActionType, AlertService, Status, gettext, Alert } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-search-results',\n templateUrl: './search-results.component.html'\n})\nexport class SearchResultsComponent implements OnDestroy {\n filter: string = '';\n searchTerm: string = '';\n @ViewChild(SearchGridComponent, { static: true })\n searchGrid: SearchGridComponent;\n\n private unsubscribe$ = new Subject<any>();\n\n constructor(private route: ActivatedRoute, private alert: AlertService) {}\n\n ngAfterViewInit(): void {\n this.route.queryParams\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ filter, search }) => this.onQueryParamsChange(filter, search));\n\n this.searchGrid.dataGrid.searchText$.pipe(takeUntil(this.unsubscribe$)).subscribe(text => {\n if (text) {\n this.resetFilter();\n }\n this.searchTerm = text;\n });\n\n this.searchGrid.dataGrid.onFilter\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => this.resetSearch());\n\n // to prevent race condition (search empty):\n this.searchTerm = this.route.snapshot.queryParams.search || '';\n }\n\n resetSearch() {\n this.searchTerm = '';\n if (this.searchTerm) {\n this.alert.add({\n text: gettext('Search reset. Full text search does not support filtering.'),\n type: Status.WARNING,\n timeout: 5000\n } as Alert);\n }\n }\n\n resetFilter() {\n this.filter = '';\n if (this.searchGrid.dataGrid.filteringApplied) {\n this.alert.add({\n text: gettext('Filter reset. Full text search does not support filtering.'),\n type: Status.WARNING,\n timeout: 5000\n } as Alert);\n this.searchGrid.dataGrid.clearFilters();\n }\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n private onQueryParamsChange(filter: string, searchTerm: string) {\n if (!this.shouldFilter(filter) && searchTerm) {\n this.search(searchTerm);\n }\n }\n\n private shouldFilter(filter) {\n if (!filter) {\n return false;\n }\n this.resetSearch();\n this.filter = filter || '';\n this.searchGrid.updateFiltering(['name'], {\n type: FilteringActionType.ApplyFilter,\n payload: {\n filteringModifier: {\n externalFilterQuery: {\n names: [this.filter]\n }\n }\n }\n });\n return true;\n }\n\n private search(searchTerm: string) {\n this.searchTerm = searchTerm || '';\n this.searchGrid.dataGrid.searchText$.next(this.searchTerm);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, HOOK_ONCE_ROUTE, HOOK_SEARCH, Search } from '@c8y/ngx-components';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { SearchBoxComponent } from './search-box.component';\nimport { SearchResultsComponent } from './search-results.component';\nimport { SearchGridComponent } from './search-grid.component';\nimport { SearchService } from './search.service';\n\n@NgModule({\n declarations: [SearchResultsComponent, SearchBoxComponent, SearchGridComponent],\n imports: [CoreModule, DeviceGridModule, BsDropdownModule],\n entryComponents: [SearchResultsComponent, SearchBoxComponent],\n exports: [SearchResultsComponent, SearchBoxComponent, SearchGridComponent],\n providers: [\n SearchService,\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: [\n {\n path: 'assetsearch',\n component: SearchResultsComponent\n }\n ],\n multi: true\n },\n {\n provide: HOOK_SEARCH,\n useValue: [\n {\n template: SearchBoxComponent\n }\n ] as Search[],\n multi: true\n }\n ]\n})\nexport class SearchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tslib_1.__decorate"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-search.js","sources":["ng://@c8y/ngx-components/search/search.service.ts","ng://@c8y/ngx-components/search/search-box.component.ts","ng://@c8y/ngx-components/search/search-grid.component.ts","ng://@c8y/ngx-components/search/search-results.component.ts","ng://@c8y/ngx-components/search/search.module.ts","ng://@c8y/ngx-components/search/c8y-ngx-components-search.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport { SubAssetsService } from '@c8y/ngx-components/sub-assets';\nimport { find, get, isUndefined, some } from 'lodash-es';\n\n@Injectable()\nexport class SearchService extends SubAssetsService {\n protected GRID_CONFIG_STORAGE_KEY = 'search-grid-config';\n protected DEFAULT_PAGE_SIZE = 50;\n private readonly FRAGMENTS_FOR_NO_DEVICE = [\n 'c8y_Dashboard',\n 'c8y_Report',\n 'c8y_Kpi',\n 'c8y_ExportConfiguration',\n 'c8y_IsBinary',\n 'c8y_NoDevice',\n 'c8y_IsDeviceGroup',\n 'c8y_Group',\n 'com_cumulocity_model_smartrest_SmartRestTemplate',\n 'com_cumulocity_model_devicesimulator_SensorTemplate',\n '_attachments',\n 'c8y_IsDeviceType',\n 'c8y_objectmapping_ObjectMapping'\n ];\n private readonly TYPES_FOR_NO_DEVICE = [\n 'c8y_ConfigurationDump',\n 'c8y_Firmware',\n 'c8y_SmartRule',\n 'c8y_Software',\n 'impact_object_mapping',\n 'c8y_UserPreference',\n 'c8y_TenantPolicy',\n 'c8y_PrivateSmartRule',\n 'c8y_SmartRest2Template',\n 'c8y_JsonSchema',\n 'c8y_DeviceShellTemplate',\n 'c8y_DemoStatus',\n 'c8y_DataBroker',\n 'c8y_Application_',\n 'brandingVariables',\n 'c8y_DeviceSimulator',\n 'c8y_CertificateMetadata',\n 'lwm2m_post_registration',\n 'c8y_microservice_manifest_',\n 'c8y_CepAgent'\n ];\n private readonly DEVICE_FRAGMENT_TYPE = 'c8y_IsDevice';\n\n /**\n * Will return only valid assets (groups and devices) and filter out\n * none useful inventories (e.g. c8y_JsonSchema).\n * @param data All managed objects that should be filtered.\n */\n filterOnlyAssets(data: IManagedObject[]) {\n return data.filter(mo => mo.c8y_IsDeviceGroup || this.isAnyDevice(mo));\n }\n\n buildCombinedRootQueryFilter(columns, pagination) {\n const rootQuery = {\n __filter: {\n __and: { __not: { __has: `c8y_IsBinary` } }\n }\n };\n const userQuery = this.getQueryObj(columns, pagination);\n const queryPart = this.queriesUtil.addOrderbys(rootQuery, userQuery.__orderby, 'append');\n const fullQuery = this.queriesUtil.addAndFilter(queryPart, userQuery.__filter);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n\n /**\n * Returns the full-text search results.\n *\n * @param term The search term.\n */\n search(term: string) {\n return this.inventoryService.list({\n text: term,\n withTotalPages: true,\n pageSize: this.DEFAULT_PAGE_SIZE,\n withChildren: false\n });\n }\n\n private isRootDevice(mo) {\n return !!mo[this.DEVICE_FRAGMENT_TYPE];\n }\n\n private isAnyDevice(mo) {\n const isDevice = this.isRootDevice(mo) || !this.hasFragmentOrTypeFromBlacklist(mo);\n return isDevice;\n }\n\n private hasFragmentOrTypeFromBlacklist(mo) {\n return this.hasTypeFromBlacklist(mo) || this.hasFragmentFromBlacklist(mo);\n }\n\n private hasTypeFromBlacklist(mo) {\n const moType = get(mo, 'type', '');\n return some(this.TYPES_FOR_NO_DEVICE, type => moType.includes(type));\n }\n\n private hasFragmentFromBlacklist(mo) {\n return find(this.FRAGMENTS_FOR_NO_DEVICE, f => !isUndefined(mo[f]));\n }\n}\n","import { Component, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { IManagedObject, InventoryService, IResultList, Paging } from '@c8y/client';\nimport { TypeaheadComponent } from '@c8y/ngx-components';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\nimport { BsDropdownDirective } from 'ngx-bootstrap/dropdown';\nimport { defer, empty, merge, Observable, of, pipe } from 'rxjs';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { SearchService } from './search.service';\n\n@Component({\n selector: 'c8y-search-box',\n templateUrl: './search-box.component.html'\n})\nexport class SearchBoxComponent {\n term = '';\n selected;\n filterPipe = pipe(\n map((data: IManagedObject[]) => {\n return this.searchService.filterOnlyAssets(data);\n })\n );\n results$: Observable<IResultList<IManagedObject>>;\n recentSearchResults: IManagedObject[] = [];\n recentlyRegisteredResults$: Observable<IResultList<IManagedObject>>;\n isLoading = false;\n noMatch = false;\n\n private readonly RECENT_SEARCH_STORAGE_KEY = 'recent_search_view';\n private readonly MAX_RECENT_SEARCH_RESULTS = 5;\n private readonly DEFAULT_FILTER: object = {\n withTotalPages: true,\n pageSize: 5,\n withChildren: false\n };\n private readonly KEYCODE_ENTER = 13;\n private readonly KEYCODE_ESC = 27;\n\n @ViewChild(TypeaheadComponent, { static: false })\n private typeahead: TypeaheadComponent;\n\n @ViewChild('dropdown', { static: false })\n private dropdown: BsDropdownDirective;\n\n constructor(\n private router: Router,\n private inventory: InventoryService,\n private deviceGridService: DeviceGridService,\n private searchService: SearchService\n ) {}\n\n async ngOnInit() {\n const recentSearchIds = JSON.parse(localStorage.getItem(this.RECENT_SEARCH_STORAGE_KEY));\n if (recentSearchIds && recentSearchIds.length > 0) {\n const { data } = await this.inventory.list({ ids: recentSearchIds.join(',') });\n this.recentSearchResults = data;\n this.recentlyRegisteredResults$ = defer(() =>\n this.inventory.list({\n q: '$orderby=creationTime desc',\n ...this.DEFAULT_FILTER\n })\n );\n }\n }\n\n onOpenChange(isOpen: boolean): void {\n if (isOpen) {\n // needs to request an animation frame as\n // otherwise the typeahead is undefined\n requestAnimationFrame(() => {\n this.subscribeOnSearch();\n this.typeahead.dropdown.show();\n this.typeahead.searchControl.nativeElement.focus();\n });\n }\n }\n\n open(event: Event, mo: IManagedObject) {\n event.stopPropagation();\n const isAlreadyRecent = this.recentSearchResults.find(({ id }) => id === mo.id);\n if (!isAlreadyRecent) {\n this.recentSearchResults.unshift(mo);\n this.recentSearchResults = this.recentSearchResults.slice(0, this.MAX_RECENT_SEARCH_RESULTS);\n }\n const recentSearchIds = this.recentSearchResults.map(({ id }) => id);\n localStorage.setItem(this.RECENT_SEARCH_STORAGE_KEY, JSON.stringify(recentSearchIds));\n this.router.navigateByUrl(this.deviceGridService.getHref(mo, '/'));\n this.dropdown.hide();\n }\n\n reset() {\n this.typeahead.onSearch.emit('');\n this.selected = undefined;\n this.typeahead.searchControl.nativeElement.focus();\n }\n\n keyDown(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n if (keyCode === this.KEYCODE_ENTER) {\n // enter hit can be faster then typeahead debounce,\n // therefore we take the term from the DOM element\n // itself:\n const searchTerm = (event.target as any).value;\n this.navigate(['/assetsearch'], { queryParams: { search: searchTerm } });\n this.dropdown.hide();\n } else if (keyCode === this.KEYCODE_ESC) {\n if (this.term === '') {\n this.dropdown.hide();\n }\n this.reset();\n }\n }\n\n filter(on) {\n this.navigate(['/assetsearch'], { queryParams: { filter: on } });\n this.dropdown.hide();\n }\n\n openSearch() {\n this.router.navigateByUrl('/assetsearch');\n this.dropdown.hide();\n }\n\n private subscribeOnSearch() {\n if (!this.results$) {\n this.results$ = this.typeahead.onSearch.pipe(\n tap(term => this.onTypingStarted(term)),\n switchMap(term => this.mergeRequest(term))\n );\n }\n }\n\n private navigate(commands, extras?) {\n this.router\n .navigateByUrl('/', { skipLocationChange: true })\n .then(() => this.router.navigate(commands, extras));\n }\n\n private mergeRequest(term: string): Observable<IResultList<IManagedObject>> {\n return merge(\n of({ data: [] } as IResultList<IManagedObject>),\n this.queryInventoryService(term).pipe(\n tap(({ data, paging }) => this.onLoadingDone(data, paging))\n )\n );\n }\n\n private queryInventoryService(term: string) {\n if (term) {\n return defer(() => this.searchService.search(term));\n }\n return empty();\n }\n\n private onLoadingDone(data: IManagedObject[], paging: Paging<IManagedObject>) {\n this.isLoading = false;\n this.noMatch =\n paging && paging.nextPage === null && this.searchService.filterOnlyAssets(data).length === 0;\n }\n\n private onTypingStarted(term) {\n this.noMatch = false;\n this.term = term;\n this.isLoading = term.length > 0;\n }\n}\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport {\n ActionControl,\n BuiltInActionType,\n BulkActionControl,\n DataGridComponent,\n DataSourceModifier,\n FilteringActionType,\n FilteringModifier,\n gettext,\n Pagination,\n Row,\n ServerSideDataResult\n} from '@c8y/ngx-components';\nimport { DeviceGridColumn } from '@c8y/ngx-components/device-grid';\nimport { IManagedObject, SmartGroupsService } from '@c8y/client';\nimport { SearchService } from './search.service';\nimport {\n AssetTypeGridColumn,\n DeleteAssetsModalComponent,\n DeleteModalCheckboxes,\n SubAssetsService\n} from '@c8y/ngx-components/sub-assets';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport {\n AlarmsDeviceGridColumn,\n DeviceGridService,\n ImeiDeviceGridColumn,\n ModelDeviceGridColumn,\n NameDeviceGridColumn,\n RegistrationDateDeviceGridColumn,\n SerialNumberDeviceGridColumn,\n SystemIdDeviceGridColumn\n} from '@c8y/ngx-components/device-grid';\n\n@Component({\n selector: 'c8y-search-grid',\n templateUrl: './search-grid.component.html'\n})\nexport class SearchGridComponent {\n @Input('parent-group') parentGroup: IManagedObject;\n @Input() title: string = '';\n @Input() loadingItemsLabel: string = gettext('Loading results…');\n @Input('columns') set _columns(value: DeviceGridColumn[]) {\n if (value) {\n this.columns = value;\n } else {\n this.columns = this.searchService.getDefaultColumns();\n }\n }\n @Input('pagination') set _pagination(value: Pagination) {\n if (value) {\n this.pagination = value;\n } else {\n this.pagination = this.searchService.getDefaultPagination();\n }\n }\n @Input('actionControls') set _actionControls(value: ActionControl[]) {\n if (value) {\n this.actionControls = value;\n } else {\n this.actionControls = this.searchService.getDefaultActionControls();\n }\n }\n @Input() selectable: boolean = false;\n @Input('bulkActionControls') set _bulkActionControls(value: BulkActionControl[]) {\n if (value) {\n this.bulkActionControls = value;\n } else {\n this.bulkActionControls = this.searchService.getDefaultBulkActionControls();\n }\n }\n @Output() onColumnsChange: EventEmitter<DeviceGridColumn[]> = new EventEmitter<\n DeviceGridColumn[]\n >();\n\n @Input()\n searchText = '';\n\n @Input()\n filteringName: string;\n\n columns: DeviceGridColumn[];\n pagination: Pagination = this.searchService.getDefaultPagination();\n actionControls: ActionControl[];\n bulkActionControls: BulkActionControl[] = this.searchService.getDefaultBulkActionControls();\n serverSideDataCallback: any;\n refresh: EventEmitter<any> = new EventEmitter();\n\n @ViewChild(DataGridComponent, { static: true })\n dataGrid: DataGridComponent;\n\n private sizeCount = 0;\n\n constructor(\n public searchService: SearchService,\n private bsModalService: BsModalService,\n private smartGroupsService: SmartGroupsService,\n private subAssetsGridService: SubAssetsService\n ) {}\n\n ngOnInit(): void {\n if (!this.filteringName) {\n this.columns = this.searchService.getDefaultColumns();\n } else {\n this.columns = [\n new AssetTypeGridColumn({ sortOrder: 'desc' }),\n new NameDeviceGridColumn({\n sortOrder: 'asc',\n filter: { externalFilterQuery: { names: [this.filteringName] } }\n }),\n new ModelDeviceGridColumn(),\n new SerialNumberDeviceGridColumn({ visible: false }),\n new RegistrationDateDeviceGridColumn({ visible: false }),\n new SystemIdDeviceGridColumn({ visible: false }),\n new ImeiDeviceGridColumn({ visible: false }),\n new AlarmsDeviceGridColumn()\n ];\n }\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n this.setActionControls();\n }\n\n trackByName(_index, column: DeviceGridColumn): string {\n return column.name;\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n let response;\n if (dataSourceModifier.searchText) {\n response = await this.searchService.search(dataSourceModifier.searchText);\n } else {\n response = await this.searchService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n undefined\n );\n }\n const { res, data, paging } = response;\n const filteredData = this.searchService.filterOnlyAssets(data);\n\n if (paging.currentPage === 1) {\n this.sizeCount = 0;\n }\n this.sizeCount += filteredData.length;\n this.onColumnsChange.emit(dataSourceModifier.columns);\n\n return {\n res,\n data: filteredData,\n paging,\n filteredSize: this.sizeCount,\n size: undefined\n };\n }\n\n setActionControls() {\n const actionControls: ActionControl[] = [];\n const deleteAction: ActionControl = {\n type: BuiltInActionType.Delete,\n callback: (asset: Row) => this.onDeleteAsset(asset as IManagedObject, this.parentGroup)\n };\n actionControls.push(deleteAction);\n if (!this.actionControls) {\n this.actionControls = actionControls;\n }\n }\n\n updateFiltering(\n columnNames: string[],\n action: {\n type: FilteringActionType;\n payload?: { filteringModifier: FilteringModifier };\n }\n ) {\n const { type } = action;\n if (type === FilteringActionType.ResetFilter) {\n this.dataGrid.clearFilters();\n } else {\n this.dataGrid.updateFiltering(columnNames, action);\n }\n }\n\n configChange(config) {\n this.searchService.saveConfig(config);\n }\n\n private onDeleteAsset(asset, parentRef) {\n const initialState = {\n showWithDeviceUserCheckbox: this.subAssetsGridService.shouldShowWithDeviceUserCheckbox(asset),\n asset,\n showWithCascadeCheckbox:\n !this.smartGroupsService.isSmartGroup(asset) &&\n !this.smartGroupsService.isSmartGroupV2(asset)\n };\n\n const modalRef = this.bsModalService.show(DeleteAssetsModalComponent, { initialState });\n\n modalRef.content.closeSubject.subscribe(async (result: DeleteModalCheckboxes) => {\n if (result) {\n await this.subAssetsGridService.deleteAsset(asset, parentRef, result);\n this.refresh.emit();\n }\n });\n }\n}\n","import { Component, OnDestroy, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SearchGridComponent } from './search-grid.component';\nimport { FilteringActionType, AlertService, Status, gettext, Alert } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-search-results',\n templateUrl: './search-results.component.html'\n})\nexport class SearchResultsComponent implements OnDestroy {\n filter: string = '';\n searchTerm: string = '';\n @ViewChild(SearchGridComponent, { static: true })\n searchGrid: SearchGridComponent;\n filteringName: string;\n private unsubscribe$ = new Subject<any>();\n\n constructor(private route: ActivatedRoute, private alert: AlertService) {}\n\n ngOnInit() {\n this.route.queryParams.subscribe(params => {\n if (params.filter) {\n this.filteringName = params.filter;\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.route.queryParams\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ filter, search }) => this.onQueryParamsChange(filter, search));\n\n this.searchGrid.dataGrid.searchText$.pipe(takeUntil(this.unsubscribe$)).subscribe(text => {\n if (text) {\n this.resetFilter();\n }\n this.searchTerm = text;\n });\n\n this.searchGrid.dataGrid.onFilter\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => this.resetSearch());\n\n // to prevent race condition (search empty):\n this.searchTerm = this.route.snapshot.queryParams.search || '';\n }\n\n resetSearch() {\n this.searchTerm = '';\n if (this.searchTerm) {\n this.alert.add({\n text: gettext('Search reset. Full text search does not support filtering.'),\n type: Status.WARNING,\n timeout: 5000\n } as Alert);\n }\n }\n\n resetFilter() {\n this.filter = '';\n if (this.searchGrid.dataGrid.filteringApplied) {\n this.alert.add({\n text: gettext('Filter reset. Full text search does not support filtering.'),\n type: Status.WARNING,\n timeout: 5000\n } as Alert);\n this.searchGrid.dataGrid.clearFilters();\n }\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n private onQueryParamsChange(filter: string, searchTerm: string) {\n if (!this.shouldFilter(filter) && searchTerm) {\n this.search(searchTerm);\n } else if (this.shouldFilter(filter) && searchTerm) {\n this.search(searchTerm);\n }\n }\n\n private shouldFilter(filter) {\n if (!filter) {\n return false;\n }\n this.resetSearch();\n this.filter = filter || '';\n this.searchGrid.updateFiltering(['name'], {\n type: FilteringActionType.ApplyFilter,\n payload: {\n filteringModifier: {\n externalFilterQuery: {\n names: [this.filter]\n }\n }\n }\n });\n return true;\n }\n\n private search(searchTerm: string) {\n this.searchTerm = searchTerm || '';\n this.searchGrid.dataGrid.searchText$.next(this.searchTerm);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, HOOK_ONCE_ROUTE, HOOK_SEARCH, Search } from '@c8y/ngx-components';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { SearchBoxComponent } from './search-box.component';\nimport { SearchResultsComponent } from './search-results.component';\nimport { SearchGridComponent } from './search-grid.component';\nimport { SearchService } from './search.service';\n\n@NgModule({\n declarations: [SearchResultsComponent, SearchBoxComponent, SearchGridComponent],\n imports: [CoreModule, DeviceGridModule, BsDropdownModule],\n entryComponents: [SearchResultsComponent, SearchBoxComponent],\n exports: [SearchResultsComponent, SearchBoxComponent, SearchGridComponent],\n providers: [\n SearchService,\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: [\n {\n path: 'assetsearch',\n component: SearchResultsComponent\n }\n ],\n multi: true\n },\n {\n provide: HOOK_SEARCH,\n useValue: [\n {\n template: SearchBoxComponent\n }\n ] as Search[],\n multi: true\n }\n ]\n})\nexport class SearchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tslib_1.__decorate"],"mappings":"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"}