@c8y/ngx-components 1021.22.81 → 1021.22.88

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 (70) hide show
  1. package/branding/shared/supports-branding.service.d.ts.map +1 -1
  2. package/core/login/login.component.d.ts.map +1 -1
  3. package/core/login/login.service.d.ts +1 -0
  4. package/core/login/login.service.d.ts.map +1 -1
  5. package/core/navigator/navigator-bottom/navigator-bottom.service.d.ts +3 -1
  6. package/core/navigator/navigator-bottom/navigator-bottom.service.d.ts.map +1 -1
  7. package/esm2022/branding/shared/supports-branding.service.mjs +6 -3
  8. package/esm2022/core/login/login.component.mjs +2 -1
  9. package/esm2022/core/login/login.service.mjs +5 -1
  10. package/esm2022/core/navigator/navigator-bottom/navigator-bottom.service.mjs +13 -6
  11. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-processing.service.mjs +3 -3
  12. package/esm2022/operations/bulk-operations-service/bulk-operations.service.mjs +21 -2
  13. package/esm2022/operations/bulk-single-operations-list/bulk-single-operations-list.module.mjs +9 -7
  14. package/esm2022/operations/bulk-single-operations-list/single-operation-item.component.mjs +4 -1
  15. package/esm2022/operations/bulk-single-operations-list/single-operations-list.component.mjs +94 -20
  16. package/esm2022/operations/grid-columns/c8y-ngx-components-operations-grid-columns.mjs +5 -0
  17. package/esm2022/operations/grid-columns/creation-time.cell-renderer.component.mjs +28 -0
  18. package/esm2022/operations/grid-columns/creation-time.grid-column.mjs +14 -0
  19. package/esm2022/operations/grid-columns/device.cell-renderer.component.mjs +50 -0
  20. package/esm2022/operations/grid-columns/device.grid-column.mjs +14 -0
  21. package/esm2022/operations/grid-columns/failure-reason.cell-renderer.component.mjs +54 -0
  22. package/esm2022/operations/grid-columns/failure-reason.grid-column.mjs +14 -0
  23. package/esm2022/operations/grid-columns/index.mjs +9 -0
  24. package/esm2022/operations/grid-columns/status.cell-renderer.component.mjs +43 -0
  25. package/esm2022/operations/grid-columns/status.grid-column.mjs +15 -0
  26. package/fesm2022/c8y-ngx-components-branding-shared.mjs +5 -2
  27. package/fesm2022/c8y-ngx-components-branding-shared.mjs.map +1 -1
  28. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +2 -2
  29. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  30. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs +20 -1
  31. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs.map +1 -1
  32. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +102 -21
  33. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs.map +1 -1
  34. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +214 -0
  35. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs.map +1 -0
  36. package/fesm2022/c8y-ngx-components.mjs +15 -5
  37. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  38. package/locales/ja_JP.po +1 -1
  39. package/locales/ko.po +1 -1
  40. package/locales/pl.po +1 -1
  41. package/locales/zh_CN.po +1 -1
  42. package/locales/zh_TW.po +1 -1
  43. package/operations/bulk-operations-service/bulk-operations.service.d.ts +5 -3
  44. package/operations/bulk-operations-service/bulk-operations.service.d.ts.map +1 -1
  45. package/operations/bulk-single-operations-list/bulk-single-operations-list.module.d.ts +10 -8
  46. package/operations/bulk-single-operations-list/bulk-single-operations-list.module.d.ts.map +1 -1
  47. package/operations/bulk-single-operations-list/single-operation-item.component.d.ts +3 -0
  48. package/operations/bulk-single-operations-list/single-operation-item.component.d.ts.map +1 -1
  49. package/operations/bulk-single-operations-list/single-operations-list.component.d.ts +18 -4
  50. package/operations/bulk-single-operations-list/single-operations-list.component.d.ts.map +1 -1
  51. package/operations/grid-columns/c8y-ngx-components-operations-grid-columns.d.ts.map +1 -0
  52. package/operations/grid-columns/creation-time.cell-renderer.component.d.ts +9 -0
  53. package/operations/grid-columns/creation-time.cell-renderer.component.d.ts.map +1 -0
  54. package/operations/grid-columns/creation-time.grid-column.d.ts +5 -0
  55. package/operations/grid-columns/creation-time.grid-column.d.ts.map +1 -0
  56. package/operations/grid-columns/device.cell-renderer.component.d.ts +14 -0
  57. package/operations/grid-columns/device.cell-renderer.component.d.ts.map +1 -0
  58. package/operations/grid-columns/device.grid-column.d.ts +5 -0
  59. package/operations/grid-columns/device.grid-column.d.ts.map +1 -0
  60. package/operations/grid-columns/failure-reason.cell-renderer.component.d.ts +9 -0
  61. package/operations/grid-columns/failure-reason.cell-renderer.component.d.ts.map +1 -0
  62. package/operations/grid-columns/failure-reason.grid-column.d.ts +5 -0
  63. package/operations/grid-columns/failure-reason.grid-column.d.ts.map +1 -0
  64. package/operations/grid-columns/index.d.ts +9 -0
  65. package/operations/grid-columns/index.d.ts.map +1 -0
  66. package/operations/grid-columns/status.cell-renderer.component.d.ts +11 -0
  67. package/operations/grid-columns/status.cell-renderer.component.d.ts.map +1 -0
  68. package/operations/grid-columns/status.grid-column.d.ts +5 -0
  69. package/operations/grid-columns/status.grid-column.d.ts.map +1 -0
  70. package/package.json +1 -1
@@ -0,0 +1,28 @@
1
+ import { Component } from '@angular/core';
2
+ import { CellRendererContext, CommonModule } from '@c8y/ngx-components';
3
+ import { TooltipModule } from 'ngx-bootstrap/tooltip';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@c8y/ngx-components";
6
+ export class CreationTimeCellRendererComponent {
7
+ constructor(context) {
8
+ this.context = context;
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CreationTimeCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: CreationTimeCellRendererComponent, isStandalone: true, selector: "c8y-creation-time-cell-renderer", ngImport: i0, template: `<small class="icon-flex text-muted">
12
+ <i class="m-r-4" c8yIcon="calendar"></i>
13
+ {{ context.item.creationTime | c8yDate }}
14
+ </small>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i1.DatePipe, name: "c8yDate" }, { kind: "ngmodule", type: TooltipModule }] }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CreationTimeCellRendererComponent, decorators: [{
17
+ type: Component,
18
+ args: [{
19
+ template: `<small class="icon-flex text-muted">
20
+ <i class="m-r-4" c8yIcon="calendar"></i>
21
+ {{ context.item.creationTime | c8yDate }}
22
+ </small>`,
23
+ selector: 'c8y-creation-time-cell-renderer',
24
+ standalone: true,
25
+ imports: [CommonModule, TooltipModule]
26
+ }]
27
+ }], ctorParameters: () => [{ type: i1.CellRendererContext }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRpb24tdGltZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL29wZXJhdGlvbnMvZ3JpZC1jb2x1bW5zL2NyZWF0aW9uLXRpbWUuY2VsbC1yZW5kZXJlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFXdEQsTUFBTSxPQUFPLGlDQUFpQztJQUM1QyxZQUFtQixPQUE0QjtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtJQUFHLENBQUM7OEdBRHhDLGlDQUFpQztrR0FBakMsaUNBQWlDLDJGQVJsQzs7O1dBR0QsMkRBR0MsWUFBWSwrS0FBRSxhQUFhOzsyRkFFMUIsaUNBQWlDO2tCQVQ3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7O1dBR0Q7b0JBQ1QsUUFBUSxFQUFFLGlDQUFpQztvQkFDM0MsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7aUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZWxsUmVuZGVyZXJDb250ZXh0LCBDb21tb25Nb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Rvb2x0aXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGA8c21hbGwgY2xhc3M9XCJpY29uLWZsZXggdGV4dC1tdXRlZFwiPlxuICAgIDxpIGNsYXNzPVwibS1yLTRcIiBjOHlJY29uPVwiY2FsZW5kYXJcIj48L2k+XG4gICAge3sgY29udGV4dC5pdGVtLmNyZWF0aW9uVGltZSB8IGM4eURhdGUgfX1cbiAgPC9zbWFsbD5gLFxuICBzZWxlY3RvcjogJ2M4eS1jcmVhdGlvbi10aW1lLWNlbGwtcmVuZGVyZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUb29sdGlwTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGlvblRpbWVDZWxsUmVuZGVyZXJDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29udGV4dDogQ2VsbFJlbmRlcmVyQ29udGV4dCkge31cbn1cbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { BaseColumn, gettext } from '@c8y/ngx-components';
2
+ import { CreationTimeCellRendererComponent } from './creation-time.cell-renderer.component';
3
+ export class CreationTimeGridColumn extends BaseColumn {
4
+ constructor(initialColumnConfig) {
5
+ super(initialColumnConfig);
6
+ this.name = 'creationTime';
7
+ this.path = 'creationTime';
8
+ this.header = gettext('Creation time');
9
+ this.cellRendererComponent = CreationTimeCellRendererComponent;
10
+ this.filterable = false;
11
+ this.sortable = false;
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRpb24tdGltZS5ncmlkLWNvbHVtbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL29wZXJhdGlvbnMvZ3JpZC1jb2x1bW5zL2NyZWF0aW9uLXRpbWUuZ3JpZC1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFNUYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFVBQVU7SUFDcEQsWUFBWSxtQkFBa0M7UUFDNUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUM7UUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLGlDQUFpQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2x1bW4sIENvbHVtbkNvbmZpZywgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3JlYXRpb25UaW1lQ2VsbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jcmVhdGlvbi10aW1lLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIENyZWF0aW9uVGltZUdyaWRDb2x1bW4gZXh0ZW5kcyBCYXNlQ29sdW1uIHtcbiAgY29uc3RydWN0b3IoaW5pdGlhbENvbHVtbkNvbmZpZz86IENvbHVtbkNvbmZpZykge1xuICAgIHN1cGVyKGluaXRpYWxDb2x1bW5Db25maWcpO1xuICAgIHRoaXMubmFtZSA9ICdjcmVhdGlvblRpbWUnO1xuICAgIHRoaXMucGF0aCA9ICdjcmVhdGlvblRpbWUnO1xuICAgIHRoaXMuaGVhZGVyID0gZ2V0dGV4dCgnQ3JlYXRpb24gdGltZScpO1xuICAgIHRoaXMuY2VsbFJlbmRlcmVyQ29tcG9uZW50ID0gQ3JlYXRpb25UaW1lQ2VsbFJlbmRlcmVyQ29tcG9uZW50O1xuXG4gICAgdGhpcy5maWx0ZXJhYmxlID0gZmFsc2U7XG4gICAgdGhpcy5zb3J0YWJsZSA9IGZhbHNlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { Component, inject } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { InventoryService } from '@c8y/client';
4
+ import { CellRendererContext, CommonModule, DeviceStatusModule } from '@c8y/ngx-components';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@c8y/ngx-components";
7
+ import * as i2 from "@angular/router";
8
+ export class DeviceCellRendererComponent {
9
+ constructor(context) {
10
+ this.context = context;
11
+ this.inventoryService = inject(InventoryService);
12
+ }
13
+ async ngOnInit() {
14
+ this.device = (await this.inventoryService.detail(this.context.item.deviceId))?.data;
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DeviceCellRendererComponent, isStandalone: true, selector: "c8y-operation-device-cell-renderer", ngImport: i0, template: `
18
+ <span class="m-r-4">
19
+ <device-status [mo]="device || {}"></device-status>
20
+ </span>
21
+ <a
22
+ class="interact"
23
+ [title]="context.item.deviceName"
24
+ [routerLink]="['/device', context.item.deviceId, 'device-info']"
25
+ >
26
+ {{ context.item.deviceName }}
27
+ </a>
28
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: DeviceStatusModule }, { kind: "component", type: i1.DeviceStatusComponent, selector: "device-status, c8y-device-status", inputs: ["mo", "size"] }] }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceCellRendererComponent, decorators: [{
31
+ type: Component,
32
+ args: [{
33
+ template: `
34
+ <span class="m-r-4">
35
+ <device-status [mo]="device || {}"></device-status>
36
+ </span>
37
+ <a
38
+ class="interact"
39
+ [title]="context.item.deviceName"
40
+ [routerLink]="['/device', context.item.deviceId, 'device-info']"
41
+ >
42
+ {{ context.item.deviceName }}
43
+ </a>
44
+ `,
45
+ selector: 'c8y-operation-device-cell-renderer',
46
+ standalone: true,
47
+ imports: [CommonModule, RouterModule, DeviceStatusModule]
48
+ }]
49
+ }], ctorParameters: () => [{ type: i1.CellRendererContext }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vb3BlcmF0aW9ucy9ncmlkLWNvbHVtbnMvZGV2aWNlLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBb0I1RixNQUFNLE9BQU8sMkJBQTJCO0lBS3RDLFlBQW1CLE9BQTRCO1FBQTVCLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBRnZDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRUYsQ0FBQztJQUVuRCxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUM7SUFDdkYsQ0FBQzs4R0FUVSwyQkFBMkI7a0dBQTNCLDJCQUEyQiw4RkFoQjVCOzs7Ozs7Ozs7OztHQVdULDJEQUdTLFlBQVksOEJBQUUsWUFBWSwrUUFBRSxrQkFBa0I7OzJGQUU3QywyQkFBMkI7a0JBakJ2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7R0FXVDtvQkFDRCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsQ0FBQztpQkFDMUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW52ZW50b3J5U2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IENlbGxSZW5kZXJlckNvbnRleHQsIENvbW1vbk1vZHVsZSwgRGV2aWNlU3RhdHVzTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCB9IGZyb20gJ3BhY2thZ2VzL2NsaWVudC9saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8c3BhbiBjbGFzcz1cIm0tci00XCI+XG4gICAgICA8ZGV2aWNlLXN0YXR1cyBbbW9dPVwiZGV2aWNlIHx8IHt9XCI+PC9kZXZpY2Utc3RhdHVzPlxuICAgIDwvc3Bhbj5cbiAgICA8YVxuICAgICAgY2xhc3M9XCJpbnRlcmFjdFwiXG4gICAgICBbdGl0bGVdPVwiY29udGV4dC5pdGVtLmRldmljZU5hbWVcIlxuICAgICAgW3JvdXRlckxpbmtdPVwiWycvZGV2aWNlJywgY29udGV4dC5pdGVtLmRldmljZUlkLCAnZGV2aWNlLWluZm8nXVwiXG4gICAgPlxuICAgICAge3sgY29udGV4dC5pdGVtLmRldmljZU5hbWUgfX1cbiAgICA8L2E+XG4gIGAsXG4gIHNlbGVjdG9yOiAnYzh5LW9wZXJhdGlvbi1kZXZpY2UtY2VsbC1yZW5kZXJlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZSwgRGV2aWNlU3RhdHVzTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBEZXZpY2VDZWxsUmVuZGVyZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBkZXZpY2U6IElNYW5hZ2VkT2JqZWN0O1xuXG4gIHByaXZhdGUgaW52ZW50b3J5U2VydmljZSA9IGluamVjdChJbnZlbnRvcnlTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29udGV4dDogQ2VsbFJlbmRlcmVyQ29udGV4dCkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRldmljZSA9IChhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UuZGV0YWlsKHRoaXMuY29udGV4dC5pdGVtLmRldmljZUlkKSk/LmRhdGE7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { BaseColumn, gettext } from '@c8y/ngx-components';
2
+ import { DeviceCellRendererComponent } from './device.cell-renderer.component';
3
+ export class DeviceGridColumn extends BaseColumn {
4
+ constructor(initialColumnConfig) {
5
+ super(initialColumnConfig);
6
+ this.name = 'deviceName';
7
+ this.path = 'deviceName';
8
+ this.header = gettext('Device');
9
+ this.cellRendererComponent = DeviceCellRendererComponent;
10
+ this.filterable = false;
11
+ this.sortable = false;
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLmdyaWQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vb3BlcmF0aW9ucy9ncmlkLWNvbHVtbnMvZGV2aWNlLmdyaWQtY29sdW1uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRS9FLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxVQUFVO0lBQzlDLFlBQVksbUJBQWtDO1FBQzVDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRywyQkFBMkIsQ0FBQztRQUV6RCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29sdW1uLCBDb2x1bW5Db25maWcsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IERldmljZUNlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vZGV2aWNlLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIERldmljZUdyaWRDb2x1bW4gZXh0ZW5kcyBCYXNlQ29sdW1uIHtcbiAgY29uc3RydWN0b3IoaW5pdGlhbENvbHVtbkNvbmZpZz86IENvbHVtbkNvbmZpZykge1xuICAgIHN1cGVyKGluaXRpYWxDb2x1bW5Db25maWcpO1xuICAgIHRoaXMubmFtZSA9ICdkZXZpY2VOYW1lJztcbiAgICB0aGlzLnBhdGggPSAnZGV2aWNlTmFtZSc7XG4gICAgdGhpcy5oZWFkZXIgPSBnZXR0ZXh0KCdEZXZpY2UnKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlckNvbXBvbmVudCA9IERldmljZUNlbGxSZW5kZXJlckNvbXBvbmVudDtcblxuICAgIHRoaXMuZmlsdGVyYWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuc29ydGFibGUgPSBmYWxzZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,54 @@
1
+ import { Component } from '@angular/core';
2
+ import { CellRendererContext, CommonModule } from '@c8y/ngx-components';
3
+ import { TooltipModule } from 'ngx-bootstrap/tooltip';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@c8y/ngx-components";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "ngx-bootstrap/tooltip";
8
+ export class FailureReasonCellRendererComponent {
9
+ constructor(context) {
10
+ this.context = context;
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FailureReasonCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: FailureReasonCellRendererComponent, isStandalone: true, selector: "c8y-failure-reason-cell-renderer", ngImport: i0, template: ` <div class="d-flex">
14
+ <span class="text-truncate" #failureReason>
15
+ {{ context.value | translate }}
16
+ </span>
17
+ <button
18
+ class="btn-help btn-help--sm"
19
+ [attr.aria-label]="'Help' | translate"
20
+ [tooltip]="context.value | translate"
21
+ placement="left"
22
+ container="body"
23
+ type="button"
24
+ *ngIf="failureReason.offsetWidth < failureReason.scrollWidth"
25
+ >
26
+ <i [c8yIcon]="'info-circle'"></i>
27
+ </button>
28
+ </div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }] }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FailureReasonCellRendererComponent, decorators: [{
31
+ type: Component,
32
+ args: [{
33
+ template: ` <div class="d-flex">
34
+ <span class="text-truncate" #failureReason>
35
+ {{ context.value | translate }}
36
+ </span>
37
+ <button
38
+ class="btn-help btn-help--sm"
39
+ [attr.aria-label]="'Help' | translate"
40
+ [tooltip]="context.value | translate"
41
+ placement="left"
42
+ container="body"
43
+ type="button"
44
+ *ngIf="failureReason.offsetWidth < failureReason.scrollWidth"
45
+ >
46
+ <i [c8yIcon]="'info-circle'"></i>
47
+ </button>
48
+ </div>`,
49
+ selector: 'c8y-failure-reason-cell-renderer',
50
+ standalone: true,
51
+ imports: [CommonModule, TooltipModule]
52
+ }]
53
+ }], ctorParameters: () => [{ type: i1.CellRendererContext }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFpbHVyZS1yZWFzb24uY2VsbC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2dyaWQtY29sdW1ucy9mYWlsdXJlLXJlYXNvbi5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBdUJ0RCxNQUFNLE9BQU8sa0NBQWtDO0lBQzdDLFlBQW1CLE9BQTRCO1FBQTVCLFlBQU8sR0FBUCxPQUFPLENBQXFCO0lBQUcsQ0FBQzs4R0FEeEMsa0NBQWtDO2tHQUFsQyxrQ0FBa0MsNEZBcEJuQzs7Ozs7Ozs7Ozs7Ozs7O1NBZUgsMkRBR0csWUFBWSw2UkFBRSxhQUFhOzsyRkFFMUIsa0NBQWtDO2tCQXJCOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztTQWVIO29CQUNQLFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDO2lCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2VsbFJlbmRlcmVyQ29udGV4dCwgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90b29sdGlwJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIiAjZmFpbHVyZVJlYXNvbj5cbiAgICAgIHt7IGNvbnRleHQudmFsdWUgfCB0cmFuc2xhdGUgfX1cbiAgICA8L3NwYW4+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4taGVscCBidG4taGVscC0tc21cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgW3Rvb2x0aXBdPVwiY29udGV4dC52YWx1ZSB8IHRyYW5zbGF0ZVwiXG4gICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAqbmdJZj1cImZhaWx1cmVSZWFzb24ub2Zmc2V0V2lkdGggPCBmYWlsdXJlUmVhc29uLnNjcm9sbFdpZHRoXCJcbiAgICA+XG4gICAgICA8aSBbYzh5SWNvbl09XCInaW5mby1jaXJjbGUnXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5gLFxuICBzZWxlY3RvcjogJ2M4eS1mYWlsdXJlLXJlYXNvbi1jZWxsLXJlbmRlcmVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVG9vbHRpcE1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRmFpbHVyZVJlYXNvbkNlbGxSZW5kZXJlckNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb250ZXh0OiBDZWxsUmVuZGVyZXJDb250ZXh0KSB7fVxufVxuIl19
@@ -0,0 +1,14 @@
1
+ import { BaseColumn, gettext } from '@c8y/ngx-components';
2
+ import { FailureReasonCellRendererComponent } from './failure-reason.cell-renderer.component';
3
+ export class FailureReasonGridColumn extends BaseColumn {
4
+ constructor(initialColumnConfig) {
5
+ super(initialColumnConfig);
6
+ this.name = 'failureReason';
7
+ this.path = 'failureReason';
8
+ this.header = gettext('Failure reason');
9
+ this.cellRendererComponent = FailureReasonCellRendererComponent;
10
+ this.filterable = false;
11
+ this.sortable = false;
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFpbHVyZS1yZWFzb24uZ3JpZC1jb2x1bW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2dyaWQtY29sdW1ucy9mYWlsdXJlLXJlYXNvbi5ncmlkLWNvbHVtbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFnQixPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU5RixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsVUFBVTtJQUNyRCxZQUFZLG1CQUFrQztRQUM1QyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxrQ0FBa0MsQ0FBQztRQUVoRSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29sdW1uLCBDb2x1bW5Db25maWcsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEZhaWx1cmVSZWFzb25DZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2ZhaWx1cmUtcmVhc29uLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIEZhaWx1cmVSZWFzb25HcmlkQ29sdW1uIGV4dGVuZHMgQmFzZUNvbHVtbiB7XG4gIGNvbnN0cnVjdG9yKGluaXRpYWxDb2x1bW5Db25maWc/OiBDb2x1bW5Db25maWcpIHtcbiAgICBzdXBlcihpbml0aWFsQ29sdW1uQ29uZmlnKTtcbiAgICB0aGlzLm5hbWUgPSAnZmFpbHVyZVJlYXNvbic7XG4gICAgdGhpcy5wYXRoID0gJ2ZhaWx1cmVSZWFzb24nO1xuICAgIHRoaXMuaGVhZGVyID0gZ2V0dGV4dCgnRmFpbHVyZSByZWFzb24nKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlckNvbXBvbmVudCA9IEZhaWx1cmVSZWFzb25DZWxsUmVuZGVyZXJDb21wb25lbnQ7XG5cbiAgICB0aGlzLmZpbHRlcmFibGUgPSBmYWxzZTtcbiAgICB0aGlzLnNvcnRhYmxlID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ export * from './creation-time.cell-renderer.component';
2
+ export * from './creation-time.grid-column';
3
+ export * from './device.cell-renderer.component';
4
+ export * from './device.grid-column';
5
+ export * from './failure-reason.cell-renderer.component';
6
+ export * from './failure-reason.grid-column';
7
+ export * from './status.cell-renderer.component';
8
+ export * from './status.grid-column';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2dyaWQtY29sdW1ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NyZWF0aW9uLXRpbWUuY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGlvbi10aW1lLmdyaWQtY29sdW1uJztcbmV4cG9ydCAqIGZyb20gJy4vZGV2aWNlLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGV2aWNlLmdyaWQtY29sdW1uJztcbmV4cG9ydCAqIGZyb20gJy4vZmFpbHVyZS1yZWFzb24uY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mYWlsdXJlLXJlYXNvbi5ncmlkLWNvbHVtbic7XG5leHBvcnQgKiBmcm9tICcuL3N0YXR1cy5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXR1cy5ncmlkLWNvbHVtbic7XG4iXX0=
@@ -0,0 +1,43 @@
1
+ import { Component } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { C8yTranslatePipe, CellRendererContext, CommonModule } from '@c8y/ngx-components';
4
+ import { OPERATION_STATUS_OPTIONS_MAP } from '@c8y/ngx-components/operations/shared';
5
+ import { TooltipModule } from 'ngx-bootstrap/tooltip';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@c8y/ngx-components";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "ngx-bootstrap/tooltip";
10
+ export class StatusCellRendererComponent {
11
+ constructor(context) {
12
+ this.context = context;
13
+ this.OPERATION_STATUS_OPTIONS_MAP = OPERATION_STATUS_OPTIONS_MAP;
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: StatusCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: StatusCellRendererComponent, isStandalone: true, selector: "c8y-operation-status-cell-renderer", ngImport: i0, template: `
17
+ <i
18
+ [c8yIcon]="OPERATION_STATUS_OPTIONS_MAP[context.item.status].icon"
19
+ style="font-size: 20px"
20
+ [tooltip]="context.item.status.toString() | translate"
21
+ container="body"
22
+ [ngClass]="OPERATION_STATUS_OPTIONS_MAP[context.item.status].styleClass"
23
+ ></i>
24
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }] }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: StatusCellRendererComponent, decorators: [{
27
+ type: Component,
28
+ args: [{
29
+ template: `
30
+ <i
31
+ [c8yIcon]="OPERATION_STATUS_OPTIONS_MAP[context.item.status].icon"
32
+ style="font-size: 20px"
33
+ [tooltip]="context.item.status.toString() | translate"
34
+ container="body"
35
+ [ngClass]="OPERATION_STATUS_OPTIONS_MAP[context.item.status].styleClass"
36
+ ></i>
37
+ `,
38
+ selector: 'c8y-operation-status-cell-renderer',
39
+ standalone: true,
40
+ imports: [CommonModule, RouterModule, C8yTranslatePipe, TooltipModule]
41
+ }]
42
+ }], ctorParameters: () => [{ type: i1.CellRendererContext }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vb3BlcmF0aW9ucy9ncmlkLWNvbHVtbnMvc3RhdHVzLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRixPQUFPLEVBQ0wsNEJBQTRCLEVBRTdCLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQWdCdEQsTUFBTSxPQUFPLDJCQUEyQjtJQUV0QyxZQUFtQixPQUE0QjtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUQvQyxpQ0FBNEIsR0FBb0MsNEJBQTRCLENBQUM7SUFDM0MsQ0FBQzs4R0FGeEMsMkJBQTJCO2tHQUEzQiwyQkFBMkIsOEZBYjVCOzs7Ozs7OztHQVFULDJEQUdTLFlBQVksdVJBQUUsWUFBWSw4QkFBb0IsYUFBYTs7MkZBRTFELDJCQUEyQjtrQkFkdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7O0dBUVQ7b0JBQ0QsUUFBUSxFQUFFLG9DQUFvQztvQkFDOUMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDO2lCQUN2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEM4eVRyYW5zbGF0ZVBpcGUsIENlbGxSZW5kZXJlckNvbnRleHQsIENvbW1vbk1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUCxcbiAgT3BlcmF0aW9uU3RhdHVzT3B0aW9uc01hcFNoYXJlZFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL29wZXJhdGlvbnMvc2hhcmVkJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Rvb2x0aXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8aVxuICAgICAgW2M4eUljb25dPVwiT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUFtjb250ZXh0Lml0ZW0uc3RhdHVzXS5pY29uXCJcbiAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAyMHB4XCJcbiAgICAgIFt0b29sdGlwXT1cImNvbnRleHQuaXRlbS5zdGF0dXMudG9TdHJpbmcoKSB8IHRyYW5zbGF0ZVwiXG4gICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgIFtuZ0NsYXNzXT1cIk9QRVJBVElPTl9TVEFUVVNfT1BUSU9OU19NQVBbY29udGV4dC5pdGVtLnN0YXR1c10uc3R5bGVDbGFzc1wiXG4gICAgPjwvaT5cbiAgYCxcbiAgc2VsZWN0b3I6ICdjOHktb3BlcmF0aW9uLXN0YXR1cy1jZWxsLXJlbmRlcmVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBDOHlUcmFuc2xhdGVQaXBlLCBUb29sdGlwTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBTdGF0dXNDZWxsUmVuZGVyZXJDb21wb25lbnQge1xuICBPUEVSQVRJT05fU1RBVFVTX09QVElPTlNfTUFQOiBPcGVyYXRpb25TdGF0dXNPcHRpb25zTWFwU2hhcmVkID0gT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUDtcbiAgY29uc3RydWN0b3IocHVibGljIGNvbnRleHQ6IENlbGxSZW5kZXJlckNvbnRleHQpIHt9XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { BaseColumn, gettext } from '@c8y/ngx-components';
2
+ import { StatusCellRendererComponent } from './status.cell-renderer.component';
3
+ export class OperationStatusGridColumn extends BaseColumn {
4
+ constructor(initialColumnConfig) {
5
+ super(initialColumnConfig);
6
+ this.name = 'status';
7
+ this.path = 'status';
8
+ this.header = gettext('Status');
9
+ this.cellRendererComponent = StatusCellRendererComponent;
10
+ this.filterable = false;
11
+ this.sortable = false;
12
+ this.gridTrackSize = '76px';
13
+ }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmdyaWQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vb3BlcmF0aW9ucy9ncmlkLWNvbHVtbnMvc3RhdHVzLmdyaWQtY29sdW1uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRS9FLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxVQUFVO0lBQ3ZELFlBQVksbUJBQWtDO1FBQzVDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRywyQkFBMkIsQ0FBQztRQUV6RCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUV0QixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29sdW1uLCBDb2x1bW5Db25maWcsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFN0YXR1c0NlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vc3RhdHVzLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvblN0YXR1c0dyaWRDb2x1bW4gZXh0ZW5kcyBCYXNlQ29sdW1uIHtcbiAgY29uc3RydWN0b3IoaW5pdGlhbENvbHVtbkNvbmZpZz86IENvbHVtbkNvbmZpZykge1xuICAgIHN1cGVyKGluaXRpYWxDb2x1bW5Db25maWcpO1xuICAgIHRoaXMubmFtZSA9ICdzdGF0dXMnO1xuICAgIHRoaXMucGF0aCA9ICdzdGF0dXMnO1xuICAgIHRoaXMuaGVhZGVyID0gZ2V0dGV4dCgnU3RhdHVzJyk7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXJDb21wb25lbnQgPSBTdGF0dXNDZWxsUmVuZGVyZXJDb21wb25lbnQ7XG5cbiAgICB0aGlzLmZpbHRlcmFibGUgPSBmYWxzZTtcbiAgICB0aGlzLnNvcnRhYmxlID0gZmFsc2U7XG5cbiAgICB0aGlzLmdyaWRUcmFja1NpemUgPSAnNzZweCc7XG4gIH1cbn1cbiJdfQ==
@@ -18,10 +18,13 @@ class SupportsBrandingService {
18
18
  this.node = new NavigatorNode({
19
19
  featureId: 'branding-editor',
20
20
  label: 'Branding',
21
- path: 'branding-editor',
21
+ // will be redirected to the branding-editor route
22
+ // TODO: change back to branding-editor when angular JS implementation is removed (1022.0.0)
23
+ path: 'branding',
22
24
  icon: 'palette',
23
25
  parent: 'Settings',
24
- routerLinkExact: false
26
+ routerLinkExact: false,
27
+ preventDuplicates: true
25
28
  });
26
29
  }
27
30
  get() {
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-branding-shared.mjs","sources":["../../branding/shared/supports-branding.service.ts","../../branding/shared/branding-tab.factory.ts","../../branding/shared/shared-branding.module.ts","../../branding/shared/c8y-ngx-components-branding-shared.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { CanActivate, UrlTree } from '@angular/router';\nimport { AppStateService, ExtensionFactory, NavigatorNode } from '@c8y/ngx-components';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class SupportsBrandingService implements CanActivate, ExtensionFactory<NavigatorNode> {\n private supportsBranding$: Observable<boolean>;\n private node: NavigatorNode;\n constructor(private appState: AppStateService) {\n this.supportsBranding$ = this.appState.currentAppsOfUser.pipe(\n map(apps => {\n const brandingFeatureApp = apps.find(\n app => app.name === 'feature-branding' && app.owner?.tenant?.id === 'management'\n );\n return !!brandingFeatureApp;\n }),\n shareReplay(1)\n );\n this.node = new NavigatorNode({\n featureId: 'branding-editor',\n label: 'Branding',\n path: 'branding-editor',\n icon: 'palette',\n parent: 'Settings',\n routerLinkExact: false\n });\n }\n\n get(): Observable<NavigatorNode | NavigatorNode[]> {\n return this.supportsBranding$.pipe(\n map(supported => {\n if (supported) {\n return this.node;\n }\n return [];\n })\n );\n }\n\n canActivate(): boolean | UrlTree | Observable<boolean | UrlTree> | Promise<boolean | UrlTree> {\n return this.supportsBranding$;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ExtensionFactory, Tab, gettext } from '@c8y/ngx-components';\nimport { Observable, merge, of } from 'rxjs';\nimport { distinctUntilChanged, map, filter, switchMap } from 'rxjs/operators';\n\nexport const lightThemeTabName = gettext('Light theme');\nexport const genericTabName = gettext('Generic');\n\n@Injectable({ providedIn: 'root' })\nexport class BrandingTabFactory implements ExtensionFactory<Tab> {\n get(activatedRoute?: ActivatedRoute): Observable<Tab | Tab[]> {\n const routes = activatedRoute.pathFromRoot.map(route => route.url);\n return this.shouldShowTab$().pipe(\n distinctUntilChanged(),\n switchMap(value => {\n if (!value) {\n return of([]);\n }\n return merge(...routes).pipe(\n filter(urlSegments =>\n urlSegments.some(urlSegment => urlSegment.path === 'branding-editor')\n ),\n switchMap(() => this.shouldShowTab$()),\n filter(shouldShow => !!shouldShow),\n switchMap(() =>\n activatedRoute.parent?.params.pipe(\n map(params => params.name),\n distinctUntilChanged(),\n filter(name => !!name),\n map(name => this.getTabsForVersion(name))\n )\n )\n );\n })\n );\n }\n\n protected shouldShowTab$(): Observable<boolean> {\n return of(true);\n }\n\n protected getPathForBranding<T extends string>(brandingName: string, subPath: T) {\n return `branding-editor/${brandingName}/edit/${subPath}` as const;\n }\n\n protected getTabsForVersion(name: string): Tab[] {\n return [\n {\n path: this.getPathForBranding(name, 'generic'),\n label: genericTabName,\n icon: 'palette',\n priority: 600\n },\n {\n path: this.getPathForBranding(name, 'light'),\n label: lightThemeTabName,\n icon: 'sun',\n priority: 500\n }\n ];\n }\n}\n","import { NgModule, inject } from '@angular/core';\nimport {\n RouterModule,\n Route,\n RouterStateSnapshot,\n ActivatedRouteSnapshot,\n ResolveFn,\n Routes\n} from '@angular/router';\nimport { SupportsBrandingService } from './supports-branding.service';\nimport { hookNavigator, HookProviderTypes, hookTab } from '@c8y/ngx-components';\nimport { BrandingTabFactory, lightThemeTabName, genericTabName } from './branding-tab.factory';\nimport {\n BrandingFileDetails,\n BrandingOptionsJson,\n StoreBrandingService\n} from '@c8y/ngx-components/branding/shared/data';\n\nexport const BRANDING_EDIT_CHILD_ROUTES: Route[] = [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'generic'\n },\n {\n path: 'generic',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingFormComponent),\n data: {\n tabName: genericTabName\n }\n },\n {\n path: 'light',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingThemeFormComponent),\n data: {\n tabName: lightThemeTabName\n }\n }\n];\n\nexport const BRANDING_ROUTING: Routes = [\n {\n path: 'branding-editor',\n canActivate: [SupportsBrandingService],\n children: [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingComponent)\n },\n {\n path: ':name',\n resolve: {\n branding: ((route: ActivatedRouteSnapshot, _state: RouterStateSnapshot) => {\n return inject(StoreBrandingService).getBrandingOptionsForVersion(route.params.name);\n }) as ResolveFn<BrandingFileDetails[]>,\n tags: (async (route: ActivatedRouteSnapshot, _state: RouterStateSnapshot) => {\n const store = inject(StoreBrandingService);\n const { variants } = await store.loadBrandingVariants();\n return variants.find(v => v?.tags?.includes(route.params.name))?.tags;\n }) as ResolveFn<string[]>,\n fallbackBranding: (async (\n _route: ActivatedRouteSnapshot,\n _state: RouterStateSnapshot\n ) => {\n try {\n const store = inject(StoreBrandingService);\n const fallbackBranding = await store.getBrandingOptionsForVersion('fallback');\n return fallbackBranding;\n } catch (e) {\n return {};\n }\n }) as ResolveFn<BrandingOptionsJson>\n },\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'edit'\n },\n {\n path: 'edit',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(\n m => m.EditBrandingRouterOutletComponent\n ),\n children: BRANDING_EDIT_CHILD_ROUTES\n }\n ]\n }\n ]\n },\n // Redirects for legacy paths from old angularJS implementation\n // allows to keep old links working and to use the old branding manager (as long as we still ship it) when the new plugins are removed from admin app\n {\n path: 'enterprise/branding',\n pathMatch: 'full',\n redirectTo: 'branding-editor'\n },\n {\n path: 'branding',\n pathMatch: 'full',\n redirectTo: 'branding-editor'\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(BRANDING_ROUTING)],\n providers: [\n // providerType: HookProviderTypes.ExistingProvider is used to ensure that the hook is only applied once even if the module is imported multiple times\n hookNavigator(SupportsBrandingService, { providerType: HookProviderTypes.ExistingProvider }),\n hookTab(BrandingTabFactory)\n ]\n})\nexport class SharedBrandingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-branding-shared.mjs","sources":["../../branding/shared/supports-branding.service.ts","../../branding/shared/branding-tab.factory.ts","../../branding/shared/shared-branding.module.ts","../../branding/shared/c8y-ngx-components-branding-shared.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { CanActivate, UrlTree } from '@angular/router';\nimport { AppStateService, ExtensionFactory, NavigatorNode } from '@c8y/ngx-components';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class SupportsBrandingService implements CanActivate, ExtensionFactory<NavigatorNode> {\n private supportsBranding$: Observable<boolean>;\n private node: NavigatorNode;\n constructor(private appState: AppStateService) {\n this.supportsBranding$ = this.appState.currentAppsOfUser.pipe(\n map(apps => {\n const brandingFeatureApp = apps.find(\n app => app.name === 'feature-branding' && app.owner?.tenant?.id === 'management'\n );\n return !!brandingFeatureApp;\n }),\n shareReplay(1)\n );\n this.node = new NavigatorNode({\n featureId: 'branding-editor',\n label: 'Branding',\n // will be redirected to the branding-editor route\n // TODO: change back to branding-editor when angular JS implementation is removed (1022.0.0)\n path: 'branding',\n icon: 'palette',\n parent: 'Settings',\n routerLinkExact: false,\n preventDuplicates: true\n });\n }\n\n get(): Observable<NavigatorNode | NavigatorNode[]> {\n return this.supportsBranding$.pipe(\n map(supported => {\n if (supported) {\n return this.node;\n }\n return [];\n })\n );\n }\n\n canActivate(): boolean | UrlTree | Observable<boolean | UrlTree> | Promise<boolean | UrlTree> {\n return this.supportsBranding$;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ExtensionFactory, Tab, gettext } from '@c8y/ngx-components';\nimport { Observable, merge, of } from 'rxjs';\nimport { distinctUntilChanged, map, filter, switchMap } from 'rxjs/operators';\n\nexport const lightThemeTabName = gettext('Light theme');\nexport const genericTabName = gettext('Generic');\n\n@Injectable({ providedIn: 'root' })\nexport class BrandingTabFactory implements ExtensionFactory<Tab> {\n get(activatedRoute?: ActivatedRoute): Observable<Tab | Tab[]> {\n const routes = activatedRoute.pathFromRoot.map(route => route.url);\n return this.shouldShowTab$().pipe(\n distinctUntilChanged(),\n switchMap(value => {\n if (!value) {\n return of([]);\n }\n return merge(...routes).pipe(\n filter(urlSegments =>\n urlSegments.some(urlSegment => urlSegment.path === 'branding-editor')\n ),\n switchMap(() => this.shouldShowTab$()),\n filter(shouldShow => !!shouldShow),\n switchMap(() =>\n activatedRoute.parent?.params.pipe(\n map(params => params.name),\n distinctUntilChanged(),\n filter(name => !!name),\n map(name => this.getTabsForVersion(name))\n )\n )\n );\n })\n );\n }\n\n protected shouldShowTab$(): Observable<boolean> {\n return of(true);\n }\n\n protected getPathForBranding<T extends string>(brandingName: string, subPath: T) {\n return `branding-editor/${brandingName}/edit/${subPath}` as const;\n }\n\n protected getTabsForVersion(name: string): Tab[] {\n return [\n {\n path: this.getPathForBranding(name, 'generic'),\n label: genericTabName,\n icon: 'palette',\n priority: 600\n },\n {\n path: this.getPathForBranding(name, 'light'),\n label: lightThemeTabName,\n icon: 'sun',\n priority: 500\n }\n ];\n }\n}\n","import { NgModule, inject } from '@angular/core';\nimport {\n RouterModule,\n Route,\n RouterStateSnapshot,\n ActivatedRouteSnapshot,\n ResolveFn,\n Routes\n} from '@angular/router';\nimport { SupportsBrandingService } from './supports-branding.service';\nimport { hookNavigator, HookProviderTypes, hookTab } from '@c8y/ngx-components';\nimport { BrandingTabFactory, lightThemeTabName, genericTabName } from './branding-tab.factory';\nimport {\n BrandingFileDetails,\n BrandingOptionsJson,\n StoreBrandingService\n} from '@c8y/ngx-components/branding/shared/data';\n\nexport const BRANDING_EDIT_CHILD_ROUTES: Route[] = [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'generic'\n },\n {\n path: 'generic',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingFormComponent),\n data: {\n tabName: genericTabName\n }\n },\n {\n path: 'light',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingThemeFormComponent),\n data: {\n tabName: lightThemeTabName\n }\n }\n];\n\nexport const BRANDING_ROUTING: Routes = [\n {\n path: 'branding-editor',\n canActivate: [SupportsBrandingService],\n children: [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingComponent)\n },\n {\n path: ':name',\n resolve: {\n branding: ((route: ActivatedRouteSnapshot, _state: RouterStateSnapshot) => {\n return inject(StoreBrandingService).getBrandingOptionsForVersion(route.params.name);\n }) as ResolveFn<BrandingFileDetails[]>,\n tags: (async (route: ActivatedRouteSnapshot, _state: RouterStateSnapshot) => {\n const store = inject(StoreBrandingService);\n const { variants } = await store.loadBrandingVariants();\n return variants.find(v => v?.tags?.includes(route.params.name))?.tags;\n }) as ResolveFn<string[]>,\n fallbackBranding: (async (\n _route: ActivatedRouteSnapshot,\n _state: RouterStateSnapshot\n ) => {\n try {\n const store = inject(StoreBrandingService);\n const fallbackBranding = await store.getBrandingOptionsForVersion('fallback');\n return fallbackBranding;\n } catch (e) {\n return {};\n }\n }) as ResolveFn<BrandingOptionsJson>\n },\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'edit'\n },\n {\n path: 'edit',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(\n m => m.EditBrandingRouterOutletComponent\n ),\n children: BRANDING_EDIT_CHILD_ROUTES\n }\n ]\n }\n ]\n },\n // Redirects for legacy paths from old angularJS implementation\n // allows to keep old links working and to use the old branding manager (as long as we still ship it) when the new plugins are removed from admin app\n {\n path: 'enterprise/branding',\n pathMatch: 'full',\n redirectTo: 'branding-editor'\n },\n {\n path: 'branding',\n pathMatch: 'full',\n redirectTo: 'branding-editor'\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(BRANDING_ROUTING)],\n providers: [\n // providerType: HookProviderTypes.ExistingProvider is used to ensure that the hook is only applied once even if the module is imported multiple times\n hookNavigator(SupportsBrandingService, { providerType: HookProviderTypes.ExistingProvider }),\n hookTab(BrandingTabFactory)\n ]\n})\nexport class SharedBrandingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -1726,7 +1726,7 @@ class DataProcessingService {
1726
1726
  */
1727
1727
  transformToExportFileStructureForPreview(dataToExport) {
1728
1728
  const data = dataToExport.find(data => {
1729
- return data !== null && data.timeValueMap && data.unit;
1729
+ return data !== null && data.timeValueMap;
1730
1730
  });
1731
1731
  if (!data) {
1732
1732
  return [];
@@ -1748,7 +1748,7 @@ class DataProcessingService {
1748
1748
  const rowsData = [];
1749
1749
  // When measurements or series data is not available, add an empty header row with only device_name, source and fragment_series.
1750
1750
  // This data is needed later to be used to create the file name and merged file header string.
1751
- const responseDoesNotContainData = !dataToExport.timeValueMap?.size && !dataToExport.unit;
1751
+ const responseDoesNotContainData = !Object.keys(dataToExport.timeValueMap || {}).length;
1752
1752
  if (responseDoesNotContainData) {
1753
1753
  rowsData.push({
1754
1754
  time: null,