@c8y/ngx-components 1024.19.1 → 1024.19.3
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.
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +9 -4
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
- package/locales/de.po +3 -0
- package/locales/es.po +3 -0
- package/locales/fr.po +3 -0
- package/locales/ja_JP.po +3 -0
- package/locales/ko.po +3 -0
- package/locales/nl.po +3 -0
- package/locales/pl.po +3 -0
- package/locales/pt_BR.po +3 -0
- package/locales/zh_CN.po +3 -0
- package/locales/zh_TW.po +3 -0
- package/package.json +1 -1
- package/types/c8y-ngx-components-widgets-implementations-datapoints-graph.d.ts.map +1 -1
|
@@ -286,7 +286,7 @@ class DatapointsGraphWidgetViewComponent {
|
|
|
286
286
|
this.AGGREGATION_TEXTS = AGGREGATION_TEXTS;
|
|
287
287
|
this.datapointsOutOfSync = new Map();
|
|
288
288
|
this.hasAtLeastOneDatapointActive = true;
|
|
289
|
-
this.hasAtLeastOneAlarmActive =
|
|
289
|
+
this.hasAtLeastOneAlarmActive = false;
|
|
290
290
|
this.isMarkedAreaEnabled = false;
|
|
291
291
|
this.loadedDatapoints = [];
|
|
292
292
|
this.loadedAlarmsOrEvents = [];
|
|
@@ -346,6 +346,10 @@ class DatapointsGraphWidgetViewComponent {
|
|
|
346
346
|
this.totalLegendItems = dpLegendCount + (this.displayConfig?.alarmsEventsConfigs?.length || 0);
|
|
347
347
|
this.loadedDatapoints = (this.displayConfig?.datapoints || []).filter(dp => dp.__active);
|
|
348
348
|
this.loadedAlarmsOrEvents = (this.displayConfig?.alarmsEventsConfigs || []).filter(aOrE => aOrE.__active && !aOrE.__hidden);
|
|
349
|
+
// Seed from the config so the severity filter mounts with the widget. The filter emits its
|
|
350
|
+
// initial value on init, and mounting it only after the chart has loaded its alarms would
|
|
351
|
+
// trigger a second load.
|
|
352
|
+
this.hasAtLeastOneAlarmActive = (this.displayConfig?.alarmsEventsConfigs || []).some(aOrE => aOrE.timelineType === 'ALARM' && aOrE.__active);
|
|
349
353
|
if (this.totalLegendItems > 5 || this.displayConfig?.dataPointLegendDisplay === 'dropdown') {
|
|
350
354
|
this.selectableItems = this.buildSelectableItems();
|
|
351
355
|
// Initialize selectedItems with the currently active items
|
|
@@ -801,9 +805,10 @@ class DatapointsGraphWidgetViewComponent {
|
|
|
801
805
|
updateAlarmsAndEvents(alarmsEventsConfigs) {
|
|
802
806
|
this.alarms = alarmsEventsConfigs.filter(alarm => alarm.timelineType === 'ALARM');
|
|
803
807
|
this.events = alarmsEventsConfigs.filter(event => event.timelineType === 'EVENT');
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
808
|
+
// Recompute in both directions. Only ever clearing this flag left the severity filter
|
|
809
|
+
// showing for widgets that have no alarms at all, and kept it hidden after an alarm was
|
|
810
|
+
// added back.
|
|
811
|
+
this.hasAtLeastOneAlarmActive = this.alarms.some(alarm => alarm.__active);
|
|
807
812
|
}
|
|
808
813
|
filterSeverity(eventTarget) {
|
|
809
814
|
this.alarms = this.alarms.map(alarm => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-widgets-implementations-datapoints-graph.mjs","sources":["../../widgets/implementations/datapoints-graph/datapoints-graph-config/datapoints-graph-widget-config.component.ts","../../widgets/implementations/datapoints-graph/datapoints-graph-config/datapoints-graph-widget-config.component.html","../../widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.ts","../../widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.html","../../widgets/implementations/datapoints-graph/c8y-ngx-components-widgets-implementations-datapoints-graph.ts"],"sourcesContent":["import {\n Component,\n computed,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { FormBuilder, NgForm, Validators } from '@angular/forms';\nimport {\n CommonModule,\n CoreModule,\n DynamicComponentAlertAggregator,\n FormsModule,\n GainsightService,\n OnBeforeSave,\n WidgetTimeContextDateRangeService\n} from '@c8y/ngx-components';\nimport {\n AlarmEventSelectorModule,\n SelectedDatapoint\n} from '@c8y/ngx-components/alarm-event-selector';\nimport { WidgetConfigService } from '@c8y/ngx-components/context-dashboard';\nimport {\n DatapointSelectorModalOptions,\n DatapointSelectorModule\n} from '@c8y/ngx-components/datapoint-selector';\nimport {\n CHART_DISPLAY_OPTION_DEFAULTS,\n CHART_VIEW_CONTEXT,\n ChartAlarmsService,\n ChartEventsService,\n ChartHelpersService,\n ChartsComponent,\n DatapointsGraphKPIDetails,\n DatapointsGraphWidgetConfig,\n DatapointsGraphWidgetTimeProps,\n LEGEND_DISPLAY_OPTIONS,\n PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH\n} from '@c8y/ngx-components/echart';\nimport {\n GlobalContextState,\n LocalControlsComponent,\n PRESET_NAME,\n PresetName\n} from '@c8y/ngx-components/global-context';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Observable } from 'rxjs/internal/Observable';\n\n@Component({\n selector: 'c8y-datapoints-graph-widget-config',\n host: { class: 'd-contents' },\n templateUrl: './datapoints-graph-widget-config.component.html',\n standalone: true,\n imports: [\n CommonModule,\n CoreModule,\n FormsModule,\n TooltipModule,\n PopoverModule,\n ChartsComponent,\n DatapointSelectorModule,\n AlarmEventSelectorModule,\n LocalControlsComponent\n ],\n providers: [\n ChartEventsService,\n ChartAlarmsService,\n ChartHelpersService,\n WidgetTimeContextDateRangeService\n ],\n changeDetection: ChangeDetectionStrategy.Eager\n})\nexport class DatapointsGraphWidgetConfigComponent\n implements OnInit, OnChanges, OnBeforeSave, OnDestroy\n{\n private _config = signal<DatapointsGraphWidgetConfig>({} as DatapointsGraphWidgetConfig);\n private isFirstConfigSet = true;\n\n @Input() set config(value: DatapointsGraphWidgetConfig | undefined) {\n if (!value) return;\n\n if (this.isFirstConfigSet) {\n this._config.set({ ...value });\n this.isFirstConfigSet = false;\n } else {\n this._config.set({\n ...this._config(),\n dateFrom: value.dateFrom,\n dateTo: value.dateTo,\n interval: value.interval,\n refreshInterval: value.refreshInterval,\n isAutoRefreshEnabled: value.isAutoRefreshEnabled,\n aggregation: value.aggregation,\n aggregationFunction: value.aggregationFunction,\n autoAggregation: value.autoAggregation,\n realtime: value.realtime,\n displayMode: value.displayMode,\n refreshOption: value.refreshOption,\n dateTimeContext: value.dateTimeContext,\n datapoints: value.datapoints,\n alarmsEventsConfigs: value.alarmsEventsConfigs,\n showAdvancedChartOptions: value.showAdvancedChartOptions\n });\n }\n }\n\n get config(): DatapointsGraphWidgetConfig | undefined {\n return this._config();\n }\n\n @ViewChild('dataPointsGraphPreview')\n set previewMapSet(template: TemplateRef<any>) {\n if (template) {\n this.widgetConfigService.setPreview(template);\n return;\n }\n this.widgetConfigService.setPreview(null);\n }\n\n private readonly formBuilder = inject(FormBuilder);\n private readonly form = inject(NgForm);\n private readonly widgetConfigService = inject(WidgetConfigService);\n private readonly chartHelpersService = inject(ChartHelpersService);\n private readonly gainsightService = inject(GainsightService);\n\n alerts: DynamicComponentAlertAggregator | undefined;\n formGroup: ReturnType<DatapointsGraphWidgetConfigComponent['initForm']>;\n datapointSelectionConfig: Partial<DatapointSelectorModalOptions> = {};\n activeDatapointsExists = false;\n alarmsOrEventsHaveNoMatchingDps = false;\n chartViewContext: CHART_VIEW_CONTEXT = CHART_VIEW_CONTEXT.WIDGET_CONFIG;\n legendDisplayOptions = LEGEND_DISPLAY_OPTIONS;\n widgetControls: PresetName = PRESET_NAME.DATAPOINTS_GRAPH;\n previewContextConfig = computed<GlobalContextState>(() => {\n const cfg = this._config();\n return {\n dateTimeContext: cfg.dateTimeContext,\n aggregation: cfg.aggregation,\n autoAggregation: cfg.autoAggregation ?? null,\n aggregationFunction: cfg.aggregationFunction ?? null,\n isAutoRefreshEnabled: cfg.isAutoRefreshEnabled,\n refreshInterval: cfg.refreshInterval,\n refreshOption: cfg.refreshOption\n };\n });\n private destroy$ = new Subject<void>();\n private isInitialized = false;\n\n constructor() {\n this.formGroup = this.initForm();\n }\n\n async ngOnInit() {\n const currentConfig = this._config();\n\n this.form.form.addControl('config', this.formGroup);\n\n this.formGroup.patchValue({ ...currentConfig }, { emitEvent: false });\n this.applyFormValuesToConfig();\n this.isInitialized = true;\n\n this.formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.applyFormValuesToConfig();\n this.setActiveDatapointsExists();\n this.checkForMatchingDatapoints();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!changes.config || changes.config.isFirstChange() || !this.isInitialized) return;\n\n this.setActiveDatapointsExists();\n this.checkForMatchingDatapoints();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onBeforeSave(\n config?: DatapointsGraphWidgetConfig\n ): boolean | Promise<boolean> | Observable<boolean> {\n if (!this.formGroup.valid || !config) return false;\n\n const snapshot = { ...this._config() };\n\n for (const key in snapshot) {\n if (snapshot.hasOwnProperty(key)) {\n try {\n config[key] = snapshot[key];\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n // do nothing\n }\n }\n }\n\n this.widgetConfigService.updateConfig(snapshot, true);\n\n const configSummaryGS = this.chartHelpersService.getConfigSummaryForGainsight(config);\n this.gainsightService.triggerEvent(\n PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH.EVENTS.DATA_EXPLORER_AND_GRAPH,\n {\n component: PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH.COMPONENTS.DATA_EXPLORER_DETAILS,\n action: PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH.ACTIONS.DATA_GRAPH_WIDGET_CONFIG,\n ...configSummaryGS\n }\n );\n\n return true;\n }\n\n updateTimeRangeOnRealtime(\n timeRange: Pick<DatapointsGraphWidgetConfig, 'dateFrom' | 'dateTo'>\n ): void {\n const current = this._config();\n this._config.set({\n ...current,\n ...timeRange,\n interval: current.interval || 'hours'\n });\n }\n\n updateDashboardTimeContext(timeProps: DatapointsGraphWidgetTimeProps): void {\n const dateTimeContext = {\n dateFrom: new Date(timeProps.dateFrom).toISOString(),\n dateTo: new Date(timeProps.dateTo).toISOString(),\n interval: timeProps.interval\n };\n this._config.set({\n ...this._config(),\n dateTimeContext\n });\n }\n\n updateAggregatedSliderDatapoint(selectedDatapoint: SelectedDatapoint | null): void {\n const aggregatedDatapoint = this.chartHelpersService.findMatchingDatapoint(\n this._config().datapoints || [],\n selectedDatapoint\n ) as DatapointsGraphKPIDetails | undefined;\n\n this._config.set({\n ...this._config(),\n aggregatedDatapoint\n });\n }\n\n private applyFormValuesToConfig(): void {\n const formValue = this.formGroup.value;\n this._config.set({\n ...this._config(),\n dataPointLegendDisplay: formValue.dataPointLegendDisplay,\n displayMarkedLine: formValue.displayMarkedLine,\n displayMarkedPoint: formValue.displayMarkedPoint,\n mergeMatchingDatapoints: formValue.mergeMatchingDatapoints,\n forceMergeDatapoints: formValue.forceMergeDatapoints,\n setYaxisStartToZero: formValue.setYaxisStartToZero,\n smoothLines: formValue.smoothLines,\n showLabelAndUnit: formValue.showLabelAndUnit,\n showSlider: formValue.showSlider,\n yAxisSplitLines: formValue.yAxisSplitLines,\n xAxisSplitLines: formValue.xAxisSplitLines,\n numberOfDecimalPlaces: formValue.numberOfDecimalPlaces,\n aggregatedDatapoint: formValue.aggregatedDatapoint\n });\n }\n\n private checkForMatchingDatapoints(): void {\n const config = this._config();\n const alarmsEventsConfigs = config.alarmsEventsConfigs || [];\n const datapoints = config.datapoints || [];\n\n const allMatch = alarmsEventsConfigs.every(ae =>\n datapoints.some(dp => dp.__target?.id === ae.__target?.id)\n );\n\n queueMicrotask(() => {\n this.alarmsOrEventsHaveNoMatchingDps = !allMatch;\n });\n }\n\n private initForm() {\n const initialState = this._config();\n const chartDefaults = CHART_DISPLAY_OPTION_DEFAULTS;\n\n const form = this.formBuilder.group({\n dataPointLegendDisplay: ['auto', []],\n displayMarkedLine: [chartDefaults.displayMarkedLine, []],\n displayMarkedPoint: [chartDefaults.displayMarkedPoint, []],\n mergeMatchingDatapoints: [chartDefaults.mergeMatchingDatapoints, []],\n forceMergeDatapoints: [chartDefaults.forceMergeDatapoints, []],\n setYaxisStartToZero: [chartDefaults.setYaxisStartToZero, []],\n smoothLines: [chartDefaults.smoothLines, []],\n showLabelAndUnit: [chartDefaults.showLabelAndUnit, []],\n displayAggregationSelection: [false, []],\n canDecoupleGlobalTimeContext: [false, []],\n showSlider: [chartDefaults.showSlider, [Validators.required]],\n yAxisSplitLines: [false, [Validators.required]],\n xAxisSplitLines: [false, [Validators.required]],\n numberOfDecimalPlaces: [\n chartDefaults.numberOfDecimalPlaces,\n [Validators.required, Validators.min(0), Validators.max(10)]\n ],\n aggregatedDatapoint: [initialState?.aggregatedDatapoint || null]\n });\n return form;\n }\n\n private setActiveDatapointsExists() {\n const datapoints = this._config().datapoints || [];\n this.activeDatapointsExists = datapoints.filter(dp => dp.__active).length > 0;\n }\n}\n","<form [formGroup]=\"formGroup\">\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Formatting' | translate }}</legend>\n <c8y-form-group class=\"form-group-sm\">\n <label\n [title]=\"'Number of decimal places' | translate\"\n translate\n >\n Number of decimal places\n </label>\n <input\n class=\"form-control\"\n name=\"numberOfDecimalPlaces\"\n type=\"number\"\n formControlName=\"numberOfDecimalPlaces\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 1 }\"\n />\n <c8y-messages\n [show]=\"\n formGroup.controls?.numberOfDecimalPlaces?.touched &&\n formGroup?.controls?.numberOfDecimalPlaces?.errors\n \"\n ></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"form-group-sm\">\n <label>\n {{ 'Data point legend display' | translate }}\n </label>\n <div\n class=\"c8y-select-wrapper\"\n [formGroup]=\"formGroup\"\n >\n <select\n class=\"form-control\"\n [title]=\"'Data point legend display' | translate\"\n id=\"dataPointLegendDisplay\"\n formControlName=\"dataPointLegendDisplay\"\n >\n @for (option of legendDisplayOptions; track option) {\n <option [ngValue]=\"option.value\">\n {{ option.label | translate }}\n </option>\n }\n </select>\n </div>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Display options' | translate }}</legend>\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Axis' | translate }}</legend>\n <c8y-form-group class=\"m-b-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 a 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 a single axis</span>\n <button\n class=\"btn-help\"\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 [popover]=\"\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 triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n ></button>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Force merge all data points into a 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 data points into a single axis</span>\n <button\n class=\"btn-help\"\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 [popover]=\"\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 triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n ></button>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Set Y-axis start to 0' | translate\"\n >\n <input\n name=\"setYaxisStartToZero\"\n type=\"checkbox\"\n formControlName=\"setYaxisStartToZero\"\n />\n <span></span>\n <span translate>Set Y-axis start to 0</span>\n <button\n class=\"btn-help\"\n [attr.aria-label]=\"\n 'Sets the Y-axis minimum to 0 for all data points with positive values. If any data point includes negative values, the axis may still extend below 0. Explicitly configured minimum and maximum values take precedence over this option.'\n | translate\n \"\n [popover]=\"\n 'Sets the Y-axis minimum to 0 for all data points with positive values. If any data point includes negative values, the axis may still extend below 0. Explicitly configured minimum and maximum values take precedence over this option.'\n | translate\n \"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n ></button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Alarms & events' | translate }}</legend>\n <c8y-form-group class=\"m-b-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 @if (alarmsOrEventsHaveNoMatchingDps) {\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 (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-warning\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n }\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Chart' | translate }}</legend>\n <c8y-form-group class=\"m-b-8 form-group-sm\">\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 <label\n class=\"c8y-checkbox\"\n [title]=\"'Show smooth lines' | translate\"\n >\n <input\n name=\"smoothLines\"\n type=\"checkbox\"\n formControlName=\"smoothLines\"\n />\n <span></span>\n <span translate>Show smooth lines</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </fieldset>\n</form>\n\n<ng-template #dataPointsGraphPreview>\n @if (config?.displayMode && config.displayMode !== 'dashboard') {\n <c8y-local-controls\n [controls]=\"widgetControls\"\n [displayMode]=\"config.displayMode\"\n [config]=\"previewContextConfig()\"\n [disabled]=\"true\"\n ></c8y-local-controls>\n }\n\n @if (activeDatapointsExists) {\n <c8y-charts\n class=\"d-block p-relative\"\n [config]=\"config\"\n [alerts]=\"alerts\"\n [chartViewContext]=\"chartViewContext\"\n (timeRangeChangeOnRealtime)=\"updateTimeRangeOnRealtime($event)\"\n (configChangeOnZoomOut)=\"updateDashboardTimeContext($event)\"\n (updateAggregatedSliderDatapoint)=\"updateAggregatedSliderDatapoint($event)\"\n ></c8y-charts>\n }\n\n @if (!activeDatapointsExists) {\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 content' | translate\"\n data-cy=\"datapoints-graph-list--empty-state-no-data-point-selected\"\n >\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/cockpit/widgets-collection/#data-point-graph\">\n user documentation</a\n >.\n </small>\n </p>\n </c8y-ui-empty-state>\n }\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n inject,\n Input,\n OnDestroy,\n Optional,\n signal,\n ViewChild,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { ALARM_STATUS_LABELS, AlarmStatusType, SeveritySettings } from '@c8y/client';\nimport {\n AGGREGATION_ICONS,\n AGGREGATION_TEXTS,\n CoreModule,\n DashboardChildComponent,\n DynamicComponentAlertAggregator,\n SelectableItem,\n SelectComponent,\n SelectItemDirective,\n SelectedItemsDirective,\n WidgetTimeContextDateRangeService,\n WidgetTimeContextMediatorService,\n WidgetActionWrapperComponent\n} from '@c8y/ngx-components';\nimport { AlarmsModule } from '@c8y/ngx-components/alarms';\nimport { ContextDashboardComponent } from '@c8y/ngx-components/context-dashboard';\nimport type { KPIDetails } from '@c8y/ngx-components/datapoint-selector';\nimport {\n DatapointsExportSelectorComponent,\n ExportConfig\n} from '@c8y/ngx-components/datapoints-export-selector';\nimport {\n AlarmDetailsExtended,\n AlarmOrEventExtended,\n CHART_VIEW_CONTEXT,\n ChartAlarmsService,\n ChartEventsService,\n ChartsComponent,\n DatapointsGraphKPIDetails,\n DatapointsGraphWidgetConfig,\n DatapointsGraphWidgetTimeProps,\n EventDetailsExtended,\n SelectableDatapoint,\n SeverityType\n} from '@c8y/ngx-components/echart';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DisplayMode,\n GLOBAL_CONTEXT_DISPLAY_MODE,\n GLOBAL_CONTEXT_EVENTS,\n GLOBAL_CONTEXT_SOURCE,\n GlobalContextConnectorComponent,\n GlobalContextState,\n LocalControlsComponent,\n PRESET_NAME,\n PresetName,\n REFRESH_OPTION,\n WidgetConfigMigrationService\n} from '@c8y/ngx-components/global-context';\nimport { TranslateService } from '@ngx-translate/core';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\n@Component({\n selector: 'c8y-datapoints-graph-widget-view',\n templateUrl: './datapoints-graph-widget-view.component.html',\n standalone: true,\n imports: [\n A11yModule,\n CommonModule,\n ChartsComponent,\n CoreModule,\n TooltipModule,\n BsDropdownModule,\n PopoverModule,\n AlarmsModule,\n GlobalContextConnectorComponent,\n LocalControlsComponent,\n DatapointsExportSelectorComponent,\n SelectComponent,\n SelectItemDirective,\n SelectedItemsDirective,\n WidgetActionWrapperComponent\n ],\n providers: [ChartEventsService, ChartAlarmsService, WidgetTimeContextDateRangeService],\n changeDetection: ChangeDetectionStrategy.Eager\n})\nexport class DatapointsGraphWidgetViewComponent implements OnDestroy {\n events: EventDetailsExtended[] = [];\n alarms: AlarmDetailsExtended[] = [];\n exportConfig: ExportConfig;\n AGGREGATION_ICONS = AGGREGATION_ICONS;\n AGGREGATION_TEXTS = AGGREGATION_TEXTS;\n alerts: DynamicComponentAlertAggregator | undefined;\n datapointsOutOfSync = new Map<DatapointsGraphKPIDetails, boolean>();\n hasAtLeastOneDatapointActive = true;\n hasAtLeastOneAlarmActive = true;\n isMarkedAreaEnabled = false;\n loadedDatapoints: DatapointsGraphKPIDetails[] = [];\n loadedAlarmsOrEvents: AlarmOrEventExtended[] = [];\n isLoading$ = new BehaviorSubject<boolean>(false);\n isSliderBeingDragged$ = new BehaviorSubject<boolean>(false);\n /*\n * @description: The type of alarm that has marked area enabled.\n */\n enabledMarkedAreaAlarmType: string | undefined;\n chartViewContext = CHART_VIEW_CONTEXT.WIDGET_VIEW;\n\n private dashboardChild = inject(DashboardChildComponent);\n displayMode = signal<DisplayMode>(GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD);\n contextConfig = signal<GlobalContextState>({});\n isLinkedToGlobal = signal<boolean | undefined>(undefined);\n widgetControls = signal<PresetName>(PRESET_NAME.DATAPOINTS_GRAPH);\n readonly GLOBAL_CONTEXT_DISPLAY_MODE = GLOBAL_CONTEXT_DISPLAY_MODE;\n readonly duplicateAggrWarning = this.translate.instant(\n gettext(\n 'The selected aggregation functions return the same value because each interval contains a single measurement. Choose a coarser aggregation interval.'\n )\n );\n\n /** Combined number of datapoints, alarms, and events */\n totalLegendItems = 0;\n /** Selectable items for the datapoints, alarms, events dropdown */\n selectableItems: SelectableItem<SelectableDatapoint>[] = [];\n /** Selected items from the dropdown */\n selectedItems: SelectableItem<SelectableDatapoint>[] = [];\n /** Series names of per-function aggregation series that are currently hidden. */\n hiddenFunctionSeries = new Set<string>();\n /**\n * Set of datapointIds (target+fragment+series) whose per-function aggregation series\n * all return identical values at the current zoom level.\n */\n datapointsWithDuplicateAggr = new Set<string>();\n\n @Input() set config(value: DatapointsGraphWidgetConfig) {\n // Special case: sync the config with migrated values.\n // This is needed to reflect migrated states in the widget config.\n const migratedConfig = this.widgetConfigMigrationService.migrateWidgetConfig(value);\n const newConfig = merge(value, migratedConfig);\n // Keep the original input reference so the clicked data point can be mirrored\n // back onto it.\n this.originalConfig = value;\n this.displayConfig = cloneDeep(newConfig);\n }\n get config(): never {\n throw Error(\n '\"config\" property should not be referenced in view component to avoid mutating data.'\n );\n }\n @ViewChild(ChartsComponent) chartComponent!: ChartsComponent;\n displayConfig: DatapointsGraphWidgetConfig | undefined;\n private originalConfig: DatapointsGraphWidgetConfig | undefined;\n legendHelp = this.translate.instant(\n gettext(`<ul class=\"m-l-0 p-l-8 m-t-8 m-b-0\">\n <li>\n <b>Visibility:</b>\n use visibility icon to toggle data point, alarm, or event visibility on the chart. At least one data point is required to display a chart.\n </li>\n <li>\n <b>Alarm details</b>\n Click alarm legend item to highlight area between alarm raised timestamp and alarm cleared timestamp.\n You can also click alarm markline on chart to highlight alarm and to pause tooltip. Click on highlighted area or legend item to cancel highlighting.\n </li>\n </ul>`)\n );\n readonly disableZoomInLabel = gettext('Disable zoom in');\n readonly enableZoomInLabel = gettext(\n 'Click to enable zoom, then click and drag on the desired area in the chart.'\n );\n readonly hideDatapointLabel = gettext('Hide data point');\n readonly showDatapointLabel = gettext('Show data point');\n private destroy$ = new Subject<void>();\n private readonly widgetInstanceId = crypto.randomUUID();\n\n constructor(\n private translate: TranslateService,\n @Optional() private dashboardContextComponent: ContextDashboardComponent,\n private widgetConfigMigrationService: WidgetConfigMigrationService,\n private widgetTimeContextDateRangeService: WidgetTimeContextDateRangeService,\n private widgetTimeContextMediatorService: WidgetTimeContextMediatorService,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n this.displayConfig?.datapoints?.forEach(dp => this.assignContextFromContextDashboard(dp));\n\n this.displayConfig.realtime = this.computeRealtimeFlag(this.displayConfig);\n this.displayConfig.isRealtimeEnabled = this.displayConfig.realtime;\n\n const aggregationActive = !!(\n this.displayConfig?.showAdvancedChartOptions &&\n (this.displayConfig?.aggregation || this.displayConfig?.autoAggregation)\n );\n const dpLegendCount = (this.displayConfig?.datapoints || []).reduce((sum, dp) => {\n const rtCount =\n aggregationActive && (dp as DatapointsGraphKPIDetails).renderTypes?.length > 1\n ? (dp as DatapointsGraphKPIDetails).renderTypes.filter(rt => rt !== 'area').length\n : 1;\n return sum + rtCount;\n }, 0);\n this.totalLegendItems = dpLegendCount + (this.displayConfig?.alarmsEventsConfigs?.length || 0);\n\n this.loadedDatapoints = (this.displayConfig?.datapoints || []).filter(dp => dp.__active);\n this.loadedAlarmsOrEvents = (this.displayConfig?.alarmsEventsConfigs || []).filter(\n aOrE => aOrE.__active && !aOrE.__hidden\n );\n if (this.totalLegendItems > 5 || this.displayConfig?.dataPointLegendDisplay === 'dropdown') {\n this.selectableItems = this.buildSelectableItems();\n // Initialize selectedItems with the currently active items\n this.selectedItems = this.selectableItems.filter(item => {\n if (item.value.type === 'DATAPOINT') {\n return !!item.value.original.__active;\n } else {\n return item.value.original.__active && !item.value.original.__hidden;\n }\n });\n }\n\n const displayMode = this.displayConfig.displayMode || GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD;\n this.displayMode.set(displayMode as DisplayMode);\n\n const initialContextConfig: GlobalContextState = {\n dateTimeContext: this.displayConfig.dateTimeContext,\n aggregation: this.displayConfig.aggregation,\n autoAggregation: this.displayConfig.autoAggregation ?? null,\n aggregationFunction: this.displayConfig.aggregationFunction ?? null,\n isAutoRefreshEnabled: this.displayConfig.isAutoRefreshEnabled,\n refreshInterval: this.displayConfig.refreshInterval,\n refreshOption: this.displayConfig.refreshOption\n };\n this.contextConfig.set(initialContextConfig);\n this.updateExportConfig();\n }\n\n /**\n * Mirrors the data point clicked on the chart back onto the original widget config\n * so `config.selected` stays observable from outside the widget.\n */\n onSelectedChange(selected: DatapointsGraphWidgetConfig['selected']): void {\n if (this.originalConfig) {\n this.originalConfig.selected = selected;\n }\n if (this.displayConfig) {\n this.displayConfig.selected = selected;\n }\n }\n\n onContextChange(event: { context: GlobalContextState; diff: GlobalContextState }): void {\n this.invalidateHiddenItemsCache();\n this.contextConfig.set(event.context);\n const { context, diff } = event;\n const { dateTimeContext } = context;\n const { dateFrom, dateTo, interval } = dateTimeContext;\n // Captured before displayConfig is overwritten below, so the axis is only re-anchored\n // when the time range genuinely changed. Switching the global context between live and\n // history re-emits the range that is already applied; re-anchoring on such an echo\n // resets the slider the user just dragged.\n const previousDateTimeContext = this.displayConfig?.dateTimeContext;\n\n const isRealtimeEnabled = this.computeRealtimeFlag(context);\n\n if (this.displayConfig.displayMode !== GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD) {\n const realtimeToggled = this.displayConfig?.realtime !== isRealtimeEnabled;\n\n if (realtimeToggled) {\n // When toggling realtime, we must:\n // 1. Spread ALL context properties (isAutoRefreshEnabled, refreshOption, etc.)\n // to keep the GC wrapper in sync. Otherwise stale isAutoRefreshEnabled on\n // displayConfig causes the wrapper's handleConfigChange() to silently\n // re-enable auto-refresh via setAutoRefreshEnabled() on the inline component.\n // 2. Use chart's actual visible range from dataZoom to avoid date jump.\n // GC's dateTimeContext dates don't match the chart's visible range — the chart\n // slides forward every 1s via ChartRealtimeService independently of GC.\n // 3. Return early to skip updateInitialTimeRange(null) which resets cached time range.\n const option = this.chartComponent?.echartsInstance?.getOption();\n const dataZoom = (option?.dataZoom as any[])?.[0];\n const chartDateFrom = dataZoom?.startValue\n ? new Date(dataZoom.startValue).toISOString()\n : dateFrom;\n const chartDateTo = dataZoom?.endValue ? new Date(dataZoom.endValue).toISOString() : dateTo;\n\n this.displayConfig = {\n ...this.displayConfig,\n ...structuredClone(context),\n dateFrom: new Date(chartDateFrom),\n dateTo: new Date(chartDateTo),\n dateTimeContext: {\n ...context.dateTimeContext,\n dateFrom: chartDateFrom,\n dateTo: chartDateTo\n },\n realtime: isRealtimeEnabled\n };\n this.updateExportConfig();\n return;\n }\n\n this.displayConfig = {\n ...this.displayConfig,\n ...structuredClone(context),\n dateFrom: new Date(dateFrom),\n dateTo: new Date(dateTo),\n interval,\n realtime: isRealtimeEnabled\n };\n this.updateExportConfig();\n\n if (this.isSliderBeingDragged$.value === true) {\n this.isSliderBeingDragged$.next(false);\n return;\n }\n\n this.widgetTimeContextDateRangeService.updateInitialTimeRange(null);\n return;\n }\n\n if (this.displayConfig?.realtime !== isRealtimeEnabled) {\n // Sync dates to avoid jumps in the chart\n this.displayConfig = merge(this.displayConfig, {\n dateTimeContext: structuredClone(context),\n dateFrom: new Date(dateFrom),\n dateTo: new Date(dateTo),\n interval\n });\n this.updateExportConfig();\n\n this.displayConfig = {\n ...this.displayConfig,\n realtime: isRealtimeEnabled\n };\n }\n\n // Realtime is a special case, we need to block \"automatic\" emissions from the global context\n // GC in auto mode emits every 5 seconds. We only want to react to user changes.\n if (\n isRealtimeEnabled &&\n diff?.dateTimeContext &&\n Object.keys(diff).length === 1 &&\n Object.keys(diff.dateTimeContext).length === 2\n ) {\n // Sync dates to avoid jumps in the chart\n this.displayConfig = merge(this.displayConfig, {\n dateTimeContext: structuredClone(context),\n dateFrom: new Date(dateFrom),\n dateTo: new Date(dateTo),\n interval\n });\n this.updateExportConfig();\n return;\n }\n\n this.displayConfig = {\n ...this.displayConfig,\n ...structuredClone(context),\n dateFrom: new Date(dateFrom),\n dateTo: new Date(dateTo),\n interval\n };\n this.updateExportConfig();\n\n if (\n context.source === GLOBAL_CONTEXT_SOURCE.DASHBOARD &&\n this.displayConfig.displayMode === GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD &&\n this.hasTimeRangeChanged(previousDateTimeContext, dateTimeContext)\n ) {\n this.widgetTimeContextDateRangeService.updateInitialTimeRange(null);\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n updateDashboardTimeContext(timeProps: DatapointsGraphWidgetTimeProps): void {\n const chartOptions = this.chartComponent?.echartsInstance?.getOption();\n const isEndZoomChanged = chartOptions?.dataZoom[0]?.end !== 100;\n\n // Check if widget is linked to global context\n const isLinked = this.isLinkedToGlobal() !== false;\n\n if (this.displayConfig.displayMode === GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD && isLinked) {\n const dateTimeContext = isEndZoomChanged\n ? {\n dateFrom: new Date(timeProps.dateFrom).toISOString(),\n dateTo: new Date(timeProps.dateTo).toISOString(),\n interval: timeProps.interval\n }\n : { dateFrom: new Date(timeProps.dateFrom).toISOString(), interval: timeProps.interval };\n\n window.dispatchEvent(\n new CustomEvent(GLOBAL_CONTEXT_EVENTS.UPDATE_GLOBAL_CONTEXT_HISTORY, {\n detail: {\n type: GLOBAL_CONTEXT_EVENTS.UPDATE_GLOBAL_CONTEXT_HISTORY,\n payload: {\n dateTimeContext,\n isAutoRefreshEnabled: false,\n aggregation: this.displayConfig.aggregation,\n source: GLOBAL_CONTEXT_SOURCE.WIDGET,\n eventSourceId: this.widgetInstanceId\n },\n timestamp: Date.now()\n }\n })\n );\n } else {\n this.isSliderBeingDragged$.next(true);\n const dateTimeContext = {\n dateFrom: new Date(timeProps.dateFrom),\n dateTo: new Date(timeProps.dateTo),\n interval: timeProps.interval\n };\n\n this.isLinkedToGlobal.set(false);\n\n // Update displayConfig for internal state\n this.displayConfig = {\n ...this.displayConfig,\n dateTimeContext: structuredClone(dateTimeContext) as any,\n dateFrom: new Date(timeProps.dateFrom),\n dateTo: new Date(timeProps.dateTo),\n interval: timeProps.interval,\n realtime: false,\n isAutoRefreshEnabled: false\n };\n\n // Update context config signal\n this.contextConfig.set({\n ...this.contextConfig(),\n dateTimeContext: structuredClone(dateTimeContext) as any,\n isAutoRefreshEnabled: false\n });\n\n // A zoom on a widget that is not linked to the global context never travels through\n // the global context, so no other widget will consume — and thereby clear — this\n // application-wide flag. Leaving it set would make the next global context change\n // keep a stale axis extent in every widget on the dashboard.\n this.widgetTimeContextMediatorService.isSliderZoomUpdate.set(false);\n }\n }\n\n /**\n * Returns `{ renderType, color }` entries for each active render type when multi-function\n * aggregation is enabled, so the legend can show one coloured indicator per function.\n * Returns an empty array when aggregation is off or the datapoint only has one function.\n */\n getAggregationFunctionColors(\n dp: DatapointsGraphKPIDetails\n ): { renderType: string; color: string }[] {\n const aggregationActive =\n this.displayConfig?.showAdvancedChartOptions &&\n (this.displayConfig?.aggregation || this.displayConfig?.autoAggregation);\n if (!aggregationActive || !(dp.renderTypes?.length > 1)) {\n return [];\n }\n return dp.renderTypes\n .filter(rt => rt !== 'area')\n .map(rt => ({ renderType: rt, color: dp.renderTypeColors?.[rt] || dp.color || '' }));\n }\n\n getSeriesNameForFunction(dp: DatapointsGraphKPIDetails, fn: string): string {\n return `[${fn}] ${dp.label} (${dp.__target?.name})`;\n }\n\n getDpId(dp: DatapointsGraphKPIDetails): string {\n return `${dp.__target?.id}${dp.fragment}${dp.series}`;\n }\n\n isDuplicateDropdownItem(item: SelectableItem<SelectableDatapoint>): boolean {\n if (item.value.type !== 'DATAPOINT') return false;\n return this.datapointsWithDuplicateAggr.has(\n this.getDpId(item.value.original as DatapointsGraphKPIDetails)\n );\n }\n\n isRenderTypeFunctionVisible(dp: DatapointsGraphKPIDetails, fn: string): boolean {\n return !this.hiddenFunctionSeries.has(this.getSeriesNameForFunction(dp, fn));\n }\n\n toggleRenderTypeFunction(dp: DatapointsGraphKPIDetails, fn: string, visible: boolean): void {\n const seriesName = this.getSeriesNameForFunction(dp, fn);\n if (!visible && !this.hasVisibleDatapointSeries(undefined, seriesName)) {\n // at least 1 datapoint series should be visible\n this.hasAtLeastOneDatapointActive = false;\n this.updateSelectedItems();\n return;\n }\n this.hasAtLeastOneDatapointActive = true;\n if (visible) {\n this.hiddenFunctionSeries.delete(seriesName);\n } else {\n this.hiddenFunctionSeries.add(seriesName);\n }\n if (dp.renderAsBand && (fn === 'min' || fn === 'max')) {\n // In band mode, the min series is named '[min — max] ...' (not '[min] ...')\n const chartSeriesName =\n fn === 'min' ? `[min — max] ${dp.label} (${dp.__target?.name})` : seriesName;\n this.chartComponent.toggleSeriesByName(chartSeriesName, visible);\n this.syncBandSeriesVisibility(dp);\n } else {\n this.chartComponent.toggleSeriesByName(seriesName, visible);\n }\n this.updateSelectedItems();\n }\n\n onDuplicateAggregationsDetected(dupIds: Set<string>): void {\n // Change-guard: skip if the collapsed set hasn't changed.\n const changed =\n dupIds.size !== this.datapointsWithDuplicateAggr.size ||\n [...dupIds].some(id => !this.datapointsWithDuplicateAggr.has(id));\n if (!changed) {\n return;\n }\n this.datapointsWithDuplicateAggr = dupIds;\n // Do NOT rebuild selectableItems here — replacing the array reference resets\n // c8y-select's internal content-children state, breaking the open dropdown.\n // Instead, only update selectedItems (which goes through ngModel, handled cleanly).\n // Visual feedback (opacity + warning) is driven by isDuplicateDropdownItem() in the template.\n this.updateSelectedItems();\n this.cdr.detectChanges();\n }\n\n getDashboardChild(): DashboardChildComponent {\n return this.dashboardChild;\n }\n\n onRefresh(): void {\n this.displayConfig = { ...this.displayConfig };\n this.updateExportConfig();\n }\n\n buildSelectableItems(): SelectableItem<SelectableDatapoint>[] {\n const aggregationActive = !!(\n this.displayConfig?.showAdvancedChartOptions &&\n (this.displayConfig?.aggregation || this.displayConfig?.autoAggregation)\n );\n const dpItems: SelectableItem<SelectableDatapoint>[] = [];\n for (const dp of this.displayConfig.datapoints || []) {\n const kpiDp = dp as DatapointsGraphKPIDetails;\n // Always expand per-fn items regardless of collapse state.\n // Collapsed state is reflected visually via isDuplicateDropdownItem() in the template.\n // Never collapse the item list here — replacing selectableItems breaks c8y-select internals.\n const fns =\n aggregationActive && kpiDp.renderTypes?.length > 1\n ? kpiDp.renderTypes.filter(rt => rt !== 'area')\n : null;\n if (fns?.length > 0) {\n for (const fn of fns) {\n dpItems.push({\n label: `${dp.label} [${fn}]`,\n value: { type: 'DATAPOINT', original: dp, renderTypeFn: fn }\n });\n }\n } else {\n dpItems.push({\n label: dp.label,\n value: { type: 'DATAPOINT', original: dp }\n });\n }\n }\n\n const alarmItems: SelectableItem<SelectableDatapoint>[] = (\n this.displayConfig.alarmsEventsConfigs || []\n )\n .filter(ae => ae.timelineType === 'ALARM')\n .map(alarm => {\n return {\n label: alarm.label,\n value: {\n type: 'ALARM',\n original: alarm\n }\n };\n });\n\n const eventItems: SelectableItem<SelectableDatapoint>[] = (\n this.displayConfig.alarmsEventsConfigs || []\n )\n .filter(ae => ae.timelineType === 'EVENT')\n .map(event => {\n return {\n label: event.label,\n value: {\n type: 'EVENT',\n original: event\n }\n };\n });\n\n return [...dpItems, ...alarmItems, ...eventItems];\n }\n\n onItemSelected(item: SelectableItem<SelectableDatapoint>): void {\n if (item.value.type === 'DATAPOINT' && item.value.renderTypeFn) {\n const dp = item.value.original as DatapointsGraphKPIDetails;\n if (this.datapointsWithDuplicateAggr.has(this.getDpId(dp))) {\n // Collapsed DP: selecting any fn item shows the whole DP.\n if (!dp.__active) this.toggleChart(dp);\n return;\n }\n this.toggleRenderTypeFunction(dp, item.value.renderTypeFn, true);\n } else if (item.value.type === 'DATAPOINT') {\n this.toggleChart(item.value.original as DatapointsGraphKPIDetails);\n } else {\n this.toggleAlarmEventType(item.value.original as AlarmOrEventExtended);\n }\n }\n\n onItemDeselected(item: SelectableItem<SelectableDatapoint>): void {\n if (item.value.type === 'DATAPOINT' && item.value.renderTypeFn) {\n const dp = item.value.original as DatapointsGraphKPIDetails;\n if (this.datapointsWithDuplicateAggr.has(this.getDpId(dp))) {\n // Collapsed DP: deselecting any fn item hides the whole DP.\n if (dp.__active) this.toggleChart(dp);\n return;\n }\n this.toggleRenderTypeFunction(dp, item.value.renderTypeFn, false);\n } else if (item.value.type === 'DATAPOINT') {\n this.toggleChart(item.value.original as DatapointsGraphKPIDetails);\n } else {\n this.toggleAlarmEventType(item.value.original as AlarmOrEventExtended);\n }\n }\n\n toggleChart(datapoint: DatapointsGraphKPIDetails): void {\n if (datapoint.__active && !this.hasVisibleDatapointSeries(this.getDpId(datapoint))) {\n // at least 1 datapoint series should be visible\n this.hasAtLeastOneDatapointActive = false;\n this.updateSelectedItems();\n return;\n }\n datapoint.__active = !datapoint.__active;\n this.hasAtLeastOneDatapointActive = true;\n\n this.updateSelectedItems();\n\n const getDatapointId = (dp: DatapointsGraphKPIDetails) =>\n `${dp.__target?.id}${dp.fragment}${dp.series}`;\n const isLoaded = this.loadedDatapoints.find(\n dp => getDatapointId(dp) === getDatapointId(datapoint)\n );\n\n if (datapoint.__active && !isLoaded) {\n // Datapoint being shown but not loaded (or data is stale) - trigger full reload\n this.loadedDatapoints.push(datapoint);\n this.displayConfig = { ...this.displayConfig };\n } else {\n // Datapoint already loaded with fresh data OR being hidden - just toggle visibility in echarts\n this.chartComponent.toggleDatapointSeriesVisibility(datapoint);\n }\n }\n\n handleDatapointOutOfSync(dpOutOfSync: DatapointsGraphKPIDetails): void {\n const key = (dp: KPIDetails) => dp.__target?.id + dp.fragment + dp.series;\n const dpMatch = this.displayConfig?.datapoints?.find(dp => key(dp) === key(dpOutOfSync));\n if (!dpMatch) {\n return;\n }\n this.datapointsOutOfSync.set(dpMatch, true);\n }\n\n handleDatapointBackInSync(dpBackInSync: DatapointsGraphKPIDetails): void {\n const key = (dp: KPIDetails) => dp.__target?.id + dp.fragment + dp.series;\n const dpMatch = this.displayConfig?.datapoints?.find(dp => key(dp) === key(dpBackInSync));\n if (!dpMatch) {\n return;\n }\n this.datapointsOutOfSync.delete(dpMatch);\n }\n\n toggleMarkedArea(alarm: AlarmDetailsExtended): void {\n this.enabledMarkedAreaAlarmType = alarm.filters.type;\n const params = {\n data: {\n itemType: alarm.filters.type\n }\n };\n this.chartComponent.onChartClick(params);\n }\n\n toggleAlarmEventType(alarmOrEvent: AlarmOrEventExtended): void {\n const type = alarmOrEvent.filters.type;\n const deviceId = alarmOrEvent.__target?.id;\n const newHiddenState = !alarmOrEvent.__hidden;\n const isBeingShown = !newHiddenState;\n\n // Match by both type AND device to distinguish alarms from different devices\n const isSameAlarmConfig = (ae: AlarmOrEventExtended) =>\n ae.filters.type === type && ae.__target?.id === deviceId;\n\n // Update __hidden in all locations\n alarmOrEvent.__hidden = newHiddenState;\n this.displayConfig.alarmsEventsConfigs?.forEach(ae => {\n if (isSameAlarmConfig(ae)) {\n ae.__hidden = newHiddenState;\n }\n });\n this.alarms.forEach(alarm => {\n if (isSameAlarmConfig(alarm)) {\n alarm.__hidden = newHiddenState;\n }\n });\n this.events.forEach(event => {\n if (isSameAlarmConfig(event)) {\n event.__hidden = newHiddenState;\n }\n });\n\n this.updateSelectedItems();\n\n const isLoaded = this.loadedAlarmsOrEvents.find(aOrE => isSameAlarmConfig(aOrE));\n\n if (isBeingShown && !isLoaded) {\n // Showing but not loaded - trigger pipeline to fetch data\n this.loadedAlarmsOrEvents.push(alarmOrEvent);\n this.displayConfig = { ...this.displayConfig };\n } else {\n // Hiding OR showing already-loaded - just toggle visibility in echarts\n this.chartComponent.toggleAlarmEventSeriesVisibility(alarmOrEvent);\n }\n }\n\n updateAlarmsAndEvents(alarmsEventsConfigs: AlarmOrEventExtended[]): void {\n this.alarms = alarmsEventsConfigs.filter(\n alarm => alarm.timelineType === 'ALARM'\n ) as AlarmDetailsExtended[];\n this.events = alarmsEventsConfigs.filter(\n event => event.timelineType === 'EVENT'\n ) as EventDetailsExtended[];\n if (this.alarms.length === 0 || !this.alarms.find(alarm => alarm.__active)) {\n this.hasAtLeastOneAlarmActive = false;\n }\n }\n\n filterSeverity(eventTarget: any): void {\n this.alarms = this.alarms.map(alarm => {\n if (!alarm.__severity) {\n alarm.__severity = [];\n }\n alarm.__severity = Object.keys(eventTarget.severityOptions).filter(\n (severity): severity is keyof SeveritySettings =>\n eventTarget.severityOptions[severity as keyof SeveritySettings]\n ) as SeverityType[];\n\n if (!alarm.__status) {\n alarm.__status = [];\n }\n const statuses = Object.keys(ALARM_STATUS_LABELS) as AlarmStatusType[];\n const filteredStatuses = eventTarget.showCleared\n ? statuses\n : statuses.filter(status => status !== 'CLEARED');\n alarm.__status = filteredStatuses;\n return alarm;\n });\n this.displayConfig = { ...this.displayConfig };\n }\n\n isLastActiveDatapoint(selectedItem: SelectableItem<SelectableDatapoint>): boolean {\n if (!selectedItem?.value || selectedItem.value.type !== 'DATAPOINT') {\n return false;\n }\n if (!this.hasAtLeastOneDatapointActive) {\n if (selectedItem.value.renderTypeFn) {\n return this.isRenderTypeFunctionVisible(\n selectedItem.value.original as DatapointsGraphKPIDetails,\n selectedItem.value.renderTypeFn\n );\n }\n return !!selectedItem.value.original.__active;\n }\n return false;\n }\n\n private syncBandSeriesVisibility(dp: DatapointsGraphKPIDetails): void {\n const bothVisible =\n !this.hiddenFunctionSeries.has(this.getSeriesNameForFunction(dp, 'min')) &&\n !this.hiddenFunctionSeries.has(this.getSeriesNameForFunction(dp, 'max'));\n const label = `${dp.label} (${dp.__target?.name})`;\n this.chartComponent.toggleSeriesByName(`[band-max] ${label}`, bothVisible);\n this.chartComponent.toggleSeriesByName(`[band] ${label}`, bothVisible);\n }\n\n private updateExportConfig(): void {\n const datapointDetails = this.displayConfig.datapoints\n .filter(({ __active }) => __active)\n .map(({ __target, fragment, series }) => ({\n deviceName: __target.name,\n source: __target.id,\n valueFragmentSeries: series,\n valueFragmentType: fragment\n }));\n\n if (datapointDetails.length === 0) {\n this.exportConfig = null;\n } else {\n const dtc = this.displayConfig.dateTimeContext;\n this.exportConfig = {\n aggregation: this.displayConfig.aggregation,\n dateFrom: new Date(dtc?.dateFrom || this.displayConfig.dateFrom).toISOString(),\n dateTo: new Date(dtc?.dateTo || this.displayConfig.dateTo).toISOString(),\n datapointDetails\n };\n }\n }\n\n private hasVisibleDatapointSeries(excludeDpId?: string, excludeSeriesName?: string): boolean {\n const aggregationActive = !!(\n this.displayConfig?.showAdvancedChartOptions &&\n (this.displayConfig?.aggregation || this.displayConfig?.autoAggregation)\n );\n for (const dp of this.displayConfig?.datapoints || []) {\n const kpiDp = dp as DatapointsGraphKPIDetails;\n if (!kpiDp.__active || this.getDpId(kpiDp) === excludeDpId) continue;\n if (aggregationActive && kpiDp.renderTypes?.length > 1) {\n const hasVisible = kpiDp.renderTypes\n .filter(rt => rt !== 'area')\n .some(fn => {\n const name = this.getSeriesNameForFunction(kpiDp, fn);\n return name !== excludeSeriesName && !this.hiddenFunctionSeries.has(name);\n });\n if (hasVisible) return true;\n } else {\n return true;\n }\n }\n return false;\n }\n\n private updateSelectedItems(): void {\n // For collapsed DPs (all fns return same value), show only the first fn item as a chip\n // so the user sees exactly one grayed chip — mirroring the single collapsed pill.\n const seenCollapsedDp = new Set<string>();\n const filtered = this.selectableItems.filter(item => {\n if (item.value.type === 'DATAPOINT' && item.value.renderTypeFn) {\n const dp = item.value.original as DatapointsGraphKPIDetails;\n const dpId = this.getDpId(dp);\n if (this.datapointsWithDuplicateAggr.has(dpId)) {\n // Only the first fn item gets a chip; skip further ones.\n if (!dp.__active || seenCollapsedDp.has(dpId)) return false;\n seenCollapsedDp.add(dpId);\n return true;\n }\n return !this.hiddenFunctionSeries.has(\n this.getSeriesNameForFunction(dp, item.value.renderTypeFn)\n );\n }\n if (item.value.type === 'DATAPOINT') {\n return !!item.value.original.__active;\n } else {\n return item.value.original.__active && !item.value.original.__hidden;\n }\n });\n this.selectedItems = [...filtered];\n this.cdr.detectChanges();\n }\n\n private assignContextFromContextDashboard(\n dpOrAlarmOrEvent: KPIDetails | AlarmOrEventExtended\n ): void {\n if (!this.dashboardContextComponent?.isDeviceTypeDashboard) {\n return;\n }\n const context = this.dashboardContextComponent?.context;\n if (context?.id) {\n const { name, id } = context;\n dpOrAlarmOrEvent.__target = { name, id };\n }\n }\n\n /**\n * Remove hidden items from loaded cache so they will be reloaded when toggled visible.\n * Called when context changes (time range, aggregation, etc.) to mark hidden items data as stale.\n */\n private invalidateHiddenItemsCache(): void {\n this.loadedDatapoints = this.loadedDatapoints.filter(dp => dp.__active);\n this.loadedAlarmsOrEvents = this.loadedAlarmsOrEvents.filter(\n aOrE => aOrE.__active && !aOrE.__hidden\n );\n }\n\n /** Compares two time ranges by instant, tolerating `Date` and ISO string representations. */\n private hasTimeRangeChanged(\n previous: GlobalContextState['dateTimeContext'] | undefined,\n next: GlobalContextState['dateTimeContext']\n ): boolean {\n if (!previous) {\n return true;\n }\n const instant = (value: Date | string | undefined) =>\n value === undefined ? NaN : new Date(value).valueOf();\n return (\n instant(previous.dateFrom) !== instant(next.dateFrom) ||\n instant(previous.dateTo) !== instant(next.dateTo)\n );\n }\n\n private computeRealtimeFlag(\n source: Pick<GlobalContextState, 'refreshOption' | 'isAutoRefreshEnabled'>\n ): boolean {\n return source?.refreshOption === REFRESH_OPTION.LIVE && !!source?.isAutoRefreshEnabled;\n }\n}\n","@if (displayMode() === GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD) {\n <c8y-global-context-connector\n [controls]=\"widgetControls()\"\n [config]=\"contextConfig()\"\n [isLoading]=\"isLoading$ | async\"\n [dashboardChild]=\"getDashboardChild()\"\n [linked]=\"isLinkedToGlobal()\"\n [propagateAutoRefresh]=\"false\"\n (configChange)=\"onContextChange($event)\"\n (linkedChange)=\"isLinkedToGlobal.set($event)\"\n ></c8y-global-context-connector>\n} @else {\n <c8y-local-controls\n [controls]=\"widgetControls()\"\n [displayMode]=\"displayMode()\"\n [config]=\"contextConfig()\"\n [isLoading]=\"isLoading$ | async\"\n [propagateAutoRefresh]=\"false\"\n (configChange)=\"onContextChange($event)\"\n ></c8y-local-controls>\n}\n\n<div\n class=\"p-l-16 p-r-16\"\n style=\"min-height: 34px\"\n>\n <div class=\"d-flex gap-16 a-i-center\">\n @if (hasAtLeastOneAlarmActive) {\n <c8y-alarms-filter\n class=\"d-contents form-group-sm min-width-0\"\n (onFilterApplied)=\"filterSeverity($event)\"\n ></c8y-alarms-filter>\n }\n @if (displayConfig?.datapoints.length > 0) {\n <div class=\"d-flex a-i-center min-width-0\">\n @if (\n displayConfig.dataPointLegendDisplay === 'dropdown' ||\n (displayConfig.dataPointLegendDisplay === 'auto' && totalLegendItems > 5)\n ) {\n <c8y-select\n class=\"min-width-0 c8y-select-v2--sm\"\n aria-label=\"{{ 'Select data points, alarms or events' | translate }}\"\n [placeholder]=\"'Select data points, alarms or events' | translate\"\n [multi]=\"true\"\n [filterItems]=\"true\"\n [(ngModel)]=\"selectedItems\"\n (onSelect)=\"onItemSelected($event)\"\n (onDeselect)=\"onItemDeselected($event)\"\n >\n @for (item of selectableItems; track item.value) {\n @let isDuplicate = isDuplicateDropdownItem(item);\n <div\n class=\"d-flex a-i-center gap-4\"\n [style.opacity]=\"isDuplicate ? '0.5' : null\"\n *c8ySelectItem=\"item.value; label: item.label\"\n >\n @if (\n !hasAtLeastOneDatapointActive &&\n item.value.type === 'DATAPOINT' &&\n (!item.value.renderTypeFn\n ? item.value.original.__active\n : isRenderTypeFunctionVisible(\n $any(item.value.original),\n item.value.renderTypeFn\n ))\n ) {\n <i\n class=\"text-warning m-r-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'At least 1 data point must be active.' | translate\"\n container=\"body\"\n data-cy=\"datapoint-warning-icon\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n @if (isDuplicate) {\n <i\n class=\"text-warning m-r-4\"\n c8yIcon=\"warning2\"\n [tooltip]=\"duplicateAggrWarning\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n @if (item.value.type === 'DATAPOINT') {\n @let fnColor =\n item.value.renderTypeFn\n ? $any(item.value.original).renderTypeColors?.[item.value.renderTypeFn] ||\n item.value.original.color\n : item.value.original.color;\n <span\n class=\"circle-icon-wrapper a-s-start circle-icon-wrapper--small\"\n [style.background-color]=\"fnColor\"\n ></span>\n }\n @if (item.value.type === 'ALARM') {\n <span\n class=\"circle-icon-wrapper a-s-start circle-icon-wrapper--small\"\n [style.background-color]=\"item.value.original.color\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n }\n @if (item.value.type === 'EVENT') {\n <span\n class=\"circle-icon-wrapper a-s-start circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': item.value.original.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"online1\"\n ></i>\n </span>\n }\n <span class=\"text-truncate d-col\">\n <small class=\"text-truncate\">{{ item.label }}</small>\n <span class=\"text-muted text-10\">{{ item.value.original.__target?.name }}</span>\n </span>\n </div>\n }\n <span\n class=\"tag tag--info chip\"\n [style.opacity]=\"isDuplicateDropdownItem(selectedItem) ? '0.6' : null\"\n title=\"{{ selectedItem.label }}\"\n *c8ySelectedItems=\"let selectedItem\"\n >\n @let isDuplicateChip = isDuplicateDropdownItem(selectedItem);\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ selectedItem.label }}\"\n type=\"button\"\n (click)=\"\n $event.preventDefault(); $event.stopPropagation(); onItemDeselected(selectedItem)\n \"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n @if (isLastActiveDatapoint(selectedItem)) {\n <i\n class=\"text-warning a-s-start\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'At least 1 data point must be active.' | translate\"\n container=\"body\"\n data-cy=\"datapoint-warning-icon\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n @if (isDuplicateChip) {\n <i\n class=\"text-warning a-s-start\"\n c8yIcon=\"warning2\"\n [tooltip]=\"duplicateAggrWarning\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n @if (selectedItem.value.type === 'DATAPOINT') {\n @let fnColor =\n selectedItem.value.renderTypeFn\n ? $any(selectedItem.value.original).renderTypeColors?.[\n selectedItem.value.renderTypeFn\n ] || selectedItem.value.original.color\n : selectedItem.value?.original.color || '';\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [style.background-color]=\"fnColor\"\n ></span>\n }\n @if (selectedItem.value?.type === 'ALARM') {\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [style.background-color]=\"selectedItem.value?.original.color || ''\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n }\n @if (selectedItem.value?.type === 'EVENT') {\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{\n 'background-color': selectedItem.value?.original.color || ''\n }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"online1\"\n ></i>\n </span>\n }\n </span>\n </c8y-select>\n } @else {\n <div class=\"inner-scroll\">\n <div class=\"p-t-4 d-flex a-i-start gap-8\">\n @for (datapoint of displayConfig.datapoints; track datapoint) {\n @let rtColors = getAggregationFunctionColors(datapoint);\n @let dpId = getDpId(datapoint);\n @if (datapoint.retrievalError) {\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'Data point no longer exists.' | translate\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></i>\n } @else if (\n rtColors.length > 0 &&\n datapointsWithDuplicateAggr.has(dpId) &&\n displayConfig?.aggregation\n ) {\n <!-- All aggregation functions return the same value — collapse to a single muted pill -->\n <div\n class=\"c8y-datapoint-pill pill--sm flex-no-shrink\"\n [class.active]=\"datapoint.__active\"\n style=\"opacity: 0.5\"\n title=\"{{ datapoint.label }} - {{ datapoint.__target.name }}\"\n >\n <button\n class=\"c8y-datapoint-pill__btn\"\n title=\"{{\n (datapoint.__active ? hideDatapointLabel : showDatapointLabel) | translate\n }}\"\n type=\"button\"\n data-cy=\"datapoint-toggle-visibility-btn\"\n (click)=\"toggleChart(datapoint)\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"datapoint.__active ? 'eye text-primary' : 'eye-slash text-muted'\"\n ></i>\n </button>\n <div class=\"c8y-datapoint-pill__label c8y-datapoint-pill__btn\">\n <i\n class=\"m-r-4 icon-14\"\n c8yIcon=\"circle\"\n [style.color]=\"datapoint.color\"\n ></i>\n <span\n class=\"text-truncate\"\n [class.text-muted]=\"!datapoint.__active\"\n >\n <span class=\"text-truncate text-bold\">{{ datapoint.label }}</span>\n <small class=\"text-muted text-10\">{{ datapoint.__target.name }}</small>\n </span>\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"duplicateAggrWarning\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></i>\n </div>\n </div>\n } @else if (rtColors.length > 0) {\n @for (entry of rtColors; track entry.renderType) {\n @let isVisible = isRenderTypeFunctionVisible(datapoint, entry.renderType);\n <div\n class=\"c8y-datapoint-pill pill--sm flex-no-shrink\"\n [class.active]=\"isVisible\"\n title=\"{{ datapoint.label }} [{{ entry.renderType }}] - {{\n datapoint.__target.name\n }}\"\n >\n @if (!hasAtLeastOneDatapointActive && isVisible) {\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'At least 1 data point must be active.' | translate\"\n container=\"body\"\n data-cy=\"datapoint-warning-icon\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n <button\n class=\"c8y-datapoint-pill__btn\"\n title=\"{{\n (isVisible ? hideDatapointLabel : showDatapointLabel) | translate\n }}\"\n type=\"button\"\n data-cy=\"datapoint-toggle-visibility-btn\"\n (click)=\"toggleRenderTypeFunction(datapoint, entry.renderType, !isVisible)\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"isVisible ? 'eye text-primary' : 'eye-slash text-muted'\"\n ></i>\n </button>\n <div class=\"c8y-datapoint-pill__label c8y-datapoint-pill__btn\">\n <i\n class=\"m-r-4 icon-14\"\n c8yIcon=\"circle\"\n [style.color]=\"entry.color\"\n ></i>\n <span\n class=\"text-truncate\"\n [class.text-muted]=\"!isVisible\"\n >\n <span class=\"text-truncate text-bold\">\n {{ datapoint.label }} [{{ entry.renderType }}]\n </span>\n <small class=\"text-muted text-10\">\n {{ datapoint.__target.name }}\n </small>\n </span>\n </div>\n </div>\n }\n } @else {\n <div\n class=\"c8y-datapoint-pill pill--sm flex-no-shrink\"\n title=\"{{ datapoint.label }} - {{ datapoint.__target.name }}\"\n [ngClass]=\"{ active: datapoint.__active }\"\n >\n @if (!hasAtLeastOneDatapointActive && datapoint.__active) {\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'At least 1 data point must be active.' | translate\"\n container=\"body\"\n data-cy=\"datapoint-warning-icon\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n <button\n class=\"c8y-datapoint-pill__btn\"\n title=\"{{\n (datapoint.__active ? hideDatapointLabel : showDatapointLabel) | translate\n }} \"\n type=\"button\"\n data-cy=\"datapoint-toggle-visibility-btn\"\n (click)=\"toggleChart(datapoint)\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"datapoint.__active ? 'eye text-primary' : 'eye-slash text-muted'\"\n ></i>\n </button>\n <div class=\"c8y-datapoint-pill__label c8y-datapoint-pill__btn\">\n <i\n class=\"m-r-4 icon-14\"\n c8yIcon=\"circle\"\n [ngStyle]=\"{\n color: datapoint.color\n }\"\n ></i>\n <span\n class=\"text-truncate\"\n [ngClass]=\"{ 'text-muted': !datapoint.__active }\"\n >\n <span class=\"text-truncate text-bold\">\n {{ datapoint.label }}\n </span>\n <small class=\"text-muted text-10\">\n {{ datapoint.__target.name }}\n </small>\n </span>\n @if (datapointsOutOfSync.get(datapoint)) {\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"\n 'Measurements received for this data point may be out of sync.'\n | translate\n \"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n </div>\n </div>\n }\n }\n\n @for (alarm of alarms; track alarm) {\n <div\n class=\"c8y-alarm-pill pill--sm flex-no-shrink\"\n title=\"{{ alarm.filters.type }} \"\n >\n @if (displayConfig?.activeAlarmTypesOutOfRange?.includes(alarm.filters.type)) {\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"\n 'Alarm of this type is currently active and outside of the selected time range'\n | translate\n \"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n <button\n class=\"c8y-alarm-pill__btn\"\n title=\"{{ alarm.filters.type }} \"\n type=\"button\"\n (click)=\"toggleAlarmEventType(alarm)\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"\n alarm.__hidden || !alarm.__active\n ? 'eye-slash text-muted'\n : 'eye text-primary'\n \"\n ></i>\n </button>\n <button\n class=\"c8y-alarm-pill__label c8y-alarm-pill__btn\"\n (click)=\"toggleMarkedArea(alarm)\"\n [ngClass]=\"{\n active:\n !isMarkedAreaEnabled && alarm.filters.type === enabledMarkedAreaAlarmType\n }\"\n >\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small m-r-4\"\n [style.background-color]=\"alarm.color\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n <span\n class=\"text-truncate\"\n [ngClass]=\"{ 'text-muted': alarm.__hidden }\"\n >\n <span class=\"text-truncate text-bold\">\n {{ alarm.label || alarm.filters.type }}\n </span>\n <small class=\"text-muted text-10\">\n {{ alarm.__target.name }}\n </small>\n </span>\n </button>\n </div>\n }\n\n @for (event of events; track event) {\n <div\n class=\"c8y-event-pill pill--sm flex-no-shrink\"\n title=\"{{ event.filters.type }}\"\n >\n <button\n class=\"c8y-event-pill__btn\"\n title=\"{{ event.filters.type }} \"\n type=\"button\"\n (click)=\"toggleAlarmEventType(event)\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"\n event.__hidden || !event.__active\n ? 'eye-slash text-muted'\n : 'eye text-primary'\n \"\n ></i>\n </button>\n <div class=\"c8y-event-pill__label c8y-event-pill__btn\">\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small m-r-4\"\n [ngStyle]=\"{ 'background-color': event.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"online1\"\n ></i>\n </span>\n <span\n class=\"text-truncate text-bold\"\n [ngClass]=\"{ 'text-muted': event.__hidden }\"\n >\n <span class=\"text-truncate\">\n {{ event.label || event.filters.type }}\n </span>\n <small class=\"text-muted text-10\">\n {{ event.__target.name }}\n </small>\n </span>\n </div>\n </div>\n }\n </div>\n </div>\n <button\n class=\"btn-help btn-help--sm m-r-8\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"legendHelpTemplate\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n [adaptivePosition]=\"true\"\n ></button>\n }\n </div>\n }\n </div>\n</div>\n\n@if (displayConfig !== null) {\n <c8y-charts\n #chart\n [config]=\"displayConfig\"\n [alerts]=\"alerts\"\n [chartViewContext]=\"chartViewContext\"\n (updateAlarmsAndEvents)=\"updateAlarmsAndEvents($event)\"\n (configChangeOnZoomOut)=\"updateDashboardTimeContext($event)\"\n (datapointOutOfSync)=\"handleDatapointOutOfSync($event)\"\n (datapointBackInSync)=\"handleDatapointBackInSync($event)\"\n (finishLoading)=\"this.isLoading$.next($event)\"\n (isMarkedAreaEnabled)=\"isMarkedAreaEnabled = $event\"\n (duplicateAggregationsDetected)=\"onDuplicateAggregationsDetected($event)\"\n (selectedChange)=\"onSelectedChange($event)\"\n ></c8y-charts>\n}\n\n<ng-template #legendHelpTemplate>\n <div [innerHTML]=\"legendHelp\"></div>\n</ng-template>\n\n<c8y-widget-action>\n <c8y-datapoints-export-selector\n [displayMode]=\"'icon-only'\"\n [exportConfig]=\"exportConfig\"\n [containerClass]=\"'d-contents'\"\n ></c8y-datapoints-export-selector>\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Save as image' | translate\"\n tooltip=\"{{ 'Save as image' | translate }}\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"chartComponent.saveAsImage()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"icon-14\"\n c8yIcon=\"image-file-checked\"\n ></i>\n </button>\n</c8y-widget-action>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4","CommonModule","i6","i7","i8"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-widgets-implementations-datapoints-graph.mjs","sources":["../../widgets/implementations/datapoints-graph/datapoints-graph-config/datapoints-graph-widget-config.component.ts","../../widgets/implementations/datapoints-graph/datapoints-graph-config/datapoints-graph-widget-config.component.html","../../widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.ts","../../widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.html","../../widgets/implementations/datapoints-graph/c8y-ngx-components-widgets-implementations-datapoints-graph.ts"],"sourcesContent":["import {\n Component,\n computed,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { FormBuilder, NgForm, Validators } from '@angular/forms';\nimport {\n CommonModule,\n CoreModule,\n DynamicComponentAlertAggregator,\n FormsModule,\n GainsightService,\n OnBeforeSave,\n WidgetTimeContextDateRangeService\n} from '@c8y/ngx-components';\nimport {\n AlarmEventSelectorModule,\n SelectedDatapoint\n} from '@c8y/ngx-components/alarm-event-selector';\nimport { WidgetConfigService } from '@c8y/ngx-components/context-dashboard';\nimport {\n DatapointSelectorModalOptions,\n DatapointSelectorModule\n} from '@c8y/ngx-components/datapoint-selector';\nimport {\n CHART_DISPLAY_OPTION_DEFAULTS,\n CHART_VIEW_CONTEXT,\n ChartAlarmsService,\n ChartEventsService,\n ChartHelpersService,\n ChartsComponent,\n DatapointsGraphKPIDetails,\n DatapointsGraphWidgetConfig,\n DatapointsGraphWidgetTimeProps,\n LEGEND_DISPLAY_OPTIONS,\n PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH\n} from '@c8y/ngx-components/echart';\nimport {\n GlobalContextState,\n LocalControlsComponent,\n PRESET_NAME,\n PresetName\n} from '@c8y/ngx-components/global-context';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Observable } from 'rxjs/internal/Observable';\n\n@Component({\n selector: 'c8y-datapoints-graph-widget-config',\n host: { class: 'd-contents' },\n templateUrl: './datapoints-graph-widget-config.component.html',\n standalone: true,\n imports: [\n CommonModule,\n CoreModule,\n FormsModule,\n TooltipModule,\n PopoverModule,\n ChartsComponent,\n DatapointSelectorModule,\n AlarmEventSelectorModule,\n LocalControlsComponent\n ],\n providers: [\n ChartEventsService,\n ChartAlarmsService,\n ChartHelpersService,\n WidgetTimeContextDateRangeService\n ],\n changeDetection: ChangeDetectionStrategy.Eager\n})\nexport class DatapointsGraphWidgetConfigComponent\n implements OnInit, OnChanges, OnBeforeSave, OnDestroy\n{\n private _config = signal<DatapointsGraphWidgetConfig>({} as DatapointsGraphWidgetConfig);\n private isFirstConfigSet = true;\n\n @Input() set config(value: DatapointsGraphWidgetConfig | undefined) {\n if (!value) return;\n\n if (this.isFirstConfigSet) {\n this._config.set({ ...value });\n this.isFirstConfigSet = false;\n } else {\n this._config.set({\n ...this._config(),\n dateFrom: value.dateFrom,\n dateTo: value.dateTo,\n interval: value.interval,\n refreshInterval: value.refreshInterval,\n isAutoRefreshEnabled: value.isAutoRefreshEnabled,\n aggregation: value.aggregation,\n aggregationFunction: value.aggregationFunction,\n autoAggregation: value.autoAggregation,\n realtime: value.realtime,\n displayMode: value.displayMode,\n refreshOption: value.refreshOption,\n dateTimeContext: value.dateTimeContext,\n datapoints: value.datapoints,\n alarmsEventsConfigs: value.alarmsEventsConfigs,\n showAdvancedChartOptions: value.showAdvancedChartOptions\n });\n }\n }\n\n get config(): DatapointsGraphWidgetConfig | undefined {\n return this._config();\n }\n\n @ViewChild('dataPointsGraphPreview')\n set previewMapSet(template: TemplateRef<any>) {\n if (template) {\n this.widgetConfigService.setPreview(template);\n return;\n }\n this.widgetConfigService.setPreview(null);\n }\n\n private readonly formBuilder = inject(FormBuilder);\n private readonly form = inject(NgForm);\n private readonly widgetConfigService = inject(WidgetConfigService);\n private readonly chartHelpersService = inject(ChartHelpersService);\n private readonly gainsightService = inject(GainsightService);\n\n alerts: DynamicComponentAlertAggregator | undefined;\n formGroup: ReturnType<DatapointsGraphWidgetConfigComponent['initForm']>;\n datapointSelectionConfig: Partial<DatapointSelectorModalOptions> = {};\n activeDatapointsExists = false;\n alarmsOrEventsHaveNoMatchingDps = false;\n chartViewContext: CHART_VIEW_CONTEXT = CHART_VIEW_CONTEXT.WIDGET_CONFIG;\n legendDisplayOptions = LEGEND_DISPLAY_OPTIONS;\n widgetControls: PresetName = PRESET_NAME.DATAPOINTS_GRAPH;\n previewContextConfig = computed<GlobalContextState>(() => {\n const cfg = this._config();\n return {\n dateTimeContext: cfg.dateTimeContext,\n aggregation: cfg.aggregation,\n autoAggregation: cfg.autoAggregation ?? null,\n aggregationFunction: cfg.aggregationFunction ?? null,\n isAutoRefreshEnabled: cfg.isAutoRefreshEnabled,\n refreshInterval: cfg.refreshInterval,\n refreshOption: cfg.refreshOption\n };\n });\n private destroy$ = new Subject<void>();\n private isInitialized = false;\n\n constructor() {\n this.formGroup = this.initForm();\n }\n\n async ngOnInit() {\n const currentConfig = this._config();\n\n this.form.form.addControl('config', this.formGroup);\n\n this.formGroup.patchValue({ ...currentConfig }, { emitEvent: false });\n this.applyFormValuesToConfig();\n this.isInitialized = true;\n\n this.formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.applyFormValuesToConfig();\n this.setActiveDatapointsExists();\n this.checkForMatchingDatapoints();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!changes.config || changes.config.isFirstChange() || !this.isInitialized) return;\n\n this.setActiveDatapointsExists();\n this.checkForMatchingDatapoints();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onBeforeSave(\n config?: DatapointsGraphWidgetConfig\n ): boolean | Promise<boolean> | Observable<boolean> {\n if (!this.formGroup.valid || !config) return false;\n\n const snapshot = { ...this._config() };\n\n for (const key in snapshot) {\n if (snapshot.hasOwnProperty(key)) {\n try {\n config[key] = snapshot[key];\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n // do nothing\n }\n }\n }\n\n this.widgetConfigService.updateConfig(snapshot, true);\n\n const configSummaryGS = this.chartHelpersService.getConfigSummaryForGainsight(config);\n this.gainsightService.triggerEvent(\n PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH.EVENTS.DATA_EXPLORER_AND_GRAPH,\n {\n component: PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH.COMPONENTS.DATA_EXPLORER_DETAILS,\n action: PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH.ACTIONS.DATA_GRAPH_WIDGET_CONFIG,\n ...configSummaryGS\n }\n );\n\n return true;\n }\n\n updateTimeRangeOnRealtime(\n timeRange: Pick<DatapointsGraphWidgetConfig, 'dateFrom' | 'dateTo'>\n ): void {\n const current = this._config();\n this._config.set({\n ...current,\n ...timeRange,\n interval: current.interval || 'hours'\n });\n }\n\n updateDashboardTimeContext(timeProps: DatapointsGraphWidgetTimeProps): void {\n const dateTimeContext = {\n dateFrom: new Date(timeProps.dateFrom).toISOString(),\n dateTo: new Date(timeProps.dateTo).toISOString(),\n interval: timeProps.interval\n };\n this._config.set({\n ...this._config(),\n dateTimeContext\n });\n }\n\n updateAggregatedSliderDatapoint(selectedDatapoint: SelectedDatapoint | null): void {\n const aggregatedDatapoint = this.chartHelpersService.findMatchingDatapoint(\n this._config().datapoints || [],\n selectedDatapoint\n ) as DatapointsGraphKPIDetails | undefined;\n\n this._config.set({\n ...this._config(),\n aggregatedDatapoint\n });\n }\n\n private applyFormValuesToConfig(): void {\n const formValue = this.formGroup.value;\n this._config.set({\n ...this._config(),\n dataPointLegendDisplay: formValue.dataPointLegendDisplay,\n displayMarkedLine: formValue.displayMarkedLine,\n displayMarkedPoint: formValue.displayMarkedPoint,\n mergeMatchingDatapoints: formValue.mergeMatchingDatapoints,\n forceMergeDatapoints: formValue.forceMergeDatapoints,\n setYaxisStartToZero: formValue.setYaxisStartToZero,\n smoothLines: formValue.smoothLines,\n showLabelAndUnit: formValue.showLabelAndUnit,\n showSlider: formValue.showSlider,\n yAxisSplitLines: formValue.yAxisSplitLines,\n xAxisSplitLines: formValue.xAxisSplitLines,\n numberOfDecimalPlaces: formValue.numberOfDecimalPlaces,\n aggregatedDatapoint: formValue.aggregatedDatapoint\n });\n }\n\n private checkForMatchingDatapoints(): void {\n const config = this._config();\n const alarmsEventsConfigs = config.alarmsEventsConfigs || [];\n const datapoints = config.datapoints || [];\n\n const allMatch = alarmsEventsConfigs.every(ae =>\n datapoints.some(dp => dp.__target?.id === ae.__target?.id)\n );\n\n queueMicrotask(() => {\n this.alarmsOrEventsHaveNoMatchingDps = !allMatch;\n });\n }\n\n private initForm() {\n const initialState = this._config();\n const chartDefaults = CHART_DISPLAY_OPTION_DEFAULTS;\n\n const form = this.formBuilder.group({\n dataPointLegendDisplay: ['auto', []],\n displayMarkedLine: [chartDefaults.displayMarkedLine, []],\n displayMarkedPoint: [chartDefaults.displayMarkedPoint, []],\n mergeMatchingDatapoints: [chartDefaults.mergeMatchingDatapoints, []],\n forceMergeDatapoints: [chartDefaults.forceMergeDatapoints, []],\n setYaxisStartToZero: [chartDefaults.setYaxisStartToZero, []],\n smoothLines: [chartDefaults.smoothLines, []],\n showLabelAndUnit: [chartDefaults.showLabelAndUnit, []],\n displayAggregationSelection: [false, []],\n canDecoupleGlobalTimeContext: [false, []],\n showSlider: [chartDefaults.showSlider, [Validators.required]],\n yAxisSplitLines: [false, [Validators.required]],\n xAxisSplitLines: [false, [Validators.required]],\n numberOfDecimalPlaces: [\n chartDefaults.numberOfDecimalPlaces,\n [Validators.required, Validators.min(0), Validators.max(10)]\n ],\n aggregatedDatapoint: [initialState?.aggregatedDatapoint || null]\n });\n return form;\n }\n\n private setActiveDatapointsExists() {\n const datapoints = this._config().datapoints || [];\n this.activeDatapointsExists = datapoints.filter(dp => dp.__active).length > 0;\n }\n}\n","<form [formGroup]=\"formGroup\">\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Formatting' | translate }}</legend>\n <c8y-form-group class=\"form-group-sm\">\n <label\n [title]=\"'Number of decimal places' | translate\"\n translate\n >\n Number of decimal places\n </label>\n <input\n class=\"form-control\"\n name=\"numberOfDecimalPlaces\"\n type=\"number\"\n formControlName=\"numberOfDecimalPlaces\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 1 }\"\n />\n <c8y-messages\n [show]=\"\n formGroup.controls?.numberOfDecimalPlaces?.touched &&\n formGroup?.controls?.numberOfDecimalPlaces?.errors\n \"\n ></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"form-group-sm\">\n <label>\n {{ 'Data point legend display' | translate }}\n </label>\n <div\n class=\"c8y-select-wrapper\"\n [formGroup]=\"formGroup\"\n >\n <select\n class=\"form-control\"\n [title]=\"'Data point legend display' | translate\"\n id=\"dataPointLegendDisplay\"\n formControlName=\"dataPointLegendDisplay\"\n >\n @for (option of legendDisplayOptions; track option) {\n <option [ngValue]=\"option.value\">\n {{ option.label | translate }}\n </option>\n }\n </select>\n </div>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Display options' | translate }}</legend>\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Axis' | translate }}</legend>\n <c8y-form-group class=\"m-b-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 a 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 a single axis</span>\n <button\n class=\"btn-help\"\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 [popover]=\"\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 triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n ></button>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Force merge all data points into a 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 data points into a single axis</span>\n <button\n class=\"btn-help\"\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 [popover]=\"\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 triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n ></button>\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Set Y-axis start to 0' | translate\"\n >\n <input\n name=\"setYaxisStartToZero\"\n type=\"checkbox\"\n formControlName=\"setYaxisStartToZero\"\n />\n <span></span>\n <span translate>Set Y-axis start to 0</span>\n <button\n class=\"btn-help\"\n [attr.aria-label]=\"\n 'Sets the Y-axis minimum to 0 for all data points with positive values. If any data point includes negative values, the axis may still extend below 0. Explicitly configured minimum and maximum values take precedence over this option.'\n | translate\n \"\n [popover]=\"\n 'Sets the Y-axis minimum to 0 for all data points with positive values. If any data point includes negative values, the axis may still extend below 0. Explicitly configured minimum and maximum values take precedence over this option.'\n | translate\n \"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n ></button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Alarms & events' | translate }}</legend>\n <c8y-form-group class=\"m-b-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 @if (alarmsOrEventsHaveNoMatchingDps) {\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 (click)=\"$event.stopPropagation()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"text-warning\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n }\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Chart' | translate }}</legend>\n <c8y-form-group class=\"m-b-8 form-group-sm\">\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 <label\n class=\"c8y-checkbox\"\n [title]=\"'Show smooth lines' | translate\"\n >\n <input\n name=\"smoothLines\"\n type=\"checkbox\"\n formControlName=\"smoothLines\"\n />\n <span></span>\n <span translate>Show smooth lines</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </fieldset>\n</form>\n\n<ng-template #dataPointsGraphPreview>\n @if (config?.displayMode && config.displayMode !== 'dashboard') {\n <c8y-local-controls\n [controls]=\"widgetControls\"\n [displayMode]=\"config.displayMode\"\n [config]=\"previewContextConfig()\"\n [disabled]=\"true\"\n ></c8y-local-controls>\n }\n\n @if (activeDatapointsExists) {\n <c8y-charts\n class=\"d-block p-relative\"\n [config]=\"config\"\n [alerts]=\"alerts\"\n [chartViewContext]=\"chartViewContext\"\n (timeRangeChangeOnRealtime)=\"updateTimeRangeOnRealtime($event)\"\n (configChangeOnZoomOut)=\"updateDashboardTimeContext($event)\"\n (updateAggregatedSliderDatapoint)=\"updateAggregatedSliderDatapoint($event)\"\n ></c8y-charts>\n }\n\n @if (!activeDatapointsExists) {\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 content' | translate\"\n data-cy=\"datapoints-graph-list--empty-state-no-data-point-selected\"\n >\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/cockpit/widgets-collection/#data-point-graph\">\n user documentation</a\n >.\n </small>\n </p>\n </c8y-ui-empty-state>\n }\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n inject,\n Input,\n OnDestroy,\n Optional,\n signal,\n ViewChild,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { ALARM_STATUS_LABELS, AlarmStatusType, SeveritySettings } from '@c8y/client';\nimport {\n AGGREGATION_ICONS,\n AGGREGATION_TEXTS,\n CoreModule,\n DashboardChildComponent,\n DynamicComponentAlertAggregator,\n SelectableItem,\n SelectComponent,\n SelectItemDirective,\n SelectedItemsDirective,\n WidgetTimeContextDateRangeService,\n WidgetTimeContextMediatorService,\n WidgetActionWrapperComponent\n} from '@c8y/ngx-components';\nimport { AlarmsModule } from '@c8y/ngx-components/alarms';\nimport { ContextDashboardComponent } from '@c8y/ngx-components/context-dashboard';\nimport type { KPIDetails } from '@c8y/ngx-components/datapoint-selector';\nimport {\n DatapointsExportSelectorComponent,\n ExportConfig\n} from '@c8y/ngx-components/datapoints-export-selector';\nimport {\n AlarmDetailsExtended,\n AlarmOrEventExtended,\n CHART_VIEW_CONTEXT,\n ChartAlarmsService,\n ChartEventsService,\n ChartsComponent,\n DatapointsGraphKPIDetails,\n DatapointsGraphWidgetConfig,\n DatapointsGraphWidgetTimeProps,\n EventDetailsExtended,\n SelectableDatapoint,\n SeverityType\n} from '@c8y/ngx-components/echart';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DisplayMode,\n GLOBAL_CONTEXT_DISPLAY_MODE,\n GLOBAL_CONTEXT_EVENTS,\n GLOBAL_CONTEXT_SOURCE,\n GlobalContextConnectorComponent,\n GlobalContextState,\n LocalControlsComponent,\n PRESET_NAME,\n PresetName,\n REFRESH_OPTION,\n WidgetConfigMigrationService\n} from '@c8y/ngx-components/global-context';\nimport { TranslateService } from '@ngx-translate/core';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\n@Component({\n selector: 'c8y-datapoints-graph-widget-view',\n templateUrl: './datapoints-graph-widget-view.component.html',\n standalone: true,\n imports: [\n A11yModule,\n CommonModule,\n ChartsComponent,\n CoreModule,\n TooltipModule,\n BsDropdownModule,\n PopoverModule,\n AlarmsModule,\n GlobalContextConnectorComponent,\n LocalControlsComponent,\n DatapointsExportSelectorComponent,\n SelectComponent,\n SelectItemDirective,\n SelectedItemsDirective,\n WidgetActionWrapperComponent\n ],\n providers: [ChartEventsService, ChartAlarmsService, WidgetTimeContextDateRangeService],\n changeDetection: ChangeDetectionStrategy.Eager\n})\nexport class DatapointsGraphWidgetViewComponent implements OnDestroy {\n events: EventDetailsExtended[] = [];\n alarms: AlarmDetailsExtended[] = [];\n exportConfig: ExportConfig;\n AGGREGATION_ICONS = AGGREGATION_ICONS;\n AGGREGATION_TEXTS = AGGREGATION_TEXTS;\n alerts: DynamicComponentAlertAggregator | undefined;\n datapointsOutOfSync = new Map<DatapointsGraphKPIDetails, boolean>();\n hasAtLeastOneDatapointActive = true;\n hasAtLeastOneAlarmActive = false;\n isMarkedAreaEnabled = false;\n loadedDatapoints: DatapointsGraphKPIDetails[] = [];\n loadedAlarmsOrEvents: AlarmOrEventExtended[] = [];\n isLoading$ = new BehaviorSubject<boolean>(false);\n isSliderBeingDragged$ = new BehaviorSubject<boolean>(false);\n /*\n * @description: The type of alarm that has marked area enabled.\n */\n enabledMarkedAreaAlarmType: string | undefined;\n chartViewContext = CHART_VIEW_CONTEXT.WIDGET_VIEW;\n\n private dashboardChild = inject(DashboardChildComponent);\n displayMode = signal<DisplayMode>(GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD);\n contextConfig = signal<GlobalContextState>({});\n isLinkedToGlobal = signal<boolean | undefined>(undefined);\n widgetControls = signal<PresetName>(PRESET_NAME.DATAPOINTS_GRAPH);\n readonly GLOBAL_CONTEXT_DISPLAY_MODE = GLOBAL_CONTEXT_DISPLAY_MODE;\n readonly duplicateAggrWarning = this.translate.instant(\n gettext(\n 'The selected aggregation functions return the same value because each interval contains a single measurement. Choose a coarser aggregation interval.'\n )\n );\n\n /** Combined number of datapoints, alarms, and events */\n totalLegendItems = 0;\n /** Selectable items for the datapoints, alarms, events dropdown */\n selectableItems: SelectableItem<SelectableDatapoint>[] = [];\n /** Selected items from the dropdown */\n selectedItems: SelectableItem<SelectableDatapoint>[] = [];\n /** Series names of per-function aggregation series that are currently hidden. */\n hiddenFunctionSeries = new Set<string>();\n /**\n * Set of datapointIds (target+fragment+series) whose per-function aggregation series\n * all return identical values at the current zoom level.\n */\n datapointsWithDuplicateAggr = new Set<string>();\n\n @Input() set config(value: DatapointsGraphWidgetConfig) {\n // Special case: sync the config with migrated values.\n // This is needed to reflect migrated states in the widget config.\n const migratedConfig = this.widgetConfigMigrationService.migrateWidgetConfig(value);\n const newConfig = merge(value, migratedConfig);\n // Keep the original input reference so the clicked data point can be mirrored\n // back onto it.\n this.originalConfig = value;\n this.displayConfig = cloneDeep(newConfig);\n }\n get config(): never {\n throw Error(\n '\"config\" property should not be referenced in view component to avoid mutating data.'\n );\n }\n @ViewChild(ChartsComponent) chartComponent!: ChartsComponent;\n displayConfig: DatapointsGraphWidgetConfig | undefined;\n private originalConfig: DatapointsGraphWidgetConfig | undefined;\n legendHelp = this.translate.instant(\n gettext(`<ul class=\"m-l-0 p-l-8 m-t-8 m-b-0\">\n <li>\n <b>Visibility:</b>\n use visibility icon to toggle data point, alarm, or event visibility on the chart. At least one data point is required to display a chart.\n </li>\n <li>\n <b>Alarm details</b>\n Click alarm legend item to highlight area between alarm raised timestamp and alarm cleared timestamp.\n You can also click alarm markline on chart to highlight alarm and to pause tooltip. Click on highlighted area or legend item to cancel highlighting.\n </li>\n </ul>`)\n );\n readonly disableZoomInLabel = gettext('Disable zoom in');\n readonly enableZoomInLabel = gettext(\n 'Click to enable zoom, then click and drag on the desired area in the chart.'\n );\n readonly hideDatapointLabel = gettext('Hide data point');\n readonly showDatapointLabel = gettext('Show data point');\n private destroy$ = new Subject<void>();\n private readonly widgetInstanceId = crypto.randomUUID();\n\n constructor(\n private translate: TranslateService,\n @Optional() private dashboardContextComponent: ContextDashboardComponent,\n private widgetConfigMigrationService: WidgetConfigMigrationService,\n private widgetTimeContextDateRangeService: WidgetTimeContextDateRangeService,\n private widgetTimeContextMediatorService: WidgetTimeContextMediatorService,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n this.displayConfig?.datapoints?.forEach(dp => this.assignContextFromContextDashboard(dp));\n\n this.displayConfig.realtime = this.computeRealtimeFlag(this.displayConfig);\n this.displayConfig.isRealtimeEnabled = this.displayConfig.realtime;\n\n const aggregationActive = !!(\n this.displayConfig?.showAdvancedChartOptions &&\n (this.displayConfig?.aggregation || this.displayConfig?.autoAggregation)\n );\n const dpLegendCount = (this.displayConfig?.datapoints || []).reduce((sum, dp) => {\n const rtCount =\n aggregationActive && (dp as DatapointsGraphKPIDetails).renderTypes?.length > 1\n ? (dp as DatapointsGraphKPIDetails).renderTypes.filter(rt => rt !== 'area').length\n : 1;\n return sum + rtCount;\n }, 0);\n this.totalLegendItems = dpLegendCount + (this.displayConfig?.alarmsEventsConfigs?.length || 0);\n\n this.loadedDatapoints = (this.displayConfig?.datapoints || []).filter(dp => dp.__active);\n this.loadedAlarmsOrEvents = (this.displayConfig?.alarmsEventsConfigs || []).filter(\n aOrE => aOrE.__active && !aOrE.__hidden\n );\n // Seed from the config so the severity filter mounts with the widget. The filter emits its\n // initial value on init, and mounting it only after the chart has loaded its alarms would\n // trigger a second load.\n this.hasAtLeastOneAlarmActive = (this.displayConfig?.alarmsEventsConfigs || []).some(\n aOrE => aOrE.timelineType === 'ALARM' && aOrE.__active\n );\n if (this.totalLegendItems > 5 || this.displayConfig?.dataPointLegendDisplay === 'dropdown') {\n this.selectableItems = this.buildSelectableItems();\n // Initialize selectedItems with the currently active items\n this.selectedItems = this.selectableItems.filter(item => {\n if (item.value.type === 'DATAPOINT') {\n return !!item.value.original.__active;\n } else {\n return item.value.original.__active && !item.value.original.__hidden;\n }\n });\n }\n\n const displayMode = this.displayConfig.displayMode || GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD;\n this.displayMode.set(displayMode as DisplayMode);\n\n const initialContextConfig: GlobalContextState = {\n dateTimeContext: this.displayConfig.dateTimeContext,\n aggregation: this.displayConfig.aggregation,\n autoAggregation: this.displayConfig.autoAggregation ?? null,\n aggregationFunction: this.displayConfig.aggregationFunction ?? null,\n isAutoRefreshEnabled: this.displayConfig.isAutoRefreshEnabled,\n refreshInterval: this.displayConfig.refreshInterval,\n refreshOption: this.displayConfig.refreshOption\n };\n this.contextConfig.set(initialContextConfig);\n this.updateExportConfig();\n }\n\n /**\n * Mirrors the data point clicked on the chart back onto the original widget config\n * so `config.selected` stays observable from outside the widget.\n */\n onSelectedChange(selected: DatapointsGraphWidgetConfig['selected']): void {\n if (this.originalConfig) {\n this.originalConfig.selected = selected;\n }\n if (this.displayConfig) {\n this.displayConfig.selected = selected;\n }\n }\n\n onContextChange(event: { context: GlobalContextState; diff: GlobalContextState }): void {\n this.invalidateHiddenItemsCache();\n this.contextConfig.set(event.context);\n const { context, diff } = event;\n const { dateTimeContext } = context;\n const { dateFrom, dateTo, interval } = dateTimeContext;\n // Captured before displayConfig is overwritten below, so the axis is only re-anchored\n // when the time range genuinely changed. Switching the global context between live and\n // history re-emits the range that is already applied; re-anchoring on such an echo\n // resets the slider the user just dragged.\n const previousDateTimeContext = this.displayConfig?.dateTimeContext;\n\n const isRealtimeEnabled = this.computeRealtimeFlag(context);\n\n if (this.displayConfig.displayMode !== GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD) {\n const realtimeToggled = this.displayConfig?.realtime !== isRealtimeEnabled;\n\n if (realtimeToggled) {\n // When toggling realtime, we must:\n // 1. Spread ALL context properties (isAutoRefreshEnabled, refreshOption, etc.)\n // to keep the GC wrapper in sync. Otherwise stale isAutoRefreshEnabled on\n // displayConfig causes the wrapper's handleConfigChange() to silently\n // re-enable auto-refresh via setAutoRefreshEnabled() on the inline component.\n // 2. Use chart's actual visible range from dataZoom to avoid date jump.\n // GC's dateTimeContext dates don't match the chart's visible range — the chart\n // slides forward every 1s via ChartRealtimeService independently of GC.\n // 3. Return early to skip updateInitialTimeRange(null) which resets cached time range.\n const option = this.chartComponent?.echartsInstance?.getOption();\n const dataZoom = (option?.dataZoom as any[])?.[0];\n const chartDateFrom = dataZoom?.startValue\n ? new Date(dataZoom.startValue).toISOString()\n : dateFrom;\n const chartDateTo = dataZoom?.endValue ? new Date(dataZoom.endValue).toISOString() : dateTo;\n\n this.displayConfig = {\n ...this.displayConfig,\n ...structuredClone(context),\n dateFrom: new Date(chartDateFrom),\n dateTo: new Date(chartDateTo),\n dateTimeContext: {\n ...context.dateTimeContext,\n dateFrom: chartDateFrom,\n dateTo: chartDateTo\n },\n realtime: isRealtimeEnabled\n };\n this.updateExportConfig();\n return;\n }\n\n this.displayConfig = {\n ...this.displayConfig,\n ...structuredClone(context),\n dateFrom: new Date(dateFrom),\n dateTo: new Date(dateTo),\n interval,\n realtime: isRealtimeEnabled\n };\n this.updateExportConfig();\n\n if (this.isSliderBeingDragged$.value === true) {\n this.isSliderBeingDragged$.next(false);\n return;\n }\n\n this.widgetTimeContextDateRangeService.updateInitialTimeRange(null);\n return;\n }\n\n if (this.displayConfig?.realtime !== isRealtimeEnabled) {\n // Sync dates to avoid jumps in the chart\n this.displayConfig = merge(this.displayConfig, {\n dateTimeContext: structuredClone(context),\n dateFrom: new Date(dateFrom),\n dateTo: new Date(dateTo),\n interval\n });\n this.updateExportConfig();\n\n this.displayConfig = {\n ...this.displayConfig,\n realtime: isRealtimeEnabled\n };\n }\n\n // Realtime is a special case, we need to block \"automatic\" emissions from the global context\n // GC in auto mode emits every 5 seconds. We only want to react to user changes.\n if (\n isRealtimeEnabled &&\n diff?.dateTimeContext &&\n Object.keys(diff).length === 1 &&\n Object.keys(diff.dateTimeContext).length === 2\n ) {\n // Sync dates to avoid jumps in the chart\n this.displayConfig = merge(this.displayConfig, {\n dateTimeContext: structuredClone(context),\n dateFrom: new Date(dateFrom),\n dateTo: new Date(dateTo),\n interval\n });\n this.updateExportConfig();\n return;\n }\n\n this.displayConfig = {\n ...this.displayConfig,\n ...structuredClone(context),\n dateFrom: new Date(dateFrom),\n dateTo: new Date(dateTo),\n interval\n };\n this.updateExportConfig();\n\n if (\n context.source === GLOBAL_CONTEXT_SOURCE.DASHBOARD &&\n this.displayConfig.displayMode === GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD &&\n this.hasTimeRangeChanged(previousDateTimeContext, dateTimeContext)\n ) {\n this.widgetTimeContextDateRangeService.updateInitialTimeRange(null);\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n updateDashboardTimeContext(timeProps: DatapointsGraphWidgetTimeProps): void {\n const chartOptions = this.chartComponent?.echartsInstance?.getOption();\n const isEndZoomChanged = chartOptions?.dataZoom[0]?.end !== 100;\n\n // Check if widget is linked to global context\n const isLinked = this.isLinkedToGlobal() !== false;\n\n if (this.displayConfig.displayMode === GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD && isLinked) {\n const dateTimeContext = isEndZoomChanged\n ? {\n dateFrom: new Date(timeProps.dateFrom).toISOString(),\n dateTo: new Date(timeProps.dateTo).toISOString(),\n interval: timeProps.interval\n }\n : { dateFrom: new Date(timeProps.dateFrom).toISOString(), interval: timeProps.interval };\n\n window.dispatchEvent(\n new CustomEvent(GLOBAL_CONTEXT_EVENTS.UPDATE_GLOBAL_CONTEXT_HISTORY, {\n detail: {\n type: GLOBAL_CONTEXT_EVENTS.UPDATE_GLOBAL_CONTEXT_HISTORY,\n payload: {\n dateTimeContext,\n isAutoRefreshEnabled: false,\n aggregation: this.displayConfig.aggregation,\n source: GLOBAL_CONTEXT_SOURCE.WIDGET,\n eventSourceId: this.widgetInstanceId\n },\n timestamp: Date.now()\n }\n })\n );\n } else {\n this.isSliderBeingDragged$.next(true);\n const dateTimeContext = {\n dateFrom: new Date(timeProps.dateFrom),\n dateTo: new Date(timeProps.dateTo),\n interval: timeProps.interval\n };\n\n this.isLinkedToGlobal.set(false);\n\n // Update displayConfig for internal state\n this.displayConfig = {\n ...this.displayConfig,\n dateTimeContext: structuredClone(dateTimeContext) as any,\n dateFrom: new Date(timeProps.dateFrom),\n dateTo: new Date(timeProps.dateTo),\n interval: timeProps.interval,\n realtime: false,\n isAutoRefreshEnabled: false\n };\n\n // Update context config signal\n this.contextConfig.set({\n ...this.contextConfig(),\n dateTimeContext: structuredClone(dateTimeContext) as any,\n isAutoRefreshEnabled: false\n });\n\n // A zoom on a widget that is not linked to the global context never travels through\n // the global context, so no other widget will consume — and thereby clear — this\n // application-wide flag. Leaving it set would make the next global context change\n // keep a stale axis extent in every widget on the dashboard.\n this.widgetTimeContextMediatorService.isSliderZoomUpdate.set(false);\n }\n }\n\n /**\n * Returns `{ renderType, color }` entries for each active render type when multi-function\n * aggregation is enabled, so the legend can show one coloured indicator per function.\n * Returns an empty array when aggregation is off or the datapoint only has one function.\n */\n getAggregationFunctionColors(\n dp: DatapointsGraphKPIDetails\n ): { renderType: string; color: string }[] {\n const aggregationActive =\n this.displayConfig?.showAdvancedChartOptions &&\n (this.displayConfig?.aggregation || this.displayConfig?.autoAggregation);\n if (!aggregationActive || !(dp.renderTypes?.length > 1)) {\n return [];\n }\n return dp.renderTypes\n .filter(rt => rt !== 'area')\n .map(rt => ({ renderType: rt, color: dp.renderTypeColors?.[rt] || dp.color || '' }));\n }\n\n getSeriesNameForFunction(dp: DatapointsGraphKPIDetails, fn: string): string {\n return `[${fn}] ${dp.label} (${dp.__target?.name})`;\n }\n\n getDpId(dp: DatapointsGraphKPIDetails): string {\n return `${dp.__target?.id}${dp.fragment}${dp.series}`;\n }\n\n isDuplicateDropdownItem(item: SelectableItem<SelectableDatapoint>): boolean {\n if (item.value.type !== 'DATAPOINT') return false;\n return this.datapointsWithDuplicateAggr.has(\n this.getDpId(item.value.original as DatapointsGraphKPIDetails)\n );\n }\n\n isRenderTypeFunctionVisible(dp: DatapointsGraphKPIDetails, fn: string): boolean {\n return !this.hiddenFunctionSeries.has(this.getSeriesNameForFunction(dp, fn));\n }\n\n toggleRenderTypeFunction(dp: DatapointsGraphKPIDetails, fn: string, visible: boolean): void {\n const seriesName = this.getSeriesNameForFunction(dp, fn);\n if (!visible && !this.hasVisibleDatapointSeries(undefined, seriesName)) {\n // at least 1 datapoint series should be visible\n this.hasAtLeastOneDatapointActive = false;\n this.updateSelectedItems();\n return;\n }\n this.hasAtLeastOneDatapointActive = true;\n if (visible) {\n this.hiddenFunctionSeries.delete(seriesName);\n } else {\n this.hiddenFunctionSeries.add(seriesName);\n }\n if (dp.renderAsBand && (fn === 'min' || fn === 'max')) {\n // In band mode, the min series is named '[min — max] ...' (not '[min] ...')\n const chartSeriesName =\n fn === 'min' ? `[min — max] ${dp.label} (${dp.__target?.name})` : seriesName;\n this.chartComponent.toggleSeriesByName(chartSeriesName, visible);\n this.syncBandSeriesVisibility(dp);\n } else {\n this.chartComponent.toggleSeriesByName(seriesName, visible);\n }\n this.updateSelectedItems();\n }\n\n onDuplicateAggregationsDetected(dupIds: Set<string>): void {\n // Change-guard: skip if the collapsed set hasn't changed.\n const changed =\n dupIds.size !== this.datapointsWithDuplicateAggr.size ||\n [...dupIds].some(id => !this.datapointsWithDuplicateAggr.has(id));\n if (!changed) {\n return;\n }\n this.datapointsWithDuplicateAggr = dupIds;\n // Do NOT rebuild selectableItems here — replacing the array reference resets\n // c8y-select's internal content-children state, breaking the open dropdown.\n // Instead, only update selectedItems (which goes through ngModel, handled cleanly).\n // Visual feedback (opacity + warning) is driven by isDuplicateDropdownItem() in the template.\n this.updateSelectedItems();\n this.cdr.detectChanges();\n }\n\n getDashboardChild(): DashboardChildComponent {\n return this.dashboardChild;\n }\n\n onRefresh(): void {\n this.displayConfig = { ...this.displayConfig };\n this.updateExportConfig();\n }\n\n buildSelectableItems(): SelectableItem<SelectableDatapoint>[] {\n const aggregationActive = !!(\n this.displayConfig?.showAdvancedChartOptions &&\n (this.displayConfig?.aggregation || this.displayConfig?.autoAggregation)\n );\n const dpItems: SelectableItem<SelectableDatapoint>[] = [];\n for (const dp of this.displayConfig.datapoints || []) {\n const kpiDp = dp as DatapointsGraphKPIDetails;\n // Always expand per-fn items regardless of collapse state.\n // Collapsed state is reflected visually via isDuplicateDropdownItem() in the template.\n // Never collapse the item list here — replacing selectableItems breaks c8y-select internals.\n const fns =\n aggregationActive && kpiDp.renderTypes?.length > 1\n ? kpiDp.renderTypes.filter(rt => rt !== 'area')\n : null;\n if (fns?.length > 0) {\n for (const fn of fns) {\n dpItems.push({\n label: `${dp.label} [${fn}]`,\n value: { type: 'DATAPOINT', original: dp, renderTypeFn: fn }\n });\n }\n } else {\n dpItems.push({\n label: dp.label,\n value: { type: 'DATAPOINT', original: dp }\n });\n }\n }\n\n const alarmItems: SelectableItem<SelectableDatapoint>[] = (\n this.displayConfig.alarmsEventsConfigs || []\n )\n .filter(ae => ae.timelineType === 'ALARM')\n .map(alarm => {\n return {\n label: alarm.label,\n value: {\n type: 'ALARM',\n original: alarm\n }\n };\n });\n\n const eventItems: SelectableItem<SelectableDatapoint>[] = (\n this.displayConfig.alarmsEventsConfigs || []\n )\n .filter(ae => ae.timelineType === 'EVENT')\n .map(event => {\n return {\n label: event.label,\n value: {\n type: 'EVENT',\n original: event\n }\n };\n });\n\n return [...dpItems, ...alarmItems, ...eventItems];\n }\n\n onItemSelected(item: SelectableItem<SelectableDatapoint>): void {\n if (item.value.type === 'DATAPOINT' && item.value.renderTypeFn) {\n const dp = item.value.original as DatapointsGraphKPIDetails;\n if (this.datapointsWithDuplicateAggr.has(this.getDpId(dp))) {\n // Collapsed DP: selecting any fn item shows the whole DP.\n if (!dp.__active) this.toggleChart(dp);\n return;\n }\n this.toggleRenderTypeFunction(dp, item.value.renderTypeFn, true);\n } else if (item.value.type === 'DATAPOINT') {\n this.toggleChart(item.value.original as DatapointsGraphKPIDetails);\n } else {\n this.toggleAlarmEventType(item.value.original as AlarmOrEventExtended);\n }\n }\n\n onItemDeselected(item: SelectableItem<SelectableDatapoint>): void {\n if (item.value.type === 'DATAPOINT' && item.value.renderTypeFn) {\n const dp = item.value.original as DatapointsGraphKPIDetails;\n if (this.datapointsWithDuplicateAggr.has(this.getDpId(dp))) {\n // Collapsed DP: deselecting any fn item hides the whole DP.\n if (dp.__active) this.toggleChart(dp);\n return;\n }\n this.toggleRenderTypeFunction(dp, item.value.renderTypeFn, false);\n } else if (item.value.type === 'DATAPOINT') {\n this.toggleChart(item.value.original as DatapointsGraphKPIDetails);\n } else {\n this.toggleAlarmEventType(item.value.original as AlarmOrEventExtended);\n }\n }\n\n toggleChart(datapoint: DatapointsGraphKPIDetails): void {\n if (datapoint.__active && !this.hasVisibleDatapointSeries(this.getDpId(datapoint))) {\n // at least 1 datapoint series should be visible\n this.hasAtLeastOneDatapointActive = false;\n this.updateSelectedItems();\n return;\n }\n datapoint.__active = !datapoint.__active;\n this.hasAtLeastOneDatapointActive = true;\n\n this.updateSelectedItems();\n\n const getDatapointId = (dp: DatapointsGraphKPIDetails) =>\n `${dp.__target?.id}${dp.fragment}${dp.series}`;\n const isLoaded = this.loadedDatapoints.find(\n dp => getDatapointId(dp) === getDatapointId(datapoint)\n );\n\n if (datapoint.__active && !isLoaded) {\n // Datapoint being shown but not loaded (or data is stale) - trigger full reload\n this.loadedDatapoints.push(datapoint);\n this.displayConfig = { ...this.displayConfig };\n } else {\n // Datapoint already loaded with fresh data OR being hidden - just toggle visibility in echarts\n this.chartComponent.toggleDatapointSeriesVisibility(datapoint);\n }\n }\n\n handleDatapointOutOfSync(dpOutOfSync: DatapointsGraphKPIDetails): void {\n const key = (dp: KPIDetails) => dp.__target?.id + dp.fragment + dp.series;\n const dpMatch = this.displayConfig?.datapoints?.find(dp => key(dp) === key(dpOutOfSync));\n if (!dpMatch) {\n return;\n }\n this.datapointsOutOfSync.set(dpMatch, true);\n }\n\n handleDatapointBackInSync(dpBackInSync: DatapointsGraphKPIDetails): void {\n const key = (dp: KPIDetails) => dp.__target?.id + dp.fragment + dp.series;\n const dpMatch = this.displayConfig?.datapoints?.find(dp => key(dp) === key(dpBackInSync));\n if (!dpMatch) {\n return;\n }\n this.datapointsOutOfSync.delete(dpMatch);\n }\n\n toggleMarkedArea(alarm: AlarmDetailsExtended): void {\n this.enabledMarkedAreaAlarmType = alarm.filters.type;\n const params = {\n data: {\n itemType: alarm.filters.type\n }\n };\n this.chartComponent.onChartClick(params);\n }\n\n toggleAlarmEventType(alarmOrEvent: AlarmOrEventExtended): void {\n const type = alarmOrEvent.filters.type;\n const deviceId = alarmOrEvent.__target?.id;\n const newHiddenState = !alarmOrEvent.__hidden;\n const isBeingShown = !newHiddenState;\n\n // Match by both type AND device to distinguish alarms from different devices\n const isSameAlarmConfig = (ae: AlarmOrEventExtended) =>\n ae.filters.type === type && ae.__target?.id === deviceId;\n\n // Update __hidden in all locations\n alarmOrEvent.__hidden = newHiddenState;\n this.displayConfig.alarmsEventsConfigs?.forEach(ae => {\n if (isSameAlarmConfig(ae)) {\n ae.__hidden = newHiddenState;\n }\n });\n this.alarms.forEach(alarm => {\n if (isSameAlarmConfig(alarm)) {\n alarm.__hidden = newHiddenState;\n }\n });\n this.events.forEach(event => {\n if (isSameAlarmConfig(event)) {\n event.__hidden = newHiddenState;\n }\n });\n\n this.updateSelectedItems();\n\n const isLoaded = this.loadedAlarmsOrEvents.find(aOrE => isSameAlarmConfig(aOrE));\n\n if (isBeingShown && !isLoaded) {\n // Showing but not loaded - trigger pipeline to fetch data\n this.loadedAlarmsOrEvents.push(alarmOrEvent);\n this.displayConfig = { ...this.displayConfig };\n } else {\n // Hiding OR showing already-loaded - just toggle visibility in echarts\n this.chartComponent.toggleAlarmEventSeriesVisibility(alarmOrEvent);\n }\n }\n\n updateAlarmsAndEvents(alarmsEventsConfigs: AlarmOrEventExtended[]): void {\n this.alarms = alarmsEventsConfigs.filter(\n alarm => alarm.timelineType === 'ALARM'\n ) as AlarmDetailsExtended[];\n this.events = alarmsEventsConfigs.filter(\n event => event.timelineType === 'EVENT'\n ) as EventDetailsExtended[];\n // Recompute in both directions. Only ever clearing this flag left the severity filter\n // showing for widgets that have no alarms at all, and kept it hidden after an alarm was\n // added back.\n this.hasAtLeastOneAlarmActive = this.alarms.some(alarm => alarm.__active);\n }\n\n filterSeverity(eventTarget: any): void {\n this.alarms = this.alarms.map(alarm => {\n if (!alarm.__severity) {\n alarm.__severity = [];\n }\n alarm.__severity = Object.keys(eventTarget.severityOptions).filter(\n (severity): severity is keyof SeveritySettings =>\n eventTarget.severityOptions[severity as keyof SeveritySettings]\n ) as SeverityType[];\n\n if (!alarm.__status) {\n alarm.__status = [];\n }\n const statuses = Object.keys(ALARM_STATUS_LABELS) as AlarmStatusType[];\n const filteredStatuses = eventTarget.showCleared\n ? statuses\n : statuses.filter(status => status !== 'CLEARED');\n alarm.__status = filteredStatuses;\n return alarm;\n });\n this.displayConfig = { ...this.displayConfig };\n }\n\n isLastActiveDatapoint(selectedItem: SelectableItem<SelectableDatapoint>): boolean {\n if (!selectedItem?.value || selectedItem.value.type !== 'DATAPOINT') {\n return false;\n }\n if (!this.hasAtLeastOneDatapointActive) {\n if (selectedItem.value.renderTypeFn) {\n return this.isRenderTypeFunctionVisible(\n selectedItem.value.original as DatapointsGraphKPIDetails,\n selectedItem.value.renderTypeFn\n );\n }\n return !!selectedItem.value.original.__active;\n }\n return false;\n }\n\n private syncBandSeriesVisibility(dp: DatapointsGraphKPIDetails): void {\n const bothVisible =\n !this.hiddenFunctionSeries.has(this.getSeriesNameForFunction(dp, 'min')) &&\n !this.hiddenFunctionSeries.has(this.getSeriesNameForFunction(dp, 'max'));\n const label = `${dp.label} (${dp.__target?.name})`;\n this.chartComponent.toggleSeriesByName(`[band-max] ${label}`, bothVisible);\n this.chartComponent.toggleSeriesByName(`[band] ${label}`, bothVisible);\n }\n\n private updateExportConfig(): void {\n const datapointDetails = this.displayConfig.datapoints\n .filter(({ __active }) => __active)\n .map(({ __target, fragment, series }) => ({\n deviceName: __target.name,\n source: __target.id,\n valueFragmentSeries: series,\n valueFragmentType: fragment\n }));\n\n if (datapointDetails.length === 0) {\n this.exportConfig = null;\n } else {\n const dtc = this.displayConfig.dateTimeContext;\n this.exportConfig = {\n aggregation: this.displayConfig.aggregation,\n dateFrom: new Date(dtc?.dateFrom || this.displayConfig.dateFrom).toISOString(),\n dateTo: new Date(dtc?.dateTo || this.displayConfig.dateTo).toISOString(),\n datapointDetails\n };\n }\n }\n\n private hasVisibleDatapointSeries(excludeDpId?: string, excludeSeriesName?: string): boolean {\n const aggregationActive = !!(\n this.displayConfig?.showAdvancedChartOptions &&\n (this.displayConfig?.aggregation || this.displayConfig?.autoAggregation)\n );\n for (const dp of this.displayConfig?.datapoints || []) {\n const kpiDp = dp as DatapointsGraphKPIDetails;\n if (!kpiDp.__active || this.getDpId(kpiDp) === excludeDpId) continue;\n if (aggregationActive && kpiDp.renderTypes?.length > 1) {\n const hasVisible = kpiDp.renderTypes\n .filter(rt => rt !== 'area')\n .some(fn => {\n const name = this.getSeriesNameForFunction(kpiDp, fn);\n return name !== excludeSeriesName && !this.hiddenFunctionSeries.has(name);\n });\n if (hasVisible) return true;\n } else {\n return true;\n }\n }\n return false;\n }\n\n private updateSelectedItems(): void {\n // For collapsed DPs (all fns return same value), show only the first fn item as a chip\n // so the user sees exactly one grayed chip — mirroring the single collapsed pill.\n const seenCollapsedDp = new Set<string>();\n const filtered = this.selectableItems.filter(item => {\n if (item.value.type === 'DATAPOINT' && item.value.renderTypeFn) {\n const dp = item.value.original as DatapointsGraphKPIDetails;\n const dpId = this.getDpId(dp);\n if (this.datapointsWithDuplicateAggr.has(dpId)) {\n // Only the first fn item gets a chip; skip further ones.\n if (!dp.__active || seenCollapsedDp.has(dpId)) return false;\n seenCollapsedDp.add(dpId);\n return true;\n }\n return !this.hiddenFunctionSeries.has(\n this.getSeriesNameForFunction(dp, item.value.renderTypeFn)\n );\n }\n if (item.value.type === 'DATAPOINT') {\n return !!item.value.original.__active;\n } else {\n return item.value.original.__active && !item.value.original.__hidden;\n }\n });\n this.selectedItems = [...filtered];\n this.cdr.detectChanges();\n }\n\n private assignContextFromContextDashboard(\n dpOrAlarmOrEvent: KPIDetails | AlarmOrEventExtended\n ): void {\n if (!this.dashboardContextComponent?.isDeviceTypeDashboard) {\n return;\n }\n const context = this.dashboardContextComponent?.context;\n if (context?.id) {\n const { name, id } = context;\n dpOrAlarmOrEvent.__target = { name, id };\n }\n }\n\n /**\n * Remove hidden items from loaded cache so they will be reloaded when toggled visible.\n * Called when context changes (time range, aggregation, etc.) to mark hidden items data as stale.\n */\n private invalidateHiddenItemsCache(): void {\n this.loadedDatapoints = this.loadedDatapoints.filter(dp => dp.__active);\n this.loadedAlarmsOrEvents = this.loadedAlarmsOrEvents.filter(\n aOrE => aOrE.__active && !aOrE.__hidden\n );\n }\n\n /** Compares two time ranges by instant, tolerating `Date` and ISO string representations. */\n private hasTimeRangeChanged(\n previous: GlobalContextState['dateTimeContext'] | undefined,\n next: GlobalContextState['dateTimeContext']\n ): boolean {\n if (!previous) {\n return true;\n }\n const instant = (value: Date | string | undefined) =>\n value === undefined ? NaN : new Date(value).valueOf();\n return (\n instant(previous.dateFrom) !== instant(next.dateFrom) ||\n instant(previous.dateTo) !== instant(next.dateTo)\n );\n }\n\n private computeRealtimeFlag(\n source: Pick<GlobalContextState, 'refreshOption' | 'isAutoRefreshEnabled'>\n ): boolean {\n return source?.refreshOption === REFRESH_OPTION.LIVE && !!source?.isAutoRefreshEnabled;\n }\n}\n","@if (displayMode() === GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD) {\n <c8y-global-context-connector\n [controls]=\"widgetControls()\"\n [config]=\"contextConfig()\"\n [isLoading]=\"isLoading$ | async\"\n [dashboardChild]=\"getDashboardChild()\"\n [linked]=\"isLinkedToGlobal()\"\n [propagateAutoRefresh]=\"false\"\n (configChange)=\"onContextChange($event)\"\n (linkedChange)=\"isLinkedToGlobal.set($event)\"\n ></c8y-global-context-connector>\n} @else {\n <c8y-local-controls\n [controls]=\"widgetControls()\"\n [displayMode]=\"displayMode()\"\n [config]=\"contextConfig()\"\n [isLoading]=\"isLoading$ | async\"\n [propagateAutoRefresh]=\"false\"\n (configChange)=\"onContextChange($event)\"\n ></c8y-local-controls>\n}\n\n<div\n class=\"p-l-16 p-r-16\"\n style=\"min-height: 34px\"\n>\n <div class=\"d-flex gap-16 a-i-center\">\n @if (hasAtLeastOneAlarmActive) {\n <c8y-alarms-filter\n class=\"d-contents form-group-sm min-width-0\"\n (onFilterApplied)=\"filterSeverity($event)\"\n ></c8y-alarms-filter>\n }\n @if (displayConfig?.datapoints.length > 0) {\n <div class=\"d-flex a-i-center min-width-0\">\n @if (\n displayConfig.dataPointLegendDisplay === 'dropdown' ||\n (displayConfig.dataPointLegendDisplay === 'auto' && totalLegendItems > 5)\n ) {\n <c8y-select\n class=\"min-width-0 c8y-select-v2--sm\"\n aria-label=\"{{ 'Select data points, alarms or events' | translate }}\"\n [placeholder]=\"'Select data points, alarms or events' | translate\"\n [multi]=\"true\"\n [filterItems]=\"true\"\n [(ngModel)]=\"selectedItems\"\n (onSelect)=\"onItemSelected($event)\"\n (onDeselect)=\"onItemDeselected($event)\"\n >\n @for (item of selectableItems; track item.value) {\n @let isDuplicate = isDuplicateDropdownItem(item);\n <div\n class=\"d-flex a-i-center gap-4\"\n [style.opacity]=\"isDuplicate ? '0.5' : null\"\n *c8ySelectItem=\"item.value; label: item.label\"\n >\n @if (\n !hasAtLeastOneDatapointActive &&\n item.value.type === 'DATAPOINT' &&\n (!item.value.renderTypeFn\n ? item.value.original.__active\n : isRenderTypeFunctionVisible(\n $any(item.value.original),\n item.value.renderTypeFn\n ))\n ) {\n <i\n class=\"text-warning m-r-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'At least 1 data point must be active.' | translate\"\n container=\"body\"\n data-cy=\"datapoint-warning-icon\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n @if (isDuplicate) {\n <i\n class=\"text-warning m-r-4\"\n c8yIcon=\"warning2\"\n [tooltip]=\"duplicateAggrWarning\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n @if (item.value.type === 'DATAPOINT') {\n @let fnColor =\n item.value.renderTypeFn\n ? $any(item.value.original).renderTypeColors?.[item.value.renderTypeFn] ||\n item.value.original.color\n : item.value.original.color;\n <span\n class=\"circle-icon-wrapper a-s-start circle-icon-wrapper--small\"\n [style.background-color]=\"fnColor\"\n ></span>\n }\n @if (item.value.type === 'ALARM') {\n <span\n class=\"circle-icon-wrapper a-s-start circle-icon-wrapper--small\"\n [style.background-color]=\"item.value.original.color\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n }\n @if (item.value.type === 'EVENT') {\n <span\n class=\"circle-icon-wrapper a-s-start circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': item.value.original.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"online1\"\n ></i>\n </span>\n }\n <span class=\"text-truncate d-col\">\n <small class=\"text-truncate\">{{ item.label }}</small>\n <span class=\"text-muted text-10\">{{ item.value.original.__target?.name }}</span>\n </span>\n </div>\n }\n <span\n class=\"tag tag--info chip\"\n [style.opacity]=\"isDuplicateDropdownItem(selectedItem) ? '0.6' : null\"\n title=\"{{ selectedItem.label }}\"\n *c8ySelectedItems=\"let selectedItem\"\n >\n @let isDuplicateChip = isDuplicateDropdownItem(selectedItem);\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ selectedItem.label }}\"\n type=\"button\"\n (click)=\"\n $event.preventDefault(); $event.stopPropagation(); onItemDeselected(selectedItem)\n \"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n @if (isLastActiveDatapoint(selectedItem)) {\n <i\n class=\"text-warning a-s-start\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'At least 1 data point must be active.' | translate\"\n container=\"body\"\n data-cy=\"datapoint-warning-icon\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n @if (isDuplicateChip) {\n <i\n class=\"text-warning a-s-start\"\n c8yIcon=\"warning2\"\n [tooltip]=\"duplicateAggrWarning\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n @if (selectedItem.value.type === 'DATAPOINT') {\n @let fnColor =\n selectedItem.value.renderTypeFn\n ? $any(selectedItem.value.original).renderTypeColors?.[\n selectedItem.value.renderTypeFn\n ] || selectedItem.value.original.color\n : selectedItem.value?.original.color || '';\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [style.background-color]=\"fnColor\"\n ></span>\n }\n @if (selectedItem.value?.type === 'ALARM') {\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [style.background-color]=\"selectedItem.value?.original.color || ''\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n }\n @if (selectedItem.value?.type === 'EVENT') {\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{\n 'background-color': selectedItem.value?.original.color || ''\n }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"online1\"\n ></i>\n </span>\n }\n </span>\n </c8y-select>\n } @else {\n <div class=\"inner-scroll\">\n <div class=\"p-t-4 d-flex a-i-start gap-8\">\n @for (datapoint of displayConfig.datapoints; track datapoint) {\n @let rtColors = getAggregationFunctionColors(datapoint);\n @let dpId = getDpId(datapoint);\n @if (datapoint.retrievalError) {\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'Data point no longer exists.' | translate\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></i>\n } @else if (\n rtColors.length > 0 &&\n datapointsWithDuplicateAggr.has(dpId) &&\n displayConfig?.aggregation\n ) {\n <!-- All aggregation functions return the same value — collapse to a single muted pill -->\n <div\n class=\"c8y-datapoint-pill pill--sm flex-no-shrink\"\n [class.active]=\"datapoint.__active\"\n style=\"opacity: 0.5\"\n title=\"{{ datapoint.label }} - {{ datapoint.__target.name }}\"\n >\n <button\n class=\"c8y-datapoint-pill__btn\"\n title=\"{{\n (datapoint.__active ? hideDatapointLabel : showDatapointLabel) | translate\n }}\"\n type=\"button\"\n data-cy=\"datapoint-toggle-visibility-btn\"\n (click)=\"toggleChart(datapoint)\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"datapoint.__active ? 'eye text-primary' : 'eye-slash text-muted'\"\n ></i>\n </button>\n <div class=\"c8y-datapoint-pill__label c8y-datapoint-pill__btn\">\n <i\n class=\"m-r-4 icon-14\"\n c8yIcon=\"circle\"\n [style.color]=\"datapoint.color\"\n ></i>\n <span\n class=\"text-truncate\"\n [class.text-muted]=\"!datapoint.__active\"\n >\n <span class=\"text-truncate text-bold\">{{ datapoint.label }}</span>\n <small class=\"text-muted text-10\">{{ datapoint.__target.name }}</small>\n </span>\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"duplicateAggrWarning\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></i>\n </div>\n </div>\n } @else if (rtColors.length > 0) {\n @for (entry of rtColors; track entry.renderType) {\n @let isVisible = isRenderTypeFunctionVisible(datapoint, entry.renderType);\n <div\n class=\"c8y-datapoint-pill pill--sm flex-no-shrink\"\n [class.active]=\"isVisible\"\n title=\"{{ datapoint.label }} [{{ entry.renderType }}] - {{\n datapoint.__target.name\n }}\"\n >\n @if (!hasAtLeastOneDatapointActive && isVisible) {\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'At least 1 data point must be active.' | translate\"\n container=\"body\"\n data-cy=\"datapoint-warning-icon\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n <button\n class=\"c8y-datapoint-pill__btn\"\n title=\"{{\n (isVisible ? hideDatapointLabel : showDatapointLabel) | translate\n }}\"\n type=\"button\"\n data-cy=\"datapoint-toggle-visibility-btn\"\n (click)=\"toggleRenderTypeFunction(datapoint, entry.renderType, !isVisible)\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"isVisible ? 'eye text-primary' : 'eye-slash text-muted'\"\n ></i>\n </button>\n <div class=\"c8y-datapoint-pill__label c8y-datapoint-pill__btn\">\n <i\n class=\"m-r-4 icon-14\"\n c8yIcon=\"circle\"\n [style.color]=\"entry.color\"\n ></i>\n <span\n class=\"text-truncate\"\n [class.text-muted]=\"!isVisible\"\n >\n <span class=\"text-truncate text-bold\">\n {{ datapoint.label }} [{{ entry.renderType }}]\n </span>\n <small class=\"text-muted text-10\">\n {{ datapoint.__target.name }}\n </small>\n </span>\n </div>\n </div>\n }\n } @else {\n <div\n class=\"c8y-datapoint-pill pill--sm flex-no-shrink\"\n title=\"{{ datapoint.label }} - {{ datapoint.__target.name }}\"\n [ngClass]=\"{ active: datapoint.__active }\"\n >\n @if (!hasAtLeastOneDatapointActive && datapoint.__active) {\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'At least 1 data point must be active.' | translate\"\n container=\"body\"\n data-cy=\"datapoint-warning-icon\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n <button\n class=\"c8y-datapoint-pill__btn\"\n title=\"{{\n (datapoint.__active ? hideDatapointLabel : showDatapointLabel) | translate\n }} \"\n type=\"button\"\n data-cy=\"datapoint-toggle-visibility-btn\"\n (click)=\"toggleChart(datapoint)\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"datapoint.__active ? 'eye text-primary' : 'eye-slash text-muted'\"\n ></i>\n </button>\n <div class=\"c8y-datapoint-pill__label c8y-datapoint-pill__btn\">\n <i\n class=\"m-r-4 icon-14\"\n c8yIcon=\"circle\"\n [ngStyle]=\"{\n color: datapoint.color\n }\"\n ></i>\n <span\n class=\"text-truncate\"\n [ngClass]=\"{ 'text-muted': !datapoint.__active }\"\n >\n <span class=\"text-truncate text-bold\">\n {{ datapoint.label }}\n </span>\n <small class=\"text-muted text-10\">\n {{ datapoint.__target.name }}\n </small>\n </span>\n @if (datapointsOutOfSync.get(datapoint)) {\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"\n 'Measurements received for this data point may be out of sync.'\n | translate\n \"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n </div>\n </div>\n }\n }\n\n @for (alarm of alarms; track alarm) {\n <div\n class=\"c8y-alarm-pill pill--sm flex-no-shrink\"\n title=\"{{ alarm.filters.type }} \"\n >\n @if (displayConfig?.activeAlarmTypesOutOfRange?.includes(alarm.filters.type)) {\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"\n 'Alarm of this type is currently active and outside of the selected time range'\n | translate\n \"\n container=\"body\"\n [adaptivePosition]=\"false\"\n ></i>\n }\n <button\n class=\"c8y-alarm-pill__btn\"\n title=\"{{ alarm.filters.type }} \"\n type=\"button\"\n (click)=\"toggleAlarmEventType(alarm)\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"\n alarm.__hidden || !alarm.__active\n ? 'eye-slash text-muted'\n : 'eye text-primary'\n \"\n ></i>\n </button>\n <button\n class=\"c8y-alarm-pill__label c8y-alarm-pill__btn\"\n (click)=\"toggleMarkedArea(alarm)\"\n [ngClass]=\"{\n active:\n !isMarkedAreaEnabled && alarm.filters.type === enabledMarkedAreaAlarmType\n }\"\n >\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small m-r-4\"\n [style.background-color]=\"alarm.color\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n <span\n class=\"text-truncate\"\n [ngClass]=\"{ 'text-muted': alarm.__hidden }\"\n >\n <span class=\"text-truncate text-bold\">\n {{ alarm.label || alarm.filters.type }}\n </span>\n <small class=\"text-muted text-10\">\n {{ alarm.__target.name }}\n </small>\n </span>\n </button>\n </div>\n }\n\n @for (event of events; track event) {\n <div\n class=\"c8y-event-pill pill--sm flex-no-shrink\"\n title=\"{{ event.filters.type }}\"\n >\n <button\n class=\"c8y-event-pill__btn\"\n title=\"{{ event.filters.type }} \"\n type=\"button\"\n (click)=\"toggleAlarmEventType(event)\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"\n event.__hidden || !event.__active\n ? 'eye-slash text-muted'\n : 'eye text-primary'\n \"\n ></i>\n </button>\n <div class=\"c8y-event-pill__label c8y-event-pill__btn\">\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small m-r-4\"\n [ngStyle]=\"{ 'background-color': event.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"online1\"\n ></i>\n </span>\n <span\n class=\"text-truncate text-bold\"\n [ngClass]=\"{ 'text-muted': event.__hidden }\"\n >\n <span class=\"text-truncate\">\n {{ event.label || event.filters.type }}\n </span>\n <small class=\"text-muted text-10\">\n {{ event.__target.name }}\n </small>\n </span>\n </div>\n </div>\n }\n </div>\n </div>\n <button\n class=\"btn-help btn-help--sm m-r-8\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"legendHelpTemplate\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n [adaptivePosition]=\"true\"\n ></button>\n }\n </div>\n }\n </div>\n</div>\n\n@if (displayConfig !== null) {\n <c8y-charts\n #chart\n [config]=\"displayConfig\"\n [alerts]=\"alerts\"\n [chartViewContext]=\"chartViewContext\"\n (updateAlarmsAndEvents)=\"updateAlarmsAndEvents($event)\"\n (configChangeOnZoomOut)=\"updateDashboardTimeContext($event)\"\n (datapointOutOfSync)=\"handleDatapointOutOfSync($event)\"\n (datapointBackInSync)=\"handleDatapointBackInSync($event)\"\n (finishLoading)=\"this.isLoading$.next($event)\"\n (isMarkedAreaEnabled)=\"isMarkedAreaEnabled = $event\"\n (duplicateAggregationsDetected)=\"onDuplicateAggregationsDetected($event)\"\n (selectedChange)=\"onSelectedChange($event)\"\n ></c8y-charts>\n}\n\n<ng-template #legendHelpTemplate>\n <div [innerHTML]=\"legendHelp\"></div>\n</ng-template>\n\n<c8y-widget-action>\n <c8y-datapoints-export-selector\n [displayMode]=\"'icon-only'\"\n [exportConfig]=\"exportConfig\"\n [containerClass]=\"'d-contents'\"\n ></c8y-datapoints-export-selector>\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Save as image' | translate\"\n tooltip=\"{{ 'Save as image' | translate }}\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"chartComponent.saveAsImage()\"\n [adaptivePosition]=\"false\"\n >\n <i\n class=\"icon-14\"\n c8yIcon=\"image-file-checked\"\n ></i>\n </button>\n</c8y-widget-action>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4","CommonModule","i6","i7","i8"],"mappings":"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"}
|
package/locales/de.po
CHANGED
|
@@ -10664,6 +10664,9 @@ msgstr "MNC"
|
|
|
10664
10664
|
msgid "MQTT Service"
|
|
10665
10665
|
msgstr "MQTT-Dienst"
|
|
10666
10666
|
|
|
10667
|
+
msgid "MQTT service"
|
|
10668
|
+
msgstr "MQTT-Dienst"
|
|
10669
|
+
|
|
10667
10670
|
msgid "MSISDN"
|
|
10668
10671
|
msgstr "MSISDN"
|
|
10669
10672
|
|
package/locales/es.po
CHANGED
|
@@ -10709,6 +10709,9 @@ msgstr "MNC"
|
|
|
10709
10709
|
msgid "MQTT Service"
|
|
10710
10710
|
msgstr "Servicio MQTT"
|
|
10711
10711
|
|
|
10712
|
+
msgid "MQTT service"
|
|
10713
|
+
msgstr "Servicio MQTT"
|
|
10714
|
+
|
|
10712
10715
|
msgid "MSISDN"
|
|
10713
10716
|
msgstr "MSISDN"
|
|
10714
10717
|
|
package/locales/fr.po
CHANGED
|
@@ -10681,6 +10681,9 @@ msgstr "MNC"
|
|
|
10681
10681
|
msgid "MQTT Service"
|
|
10682
10682
|
msgstr "Service MQTT"
|
|
10683
10683
|
|
|
10684
|
+
msgid "MQTT service"
|
|
10685
|
+
msgstr "Service MQTT"
|
|
10686
|
+
|
|
10684
10687
|
msgid "MSISDN"
|
|
10685
10688
|
msgstr "MSISDN"
|
|
10686
10689
|
|
package/locales/ja_JP.po
CHANGED
|
@@ -10682,6 +10682,9 @@ msgstr "MNC"
|
|
|
10682
10682
|
msgid "MQTT Service"
|
|
10683
10683
|
msgstr "MQTT サービス"
|
|
10684
10684
|
|
|
10685
|
+
msgid "MQTT service"
|
|
10686
|
+
msgstr ""
|
|
10687
|
+
|
|
10685
10688
|
msgid "MSISDN"
|
|
10686
10689
|
msgstr "MSISDN"
|
|
10687
10690
|
|
package/locales/ko.po
CHANGED
|
@@ -10695,6 +10695,9 @@ msgstr "MNC"
|
|
|
10695
10695
|
msgid "MQTT Service"
|
|
10696
10696
|
msgstr "MQTT 서비스"
|
|
10697
10697
|
|
|
10698
|
+
msgid "MQTT service"
|
|
10699
|
+
msgstr "MQTT 서비스"
|
|
10700
|
+
|
|
10698
10701
|
msgid "MSISDN"
|
|
10699
10702
|
msgstr "MSISDN"
|
|
10700
10703
|
|
package/locales/nl.po
CHANGED
|
@@ -10722,6 +10722,9 @@ msgstr "MNC"
|
|
|
10722
10722
|
msgid "MQTT Service"
|
|
10723
10723
|
msgstr "MQTT-service"
|
|
10724
10724
|
|
|
10725
|
+
msgid "MQTT service"
|
|
10726
|
+
msgstr "MQTT-dienst"
|
|
10727
|
+
|
|
10725
10728
|
msgid "MSISDN"
|
|
10726
10729
|
msgstr "MSISDN"
|
|
10727
10730
|
|
package/locales/pl.po
CHANGED
|
@@ -10767,6 +10767,9 @@ msgstr "MNC"
|
|
|
10767
10767
|
msgid "MQTT Service"
|
|
10768
10768
|
msgstr "Usługa MQTT"
|
|
10769
10769
|
|
|
10770
|
+
msgid "MQTT service"
|
|
10771
|
+
msgstr "Usługa MQTT"
|
|
10772
|
+
|
|
10770
10773
|
msgid "MSISDN"
|
|
10771
10774
|
msgstr "MSISDN"
|
|
10772
10775
|
|
package/locales/pt_BR.po
CHANGED
|
@@ -10722,6 +10722,9 @@ msgstr "MNC"
|
|
|
10722
10722
|
msgid "MQTT Service"
|
|
10723
10723
|
msgstr "Serviço MQTT"
|
|
10724
10724
|
|
|
10725
|
+
msgid "MQTT service"
|
|
10726
|
+
msgstr "Serviço MQTT"
|
|
10727
|
+
|
|
10725
10728
|
msgid "MSISDN"
|
|
10726
10729
|
msgstr "MSISDN"
|
|
10727
10730
|
|
package/locales/zh_CN.po
CHANGED
|
@@ -10700,6 +10700,9 @@ msgstr "MNC"
|
|
|
10700
10700
|
msgid "MQTT Service"
|
|
10701
10701
|
msgstr "MQTT 服务"
|
|
10702
10702
|
|
|
10703
|
+
msgid "MQTT service"
|
|
10704
|
+
msgstr "MQTT 服务"
|
|
10705
|
+
|
|
10703
10706
|
msgid "MSISDN"
|
|
10704
10707
|
msgstr "MSISDN"
|
|
10705
10708
|
|
package/locales/zh_TW.po
CHANGED
|
@@ -10697,6 +10697,9 @@ msgstr "MNC"
|
|
|
10697
10697
|
msgid "MQTT Service"
|
|
10698
10698
|
msgstr "MQTT 服務"
|
|
10699
10699
|
|
|
10700
|
+
msgid "MQTT service"
|
|
10701
|
+
msgstr "MQTT 服務"
|
|
10702
|
+
|
|
10700
10703
|
msgid "MSISDN"
|
|
10701
10704
|
msgstr "MSISDN"
|
|
10702
10705
|
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@c8y/ngx-components","version":"1024.19.1","license":"Apache-2.0","author":"Cumulocity","description":"Angular modules for Cumulocity IoT applications","keywords":["Cumulocity","IoT","m2m","Angular","Components"],"peerDependencies":{"@angular/cdk":"^21.0.0","@angular/common":"^21.0.0","@angular/core":"^21.0.0","@angular/forms":"^21.0.0","@angular/platform-browser":"^21.0.0","@angular/router":"^21.0.0","@angular/upgrade":"^21.0.0","@c8y/bootstrap":"1024.19.1","@c8y/client":"1024.19.1","@novnc/novnc":"1.5.0","@xterm/addon-fit":"0.10.0","@xterm/xterm":"5.5.0","dompurify":"3.4.0","gridstack":"^12.4.2","leaflet":"^1.9.4","lz-string":"1.5.0","monaco-editor":">= 0.31.0","rxjs":"7.8.2"},"dependencies":{"@ngx-formly/core":"6.1.3","@ngx-translate/core":"17.0.0","@zip.js/zip.js":"2.7.71","ajv":"^8.18.0","ajv-formats":"3.0.1","angularx-qrcode":"21.0.5","chroma-js":"3.1.2","echarts":"6.1.0","file-saver":"2.0.5","libphonenumber-js":"1.12.10","lodash-es":"^4.18.1","marked":"16.3.0","ngx-bootstrap":"21.0.1","ngx-echarts":"21.0.0","semver":"~7.7.1","three":"0.173.0","tslib":"^2.6.3"},"module":"fesm2022/c8y-ngx-components.mjs","typings":"types/c8y-ngx-components.d.ts","exports":{"./locales/de.po":"./locales/de.po","./locales/en.po":"./locales/en.po","./locales/es.po":"./locales/es.po","./locales/fr.po":"./locales/fr.po","./locales/ja_JP.po":"./locales/ja_JP.po","./locales/ko.po":"./locales/ko.po","./locales/nl.po":"./locales/nl.po","./locales/pt_BR.po":"./locales/pt_BR.po","./locales/zh_CN.po":"./locales/zh_CN.po","./locales/zh_TW.po":"./locales/zh_TW.po","./locales/pl.po":"./locales/pl.po","./locales/en_US.po":"./locales/en_US.po","./package.json":{"default":"./package.json"},".":{"types":"./types/c8y-ngx-components.d.ts","default":"./fesm2022/c8y-ngx-components.mjs"},"./actility-device-registration":{"types":"./types/c8y-ngx-components-actility-device-registration.d.ts","default":"./fesm2022/c8y-ngx-components-actility-device-registration.mjs"},"./advanced-software-management":{"types":"./types/c8y-ngx-components-advanced-software-management.d.ts","default":"./fesm2022/c8y-ngx-components-advanced-software-management.mjs"},"./ai":{"types":"./types/c8y-ngx-components-ai.d.ts","default":"./fesm2022/c8y-ngx-components-ai.mjs"},"./ai/agent-chat":{"types":"./types/c8y-ngx-components-ai-agent-chat.d.ts","default":"./fesm2022/c8y-ngx-components-ai-agent-chat.mjs"},"./ai/agents/html":{"types":"./types/c8y-ngx-components-ai-agents-html.d.ts","default":"./fesm2022/c8y-ngx-components-ai-agents-html.mjs"},"./ai/agents/scada":{"types":"./types/c8y-ngx-components-ai-agents-scada.d.ts","default":"./fesm2022/c8y-ngx-components-ai-agents-scada.mjs"},"./ai/ai-chat":{"types":"./types/c8y-ngx-components-ai-ai-chat.d.ts","default":"./fesm2022/c8y-ngx-components-ai-ai-chat.mjs"},"./alarm-event-selector":{"types":"./types/c8y-ngx-components-alarm-event-selector.d.ts","default":"./fesm2022/c8y-ngx-components-alarm-event-selector.mjs"},"./alarms":{"types":"./types/c8y-ngx-components-alarms.d.ts","default":"./fesm2022/c8y-ngx-components-alarms.mjs"},"./alarms/cockpit":{"types":"./types/c8y-ngx-components-alarms-cockpit.d.ts","default":"./fesm2022/c8y-ngx-components-alarms-cockpit.mjs"},"./alarms/devicemanagement":{"types":"./types/c8y-ngx-components-alarms-devicemanagement.d.ts","default":"./fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs"},"./api":{"types":"./types/c8y-ngx-components-api.d.ts","default":"./fesm2022/c8y-ngx-components-api.mjs"},"./app-logs":{"types":"./types/c8y-ngx-components-app-logs.d.ts","default":"./fesm2022/c8y-ngx-components-app-logs.mjs"},"./application-access/list":{"types":"./types/c8y-ngx-components-application-access-list.d.ts","default":"./fesm2022/c8y-ngx-components-application-access-list.mjs"},"./application-access/user":{"types":"./types/c8y-ngx-components-application-access-user.d.ts","default":"./fesm2022/c8y-ngx-components-application-access-user.mjs"},"./application-access/user/application-access-user-details-wrapper":{"types":"./types/c8y-ngx-components-application-access-user-application-access-user-details-wrapper.d.ts","default":"./fesm2022/c8y-ngx-components-application-access-user-application-access-user-details-wrapper.mjs"},"./application-select":{"types":"./types/c8y-ngx-components-application-select.d.ts","default":"./fesm2022/c8y-ngx-components-application-select.mjs"},"./asset-properties":{"types":"./types/c8y-ngx-components-asset-properties.d.ts","default":"./fesm2022/c8y-ngx-components-asset-properties.mjs"},"./assets-navigator":{"types":"./types/c8y-ngx-components-assets-navigator.d.ts","default":"./fesm2022/c8y-ngx-components-assets-navigator.mjs"},"./auth-configuration":{"types":"./types/c8y-ngx-components-auth-configuration.d.ts","default":"./fesm2022/c8y-ngx-components-auth-configuration.mjs"},"./binary-file-download":{"types":"./types/c8y-ngx-components-binary-file-download.d.ts","default":"./fesm2022/c8y-ngx-components-binary-file-download.mjs"},"./bookmarks":{"types":"./types/c8y-ngx-components-bookmarks.d.ts","default":"./fesm2022/c8y-ngx-components-bookmarks.mjs"},"./branding/base-branding":{"types":"./types/c8y-ngx-components-branding-base-branding.d.ts","default":"./fesm2022/c8y-ngx-components-branding-base-branding.mjs"},"./branding/dark-theme":{"types":"./types/c8y-ngx-components-branding-dark-theme.d.ts","default":"./fesm2022/c8y-ngx-components-branding-dark-theme.mjs"},"./branding/extra-css-branding-editor":{"types":"./types/c8y-ngx-components-branding-extra-css-branding-editor.d.ts","default":"./fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs"},"./branding/plain-branding-editor":{"types":"./types/c8y-ngx-components-branding-plain-branding-editor.d.ts","default":"./fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs"},"./branding/plain-branding-editor/lazy":{"types":"./types/c8y-ngx-components-branding-plain-branding-editor-lazy.d.ts","default":"./fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs"},"./branding/shared":{"types":"./types/c8y-ngx-components-branding-shared.d.ts","default":"./fesm2022/c8y-ngx-components-branding-shared.mjs"},"./branding/shared/data":{"types":"./types/c8y-ngx-components-branding-shared-data.d.ts","default":"./fesm2022/c8y-ngx-components-branding-shared-data.mjs"},"./branding/shared/lazy":{"types":"./types/c8y-ngx-components-branding-shared-lazy.d.ts","default":"./fesm2022/c8y-ngx-components-branding-shared-lazy.mjs"},"./branding/shared/lazy/add-branding-modal":{"types":"./types/c8y-ngx-components-branding-shared-lazy-add-branding-modal.d.ts","default":"./fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs"},"./child-devices":{"types":"./types/c8y-ngx-components-child-devices.d.ts","default":"./fesm2022/c8y-ngx-components-child-devices.mjs"},"./cockpit-config":{"types":"./types/c8y-ngx-components-cockpit-config.d.ts","default":"./fesm2022/c8y-ngx-components-cockpit-config.mjs"},"./computed-asset-properties":{"types":"./types/c8y-ngx-components-computed-asset-properties.d.ts","default":"./fesm2022/c8y-ngx-components-computed-asset-properties.mjs"},"./connectivity":{"types":"./types/c8y-ngx-components-connectivity.d.ts","default":"./fesm2022/c8y-ngx-components-connectivity.mjs"},"./context-dashboard":{"types":"./types/c8y-ngx-components-context-dashboard.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard.mjs"},"./context-dashboard-state":{"types":"./types/c8y-ngx-components-context-dashboard-state.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-state.mjs"},"./context-dashboard/asset/add":{"types":"./types/c8y-ngx-components-context-dashboard-asset-add.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs"},"./context-dashboard/asset/view":{"types":"./types/c8y-ngx-components-context-dashboard-asset-view.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs"},"./context-dashboard/cockpit-home-dashboard":{"types":"./types/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs"},"./context-dashboard/device/add":{"types":"./types/c8y-ngx-components-context-dashboard-device-add.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs"},"./context-dashboard/device/view":{"types":"./types/c8y-ngx-components-context-dashboard-device-view.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs"},"./context-dashboard/devicemanagement":{"types":"./types/c8y-ngx-components-context-dashboard-devicemanagement.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs"},"./dashboard-details-advanced-tab":{"types":"./types/c8y-ngx-components-dashboard-details-advanced-tab.d.ts","default":"./fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs"},"./dashboard-manager":{"types":"./types/c8y-ngx-components-dashboard-manager.d.ts","default":"./fesm2022/c8y-ngx-components-dashboard-manager.mjs"},"./dashboard-manager/devicemanagement":{"types":"./types/c8y-ngx-components-dashboard-manager-devicemanagement.d.ts","default":"./fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs"},"./data-broker":{"types":"./types/c8y-ngx-components-data-broker.d.ts","default":"./fesm2022/c8y-ngx-components-data-broker.mjs"},"./data-grid-columns":{"types":"./types/c8y-ngx-components-data-grid-columns.d.ts","default":"./fesm2022/c8y-ngx-components-data-grid-columns.mjs"},"./data-grid-columns/asset-type":{"types":"./types/c8y-ngx-components-data-grid-columns-asset-type.d.ts","default":"./fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs"},"./data-preparation":{"types":"./types/c8y-ngx-components-data-preparation.d.ts","default":"./fesm2022/c8y-ngx-components-data-preparation.mjs"},"./datapoint-explorer":{"types":"./types/c8y-ngx-components-datapoint-explorer.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-explorer.mjs"},"./datapoint-explorer/devicemanagement":{"types":"./types/c8y-ngx-components-datapoint-explorer-devicemanagement.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-explorer-devicemanagement.mjs"},"./datapoint-explorer/view":{"types":"./types/c8y-ngx-components-datapoint-explorer-view.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs"},"./datapoint-library":{"types":"./types/c8y-ngx-components-datapoint-library.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-library.mjs"},"./datapoint-library/details":{"types":"./types/c8y-ngx-components-datapoint-library-details.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-library-details.mjs"},"./datapoint-library/list":{"types":"./types/c8y-ngx-components-datapoint-library-list.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-library-list.mjs"},"./datapoint-library/model":{"types":"./types/c8y-ngx-components-datapoint-library-model.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-library-model.mjs"},"./datapoint-library/services":{"types":"./types/c8y-ngx-components-datapoint-library-services.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-library-services.mjs"},"./datapoint-selector":{"types":"./types/c8y-ngx-components-datapoint-selector.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-selector.mjs"},"./datapoints-export-selector":{"types":"./types/c8y-ngx-components-datapoints-export-selector.d.ts","default":"./fesm2022/c8y-ngx-components-datapoints-export-selector.mjs"},"./default-subscriptions":{"types":"./types/c8y-ngx-components-default-subscriptions.d.ts","default":"./fesm2022/c8y-ngx-components-default-subscriptions.mjs"},"./device-enrolment":{"types":"./types/c8y-ngx-components-device-enrolment.d.ts","default":"./fesm2022/c8y-ngx-components-device-enrolment.mjs"},"./device-enrolment/modal":{"types":"./types/c8y-ngx-components-device-enrolment-modal.d.ts","default":"./fesm2022/c8y-ngx-components-device-enrolment-modal.mjs"},"./device-grid":{"types":"./types/c8y-ngx-components-device-grid.d.ts","default":"./fesm2022/c8y-ngx-components-device-grid.mjs"},"./device-list":{"types":"./types/c8y-ngx-components-device-list.d.ts","default":"./fesm2022/c8y-ngx-components-device-list.mjs"},"./device-map":{"types":"./types/c8y-ngx-components-device-map.d.ts","default":"./fesm2022/c8y-ngx-components-device-map.mjs"},"./device-profile":{"types":"./types/c8y-ngx-components-device-profile.d.ts","default":"./fesm2022/c8y-ngx-components-device-profile.mjs"},"./device-protocol-object-mappings":{"types":"./types/c8y-ngx-components-device-protocol-object-mappings.d.ts","default":"./fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs"},"./device-protocols":{"types":"./types/c8y-ngx-components-device-protocols.d.ts","default":"./fesm2022/c8y-ngx-components-device-protocols.mjs"},"./device-provisioned-certificates":{"types":"./types/c8y-ngx-components-device-provisioned-certificates.d.ts","default":"./fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs"},"./device-shell":{"types":"./types/c8y-ngx-components-device-shell.d.ts","default":"./fesm2022/c8y-ngx-components-device-shell.mjs"},"./diagnostics":{"types":"./types/c8y-ngx-components-diagnostics.d.ts","default":"./fesm2022/c8y-ngx-components-diagnostics.mjs"},"./echart":{"types":"./types/c8y-ngx-components-echart.d.ts","default":"./fesm2022/c8y-ngx-components-echart.mjs"},"./echart/models":{"types":"./types/c8y-ngx-components-echart-models.d.ts","default":"./fesm2022/c8y-ngx-components-echart-models.mjs"},"./ecosystem":{"types":"./types/c8y-ngx-components-ecosystem.d.ts","default":"./fesm2022/c8y-ngx-components-ecosystem.mjs"},"./ecosystem/application-plugins":{"types":"./types/c8y-ngx-components-ecosystem-application-plugins.d.ts","default":"./fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs"},"./ecosystem/archived-confirm":{"types":"./types/c8y-ngx-components-ecosystem-archived-confirm.d.ts","default":"./fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs"},"./ecosystem/license-confirm":{"types":"./types/c8y-ngx-components-ecosystem-license-confirm.d.ts","default":"./fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs"},"./ecosystem/plugin-setup-stepper":{"types":"./types/c8y-ngx-components-ecosystem-plugin-setup-stepper.d.ts","default":"./fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs"},"./ecosystem/shared":{"types":"./types/c8y-ngx-components-ecosystem-shared.d.ts","default":"./fesm2022/c8y-ngx-components-ecosystem-shared.mjs"},"./editor":{"types":"./types/c8y-ngx-components-editor.d.ts","default":"./fesm2022/c8y-ngx-components-editor.mjs"},"./events":{"types":"./types/c8y-ngx-components-events.d.ts","default":"./fesm2022/c8y-ngx-components-events.mjs"},"./events/cockpit":{"types":"./types/c8y-ngx-components-events-cockpit.d.ts","default":"./fesm2022/c8y-ngx-components-events-cockpit.mjs"},"./events/devicemanagement":{"types":"./types/c8y-ngx-components-events-devicemanagement.d.ts","default":"./fesm2022/c8y-ngx-components-events-devicemanagement.mjs"},"./events/events-timeline":{"types":"./types/c8y-ngx-components-events-events-timeline.d.ts","default":"./fesm2022/c8y-ngx-components-events-events-timeline.mjs"},"./exports":{"types":"./types/c8y-ngx-components-exports.d.ts","default":"./fesm2022/c8y-ngx-components-exports.mjs"},"./exports/list":{"types":"./types/c8y-ngx-components-exports-list.d.ts","default":"./fesm2022/c8y-ngx-components-exports-list.mjs"},"./feature-toggles":{"types":"./types/c8y-ngx-components-feature-toggles.d.ts","default":"./fesm2022/c8y-ngx-components-feature-toggles.mjs"},"./feature-toggles/list":{"types":"./types/c8y-ngx-components-feature-toggles-list.d.ts","default":"./fesm2022/c8y-ngx-components-feature-toggles-list.mjs"},"./file-preview":{"types":"./types/c8y-ngx-components-file-preview.d.ts","default":"./fesm2022/c8y-ngx-components-file-preview.mjs"},"./files-repository":{"types":"./types/c8y-ngx-components-files-repository.d.ts","default":"./fesm2022/c8y-ngx-components-files-repository.mjs"},"./gettext":{"types":"./types/c8y-ngx-components-gettext.d.ts","default":"./fesm2022/c8y-ngx-components-gettext.mjs"},"./global-context":{"types":"./types/c8y-ngx-components-global-context.d.ts","default":"./fesm2022/c8y-ngx-components-global-context.mjs"},"./group-breadcrumbs":{"types":"./types/c8y-ngx-components-group-breadcrumbs.d.ts","default":"./fesm2022/c8y-ngx-components-group-breadcrumbs.mjs"},"./icon-selector":{"types":"./types/c8y-ngx-components-icon-selector.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector.mjs"},"./icon-selector/icons":{"types":"./types/c8y-ngx-components-icon-selector-icons.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons.mjs"},"./icon-selector/icons/arrows":{"types":"./types/c8y-ngx-components-icon-selector-icons-arrows.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-arrows.mjs"},"./icon-selector/icons/city":{"types":"./types/c8y-ngx-components-icon-selector-icons-city.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-city.mjs"},"./icon-selector/icons/data":{"types":"./types/c8y-ngx-components-icon-selector-icons-data.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-data.mjs"},"./icon-selector/icons/dateAndTime":{"types":"./types/c8y-ngx-components-icon-selector-icons-dateAndTime.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-dateAndTime.mjs"},"./icon-selector/icons/devicesAndSensors":{"types":"./types/c8y-ngx-components-icon-selector-icons-devicesAndSensors.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-devicesAndSensors.mjs"},"./icon-selector/icons/ecommerce":{"types":"./types/c8y-ngx-components-icon-selector-icons-ecommerce.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-ecommerce.mjs"},"./icon-selector/icons/editing":{"types":"./types/c8y-ngx-components-icon-selector-icons-editing.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-editing.mjs"},"./icon-selector/icons/filesAndFolders":{"types":"./types/c8y-ngx-components-icon-selector-icons-filesAndFolders.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-filesAndFolders.mjs"},"./icon-selector/icons/finance":{"types":"./types/c8y-ngx-components-icon-selector-icons-finance.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-finance.mjs"},"./icon-selector/icons/hands":{"types":"./types/c8y-ngx-components-icon-selector-icons-hands.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-hands.mjs"},"./icon-selector/icons/location":{"types":"./types/c8y-ngx-components-icon-selector-icons-location.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-location.mjs"},"./icon-selector/icons/messaging":{"types":"./types/c8y-ngx-components-icon-selector-icons-messaging.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-messaging.mjs"},"./icon-selector/icons/multimedia":{"types":"./types/c8y-ngx-components-icon-selector-icons-multimedia.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-multimedia.mjs"},"./icon-selector/icons/network":{"types":"./types/c8y-ngx-components-icon-selector-icons-network.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-network.mjs"},"./icon-selector/icons/office":{"types":"./types/c8y-ngx-components-icon-selector-icons-office.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-office.mjs"},"./icon-selector/icons/people":{"types":"./types/c8y-ngx-components-icon-selector-icons-people.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-people.mjs"},"./icon-selector/icons/platform":{"types":"./types/c8y-ngx-components-icon-selector-icons-platform.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-platform.mjs"},"./icon-selector/icons/programming":{"types":"./types/c8y-ngx-components-icon-selector-icons-programming.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-programming.mjs"},"./icon-selector/icons/security":{"types":"./types/c8y-ngx-components-icon-selector-icons-security.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-security.mjs"},"./icon-selector/icons/transport":{"types":"./types/c8y-ngx-components-icon-selector-icons-transport.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-transport.mjs"},"./icon-selector/icons/userInterface":{"types":"./types/c8y-ngx-components-icon-selector-icons-userInterface.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-userInterface.mjs"},"./icon-selector/icons/weather":{"types":"./types/c8y-ngx-components-icon-selector-icons-weather.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-weather.mjs"},"./icon-selector/model":{"types":"./types/c8y-ngx-components-icon-selector-model.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-model.mjs"},"./interval-picker":{"types":"./types/c8y-ngx-components-interval-picker.d.ts","default":"./fesm2022/c8y-ngx-components-interval-picker.mjs"},"./lazy/three":{"types":"./types/c8y-ngx-components-lazy-three.d.ts","default":"./fesm2022/c8y-ngx-components-lazy-three.mjs"},"./lazy/three-orbit-controls":{"types":"./types/c8y-ngx-components-lazy-three-orbit-controls.d.ts","default":"./fesm2022/c8y-ngx-components-lazy-three-orbit-controls.mjs"},"./location":{"types":"./types/c8y-ngx-components-location.d.ts","default":"./fesm2022/c8y-ngx-components-location.mjs"},"./loriot-device-registration":{"types":"./types/c8y-ngx-components-loriot-device-registration.d.ts","default":"./fesm2022/c8y-ngx-components-loriot-device-registration.mjs"},"./map":{"types":"./types/c8y-ngx-components-map.d.ts","default":"./fesm2022/c8y-ngx-components-map.mjs"},"./messaging-management":{"types":"./types/c8y-ngx-components-messaging-management.d.ts","default":"./fesm2022/c8y-ngx-components-messaging-management.mjs"},"./module-federation-exports/assets-navigator":{"types":"./types/c8y-ngx-components-module-federation-exports-assets-navigator.d.ts","default":"./fesm2022/c8y-ngx-components-module-federation-exports-assets-navigator.mjs"},"./operation-picker":{"types":"./types/c8y-ngx-components-operation-picker.d.ts","default":"./fesm2022/c8y-ngx-components-operation-picker.mjs"},"./operations":{"types":"./types/c8y-ngx-components-operations.d.ts","default":"./fesm2022/c8y-ngx-components-operations.mjs"},"./operations/bulk-operation-from-single":{"types":"./types/c8y-ngx-components-operations-bulk-operation-from-single.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs"},"./operations/bulk-operation-list-item":{"types":"./types/c8y-ngx-components-operations-bulk-operation-list-item.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs"},"./operations/bulk-operation-modal-details":{"types":"./types/c8y-ngx-components-operations-bulk-operation-modal-details.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operation-modal-details.mjs"},"./operations/bulk-operation-scheduler":{"types":"./types/c8y-ngx-components-operations-bulk-operation-scheduler.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs"},"./operations/bulk-operation-stepper":{"types":"./types/c8y-ngx-components-operations-bulk-operation-stepper.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs"},"./operations/bulk-operations-list":{"types":"./types/c8y-ngx-components-operations-bulk-operations-list.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs"},"./operations/bulk-operations-service":{"types":"./types/c8y-ngx-components-operations-bulk-operations-service.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs"},"./operations/bulk-operations-stepper-container":{"types":"./types/c8y-ngx-components-operations-bulk-operations-stepper-container.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs"},"./operations/bulk-single-operations-list":{"types":"./types/c8y-ngx-components-operations-bulk-single-operations-list.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs"},"./operations/create-bulk-operation-details":{"types":"./types/c8y-ngx-components-operations-create-bulk-operation-details.d.ts","default":"./fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs"},"./operations/device-selector":{"types":"./types/c8y-ngx-components-operations-device-selector.d.ts","default":"./fesm2022/c8y-ngx-components-operations-device-selector.mjs"},"./operations/grid-columns":{"types":"./types/c8y-ngx-components-operations-grid-columns.d.ts","default":"./fesm2022/c8y-ngx-components-operations-grid-columns.mjs"},"./operations/operation-details":{"types":"./types/c8y-ngx-components-operations-operation-details.d.ts","default":"./fesm2022/c8y-ngx-components-operations-operation-details.mjs"},"./operations/operation-summary":{"types":"./types/c8y-ngx-components-operations-operation-summary.d.ts","default":"./fesm2022/c8y-ngx-components-operations-operation-summary.mjs"},"./operations/operations-list":{"types":"./types/c8y-ngx-components-operations-operations-list.d.ts","default":"./fesm2022/c8y-ngx-components-operations-operations-list.mjs"},"./operations/operations-list-item-details":{"types":"./types/c8y-ngx-components-operations-operations-list-item-details.d.ts","default":"./fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs"},"./operations/operations-timeline":{"types":"./types/c8y-ngx-components-operations-operations-timeline.d.ts","default":"./fesm2022/c8y-ngx-components-operations-operations-timeline.mjs"},"./operations/product-experience":{"types":"./types/c8y-ngx-components-operations-product-experience.d.ts","default":"./fesm2022/c8y-ngx-components-operations-product-experience.mjs"},"./operations/shared":{"types":"./types/c8y-ngx-components-operations-shared.d.ts","default":"./fesm2022/c8y-ngx-components-operations-shared.mjs"},"./operations/status-filter":{"types":"./types/c8y-ngx-components-operations-status-filter.d.ts","default":"./fesm2022/c8y-ngx-components-operations-status-filter.mjs"},"./operations/stepper-bulk-type-configuration":{"types":"./types/c8y-ngx-components-operations-stepper-bulk-type-configuration.d.ts","default":"./fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs"},"./operations/stepper-bulk-type-device-profile":{"types":"./types/c8y-ngx-components-operations-stepper-bulk-type-device-profile.d.ts","default":"./fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs"},"./operations/stepper-bulk-type-firmware":{"types":"./types/c8y-ngx-components-operations-stepper-bulk-type-firmware.d.ts","default":"./fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs"},"./operations/stepper-bulk-type-software":{"types":"./types/c8y-ngx-components-operations-stepper-bulk-type-software.d.ts","default":"./fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs"},"./operations/stepper-frames":{"types":"./types/c8y-ngx-components-operations-stepper-frames.d.ts","default":"./fesm2022/c8y-ngx-components-operations-stepper-frames.mjs"},"./pending-mo-request":{"types":"./types/c8y-ngx-components-pending-mo-request.d.ts","default":"./fesm2022/c8y-ngx-components-pending-mo-request.mjs"},"./platform-configuration":{"types":"./types/c8y-ngx-components-platform-configuration.d.ts","default":"./fesm2022/c8y-ngx-components-platform-configuration.mjs"},"./polyfills":{"types":"./types/c8y-ngx-components-polyfills.d.ts","default":"./fesm2022/c8y-ngx-components-polyfills.mjs"},"./protocol-lpwan":{"types":"./types/c8y-ngx-components-protocol-lpwan.d.ts","default":"./fesm2022/c8y-ngx-components-protocol-lpwan.mjs"},"./protocol-opcua":{"types":"./types/c8y-ngx-components-protocol-opcua.d.ts","default":"./fesm2022/c8y-ngx-components-protocol-opcua.mjs"},"./protocol-opcua/mappings":{"types":"./types/c8y-ngx-components-protocol-opcua-mappings.d.ts","default":"./fesm2022/c8y-ngx-components-protocol-opcua-mappings.mjs"},"./register-device":{"types":"./types/c8y-ngx-components-register-device.d.ts","default":"./fesm2022/c8y-ngx-components-register-device.mjs"},"./remote-access/configurations":{"types":"./types/c8y-ngx-components-remote-access-configurations.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-configurations.mjs"},"./remote-access/data":{"types":"./types/c8y-ngx-components-remote-access-data.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-data.mjs"},"./remote-access/passthrough":{"types":"./types/c8y-ngx-components-remote-access-passthrough.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-passthrough.mjs"},"./remote-access/shared":{"types":"./types/c8y-ngx-components-remote-access-shared.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-shared.mjs"},"./remote-access/ssh":{"types":"./types/c8y-ngx-components-remote-access-ssh.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-ssh.mjs"},"./remote-access/ssh/remote-access-ssh-endpoint-modal":{"types":"./types/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs"},"./remote-access/telnet":{"types":"./types/c8y-ngx-components-remote-access-telnet.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-telnet.mjs"},"./remote-access/terminal-viewer":{"types":"./types/c8y-ngx-components-remote-access-terminal-viewer.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs"},"./remote-access/vnc":{"types":"./types/c8y-ngx-components-remote-access-vnc.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-vnc.mjs"},"./remote-access/vnc/remote-access-vnc-endpoint-modal":{"types":"./types/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs"},"./remote-access/vnc/vnc-viewer":{"types":"./types/c8y-ngx-components-remote-access-vnc-vnc-viewer.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs"},"./replace-device":{"types":"./types/c8y-ngx-components-replace-device.d.ts","default":"./fesm2022/c8y-ngx-components-replace-device.mjs"},"./replace-device/replace-device-wizard":{"types":"./types/c8y-ngx-components-replace-device-replace-device-wizard.d.ts","default":"./fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs"},"./report-dashboard":{"types":"./types/c8y-ngx-components-report-dashboard.d.ts","default":"./fesm2022/c8y-ngx-components-report-dashboard.mjs"},"./reports":{"types":"./types/c8y-ngx-components-reports.d.ts","default":"./fesm2022/c8y-ngx-components-reports.mjs"},"./repository":{"types":"./types/c8y-ngx-components-repository.d.ts","default":"./fesm2022/c8y-ngx-components-repository.mjs"},"./repository/configuration":{"types":"./types/c8y-ngx-components-repository-configuration.d.ts","default":"./fesm2022/c8y-ngx-components-repository-configuration.mjs"},"./repository/firmware":{"types":"./types/c8y-ngx-components-repository-firmware.d.ts","default":"./fesm2022/c8y-ngx-components-repository-firmware.mjs"},"./repository/shared":{"types":"./types/c8y-ngx-components-repository-shared.d.ts","default":"./fesm2022/c8y-ngx-components-repository-shared.mjs"},"./repository/software":{"types":"./types/c8y-ngx-components-repository-software.d.ts","default":"./fesm2022/c8y-ngx-components-repository-software.mjs"},"./search":{"types":"./types/c8y-ngx-components-search.d.ts","default":"./fesm2022/c8y-ngx-components-search.mjs"},"./sensor-phone":{"types":"./types/c8y-ngx-components-sensor-phone.d.ts","default":"./fesm2022/c8y-ngx-components-sensor-phone.mjs"},"./sensor-phone/sensor-phone-modal":{"types":"./types/c8y-ngx-components-sensor-phone-sensor-phone-modal.d.ts","default":"./fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs"},"./services":{"types":"./types/c8y-ngx-components-services.d.ts","default":"./fesm2022/c8y-ngx-components-services.mjs"},"./services/service-command-tab":{"types":"./types/c8y-ngx-components-services-service-command-tab.d.ts","default":"./fesm2022/c8y-ngx-components-services-service-command-tab.mjs"},"./services/shared":{"types":"./types/c8y-ngx-components-services-shared.d.ts","default":"./fesm2022/c8y-ngx-components-services-shared.mjs"},"./sigfox-device-registration":{"types":"./types/c8y-ngx-components-sigfox-device-registration.d.ts","default":"./fesm2022/c8y-ngx-components-sigfox-device-registration.mjs"},"./sms-gateway":{"types":"./types/c8y-ngx-components-sms-gateway.d.ts","default":"./fesm2022/c8y-ngx-components-sms-gateway.mjs"},"./static-assets":{"types":"./types/c8y-ngx-components-static-assets.d.ts","default":"./fesm2022/c8y-ngx-components-static-assets.mjs"},"./static-assets/data":{"types":"./types/c8y-ngx-components-static-assets-data.d.ts","default":"./fesm2022/c8y-ngx-components-static-assets-data.mjs"},"./static-assets/modal":{"types":"./types/c8y-ngx-components-static-assets-modal.d.ts","default":"./fesm2022/c8y-ngx-components-static-assets-modal.mjs"},"./sub-assets":{"types":"./types/c8y-ngx-components-sub-assets.d.ts","default":"./fesm2022/c8y-ngx-components-sub-assets.mjs"},"./tenants":{"types":"./types/c8y-ngx-components-tenants.d.ts","default":"./fesm2022/c8y-ngx-components-tenants.mjs"},"./time-context":{"types":"./types/c8y-ngx-components-time-context.d.ts","default":"./fesm2022/c8y-ngx-components-time-context.mjs"},"./tracking":{"types":"./types/c8y-ngx-components-tracking.d.ts","default":"./fesm2022/c8y-ngx-components-tracking.mjs"},"./translation-editor":{"types":"./types/c8y-ngx-components-translation-editor.d.ts","default":"./fesm2022/c8y-ngx-components-translation-editor.mjs"},"./translation-editor/data":{"types":"./types/c8y-ngx-components-translation-editor-data.d.ts","default":"./fesm2022/c8y-ngx-components-translation-editor-data.mjs"},"./translation-editor/lazy":{"types":"./types/c8y-ngx-components-translation-editor-lazy.d.ts","default":"./fesm2022/c8y-ngx-components-translation-editor-lazy.mjs"},"./trusted-certificates":{"types":"./types/c8y-ngx-components-trusted-certificates.d.ts","default":"./fesm2022/c8y-ngx-components-trusted-certificates.mjs"},"./upgrade":{"types":"./types/c8y-ngx-components-upgrade.d.ts","default":"./fesm2022/c8y-ngx-components-upgrade.mjs"},"./upgrade/upgraded-services":{"types":"./types/c8y-ngx-components-upgrade-upgraded-services.d.ts","default":"./fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs"},"./user-roles":{"types":"./types/c8y-ngx-components-user-roles.d.ts","default":"./fesm2022/c8y-ngx-components-user-roles.mjs"},"./widgets/cockpit-exports":{"types":"./types/c8y-ngx-components-widgets-cockpit-exports.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs"},"./widgets/definitions":{"types":"./types/c8y-ngx-components-widgets-definitions.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions.mjs"},"./widgets/definitions/alarms/alarm-list":{"types":"./types/c8y-ngx-components-widgets-definitions-alarms-alarm-list.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs"},"./widgets/definitions/alarms/alarm-widget-controls.presets":{"types":"./types/c8y-ngx-components-widgets-definitions-alarms-alarm-widget-controls.presets.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-widget-controls.presets.mjs"},"./widgets/definitions/alarms/all-critical-alarms":{"types":"./types/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs"},"./widgets/definitions/alarms/recent-alarms":{"types":"./types/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs"},"./widgets/definitions/applications":{"types":"./types/c8y-ngx-components-widgets-definitions-applications.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-applications.mjs"},"./widgets/definitions/asset-notes":{"types":"./types/c8y-ngx-components-widgets-definitions-asset-notes.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-asset-notes.mjs"},"./widgets/definitions/asset-table":{"types":"./types/c8y-ngx-components-widgets-definitions-asset-table.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-asset-table.mjs"},"./widgets/definitions/cockpit-legacy-welcome":{"types":"./types/c8y-ngx-components-widgets-definitions-cockpit-legacy-welcome.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-cockpit-legacy-welcome.mjs"},"./widgets/definitions/cockpit-welcome":{"types":"./types/c8y-ngx-components-widgets-definitions-cockpit-welcome.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-cockpit-welcome.mjs"},"./widgets/definitions/datapoints-graph":{"types":"./types/c8y-ngx-components-widgets-definitions-datapoints-graph.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs"},"./widgets/definitions/datapoints-list":{"types":"./types/c8y-ngx-components-widgets-definitions-datapoints-list.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-datapoints-list.mjs"},"./widgets/definitions/datapoints-table":{"types":"./types/c8y-ngx-components-widgets-definitions-datapoints-table.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs"},"./widgets/definitions/device-control-message":{"types":"./types/c8y-ngx-components-widgets-definitions-device-control-message.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-device-control-message.mjs"},"./widgets/definitions/device-management-welcome":{"types":"./types/c8y-ngx-components-widgets-definitions-device-management-welcome.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-device-management-welcome.mjs"},"./widgets/definitions/event-list":{"types":"./types/c8y-ngx-components-widgets-definitions-event-list.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-event-list.mjs"},"./widgets/definitions/help-and-service":{"types":"./types/c8y-ngx-components-widgets-definitions-help-and-service.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-help-and-service.mjs"},"./widgets/definitions/html-widget":{"types":"./types/c8y-ngx-components-widgets-definitions-html-widget.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs"},"./widgets/definitions/html-widget-ai-config":{"types":"./types/c8y-ngx-components-widgets-definitions-html-widget-ai-config.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs"},"./widgets/definitions/image":{"types":"./types/c8y-ngx-components-widgets-definitions-image.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-image.mjs"},"./widgets/definitions/info-gauge":{"types":"./types/c8y-ngx-components-widgets-definitions-info-gauge.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs"},"./widgets/definitions/kpi":{"types":"./types/c8y-ngx-components-widgets-definitions-kpi.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs"},"./widgets/definitions/linear-gauge":{"types":"./types/c8y-ngx-components-widgets-definitions-linear-gauge.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs"},"./widgets/definitions/map":{"types":"./types/c8y-ngx-components-widgets-definitions-map.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-map.mjs"},"./widgets/definitions/markdown":{"types":"./types/c8y-ngx-components-widgets-definitions-markdown.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs"},"./widgets/definitions/pie-chart":{"types":"./types/c8y-ngx-components-widgets-definitions-pie-chart.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-pie-chart.mjs"},"./widgets/definitions/quick-links":{"types":"./types/c8y-ngx-components-widgets-definitions-quick-links.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-quick-links.mjs"},"./widgets/definitions/radial-gauge":{"types":"./types/c8y-ngx-components-widgets-definitions-radial-gauge.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs"},"./widgets/definitions/scada":{"types":"./types/c8y-ngx-components-widgets-definitions-scada.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-scada.mjs"},"./widgets/definitions/three-d-rotation":{"types":"./types/c8y-ngx-components-widgets-definitions-three-d-rotation.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-three-d-rotation.mjs"},"./widgets/device-management-exports":{"types":"./types/c8y-ngx-components-widgets-device-management-exports.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-device-management-exports.mjs"},"./widgets/exports":{"types":"./types/c8y-ngx-components-widgets-exports.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-exports.mjs"},"./widgets/implementations/alarms":{"types":"./types/c8y-ngx-components-widgets-implementations-alarms.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs"},"./widgets/implementations/asset-notes":{"types":"./types/c8y-ngx-components-widgets-implementations-asset-notes.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs"},"./widgets/implementations/asset-table":{"types":"./types/c8y-ngx-components-widgets-implementations-asset-table.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs"},"./widgets/implementations/cockpit-legacy-welcome":{"types":"./types/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs"},"./widgets/implementations/cockpit-welcome":{"types":"./types/c8y-ngx-components-widgets-implementations-cockpit-welcome.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs"},"./widgets/implementations/datapoints-graph":{"types":"./types/c8y-ngx-components-widgets-implementations-datapoints-graph.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs"},"./widgets/implementations/datapoints-list":{"types":"./types/c8y-ngx-components-widgets-implementations-datapoints-list.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs"},"./widgets/implementations/datapoints-table":{"types":"./types/c8y-ngx-components-widgets-implementations-datapoints-table.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs"},"./widgets/implementations/device-control-message":{"types":"./types/c8y-ngx-components-widgets-implementations-device-control-message.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs"},"./widgets/implementations/device-management-welcome":{"types":"./types/c8y-ngx-components-widgets-implementations-device-management-welcome.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs"},"./widgets/implementations/events":{"types":"./types/c8y-ngx-components-widgets-implementations-events.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-events.mjs"},"./widgets/implementations/help-and-service-widget":{"types":"./types/c8y-ngx-components-widgets-implementations-help-and-service-widget.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs"},"./widgets/implementations/html-widget":{"types":"./types/c8y-ngx-components-widgets-implementations-html-widget.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs"},"./widgets/implementations/image":{"types":"./types/c8y-ngx-components-widgets-implementations-image.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-image.mjs"},"./widgets/implementations/info-gauge":{"types":"./types/c8y-ngx-components-widgets-implementations-info-gauge.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs"},"./widgets/implementations/kpi":{"types":"./types/c8y-ngx-components-widgets-implementations-kpi.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs"},"./widgets/implementations/linear-gauge":{"types":"./types/c8y-ngx-components-widgets-implementations-linear-gauge.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs"},"./widgets/implementations/map":{"types":"./types/c8y-ngx-components-widgets-implementations-map.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-map.mjs"},"./widgets/implementations/markdown":{"types":"./types/c8y-ngx-components-widgets-implementations-markdown.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs"},"./widgets/implementations/pie-chart":{"types":"./types/c8y-ngx-components-widgets-implementations-pie-chart.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs"},"./widgets/implementations/quick-links":{"types":"./types/c8y-ngx-components-widgets-implementations-quick-links.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs"},"./widgets/implementations/scada":{"types":"./types/c8y-ngx-components-widgets-implementations-scada.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-scada.mjs"},"./widgets/implementations/three-d-rotation":{"types":"./types/c8y-ngx-components-widgets-implementations-three-d-rotation.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs"},"./widgets/implementations/three-d-rotation/lazy-box-model":{"types":"./types/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-box-model.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-box-model.mjs"},"./widgets/implementations/three-d-rotation/lazy-phone-model":{"types":"./types/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-phone-model.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-phone-model.mjs"},"./widgets/import-export-config":{"types":"./types/c8y-ngx-components-widgets-import-export-config.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-import-export-config.mjs"},"./widgets/widget-providers":{"types":"./types/c8y-ngx-components-widgets-widget-providers.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-widget-providers.mjs"}},"sideEffects":false,"type":"module"}
|
|
1
|
+
{"name":"@c8y/ngx-components","version":"1024.19.3","license":"Apache-2.0","author":"Cumulocity","description":"Angular modules for Cumulocity IoT applications","keywords":["Cumulocity","IoT","m2m","Angular","Components"],"peerDependencies":{"@angular/cdk":"^21.0.0","@angular/common":"^21.0.0","@angular/core":"^21.0.0","@angular/forms":"^21.0.0","@angular/platform-browser":"^21.0.0","@angular/router":"^21.0.0","@angular/upgrade":"^21.0.0","@c8y/bootstrap":"1024.19.3","@c8y/client":"1024.19.3","@novnc/novnc":"1.5.0","@xterm/addon-fit":"0.10.0","@xterm/xterm":"5.5.0","dompurify":"3.4.0","gridstack":"^12.4.2","leaflet":"^1.9.4","lz-string":"1.5.0","monaco-editor":">= 0.31.0","rxjs":"7.8.2"},"dependencies":{"@ngx-formly/core":"6.1.3","@ngx-translate/core":"17.0.0","@zip.js/zip.js":"2.7.71","ajv":"^8.18.0","ajv-formats":"3.0.1","angularx-qrcode":"21.0.5","chroma-js":"3.1.2","echarts":"6.1.0","file-saver":"2.0.5","libphonenumber-js":"1.12.10","lodash-es":"^4.18.1","marked":"16.3.0","ngx-bootstrap":"21.0.1","ngx-echarts":"21.0.0","semver":"~7.7.1","three":"0.173.0","tslib":"^2.6.3"},"module":"fesm2022/c8y-ngx-components.mjs","typings":"types/c8y-ngx-components.d.ts","exports":{"./locales/de.po":"./locales/de.po","./locales/en.po":"./locales/en.po","./locales/es.po":"./locales/es.po","./locales/fr.po":"./locales/fr.po","./locales/ja_JP.po":"./locales/ja_JP.po","./locales/ko.po":"./locales/ko.po","./locales/nl.po":"./locales/nl.po","./locales/pt_BR.po":"./locales/pt_BR.po","./locales/zh_CN.po":"./locales/zh_CN.po","./locales/zh_TW.po":"./locales/zh_TW.po","./locales/pl.po":"./locales/pl.po","./locales/en_US.po":"./locales/en_US.po","./package.json":{"default":"./package.json"},".":{"types":"./types/c8y-ngx-components.d.ts","default":"./fesm2022/c8y-ngx-components.mjs"},"./actility-device-registration":{"types":"./types/c8y-ngx-components-actility-device-registration.d.ts","default":"./fesm2022/c8y-ngx-components-actility-device-registration.mjs"},"./advanced-software-management":{"types":"./types/c8y-ngx-components-advanced-software-management.d.ts","default":"./fesm2022/c8y-ngx-components-advanced-software-management.mjs"},"./ai":{"types":"./types/c8y-ngx-components-ai.d.ts","default":"./fesm2022/c8y-ngx-components-ai.mjs"},"./ai/agent-chat":{"types":"./types/c8y-ngx-components-ai-agent-chat.d.ts","default":"./fesm2022/c8y-ngx-components-ai-agent-chat.mjs"},"./ai/agents/html":{"types":"./types/c8y-ngx-components-ai-agents-html.d.ts","default":"./fesm2022/c8y-ngx-components-ai-agents-html.mjs"},"./ai/agents/scada":{"types":"./types/c8y-ngx-components-ai-agents-scada.d.ts","default":"./fesm2022/c8y-ngx-components-ai-agents-scada.mjs"},"./ai/ai-chat":{"types":"./types/c8y-ngx-components-ai-ai-chat.d.ts","default":"./fesm2022/c8y-ngx-components-ai-ai-chat.mjs"},"./alarm-event-selector":{"types":"./types/c8y-ngx-components-alarm-event-selector.d.ts","default":"./fesm2022/c8y-ngx-components-alarm-event-selector.mjs"},"./alarms":{"types":"./types/c8y-ngx-components-alarms.d.ts","default":"./fesm2022/c8y-ngx-components-alarms.mjs"},"./alarms/cockpit":{"types":"./types/c8y-ngx-components-alarms-cockpit.d.ts","default":"./fesm2022/c8y-ngx-components-alarms-cockpit.mjs"},"./alarms/devicemanagement":{"types":"./types/c8y-ngx-components-alarms-devicemanagement.d.ts","default":"./fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs"},"./api":{"types":"./types/c8y-ngx-components-api.d.ts","default":"./fesm2022/c8y-ngx-components-api.mjs"},"./app-logs":{"types":"./types/c8y-ngx-components-app-logs.d.ts","default":"./fesm2022/c8y-ngx-components-app-logs.mjs"},"./application-access/list":{"types":"./types/c8y-ngx-components-application-access-list.d.ts","default":"./fesm2022/c8y-ngx-components-application-access-list.mjs"},"./application-access/user":{"types":"./types/c8y-ngx-components-application-access-user.d.ts","default":"./fesm2022/c8y-ngx-components-application-access-user.mjs"},"./application-access/user/application-access-user-details-wrapper":{"types":"./types/c8y-ngx-components-application-access-user-application-access-user-details-wrapper.d.ts","default":"./fesm2022/c8y-ngx-components-application-access-user-application-access-user-details-wrapper.mjs"},"./application-select":{"types":"./types/c8y-ngx-components-application-select.d.ts","default":"./fesm2022/c8y-ngx-components-application-select.mjs"},"./asset-properties":{"types":"./types/c8y-ngx-components-asset-properties.d.ts","default":"./fesm2022/c8y-ngx-components-asset-properties.mjs"},"./assets-navigator":{"types":"./types/c8y-ngx-components-assets-navigator.d.ts","default":"./fesm2022/c8y-ngx-components-assets-navigator.mjs"},"./auth-configuration":{"types":"./types/c8y-ngx-components-auth-configuration.d.ts","default":"./fesm2022/c8y-ngx-components-auth-configuration.mjs"},"./binary-file-download":{"types":"./types/c8y-ngx-components-binary-file-download.d.ts","default":"./fesm2022/c8y-ngx-components-binary-file-download.mjs"},"./bookmarks":{"types":"./types/c8y-ngx-components-bookmarks.d.ts","default":"./fesm2022/c8y-ngx-components-bookmarks.mjs"},"./branding/base-branding":{"types":"./types/c8y-ngx-components-branding-base-branding.d.ts","default":"./fesm2022/c8y-ngx-components-branding-base-branding.mjs"},"./branding/dark-theme":{"types":"./types/c8y-ngx-components-branding-dark-theme.d.ts","default":"./fesm2022/c8y-ngx-components-branding-dark-theme.mjs"},"./branding/extra-css-branding-editor":{"types":"./types/c8y-ngx-components-branding-extra-css-branding-editor.d.ts","default":"./fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs"},"./branding/plain-branding-editor":{"types":"./types/c8y-ngx-components-branding-plain-branding-editor.d.ts","default":"./fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs"},"./branding/plain-branding-editor/lazy":{"types":"./types/c8y-ngx-components-branding-plain-branding-editor-lazy.d.ts","default":"./fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs"},"./branding/shared":{"types":"./types/c8y-ngx-components-branding-shared.d.ts","default":"./fesm2022/c8y-ngx-components-branding-shared.mjs"},"./branding/shared/data":{"types":"./types/c8y-ngx-components-branding-shared-data.d.ts","default":"./fesm2022/c8y-ngx-components-branding-shared-data.mjs"},"./branding/shared/lazy":{"types":"./types/c8y-ngx-components-branding-shared-lazy.d.ts","default":"./fesm2022/c8y-ngx-components-branding-shared-lazy.mjs"},"./branding/shared/lazy/add-branding-modal":{"types":"./types/c8y-ngx-components-branding-shared-lazy-add-branding-modal.d.ts","default":"./fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs"},"./child-devices":{"types":"./types/c8y-ngx-components-child-devices.d.ts","default":"./fesm2022/c8y-ngx-components-child-devices.mjs"},"./cockpit-config":{"types":"./types/c8y-ngx-components-cockpit-config.d.ts","default":"./fesm2022/c8y-ngx-components-cockpit-config.mjs"},"./computed-asset-properties":{"types":"./types/c8y-ngx-components-computed-asset-properties.d.ts","default":"./fesm2022/c8y-ngx-components-computed-asset-properties.mjs"},"./connectivity":{"types":"./types/c8y-ngx-components-connectivity.d.ts","default":"./fesm2022/c8y-ngx-components-connectivity.mjs"},"./context-dashboard":{"types":"./types/c8y-ngx-components-context-dashboard.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard.mjs"},"./context-dashboard-state":{"types":"./types/c8y-ngx-components-context-dashboard-state.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-state.mjs"},"./context-dashboard/asset/add":{"types":"./types/c8y-ngx-components-context-dashboard-asset-add.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs"},"./context-dashboard/asset/view":{"types":"./types/c8y-ngx-components-context-dashboard-asset-view.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs"},"./context-dashboard/cockpit-home-dashboard":{"types":"./types/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs"},"./context-dashboard/device/add":{"types":"./types/c8y-ngx-components-context-dashboard-device-add.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs"},"./context-dashboard/device/view":{"types":"./types/c8y-ngx-components-context-dashboard-device-view.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs"},"./context-dashboard/devicemanagement":{"types":"./types/c8y-ngx-components-context-dashboard-devicemanagement.d.ts","default":"./fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs"},"./dashboard-details-advanced-tab":{"types":"./types/c8y-ngx-components-dashboard-details-advanced-tab.d.ts","default":"./fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs"},"./dashboard-manager":{"types":"./types/c8y-ngx-components-dashboard-manager.d.ts","default":"./fesm2022/c8y-ngx-components-dashboard-manager.mjs"},"./dashboard-manager/devicemanagement":{"types":"./types/c8y-ngx-components-dashboard-manager-devicemanagement.d.ts","default":"./fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs"},"./data-broker":{"types":"./types/c8y-ngx-components-data-broker.d.ts","default":"./fesm2022/c8y-ngx-components-data-broker.mjs"},"./data-grid-columns":{"types":"./types/c8y-ngx-components-data-grid-columns.d.ts","default":"./fesm2022/c8y-ngx-components-data-grid-columns.mjs"},"./data-grid-columns/asset-type":{"types":"./types/c8y-ngx-components-data-grid-columns-asset-type.d.ts","default":"./fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs"},"./data-preparation":{"types":"./types/c8y-ngx-components-data-preparation.d.ts","default":"./fesm2022/c8y-ngx-components-data-preparation.mjs"},"./datapoint-explorer":{"types":"./types/c8y-ngx-components-datapoint-explorer.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-explorer.mjs"},"./datapoint-explorer/devicemanagement":{"types":"./types/c8y-ngx-components-datapoint-explorer-devicemanagement.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-explorer-devicemanagement.mjs"},"./datapoint-explorer/view":{"types":"./types/c8y-ngx-components-datapoint-explorer-view.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs"},"./datapoint-library":{"types":"./types/c8y-ngx-components-datapoint-library.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-library.mjs"},"./datapoint-library/details":{"types":"./types/c8y-ngx-components-datapoint-library-details.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-library-details.mjs"},"./datapoint-library/list":{"types":"./types/c8y-ngx-components-datapoint-library-list.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-library-list.mjs"},"./datapoint-library/model":{"types":"./types/c8y-ngx-components-datapoint-library-model.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-library-model.mjs"},"./datapoint-library/services":{"types":"./types/c8y-ngx-components-datapoint-library-services.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-library-services.mjs"},"./datapoint-selector":{"types":"./types/c8y-ngx-components-datapoint-selector.d.ts","default":"./fesm2022/c8y-ngx-components-datapoint-selector.mjs"},"./datapoints-export-selector":{"types":"./types/c8y-ngx-components-datapoints-export-selector.d.ts","default":"./fesm2022/c8y-ngx-components-datapoints-export-selector.mjs"},"./default-subscriptions":{"types":"./types/c8y-ngx-components-default-subscriptions.d.ts","default":"./fesm2022/c8y-ngx-components-default-subscriptions.mjs"},"./device-enrolment":{"types":"./types/c8y-ngx-components-device-enrolment.d.ts","default":"./fesm2022/c8y-ngx-components-device-enrolment.mjs"},"./device-enrolment/modal":{"types":"./types/c8y-ngx-components-device-enrolment-modal.d.ts","default":"./fesm2022/c8y-ngx-components-device-enrolment-modal.mjs"},"./device-grid":{"types":"./types/c8y-ngx-components-device-grid.d.ts","default":"./fesm2022/c8y-ngx-components-device-grid.mjs"},"./device-list":{"types":"./types/c8y-ngx-components-device-list.d.ts","default":"./fesm2022/c8y-ngx-components-device-list.mjs"},"./device-map":{"types":"./types/c8y-ngx-components-device-map.d.ts","default":"./fesm2022/c8y-ngx-components-device-map.mjs"},"./device-profile":{"types":"./types/c8y-ngx-components-device-profile.d.ts","default":"./fesm2022/c8y-ngx-components-device-profile.mjs"},"./device-protocol-object-mappings":{"types":"./types/c8y-ngx-components-device-protocol-object-mappings.d.ts","default":"./fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs"},"./device-protocols":{"types":"./types/c8y-ngx-components-device-protocols.d.ts","default":"./fesm2022/c8y-ngx-components-device-protocols.mjs"},"./device-provisioned-certificates":{"types":"./types/c8y-ngx-components-device-provisioned-certificates.d.ts","default":"./fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs"},"./device-shell":{"types":"./types/c8y-ngx-components-device-shell.d.ts","default":"./fesm2022/c8y-ngx-components-device-shell.mjs"},"./diagnostics":{"types":"./types/c8y-ngx-components-diagnostics.d.ts","default":"./fesm2022/c8y-ngx-components-diagnostics.mjs"},"./echart":{"types":"./types/c8y-ngx-components-echart.d.ts","default":"./fesm2022/c8y-ngx-components-echart.mjs"},"./echart/models":{"types":"./types/c8y-ngx-components-echart-models.d.ts","default":"./fesm2022/c8y-ngx-components-echart-models.mjs"},"./ecosystem":{"types":"./types/c8y-ngx-components-ecosystem.d.ts","default":"./fesm2022/c8y-ngx-components-ecosystem.mjs"},"./ecosystem/application-plugins":{"types":"./types/c8y-ngx-components-ecosystem-application-plugins.d.ts","default":"./fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs"},"./ecosystem/archived-confirm":{"types":"./types/c8y-ngx-components-ecosystem-archived-confirm.d.ts","default":"./fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs"},"./ecosystem/license-confirm":{"types":"./types/c8y-ngx-components-ecosystem-license-confirm.d.ts","default":"./fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs"},"./ecosystem/plugin-setup-stepper":{"types":"./types/c8y-ngx-components-ecosystem-plugin-setup-stepper.d.ts","default":"./fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs"},"./ecosystem/shared":{"types":"./types/c8y-ngx-components-ecosystem-shared.d.ts","default":"./fesm2022/c8y-ngx-components-ecosystem-shared.mjs"},"./editor":{"types":"./types/c8y-ngx-components-editor.d.ts","default":"./fesm2022/c8y-ngx-components-editor.mjs"},"./events":{"types":"./types/c8y-ngx-components-events.d.ts","default":"./fesm2022/c8y-ngx-components-events.mjs"},"./events/cockpit":{"types":"./types/c8y-ngx-components-events-cockpit.d.ts","default":"./fesm2022/c8y-ngx-components-events-cockpit.mjs"},"./events/devicemanagement":{"types":"./types/c8y-ngx-components-events-devicemanagement.d.ts","default":"./fesm2022/c8y-ngx-components-events-devicemanagement.mjs"},"./events/events-timeline":{"types":"./types/c8y-ngx-components-events-events-timeline.d.ts","default":"./fesm2022/c8y-ngx-components-events-events-timeline.mjs"},"./exports":{"types":"./types/c8y-ngx-components-exports.d.ts","default":"./fesm2022/c8y-ngx-components-exports.mjs"},"./exports/list":{"types":"./types/c8y-ngx-components-exports-list.d.ts","default":"./fesm2022/c8y-ngx-components-exports-list.mjs"},"./feature-toggles":{"types":"./types/c8y-ngx-components-feature-toggles.d.ts","default":"./fesm2022/c8y-ngx-components-feature-toggles.mjs"},"./feature-toggles/list":{"types":"./types/c8y-ngx-components-feature-toggles-list.d.ts","default":"./fesm2022/c8y-ngx-components-feature-toggles-list.mjs"},"./file-preview":{"types":"./types/c8y-ngx-components-file-preview.d.ts","default":"./fesm2022/c8y-ngx-components-file-preview.mjs"},"./files-repository":{"types":"./types/c8y-ngx-components-files-repository.d.ts","default":"./fesm2022/c8y-ngx-components-files-repository.mjs"},"./gettext":{"types":"./types/c8y-ngx-components-gettext.d.ts","default":"./fesm2022/c8y-ngx-components-gettext.mjs"},"./global-context":{"types":"./types/c8y-ngx-components-global-context.d.ts","default":"./fesm2022/c8y-ngx-components-global-context.mjs"},"./group-breadcrumbs":{"types":"./types/c8y-ngx-components-group-breadcrumbs.d.ts","default":"./fesm2022/c8y-ngx-components-group-breadcrumbs.mjs"},"./icon-selector":{"types":"./types/c8y-ngx-components-icon-selector.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector.mjs"},"./icon-selector/icons":{"types":"./types/c8y-ngx-components-icon-selector-icons.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons.mjs"},"./icon-selector/icons/arrows":{"types":"./types/c8y-ngx-components-icon-selector-icons-arrows.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-arrows.mjs"},"./icon-selector/icons/city":{"types":"./types/c8y-ngx-components-icon-selector-icons-city.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-city.mjs"},"./icon-selector/icons/data":{"types":"./types/c8y-ngx-components-icon-selector-icons-data.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-data.mjs"},"./icon-selector/icons/dateAndTime":{"types":"./types/c8y-ngx-components-icon-selector-icons-dateAndTime.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-dateAndTime.mjs"},"./icon-selector/icons/devicesAndSensors":{"types":"./types/c8y-ngx-components-icon-selector-icons-devicesAndSensors.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-devicesAndSensors.mjs"},"./icon-selector/icons/ecommerce":{"types":"./types/c8y-ngx-components-icon-selector-icons-ecommerce.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-ecommerce.mjs"},"./icon-selector/icons/editing":{"types":"./types/c8y-ngx-components-icon-selector-icons-editing.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-editing.mjs"},"./icon-selector/icons/filesAndFolders":{"types":"./types/c8y-ngx-components-icon-selector-icons-filesAndFolders.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-filesAndFolders.mjs"},"./icon-selector/icons/finance":{"types":"./types/c8y-ngx-components-icon-selector-icons-finance.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-finance.mjs"},"./icon-selector/icons/hands":{"types":"./types/c8y-ngx-components-icon-selector-icons-hands.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-hands.mjs"},"./icon-selector/icons/location":{"types":"./types/c8y-ngx-components-icon-selector-icons-location.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-location.mjs"},"./icon-selector/icons/messaging":{"types":"./types/c8y-ngx-components-icon-selector-icons-messaging.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-messaging.mjs"},"./icon-selector/icons/multimedia":{"types":"./types/c8y-ngx-components-icon-selector-icons-multimedia.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-multimedia.mjs"},"./icon-selector/icons/network":{"types":"./types/c8y-ngx-components-icon-selector-icons-network.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-network.mjs"},"./icon-selector/icons/office":{"types":"./types/c8y-ngx-components-icon-selector-icons-office.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-office.mjs"},"./icon-selector/icons/people":{"types":"./types/c8y-ngx-components-icon-selector-icons-people.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-people.mjs"},"./icon-selector/icons/platform":{"types":"./types/c8y-ngx-components-icon-selector-icons-platform.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-platform.mjs"},"./icon-selector/icons/programming":{"types":"./types/c8y-ngx-components-icon-selector-icons-programming.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-programming.mjs"},"./icon-selector/icons/security":{"types":"./types/c8y-ngx-components-icon-selector-icons-security.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-security.mjs"},"./icon-selector/icons/transport":{"types":"./types/c8y-ngx-components-icon-selector-icons-transport.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-transport.mjs"},"./icon-selector/icons/userInterface":{"types":"./types/c8y-ngx-components-icon-selector-icons-userInterface.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-userInterface.mjs"},"./icon-selector/icons/weather":{"types":"./types/c8y-ngx-components-icon-selector-icons-weather.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-icons-weather.mjs"},"./icon-selector/model":{"types":"./types/c8y-ngx-components-icon-selector-model.d.ts","default":"./fesm2022/c8y-ngx-components-icon-selector-model.mjs"},"./interval-picker":{"types":"./types/c8y-ngx-components-interval-picker.d.ts","default":"./fesm2022/c8y-ngx-components-interval-picker.mjs"},"./lazy/three":{"types":"./types/c8y-ngx-components-lazy-three.d.ts","default":"./fesm2022/c8y-ngx-components-lazy-three.mjs"},"./lazy/three-orbit-controls":{"types":"./types/c8y-ngx-components-lazy-three-orbit-controls.d.ts","default":"./fesm2022/c8y-ngx-components-lazy-three-orbit-controls.mjs"},"./location":{"types":"./types/c8y-ngx-components-location.d.ts","default":"./fesm2022/c8y-ngx-components-location.mjs"},"./loriot-device-registration":{"types":"./types/c8y-ngx-components-loriot-device-registration.d.ts","default":"./fesm2022/c8y-ngx-components-loriot-device-registration.mjs"},"./map":{"types":"./types/c8y-ngx-components-map.d.ts","default":"./fesm2022/c8y-ngx-components-map.mjs"},"./messaging-management":{"types":"./types/c8y-ngx-components-messaging-management.d.ts","default":"./fesm2022/c8y-ngx-components-messaging-management.mjs"},"./module-federation-exports/assets-navigator":{"types":"./types/c8y-ngx-components-module-federation-exports-assets-navigator.d.ts","default":"./fesm2022/c8y-ngx-components-module-federation-exports-assets-navigator.mjs"},"./operation-picker":{"types":"./types/c8y-ngx-components-operation-picker.d.ts","default":"./fesm2022/c8y-ngx-components-operation-picker.mjs"},"./operations":{"types":"./types/c8y-ngx-components-operations.d.ts","default":"./fesm2022/c8y-ngx-components-operations.mjs"},"./operations/bulk-operation-from-single":{"types":"./types/c8y-ngx-components-operations-bulk-operation-from-single.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs"},"./operations/bulk-operation-list-item":{"types":"./types/c8y-ngx-components-operations-bulk-operation-list-item.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs"},"./operations/bulk-operation-modal-details":{"types":"./types/c8y-ngx-components-operations-bulk-operation-modal-details.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operation-modal-details.mjs"},"./operations/bulk-operation-scheduler":{"types":"./types/c8y-ngx-components-operations-bulk-operation-scheduler.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs"},"./operations/bulk-operation-stepper":{"types":"./types/c8y-ngx-components-operations-bulk-operation-stepper.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs"},"./operations/bulk-operations-list":{"types":"./types/c8y-ngx-components-operations-bulk-operations-list.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs"},"./operations/bulk-operations-service":{"types":"./types/c8y-ngx-components-operations-bulk-operations-service.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs"},"./operations/bulk-operations-stepper-container":{"types":"./types/c8y-ngx-components-operations-bulk-operations-stepper-container.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs"},"./operations/bulk-single-operations-list":{"types":"./types/c8y-ngx-components-operations-bulk-single-operations-list.d.ts","default":"./fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs"},"./operations/create-bulk-operation-details":{"types":"./types/c8y-ngx-components-operations-create-bulk-operation-details.d.ts","default":"./fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs"},"./operations/device-selector":{"types":"./types/c8y-ngx-components-operations-device-selector.d.ts","default":"./fesm2022/c8y-ngx-components-operations-device-selector.mjs"},"./operations/grid-columns":{"types":"./types/c8y-ngx-components-operations-grid-columns.d.ts","default":"./fesm2022/c8y-ngx-components-operations-grid-columns.mjs"},"./operations/operation-details":{"types":"./types/c8y-ngx-components-operations-operation-details.d.ts","default":"./fesm2022/c8y-ngx-components-operations-operation-details.mjs"},"./operations/operation-summary":{"types":"./types/c8y-ngx-components-operations-operation-summary.d.ts","default":"./fesm2022/c8y-ngx-components-operations-operation-summary.mjs"},"./operations/operations-list":{"types":"./types/c8y-ngx-components-operations-operations-list.d.ts","default":"./fesm2022/c8y-ngx-components-operations-operations-list.mjs"},"./operations/operations-list-item-details":{"types":"./types/c8y-ngx-components-operations-operations-list-item-details.d.ts","default":"./fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs"},"./operations/operations-timeline":{"types":"./types/c8y-ngx-components-operations-operations-timeline.d.ts","default":"./fesm2022/c8y-ngx-components-operations-operations-timeline.mjs"},"./operations/product-experience":{"types":"./types/c8y-ngx-components-operations-product-experience.d.ts","default":"./fesm2022/c8y-ngx-components-operations-product-experience.mjs"},"./operations/shared":{"types":"./types/c8y-ngx-components-operations-shared.d.ts","default":"./fesm2022/c8y-ngx-components-operations-shared.mjs"},"./operations/status-filter":{"types":"./types/c8y-ngx-components-operations-status-filter.d.ts","default":"./fesm2022/c8y-ngx-components-operations-status-filter.mjs"},"./operations/stepper-bulk-type-configuration":{"types":"./types/c8y-ngx-components-operations-stepper-bulk-type-configuration.d.ts","default":"./fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs"},"./operations/stepper-bulk-type-device-profile":{"types":"./types/c8y-ngx-components-operations-stepper-bulk-type-device-profile.d.ts","default":"./fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs"},"./operations/stepper-bulk-type-firmware":{"types":"./types/c8y-ngx-components-operations-stepper-bulk-type-firmware.d.ts","default":"./fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs"},"./operations/stepper-bulk-type-software":{"types":"./types/c8y-ngx-components-operations-stepper-bulk-type-software.d.ts","default":"./fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs"},"./operations/stepper-frames":{"types":"./types/c8y-ngx-components-operations-stepper-frames.d.ts","default":"./fesm2022/c8y-ngx-components-operations-stepper-frames.mjs"},"./pending-mo-request":{"types":"./types/c8y-ngx-components-pending-mo-request.d.ts","default":"./fesm2022/c8y-ngx-components-pending-mo-request.mjs"},"./platform-configuration":{"types":"./types/c8y-ngx-components-platform-configuration.d.ts","default":"./fesm2022/c8y-ngx-components-platform-configuration.mjs"},"./polyfills":{"types":"./types/c8y-ngx-components-polyfills.d.ts","default":"./fesm2022/c8y-ngx-components-polyfills.mjs"},"./protocol-lpwan":{"types":"./types/c8y-ngx-components-protocol-lpwan.d.ts","default":"./fesm2022/c8y-ngx-components-protocol-lpwan.mjs"},"./protocol-opcua":{"types":"./types/c8y-ngx-components-protocol-opcua.d.ts","default":"./fesm2022/c8y-ngx-components-protocol-opcua.mjs"},"./protocol-opcua/mappings":{"types":"./types/c8y-ngx-components-protocol-opcua-mappings.d.ts","default":"./fesm2022/c8y-ngx-components-protocol-opcua-mappings.mjs"},"./register-device":{"types":"./types/c8y-ngx-components-register-device.d.ts","default":"./fesm2022/c8y-ngx-components-register-device.mjs"},"./remote-access/configurations":{"types":"./types/c8y-ngx-components-remote-access-configurations.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-configurations.mjs"},"./remote-access/data":{"types":"./types/c8y-ngx-components-remote-access-data.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-data.mjs"},"./remote-access/passthrough":{"types":"./types/c8y-ngx-components-remote-access-passthrough.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-passthrough.mjs"},"./remote-access/shared":{"types":"./types/c8y-ngx-components-remote-access-shared.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-shared.mjs"},"./remote-access/ssh":{"types":"./types/c8y-ngx-components-remote-access-ssh.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-ssh.mjs"},"./remote-access/ssh/remote-access-ssh-endpoint-modal":{"types":"./types/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs"},"./remote-access/telnet":{"types":"./types/c8y-ngx-components-remote-access-telnet.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-telnet.mjs"},"./remote-access/terminal-viewer":{"types":"./types/c8y-ngx-components-remote-access-terminal-viewer.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs"},"./remote-access/vnc":{"types":"./types/c8y-ngx-components-remote-access-vnc.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-vnc.mjs"},"./remote-access/vnc/remote-access-vnc-endpoint-modal":{"types":"./types/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs"},"./remote-access/vnc/vnc-viewer":{"types":"./types/c8y-ngx-components-remote-access-vnc-vnc-viewer.d.ts","default":"./fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs"},"./replace-device":{"types":"./types/c8y-ngx-components-replace-device.d.ts","default":"./fesm2022/c8y-ngx-components-replace-device.mjs"},"./replace-device/replace-device-wizard":{"types":"./types/c8y-ngx-components-replace-device-replace-device-wizard.d.ts","default":"./fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs"},"./report-dashboard":{"types":"./types/c8y-ngx-components-report-dashboard.d.ts","default":"./fesm2022/c8y-ngx-components-report-dashboard.mjs"},"./reports":{"types":"./types/c8y-ngx-components-reports.d.ts","default":"./fesm2022/c8y-ngx-components-reports.mjs"},"./repository":{"types":"./types/c8y-ngx-components-repository.d.ts","default":"./fesm2022/c8y-ngx-components-repository.mjs"},"./repository/configuration":{"types":"./types/c8y-ngx-components-repository-configuration.d.ts","default":"./fesm2022/c8y-ngx-components-repository-configuration.mjs"},"./repository/firmware":{"types":"./types/c8y-ngx-components-repository-firmware.d.ts","default":"./fesm2022/c8y-ngx-components-repository-firmware.mjs"},"./repository/shared":{"types":"./types/c8y-ngx-components-repository-shared.d.ts","default":"./fesm2022/c8y-ngx-components-repository-shared.mjs"},"./repository/software":{"types":"./types/c8y-ngx-components-repository-software.d.ts","default":"./fesm2022/c8y-ngx-components-repository-software.mjs"},"./search":{"types":"./types/c8y-ngx-components-search.d.ts","default":"./fesm2022/c8y-ngx-components-search.mjs"},"./sensor-phone":{"types":"./types/c8y-ngx-components-sensor-phone.d.ts","default":"./fesm2022/c8y-ngx-components-sensor-phone.mjs"},"./sensor-phone/sensor-phone-modal":{"types":"./types/c8y-ngx-components-sensor-phone-sensor-phone-modal.d.ts","default":"./fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs"},"./services":{"types":"./types/c8y-ngx-components-services.d.ts","default":"./fesm2022/c8y-ngx-components-services.mjs"},"./services/service-command-tab":{"types":"./types/c8y-ngx-components-services-service-command-tab.d.ts","default":"./fesm2022/c8y-ngx-components-services-service-command-tab.mjs"},"./services/shared":{"types":"./types/c8y-ngx-components-services-shared.d.ts","default":"./fesm2022/c8y-ngx-components-services-shared.mjs"},"./sigfox-device-registration":{"types":"./types/c8y-ngx-components-sigfox-device-registration.d.ts","default":"./fesm2022/c8y-ngx-components-sigfox-device-registration.mjs"},"./sms-gateway":{"types":"./types/c8y-ngx-components-sms-gateway.d.ts","default":"./fesm2022/c8y-ngx-components-sms-gateway.mjs"},"./static-assets":{"types":"./types/c8y-ngx-components-static-assets.d.ts","default":"./fesm2022/c8y-ngx-components-static-assets.mjs"},"./static-assets/data":{"types":"./types/c8y-ngx-components-static-assets-data.d.ts","default":"./fesm2022/c8y-ngx-components-static-assets-data.mjs"},"./static-assets/modal":{"types":"./types/c8y-ngx-components-static-assets-modal.d.ts","default":"./fesm2022/c8y-ngx-components-static-assets-modal.mjs"},"./sub-assets":{"types":"./types/c8y-ngx-components-sub-assets.d.ts","default":"./fesm2022/c8y-ngx-components-sub-assets.mjs"},"./tenants":{"types":"./types/c8y-ngx-components-tenants.d.ts","default":"./fesm2022/c8y-ngx-components-tenants.mjs"},"./time-context":{"types":"./types/c8y-ngx-components-time-context.d.ts","default":"./fesm2022/c8y-ngx-components-time-context.mjs"},"./tracking":{"types":"./types/c8y-ngx-components-tracking.d.ts","default":"./fesm2022/c8y-ngx-components-tracking.mjs"},"./translation-editor":{"types":"./types/c8y-ngx-components-translation-editor.d.ts","default":"./fesm2022/c8y-ngx-components-translation-editor.mjs"},"./translation-editor/data":{"types":"./types/c8y-ngx-components-translation-editor-data.d.ts","default":"./fesm2022/c8y-ngx-components-translation-editor-data.mjs"},"./translation-editor/lazy":{"types":"./types/c8y-ngx-components-translation-editor-lazy.d.ts","default":"./fesm2022/c8y-ngx-components-translation-editor-lazy.mjs"},"./trusted-certificates":{"types":"./types/c8y-ngx-components-trusted-certificates.d.ts","default":"./fesm2022/c8y-ngx-components-trusted-certificates.mjs"},"./upgrade":{"types":"./types/c8y-ngx-components-upgrade.d.ts","default":"./fesm2022/c8y-ngx-components-upgrade.mjs"},"./upgrade/upgraded-services":{"types":"./types/c8y-ngx-components-upgrade-upgraded-services.d.ts","default":"./fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs"},"./user-roles":{"types":"./types/c8y-ngx-components-user-roles.d.ts","default":"./fesm2022/c8y-ngx-components-user-roles.mjs"},"./widgets/cockpit-exports":{"types":"./types/c8y-ngx-components-widgets-cockpit-exports.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs"},"./widgets/definitions":{"types":"./types/c8y-ngx-components-widgets-definitions.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions.mjs"},"./widgets/definitions/alarms/alarm-list":{"types":"./types/c8y-ngx-components-widgets-definitions-alarms-alarm-list.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs"},"./widgets/definitions/alarms/alarm-widget-controls.presets":{"types":"./types/c8y-ngx-components-widgets-definitions-alarms-alarm-widget-controls.presets.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-widget-controls.presets.mjs"},"./widgets/definitions/alarms/all-critical-alarms":{"types":"./types/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs"},"./widgets/definitions/alarms/recent-alarms":{"types":"./types/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs"},"./widgets/definitions/applications":{"types":"./types/c8y-ngx-components-widgets-definitions-applications.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-applications.mjs"},"./widgets/definitions/asset-notes":{"types":"./types/c8y-ngx-components-widgets-definitions-asset-notes.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-asset-notes.mjs"},"./widgets/definitions/asset-table":{"types":"./types/c8y-ngx-components-widgets-definitions-asset-table.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-asset-table.mjs"},"./widgets/definitions/cockpit-legacy-welcome":{"types":"./types/c8y-ngx-components-widgets-definitions-cockpit-legacy-welcome.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-cockpit-legacy-welcome.mjs"},"./widgets/definitions/cockpit-welcome":{"types":"./types/c8y-ngx-components-widgets-definitions-cockpit-welcome.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-cockpit-welcome.mjs"},"./widgets/definitions/datapoints-graph":{"types":"./types/c8y-ngx-components-widgets-definitions-datapoints-graph.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs"},"./widgets/definitions/datapoints-list":{"types":"./types/c8y-ngx-components-widgets-definitions-datapoints-list.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-datapoints-list.mjs"},"./widgets/definitions/datapoints-table":{"types":"./types/c8y-ngx-components-widgets-definitions-datapoints-table.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs"},"./widgets/definitions/device-control-message":{"types":"./types/c8y-ngx-components-widgets-definitions-device-control-message.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-device-control-message.mjs"},"./widgets/definitions/device-management-welcome":{"types":"./types/c8y-ngx-components-widgets-definitions-device-management-welcome.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-device-management-welcome.mjs"},"./widgets/definitions/event-list":{"types":"./types/c8y-ngx-components-widgets-definitions-event-list.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-event-list.mjs"},"./widgets/definitions/help-and-service":{"types":"./types/c8y-ngx-components-widgets-definitions-help-and-service.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-help-and-service.mjs"},"./widgets/definitions/html-widget":{"types":"./types/c8y-ngx-components-widgets-definitions-html-widget.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs"},"./widgets/definitions/html-widget-ai-config":{"types":"./types/c8y-ngx-components-widgets-definitions-html-widget-ai-config.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs"},"./widgets/definitions/image":{"types":"./types/c8y-ngx-components-widgets-definitions-image.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-image.mjs"},"./widgets/definitions/info-gauge":{"types":"./types/c8y-ngx-components-widgets-definitions-info-gauge.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs"},"./widgets/definitions/kpi":{"types":"./types/c8y-ngx-components-widgets-definitions-kpi.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs"},"./widgets/definitions/linear-gauge":{"types":"./types/c8y-ngx-components-widgets-definitions-linear-gauge.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs"},"./widgets/definitions/map":{"types":"./types/c8y-ngx-components-widgets-definitions-map.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-map.mjs"},"./widgets/definitions/markdown":{"types":"./types/c8y-ngx-components-widgets-definitions-markdown.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs"},"./widgets/definitions/pie-chart":{"types":"./types/c8y-ngx-components-widgets-definitions-pie-chart.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-pie-chart.mjs"},"./widgets/definitions/quick-links":{"types":"./types/c8y-ngx-components-widgets-definitions-quick-links.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-quick-links.mjs"},"./widgets/definitions/radial-gauge":{"types":"./types/c8y-ngx-components-widgets-definitions-radial-gauge.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs"},"./widgets/definitions/scada":{"types":"./types/c8y-ngx-components-widgets-definitions-scada.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-scada.mjs"},"./widgets/definitions/three-d-rotation":{"types":"./types/c8y-ngx-components-widgets-definitions-three-d-rotation.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-definitions-three-d-rotation.mjs"},"./widgets/device-management-exports":{"types":"./types/c8y-ngx-components-widgets-device-management-exports.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-device-management-exports.mjs"},"./widgets/exports":{"types":"./types/c8y-ngx-components-widgets-exports.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-exports.mjs"},"./widgets/implementations/alarms":{"types":"./types/c8y-ngx-components-widgets-implementations-alarms.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs"},"./widgets/implementations/asset-notes":{"types":"./types/c8y-ngx-components-widgets-implementations-asset-notes.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs"},"./widgets/implementations/asset-table":{"types":"./types/c8y-ngx-components-widgets-implementations-asset-table.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs"},"./widgets/implementations/cockpit-legacy-welcome":{"types":"./types/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs"},"./widgets/implementations/cockpit-welcome":{"types":"./types/c8y-ngx-components-widgets-implementations-cockpit-welcome.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs"},"./widgets/implementations/datapoints-graph":{"types":"./types/c8y-ngx-components-widgets-implementations-datapoints-graph.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs"},"./widgets/implementations/datapoints-list":{"types":"./types/c8y-ngx-components-widgets-implementations-datapoints-list.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs"},"./widgets/implementations/datapoints-table":{"types":"./types/c8y-ngx-components-widgets-implementations-datapoints-table.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs"},"./widgets/implementations/device-control-message":{"types":"./types/c8y-ngx-components-widgets-implementations-device-control-message.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs"},"./widgets/implementations/device-management-welcome":{"types":"./types/c8y-ngx-components-widgets-implementations-device-management-welcome.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs"},"./widgets/implementations/events":{"types":"./types/c8y-ngx-components-widgets-implementations-events.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-events.mjs"},"./widgets/implementations/help-and-service-widget":{"types":"./types/c8y-ngx-components-widgets-implementations-help-and-service-widget.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs"},"./widgets/implementations/html-widget":{"types":"./types/c8y-ngx-components-widgets-implementations-html-widget.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs"},"./widgets/implementations/image":{"types":"./types/c8y-ngx-components-widgets-implementations-image.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-image.mjs"},"./widgets/implementations/info-gauge":{"types":"./types/c8y-ngx-components-widgets-implementations-info-gauge.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs"},"./widgets/implementations/kpi":{"types":"./types/c8y-ngx-components-widgets-implementations-kpi.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs"},"./widgets/implementations/linear-gauge":{"types":"./types/c8y-ngx-components-widgets-implementations-linear-gauge.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs"},"./widgets/implementations/map":{"types":"./types/c8y-ngx-components-widgets-implementations-map.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-map.mjs"},"./widgets/implementations/markdown":{"types":"./types/c8y-ngx-components-widgets-implementations-markdown.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs"},"./widgets/implementations/pie-chart":{"types":"./types/c8y-ngx-components-widgets-implementations-pie-chart.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs"},"./widgets/implementations/quick-links":{"types":"./types/c8y-ngx-components-widgets-implementations-quick-links.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs"},"./widgets/implementations/scada":{"types":"./types/c8y-ngx-components-widgets-implementations-scada.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-scada.mjs"},"./widgets/implementations/three-d-rotation":{"types":"./types/c8y-ngx-components-widgets-implementations-three-d-rotation.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs"},"./widgets/implementations/three-d-rotation/lazy-box-model":{"types":"./types/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-box-model.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-box-model.mjs"},"./widgets/implementations/three-d-rotation/lazy-phone-model":{"types":"./types/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-phone-model.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-phone-model.mjs"},"./widgets/import-export-config":{"types":"./types/c8y-ngx-components-widgets-import-export-config.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-import-export-config.mjs"},"./widgets/widget-providers":{"types":"./types/c8y-ngx-components-widgets-widget-providers.d.ts","default":"./fesm2022/c8y-ngx-components-widgets-widget-providers.mjs"}},"sideEffects":false,"type":"module"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-widgets-implementations-datapoints-graph.d.ts","sources":["../../widgets/implementations/datapoints-graph/datapoints-graph-config/datapoints-graph-widget-config.component.ts","../../widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.ts"],"mappings":";;;;;;;;;;;;;;;AAyDA,cAwBa,oCACX,YAAW,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS;;;AAKrD,sBAA2B,2BAA2B;AA4BtD,kBAAc,2BAA2B;gCAKb,WAAW;AAQvC;AACA;AACA;AACA;AACA;AAEA,YAAQ,+BAA+B;eAC5B,UAAU,CAAC,oCAAoC;AAC1D,8BAA0B,OAAO,CAAC,6BAA6B;AAC/D;AACA;sBACkB,kBAAkB;AACpC,0BAAoB,0BAAA,CAAA,uBAAA;oBACJ,UAAU;AAC1B,0BAAoB,aAAA,CAAA,MAAA,CAAA,kBAAA;;;;gBAmBN,OAAA;yBAgBO,aAAa;;AAYlC,0BACW,2BAA2B,aACzB,OAAO,YAAY,UAAU;AA+B1C,yCACa,IAAI,CAAC,2BAA2B;AAU7C,0CAAsC,8BAA8B;AAYpE,uDAAmD,iBAAiB;AAYpE;AAoBA;AAcA;AA2BA;oDA7OW,oCAAoC;sDAApC,oCAAoC;AAiPhD;;AC5PD,cAwBa,kCAAmC,YAAW,SAAS;AAwFhE;AACY;AACZ;AACA;AACA;AACA;YA5FM,oBAAoB;YACpB,oBAAoB;kBACd,YAAY;AAC1B,uBAAiB,MAAA,eAAA,WAAA,CAAA,eAAA;AACjB,uBAAiB,MAAA,eAAA,WAAA,CAAA,eAAA;AACjB,YAAQ,+BAA+B;AACvC,yBAAmB,GAAA,CAAA,yBAAA;AACnB;AACA;AACA;sBACkB,yBAAyB;0BACrB,oBAAoB;AAC1C,gBAAU,eAAA;AACV,2BAAqB,eAAA;AAIrB;AACA,sBAAgB,kBAAA;;AAGhB,iBAAW,aAAA,CAAA,cAAA;AACX,mBAAa,aAAA,CAAA,cAAA,CAAA,kBAAA;AACb,sBAAgB,aAAA,CAAA,cAAA;AAChB,oBAAc,aAAA,CAAA,cAAA,CAAA,UAAA;iDACsB,2BAAA;;;AAQpC;;AAEA,qBAAiB,cAAc,CAAC,mBAAmB;;AAEnD,mBAAe,cAAc,CAAC,mBAAmB;;AAEjD,0BAAoB,GAAA;AACpB;;;AAGG;AACH,iCAA2B,GAAA;AAE3B,sBAA2B,2BAA2B;;oBAeT,eAAe;AAC5D,mBAAe,2BAA2B;;AAE1C;;;;;;AAoBA;2BAGqB,gBAAgB,6BACY,yBAAyB,gCAClC,4BAA4B,qCACvB,iCAAiC,oCAClC,gCAAgC,OAC7D,iBAAiB;;
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-widgets-implementations-datapoints-graph.d.ts","sources":["../../widgets/implementations/datapoints-graph/datapoints-graph-config/datapoints-graph-widget-config.component.ts","../../widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.ts"],"mappings":";;;;;;;;;;;;;;;AAyDA,cAwBa,oCACX,YAAW,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS;;;AAKrD,sBAA2B,2BAA2B;AA4BtD,kBAAc,2BAA2B;gCAKb,WAAW;AAQvC;AACA;AACA;AACA;AACA;AAEA,YAAQ,+BAA+B;eAC5B,UAAU,CAAC,oCAAoC;AAC1D,8BAA0B,OAAO,CAAC,6BAA6B;AAC/D;AACA;sBACkB,kBAAkB;AACpC,0BAAoB,0BAAA,CAAA,uBAAA;oBACJ,UAAU;AAC1B,0BAAoB,aAAA,CAAA,MAAA,CAAA,kBAAA;;;;gBAmBN,OAAA;yBAgBO,aAAa;;AAYlC,0BACW,2BAA2B,aACzB,OAAO,YAAY,UAAU;AA+B1C,yCACa,IAAI,CAAC,2BAA2B;AAU7C,0CAAsC,8BAA8B;AAYpE,uDAAmD,iBAAiB;AAYpE;AAoBA;AAcA;AA2BA;oDA7OW,oCAAoC;sDAApC,oCAAoC;AAiPhD;;AC5PD,cAwBa,kCAAmC,YAAW,SAAS;AAwFhE;AACY;AACZ;AACA;AACA;AACA;YA5FM,oBAAoB;YACpB,oBAAoB;kBACd,YAAY;AAC1B,uBAAiB,MAAA,eAAA,WAAA,CAAA,eAAA;AACjB,uBAAiB,MAAA,eAAA,WAAA,CAAA,eAAA;AACjB,YAAQ,+BAA+B;AACvC,yBAAmB,GAAA,CAAA,yBAAA;AACnB;AACA;AACA;sBACkB,yBAAyB;0BACrB,oBAAoB;AAC1C,gBAAU,eAAA;AACV,2BAAqB,eAAA;AAIrB;AACA,sBAAgB,kBAAA;;AAGhB,iBAAW,aAAA,CAAA,cAAA;AACX,mBAAa,aAAA,CAAA,cAAA,CAAA,kBAAA;AACb,sBAAgB,aAAA,CAAA,cAAA;AAChB,oBAAc,aAAA,CAAA,cAAA,CAAA,UAAA;iDACsB,2BAAA;;;AAQpC;;AAEA,qBAAiB,cAAc,CAAC,mBAAmB;;AAEnD,mBAAe,cAAc,CAAC,mBAAmB;;AAEjD,0BAAoB,GAAA;AACpB;;;AAGG;AACH,iCAA2B,GAAA;AAE3B,sBAA2B,2BAA2B;;oBAeT,eAAe;AAC5D,mBAAe,2BAA2B;;AAE1C;;;;;;AAoBA;2BAGqB,gBAAgB,6BACY,yBAAyB,gCAClC,4BAA4B,qCACvB,iCAAiC,oCAClC,gCAAgC,OAC7D,iBAAiB;;AA4DhC;;;AAGG;+BACwB,2BAA2B;;iBASpB,kBAAkB;cAAQ,kBAAkB;AAAE;;AA+HhF,0CAAsC,8BAA8B;AAmEpE;;;;AAIG;AACH,qCACM,yBAAyB;;;;iCAaF,yBAAyB;AAItD,gBAAY,yBAAyB;kCAIP,cAAc,CAAC,mBAAmB;oCAOhC,yBAAyB;AAIzD,iCAA6B,yBAAyB;4CA0Bd,GAAG;AAiB3C,yBAAqB,uBAAuB;AAI5C;AAKA,4BAAwB,cAAc,CAAC,mBAAmB;yBA6DrC,cAAc,CAAC,mBAAmB;2BAgBhC,cAAc,CAAC,mBAAmB;AAgBzD,2BAAuB,yBAAyB;AA4BhD,0CAAsC,yBAAyB;AAS/D,4CAAwC,yBAAyB;AASjE,4BAAwB,oBAAoB;AAU5C,uCAAmC,oBAAoB;AA0CvD,+CAA2C,oBAAoB;AAa/D;wCAuBoC,cAAc,CAAC,mBAAmB;AAgBtE;AASA;AAuBA;AAuBA;AA4BA;AAaA;;;AAGG;AACH;;AAQA;AAeA;oDAhzBW,kCAAkC;sDAAlC,kCAAkC;AAqzB9C;;;;","names":[]}
|