@c8y/ngx-components 1020.28.11 → 1020.33.1

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 (107) hide show
  1. package/bookmarks/bookmarks.service.d.ts +3 -2
  2. package/bookmarks/bookmarks.service.d.ts.map +1 -1
  3. package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
  4. package/context-dashboard/device-info-dashboard/device-info-dashboard.component.d.ts.map +1 -1
  5. package/core/common/common.module.d.ts +2 -2
  6. package/core/common/humanize-app-name.model.d.ts +2 -2
  7. package/core/common/humanize-app-name.pipe.d.ts.map +1 -1
  8. package/core/dashboard/dashboard.model.d.ts +1 -0
  9. package/core/dashboard/dashboard.model.d.ts.map +1 -1
  10. package/core/dashboard/widgets-dashboard.component.d.ts +1 -0
  11. package/core/dashboard/widgets-dashboard.component.d.ts.map +1 -1
  12. package/core/data-grid/data-grid.model.d.ts +1 -1
  13. package/core/data-grid/data-grid.model.d.ts.map +1 -1
  14. package/core/data-grid/visible-controls.pipe.d.ts +3 -2
  15. package/core/data-grid/visible-controls.pipe.d.ts.map +1 -1
  16. package/esm2022/bookmarks/bookmarks.service.mjs +9 -7
  17. package/esm2022/context-dashboard/context-dashboard.service.mjs +6 -3
  18. package/esm2022/context-dashboard/device-info-dashboard/device-info-dashboard.component.mjs +39 -3
  19. package/esm2022/core/common/common.module.mjs +3 -3
  20. package/esm2022/core/common/humanize-app-name.model.mjs +3 -3
  21. package/esm2022/core/common/humanize-app-name.pipe.mjs +6 -5
  22. package/esm2022/core/dashboard/dashboard.model.mjs +2 -2
  23. package/esm2022/core/dashboard/widgets-dashboard.component.mjs +12 -3
  24. package/esm2022/core/data-grid/data-grid.component.mjs +3 -3
  25. package/esm2022/core/data-grid/data-grid.model.mjs +1 -1
  26. package/esm2022/core/data-grid/visible-controls.pipe.mjs +5 -4
  27. package/esm2022/core/docs/defaults.items.mjs +2 -2
  28. package/esm2022/protocol-opcua/opcua-device-protocol-data-reporting.component.mjs +3 -3
  29. package/esm2022/repository/configuration/list/configuration-list.component.mjs +107 -60
  30. package/esm2022/repository/shared/columns/device-type.cell-renderer.component.mjs +7 -3
  31. package/esm2022/repository/shared/columns/device-type.grid-column.mjs +2 -2
  32. package/esm2022/repository/shared/columns/file.cell-renderer.component.mjs +39 -0
  33. package/esm2022/repository/shared/columns/file.grid-column.mjs +13 -0
  34. package/esm2022/repository/shared/columns/name.cell-renderer.component.mjs +26 -5
  35. package/esm2022/repository/shared/columns/name.grid-column.mjs +1 -1
  36. package/esm2022/repository/shared/columns/type.cell-renderer.component.mjs +18 -0
  37. package/esm2022/repository/shared/columns/type.filtering-form-renderer.component.mjs +115 -0
  38. package/esm2022/repository/shared/columns/type.grid-column.mjs +29 -0
  39. package/esm2022/repository/shared/index.mjs +10 -1
  40. package/esm2022/repository/software/list/software-list.component.mjs +9 -4
  41. package/esm2022/repository/software/list/software-repository-list.module.mjs +3 -15
  42. package/esm2022/widgets/definitions/device-management-welcome/index.mjs +2 -2
  43. package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.mjs +22 -5
  44. package/fesm2022/c8y-ngx-components-bookmarks.mjs +7 -5
  45. package/fesm2022/c8y-ngx-components-bookmarks.mjs.map +1 -1
  46. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +43 -4
  47. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  48. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +2 -2
  49. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
  50. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +118 -68
  51. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  52. package/fesm2022/c8y-ngx-components-repository-shared.mjs +283 -81
  53. package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
  54. package/fesm2022/c8y-ngx-components-repository-software.mjs +31 -154
  55. package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
  56. package/fesm2022/c8y-ngx-components-widgets-definitions-device-management-welcome.mjs +1 -1
  57. package/fesm2022/c8y-ngx-components-widgets-definitions-device-management-welcome.mjs.map +1 -1
  58. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +24 -9
  59. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
  60. package/fesm2022/c8y-ngx-components.mjs +27 -17
  61. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  62. package/locales/de.po +6 -0
  63. package/locales/es.po +6 -0
  64. package/locales/fr.po +6 -0
  65. package/locales/ja_JP.po +6 -0
  66. package/locales/locales.pot +38 -23
  67. package/locales/nl.po +6 -0
  68. package/locales/pl.po +6 -0
  69. package/locales/pt_BR.po +6 -0
  70. package/package.json +1 -1
  71. package/repository/configuration/list/configuration-list.component.d.ts +21 -17
  72. package/repository/configuration/list/configuration-list.component.d.ts.map +1 -1
  73. package/repository/shared/columns/device-type.cell-renderer.component.d.ts +4 -1
  74. package/repository/shared/columns/device-type.cell-renderer.component.d.ts.map +1 -1
  75. package/repository/shared/columns/device-type.grid-column.d.ts +1 -0
  76. package/repository/shared/columns/device-type.grid-column.d.ts.map +1 -1
  77. package/repository/shared/columns/file.cell-renderer.component.d.ts +15 -0
  78. package/repository/shared/columns/file.cell-renderer.component.d.ts.map +1 -0
  79. package/repository/shared/columns/file.grid-column.d.ts +8 -0
  80. package/repository/shared/columns/file.grid-column.d.ts.map +1 -0
  81. package/repository/shared/columns/name.cell-renderer.component.d.ts.map +1 -1
  82. package/repository/shared/columns/name.grid-column.d.ts +3 -1
  83. package/repository/shared/columns/name.grid-column.d.ts.map +1 -1
  84. package/repository/shared/columns/type.cell-renderer.component.d.ts +9 -0
  85. package/repository/shared/columns/type.cell-renderer.component.d.ts.map +1 -0
  86. package/repository/{software/list/columns/software-type.filtering-form-renderer.component.d.ts → shared/columns/type.filtering-form-renderer.component.d.ts} +9 -8
  87. package/repository/shared/columns/type.filtering-form-renderer.component.d.ts.map +1 -0
  88. package/repository/shared/columns/type.grid-column.d.ts +20 -0
  89. package/repository/shared/columns/type.grid-column.d.ts.map +1 -0
  90. package/repository/shared/index.d.ts +9 -0
  91. package/repository/shared/index.d.ts.map +1 -1
  92. package/repository/software/list/software-list.component.d.ts.map +1 -1
  93. package/repository/software/list/software-repository-list.module.d.ts +8 -10
  94. package/repository/software/list/software-repository-list.module.d.ts.map +1 -1
  95. package/widgets/definitions/device-management-welcome/index.d.ts +1 -1
  96. package/widgets/definitions/device-management-welcome/index.d.ts.map +1 -1
  97. package/widgets/device-management/index.d.ts +1 -1
  98. package/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.d.ts +5 -1
  99. package/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.d.ts.map +1 -1
  100. package/esm2022/repository/software/list/columns/software-type.cell-renderer.component.mjs +0 -17
  101. package/esm2022/repository/software/list/columns/software-type.filtering-form-renderer.component.mjs +0 -93
  102. package/esm2022/repository/software/list/columns/software-type.grid-column.mjs +0 -28
  103. package/repository/software/list/columns/software-type.cell-renderer.component.d.ts +0 -9
  104. package/repository/software/list/columns/software-type.cell-renderer.component.d.ts.map +0 -1
  105. package/repository/software/list/columns/software-type.filtering-form-renderer.component.d.ts.map +0 -1
  106. package/repository/software/list/columns/software-type.grid-column.d.ts +0 -5
  107. package/repository/software/list/columns/software-type.grid-column.d.ts.map +0 -1
@@ -1,24 +1,24 @@
1
1
  import * as i1 from '@c8y/ngx-components';
2
- import { BaseColumn, gettext, getBasicInputArrayFormFieldConfig, CommonModule, memoize, ModalSelectionMode, PRODUCT_EXPERIENCE_EVENT_SOURCE, toObservable, CoreModule, FormsModule, OperationRealtimeService } from '@c8y/ngx-components';
2
+ import { BaseColumn, gettext, getBasicInputArrayFormFieldConfig, CommonModule, memoize, TypeaheadComponent, C8yTranslatePipe, CoreModule, ModalSelectionMode, PRODUCT_EXPERIENCE_EVENT_SOURCE, toObservable, FormsModule as FormsModule$1, OperationRealtimeService } from '@c8y/ngx-components';
3
3
  import * as i0 from '@angular/core';
4
- import { Component, Injectable, Input, EventEmitter, forwardRef, ViewChild, Output, NgModule } from '@angular/core';
5
- import * as i2 from '@angular/router';
4
+ import { Component, Injectable, ChangeDetectionStrategy, ViewChild, HostListener, Input, EventEmitter, forwardRef, Output, NgModule } from '@angular/core';
5
+ import * as i3 from '@angular/router';
6
6
  import { RouterModule } from '@angular/router';
7
7
  import { DeviceGridModule } from '@c8y/ngx-components/device-grid';
8
+ import { get, head, isNil, set, assign, isUndefined, isString, cloneDeep, map as map$1, omitBy, pick, remove, forEach, find, property, uniqBy, has, isEmpty, isEqual } from 'lodash-es';
8
9
  import { TooltipModule } from 'ngx-bootstrap/tooltip';
9
- import * as i3 from '@angular/common';
10
+ import * as i4 from '@angular/common';
10
11
  import { CommonModule as CommonModule$1 } from '@angular/common';
11
12
  import { __decorate, __metadata } from 'tslib';
12
- import { head, isNil, set, assign, isUndefined, get, isString, cloneDeep, map as map$1, omitBy, pick, remove, forEach, find, property, has, isEmpty, isEqual, uniqBy } from 'lodash-es';
13
- import { of, from, defer, throwError, merge, Observable, Subject, BehaviorSubject, pipe, interval } from 'rxjs';
14
- import { map, take, switchMap, withLatestFrom, filter, takeWhile, shareReplay, mergeMap, tap, debounce } from 'rxjs/operators';
15
13
  import * as i1$1 from '@c8y/client';
16
14
  import { QueriesUtil, OperationStatus } from '@c8y/client';
15
+ import { of, from, defer, throwError, merge, NEVER, BehaviorSubject, pipe, Observable, Subject, interval } from 'rxjs';
16
+ import { map, take, switchMap, withLatestFrom, filter, takeWhile, tap, debounceTime, shareReplay, mergeMap, debounce } from 'rxjs/operators';
17
+ import * as i5 from '@angular/forms';
18
+ import { FormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
17
19
  import { saveAs } from 'file-saver';
18
- import * as i2$1 from '@ngx-translate/core';
20
+ import * as i2 from '@ngx-translate/core';
19
21
  import { PopoverModule } from 'ngx-bootstrap/popover';
20
- import * as i5 from '@angular/forms';
21
- import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
22
22
 
23
23
  class DescriptionGridColumn extends BaseColumn {
24
24
  constructor(initialColumnConfig) {
@@ -54,19 +54,22 @@ class DeviceTypeCellRendererComponent {
54
54
  constructor(context) {
55
55
  this.context = context;
56
56
  }
57
+ ngOnInit() {
58
+ this.deviceType = get(this.context?.item, this.context?.property?.path);
59
+ }
57
60
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DeviceTypeCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: DeviceTypeCellRendererComponent, isStandalone: true, selector: "c8y-device-type-cell-renderer", ngImport: i0, template: "<span *ngIf=\"context.item.c8y_Filter?.type; else emptyText\">\n {{ context.item.c8y_Filter?.type }}\n</span>\n<ng-template #emptyText>\n <small class=\"text-muted\">\n <em translate>Undefined`device type`</em>\n </small>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DeviceGridModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: RouterModule }] }); }
61
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: DeviceTypeCellRendererComponent, isStandalone: true, selector: "c8y-device-type-cell-renderer", ngImport: i0, template: "<span *ngIf=\"deviceType; else emptyText\">\n {{ deviceType }}\n</span>\n<ng-template #emptyText>\n <small class=\"text-muted\">\n <em translate>Undefined`device type`</em>\n </small>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DeviceGridModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: RouterModule }] }); }
59
62
  }
60
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DeviceTypeCellRendererComponent, decorators: [{
61
64
  type: Component,
62
- args: [{ selector: 'c8y-device-type-cell-renderer', standalone: true, imports: [CommonModule, DeviceGridModule, TooltipModule, RouterModule], template: "<span *ngIf=\"context.item.c8y_Filter?.type; else emptyText\">\n {{ context.item.c8y_Filter?.type }}\n</span>\n<ng-template #emptyText>\n <small class=\"text-muted\">\n <em translate>Undefined`device type`</em>\n </small>\n</ng-template>\n" }]
65
+ args: [{ selector: 'c8y-device-type-cell-renderer', standalone: true, imports: [CommonModule, DeviceGridModule, TooltipModule, RouterModule], template: "<span *ngIf=\"deviceType; else emptyText\">\n {{ deviceType }}\n</span>\n<ng-template #emptyText>\n <small class=\"text-muted\">\n <em translate>Undefined`device type`</em>\n </small>\n</ng-template>\n" }]
63
66
  }], ctorParameters: () => [{ type: i1.CellRendererContext }] });
64
67
 
65
68
  class DeviceTypeGridColumn extends BaseColumn {
66
69
  constructor(initialColumnConfig) {
67
70
  super(initialColumnConfig);
68
71
  this.name = 'deviceType';
69
- this.path = 'c8y_Filter.type';
72
+ this.path = initialColumnConfig?.path ?? 'c8y_Filter.type';
70
73
  this.header = gettext('Device type');
71
74
  this.cellRendererComponent = DeviceTypeCellRendererComponent;
72
75
  this.filterable = true;
@@ -114,62 +117,6 @@ class DeviceTypeGridColumn extends BaseColumn {
114
117
  }
115
118
  }
116
119
 
117
- class RepositoryItemNameCellRendererComponent {
118
- constructor(context) {
119
- this.context = context;
120
- }
121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RepositoryItemNameCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
122
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: RepositoryItemNameCellRendererComponent, isStandalone: true, selector: "c8y-repository-item-name-cell-renderer", ngImport: i0, template: `
123
- <a class="interact" [title]="context.item.name" [routerLink]="[context.item.id]">
124
- {{ context.item.name }}
125
- </a>
126
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DeviceGridModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
127
- }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RepositoryItemNameCellRendererComponent, decorators: [{
129
- type: Component,
130
- args: [{
131
- template: `
132
- <a class="interact" [title]="context.item.name" [routerLink]="[context.item.id]">
133
- {{ context.item.name }}
134
- </a>
135
- `,
136
- selector: 'c8y-repository-item-name-cell-renderer',
137
- standalone: true,
138
- imports: [CommonModule, DeviceGridModule, TooltipModule, RouterModule]
139
- }]
140
- }], ctorParameters: () => [{ type: i1.CellRendererContext }] });
141
-
142
- class RepositoryItemNameGridColumn extends BaseColumn {
143
- constructor(initialColumnConfig) {
144
- super(initialColumnConfig);
145
- this.name = 'name';
146
- this.path = 'name';
147
- this.header = gettext('Name');
148
- this.cellRendererComponent = RepositoryItemNameCellRendererComponent;
149
- this.filterable = true;
150
- this.filteringConfig = {
151
- fields: getBasicInputArrayFormFieldConfig({
152
- key: 'names',
153
- label: initialColumnConfig?.filterLabel ?? gettext('Filter item by name'),
154
- addText: gettext('Add next`name`'),
155
- tooltip: gettext('Use * as a wildcard character'),
156
- placeholder: initialColumnConfig?.placeholder ?? gettext('Cloud connectivity')
157
- }),
158
- getFilter(model) {
159
- const filter = {};
160
- if (model.names.length) {
161
- filter.name = { __in: model.names };
162
- }
163
- return filter;
164
- }
165
- };
166
- this.sortable = true;
167
- this.sortingConfig = {
168
- pathSortingConfigs: [{ path: this.path }]
169
- };
170
- }
171
- }
172
-
173
120
  var RepositoryType;
174
121
  (function (RepositoryType) {
175
122
  RepositoryType["FIRMWARE"] = "c8y_Firmware";
@@ -1324,6 +1271,261 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
1324
1271
  type: Injectable
1325
1272
  }], ctorParameters: () => [{ type: i1$1.InventoryService }, { type: i1$1.InventoryBinaryService }, { type: i1$1.OperationService }, { type: i1.AlertService }, { type: i1$1.EventService }, { type: i1.OperationRealtimeService }, { type: i1$1.EventBinaryService }, { type: i1.ServiceRegistry }, { type: i1.GlobalConfigService }] });
1326
1273
 
1274
+ class FileCellRendererComponent {
1275
+ constructor(context, inventoryBinaryService, repositoryService) {
1276
+ this.context = context;
1277
+ this.inventoryBinaryService = inventoryBinaryService;
1278
+ this.repositoryService = repositoryService;
1279
+ }
1280
+ isBinaryFile() {
1281
+ return this.context.item?.url
1282
+ ? !!this.inventoryBinaryService.getIdFromUrl(this.context.item.url)
1283
+ : false;
1284
+ }
1285
+ getBinaryName(configuration) {
1286
+ return this.repositoryService.getBinaryName$(configuration.url);
1287
+ }
1288
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: FileCellRendererComponent, deps: [{ token: i1.CellRendererContext }, { token: i1$1.InventoryBinaryService }, { token: RepositoryService }], target: i0.ɵɵFactoryTarget.Component }); }
1289
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: FileCellRendererComponent, isStandalone: true, selector: "c8y-file-cell-renderer", providers: [RepositoryService], ngImport: i0, template: "<small\n title=\"{{ getBinaryName(context.item) | async }}\"\n *ngIf=\"isBinaryFile(); else noFile\"\n>\n {{ getBinaryName(context.item) | async }}\n</small>\n<ng-template #noFile>\n <small title=\"{{ context.item?.url }}\">\n {{ context.item?.url }}\n </small>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
1290
+ }
1291
+ __decorate([
1292
+ memoize(property('id')),
1293
+ __metadata("design:type", Function),
1294
+ __metadata("design:paramtypes", [Object]),
1295
+ __metadata("design:returntype", void 0)
1296
+ ], FileCellRendererComponent.prototype, "getBinaryName", null);
1297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: FileCellRendererComponent, decorators: [{
1298
+ type: Component,
1299
+ args: [{ selector: 'c8y-file-cell-renderer', standalone: true, imports: [CommonModule], providers: [RepositoryService], template: "<small\n title=\"{{ getBinaryName(context.item) | async }}\"\n *ngIf=\"isBinaryFile(); else noFile\"\n>\n {{ getBinaryName(context.item) | async }}\n</small>\n<ng-template #noFile>\n <small title=\"{{ context.item?.url }}\">\n {{ context.item?.url }}\n </small>\n</ng-template>\n" }]
1300
+ }], ctorParameters: () => [{ type: i1.CellRendererContext }, { type: i1$1.InventoryBinaryService }, { type: RepositoryService }], propDecorators: { getBinaryName: [] } });
1301
+
1302
+ class FileGridColumn extends BaseColumn {
1303
+ constructor(initialColumnConfig) {
1304
+ super(initialColumnConfig);
1305
+ this.name = 'file';
1306
+ this.header = gettext('File');
1307
+ this.cellRendererComponent = FileCellRendererComponent;
1308
+ this.filterable = false;
1309
+ this.sortable = false;
1310
+ }
1311
+ }
1312
+
1313
+ class RepositoryItemNameCellRendererComponent {
1314
+ constructor(context) {
1315
+ this.context = context;
1316
+ }
1317
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RepositoryItemNameCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
1318
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: RepositoryItemNameCellRendererComponent, isStandalone: true, selector: "c8y-repository-item-name-cell-renderer", ngImport: i0, template: `
1319
+ <a
1320
+ class="interact"
1321
+ [title]="context.item.name"
1322
+ *ngIf="context?.property?.callback; else router"
1323
+ (click)="context.property.callback(context.item)"
1324
+ >
1325
+ {{ context.item.name }}
1326
+ </a>
1327
+ <ng-template #router>
1328
+ <a class="interact" [title]="context.item.name" [routerLink]="[context.item.id]">
1329
+ {{ context.item.name }}
1330
+ </a>
1331
+ </ng-template>
1332
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DeviceGridModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
1333
+ }
1334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RepositoryItemNameCellRendererComponent, decorators: [{
1335
+ type: Component,
1336
+ args: [{
1337
+ template: `
1338
+ <a
1339
+ class="interact"
1340
+ [title]="context.item.name"
1341
+ *ngIf="context?.property?.callback; else router"
1342
+ (click)="context.property.callback(context.item)"
1343
+ >
1344
+ {{ context.item.name }}
1345
+ </a>
1346
+ <ng-template #router>
1347
+ <a class="interact" [title]="context.item.name" [routerLink]="[context.item.id]">
1348
+ {{ context.item.name }}
1349
+ </a>
1350
+ </ng-template>
1351
+ `,
1352
+ selector: 'c8y-repository-item-name-cell-renderer',
1353
+ standalone: true,
1354
+ imports: [CommonModule, DeviceGridModule, TooltipModule, RouterModule]
1355
+ }]
1356
+ }], ctorParameters: () => [{ type: i1.CellRendererContext }] });
1357
+
1358
+ class RepositoryItemNameGridColumn extends BaseColumn {
1359
+ constructor(initialColumnConfig) {
1360
+ super(initialColumnConfig);
1361
+ this.name = 'name';
1362
+ this.path = 'name';
1363
+ this.header = gettext('Name');
1364
+ this.cellRendererComponent = RepositoryItemNameCellRendererComponent;
1365
+ this.filterable = true;
1366
+ this.filteringConfig = {
1367
+ fields: getBasicInputArrayFormFieldConfig({
1368
+ key: 'names',
1369
+ label: initialColumnConfig?.filterLabel ?? gettext('Filter item by name'),
1370
+ addText: gettext('Add next`name`'),
1371
+ tooltip: gettext('Use * as a wildcard character'),
1372
+ placeholder: initialColumnConfig?.placeholder ?? gettext('Cloud connectivity')
1373
+ }),
1374
+ getFilter(model) {
1375
+ const filter = {};
1376
+ if (model.names.length) {
1377
+ filter.name = { __in: model.names };
1378
+ }
1379
+ return filter;
1380
+ }
1381
+ };
1382
+ this.sortable = true;
1383
+ this.sortingConfig = {
1384
+ pathSortingConfigs: [{ path: this.path }]
1385
+ };
1386
+ }
1387
+ }
1388
+
1389
+ class TypeCellRendererComponent {
1390
+ constructor(context) {
1391
+ this.context = context;
1392
+ }
1393
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TypeCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
1394
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: TypeCellRendererComponent, isStandalone: true, selector: "c8y-type-cell-renderer", ngImport: i0, template: "<span\n class=\"label label-info\"\n *ngIf=\"!!context?.item?.[context?.property?.path]; else emptyText\"\n>\n {{ context.item[context.property.path] }}\n</span>\n<ng-template #emptyText>\n <small class=\"text-muted\">\n <em translate>Undefined`type`</em>\n </small>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule$1 }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
1395
+ }
1396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TypeCellRendererComponent, decorators: [{
1397
+ type: Component,
1398
+ args: [{ standalone: true, selector: 'c8y-type-cell-renderer', imports: [CommonModule$1], template: "<span\n class=\"label label-info\"\n *ngIf=\"!!context?.item?.[context?.property?.path]; else emptyText\"\n>\n {{ context.item[context.property.path] }}\n</span>\n<ng-template #emptyText>\n <small class=\"text-muted\">\n <em translate>Undefined`type`</em>\n </small>\n</ng-template>\n" }]
1399
+ }], ctorParameters: () => [{ type: i1.CellRendererContext }] });
1400
+
1401
+ class TypeFilteringFormRendererComponent {
1402
+ constructor(context, changeDetectorRef, repositoryService, elementRef) {
1403
+ this.context = context;
1404
+ this.changeDetectorRef = changeDetectorRef;
1405
+ this.repositoryService = repositoryService;
1406
+ this.elementRef = elementRef;
1407
+ this.types$ = NEVER;
1408
+ this.search$ = new BehaviorSubject(null);
1409
+ this.filterPipe = pipe(tap());
1410
+ this.typeaheadPlaceholder = gettext('Start typing to search, for example, {{ example }}');
1411
+ this.queriesUtil = new QueriesUtil();
1412
+ this.types = new Set();
1413
+ this.path = context.property.path;
1414
+ this.types$ = this.search$.pipe(debounceTime(300), tap(() => this.types.clear()), switchMap((searchString) => {
1415
+ let query = this.queriesUtil.prependOrderbys({}, [{ [this.path]: 1 }]);
1416
+ const filter = !!searchString
1417
+ ? {
1418
+ [this.path]: {
1419
+ __eq: `*${searchString}*`
1420
+ }
1421
+ }
1422
+ : {
1423
+ __has: this.path
1424
+ };
1425
+ query = this.queriesUtil.addAndFilter(query, filter);
1426
+ return this.repositoryService.listRepositoryEntries(this.context.property.repositoryType, {
1427
+ skipDefaultOrder: true,
1428
+ query,
1429
+ params: {
1430
+ pageSize: 200
1431
+ }
1432
+ });
1433
+ }));
1434
+ this.filterPipe = pipe(map(this.removeDuplicatesType.bind(this)), tap(() => setTimeout(() => this.changeDetectorRef.detectChanges(), 0)));
1435
+ }
1436
+ onEnterKeyUp(event) {
1437
+ event.stopPropagation();
1438
+ this.applyFilter();
1439
+ }
1440
+ onEscapeKeyDown(event) {
1441
+ event.stopPropagation();
1442
+ this.context.resetFilter();
1443
+ }
1444
+ ngOnInit() {
1445
+ const column = this.context.property;
1446
+ this.selectedType = cloneDeep(column.externalFilterQuery || {});
1447
+ }
1448
+ ngAfterViewInit() {
1449
+ this.typeahead?.searchControl?.nativeElement?.focus();
1450
+ try {
1451
+ this.elementRef.nativeElement.parentElement.parentElement.style.overflow = 'visible';
1452
+ }
1453
+ catch (ex) {
1454
+ // intentionally empty
1455
+ }
1456
+ }
1457
+ applyFilter() {
1458
+ this.context.applyFilter({
1459
+ externalFilterQuery: {
1460
+ model: this.selectedType,
1461
+ chips: [
1462
+ {
1463
+ value: this.selectedType,
1464
+ displayValue: this.selectedType?.[this.path],
1465
+ path: [this.path],
1466
+ columnName: this.context.property.name,
1467
+ remove: () => {
1468
+ return {
1469
+ columnName: this.context.property.name,
1470
+ externalFilterQuery: {
1471
+ model: null,
1472
+ chips: []
1473
+ }
1474
+ };
1475
+ }
1476
+ }
1477
+ ]
1478
+ }
1479
+ });
1480
+ }
1481
+ removeDuplicatesType(list) {
1482
+ const uniqueByType = uniqBy(list, this.path).filter((mo) => !this.types.has(mo[this.path]));
1483
+ uniqueByType.forEach((mo) => this.types.add(mo[this.path]));
1484
+ return uniqueByType;
1485
+ }
1486
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TypeFilteringFormRendererComponent, deps: [{ token: i1.FilteringFormRendererContext }, { token: i0.ChangeDetectorRef }, { token: RepositoryService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
1487
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: TypeFilteringFormRendererComponent, isStandalone: true, selector: "c8y-type-filtering-form-renderer", host: { listeners: { "keyup.enter": "onEnterKeyUp($event)", "keydown.escape": "onEscapeKeyDown($event)" } }, viewQueries: [{ propertyName: "typeahead", first: true, predicate: TypeaheadComponent, descendants: true }], ngImport: i0, template: "<c8y-form-group>\n <label>\n {{ context?.property?.filterLabel | translate }}\n </label>\n <c8y-typeahead\n placeholder=\"{{ typeaheadPlaceholder | translate: { example: context?.property?.example } }}\"\n [name]=\"path\"\n [(ngModel)]=\"selectedType\"\n [displayProperty]=\"path\"\n (onSearch)=\"search$.next($event)\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *c8yFor=\"let type of types$; pipe: filterPipe; loadMore: 'auto'\"\n (click)=\"$event.stopPropagation(); selectedType = type; typeahead.dropdown.hide()\"\n [active]=\"selectedType?.[path] === type?.[path]\"\n >\n <c8y-highlight\n [text]=\"type?.[path] || '--'\"\n [pattern]=\"search$.value\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n</c8y-form-group>\n\n<div class=\"data-grid__dropdown__footer d-flex separator-top\">\n <button\n class=\"btn btn-default btn-sm m-r-8 flex-grow\"\n title=\"{{ 'Reset' | translate }}\"\n (click)=\"context.resetFilter()\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n title=\"{{ 'Apply' | translate }}\"\n (click)=\"applyFilter()\"\n translate\n >\n Apply\n </button>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule$1 }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: i1.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i1.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected"], outputs: ["onSearch", "onIconClick"] }, { kind: "component", type: i1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
1488
+ }
1489
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TypeFilteringFormRendererComponent, decorators: [{
1490
+ type: Component,
1491
+ args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.Default, selector: 'c8y-type-filtering-form-renderer', imports: [CommonModule$1, C8yTranslatePipe, CommonModule, FormsModule, CoreModule], template: "<c8y-form-group>\n <label>\n {{ context?.property?.filterLabel | translate }}\n </label>\n <c8y-typeahead\n placeholder=\"{{ typeaheadPlaceholder | translate: { example: context?.property?.example } }}\"\n [name]=\"path\"\n [(ngModel)]=\"selectedType\"\n [displayProperty]=\"path\"\n (onSearch)=\"search$.next($event)\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *c8yFor=\"let type of types$; pipe: filterPipe; loadMore: 'auto'\"\n (click)=\"$event.stopPropagation(); selectedType = type; typeahead.dropdown.hide()\"\n [active]=\"selectedType?.[path] === type?.[path]\"\n >\n <c8y-highlight\n [text]=\"type?.[path] || '--'\"\n [pattern]=\"search$.value\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n</c8y-form-group>\n\n<div class=\"data-grid__dropdown__footer d-flex separator-top\">\n <button\n class=\"btn btn-default btn-sm m-r-8 flex-grow\"\n title=\"{{ 'Reset' | translate }}\"\n (click)=\"context.resetFilter()\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n title=\"{{ 'Apply' | translate }}\"\n (click)=\"applyFilter()\"\n translate\n >\n Apply\n </button>\n</div>\n" }]
1492
+ }], ctorParameters: () => [{ type: i1.FilteringFormRendererContext }, { type: i0.ChangeDetectorRef }, { type: RepositoryService }, { type: i0.ElementRef }], propDecorators: { typeahead: [{
1493
+ type: ViewChild,
1494
+ args: [TypeaheadComponent, { static: false }]
1495
+ }], onEnterKeyUp: [{
1496
+ type: HostListener,
1497
+ args: ['keyup.enter', ['$event']]
1498
+ }], onEscapeKeyDown: [{
1499
+ type: HostListener,
1500
+ args: ['keydown.escape', ['$event']]
1501
+ }] } });
1502
+
1503
+ class TypeGridColumn extends BaseColumn {
1504
+ constructor(initialColumnConfig) {
1505
+ super(initialColumnConfig);
1506
+ this.name = 'type';
1507
+ this.path = initialColumnConfig?.path ?? 'type';
1508
+ this.header = initialColumnConfig?.header ?? gettext('Type');
1509
+ this.repositoryType = initialColumnConfig?.repositoryType;
1510
+ this.cellRendererComponent = TypeCellRendererComponent;
1511
+ this.filterable = true;
1512
+ this.filteringFormRendererComponent = TypeFilteringFormRendererComponent;
1513
+ this.filteringConfig = {
1514
+ getFilter: query => {
1515
+ const filter = {};
1516
+ if (query.model[this.path]) {
1517
+ filter[this.path] = { __eq: query.model[this.path] };
1518
+ }
1519
+ return filter;
1520
+ }
1521
+ };
1522
+ this.sortable = true;
1523
+ this.sortingConfig = {
1524
+ pathSortingConfigs: [{ path: this.path }]
1525
+ };
1526
+ }
1527
+ }
1528
+
1327
1529
  class VersionsCellRendererComponent {
1328
1530
  constructor(context, repositoryService) {
1329
1531
  this.context = context;
@@ -1335,7 +1537,7 @@ class VersionsCellRendererComponent {
1335
1537
  return this.repositoryService.getBaseVersionsCount$(item).pipe(shareReplay(1));
1336
1538
  }
1337
1539
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: VersionsCellRendererComponent, deps: [{ token: i1.CellRendererContext }, { token: RepositoryService }], target: i0.ɵɵFactoryTarget.Component }); }
1338
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.9", type: VersionsCellRendererComponent, isStandalone: true, selector: "c8y-versions-cell-renderer", ngImport: i0, template: "@if (isLegacy(item)) {\n <span\n class=\"label label-warning m-l-auto-sm\"\n translate\n >\n Legacy\n </span>\n} @else {\n @if (getBaseVersionsCount$(item) | async; as baseVersionsCount) {\n <span class=\"badge badge-info m-l-auto-sm\">\n {{ baseVersionsCount }}\n </span>\n } @else {\n <span class=\"badge badge-info m-l-auto-sm\">\n <i\n class=\"icon-spin\"\n c8yIcon=\"circle-o-notch\"\n ></i>\n </span>\n }\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DeviceGridModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: RouterModule }] }); }
1540
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.9", type: VersionsCellRendererComponent, isStandalone: true, selector: "c8y-versions-cell-renderer", ngImport: i0, template: "@if (isLegacy(item)) {\n <span\n class=\"label label-warning m-l-auto-sm\"\n translate\n >\n Legacy\n </span>\n} @else {\n @if (getBaseVersionsCount$(item) | async; as baseVersionsCount) {\n <span class=\"badge badge-info m-l-auto-sm\">\n {{ baseVersionsCount }}\n </span>\n } @else {\n <span class=\"badge badge-info m-l-auto-sm\">\n <i\n class=\"icon-spin\"\n c8yIcon=\"circle-o-notch\"\n ></i>\n </span>\n }\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DeviceGridModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: RouterModule }] }); }
1339
1541
  }
1340
1542
  __decorate([
1341
1543
  memoize(property('id')),
@@ -1406,7 +1608,7 @@ class FileDownloadComponent {
1406
1608
  }
1407
1609
  }
1408
1610
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: FileDownloadComponent, deps: [{ token: RepositoryService }, { token: i1$1.InventoryBinaryService }, { token: i1.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
1409
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: FileDownloadComponent, selector: "c8y-file-download", inputs: { url: "url" }, ngImport: i0, template: "<a\n *ngIf=\"determineBehavior() === linkRenderType.LINK\"\n href=\"{{ url }}\"\n class=\"pointer\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n>\n {{ getBinaryName$(url) | async }}\n</a>\n\n<span *ngIf=\"determineBehavior() === linkRenderType.TEXTONLY\">{{\n getBinaryName$(url) | async\n}}</span>\n\n<span *ngIf=\"determineBehavior() === linkRenderType.DOWNLOAD\">\n <a *ngIf=\"!isDownloading\" class=\"pointer\" (click)=\"downloadFile()\">\n {{ getBinaryName$(url) | async }}\n </a>\n\n <span *ngIf=\"isDownloading\">\n <i c8yIcon=\"spinner\" class=\"icon-spin\"></i> {{ 'Downloading\u2026' | translate }}\n </span>\n</span>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
1611
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: FileDownloadComponent, selector: "c8y-file-download", inputs: { url: "url" }, ngImport: i0, template: "<a\n *ngIf=\"determineBehavior() === linkRenderType.LINK\"\n href=\"{{ url }}\"\n class=\"pointer\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n>\n {{ getBinaryName$(url) | async }}\n</a>\n\n<span *ngIf=\"determineBehavior() === linkRenderType.TEXTONLY\">{{\n getBinaryName$(url) | async\n}}</span>\n\n<span *ngIf=\"determineBehavior() === linkRenderType.DOWNLOAD\">\n <a *ngIf=\"!isDownloading\" class=\"pointer\" (click)=\"downloadFile()\">\n {{ getBinaryName$(url) | async }}\n </a>\n\n <span *ngIf=\"isDownloading\">\n <i c8yIcon=\"spinner\" class=\"icon-spin\"></i> {{ 'Downloading\u2026' | translate }}\n </span>\n</span>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
1410
1612
  }
1411
1613
  __decorate([
1412
1614
  memoize(),
@@ -1673,13 +1875,13 @@ class RepositorySelectModalComponent {
1673
1875
  };
1674
1876
  return selectModalObject;
1675
1877
  }
1676
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RepositorySelectModalComponent, deps: [{ token: RepositoryService }, { token: i2$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
1878
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RepositorySelectModalComponent, deps: [{ token: RepositoryService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
1677
1879
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: RepositorySelectModalComponent, selector: "c8y-repository-select-modal", providers: [
1678
1880
  {
1679
1881
  provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
1680
1882
  useExisting: forwardRef(() => RepositorySelectModalComponent)
1681
1883
  }
1682
- ], ngImport: i0, template: "<c8y-select-modal\n [icon]=\"icon\"\n [title]=\"title\"\n [subTitle]=\"subTitle\"\n [items]=\"modalEntries | async\"\n [mode]=\"mode\"\n [disableSelected]=\"disableSelected\"\n [labels]=\"labels\"\n [showFilter]=\"showFilter\"\n [additionalFilterTemplate]=\"additionalFilterTemplate\"\n [areMoreEntries]=\"areMoreEntries\"\n [noItemsMessage]=\"noItemsMessage\"\n [hideEmptyItems]=\"hideEmptyItems\"\n (search)=\"search({ name: $event })\"\n (onChoiceUpdated)=\"onChoiceUpdated.emit($event)\"\n (result)=\"result($event)\"\n c8yProductExperience\n inherit\n suppressDataOverriding\n [actionData]=\"{ component: PRODUCT_EXPERIENCE.SHARED.COMPONENTS.REPOSITORY_SELECT_MODAL }\"\n></c8y-select-modal>\n", dependencies: [{ kind: "component", type: i1.SelectModalComponent, selector: "c8y-select-modal", inputs: ["icon", "title", "subTitle", "items", "mode", "disableSelected", "showFilter", "additionalFilterTemplate", "areMoreEntries", "labels", "noItemsMessage", "hideEmptyItems"], outputs: ["result", "search", "onChoiceUpdated"] }, { kind: "directive", type: i1.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
1884
+ ], ngImport: i0, template: "<c8y-select-modal\n [icon]=\"icon\"\n [title]=\"title\"\n [subTitle]=\"subTitle\"\n [items]=\"modalEntries | async\"\n [mode]=\"mode\"\n [disableSelected]=\"disableSelected\"\n [labels]=\"labels\"\n [showFilter]=\"showFilter\"\n [additionalFilterTemplate]=\"additionalFilterTemplate\"\n [areMoreEntries]=\"areMoreEntries\"\n [noItemsMessage]=\"noItemsMessage\"\n [hideEmptyItems]=\"hideEmptyItems\"\n (search)=\"search({ name: $event })\"\n (onChoiceUpdated)=\"onChoiceUpdated.emit($event)\"\n (result)=\"result($event)\"\n c8yProductExperience\n inherit\n suppressDataOverriding\n [actionData]=\"{ component: PRODUCT_EXPERIENCE.SHARED.COMPONENTS.REPOSITORY_SELECT_MODAL }\"\n></c8y-select-modal>\n", dependencies: [{ kind: "component", type: i1.SelectModalComponent, selector: "c8y-select-modal", inputs: ["icon", "title", "subTitle", "items", "mode", "disableSelected", "showFilter", "additionalFilterTemplate", "areMoreEntries", "labels", "noItemsMessage", "hideEmptyItems"], outputs: ["result", "search", "onChoiceUpdated"] }, { kind: "directive", type: i1.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
1683
1885
  }
1684
1886
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RepositorySelectModalComponent, decorators: [{
1685
1887
  type: Component,
@@ -1689,7 +1891,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
1689
1891
  useExisting: forwardRef(() => RepositorySelectModalComponent)
1690
1892
  }
1691
1893
  ], template: "<c8y-select-modal\n [icon]=\"icon\"\n [title]=\"title\"\n [subTitle]=\"subTitle\"\n [items]=\"modalEntries | async\"\n [mode]=\"mode\"\n [disableSelected]=\"disableSelected\"\n [labels]=\"labels\"\n [showFilter]=\"showFilter\"\n [additionalFilterTemplate]=\"additionalFilterTemplate\"\n [areMoreEntries]=\"areMoreEntries\"\n [noItemsMessage]=\"noItemsMessage\"\n [hideEmptyItems]=\"hideEmptyItems\"\n (search)=\"search({ name: $event })\"\n (onChoiceUpdated)=\"onChoiceUpdated.emit($event)\"\n (result)=\"result($event)\"\n c8yProductExperience\n inherit\n suppressDataOverriding\n [actionData]=\"{ component: PRODUCT_EXPERIENCE.SHARED.COMPONENTS.REPOSITORY_SELECT_MODAL }\"\n></c8y-select-modal>\n" }]
1692
- }], ctorParameters: () => [{ type: RepositoryService }, { type: i2$1.TranslateService }] });
1894
+ }], ctorParameters: () => [{ type: RepositoryService }, { type: i2.TranslateService }] });
1693
1895
 
1694
1896
  class SoftwareTypeComponent {
1695
1897
  set presetSoftwareTypes(types) {
@@ -1795,7 +1997,7 @@ class SoftwareTypeComponent {
1795
1997
  uniqueBySoftwareType.forEach((sw) => this.softwareTypes.add(sw.softwareType));
1796
1998
  return uniqueBySoftwareType;
1797
1999
  }
1798
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SoftwareTypeComponent, deps: [{ token: RepositoryService }, { token: i0.ChangeDetectorRef }, { token: i2$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
2000
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SoftwareTypeComponent, deps: [{ token: RepositoryService }, { token: i0.ChangeDetectorRef }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
1799
2001
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: SoftwareTypeComponent, selector: "c8y-software-type", inputs: { softwareTypeMO: "softwareTypeMO", disabled: "disabled", style: "style", required: "required", placeholder: "placeholder", emitResultsOnly: "emitResultsOnly", showBtnInNotFoundMessage: "showBtnInNotFoundMessage", allowFreeEntries: "allowFreeEntries", showClearSelectionOption: "showClearSelectionOption", clearSelectionOptionLabel: "clearSelectionOptionLabel", presetSoftwareTypes: "presetSoftwareTypes" }, outputs: { onSelectSoftware: "onSelectSoftware" }, providers: [
1800
2002
  {
1801
2003
  provide: NG_VALUE_ACCESSOR,
@@ -1807,7 +2009,7 @@ class SoftwareTypeComponent {
1807
2009
  useExisting: forwardRef(() => SoftwareTypeComponent),
1808
2010
  multi: true
1809
2011
  }
1810
- ], viewQueries: [{ propertyName: "deviceSoftwareTypeModel", first: true, predicate: ["deviceSoftwareTypeModel"], descendants: true }, { propertyName: "notFoundTypeAddNewTemplate", first: true, predicate: ["notFoundTypeAddNewTemplate"], descendants: true, static: true }, { propertyName: "notFoundTypeTemplate", first: true, predicate: ["notFoundTypeTemplate"], descendants: true, static: true }], ngImport: i0, template: "<c8y-typeahead\n [(ngModel)]=\"softwareTypeMO\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n name=\"softwareType\"\n [placeholder]=\"placeholder\"\n [allowFreeEntries]=\"allowFreeEntries\"\n #deviceSoftwareTypeModel\n (onSearch)=\"search$.next($event)\"\n displayProperty=\"softwareType\"\n [ngStyle]=\"style\"\n>\n <c8y-li\n *ngIf=\"showClearSelectionOption\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"clearSoftware()\"\n [active]=\"!softwareTypeMO?.softwareType\"\n >\n <span>{{ clearSelectionOptionLabel | translate }}</span>\n </c8y-li>\n <c8y-li\n *c8yFor=\"\n let software of softwaresResult$;\n pipe: filterPipe;\n loadMore: 'auto';\n notFound: notFoundTemplateToUse\n \"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selectSoftware(software)\"\n [active]=\"softwareTypeMO?.softwareType === software.softwareType\"\n >\n <c8y-highlight\n [text]=\"software.softwareType || '--'\"\n [pattern]=\"search$ | async\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTypeAddNewTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"(search$ | async)?.length > 0\">\n <span translate>No match found.</span>\n <button\n title=\"{{ 'Add new`software type`' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary btn-xs m-l-8\"\n translate\n >\n Add new`software type`\n </button>\n </c8y-li>\n </ng-template>\n <ng-template #notFoundTypeTemplate>\n <c8y-li\n class=\"bg-level-2 p-8\"\n *ngIf=\"(search$ | async)?.length > 0 && (softwaresResult$ | async)?.data?.length === 0\"\n >\n <span translate>No match found. Refine your search terms or check your spelling.</span>\n </c8y-li>\n </ng-template>\n</c8y-typeahead>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i1.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i1.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
2012
+ ], viewQueries: [{ propertyName: "deviceSoftwareTypeModel", first: true, predicate: ["deviceSoftwareTypeModel"], descendants: true }, { propertyName: "notFoundTypeAddNewTemplate", first: true, predicate: ["notFoundTypeAddNewTemplate"], descendants: true, static: true }, { propertyName: "notFoundTypeTemplate", first: true, predicate: ["notFoundTypeTemplate"], descendants: true, static: true }], ngImport: i0, template: "<c8y-typeahead\n [(ngModel)]=\"softwareTypeMO\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n name=\"softwareType\"\n [placeholder]=\"placeholder\"\n [allowFreeEntries]=\"allowFreeEntries\"\n #deviceSoftwareTypeModel\n (onSearch)=\"search$.next($event)\"\n displayProperty=\"softwareType\"\n [ngStyle]=\"style\"\n>\n <c8y-li\n *ngIf=\"showClearSelectionOption\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"clearSoftware()\"\n [active]=\"!softwareTypeMO?.softwareType\"\n >\n <span>{{ clearSelectionOptionLabel | translate }}</span>\n </c8y-li>\n <c8y-li\n *c8yFor=\"\n let software of softwaresResult$;\n pipe: filterPipe;\n loadMore: 'auto';\n notFound: notFoundTemplateToUse\n \"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selectSoftware(software)\"\n [active]=\"softwareTypeMO?.softwareType === software.softwareType\"\n >\n <c8y-highlight\n [text]=\"software.softwareType || '--'\"\n [pattern]=\"search$ | async\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTypeAddNewTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"(search$ | async)?.length > 0\">\n <span translate>No match found.</span>\n <button\n title=\"{{ 'Add new`software type`' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary btn-xs m-l-8\"\n translate\n >\n Add new`software type`\n </button>\n </c8y-li>\n </ng-template>\n <ng-template #notFoundTypeTemplate>\n <c8y-li\n class=\"bg-level-2 p-8\"\n *ngIf=\"(search$ | async)?.length > 0 && (softwaresResult$ | async)?.data?.length === 0\"\n >\n <span translate>No match found. Refine your search terms or check your spelling.</span>\n </c8y-li>\n </ng-template>\n</c8y-typeahead>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i1.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i1.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
1811
2013
  }
1812
2014
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SoftwareTypeComponent, decorators: [{
1813
2015
  type: Component,
@@ -1823,7 +2025,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
1823
2025
  multi: true
1824
2026
  }
1825
2027
  ], template: "<c8y-typeahead\n [(ngModel)]=\"softwareTypeMO\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n name=\"softwareType\"\n [placeholder]=\"placeholder\"\n [allowFreeEntries]=\"allowFreeEntries\"\n #deviceSoftwareTypeModel\n (onSearch)=\"search$.next($event)\"\n displayProperty=\"softwareType\"\n [ngStyle]=\"style\"\n>\n <c8y-li\n *ngIf=\"showClearSelectionOption\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"clearSoftware()\"\n [active]=\"!softwareTypeMO?.softwareType\"\n >\n <span>{{ clearSelectionOptionLabel | translate }}</span>\n </c8y-li>\n <c8y-li\n *c8yFor=\"\n let software of softwaresResult$;\n pipe: filterPipe;\n loadMore: 'auto';\n notFound: notFoundTemplateToUse\n \"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selectSoftware(software)\"\n [active]=\"softwareTypeMO?.softwareType === software.softwareType\"\n >\n <c8y-highlight\n [text]=\"software.softwareType || '--'\"\n [pattern]=\"search$ | async\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTypeAddNewTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"(search$ | async)?.length > 0\">\n <span translate>No match found.</span>\n <button\n title=\"{{ 'Add new`software type`' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary btn-xs m-l-8\"\n translate\n >\n Add new`software type`\n </button>\n </c8y-li>\n </ng-template>\n <ng-template #notFoundTypeTemplate>\n <c8y-li\n class=\"bg-level-2 p-8\"\n *ngIf=\"(search$ | async)?.length > 0 && (softwaresResult$ | async)?.data?.length === 0\"\n >\n <span translate>No match found. Refine your search terms or check your spelling.</span>\n </c8y-li>\n </ng-template>\n</c8y-typeahead>\n" }]
1826
- }], ctorParameters: () => [{ type: RepositoryService }, { type: i0.ChangeDetectorRef }, { type: i2$1.TranslateService }], propDecorators: { softwareTypeMO: [{
2028
+ }], ctorParameters: () => [{ type: RepositoryService }, { type: i0.ChangeDetectorRef }, { type: i2.TranslateService }], propDecorators: { softwareTypeMO: [{
1827
2029
  type: Input
1828
2030
  }], disabled: [{
1829
2031
  type: Input
@@ -1860,13 +2062,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
1860
2062
 
1861
2063
  class SharedRepositoryModule {
1862
2064
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SharedRepositoryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1863
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: SharedRepositoryModule, declarations: [RepositorySelectModalComponent, FileDownloadComponent, SoftwareTypeComponent], imports: [CommonModule$1, CoreModule, FormsModule, PopoverModule], exports: [RepositorySelectModalComponent, FileDownloadComponent, SoftwareTypeComponent] }); }
1864
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SharedRepositoryModule, providers: [RepositoryService, OperationRealtimeService], imports: [CommonModule$1, CoreModule, FormsModule, PopoverModule] }); }
2065
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: SharedRepositoryModule, declarations: [RepositorySelectModalComponent, FileDownloadComponent, SoftwareTypeComponent], imports: [CommonModule$1, CoreModule, FormsModule$1, PopoverModule], exports: [RepositorySelectModalComponent, FileDownloadComponent, SoftwareTypeComponent] }); }
2066
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SharedRepositoryModule, providers: [RepositoryService, OperationRealtimeService], imports: [CommonModule$1, CoreModule, FormsModule$1, PopoverModule] }); }
1865
2067
  }
1866
2068
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SharedRepositoryModule, decorators: [{
1867
2069
  type: NgModule,
1868
2070
  args: [{
1869
- imports: [CommonModule$1, CoreModule, FormsModule, PopoverModule],
2071
+ imports: [CommonModule$1, CoreModule, FormsModule$1, PopoverModule],
1870
2072
  declarations: [RepositorySelectModalComponent, FileDownloadComponent, SoftwareTypeComponent],
1871
2073
  providers: [RepositoryService, OperationRealtimeService],
1872
2074
  exports: [RepositorySelectModalComponent, FileDownloadComponent, SoftwareTypeComponent]
@@ -1877,5 +2079,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
1877
2079
  * Generated bundle index. Do not edit.
1878
2080
  */
1879
2081
 
1880
- export { DescriptionGridColumn, DeviceConfigurationOperation, DeviceTypeGridColumn, FileDownloadComponent, PRODUCT_EXPERIENCE_REPOSITORY_SHARED, REPOSITORY_BINARY_TYPES, RepositoryItemNameGridColumn, RepositorySelectModalComponent, RepositoryService, RepositoryType, SharedRepositoryModule, SoftwareTypeComponent, VersionsGridColumn };
2082
+ export { DescriptionGridColumn, DeviceConfigurationOperation, DeviceTypeCellRendererComponent, DeviceTypeGridColumn, FileCellRendererComponent, FileDownloadComponent, FileGridColumn, LinkRenderType, PRODUCT_EXPERIENCE_REPOSITORY_SHARED, REPOSITORY_BINARY_TYPES, RepositoryItemNameCellRendererComponent, RepositoryItemNameGridColumn, RepositorySelectModalComponent, RepositoryService, RepositoryType, SharedRepositoryModule, SoftwareTypeComponent, TypeCellRendererComponent, TypeFilteringFormRendererComponent, TypeGridColumn, VersionsCellRendererComponent, VersionsGridColumn };
1881
2083
  //# sourceMappingURL=c8y-ngx-components-repository-shared.mjs.map