@c8y/ngx-components 1021.76.3 → 1021.77.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/core/common/ApplicationOptions.d.ts +2 -2
  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/datapoint-explorer/view/datapoint-explorer.component.d.ts.map +1 -1
  6. package/echart/charts.component.d.ts.map +1 -1
  7. package/echart/models/datapoints-graph-widget.model.d.ts +10 -0
  8. package/echart/models/datapoints-graph-widget.model.d.ts.map +1 -1
  9. package/echart/services/chart-realtime.service.d.ts +2 -5
  10. package/echart/services/chart-realtime.service.d.ts.map +1 -1
  11. package/echart/services/echarts-options.service.d.ts +4 -13
  12. package/echart/services/echarts-options.service.d.ts.map +1 -1
  13. package/echart/services/y-axis.service.d.ts +1 -1
  14. package/echart/services/y-axis.service.d.ts.map +1 -1
  15. package/esm2022/core/beta-feature/beta-preview-button.component.mjs +3 -3
  16. package/esm2022/core/beta-feature/beta-preview.component.mjs +3 -3
  17. package/esm2022/core/common/ApplicationOptions.mjs +1 -1
  18. package/esm2022/core/login/login.component.mjs +2 -1
  19. package/esm2022/core/login/login.service.mjs +5 -1
  20. package/esm2022/datapoint-explorer/view/datapoint-explorer.component.mjs +4 -3
  21. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-processing.service.mjs +3 -3
  22. package/esm2022/echart/charts.component.mjs +8 -2
  23. package/esm2022/echart/models/datapoints-graph-widget.model.mjs +1 -1
  24. package/esm2022/echart/services/chart-realtime.service.mjs +1 -1
  25. package/esm2022/echart/services/echarts-options.service.mjs +23 -15
  26. package/esm2022/echart/services/y-axis.service.mjs +32 -1
  27. package/esm2022/operations/bulk-operations-service/bulk-operations.service.mjs +21 -2
  28. package/esm2022/operations/bulk-single-operations-list/bulk-single-operations-list.module.mjs +9 -7
  29. package/esm2022/operations/bulk-single-operations-list/single-operation-item.component.mjs +4 -1
  30. package/esm2022/operations/bulk-single-operations-list/single-operations-list.component.mjs +94 -20
  31. package/esm2022/operations/grid-columns/c8y-ngx-components-operations-grid-columns.mjs +5 -0
  32. package/esm2022/operations/grid-columns/creation-time.cell-renderer.component.mjs +28 -0
  33. package/esm2022/operations/grid-columns/creation-time.grid-column.mjs +14 -0
  34. package/esm2022/operations/grid-columns/device.cell-renderer.component.mjs +50 -0
  35. package/esm2022/operations/grid-columns/device.grid-column.mjs +14 -0
  36. package/esm2022/operations/grid-columns/failure-reason.cell-renderer.component.mjs +54 -0
  37. package/esm2022/operations/grid-columns/failure-reason.grid-column.mjs +14 -0
  38. package/esm2022/operations/grid-columns/index.mjs +9 -0
  39. package/esm2022/operations/grid-columns/status.cell-renderer.component.mjs +43 -0
  40. package/esm2022/operations/grid-columns/status.grid-column.mjs +15 -0
  41. package/esm2022/widgets/implementations/datapoints-graph/datapoints-graph-config/datapoints-graph-widget-config.component.mjs +4 -3
  42. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +3 -2
  43. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
  44. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +2 -2
  45. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  46. package/fesm2022/c8y-ngx-components-echart-models.mjs.map +1 -1
  47. package/fesm2022/c8y-ngx-components-echart.mjs +60 -15
  48. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  49. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs +20 -1
  50. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs.map +1 -1
  51. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +102 -21
  52. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs.map +1 -1
  53. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +214 -0
  54. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs.map +1 -0
  55. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +3 -2
  56. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  57. package/fesm2022/c8y-ngx-components.mjs +9 -4
  58. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  59. package/locales/locales.pot +16 -7
  60. package/operations/bulk-operations-service/bulk-operations.service.d.ts +5 -3
  61. package/operations/bulk-operations-service/bulk-operations.service.d.ts.map +1 -1
  62. package/operations/bulk-single-operations-list/bulk-single-operations-list.module.d.ts +10 -8
  63. package/operations/bulk-single-operations-list/bulk-single-operations-list.module.d.ts.map +1 -1
  64. package/operations/bulk-single-operations-list/single-operation-item.component.d.ts +3 -0
  65. package/operations/bulk-single-operations-list/single-operation-item.component.d.ts.map +1 -1
  66. package/operations/bulk-single-operations-list/single-operations-list.component.d.ts +18 -4
  67. package/operations/bulk-single-operations-list/single-operations-list.component.d.ts.map +1 -1
  68. package/operations/grid-columns/c8y-ngx-components-operations-grid-columns.d.ts.map +1 -0
  69. package/operations/grid-columns/creation-time.cell-renderer.component.d.ts +9 -0
  70. package/operations/grid-columns/creation-time.cell-renderer.component.d.ts.map +1 -0
  71. package/operations/grid-columns/creation-time.grid-column.d.ts +5 -0
  72. package/operations/grid-columns/creation-time.grid-column.d.ts.map +1 -0
  73. package/operations/grid-columns/device.cell-renderer.component.d.ts +14 -0
  74. package/operations/grid-columns/device.cell-renderer.component.d.ts.map +1 -0
  75. package/operations/grid-columns/device.grid-column.d.ts +5 -0
  76. package/operations/grid-columns/device.grid-column.d.ts.map +1 -0
  77. package/operations/grid-columns/failure-reason.cell-renderer.component.d.ts +9 -0
  78. package/operations/grid-columns/failure-reason.cell-renderer.component.d.ts.map +1 -0
  79. package/operations/grid-columns/failure-reason.grid-column.d.ts +5 -0
  80. package/operations/grid-columns/failure-reason.grid-column.d.ts.map +1 -0
  81. package/operations/grid-columns/index.d.ts +9 -0
  82. package/operations/grid-columns/index.d.ts.map +1 -0
  83. package/operations/grid-columns/status.cell-renderer.component.d.ts +11 -0
  84. package/operations/grid-columns/status.cell-renderer.component.d.ts.map +1 -0
  85. package/operations/grid-columns/status.grid-column.d.ts +5 -0
  86. package/operations/grid-columns/status.grid-column.d.ts.map +1 -0
  87. package/package.json +1 -1
  88. package/widgets/implementations/datapoints-graph/datapoints-graph-config/datapoints-graph-widget-config.component.d.ts.map +1 -1
@@ -0,0 +1,214 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, inject } from '@angular/core';
3
+ import * as i1 from '@c8y/ngx-components';
4
+ import { CommonModule, BaseColumn, gettext, DeviceStatusModule, C8yTranslatePipe } from '@c8y/ngx-components';
5
+ import * as i3 from 'ngx-bootstrap/tooltip';
6
+ import { TooltipModule } from 'ngx-bootstrap/tooltip';
7
+ import * as i2 from '@angular/router';
8
+ import { RouterModule } from '@angular/router';
9
+ import { InventoryService } from '@c8y/client';
10
+ import * as i2$1 from '@angular/common';
11
+ import { OPERATION_STATUS_OPTIONS_MAP } from '@c8y/ngx-components/operations/shared';
12
+
13
+ class CreationTimeCellRendererComponent {
14
+ constructor(context) {
15
+ this.context = context;
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreationTimeCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CreationTimeCellRendererComponent, isStandalone: true, selector: "c8y-creation-time-cell-renderer", ngImport: i0, template: `<small class="icon-flex text-muted">
19
+ <i class="m-r-4" c8yIcon="calendar"></i>
20
+ {{ context.item.creationTime | c8yDate }}
21
+ </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 }] }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreationTimeCellRendererComponent, decorators: [{
24
+ type: Component,
25
+ args: [{
26
+ template: `<small class="icon-flex text-muted">
27
+ <i class="m-r-4" c8yIcon="calendar"></i>
28
+ {{ context.item.creationTime | c8yDate }}
29
+ </small>`,
30
+ selector: 'c8y-creation-time-cell-renderer',
31
+ standalone: true,
32
+ imports: [CommonModule, TooltipModule]
33
+ }]
34
+ }], ctorParameters: () => [{ type: i1.CellRendererContext }] });
35
+
36
+ class CreationTimeGridColumn extends BaseColumn {
37
+ constructor(initialColumnConfig) {
38
+ super(initialColumnConfig);
39
+ this.name = 'creationTime';
40
+ this.path = 'creationTime';
41
+ this.header = gettext('Creation time');
42
+ this.cellRendererComponent = CreationTimeCellRendererComponent;
43
+ this.filterable = false;
44
+ this.sortable = false;
45
+ }
46
+ }
47
+
48
+ class DeviceCellRendererComponent {
49
+ constructor(context) {
50
+ this.context = context;
51
+ this.inventoryService = inject(InventoryService);
52
+ }
53
+ async ngOnInit() {
54
+ this.device = (await this.inventoryService.detail(this.context.item.deviceId))?.data;
55
+ }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DeviceCellRendererComponent, isStandalone: true, selector: "c8y-operation-device-cell-renderer", ngImport: i0, template: `
58
+ <span class="m-r-4">
59
+ <device-status [mo]="device || {}"></device-status>
60
+ </span>
61
+ <a
62
+ class="interact"
63
+ [title]="context.item.deviceName"
64
+ [routerLink]="['/device', context.item.deviceId, 'device-info']"
65
+ >
66
+ {{ context.item.deviceName }}
67
+ </a>
68
+ `, 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"] }] }); }
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceCellRendererComponent, decorators: [{
71
+ type: Component,
72
+ args: [{
73
+ template: `
74
+ <span class="m-r-4">
75
+ <device-status [mo]="device || {}"></device-status>
76
+ </span>
77
+ <a
78
+ class="interact"
79
+ [title]="context.item.deviceName"
80
+ [routerLink]="['/device', context.item.deviceId, 'device-info']"
81
+ >
82
+ {{ context.item.deviceName }}
83
+ </a>
84
+ `,
85
+ selector: 'c8y-operation-device-cell-renderer',
86
+ standalone: true,
87
+ imports: [CommonModule, RouterModule, DeviceStatusModule]
88
+ }]
89
+ }], ctorParameters: () => [{ type: i1.CellRendererContext }] });
90
+
91
+ class DeviceGridColumn extends BaseColumn {
92
+ constructor(initialColumnConfig) {
93
+ super(initialColumnConfig);
94
+ this.name = 'deviceName';
95
+ this.path = 'deviceName';
96
+ this.header = gettext('Device');
97
+ this.cellRendererComponent = DeviceCellRendererComponent;
98
+ this.filterable = false;
99
+ this.sortable = false;
100
+ }
101
+ }
102
+
103
+ class FailureReasonCellRendererComponent {
104
+ constructor(context) {
105
+ this.context = context;
106
+ }
107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FailureReasonCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
108
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FailureReasonCellRendererComponent, isStandalone: true, selector: "c8y-failure-reason-cell-renderer", ngImport: i0, template: ` <div class="d-flex">
109
+ <span class="text-truncate" #failureReason>
110
+ {{ context.value | translate }}
111
+ </span>
112
+ <button
113
+ class="btn-help btn-help--sm"
114
+ [attr.aria-label]="'Help' | translate"
115
+ [tooltip]="context.value | translate"
116
+ placement="left"
117
+ container="body"
118
+ type="button"
119
+ *ngIf="failureReason.offsetWidth < failureReason.scrollWidth"
120
+ >
121
+ <i [c8yIcon]="'info-circle'"></i>
122
+ </button>
123
+ </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$1.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"] }] }); }
124
+ }
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FailureReasonCellRendererComponent, decorators: [{
126
+ type: Component,
127
+ args: [{
128
+ template: ` <div class="d-flex">
129
+ <span class="text-truncate" #failureReason>
130
+ {{ context.value | translate }}
131
+ </span>
132
+ <button
133
+ class="btn-help btn-help--sm"
134
+ [attr.aria-label]="'Help' | translate"
135
+ [tooltip]="context.value | translate"
136
+ placement="left"
137
+ container="body"
138
+ type="button"
139
+ *ngIf="failureReason.offsetWidth < failureReason.scrollWidth"
140
+ >
141
+ <i [c8yIcon]="'info-circle'"></i>
142
+ </button>
143
+ </div>`,
144
+ selector: 'c8y-failure-reason-cell-renderer',
145
+ standalone: true,
146
+ imports: [CommonModule, TooltipModule]
147
+ }]
148
+ }], ctorParameters: () => [{ type: i1.CellRendererContext }] });
149
+
150
+ class FailureReasonGridColumn extends BaseColumn {
151
+ constructor(initialColumnConfig) {
152
+ super(initialColumnConfig);
153
+ this.name = 'failureReason';
154
+ this.path = 'failureReason';
155
+ this.header = gettext('Failure reason');
156
+ this.cellRendererComponent = FailureReasonCellRendererComponent;
157
+ this.filterable = false;
158
+ this.sortable = false;
159
+ }
160
+ }
161
+
162
+ class StatusCellRendererComponent {
163
+ constructor(context) {
164
+ this.context = context;
165
+ this.OPERATION_STATUS_OPTIONS_MAP = OPERATION_STATUS_OPTIONS_MAP;
166
+ }
167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StatusCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
168
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StatusCellRendererComponent, isStandalone: true, selector: "c8y-operation-status-cell-renderer", ngImport: i0, template: `
169
+ <i
170
+ [c8yIcon]="OPERATION_STATUS_OPTIONS_MAP[context.item.status].icon"
171
+ style="font-size: 20px"
172
+ [tooltip]="context.item.status.toString() | translate"
173
+ container="body"
174
+ [ngClass]="OPERATION_STATUS_OPTIONS_MAP[context.item.status].styleClass"
175
+ ></i>
176
+ `, 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$1.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"] }] }); }
177
+ }
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StatusCellRendererComponent, decorators: [{
179
+ type: Component,
180
+ args: [{
181
+ template: `
182
+ <i
183
+ [c8yIcon]="OPERATION_STATUS_OPTIONS_MAP[context.item.status].icon"
184
+ style="font-size: 20px"
185
+ [tooltip]="context.item.status.toString() | translate"
186
+ container="body"
187
+ [ngClass]="OPERATION_STATUS_OPTIONS_MAP[context.item.status].styleClass"
188
+ ></i>
189
+ `,
190
+ selector: 'c8y-operation-status-cell-renderer',
191
+ standalone: true,
192
+ imports: [CommonModule, RouterModule, C8yTranslatePipe, TooltipModule]
193
+ }]
194
+ }], ctorParameters: () => [{ type: i1.CellRendererContext }] });
195
+
196
+ class OperationStatusGridColumn extends BaseColumn {
197
+ constructor(initialColumnConfig) {
198
+ super(initialColumnConfig);
199
+ this.name = 'status';
200
+ this.path = 'status';
201
+ this.header = gettext('Status');
202
+ this.cellRendererComponent = StatusCellRendererComponent;
203
+ this.filterable = false;
204
+ this.sortable = false;
205
+ this.gridTrackSize = '76px';
206
+ }
207
+ }
208
+
209
+ /**
210
+ * Generated bundle index. Do not edit.
211
+ */
212
+
213
+ export { CreationTimeCellRendererComponent, CreationTimeGridColumn, DeviceCellRendererComponent, DeviceGridColumn, FailureReasonCellRendererComponent, FailureReasonGridColumn, OperationStatusGridColumn, StatusCellRendererComponent };
214
+ //# sourceMappingURL=c8y-ngx-components-operations-grid-columns.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"c8y-ngx-components-operations-grid-columns.mjs","sources":["../../operations/grid-columns/creation-time.cell-renderer.component.ts","../../operations/grid-columns/creation-time.grid-column.ts","../../operations/grid-columns/device.cell-renderer.component.ts","../../operations/grid-columns/device.grid-column.ts","../../operations/grid-columns/failure-reason.cell-renderer.component.ts","../../operations/grid-columns/failure-reason.grid-column.ts","../../operations/grid-columns/status.cell-renderer.component.ts","../../operations/grid-columns/status.grid-column.ts","../../operations/grid-columns/c8y-ngx-components-operations-grid-columns.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { CellRendererContext, CommonModule } from '@c8y/ngx-components';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\n\n@Component({\n template: `<small class=\"icon-flex text-muted\">\n <i class=\"m-r-4\" c8yIcon=\"calendar\"></i>\n {{ context.item.creationTime | c8yDate }}\n </small>`,\n selector: 'c8y-creation-time-cell-renderer',\n standalone: true,\n imports: [CommonModule, TooltipModule]\n})\nexport class CreationTimeCellRendererComponent {\n constructor(public context: CellRendererContext) {}\n}\n","import { BaseColumn, ColumnConfig, gettext } from '@c8y/ngx-components';\nimport { CreationTimeCellRendererComponent } from './creation-time.cell-renderer.component';\n\nexport class CreationTimeGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'creationTime';\n this.path = 'creationTime';\n this.header = gettext('Creation time');\n this.cellRendererComponent = CreationTimeCellRendererComponent;\n\n this.filterable = false;\n this.sortable = false;\n }\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { InventoryService } from '@c8y/client';\nimport { CellRendererContext, CommonModule, DeviceStatusModule } from '@c8y/ngx-components';\nimport { IManagedObject } from 'packages/client/lib';\n\n@Component({\n template: `\n <span class=\"m-r-4\">\n <device-status [mo]=\"device || {}\"></device-status>\n </span>\n <a\n class=\"interact\"\n [title]=\"context.item.deviceName\"\n [routerLink]=\"['/device', context.item.deviceId, 'device-info']\"\n >\n {{ context.item.deviceName }}\n </a>\n `,\n selector: 'c8y-operation-device-cell-renderer',\n standalone: true,\n imports: [CommonModule, RouterModule, DeviceStatusModule]\n})\nexport class DeviceCellRendererComponent implements OnInit {\n device: IManagedObject;\n\n private inventoryService = inject(InventoryService);\n\n constructor(public context: CellRendererContext) {}\n\n async ngOnInit() {\n this.device = (await this.inventoryService.detail(this.context.item.deviceId))?.data;\n }\n}\n","import { BaseColumn, ColumnConfig, gettext } from '@c8y/ngx-components';\nimport { DeviceCellRendererComponent } from './device.cell-renderer.component';\n\nexport class DeviceGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'deviceName';\n this.path = 'deviceName';\n this.header = gettext('Device');\n this.cellRendererComponent = DeviceCellRendererComponent;\n\n this.filterable = false;\n this.sortable = false;\n }\n}\n","import { Component } from '@angular/core';\nimport { CellRendererContext, CommonModule } from '@c8y/ngx-components';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\n\n@Component({\n template: ` <div class=\"d-flex\">\n <span class=\"text-truncate\" #failureReason>\n {{ context.value | translate }}\n </span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n [tooltip]=\"context.value | translate\"\n placement=\"left\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"failureReason.offsetWidth < failureReason.scrollWidth\"\n >\n <i [c8yIcon]=\"'info-circle'\"></i>\n </button>\n </div>`,\n selector: 'c8y-failure-reason-cell-renderer',\n standalone: true,\n imports: [CommonModule, TooltipModule]\n})\nexport class FailureReasonCellRendererComponent {\n constructor(public context: CellRendererContext) {}\n}\n","import { BaseColumn, ColumnConfig, gettext } from '@c8y/ngx-components';\nimport { FailureReasonCellRendererComponent } from './failure-reason.cell-renderer.component';\n\nexport class FailureReasonGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'failureReason';\n this.path = 'failureReason';\n this.header = gettext('Failure reason');\n this.cellRendererComponent = FailureReasonCellRendererComponent;\n\n this.filterable = false;\n this.sortable = false;\n }\n}\n","import { Component } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { C8yTranslatePipe, CellRendererContext, CommonModule } from '@c8y/ngx-components';\nimport {\n OPERATION_STATUS_OPTIONS_MAP,\n OperationStatusOptionsMapShared\n} from '@c8y/ngx-components/operations/shared';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\n\n@Component({\n template: `\n <i\n [c8yIcon]=\"OPERATION_STATUS_OPTIONS_MAP[context.item.status].icon\"\n style=\"font-size: 20px\"\n [tooltip]=\"context.item.status.toString() | translate\"\n container=\"body\"\n [ngClass]=\"OPERATION_STATUS_OPTIONS_MAP[context.item.status].styleClass\"\n ></i>\n `,\n selector: 'c8y-operation-status-cell-renderer',\n standalone: true,\n imports: [CommonModule, RouterModule, C8yTranslatePipe, TooltipModule]\n})\nexport class StatusCellRendererComponent {\n OPERATION_STATUS_OPTIONS_MAP: OperationStatusOptionsMapShared = OPERATION_STATUS_OPTIONS_MAP;\n constructor(public context: CellRendererContext) {}\n}\n","import { BaseColumn, ColumnConfig, gettext } from '@c8y/ngx-components';\nimport { StatusCellRendererComponent } from './status.cell-renderer.component';\n\nexport class OperationStatusGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'status';\n this.path = 'status';\n this.header = gettext('Status');\n this.cellRendererComponent = StatusCellRendererComponent;\n\n this.filterable = false;\n this.sortable = false;\n\n this.gridTrackSize = '76px';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":"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"}
@@ -192,6 +192,7 @@ class DatapointsGraphWidgetConfigComponent {
192
192
  displayMarkedLine: [true, []],
193
193
  displayMarkedPoint: [true, []],
194
194
  mergeMatchingDatapoints: [true, []],
195
+ forceMergeDatapoints: [false, []],
195
196
  showLabelAndUnit: [true, []],
196
197
  displayDateSelection: [false, []],
197
198
  displayAggregationSelection: [false, []],
@@ -221,7 +222,7 @@ class DatapointsGraphWidgetConfigComponent {
221
222
  (this.config?.datapoints?.filter(dp => dp.__active)?.length || 0) > 0;
222
223
  }
223
224
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointsGraphWidgetConfigComponent, deps: [{ token: i1.WidgetConfigComponent, optional: true }, { token: i1.ContextDashboardComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
224
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DatapointsGraphWidgetConfigComponent, isStandalone: true, selector: "c8y-datapoints-graph-widget-config", inputs: { config: "config" }, host: { classAttribute: "d-contents" }, providers: [ChartEventsService, ChartAlarmsService], ngImport: i0, template: "<div class=\"no-card-context d-flex-md fit-h--md\">\n <div class=\"col-md-5 bg-level-1 conf-col inner-scroll p-l-0\">\n <div class=\"p-l-24\">\n <form [formGroup]=\"formGroup\">\n <c8y-datapoint-selection-list\n class=\"bg-level-1 separator-bottom d-block\"\n name=\"datapoints\"\n [minActiveCount]=\"1\"\n [defaultFormOptions]=\"datapointSelectDefaultFormOptions\"\n [config]=\"datapointSelectionConfig\"\n formControlName=\"datapoints\"\n ></c8y-datapoint-selection-list>\n\n <c8y-alarm-event-selection-list\n class=\"bg-level-1 separator-bottom d-block\"\n name=\"alarms\"\n formControlName=\"alarms\"\n [timelineType]=\"'ALARM'\"\n [datapoints]=\"config?.datapoints\"\n ></c8y-alarm-event-selection-list>\n\n <c8y-alarm-event-selection-list\n class=\"bg-inherit\"\n name=\"events\"\n formControlName=\"events\"\n [timelineType]=\"'EVENT'\"\n [datapoints]=\"config?.datapoints\"\n ></c8y-alarm-event-selection-list>\n </form>\n </div>\n </div>\n\n <div class=\"col-md-7 sticky-top p-t-8 inner-scroll widget-preview\">\n <div class=\"p-r-24 d-col fit-h\">\n <div class=\"form-group p-t-8 form-group-sm d-flex a-i-center m-b-8\">\n <div class=\"d-flex a-i-center m-r-4\">\n <label\n class=\"m-b-0\"\n translate\n >\n Date selection\n </label>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"dateSelectionHelpTemplate\"\n placement=\"bottom\"\n triggers=\"focus\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></button>\n </div>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control input-sm\"\n [ngModel]=\"dateSelection\"\n (ngModelChange)=\"dateSelectionChange($event)\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option\n title=\"{{ 'Dashboard time range' | translate }}\"\n [value]=\"DATE_SELECTION.DASHBOARD_CONTEXT\"\n >\n {{ 'Dashboard time range' | translate }}\n </option>\n <option\n title=\"{{ 'Widget configuration' | translate }}\"\n [value]=\"DATE_SELECTION.CONFIG\"\n >\n {{ 'Widget configuration' | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n <label class=\"text-12\">{{ 'Options' | translate }}</label>\n <c8y-time-context\n *ngIf=\"\n dateSelection === DATE_SELECTION.CONFIG &&\n formGroup.get('displayDateSelection').value === true\n \"\n [changedDateContext]=\"timeProps\"\n [controlsAvailable]=\"{\n realtime: true,\n timeRange: config?.displayDateSelection,\n interval: config?.displayDateSelection,\n aggregation: config?.displayAggregationSelection\n }\"\n (contextChange)=\"timePropsChanged($event)\"\n ></c8y-time-context>\n <c8y-charts\n class=\"d-block p-relative\"\n *ngIf=\"activeDatapointsExists\"\n [config]=\"config\"\n [alerts]=\"alerts\"\n (timeRangeChangeOnRealtime)=\"updateTimeRangeOnRealtime($event)\"\n (configChangeOnZoomOut)=\"updateDashboardTimeContext($event)\"\n ></c8y-charts>\n\n <c8y-ui-empty-state\n class=\"d-block m-t-24\"\n [icon]=\"'search'\"\n [title]=\"'No data points selected' | translate\"\n [subtitle]=\"'Select data point to render chart' | translate\"\n *ngIf=\"!activeDatapointsExists\"\n ></c8y-ui-empty-state>\n\n <form\n class=\"d-block p-t-8\"\n [formGroup]=\"formGroup\"\n >\n <label>{{ 'Display options' | translate }}</label>\n <fieldset class=\"c8y-fieldset m-b-24 m-t-0\">\n <legend>{{ 'Axis' | translate }}</legend>\n <c8y-form-group class=\"p-b-16 m-b-0 p-t-8 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Y-axis helper lines' | translate\"\n >\n <input\n name=\"yAxisSplitLines\"\n type=\"checkbox\"\n formControlName=\"yAxisSplitLines\"\n />\n <span></span>\n <span translate>Y-axis helper lines</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'X-axis helper lines' | translate\"\n >\n <input\n name=\"xAxisSplitLines\"\n type=\"checkbox\"\n formControlName=\"xAxisSplitLines\"\n />\n <span></span>\n <span translate>X-axis helper lines</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Merge matching data points into single axis' | translate\"\n >\n <input\n name=\"mergeMatchingDatapoints\"\n type=\"checkbox\"\n formControlName=\"mergeMatchingDatapoints\"\n />\n <span></span>\n <span translate>Merge matching data points into single axis</span>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset m-b-24 m-t-0\">\n <legend>{{ 'Alarms & events' | translate }}</legend>\n <c8y-form-group class=\"p-b-16 m-b-0 p-t-8 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show vertical line on every occurrence' | translate\"\n >\n <input\n name=\"displayMarkedLine\"\n type=\"checkbox\"\n formControlName=\"displayMarkedLine\"\n />\n <span></span>\n <span translate>Show vertical line on every occurrence</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show icon when triggered' | translate\"\n >\n <input\n name=\"displayMarkedPoint\"\n type=\"checkbox\"\n formControlName=\"displayMarkedPoint\"\n />\n <span></span>\n <span translate>Show icon when triggered</span>\n <button\n class=\"btn-clean m-l-8\"\n [attr.aria-label]=\"\n 'Some alarms or events have no matching data points. No icons will be shown for them.'\n | translate\n \"\n [tooltip]=\"\n 'Some alarms or events have no matching data points. No icons will be shown for them.'\n | translate\n \"\n container=\"body\"\n type=\"button\"\n *ngIf=\"alarmsOrEventsHaveNoMatchingDps\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-warning\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset m-b-24 m-t-0\">\n <legend>{{ 'Chart' | translate }}</legend>\n <c8y-form-group class=\"p-b-16 m-b-0 p-t-8 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Enable date selection in the widget view.' | translate\"\n >\n <input\n name=\"displayDateSelection\"\n type=\"checkbox\"\n formControlName=\"displayDateSelection\"\n />\n <span></span>\n <span translate>Date selection in the widget view.</span>\n <button\n class=\"btn-clean m-l-8\"\n [attr.aria-label]=\"\n 'Date selection in widget view is not possible when using dashboard time range.'\n | translate\n \"\n [tooltip]=\"\n 'Date selection in widget view is not possible when using dashboard time range.'\n | translate\n \"\n container=\"body\"\n type=\"button\"\n *ngIf=\"dateSelection === DATE_SELECTION.DASHBOARD_CONTEXT\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-info\"\n c8yIcon=\"info\"\n ></i>\n </button>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Aggregation selection' | translate\"\n >\n <input\n name=\"displayAggregationSelection\"\n type=\"checkbox\"\n formControlName=\"displayAggregationSelection\"\n />\n <span></span>\n <span translate>Aggregation selection</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show labels and units' | translate\"\n >\n <input\n name=\"showLabelAndUnit\"\n type=\"checkbox\"\n formControlName=\"showLabelAndUnit\"\n />\n <span></span>\n <span translate>Display labels and units on Y-axis</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show slider' | translate\"\n >\n <input\n name=\"showSlider\"\n type=\"checkbox\"\n formControlName=\"showSlider\"\n />\n <span></span>\n <span translate>Show slider</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </form>\n </div>\n </div>\n</div>\n<ng-template #dateSelectionHelpTemplate>\n <div [innerHTML]=\"dateSelectionHelp\"></div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5$1.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"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "directive", type: i6.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: ChartsComponent, selector: "c8y-charts", inputs: ["config", "alerts"], outputs: ["configChangeOnZoomOut", "timeRangeChangeOnRealtime", "datapointOutOfSync", "updateAlarmsAndEvents", "isMarkedAreaEnabled"] }, { kind: "ngmodule", type: DatapointSelectorModule }, { kind: "component", type: i7.DatapointSelectionListComponent, selector: "c8y-datapoint-selection-list", inputs: ["actions", "allowDragAndDrop", "config", "defaultFormOptions", "maxActiveCount", "minActiveCount", "resolveContext", "listTitle"], outputs: ["isValid", "change"] }, { kind: "ngmodule", type: AlarmEventSelectorModule }, { kind: "component", type: i8.AlarmEventSelectionListComponent, selector: "c8y-alarm-event-selection-list", inputs: ["timelineType", "canRemove", "canEdit", "canDragAndDrop", "title", "addButtonLabel", "hideSource", "inline", "activeToggleAsSwitch", "omitProperties", "datapoints", "config"] }, { kind: "component", type: TimeContextComponent, selector: "c8y-time-context", inputs: ["changedDateContext", "controlsAvailable", "context"], outputs: ["contextChange"] }] }); }
225
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DatapointsGraphWidgetConfigComponent, isStandalone: true, selector: "c8y-datapoints-graph-widget-config", inputs: { config: "config" }, host: { classAttribute: "d-contents" }, providers: [ChartEventsService, ChartAlarmsService], ngImport: i0, template: "<div class=\"no-card-context d-flex-md fit-h--md\">\n <div class=\"col-md-5 bg-level-1 conf-col inner-scroll p-l-0\">\n <div class=\"p-l-24\">\n <form [formGroup]=\"formGroup\">\n <c8y-datapoint-selection-list\n class=\"bg-level-1 separator-bottom d-block\"\n name=\"datapoints\"\n [minActiveCount]=\"1\"\n [defaultFormOptions]=\"datapointSelectDefaultFormOptions\"\n [config]=\"datapointSelectionConfig\"\n formControlName=\"datapoints\"\n ></c8y-datapoint-selection-list>\n\n <c8y-alarm-event-selection-list\n class=\"bg-level-1 separator-bottom d-block\"\n name=\"alarms\"\n formControlName=\"alarms\"\n [timelineType]=\"'ALARM'\"\n [datapoints]=\"config?.datapoints\"\n ></c8y-alarm-event-selection-list>\n\n <c8y-alarm-event-selection-list\n class=\"bg-inherit\"\n name=\"events\"\n formControlName=\"events\"\n [timelineType]=\"'EVENT'\"\n [datapoints]=\"config?.datapoints\"\n ></c8y-alarm-event-selection-list>\n </form>\n </div>\n </div>\n\n <div class=\"col-md-7 sticky-top p-t-8 inner-scroll widget-preview\">\n <div class=\"p-r-24 d-col fit-h\">\n <div class=\"form-group p-t-8 form-group-sm d-flex a-i-center m-b-8\">\n <div class=\"d-flex a-i-center m-r-4\">\n <label\n class=\"m-b-0\"\n translate\n >\n Date selection\n </label>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"dateSelectionHelpTemplate\"\n placement=\"bottom\"\n triggers=\"focus\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></button>\n </div>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control input-sm\"\n [ngModel]=\"dateSelection\"\n (ngModelChange)=\"dateSelectionChange($event)\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option\n title=\"{{ 'Dashboard time range' | translate }}\"\n [value]=\"DATE_SELECTION.DASHBOARD_CONTEXT\"\n >\n {{ 'Dashboard time range' | translate }}\n </option>\n <option\n title=\"{{ 'Widget configuration' | translate }}\"\n [value]=\"DATE_SELECTION.CONFIG\"\n >\n {{ 'Widget configuration' | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n <label class=\"text-12\">{{ 'Options' | translate }}</label>\n <c8y-time-context\n *ngIf=\"\n dateSelection === DATE_SELECTION.CONFIG &&\n formGroup.get('displayDateSelection').value === true\n \"\n [changedDateContext]=\"timeProps\"\n [controlsAvailable]=\"{\n realtime: true,\n timeRange: config?.displayDateSelection,\n interval: config?.displayDateSelection,\n aggregation: config?.displayAggregationSelection\n }\"\n (contextChange)=\"timePropsChanged($event)\"\n ></c8y-time-context>\n <c8y-charts\n class=\"d-block p-relative\"\n *ngIf=\"activeDatapointsExists\"\n [config]=\"config\"\n [alerts]=\"alerts\"\n (timeRangeChangeOnRealtime)=\"updateTimeRangeOnRealtime($event)\"\n (configChangeOnZoomOut)=\"updateDashboardTimeContext($event)\"\n ></c8y-charts>\n\n <c8y-ui-empty-state\n class=\"d-block m-t-24\"\n [icon]=\"'search'\"\n [title]=\"'No data points selected' | translate\"\n [subtitle]=\"'Select data point to render chart' | translate\"\n *ngIf=\"!activeDatapointsExists\"\n ></c8y-ui-empty-state>\n\n <form\n class=\"d-block p-t-8\"\n [formGroup]=\"formGroup\"\n >\n <label>{{ 'Display options' | translate }}</label>\n <fieldset class=\"c8y-fieldset m-b-24 m-t-0\">\n <legend>{{ 'Axis' | translate }}</legend>\n <c8y-form-group class=\"p-b-16 m-b-0 p-t-8 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Y-axis helper lines' | translate\"\n >\n <input\n name=\"yAxisSplitLines\"\n type=\"checkbox\"\n formControlName=\"yAxisSplitLines\"\n />\n <span></span>\n <span translate>Y-axis helper lines</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'X-axis helper lines' | translate\"\n >\n <input\n name=\"xAxisSplitLines\"\n type=\"checkbox\"\n formControlName=\"xAxisSplitLines\"\n />\n <span></span>\n <span translate>X-axis helper lines</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Merge matching data points into single axis' | translate\"\n >\n <input\n name=\"mergeMatchingDatapoints\"\n type=\"checkbox\"\n formControlName=\"mergeMatchingDatapoints\"\n />\n <span></span>\n <span translate>Merge matching data points into single axis</span>\n <button\n class=\"btn-dot m-l-8\"\n [attr.aria-label]=\"\n 'Data points with the same min and max values will be merged into a single axis. The values must be defined in the data point configuration.'\n | translate\n \"\n [tooltip]=\"\n 'Data points with the same min and max values will be merged into a single axis. The values must be defined in the data point configuration.'\n | translate\n \"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-info\"\n c8yIcon=\"info\"\n ></i>\n </button>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Force merge all data points into single axis' | translate\"\n >\n <input\n name=\"forceMergeDatapoints\"\n type=\"checkbox\"\n formControlName=\"forceMergeDatapoints\"\n />\n <span></span>\n <span translate>Force merge all datapoints into a single axis</span>\n <button\n class=\"btn-dot m-l-8\"\n [attr.aria-label]=\"\n 'All axes will be force merged to a single axis with the scale being set to the max and min value of all axes. It\\'s recommended to use this option for data points with similar values.'\n | translate\n \"\n [tooltip]=\"\n 'All axes will be force merged to a single axis with the scale being set to the max and min value of all axes. It\\'s recommended to use this option for data points with similar values.'\n | translate\n \"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-info\"\n c8yIcon=\"info\"\n ></i>\n </button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset m-b-24 m-t-0\">\n <legend>{{ 'Alarms & events' | translate }}</legend>\n <c8y-form-group class=\"p-b-16 m-b-0 p-t-8 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show vertical line on every occurrence' | translate\"\n >\n <input\n name=\"displayMarkedLine\"\n type=\"checkbox\"\n formControlName=\"displayMarkedLine\"\n />\n <span></span>\n <span translate>Show vertical line on every occurrence</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show icon when triggered' | translate\"\n >\n <input\n name=\"displayMarkedPoint\"\n type=\"checkbox\"\n formControlName=\"displayMarkedPoint\"\n />\n <span></span>\n <span translate>Show icon when triggered</span>\n <button\n class=\"btn-clean m-l-8\"\n [attr.aria-label]=\"\n 'Some alarms or events have no matching data points. No icons will be shown for them.'\n | translate\n \"\n [tooltip]=\"\n 'Some alarms or events have no matching data points. No icons will be shown for them.'\n | translate\n \"\n container=\"body\"\n type=\"button\"\n *ngIf=\"alarmsOrEventsHaveNoMatchingDps\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-warning\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset m-b-24 m-t-0\">\n <legend>{{ 'Chart' | translate }}</legend>\n <c8y-form-group class=\"p-b-16 m-b-0 p-t-8 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Enable date selection in the widget view.' | translate\"\n >\n <input\n name=\"displayDateSelection\"\n type=\"checkbox\"\n formControlName=\"displayDateSelection\"\n />\n <span></span>\n <span translate>Date selection in the widget view.</span>\n <button\n class=\"btn-clean m-l-8\"\n [attr.aria-label]=\"\n 'Date selection in widget view is not possible when using dashboard time range.'\n | translate\n \"\n [tooltip]=\"\n 'Date selection in widget view is not possible when using dashboard time range.'\n | translate\n \"\n container=\"body\"\n type=\"button\"\n *ngIf=\"dateSelection === DATE_SELECTION.DASHBOARD_CONTEXT\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-info\"\n c8yIcon=\"info\"\n ></i>\n </button>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Aggregation selection' | translate\"\n >\n <input\n name=\"displayAggregationSelection\"\n type=\"checkbox\"\n formControlName=\"displayAggregationSelection\"\n />\n <span></span>\n <span translate>Aggregation selection</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show labels and units' | translate\"\n >\n <input\n name=\"showLabelAndUnit\"\n type=\"checkbox\"\n formControlName=\"showLabelAndUnit\"\n />\n <span></span>\n <span translate>Display labels and units on Y-axis</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show slider' | translate\"\n >\n <input\n name=\"showSlider\"\n type=\"checkbox\"\n formControlName=\"showSlider\"\n />\n <span></span>\n <span translate>Show slider</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </form>\n </div>\n </div>\n</div>\n<ng-template #dateSelectionHelpTemplate>\n <div [innerHTML]=\"dateSelectionHelp\"></div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5$1.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"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "directive", type: i6.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: ChartsComponent, selector: "c8y-charts", inputs: ["config", "alerts"], outputs: ["configChangeOnZoomOut", "timeRangeChangeOnRealtime", "datapointOutOfSync", "updateAlarmsAndEvents", "isMarkedAreaEnabled"] }, { kind: "ngmodule", type: DatapointSelectorModule }, { kind: "component", type: i7.DatapointSelectionListComponent, selector: "c8y-datapoint-selection-list", inputs: ["actions", "allowDragAndDrop", "config", "defaultFormOptions", "maxActiveCount", "minActiveCount", "resolveContext", "listTitle"], outputs: ["isValid", "change"] }, { kind: "ngmodule", type: AlarmEventSelectorModule }, { kind: "component", type: i8.AlarmEventSelectionListComponent, selector: "c8y-alarm-event-selection-list", inputs: ["timelineType", "canRemove", "canEdit", "canDragAndDrop", "title", "addButtonLabel", "hideSource", "inline", "activeToggleAsSwitch", "omitProperties", "datapoints", "config"] }, { kind: "component", type: TimeContextComponent, selector: "c8y-time-context", inputs: ["changedDateContext", "controlsAvailable", "context"], outputs: ["contextChange"] }] }); }
225
226
  }
226
227
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointsGraphWidgetConfigComponent, decorators: [{
227
228
  type: Component,
@@ -235,7 +236,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
235
236
  DatapointSelectorModule,
236
237
  AlarmEventSelectorModule,
237
238
  TimeContextComponent
238
- ], providers: [ChartEventsService, ChartAlarmsService], template: "<div class=\"no-card-context d-flex-md fit-h--md\">\n <div class=\"col-md-5 bg-level-1 conf-col inner-scroll p-l-0\">\n <div class=\"p-l-24\">\n <form [formGroup]=\"formGroup\">\n <c8y-datapoint-selection-list\n class=\"bg-level-1 separator-bottom d-block\"\n name=\"datapoints\"\n [minActiveCount]=\"1\"\n [defaultFormOptions]=\"datapointSelectDefaultFormOptions\"\n [config]=\"datapointSelectionConfig\"\n formControlName=\"datapoints\"\n ></c8y-datapoint-selection-list>\n\n <c8y-alarm-event-selection-list\n class=\"bg-level-1 separator-bottom d-block\"\n name=\"alarms\"\n formControlName=\"alarms\"\n [timelineType]=\"'ALARM'\"\n [datapoints]=\"config?.datapoints\"\n ></c8y-alarm-event-selection-list>\n\n <c8y-alarm-event-selection-list\n class=\"bg-inherit\"\n name=\"events\"\n formControlName=\"events\"\n [timelineType]=\"'EVENT'\"\n [datapoints]=\"config?.datapoints\"\n ></c8y-alarm-event-selection-list>\n </form>\n </div>\n </div>\n\n <div class=\"col-md-7 sticky-top p-t-8 inner-scroll widget-preview\">\n <div class=\"p-r-24 d-col fit-h\">\n <div class=\"form-group p-t-8 form-group-sm d-flex a-i-center m-b-8\">\n <div class=\"d-flex a-i-center m-r-4\">\n <label\n class=\"m-b-0\"\n translate\n >\n Date selection\n </label>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"dateSelectionHelpTemplate\"\n placement=\"bottom\"\n triggers=\"focus\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></button>\n </div>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control input-sm\"\n [ngModel]=\"dateSelection\"\n (ngModelChange)=\"dateSelectionChange($event)\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option\n title=\"{{ 'Dashboard time range' | translate }}\"\n [value]=\"DATE_SELECTION.DASHBOARD_CONTEXT\"\n >\n {{ 'Dashboard time range' | translate }}\n </option>\n <option\n title=\"{{ 'Widget configuration' | translate }}\"\n [value]=\"DATE_SELECTION.CONFIG\"\n >\n {{ 'Widget configuration' | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n <label class=\"text-12\">{{ 'Options' | translate }}</label>\n <c8y-time-context\n *ngIf=\"\n dateSelection === DATE_SELECTION.CONFIG &&\n formGroup.get('displayDateSelection').value === true\n \"\n [changedDateContext]=\"timeProps\"\n [controlsAvailable]=\"{\n realtime: true,\n timeRange: config?.displayDateSelection,\n interval: config?.displayDateSelection,\n aggregation: config?.displayAggregationSelection\n }\"\n (contextChange)=\"timePropsChanged($event)\"\n ></c8y-time-context>\n <c8y-charts\n class=\"d-block p-relative\"\n *ngIf=\"activeDatapointsExists\"\n [config]=\"config\"\n [alerts]=\"alerts\"\n (timeRangeChangeOnRealtime)=\"updateTimeRangeOnRealtime($event)\"\n (configChangeOnZoomOut)=\"updateDashboardTimeContext($event)\"\n ></c8y-charts>\n\n <c8y-ui-empty-state\n class=\"d-block m-t-24\"\n [icon]=\"'search'\"\n [title]=\"'No data points selected' | translate\"\n [subtitle]=\"'Select data point to render chart' | translate\"\n *ngIf=\"!activeDatapointsExists\"\n ></c8y-ui-empty-state>\n\n <form\n class=\"d-block p-t-8\"\n [formGroup]=\"formGroup\"\n >\n <label>{{ 'Display options' | translate }}</label>\n <fieldset class=\"c8y-fieldset m-b-24 m-t-0\">\n <legend>{{ 'Axis' | translate }}</legend>\n <c8y-form-group class=\"p-b-16 m-b-0 p-t-8 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Y-axis helper lines' | translate\"\n >\n <input\n name=\"yAxisSplitLines\"\n type=\"checkbox\"\n formControlName=\"yAxisSplitLines\"\n />\n <span></span>\n <span translate>Y-axis helper lines</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'X-axis helper lines' | translate\"\n >\n <input\n name=\"xAxisSplitLines\"\n type=\"checkbox\"\n formControlName=\"xAxisSplitLines\"\n />\n <span></span>\n <span translate>X-axis helper lines</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Merge matching data points into single axis' | translate\"\n >\n <input\n name=\"mergeMatchingDatapoints\"\n type=\"checkbox\"\n formControlName=\"mergeMatchingDatapoints\"\n />\n <span></span>\n <span translate>Merge matching data points into single axis</span>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset m-b-24 m-t-0\">\n <legend>{{ 'Alarms & events' | translate }}</legend>\n <c8y-form-group class=\"p-b-16 m-b-0 p-t-8 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show vertical line on every occurrence' | translate\"\n >\n <input\n name=\"displayMarkedLine\"\n type=\"checkbox\"\n formControlName=\"displayMarkedLine\"\n />\n <span></span>\n <span translate>Show vertical line on every occurrence</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show icon when triggered' | translate\"\n >\n <input\n name=\"displayMarkedPoint\"\n type=\"checkbox\"\n formControlName=\"displayMarkedPoint\"\n />\n <span></span>\n <span translate>Show icon when triggered</span>\n <button\n class=\"btn-clean m-l-8\"\n [attr.aria-label]=\"\n 'Some alarms or events have no matching data points. No icons will be shown for them.'\n | translate\n \"\n [tooltip]=\"\n 'Some alarms or events have no matching data points. No icons will be shown for them.'\n | translate\n \"\n container=\"body\"\n type=\"button\"\n *ngIf=\"alarmsOrEventsHaveNoMatchingDps\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-warning\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset m-b-24 m-t-0\">\n <legend>{{ 'Chart' | translate }}</legend>\n <c8y-form-group class=\"p-b-16 m-b-0 p-t-8 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Enable date selection in the widget view.' | translate\"\n >\n <input\n name=\"displayDateSelection\"\n type=\"checkbox\"\n formControlName=\"displayDateSelection\"\n />\n <span></span>\n <span translate>Date selection in the widget view.</span>\n <button\n class=\"btn-clean m-l-8\"\n [attr.aria-label]=\"\n 'Date selection in widget view is not possible when using dashboard time range.'\n | translate\n \"\n [tooltip]=\"\n 'Date selection in widget view is not possible when using dashboard time range.'\n | translate\n \"\n container=\"body\"\n type=\"button\"\n *ngIf=\"dateSelection === DATE_SELECTION.DASHBOARD_CONTEXT\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-info\"\n c8yIcon=\"info\"\n ></i>\n </button>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Aggregation selection' | translate\"\n >\n <input\n name=\"displayAggregationSelection\"\n type=\"checkbox\"\n formControlName=\"displayAggregationSelection\"\n />\n <span></span>\n <span translate>Aggregation selection</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show labels and units' | translate\"\n >\n <input\n name=\"showLabelAndUnit\"\n type=\"checkbox\"\n formControlName=\"showLabelAndUnit\"\n />\n <span></span>\n <span translate>Display labels and units on Y-axis</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show slider' | translate\"\n >\n <input\n name=\"showSlider\"\n type=\"checkbox\"\n formControlName=\"showSlider\"\n />\n <span></span>\n <span translate>Show slider</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </form>\n </div>\n </div>\n</div>\n<ng-template #dateSelectionHelpTemplate>\n <div [innerHTML]=\"dateSelectionHelp\"></div>\n</ng-template>\n" }]
239
+ ], providers: [ChartEventsService, ChartAlarmsService], template: "<div class=\"no-card-context d-flex-md fit-h--md\">\n <div class=\"col-md-5 bg-level-1 conf-col inner-scroll p-l-0\">\n <div class=\"p-l-24\">\n <form [formGroup]=\"formGroup\">\n <c8y-datapoint-selection-list\n class=\"bg-level-1 separator-bottom d-block\"\n name=\"datapoints\"\n [minActiveCount]=\"1\"\n [defaultFormOptions]=\"datapointSelectDefaultFormOptions\"\n [config]=\"datapointSelectionConfig\"\n formControlName=\"datapoints\"\n ></c8y-datapoint-selection-list>\n\n <c8y-alarm-event-selection-list\n class=\"bg-level-1 separator-bottom d-block\"\n name=\"alarms\"\n formControlName=\"alarms\"\n [timelineType]=\"'ALARM'\"\n [datapoints]=\"config?.datapoints\"\n ></c8y-alarm-event-selection-list>\n\n <c8y-alarm-event-selection-list\n class=\"bg-inherit\"\n name=\"events\"\n formControlName=\"events\"\n [timelineType]=\"'EVENT'\"\n [datapoints]=\"config?.datapoints\"\n ></c8y-alarm-event-selection-list>\n </form>\n </div>\n </div>\n\n <div class=\"col-md-7 sticky-top p-t-8 inner-scroll widget-preview\">\n <div class=\"p-r-24 d-col fit-h\">\n <div class=\"form-group p-t-8 form-group-sm d-flex a-i-center m-b-8\">\n <div class=\"d-flex a-i-center m-r-4\">\n <label\n class=\"m-b-0\"\n translate\n >\n Date selection\n </label>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"dateSelectionHelpTemplate\"\n placement=\"bottom\"\n triggers=\"focus\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></button>\n </div>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control input-sm\"\n [ngModel]=\"dateSelection\"\n (ngModelChange)=\"dateSelectionChange($event)\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option\n title=\"{{ 'Dashboard time range' | translate }}\"\n [value]=\"DATE_SELECTION.DASHBOARD_CONTEXT\"\n >\n {{ 'Dashboard time range' | translate }}\n </option>\n <option\n title=\"{{ 'Widget configuration' | translate }}\"\n [value]=\"DATE_SELECTION.CONFIG\"\n >\n {{ 'Widget configuration' | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n <label class=\"text-12\">{{ 'Options' | translate }}</label>\n <c8y-time-context\n *ngIf=\"\n dateSelection === DATE_SELECTION.CONFIG &&\n formGroup.get('displayDateSelection').value === true\n \"\n [changedDateContext]=\"timeProps\"\n [controlsAvailable]=\"{\n realtime: true,\n timeRange: config?.displayDateSelection,\n interval: config?.displayDateSelection,\n aggregation: config?.displayAggregationSelection\n }\"\n (contextChange)=\"timePropsChanged($event)\"\n ></c8y-time-context>\n <c8y-charts\n class=\"d-block p-relative\"\n *ngIf=\"activeDatapointsExists\"\n [config]=\"config\"\n [alerts]=\"alerts\"\n (timeRangeChangeOnRealtime)=\"updateTimeRangeOnRealtime($event)\"\n (configChangeOnZoomOut)=\"updateDashboardTimeContext($event)\"\n ></c8y-charts>\n\n <c8y-ui-empty-state\n class=\"d-block m-t-24\"\n [icon]=\"'search'\"\n [title]=\"'No data points selected' | translate\"\n [subtitle]=\"'Select data point to render chart' | translate\"\n *ngIf=\"!activeDatapointsExists\"\n ></c8y-ui-empty-state>\n\n <form\n class=\"d-block p-t-8\"\n [formGroup]=\"formGroup\"\n >\n <label>{{ 'Display options' | translate }}</label>\n <fieldset class=\"c8y-fieldset m-b-24 m-t-0\">\n <legend>{{ 'Axis' | translate }}</legend>\n <c8y-form-group class=\"p-b-16 m-b-0 p-t-8 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Y-axis helper lines' | translate\"\n >\n <input\n name=\"yAxisSplitLines\"\n type=\"checkbox\"\n formControlName=\"yAxisSplitLines\"\n />\n <span></span>\n <span translate>Y-axis helper lines</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'X-axis helper lines' | translate\"\n >\n <input\n name=\"xAxisSplitLines\"\n type=\"checkbox\"\n formControlName=\"xAxisSplitLines\"\n />\n <span></span>\n <span translate>X-axis helper lines</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Merge matching data points into single axis' | translate\"\n >\n <input\n name=\"mergeMatchingDatapoints\"\n type=\"checkbox\"\n formControlName=\"mergeMatchingDatapoints\"\n />\n <span></span>\n <span translate>Merge matching data points into single axis</span>\n <button\n class=\"btn-dot m-l-8\"\n [attr.aria-label]=\"\n 'Data points with the same min and max values will be merged into a single axis. The values must be defined in the data point configuration.'\n | translate\n \"\n [tooltip]=\"\n 'Data points with the same min and max values will be merged into a single axis. The values must be defined in the data point configuration.'\n | translate\n \"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-info\"\n c8yIcon=\"info\"\n ></i>\n </button>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Force merge all data points into single axis' | translate\"\n >\n <input\n name=\"forceMergeDatapoints\"\n type=\"checkbox\"\n formControlName=\"forceMergeDatapoints\"\n />\n <span></span>\n <span translate>Force merge all datapoints into a single axis</span>\n <button\n class=\"btn-dot m-l-8\"\n [attr.aria-label]=\"\n 'All axes will be force merged to a single axis with the scale being set to the max and min value of all axes. It\\'s recommended to use this option for data points with similar values.'\n | translate\n \"\n [tooltip]=\"\n 'All axes will be force merged to a single axis with the scale being set to the max and min value of all axes. It\\'s recommended to use this option for data points with similar values.'\n | translate\n \"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-info\"\n c8yIcon=\"info\"\n ></i>\n </button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset m-b-24 m-t-0\">\n <legend>{{ 'Alarms & events' | translate }}</legend>\n <c8y-form-group class=\"p-b-16 m-b-0 p-t-8 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show vertical line on every occurrence' | translate\"\n >\n <input\n name=\"displayMarkedLine\"\n type=\"checkbox\"\n formControlName=\"displayMarkedLine\"\n />\n <span></span>\n <span translate>Show vertical line on every occurrence</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show icon when triggered' | translate\"\n >\n <input\n name=\"displayMarkedPoint\"\n type=\"checkbox\"\n formControlName=\"displayMarkedPoint\"\n />\n <span></span>\n <span translate>Show icon when triggered</span>\n <button\n class=\"btn-clean m-l-8\"\n [attr.aria-label]=\"\n 'Some alarms or events have no matching data points. No icons will be shown for them.'\n | translate\n \"\n [tooltip]=\"\n 'Some alarms or events have no matching data points. No icons will be shown for them.'\n | translate\n \"\n container=\"body\"\n type=\"button\"\n *ngIf=\"alarmsOrEventsHaveNoMatchingDps\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-warning\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset m-b-24 m-t-0\">\n <legend>{{ 'Chart' | translate }}</legend>\n <c8y-form-group class=\"p-b-16 m-b-0 p-t-8 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Enable date selection in the widget view.' | translate\"\n >\n <input\n name=\"displayDateSelection\"\n type=\"checkbox\"\n formControlName=\"displayDateSelection\"\n />\n <span></span>\n <span translate>Date selection in the widget view.</span>\n <button\n class=\"btn-clean m-l-8\"\n [attr.aria-label]=\"\n 'Date selection in widget view is not possible when using dashboard time range.'\n | translate\n \"\n [tooltip]=\"\n 'Date selection in widget view is not possible when using dashboard time range.'\n | translate\n \"\n container=\"body\"\n type=\"button\"\n *ngIf=\"dateSelection === DATE_SELECTION.DASHBOARD_CONTEXT\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-info\"\n c8yIcon=\"info\"\n ></i>\n </button>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Aggregation selection' | translate\"\n >\n <input\n name=\"displayAggregationSelection\"\n type=\"checkbox\"\n formControlName=\"displayAggregationSelection\"\n />\n <span></span>\n <span translate>Aggregation selection</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show labels and units' | translate\"\n >\n <input\n name=\"showLabelAndUnit\"\n type=\"checkbox\"\n formControlName=\"showLabelAndUnit\"\n />\n <span></span>\n <span translate>Display labels and units on Y-axis</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show slider' | translate\"\n >\n <input\n name=\"showSlider\"\n type=\"checkbox\"\n formControlName=\"showSlider\"\n />\n <span></span>\n <span translate>Show slider</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </form>\n </div>\n </div>\n</div>\n<ng-template #dateSelectionHelpTemplate>\n <div [innerHTML]=\"dateSelectionHelp\"></div>\n</ng-template>\n" }]
239
240
  }], ctorParameters: () => [{ type: i1.WidgetConfigComponent, decorators: [{
240
241
  type: Optional
241
242
  }] }, { type: i1.ContextDashboardComponent, decorators: [{