@c8y/ngx-components 1022.16.2 → 1022.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/asset-properties/asset-properties.model.d.ts +117 -0
- package/asset-properties/asset-properties.model.d.ts.map +1 -0
- package/asset-properties/asset-properties.service.d.ts +72 -0
- package/asset-properties/asset-properties.service.d.ts.map +1 -0
- package/asset-properties/asset-property-list/asset-property-action.directive.d.ts +11 -0
- package/asset-properties/asset-property-list/asset-property-action.directive.d.ts.map +1 -0
- package/asset-properties/asset-property-list/asset-property-icon.pipe.d.ts +11 -0
- package/asset-properties/asset-property-list/asset-property-icon.pipe.d.ts.map +1 -0
- package/asset-properties/asset-property-list/asset-property-list.component.d.ts +195 -0
- package/asset-properties/asset-property-list/asset-property-list.component.d.ts.map +1 -0
- package/asset-properties/asset-property-list/asset-property-value.pipe.d.ts +17 -0
- package/asset-properties/asset-property-list/asset-property-value.pipe.d.ts.map +1 -0
- package/asset-properties/asset-property-list/tree-data-source.d.ts +19 -0
- package/asset-properties/asset-property-list/tree-data-source.d.ts.map +1 -0
- package/asset-properties/asset-property-selector-drawer/asset-property-selector-drawer.component.d.ts +75 -0
- package/asset-properties/asset-property-selector-drawer/asset-property-selector-drawer.component.d.ts.map +1 -0
- package/asset-properties/c8y-ngx-components-asset-properties.d.ts.map +1 -0
- package/asset-properties/index.d.ts +6 -0
- package/asset-properties/index.d.ts.map +1 -0
- package/core/asset-property/asset-property.model.d.ts +0 -8
- package/core/asset-property/asset-property.model.d.ts.map +1 -1
- package/core/authentication/new-password.component.d.ts +3 -2
- package/core/authentication/new-password.component.d.ts.map +1 -1
- package/core/modal/modal.service.d.ts +1 -0
- package/core/modal/modal.service.d.ts.map +1 -1
- package/core/user/user-edit-modal.component.d.ts +1 -0
- package/core/user/user-edit-modal.component.d.ts.map +1 -1
- package/core/user/user-edit.component.d.ts +4 -1
- package/core/user/user-edit.component.d.ts.map +1 -1
- package/datapoint-explorer/datapoint-explorer.module.d.ts +2 -0
- package/datapoint-explorer/datapoint-explorer.module.d.ts.map +1 -1
- package/datapoint-explorer/devicemanagement/c8y-ngx-components-datapoint-explorer-devicemanagement.d.ts.map +1 -0
- package/datapoint-explorer/devicemanagement/index.d.ts +2 -0
- package/datapoint-explorer/devicemanagement/index.d.ts.map +1 -0
- package/datapoint-explorer/view/datapoint-explorer.component.d.ts +8 -3
- package/datapoint-explorer/view/datapoint-explorer.component.d.ts.map +1 -1
- package/datapoint-explorer/view/datapoint-explorer.model.d.ts +8 -0
- package/datapoint-explorer/view/datapoint-explorer.model.d.ts.map +1 -0
- package/datapoint-explorer/view/index.d.ts +1 -0
- package/datapoint-explorer/view/index.d.ts.map +1 -1
- package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts +8 -2
- package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map +1 -1
- package/echart/charts.component.d.ts +1 -1
- package/echart/charts.component.d.ts.map +1 -1
- package/echart/index.d.ts +1 -0
- package/echart/index.d.ts.map +1 -1
- package/echart/models/datapoints-graph-widget.model.d.ts +13 -0
- package/echart/models/datapoints-graph-widget.model.d.ts.map +1 -1
- package/echart/services/chart-helpers.service.d.ts +23 -0
- package/echart/services/chart-helpers.service.d.ts.map +1 -0
- package/echart/services/chart-realtime.service.d.ts +2 -0
- package/echart/services/chart-realtime.service.d.ts.map +1 -1
- package/echart/services/echarts-options.service.d.ts +5 -5
- package/echart/services/echarts-options.service.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +2 -2
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-asset-properties.mjs +1573 -0
- package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-datapoint-explorer-devicemanagement.mjs +38 -0
- package/fesm2022/c8y-ngx-components-datapoint-explorer-devicemanagement.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +157 -141
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-list.mjs +2 -2
- package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +32 -18
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart-models.mjs +14 -1
- package/fesm2022/c8y-ngx-components-echart-models.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +141 -46
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +3 -3
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-time-context.mjs +12 -5
- package/fesm2022/c8y-ngx-components-time-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +2 -2
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +6 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +14 -6
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +51 -10
- package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +1152 -1128
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +61 -46
- package/locales/es.po +44 -27
- package/locales/fr.po +72 -55
- package/locales/ja_JP.po +106 -88
- package/locales/ko.po +43 -27
- package/locales/locales.pot +49 -27
- package/locales/nl.po +44 -27
- package/locales/pl.po +44 -27
- package/locales/pt_BR.po +44 -27
- package/locales/zh_CN.po +44 -27
- package/locales/zh_TW.po +44 -27
- package/package.json +1 -1
- package/time-context/index.d.ts +1 -0
- package/time-context/index.d.ts.map +1 -1
- package/time-context/time-context.component.d.ts +6 -3
- package/time-context/time-context.component.d.ts.map +1 -1
- package/time-context/time-context.model.d.ts +10 -0
- package/time-context/time-context.model.d.ts.map +1 -0
- package/time-context/time-context.service.d.ts +2 -6
- package/time-context/time-context.service.d.ts.map +1 -1
- package/widgets/definitions/html-widget/html-widget-config.factory.d.ts.map +1 -1
- package/widgets/implementations/datapoints-graph/datapoints-graph-config/datapoints-graph-widget-config.component.d.ts +2 -0
- package/widgets/implementations/datapoints-graph/datapoints-graph-config/datapoints-graph-widget-config.component.d.ts.map +1 -1
- package/widgets/implementations/html-widget/html-widget-properties-selector/html-widget-properties-selector.component.d.ts +17 -0
- package/widgets/implementations/html-widget/html-widget-properties-selector/html-widget-properties-selector.component.d.ts.map +1 -0
- package/widgets/implementations/html-widget/html-widget.model.d.ts +2 -2
- package/widgets/implementations/html-widget/html-widget.model.d.ts.map +1 -1
- package/widgets/implementations/html-widget/index.d.ts +1 -0
- package/widgets/implementations/html-widget/index.d.ts.map +1 -1
- package/device-parameters/c8y-ngx-components-device-parameters.d.ts.map +0 -1
- package/device-parameters/device-parameter-details.component.d.ts +0 -22
- package/device-parameters/device-parameter-details.component.d.ts.map +0 -1
- package/device-parameters/device-parameter-value.component.d.ts +0 -12
- package/device-parameters/device-parameter-value.component.d.ts.map +0 -1
- package/device-parameters/device-parameters-list.component.d.ts +0 -23
- package/device-parameters/device-parameters-list.component.d.ts.map +0 -1
- package/device-parameters/device-parameters-tab.guard.d.ts +0 -11
- package/device-parameters/device-parameters-tab.guard.d.ts.map +0 -1
- package/device-parameters/index.d.ts +0 -7
- package/device-parameters/index.d.ts.map +0 -1
- package/device-parameters/parameter-type-cell-renderer.components.d.ts +0 -8
- package/device-parameters/parameter-type-cell-renderer.components.d.ts.map +0 -1
- package/fesm2022/c8y-ngx-components-device-parameters.mjs +0 -215
- package/fesm2022/c8y-ngx-components-device-parameters.mjs.map +0 -1
|
@@ -368,7 +368,7 @@ const ICONS_MAP = {
|
|
|
368
368
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
369
369
|
const INDEX_HTML = '/index.html';
|
|
370
370
|
class EchartsOptionsService {
|
|
371
|
-
constructor(datePipe, yAxisService, chartTypesService, severityIconPipe, severityLabelPipe, translate, router) {
|
|
371
|
+
constructor(datePipe, yAxisService, chartTypesService, severityIconPipe, severityLabelPipe, translate, router, appState) {
|
|
372
372
|
this.datePipe = datePipe;
|
|
373
373
|
this.yAxisService = yAxisService;
|
|
374
374
|
this.chartTypesService = chartTypesService;
|
|
@@ -376,6 +376,7 @@ class EchartsOptionsService {
|
|
|
376
376
|
this.severityLabelPipe = severityLabelPipe;
|
|
377
377
|
this.translate = translate;
|
|
378
378
|
this.router = router;
|
|
379
|
+
this.appState = appState;
|
|
379
380
|
this.TOOLTIP_WIDTH = 300;
|
|
380
381
|
}
|
|
381
382
|
getChartOptions(datapointsWithValues, timeRange, showSplitLines, events, alarms, displayOptions, selectedTimeRange, aggregatedDatapoints, sliderZoomUsed = false) {
|
|
@@ -389,6 +390,8 @@ class EchartsOptionsService {
|
|
|
389
390
|
const gridLeft = leftAxis.length ? leftAxis.length * this.yAxisService.Y_AXIS_OFFSET : 32;
|
|
390
391
|
const rightAxis = Array.isArray(yAxis) ? yAxis.filter(yx => yx.position === 'right') : [];
|
|
391
392
|
const gridRight = rightAxis.length ? rightAxis.length * this.yAxisService.Y_AXIS_OFFSET : 16;
|
|
393
|
+
const currentUser = this.appState.currentUser?.getValue();
|
|
394
|
+
const selectedLanguage = currentUser?.customProperties?.['c8y_UserPreference-language'] || 'en';
|
|
392
395
|
let intervalInMs = this.calculateExtendedIntervalInMs(selectedTimeRange?.interval || timeRange.interval || 'hours', selectedTimeRange || timeRange);
|
|
393
396
|
if (sliderZoomUsed) {
|
|
394
397
|
intervalInMs = this.calculateExtendedIntervalInMs(timeRange.interval || 'hours', timeRange);
|
|
@@ -482,7 +485,36 @@ class EchartsOptionsService {
|
|
|
482
485
|
axisLabel: {
|
|
483
486
|
hideOverlap: true,
|
|
484
487
|
borderWidth: 2, // as there is no margin for labels spacing, transparent border is a workaround
|
|
485
|
-
borderColor: 'transparent'
|
|
488
|
+
borderColor: 'transparent',
|
|
489
|
+
formatter: value => {
|
|
490
|
+
const date = new Date(value);
|
|
491
|
+
const locale = selectedLanguage.replace('_', '-');
|
|
492
|
+
const isStartOfMinute = date.getSeconds() === 0;
|
|
493
|
+
const isStartOfDay = date.getHours() === 0 && date.getMinutes() === 0 && date.getSeconds() === 0;
|
|
494
|
+
const isStartOfYear = date.getMonth() === 0 && date.getDate() === 1 && isStartOfDay;
|
|
495
|
+
let options;
|
|
496
|
+
// Case 1: Tick is start of year
|
|
497
|
+
// Shows only the year, e.g. "2025"
|
|
498
|
+
if (isStartOfYear) {
|
|
499
|
+
options = { year: 'numeric' };
|
|
500
|
+
}
|
|
501
|
+
// Case 2: Tick is start of day
|
|
502
|
+
// Shows abbreviated month and day, e.g. "Jan 13"
|
|
503
|
+
else if (isStartOfDay) {
|
|
504
|
+
options = { month: 'short', day: 'numeric' };
|
|
505
|
+
}
|
|
506
|
+
// Case 3: Tick is start of minute
|
|
507
|
+
// Shows hour and minute, e.g. "14:30" (format depends on locale)
|
|
508
|
+
else if (isStartOfMinute) {
|
|
509
|
+
options = { hour: 'numeric', minute: '2-digit' };
|
|
510
|
+
}
|
|
511
|
+
// Case 4: Interval is 1 minute or less
|
|
512
|
+
// Shows seconds, e.g. ":45"
|
|
513
|
+
else {
|
|
514
|
+
options = { second: '2-digit' };
|
|
515
|
+
}
|
|
516
|
+
return new Intl.DateTimeFormat(locale, options).format(date);
|
|
517
|
+
}
|
|
486
518
|
},
|
|
487
519
|
splitLine: {
|
|
488
520
|
show: showSplitLines.XAxis,
|
|
@@ -666,7 +698,7 @@ class EchartsOptionsService {
|
|
|
666
698
|
* @param allAlarms - All alarms.
|
|
667
699
|
* @returns The formatted string for the tooltip.
|
|
668
700
|
*/
|
|
669
|
-
getTooltipFormatterForAlarmAndEvents(tooltipParams, params, allEvents, allAlarms) {
|
|
701
|
+
getTooltipFormatterForAlarmAndEvents(tooltipParams, params, allEvents, allAlarms, displayOptions) {
|
|
670
702
|
if (!Array.isArray(tooltipParams)) {
|
|
671
703
|
return '';
|
|
672
704
|
}
|
|
@@ -675,7 +707,7 @@ class EchartsOptionsService {
|
|
|
675
707
|
const allSeries = this.echartsInstance?.getOption()['series'];
|
|
676
708
|
// filter out alarm and event series
|
|
677
709
|
const allDataPointSeries = allSeries.filter(series => series['typeOfSeries'] !== 'alarm' && series['typeOfSeries'] !== 'event');
|
|
678
|
-
this.processSeries(allDataPointSeries, XAxisValue, YAxisReadings);
|
|
710
|
+
this.processSeries(allDataPointSeries, XAxisValue, YAxisReadings, displayOptions);
|
|
679
711
|
// find event and alarm of the same type as the hovered markedLine or markedPoint
|
|
680
712
|
const event = allEvents.find(e => e.type === params.data.itemType);
|
|
681
713
|
const alarm = allAlarms.find(a => a.type === params.data.itemType);
|
|
@@ -864,17 +896,17 @@ class EchartsOptionsService {
|
|
|
864
896
|
* @param XAxisValue - The X Axis value.
|
|
865
897
|
* @param YAxisReadings - The Y Axis readings.
|
|
866
898
|
*/
|
|
867
|
-
processSeries(allDataPointSeries, XAxisValue, YAxisReadings) {
|
|
899
|
+
processSeries(allDataPointSeries, XAxisValue, YAxisReadings, displayOptions) {
|
|
868
900
|
allDataPointSeries.forEach((series) => {
|
|
869
901
|
if (series.datapointId === 'aggregated') {
|
|
870
902
|
return;
|
|
871
903
|
}
|
|
872
904
|
let value = '';
|
|
873
905
|
if (series.id.endsWith('/min')) {
|
|
874
|
-
value = this.processMinSeries(series, allDataPointSeries, XAxisValue);
|
|
906
|
+
value = this.processMinSeries(series, allDataPointSeries, XAxisValue, displayOptions);
|
|
875
907
|
}
|
|
876
908
|
else if (!series.id.endsWith('/max')) {
|
|
877
|
-
value = this.processRegularSeries(series, XAxisValue);
|
|
909
|
+
value = this.processRegularSeries(series, XAxisValue, displayOptions);
|
|
878
910
|
}
|
|
879
911
|
if (value) {
|
|
880
912
|
YAxisReadings.push(`<div class="d-flex a-i-center p-b-8 text-default"><span class='dlt-c8y-icon-circle m-r-4' style='color: ${series.itemStyle.color};'></span>` + // color circle
|
|
@@ -891,7 +923,7 @@ class EchartsOptionsService {
|
|
|
891
923
|
* @param XAxisValue - The X Axis value.
|
|
892
924
|
* @returns The processed value.
|
|
893
925
|
*/
|
|
894
|
-
processMinSeries(series, allDataPointSeries, XAxisValue) {
|
|
926
|
+
processMinSeries(series, allDataPointSeries, XAxisValue, displayOptions) {
|
|
895
927
|
const minValue = this.findValueForExactOrEarlierTimestamp(series.data, XAxisValue);
|
|
896
928
|
if (!minValue) {
|
|
897
929
|
return '';
|
|
@@ -899,7 +931,7 @@ class EchartsOptionsService {
|
|
|
899
931
|
const maxSeries = allDataPointSeries.find(s => s['id'] === series.id.replace('/min', '/max'));
|
|
900
932
|
const maxValue = this.findValueForExactOrEarlierTimestamp(maxSeries?.['data'], XAxisValue);
|
|
901
933
|
return (`<div class="d-flex a-i-center separator-top p-t-8 p-b-8 text-default"><label class="text-12 m-r-8 m-b-0">${this.datePipe.transform(minValue[0])}</label>` +
|
|
902
|
-
`<span class="m-l-auto text-12">${minValue[1]} — ${maxValue?.[1]}` +
|
|
934
|
+
`<span class="m-l-auto text-12">${minValue[1].toFixed(displayOptions.numberOfDecimalPlaces ?? 2) ?? '--'} — ${maxValue?.[1].toFixed(displayOptions.numberOfDecimalPlaces ?? 2) ?? '--'}` +
|
|
903
935
|
(series.datapointUnit ? ` ${series.datapointUnit}` : '') +
|
|
904
936
|
`</span></div>`);
|
|
905
937
|
}
|
|
@@ -909,14 +941,14 @@ class EchartsOptionsService {
|
|
|
909
941
|
* @param XAxisValue - The X Axis value.
|
|
910
942
|
* @returns The processed value.
|
|
911
943
|
*/
|
|
912
|
-
processRegularSeries(series, XAxisValue) {
|
|
944
|
+
processRegularSeries(series, XAxisValue, displayOptions) {
|
|
913
945
|
const seriesValue = this.findValueForExactOrEarlierTimestamp(series.data, XAxisValue);
|
|
914
946
|
if (!seriesValue) {
|
|
915
947
|
return '';
|
|
916
948
|
}
|
|
917
949
|
return (`<div class="d-flex a-i-center p-t-8 p-b-8 separator-top text-default">` +
|
|
918
950
|
`<label class="m-b-0 m-r-8 text-12">${this.datePipe.transform(seriesValue[0])}</label><span class="m-l-auto text-12">` +
|
|
919
|
-
seriesValue[1]?.
|
|
951
|
+
`${seriesValue[1]?.toFixed(displayOptions.numberOfDecimalPlaces ?? 2) ?? '--'}` +
|
|
920
952
|
(series.datapointUnit ? ` ${series.datapointUnit}` : '') +
|
|
921
953
|
`</span></div>`);
|
|
922
954
|
}
|
|
@@ -927,9 +959,9 @@ class EchartsOptionsService {
|
|
|
927
959
|
*/
|
|
928
960
|
processEvent(event, XAxisValue) {
|
|
929
961
|
let value = `<ul class="list-unstyled small separator-top text-default">`;
|
|
930
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="small m-b-0 m-r-8"
|
|
931
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="small m-b-0 m-r-8"
|
|
932
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="small m-b-0 m-r-8"
|
|
962
|
+
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="small m-b-0 m-r-8">${this.translate.instant(gettext('Event type'))}</label><code class="m-l-auto" style="display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; word-break: break-word; white-space: normal; max-width: 200px; -webkit-line-clamp: 2;" title="${event.type}">${event.type}</code></li>`;
|
|
963
|
+
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="small m-b-0 m-r-8">${this.translate.instant(gettext('Event text'))}</label><span class="m-l-auto" style="display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; word-break: break-word; white-space: normal; max-width: 200px; -webkit-line-clamp: 5;" title="${event.text}">${event.text}</span></li>`;
|
|
964
|
+
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="small m-b-0 m-r-8">${this.translate.instant(gettext('Event time'))}</label><span class="m-l-auto">${this.datePipe.transform(XAxisValue)}<span></li>`;
|
|
933
965
|
value += `</ul>`;
|
|
934
966
|
return value;
|
|
935
967
|
}
|
|
@@ -940,19 +972,19 @@ class EchartsOptionsService {
|
|
|
940
972
|
*/
|
|
941
973
|
async processAlarm(alarm) {
|
|
942
974
|
let value = `<ul class="list-unstyled small separator-top text-default m-0">`;
|
|
943
|
-
value += `<li class="p-t-4 p-b-4 d-flex a-i-center separator-bottom text-no-wrap"><label class="text-label-small m-b-0 m-r-8"
|
|
975
|
+
value += `<li class="p-t-4 p-b-4 d-flex a-i-center separator-bottom text-no-wrap"><label class="text-label-small m-b-0 m-r-8">${this.translate.instant(gettext('Alarm severity'))}</label>`;
|
|
944
976
|
value += `<span class="small d-inline-flex a-i-center gap-4 m-l-auto"><i class="stroked-icon icon-14 status dlt-c8y-icon-${this.severityIconPipe.transform(alarm.severity)} ${alarm.severity.toLowerCase()}" > </i> ${this.severityLabelPipe.transform(alarm.severity)} </span></li>`;
|
|
945
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="text-label-small m-b-0 m-r-8"
|
|
946
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="text-label-small m-b-0 m-r-8"
|
|
947
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="text-label-small m-b-0 m-r-8"
|
|
977
|
+
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="text-label-small m-b-0 m-r-8">${this.translate.instant(gettext('Alarm type'))}</label><span class="small m-l-auto"><code>${alarm.type}</code></span></li>`;
|
|
978
|
+
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="text-label-small m-b-0 m-r-8">${this.translate.instant(gettext('Message'))}</label><span class="small m-l-auto" style="display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; overflow: hidden; text-overflow: ellipsis; word-break: break-word; white-space: normal; max-width: 200px;" title="${this.translate.instant(alarm.text)}">${this.translate.instant(alarm.text)}</span></li>`;
|
|
979
|
+
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="text-label-small m-b-0 m-r-8">${this.translate.instant(gettext('Last updated'))}</label><span class="small m-l-auto">${this.datePipe.transform(alarm['lastUpdated'])}</span></li>`;
|
|
948
980
|
const exists = await this.alarmRouteExists();
|
|
949
981
|
if (exists) {
|
|
950
982
|
const currentUrl = window.location.href;
|
|
951
983
|
const baseUrlIndex = currentUrl.indexOf(INDEX_HTML);
|
|
952
984
|
const baseUrl = currentUrl.substring(0, baseUrlIndex + INDEX_HTML.length);
|
|
953
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="text-label-small m-b-0 m-r-8"
|
|
985
|
+
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-no-wrap"><label class="text-label-small m-b-0 m-r-8">${this.translate.instant(gettext('Open details'))}</label><span class="small m-l-auto"><a href="${baseUrl}#/alarms/${alarm.id}/details?showCleared=true">${this.translate.instant(gettext('Alarm details'))}</a></span></li>`;
|
|
954
986
|
}
|
|
955
|
-
value += `<li class="p-t-4 p-b-4 d-flex text-no-wrap"><label class="text-label-small m-b-0 m-r-8"
|
|
987
|
+
value += `<li class="p-t-4 p-b-4 d-flex text-no-wrap"><label class="text-label-small m-b-0 m-r-8">${this.translate.instant(gettext('Alarm count'))}</label><span class="small m-l-auto"><span class="badge badge-info">${alarm.count}</span></span></li>`;
|
|
956
988
|
value += `</ul>`;
|
|
957
989
|
return value;
|
|
958
990
|
}
|
|
@@ -1275,7 +1307,7 @@ class EchartsOptionsService {
|
|
|
1275
1307
|
getTooltipFormatter(displayOptions) {
|
|
1276
1308
|
return params => {
|
|
1277
1309
|
if (!Array.isArray(params) || !params[0]?.data) {
|
|
1278
|
-
return
|
|
1310
|
+
return null;
|
|
1279
1311
|
}
|
|
1280
1312
|
const data = params[0].data;
|
|
1281
1313
|
const XAxisValue = data[0];
|
|
@@ -1303,7 +1335,7 @@ class EchartsOptionsService {
|
|
|
1303
1335
|
value =
|
|
1304
1336
|
`<div class="d-flex a-i-center separator-top text-default p-t-8 p-b-8">` +
|
|
1305
1337
|
`<label class="text-12 m-r-8 m-b-0">${this.datePipe.transform(minValue[0])}</label>` +
|
|
1306
|
-
`<div class="m-l-auto text-12" >${minValue[1].toFixed(displayOptions.numberOfDecimalPlaces ?? 2)} — ${maxValue[1].toFixed(displayOptions.numberOfDecimalPlaces ?? 2)}` +
|
|
1338
|
+
`<div class="m-l-auto text-12" >${minValue[1].toFixed(displayOptions.numberOfDecimalPlaces ?? 2) ?? '--'} — ${maxValue[1].toFixed(displayOptions.numberOfDecimalPlaces ?? 2) ?? '--'}` +
|
|
1307
1339
|
(series['datapointUnit'] ? ` ${series['datapointUnit']}` : '') +
|
|
1308
1340
|
`</div></div>`;
|
|
1309
1341
|
}
|
|
@@ -1319,7 +1351,7 @@ class EchartsOptionsService {
|
|
|
1319
1351
|
value =
|
|
1320
1352
|
`<div class="d-flex a-i-center separator-top text-default p-t-8 p-b-8">` +
|
|
1321
1353
|
`<label class="text-12 m-r-8 m-b-0">${this.datePipe.transform(seriesValue[0])}</label>` +
|
|
1322
|
-
`<div class="m-l-auto text-12" >${seriesValue[1]?.toFixed(displayOptions.numberOfDecimalPlaces ?? 2)}` +
|
|
1354
|
+
`<div class="m-l-auto text-12" >${seriesValue[1]?.toFixed(displayOptions.numberOfDecimalPlaces ?? 2) ?? '--'}` +
|
|
1323
1355
|
(series['datapointUnit'] ? ` ${series['datapointUnit']}` : '') +
|
|
1324
1356
|
`</div></div>`;
|
|
1325
1357
|
}
|
|
@@ -1345,12 +1377,12 @@ class EchartsOptionsService {
|
|
|
1345
1377
|
return acc;
|
|
1346
1378
|
}, null);
|
|
1347
1379
|
}
|
|
1348
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EchartsOptionsService, deps: [{ token: i1$1.DatePipe }, { token: YAxisService }, { token: ChartTypesService }, { token: i4.AlarmSeverityToIconPipe }, { token: i4.AlarmSeverityToLabelPipe }, { token: i5.TranslateService }, { token: i6.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1380
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EchartsOptionsService, deps: [{ token: i1$1.DatePipe }, { token: YAxisService }, { token: ChartTypesService }, { token: i4.AlarmSeverityToIconPipe }, { token: i4.AlarmSeverityToLabelPipe }, { token: i5.TranslateService }, { token: i6.Router }, { token: i1$1.AppStateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1349
1381
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EchartsOptionsService }); }
|
|
1350
1382
|
}
|
|
1351
1383
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EchartsOptionsService, decorators: [{
|
|
1352
1384
|
type: Injectable
|
|
1353
|
-
}], ctorParameters: () => [{ type: i1$1.DatePipe }, { type: YAxisService }, { type: ChartTypesService }, { type: i4.AlarmSeverityToIconPipe }, { type: i4.AlarmSeverityToLabelPipe }, { type: i5.TranslateService }, { type: i6.Router }] });
|
|
1385
|
+
}], ctorParameters: () => [{ type: i1$1.DatePipe }, { type: YAxisService }, { type: ChartTypesService }, { type: i4.AlarmSeverityToIconPipe }, { type: i4.AlarmSeverityToLabelPipe }, { type: i5.TranslateService }, { type: i6.Router }, { type: i1$1.AppStateService }] });
|
|
1354
1386
|
|
|
1355
1387
|
class ChartRealtimeService {
|
|
1356
1388
|
constructor(measurementRealtime, alarmRealtimeService, eventRealtimeService, echartsOptionsService) {
|
|
@@ -1362,6 +1394,7 @@ class ChartRealtimeService {
|
|
|
1362
1394
|
this.MIN_REALTIME_TIMEOUT = 250;
|
|
1363
1395
|
this.MAX_REALTIME_TIMEOUT = 5_000;
|
|
1364
1396
|
this.lastMeasurements = new Map();
|
|
1397
|
+
this.pendingAlarmsOrEvents = new Map();
|
|
1365
1398
|
this.currentAlarms = [];
|
|
1366
1399
|
this.currentEvents = [];
|
|
1367
1400
|
}
|
|
@@ -1403,7 +1436,7 @@ class ChartRealtimeService {
|
|
|
1403
1436
|
dateFrom: this.currentTimeRange.dateFrom.toISOString(),
|
|
1404
1437
|
dateTo: this.currentTimeRange.dateTo.toISOString()
|
|
1405
1438
|
});
|
|
1406
|
-
interval(this.INTERVAL)
|
|
1439
|
+
this.realtimeIntervalSubscription = interval(this.INTERVAL)
|
|
1407
1440
|
.pipe(tap(() => {
|
|
1408
1441
|
const windowSize = this.currentTimeRange.dateTo.valueOf() - this.currentTimeRange.dateFrom.valueOf();
|
|
1409
1442
|
const now = Date.now();
|
|
@@ -1438,7 +1471,16 @@ class ChartRealtimeService {
|
|
|
1438
1471
|
this.realtimeSubscriptionMeasurements = measurement$
|
|
1439
1472
|
.pipe(buffer(bufferReset$))
|
|
1440
1473
|
.subscribe(measurements => {
|
|
1441
|
-
this.
|
|
1474
|
+
const alarmsOrEvents = Array.from(this.pendingAlarmsOrEvents.values());
|
|
1475
|
+
this.pendingAlarmsOrEvents.clear();
|
|
1476
|
+
if (alarmsOrEvents.length) {
|
|
1477
|
+
alarmsOrEvents.forEach(alarmOrEvent => {
|
|
1478
|
+
this.updateChartInstance(measurements, alarmOrEvent, displayOptions, datapointOutOfSyncCallback);
|
|
1479
|
+
});
|
|
1480
|
+
}
|
|
1481
|
+
else {
|
|
1482
|
+
this.updateChartInstance(measurements, null, displayOptions, datapointOutOfSyncCallback);
|
|
1483
|
+
}
|
|
1442
1484
|
// Store the last measurements
|
|
1443
1485
|
measurements.forEach(measurement => {
|
|
1444
1486
|
this.lastMeasurements.set(measurement.datapoint.fragment, measurement);
|
|
@@ -1446,27 +1488,21 @@ class ChartRealtimeService {
|
|
|
1446
1488
|
});
|
|
1447
1489
|
this.realtimeSubscriptionAlarmsEvents = allAlarmsAndEvents$
|
|
1448
1490
|
.pipe(map(alarmOrEvent => {
|
|
1449
|
-
const foundAlarmOrEvent = activeAlarmsOrEvents.find(aOrE =>
|
|
1450
|
-
return aOrE.filters.type === alarmOrEvent.type;
|
|
1451
|
-
});
|
|
1491
|
+
const foundAlarmOrEvent = activeAlarmsOrEvents.find(aOrE => aOrE.filters.type === alarmOrEvent.type);
|
|
1452
1492
|
if (foundAlarmOrEvent) {
|
|
1453
1493
|
alarmOrEvent['color'] = foundAlarmOrEvent.color;
|
|
1454
1494
|
alarmOrEvent['selectedDatapoint'] = foundAlarmOrEvent.selectedDatapoint;
|
|
1495
|
+
const key = String(alarmOrEvent.id || alarmOrEvent.creationTime);
|
|
1496
|
+
this.pendingAlarmsOrEvents.set(key, alarmOrEvent);
|
|
1455
1497
|
}
|
|
1456
|
-
|
|
1457
|
-
const fragment = alarmOrEvent['selectedDatapoint']?.fragment;
|
|
1458
|
-
if (fragment && this.lastMeasurements.has(fragment)) {
|
|
1459
|
-
const lastMeasurement = this.lastMeasurements.get(fragment);
|
|
1460
|
-
this.updateChartInstance([lastMeasurement], alarmOrEvent, displayOptions, datapointOutOfSyncCallback);
|
|
1461
|
-
}
|
|
1462
|
-
}
|
|
1463
|
-
return foundAlarmOrEvent ? alarmOrEvent : null;
|
|
1498
|
+
return null;
|
|
1464
1499
|
}))
|
|
1465
1500
|
.subscribe();
|
|
1466
1501
|
}
|
|
1467
1502
|
stopRealtime() {
|
|
1468
1503
|
this.realtimeSubscriptionMeasurements?.unsubscribe();
|
|
1469
1504
|
this.realtimeSubscriptionAlarmsEvents?.unsubscribe();
|
|
1505
|
+
this.realtimeIntervalSubscription?.unsubscribe();
|
|
1470
1506
|
}
|
|
1471
1507
|
/**
|
|
1472
1508
|
* Updates the chart with the current alarms and events data. Only used when no active datapoints are selected.
|
|
@@ -1605,11 +1641,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
1605
1641
|
|
|
1606
1642
|
class ChartAlertsComponent {
|
|
1607
1643
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ChartAlertsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1608
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ChartAlertsComponent, isStandalone: true, selector: "c8y-chart-alerts", inputs: { alerts: "alerts" }, ngImport: i0, template: "<div\n class=\"overlay-center-vertically d-
|
|
1644
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ChartAlertsComponent, isStandalone: true, selector: "c8y-chart-alerts", inputs: { alerts: "alerts" }, ngImport: i0, template: "<div\n class=\"overlay-center-vertically d-col p-16 p-r-24 p-l-24\"\n *ngIf=\"alerts?.anyAlertExists$ | async\"\n>\n <ng-container *ngFor=\"let alertGroup of alerts?.alertGroups\">\n <div\n class=\"alert\"\n role=\"alert\"\n *ngIf=\"alertGroup.value.alerts.length\"\n [ngClass]=\"'alert-' + alertGroup.type\"\n >\n <button\n class=\"close\"\n type=\"button\"\n (click)=\"alerts.dismissAlertGroup(alertGroup.type, dismissPermanently.checked)\"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">{{ 'Close' | translate }}</span>\n </button>\n <p *ngFor=\"let alertItem of alertGroup.value.alerts\">\n {{ alertItem.text | translate }}\n </p>\n <label\n class=\"c8y-checkbox m-t-16\"\n title=\"{{ 'Don\\'t show again' | translate }}\"\n >\n <input\n type=\"checkbox\"\n #dismissPermanently\n />\n <span></span>\n <span>{{ \"Don't show again\" | translate }}</span>\n </label>\n </div>\n </ng-container>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }] }); }
|
|
1609
1645
|
}
|
|
1610
1646
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ChartAlertsComponent, decorators: [{
|
|
1611
1647
|
type: Component,
|
|
1612
|
-
args: [{ selector: 'c8y-chart-alerts', standalone: true, imports: [CommonModule], template: "<div\n class=\"overlay-center-vertically d-
|
|
1648
|
+
args: [{ selector: 'c8y-chart-alerts', standalone: true, imports: [CommonModule], template: "<div\n class=\"overlay-center-vertically d-col p-16 p-r-24 p-l-24\"\n *ngIf=\"alerts?.anyAlertExists$ | async\"\n>\n <ng-container *ngFor=\"let alertGroup of alerts?.alertGroups\">\n <div\n class=\"alert\"\n role=\"alert\"\n *ngIf=\"alertGroup.value.alerts.length\"\n [ngClass]=\"'alert-' + alertGroup.type\"\n >\n <button\n class=\"close\"\n type=\"button\"\n (click)=\"alerts.dismissAlertGroup(alertGroup.type, dismissPermanently.checked)\"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">{{ 'Close' | translate }}</span>\n </button>\n <p *ngFor=\"let alertItem of alertGroup.value.alerts\">\n {{ alertItem.text | translate }}\n </p>\n <label\n class=\"c8y-checkbox m-t-16\"\n title=\"{{ 'Don\\'t show again' | translate }}\"\n >\n <input\n type=\"checkbox\"\n #dismissPermanently\n />\n <span></span>\n <span>{{ \"Don't show again\" | translate }}</span>\n </label>\n </div>\n </ng-container>\n</div>\n" }]
|
|
1613
1649
|
}], propDecorators: { alerts: [{
|
|
1614
1650
|
type: Input
|
|
1615
1651
|
}] } });
|
|
@@ -1823,7 +1859,15 @@ class ChartsComponent {
|
|
|
1823
1859
|
return;
|
|
1824
1860
|
}
|
|
1825
1861
|
updatedOptions.tooltip.formatter = (tooltipParams) => {
|
|
1826
|
-
return this.echartsOptionsService.getTooltipFormatterForAlarmAndEvents(tooltipParams, params, this.events, this.alarms
|
|
1862
|
+
return this.echartsOptionsService.getTooltipFormatterForAlarmAndEvents(tooltipParams, params, this.events, this.alarms, {
|
|
1863
|
+
displayMarkedLine: this.config.displayMarkedLine || false,
|
|
1864
|
+
displayMarkedPoint: this.config.displayMarkedPoint || false,
|
|
1865
|
+
mergeMatchingDatapoints: this.config.mergeMatchingDatapoints || false,
|
|
1866
|
+
forceMergeDatapoints: this.config.forceMergeDatapoints || false,
|
|
1867
|
+
showLabelAndUnit: this.config.showLabelAndUnit || false,
|
|
1868
|
+
showSlider: this.config.showSlider || false,
|
|
1869
|
+
numberOfDecimalPlaces: this.config.numberOfDecimalPlaces ?? 2
|
|
1870
|
+
});
|
|
1827
1871
|
};
|
|
1828
1872
|
this.echartsInstance.setOption(updatedOptions);
|
|
1829
1873
|
});
|
|
@@ -1837,7 +1881,7 @@ class ChartsComponent {
|
|
|
1837
1881
|
}
|
|
1838
1882
|
onChartClick(params) {
|
|
1839
1883
|
const options = this.echartsInstance.getOption();
|
|
1840
|
-
if (!this.
|
|
1884
|
+
if (!this.isAlarmOrEventClick(params)) {
|
|
1841
1885
|
this.echartsInstance.setOption({
|
|
1842
1886
|
tooltip: { triggerOn: 'mousemove' },
|
|
1843
1887
|
series: [{ markArea: { data: [] }, markLine: { data: [] } }]
|
|
@@ -1845,6 +1889,17 @@ class ChartsComponent {
|
|
|
1845
1889
|
return;
|
|
1846
1890
|
}
|
|
1847
1891
|
const clickedAlarms = this.alarms.filter(alarm => alarm.type === params.data.itemType);
|
|
1892
|
+
const clickedEvents = this.events.filter(event => event.type === params.data.itemType);
|
|
1893
|
+
if (clickedEvents.length > 0) {
|
|
1894
|
+
const updatedOptions = {
|
|
1895
|
+
tooltip: {
|
|
1896
|
+
enterable: true,
|
|
1897
|
+
triggerOn: 'click'
|
|
1898
|
+
}
|
|
1899
|
+
};
|
|
1900
|
+
this.echartsInstance.setOption(updatedOptions);
|
|
1901
|
+
return;
|
|
1902
|
+
}
|
|
1848
1903
|
this.isMarkedAreaEnabled.emit(this.hasMarkArea(options));
|
|
1849
1904
|
const updatedOptions = !this.hasMarkArea(options)
|
|
1850
1905
|
? {
|
|
@@ -1867,8 +1922,9 @@ class ChartsComponent {
|
|
|
1867
1922
|
};
|
|
1868
1923
|
this.echartsInstance.setOption(updatedOptions);
|
|
1869
1924
|
}
|
|
1870
|
-
|
|
1871
|
-
return this.alarms.some(alarm => alarm.type === params.data.itemType)
|
|
1925
|
+
isAlarmOrEventClick(params) {
|
|
1926
|
+
return (this.alarms.some(alarm => alarm.type === params.data.itemType) ||
|
|
1927
|
+
this.events.some(event => event.type === params.data.itemType));
|
|
1872
1928
|
}
|
|
1873
1929
|
hasMarkArea(options) {
|
|
1874
1930
|
return options?.series?.[0]?.markArea?.data?.length > 0;
|
|
@@ -2154,7 +2210,7 @@ class ChartsComponent {
|
|
|
2154
2210
|
values[new Date(this.config.dateFrom).toISOString()] = [{ min: null, max: null }];
|
|
2155
2211
|
}
|
|
2156
2212
|
else {
|
|
2157
|
-
if (this.alerts) {
|
|
2213
|
+
if (this.alerts && !customTimeRange) {
|
|
2158
2214
|
this.alerts.clear();
|
|
2159
2215
|
}
|
|
2160
2216
|
}
|
|
@@ -2263,6 +2319,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
2263
2319
|
args: ['chart']
|
|
2264
2320
|
}] } });
|
|
2265
2321
|
|
|
2322
|
+
class ChartHelpersService {
|
|
2323
|
+
/**
|
|
2324
|
+
* Cleans the widget configuration which will be sent to Gainsight by removing unnecessary properties.
|
|
2325
|
+
* @param config The widget configuration to clean.
|
|
2326
|
+
* @returns The cleaned widget configuration.
|
|
2327
|
+
*/
|
|
2328
|
+
getConfigSummaryForGainsight(config) {
|
|
2329
|
+
return {
|
|
2330
|
+
datapointCount: config.datapoints?.length ?? 0,
|
|
2331
|
+
alarmsEventsCount: config.alarmsEventsConfigs?.length ?? 0,
|
|
2332
|
+
interval: config.interval,
|
|
2333
|
+
forceMergeDatapoints: config.forceMergeDatapoints,
|
|
2334
|
+
mergeMatchingDatapoints: config.mergeMatchingDatapoints,
|
|
2335
|
+
showSlider: config.showSlider,
|
|
2336
|
+
widgetInstanceGlobalTimeContext: config.widgetInstanceGlobalTimeContext,
|
|
2337
|
+
dateFrom: config.dateFrom,
|
|
2338
|
+
dateTo: config.dateTo
|
|
2339
|
+
};
|
|
2340
|
+
}
|
|
2341
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ChartHelpersService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2342
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ChartHelpersService }); }
|
|
2343
|
+
}
|
|
2344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ChartHelpersService, decorators: [{
|
|
2345
|
+
type: Injectable
|
|
2346
|
+
}] });
|
|
2347
|
+
|
|
2266
2348
|
var DATE_SELECTION_EXTENDED;
|
|
2267
2349
|
(function (DATE_SELECTION_EXTENDED) {
|
|
2268
2350
|
DATE_SELECTION_EXTENDED["CONFIG"] = "config";
|
|
@@ -2272,6 +2354,19 @@ const REALTIME_TEXTS = {
|
|
|
2272
2354
|
ACTIVE: gettext('Realtime active'),
|
|
2273
2355
|
INACTIVE: gettext('Realtime inactive')
|
|
2274
2356
|
};
|
|
2357
|
+
const PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH = {
|
|
2358
|
+
EVENTS: {
|
|
2359
|
+
DATA_EXPLORER_AND_GRAPH: 'data-explorer-and-graph'
|
|
2360
|
+
},
|
|
2361
|
+
COMPONENTS: {
|
|
2362
|
+
DATA_EXPLORER_DETAILS: 'data-explorer-details'
|
|
2363
|
+
},
|
|
2364
|
+
ACTIONS: {
|
|
2365
|
+
DATA_EXPLORER_CONFIG_INIT: 'data-explorer-config-init',
|
|
2366
|
+
DATA_EXPLORER_CONFIG_CHANGE: 'data-explorer-config-change',
|
|
2367
|
+
DATA_GRAPH_WIDGET_CONFIG: 'data-graph-widget-config'
|
|
2368
|
+
}
|
|
2369
|
+
};
|
|
2275
2370
|
const SEVERITY_LABELS = {
|
|
2276
2371
|
CRITICAL: gettext('Critical`alarm`'),
|
|
2277
2372
|
MAJOR: gettext('Major`alarm`'),
|
|
@@ -2283,5 +2378,5 @@ const SEVERITY_LABELS = {
|
|
|
2283
2378
|
* Generated bundle index. Do not edit.
|
|
2284
2379
|
*/
|
|
2285
2380
|
|
|
2286
|
-
export { ChartAlarmsService, ChartEventsService, ChartsComponent, DATE_SELECTION_EXTENDED, ICONS_MAP, REALTIME_TEXTS, SEVERITY_LABELS };
|
|
2381
|
+
export { ChartAlarmsService, ChartEventsService, ChartHelpersService, ChartsComponent, DATE_SELECTION_EXTENDED, ICONS_MAP, PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH, REALTIME_TEXTS, SEVERITY_LABELS };
|
|
2287
2382
|
//# sourceMappingURL=c8y-ngx-components-echart.mjs.map
|