@c8y/ngx-components 1023.14.180 → 1023.14.185
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/datapoint-explorer/devicemanagement/index.d.ts.map +1 -1
- package/echart/index.d.ts.map +1 -1
- package/ecosystem/index.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer-devicemanagement.mjs +0 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer-devicemanagement.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +55 -37
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +6 -7
- package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +33 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.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/locales.pot +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/widgets/implementations/quick-links/index.d.ts +3 -1
- package/widgets/implementations/quick-links/index.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../../../datapoint-explorer/devicemanagement/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAeA,cAAA,gBAAA,EAAA,SAAA,CAAA,QAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../../../datapoint-explorer/devicemanagement/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAeA,cAAA,gBAAA,EAAA,SAAA,CAAA,QAAA;AAiDA,cAAA,+BAAA,GAA4C,aAAA,CAAA,aAAA,GAAA,aAAA,CAAA,aAAA,GAAA,aAAA,CAAA,gBAAA;;;;"}
|
package/echart/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../../echart/models/datapoints-graph-widget.model.ts","../../echart/models/chart.model.ts","../../echart/models/svg-icons.model.ts","../../echart/charts.component.ts","../../echart/services/chart-alarms.service.ts","../../echart/services/chart-events.service.ts","../../echart/services/chart-helpers.service.ts","../../echart/select-aggregated-datapoint/select-aggregated-datapoint.component.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;;;AAoBM;;;;AAKA;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;AASA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;;;;;;;;;AAWI;;;;;;;;;;AAUJ;;;AAII;;AAEJ;AACA;;AAGI;;;AAIN;;AAEG;;AAGG;AAIN;AACE;AACA;AACD;AAED;AACM;;AAEL;AAED;;;;AAIM;;;;;;;AAQL;AAED;;;;;AAUE;;;;;AAGD;;AAGC;;AAEA;;AAEE;;AAEF;;;AACD;;;;;;;AAQC;AACA;AACD;AAEK;AACA;AAEA;AAEA;AAEN;;;;AAKA;;;;;;;;;;;;;AAcM;AACA;AAEA;;;;AAKA;;;;;;;;;;;;AAaL;AAED;;;;;;;;AAUE;AACA;AACD;;ACtND;;;;;;AAMG;AACH;AACE;;;;AAIA;;;AACD;;;AAIA;;;AAIA;AAEK;AACA;AACJ;AACE;AACD;AACF;;AAGC;AACA;AACD;AAED;AACE;AACA;AACA;AACD;;AC3CD;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;AAED;;;;;;;;;;;AC2DA;AA4BE;;AAEA;;;;;;;;AAQA;;;;;;AAMK;AACK;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEV;;;;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AA4DA;;;;;AAoKuB;;;AAA4B;AAiDnD;AAOA;AAIA;AAwBA;AA6BA;AAWA;;;;;;AAMG;AACH;AAoCA;;;;;AAKG;AACH;AA4BA;AAeA;AA0BA;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../../echart/models/datapoints-graph-widget.model.ts","../../echart/models/chart.model.ts","../../echart/models/svg-icons.model.ts","../../echart/charts.component.ts","../../echart/services/chart-alarms.service.ts","../../echart/services/chart-events.service.ts","../../echart/services/chart-helpers.service.ts","../../echart/select-aggregated-datapoint/select-aggregated-datapoint.component.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;;;AAoBM;;;;AAKA;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;AASA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;;;;;;;;;AAWI;;;;;;;;;;AAUJ;;;AAII;;AAEJ;AACA;;AAGI;;;AAIN;;AAEG;;AAGG;AAIN;AACE;AACA;AACD;AAED;AACM;;AAEL;AAED;;;;AAIM;;;;;;;AAQL;AAED;;;;;AAUE;;;;;AAGD;;AAGC;;AAEA;;AAEE;;AAEF;;;AACD;;;;;;;AAQC;AACA;AACD;AAEK;AACA;AAEA;AAEA;AAEN;;;;AAKA;;;;;;;;;;;;;AAcM;AACA;AAEA;;;;AAKA;;;;;;;;;;;;AAaL;AAED;;;;;;;;AAUE;AACA;AACD;;ACtND;;;;;;AAMG;AACH;AACE;;;;AAIA;;;AACD;;;AAIA;;;AAIA;AAEK;AACA;AACJ;AACE;AACD;AACF;;AAGC;AACA;AACD;AAED;AACE;AACA;AACA;AACD;;AC3CD;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;AAED;;;;;;;;;;;AC2DA;AA4BE;;AAEA;;;;;;;;AAQA;;;;;;AAMK;AACK;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEV;;;;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AA4DA;;;;;AAoKuB;;;AAA4B;AAiDnD;AAOA;AAIA;AAwBA;AA6BA;AAWA;;;;;;AAMG;AACH;AAoCA;;;;;AAKG;AACH;AA4BA;AAeA;AA0BA;;AAkEA;;;AA4OA;AAyEA;AAwDA;AAmBA;AAWA;AAYA;;;AA6BD;;ACzlCD;AAEc;AAAQ;AAEpB;;;;;AAKG;AACG;;;AAqCP;;AC/CD;AAEc;AAAQ;AAEpB;;;;;AAKG;AACG;;;AAuBP;;AChCD;AAEE;;;;AAIG;;;;;;;;;;;AAcH;AAcA;;;AAGD;;ACtBD;;AAqBW;AACC;AAEV;;AAGA;;;AAiBA;;;AAgBD;;;"}
|
package/ecosystem/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../../ecosystem/activity-log/activity-log.component.ts","../../ecosystem/application-properties/application-properties.component.ts","../../ecosystem/application-properties/application-properties.guard.ts","../../ecosystem/applications/add-external-applicaiton/add-external-application.component.ts","../../ecosystem/applications/add-web-application/add-web-application.component.ts","../../ecosystem/applications/application-list/application-list.component.ts","../../ecosystem/applications/install-from-package/install-from-package.component.ts","../../ecosystem/ecosystem-tabs.factory.ts","../../ecosystem/packages/package-changelog-tab/package-changelog-tab.component.ts","../../ecosystem/microservices/microservice-list.component.ts","../../ecosystem/microservices/add-microservice.component.ts","../../ecosystem/packages/package-list/packages-list.component.ts","../../ecosystem/packages/package-details/package-details.component.ts","../../ecosystem/packages/deploy-application/deploy-application.component.ts","../../ecosystem/packages/add-package.component.ts","../../ecosystem/features/feature-list.component.ts","../../ecosystem/packages/package-versions/packages-versions.component.ts","../../ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.ts","../../ecosystem/packages/package-versions/package-contents/contents-apps/contents-apps.component.ts","../../ecosystem/packages/package-versions/package-contents/packages-contents.component.ts","../../ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.ts","../../ecosystem/application-properties/subscription-modal/subscription-modal.component.ts","../../ecosystem/application-properties/update-application-modal/update-application-modal.component.ts","../../ecosystem/ecosystem.module.ts","../../ecosystem/packages/package.guard.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../../ecosystem/activity-log/activity-log.component.ts","../../ecosystem/application-properties/application-properties.component.ts","../../ecosystem/application-properties/application-properties.guard.ts","../../ecosystem/applications/add-external-applicaiton/add-external-application.component.ts","../../ecosystem/applications/add-web-application/add-web-application.component.ts","../../ecosystem/applications/application-list/application-list.component.ts","../../ecosystem/applications/install-from-package/install-from-package.component.ts","../../ecosystem/ecosystem-tabs.factory.ts","../../ecosystem/packages/package-changelog-tab/package-changelog-tab.component.ts","../../ecosystem/microservices/microservice-list.component.ts","../../ecosystem/microservices/add-microservice.component.ts","../../ecosystem/packages/package-list/packages-list.component.ts","../../ecosystem/packages/package-details/package-details.component.ts","../../ecosystem/packages/deploy-application/deploy-application.component.ts","../../ecosystem/packages/add-package.component.ts","../../ecosystem/features/feature-list.component.ts","../../ecosystem/packages/package-versions/packages-versions.component.ts","../../ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.ts","../../ecosystem/packages/package-versions/package-contents/contents-apps/contents-apps.component.ts","../../ecosystem/packages/package-versions/package-contents/packages-contents.component.ts","../../ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.ts","../../ecosystem/application-properties/subscription-modal/subscription-modal.component.ts","../../ecosystem/application-properties/update-application-modal/update-application-modal.component.ts","../../ecosystem/ecosystem.module.ts","../../ecosystem/packages/package.guard.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-datapoint-explorer-devicemanagement.mjs","sources":["../../datapoint-explorer/devicemanagement/index.ts","../../datapoint-explorer/devicemanagement/c8y-ngx-components-datapoint-explorer-devicemanagement.ts"],"sourcesContent":["import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, ResolveFn } from '@angular/router';\nimport { ContextRouteService, hookPreview, hookRoute, ViewContext } from '@c8y/ngx-components';\nimport { canActivateDatapointExplorer } from '@c8y/ngx-components/datapoint-explorer';\nimport {\n NameGeneratorService,\n Settings,\n WorkspaceConfiguration,\n WorkspaceConfigurationService\n} from '@c8y/ngx-components/datapoint-explorer/view';\nimport { DatapointLibraryService } from '@c8y/ngx-components/datapoint-selector';\nimport { DatapointsGraphKPIDetails } from '@c8y/ngx-components/echart';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { TimeContext } from '@c8y/ngx-components/time-context';\n\nexport const settingsResolver: ResolveFn<Settings> = async (\n snapshot: ActivatedRouteSnapshot,\n _\n) => {\n const contextRouteService = inject(ContextRouteService);\n const datapointLibraryService = inject(DatapointLibraryService);\n const workspaceConfigurationService = inject(WorkspaceConfigurationService);\n const nameGeneratorService = inject(NameGeneratorService);\n\n const routeContext = contextRouteService.getContextData(snapshot);\n const datapoints =\n (<DatapointsGraphKPIDetails[]>(\n (<unknown>await datapointLibraryService.getDatapointsOfAsset(routeContext.contextData))\n ))?.slice(0, 25) || [];\n\n let configurationId;\n\n if (datapoints.length) {\n datapoints.at(0).__active = true;\n workspaceConfigurationService.contextIdSignal.set(routeContext?.contextData?.id);\n\n configurationId = `dm-measurements-${routeContext?.contextData?.id}`;\n\n if (\n !(workspaceConfigurationService.getConfigurations() || []).some(c => c.id === configurationId)\n ) {\n const configuration: WorkspaceConfiguration = {\n id: configurationId,\n label: nameGeneratorService.generateName(),\n config: { datapoints, alarmsEventsConfigs: [] }\n };\n\n workspaceConfigurationService.saveConfigurations([configuration], configuration.id);\n\n localStorage.setItem(\n workspaceConfigurationService.LOCAL_STORAGE_DEFAULT_ID_KEY,\n configuration.id\n );\n }\n }\n\n return {\n hideWorkspaceConfig: true,\n
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-datapoint-explorer-devicemanagement.mjs","sources":["../../datapoint-explorer/devicemanagement/index.ts","../../datapoint-explorer/devicemanagement/c8y-ngx-components-datapoint-explorer-devicemanagement.ts"],"sourcesContent":["import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, ResolveFn } from '@angular/router';\nimport { ContextRouteService, hookPreview, hookRoute, ViewContext } from '@c8y/ngx-components';\nimport { canActivateDatapointExplorer } from '@c8y/ngx-components/datapoint-explorer';\nimport {\n NameGeneratorService,\n Settings,\n WorkspaceConfiguration,\n WorkspaceConfigurationService\n} from '@c8y/ngx-components/datapoint-explorer/view';\nimport { DatapointLibraryService } from '@c8y/ngx-components/datapoint-selector';\nimport { DatapointsGraphKPIDetails } from '@c8y/ngx-components/echart';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { TimeContext } from '@c8y/ngx-components/time-context';\n\nexport const settingsResolver: ResolveFn<Settings> = async (\n snapshot: ActivatedRouteSnapshot,\n _\n) => {\n const contextRouteService = inject(ContextRouteService);\n const datapointLibraryService = inject(DatapointLibraryService);\n const workspaceConfigurationService = inject(WorkspaceConfigurationService);\n const nameGeneratorService = inject(NameGeneratorService);\n\n const routeContext = contextRouteService.getContextData(snapshot);\n const datapoints =\n (<DatapointsGraphKPIDetails[]>(\n (<unknown>await datapointLibraryService.getDatapointsOfAsset(routeContext.contextData))\n ))?.slice(0, 25) || [];\n\n let configurationId;\n\n if (datapoints.length) {\n datapoints.at(0).__active = true;\n workspaceConfigurationService.contextIdSignal.set(routeContext?.contextData?.id);\n\n configurationId = `dm-measurements-${routeContext?.contextData?.id}`;\n\n if (\n !(workspaceConfigurationService.getConfigurations() || []).some(c => c.id === configurationId)\n ) {\n const configuration: WorkspaceConfiguration = {\n id: configurationId,\n label: nameGeneratorService.generateName(),\n config: { datapoints, alarmsEventsConfigs: [] }\n };\n\n workspaceConfigurationService.saveConfigurations([configuration], configuration.id);\n\n localStorage.setItem(\n workspaceConfigurationService.LOCAL_STORAGE_DEFAULT_ID_KEY,\n configuration.id\n );\n }\n }\n\n return {\n hideWorkspaceConfig: true,\n hideWidgetActions: true,\n defaultConfigurationId: configurationId,\n timeContext: <TimeContext>{ interval: 'hours' }\n };\n};\n\nexport const dataExplorerMeasurementsFeature = [\n hookRoute({\n context: ViewContext.Device,\n path: 'measurements-v2',\n priority: 800,\n icon: 'line-chart',\n label: gettext('Measurements'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-explorer/view').then(m => m.DatapointExplorerComponent),\n featureId: 'dataExplorer',\n canActivate: [canActivateDatapointExplorer],\n resolve: {\n settings: settingsResolver\n }\n }),\n hookPreview({\n key: 'ui.datapoint-explorer.v2',\n label: 'Data point explorer',\n description: () =>\n import('@c8y/style/markdown-files/datapoint-explorer-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAeO,MAAM,gBAAgB,GAAwB,OACnD,QAAgC,EAChC,CAAC,KACC;AACF,IAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACvD,IAAA,MAAM,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC/D,IAAA,MAAM,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAC3E,IAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAEzD,MAAM,YAAY,GAAG,mBAAmB,CAAC,cAAc,CAAC,QAAQ,CAAC;IACjE,MAAM,UAAU,GACd,CACY,MAAM,uBAAuB,CAAC,oBAAoB,CAAC,YAAY,CAAC,WAAW,CACrF,GAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;AAExB,IAAA,IAAI,eAAe;AAEnB,IAAA,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI;QAChC,6BAA6B,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC;QAEhF,eAAe,GAAG,mBAAmB,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE;QAEpE,IACE,CAAC,CAAC,6BAA6B,CAAC,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,eAAe,CAAC,EAC9F;AACA,YAAA,MAAM,aAAa,GAA2B;AAC5C,gBAAA,EAAE,EAAE,eAAe;AACnB,gBAAA,KAAK,EAAE,oBAAoB,CAAC,YAAY,EAAE;AAC1C,gBAAA,MAAM,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE;aAC9C;YAED,6BAA6B,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC;YAEnF,YAAY,CAAC,OAAO,CAClB,6BAA6B,CAAC,4BAA4B,EAC1D,aAAa,CAAC,EAAE,CACjB;QACH;IACF;IAEA,OAAO;AACL,QAAA,mBAAmB,EAAE,IAAI;AACzB,QAAA,iBAAiB,EAAE,IAAI;AACvB,QAAA,sBAAsB,EAAE,eAAe;AACvC,QAAA,WAAW,EAAe,EAAE,QAAQ,EAAE,OAAO;KAC9C;AACH;AAEO,MAAM,+BAA+B,GAAG;AAC7C,IAAA,SAAS,CAAC;QACR,OAAO,EAAE,WAAW,CAAC,MAAM;AAC3B,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC;AAC9B,QAAA,aAAa,EAAE,MACb,OAAO,6CAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC;AAC/F,QAAA,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,CAAC,4BAA4B,CAAC;AAC3C,QAAA,OAAO,EAAE;AACP,YAAA,QAAQ,EAAE;AACX;KACF,CAAC;AACF,IAAA,WAAW,CAAC;AACV,QAAA,GAAG,EAAE,0BAA0B;AAC/B,QAAA,KAAK,EAAE,qBAAqB;AAC5B,QAAA,WAAW,EAAE,MACX,OAAO,yDAAyD,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AACxF,QAAA,QAAQ,EAAE;AACR,YAAA,MAAM,EAAE;AACT;KACF;;;ACvFH;;AAEG;;;;"}
|
|
@@ -724,12 +724,15 @@ class EchartsOptionsService {
|
|
|
724
724
|
let isDpTemplateSelected = false;
|
|
725
725
|
// MarkPoint data
|
|
726
726
|
const markPointData = itemsOfType.reduce((acc, item) => {
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
727
|
+
// Mark the series as bound to the selected datapoint if ANY item of this type matches
|
|
728
|
+
// the current datapoint. Accumulating (instead of overwriting per item) keeps the flag
|
|
729
|
+
// correct when multiple alarms/events of the same type exist.
|
|
730
|
+
const itemMatchesSelectedDp = !!(item['selectedDatapoint'] &&
|
|
731
|
+
dp['__target'] &&
|
|
732
|
+
item['selectedDatapoint']['fragment'] === dp['fragment'] &&
|
|
733
|
+
item['selectedDatapoint']['series'] === dp['series'] &&
|
|
734
|
+
item['selectedDatapoint']['target'] === dp['__target']['id']);
|
|
735
|
+
isDpTemplateSelected = isDpTemplateSelected || itemMatchesSelectedDp;
|
|
733
736
|
if (dp.__target?.id === item.source.id) {
|
|
734
737
|
const isCleared = isAlarm && item.status === AlarmStatus.CLEARED;
|
|
735
738
|
const isEvent = !isAlarm;
|
|
@@ -763,7 +766,7 @@ class EchartsOptionsService {
|
|
|
763
766
|
symbolKeepAspect: true,
|
|
764
767
|
data: markPointData
|
|
765
768
|
},
|
|
766
|
-
yAxisIndex: idx,
|
|
769
|
+
...(displayOptions.forceMergeDatapoints ? {} : { yAxisIndex: idx }),
|
|
767
770
|
...this.chartTypesService.getSeriesOptions(dp, isMinMaxChart, renderType)
|
|
768
771
|
};
|
|
769
772
|
const markLineData = this.createMarkLine(itemsOfType, itemType);
|
|
@@ -823,7 +826,7 @@ class EchartsOptionsService {
|
|
|
823
826
|
allAlarms.find(a => a.type === params.data.itemType && params.data.value === a.creationTime); // fallback to creationTime for cleared alarms.
|
|
824
827
|
let value = '';
|
|
825
828
|
if (event) {
|
|
826
|
-
value = this.processEvent(event
|
|
829
|
+
value = this.processEvent(event);
|
|
827
830
|
}
|
|
828
831
|
if (alarm) {
|
|
829
832
|
this.processAlarm(alarm).then(alarmVal => {
|
|
@@ -1019,8 +1022,10 @@ class EchartsOptionsService {
|
|
|
1019
1022
|
value = this.processRegularSeries(series, XAxisValue, displayOptions);
|
|
1020
1023
|
}
|
|
1021
1024
|
if (value) {
|
|
1022
|
-
|
|
1023
|
-
|
|
1025
|
+
const color = echarts.format.encodeHTML(series.itemStyle?.color);
|
|
1026
|
+
const label = echarts.format.encodeHTML(series.datapointLabel);
|
|
1027
|
+
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: ${color};'></span>` + // color circle
|
|
1028
|
+
`<strong class="text-truncate">${label}</strong></div>` + // name
|
|
1024
1029
|
`${value}` // single value or min-max range
|
|
1025
1030
|
);
|
|
1026
1031
|
}
|
|
@@ -1067,11 +1072,11 @@ class EchartsOptionsService {
|
|
|
1067
1072
|
* @param event - The event object.
|
|
1068
1073
|
* @returns The processed value.
|
|
1069
1074
|
*/
|
|
1070
|
-
processEvent(event
|
|
1075
|
+
processEvent(event) {
|
|
1071
1076
|
let value = `<ul class="list-unstyled small separator-top text-default">`;
|
|
1072
1077
|
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-truncate"><label class="text-label-small m-b-0 m-r-8">${echarts.format.encodeHTML(this.translate.instant(gettext('Event type')))}</label><span class="small m-l-auto"><code title="${echarts.format.encodeHTML(event.type)}">${echarts.format.encodeHTML(event.type)}</code></span></li>`;
|
|
1073
1078
|
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-truncate"><label class="text-label-small m-b-0 m-r-8">${echarts.format.encodeHTML(this.translate.instant(gettext('Event text')))}</label><span class="small 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="${echarts.format.encodeHTML(event.text)}">${echarts.format.encodeHTML(event.text)}</span></li>`;
|
|
1074
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-truncate"><label class="text-label-small m-b-0 m-r-8">${echarts.format.encodeHTML(this.translate.instant(gettext('Event time')))}</label><span class="small m-l-auto">${echarts.format.encodeHTML(this.datePipe.transform(
|
|
1079
|
+
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-truncate"><label class="text-label-small m-b-0 m-r-8">${echarts.format.encodeHTML(this.translate.instant(gettext('Event time')))}</label><span class="small m-l-auto">${echarts.format.encodeHTML(this.datePipe.transform(event.time))}<span></li>`;
|
|
1075
1080
|
value += `</ul>`;
|
|
1076
1081
|
return value;
|
|
1077
1082
|
}
|
|
@@ -1141,22 +1146,27 @@ class EchartsOptionsService {
|
|
|
1141
1146
|
};
|
|
1142
1147
|
alarmSeries = deduplicateMarkLines(alarmSeries);
|
|
1143
1148
|
eventSeries = deduplicateMarkLines(eventSeries);
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1149
|
+
// markPoint series for multiple datapoints on the same target and alarm/event type collide by
|
|
1150
|
+
// id. Resolve each id independently: keep the series bound to the selected datapoint when a
|
|
1151
|
+
// selection exists, otherwise keep the first. Grouping by id (rather than filtering against the
|
|
1152
|
+
// whole list with a global emptiness fallback) guarantees every id resolves to exactly one
|
|
1153
|
+
// surviving series, so a paired markLine can never suppress its markPoint and the event/alarm
|
|
1154
|
+
// icons persist across datapoint selection changes and data refreshes.
|
|
1155
|
+
const deduplicateById = (seriesList) => {
|
|
1156
|
+
const groupsById = new Map();
|
|
1157
|
+
seriesList.forEach(series => {
|
|
1158
|
+
const id = series.id;
|
|
1159
|
+
const group = groupsById.get(id) ?? [];
|
|
1160
|
+
group.push(series);
|
|
1161
|
+
groupsById.set(id, group);
|
|
1162
|
+
});
|
|
1163
|
+
return Array.from(groupsById.values(), group => {
|
|
1164
|
+
const selected = group.find(series => series['isDpTemplateSelected']);
|
|
1165
|
+
return selected ?? group[0];
|
|
1166
|
+
});
|
|
1150
1167
|
};
|
|
1151
|
-
const
|
|
1152
|
-
|
|
1153
|
-
let deduplicatedAlarms = alarmSeries.filter(deduplicateFilterCallback);
|
|
1154
|
-
if (deduplicatedAlarms.length === 0) {
|
|
1155
|
-
deduplicatedAlarms = alarmSeries.filter(deduplicateFilterCallbackFallback);
|
|
1156
|
-
}
|
|
1157
|
-
if (deduplicatedEvents.length === 0) {
|
|
1158
|
-
deduplicatedEvents = eventSeries.filter(deduplicateFilterCallbackFallback);
|
|
1159
|
-
}
|
|
1168
|
+
const deduplicatedEvents = deduplicateById(eventSeries);
|
|
1169
|
+
const deduplicatedAlarms = deduplicateById(alarmSeries);
|
|
1160
1170
|
return [...series, ...deduplicatedEvents, ...deduplicatedAlarms];
|
|
1161
1171
|
}
|
|
1162
1172
|
groupByType(items, typeField) {
|
|
@@ -1245,12 +1255,16 @@ class EchartsOptionsService {
|
|
|
1245
1255
|
}));
|
|
1246
1256
|
const creationTime = new Date(item.creationTime).getTime();
|
|
1247
1257
|
const lastUpdatedTime = new Date(item['lastUpdated']).getTime();
|
|
1258
|
+
// Events are positioned on the chart by their `time` (when the event occurred), while alarms
|
|
1259
|
+
// use their creation time.
|
|
1260
|
+
const anchorTime = isEvent ? new Date(item['time']).getTime() : creationTime;
|
|
1261
|
+
const anchorTimeValue = isEvent ? item['time'] : item.creationTime;
|
|
1248
1262
|
let coordCreationTime;
|
|
1249
1263
|
let coordLastUpdatedTime;
|
|
1250
1264
|
if (realtime) {
|
|
1251
1265
|
const lastValue = dpValuesArray[dpValuesArray.length - 1];
|
|
1252
1266
|
coordCreationTime = [
|
|
1253
|
-
|
|
1267
|
+
anchorTimeValue,
|
|
1254
1268
|
lastValue?.values[0]?.min ?? lastValue?.values[1] ?? null
|
|
1255
1269
|
];
|
|
1256
1270
|
coordLastUpdatedTime = [
|
|
@@ -1259,12 +1273,12 @@ class EchartsOptionsService {
|
|
|
1259
1273
|
];
|
|
1260
1274
|
}
|
|
1261
1275
|
else {
|
|
1262
|
-
const closestDpValue = this.interpolateBetweenTwoDps(dpValuesArray,
|
|
1263
|
-
const dpValuesForNewAlarms = this.getClosestDpValueToTargetTime(dpValuesArray,
|
|
1276
|
+
const closestDpValue = this.interpolateBetweenTwoDps(dpValuesArray, anchorTime);
|
|
1277
|
+
const dpValuesForNewAlarms = this.getClosestDpValueToTargetTime(dpValuesArray, anchorTime);
|
|
1264
1278
|
const closestDpValueLastUpdated = this.interpolateBetweenTwoDps(dpValuesArray, lastUpdatedTime);
|
|
1265
1279
|
const dpValuesForNewAlarmsLastUpdated = this.getClosestDpValueToTargetTime(dpValuesArray, lastUpdatedTime);
|
|
1266
1280
|
coordCreationTime = [
|
|
1267
|
-
|
|
1281
|
+
anchorTimeValue,
|
|
1268
1282
|
closestDpValue?.values[0]?.min ??
|
|
1269
1283
|
closestDpValue?.values[1] ??
|
|
1270
1284
|
dpValuesForNewAlarms?.values[0]?.min ??
|
|
@@ -2532,18 +2546,22 @@ class ChartsComponent {
|
|
|
2532
2546
|
}
|
|
2533
2547
|
async loadAlarmsAndEvents(customTimeRange) {
|
|
2534
2548
|
const timeRange = this.getTimeRange();
|
|
2535
|
-
const
|
|
2536
|
-
|
|
2537
|
-
|
|
2538
|
-
|
|
2549
|
+
const dateFrom = customTimeRange ? customTimeRange.dateFrom : timeRange.dateFrom;
|
|
2550
|
+
const dateTo = customTimeRange ? customTimeRange.dateTo : timeRange.dateTo;
|
|
2551
|
+
// Events are positioned on the chart by their `time` property, so they must be retrieved by
|
|
2552
|
+
// the same property (`dateFrom`/`dateTo` filter the events API on `time`). Filtering by the
|
|
2553
|
+
// update/creation window instead dropped events whose `time` fell inside the visible range.
|
|
2554
|
+
const eventsTimeRange = { dateFrom, dateTo };
|
|
2555
|
+
// Alarms keep the update window: an alarm active within the range may have been created earlier.
|
|
2556
|
+
const alarmsTimeRange = { lastUpdatedFrom: dateFrom, createdTo: dateTo };
|
|
2539
2557
|
if (!this.config.alarmsEventsConfigs)
|
|
2540
2558
|
return;
|
|
2541
2559
|
const visibleAlarmsOrEvents = this.config.alarmsEventsConfigs?.filter(alarmOrEvent => !alarmOrEvent.__hidden && alarmOrEvent.__active);
|
|
2542
2560
|
const alarms = visibleAlarmsOrEvents?.filter(alarmOrEvent => alarmOrEvent.timelineType === 'ALARM');
|
|
2543
2561
|
const events = visibleAlarmsOrEvents?.filter(alarmOrEvent => alarmOrEvent.timelineType === 'EVENT');
|
|
2544
2562
|
const [listedEvents, listedAlarms] = await Promise.all([
|
|
2545
|
-
this.chartEventsService.listEvents(
|
|
2546
|
-
this.chartAlarmsService.listAlarms(
|
|
2563
|
+
this.chartEventsService.listEvents(eventsTimeRange, events),
|
|
2564
|
+
this.chartAlarmsService.listAlarms(alarmsTimeRange, alarms)
|
|
2547
2565
|
]);
|
|
2548
2566
|
this.events = listedEvents;
|
|
2549
2567
|
this.alarms = listedAlarms;
|