@c8y/ngx-components 1023.14.8 → 1023.14.36
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/ai/index.d.ts +4 -2
- package/ai/index.d.ts.map +1 -1
- package/auth-configuration/index.d.ts +6 -3
- package/auth-configuration/index.d.ts.map +1 -1
- package/context-dashboard/index.d.ts +1 -0
- package/context-dashboard/index.d.ts.map +1 -1
- package/datapoint-explorer/view/index.d.ts +2 -1
- package/datapoint-explorer/view/index.d.ts.map +1 -1
- package/datapoint-library/details/index.d.ts.map +1 -1
- package/datapoint-selector/index.d.ts +6 -3
- package/datapoint-selector/index.d.ts.map +1 -1
- package/device-grid/index.d.ts.map +1 -1
- package/echart/index.d.ts +5 -0
- package/echart/index.d.ts.map +1 -1
- package/echart/models/index.d.ts +5 -0
- package/echart/models/index.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +16 -16
- package/fesm2022/c8y-ngx-components-advanced-software-management.mjs +7 -7
- package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +9 -9
- package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +12 -12
- package/fesm2022/c8y-ngx-components-ai.mjs +11 -9
- package/fesm2022/c8y-ngx-components-ai.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +34 -34
- package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +4 -4
- package/fesm2022/c8y-ngx-components-alarms.mjs +76 -76
- package/fesm2022/c8y-ngx-components-api.mjs +7 -7
- package/fesm2022/c8y-ngx-components-app-logs.mjs +10 -10
- package/fesm2022/c8y-ngx-components-asset-properties.mjs +39 -39
- package/fesm2022/{c8y-ngx-components-asset-property-grid.component-B1q7kXRu.mjs → c8y-ngx-components-asset-property-grid.component-CDjsn5j9.mjs} +13 -13
- package/fesm2022/{c8y-ngx-components-asset-property-grid.component-B1q7kXRu.mjs.map → c8y-ngx-components-asset-property-grid.component-CDjsn5j9.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs +32 -32
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs +244 -170
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-binary-file-download.mjs +7 -7
- package/fesm2022/c8y-ngx-components-bookmarks.mjs +13 -13
- package/fesm2022/c8y-ngx-components-branding-base-branding.mjs +4 -4
- package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs +7 -7
- package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs +7 -7
- package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs +3 -3
- package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +7 -7
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +15 -15
- package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +6 -6
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +36 -36
- package/fesm2022/c8y-ngx-components-branding-shared.mjs +13 -13
- package/fesm2022/c8y-ngx-components-child-devices.mjs +13 -13
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs +40 -40
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-Bl18pHcM.mjs → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-SA0syLy7.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-Bl18pHcM.mjs.map → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-SA0syLy7.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-C5QMFdX1.mjs → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-BOmgJI14.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-C5QMFdX1.mjs.map → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-BOmgJI14.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-C-Lc5Ble.mjs → c8y-ngx-components-computed-asset-properties-event-count-config.component-CaTb9cph.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-C-Lc5Ble.mjs.map → c8y-ngx-components-computed-asset-properties-event-count-config.component-CaTb9cph.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BXfM7hTQ.mjs → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-DkrSvf9F.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BXfM7hTQ.mjs.map → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-DkrSvf9F.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +6 -6
- package/fesm2022/c8y-ngx-components-connectivity.mjs +53 -53
- package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs +10 -10
- package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs +7 -7
- package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +11 -11
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BuGMpNrA.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-DM3hASUP.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BuGMpNrA.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-DM3hASUP.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DN-f35bA.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-CC5346kW.mjs} +10 -10
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DN-f35bA.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-CC5346kW.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-BlIVEV__.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-CHuc--XM.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-BlIVEV__.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component-CHuc--XM.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs +10 -10
- package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +7 -7
- package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs +3 -3
- package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs +3 -3
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +113 -108
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-m7YeEj9R.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-D0C7SH6L.mjs} +16 -16
- package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-m7YeEj9R.mjs.map → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-D0C7SH6L.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +12 -12
- package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs +6 -6
- package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +22 -22
- package/fesm2022/c8y-ngx-components-data-broker.mjs +7 -7
- package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +3 -3
- package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +3 -3
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +34 -26
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +13 -13
- package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +6 -19
- package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +3 -3
- package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs +3 -3
- package/fesm2022/c8y-ngx-components-datapoint-library.mjs +4 -4
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +56 -57
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +34 -34
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +16 -16
- package/fesm2022/c8y-ngx-components-device-grid.mjs +48 -44
- package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-list.mjs +22 -22
- package/fesm2022/c8y-ngx-components-device-map.mjs +12 -12
- package/fesm2022/c8y-ngx-components-device-profile.mjs +34 -34
- package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs +3 -3
- package/fesm2022/c8y-ngx-components-device-protocols.mjs +16 -16
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +13 -13
- package/fesm2022/c8y-ngx-components-device-shell.mjs +31 -31
- package/fesm2022/c8y-ngx-components-diagnostics.mjs +13 -13
- package/fesm2022/c8y-ngx-components-echart-models.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +137 -59
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +43 -43
- package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +7 -7
- package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +10 -10
- package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs +7 -7
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +46 -46
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +82 -82
- package/fesm2022/c8y-ngx-components-editor.mjs +6 -6
- package/fesm2022/c8y-ngx-components-events-events-timeline.mjs +4 -4
- package/fesm2022/c8y-ngx-components-events-events-timeline.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-events.mjs +3 -3
- package/fesm2022/c8y-ngx-components-exports-list.mjs +6 -6
- package/fesm2022/c8y-ngx-components-file-preview.mjs +7 -7
- package/fesm2022/c8y-ngx-components-files-repository.mjs +19 -19
- package/fesm2022/c8y-ngx-components-global-context.mjs +134 -134
- package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector.mjs +21 -21
- package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-interval-picker.mjs +3 -3
- package/fesm2022/c8y-ngx-components-location.mjs +28 -28
- package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +16 -16
- package/fesm2022/c8y-ngx-components-map.mjs +19 -19
- package/fesm2022/c8y-ngx-components-messaging-management.mjs +55 -55
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +19 -19
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +3 -3
- package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +12 -12
- package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +10 -10
- package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +12 -12
- package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs +10 -12
- package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-shared.mjs +10 -10
- package/fesm2022/c8y-ngx-components-operations-status-filter.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations.mjs +7 -7
- package/fesm2022/c8y-ngx-components-pending-mo-request.mjs +7 -7
- package/fesm2022/c8y-ngx-components-platform-configuration.mjs +10 -10
- package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +38 -38
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +58 -58
- package/fesm2022/c8y-ngx-components-register-device.mjs +58 -58
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +9 -9
- package/fesm2022/c8y-ngx-components-remote-access-data.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +6 -6
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +6 -6
- package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +3 -3
- package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs +6 -6
- package/fesm2022/c8y-ngx-components-replace-device.mjs +10 -10
- package/fesm2022/c8y-ngx-components-report-dashboard.mjs +16 -16
- package/fesm2022/c8y-ngx-components-reports.mjs +19 -19
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs +48 -48
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs +33 -33
- package/fesm2022/c8y-ngx-components-repository-shared.mjs +34 -34
- package/fesm2022/c8y-ngx-components-repository-software.mjs +42 -42
- package/fesm2022/c8y-ngx-components-repository.mjs +4 -4
- package/fesm2022/c8y-ngx-components-search.mjs +48 -45
- package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs +6 -6
- package/fesm2022/c8y-ngx-components-sensor-phone.mjs +7 -7
- package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +3 -3
- package/fesm2022/c8y-ngx-components-services-shared.mjs +3 -3
- package/fesm2022/c8y-ngx-components-services.mjs +29 -29
- package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +16 -16
- package/fesm2022/c8y-ngx-components-sms-gateway.mjs +7 -7
- package/fesm2022/c8y-ngx-components-static-assets-data.mjs +3 -3
- package/fesm2022/c8y-ngx-components-static-assets-modal.mjs +9 -9
- package/fesm2022/c8y-ngx-components-static-assets.mjs +6 -6
- package/fesm2022/c8y-ngx-components-sub-assets.mjs +76 -66
- package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-tenants.mjs +40 -40
- package/fesm2022/c8y-ngx-components-time-context.mjs +14 -7
- package/fesm2022/c8y-ngx-components-time-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-tracking.mjs +15 -15
- package/fesm2022/c8y-ngx-components-tracking.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -3
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +12 -12
- package/fesm2022/c8y-ngx-components-translation-editor.mjs +6 -6
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +33 -33
- package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs +4 -4
- package/fesm2022/c8y-ngx-components-upgrade.mjs +41 -41
- package/fesm2022/c8y-ngx-components-user-roles.mjs +10 -10
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs +4 -4
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +6 -6
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +19 -19
- package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +13 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +27 -27
- package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +7 -7
- package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +24 -24
- package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +9 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +18 -18
- package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +6 -6
- package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +6 -6
- package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +9 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +9 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +18 -18
- package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +9 -9
- package/fesm2022/c8y-ngx-components.mjs +9428 -9410
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/global-context/index.d.ts.map +1 -1
- package/index.d.ts +5815 -5815
- package/index.d.ts.map +1 -1
- package/locales/de.po +79 -94
- package/locales/es.po +13 -11
- package/locales/fr.po +14 -12
- package/locales/ja_JP.po +11 -10
- package/locales/ko.po +13 -11
- package/locales/locales.pot +17 -8
- package/locales/nl.po +14 -12
- package/locales/pl.po +14 -12
- package/locales/pt_BR.po +13 -11
- package/locales/zh_CN.po +12 -11
- package/locales/zh_TW.po +15 -12
- package/operations/operations-timeline/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/search/index.d.ts +5 -5
- package/search/index.d.ts.map +1 -1
- package/sub-assets/index.d.ts +3 -3
- package/sub-assets/index.d.ts.map +1 -1
- package/time-context/index.d.ts +3 -2
- package/time-context/index.d.ts.map +1 -1
- package/widgets/implementations/datapoints-graph/index.d.ts.map +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Input, Component, EventEmitter,
|
|
2
|
+
import { Injectable, inject, SecurityContext, Input, Component, EventEmitter, Output, ViewChild } from '@angular/core';
|
|
3
3
|
import { gettext } from '@c8y/ngx-components/gettext';
|
|
4
4
|
import { from, merge, interval, BehaviorSubject, of, lastValueFrom, defer, forkJoin } from 'rxjs';
|
|
5
5
|
import { mergeMap, map, tap, throttleTime, buffer, switchMap } from 'rxjs/operators';
|
|
@@ -20,6 +20,7 @@ import { NgxEchartsModule, NGX_ECHARTS_CONFIG } from 'ngx-echarts';
|
|
|
20
20
|
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
21
21
|
import * as i1$3 from 'ngx-bootstrap/popover';
|
|
22
22
|
import { PopoverModule } from 'ngx-bootstrap/popover';
|
|
23
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
23
24
|
import * as i2 from 'ngx-bootstrap/dropdown';
|
|
24
25
|
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
|
|
25
26
|
import * as i3 from '@angular/cdk/a11y';
|
|
@@ -97,12 +98,26 @@ class YAxisService {
|
|
|
97
98
|
getYAxis(datapointsWithValues, YAxisOptions) {
|
|
98
99
|
const YAxisPlacement = this.getYAxisPlacement(datapointsWithValues);
|
|
99
100
|
if (YAxisOptions.forceMergeDatapoints) {
|
|
100
|
-
const firstDp = datapointsWithValues[0];
|
|
101
|
-
const unit = firstDp?.unit ? `[${firstDp.unit}]` : '';
|
|
102
101
|
return {
|
|
103
|
-
name:
|
|
102
|
+
name: Array.from(datapointsWithValues)
|
|
103
|
+
.map((dp, index) => `{${index}|${dp.unit}}`)
|
|
104
|
+
.join(' /'),
|
|
104
105
|
nameLocation: 'middle',
|
|
106
|
+
nameTruncate: {
|
|
107
|
+
maxWidth: 350
|
|
108
|
+
},
|
|
105
109
|
nameGap: 25,
|
|
110
|
+
nameTextStyle: {
|
|
111
|
+
// add rich text to support multiple colors for different dp units
|
|
112
|
+
rich: {
|
|
113
|
+
...Array.from(datapointsWithValues).reduce((acc, dp, index) => {
|
|
114
|
+
acc[index] = {
|
|
115
|
+
color: dp.color || '#6f7079'
|
|
116
|
+
};
|
|
117
|
+
return acc;
|
|
118
|
+
}, {})
|
|
119
|
+
}
|
|
120
|
+
},
|
|
106
121
|
type: 'value',
|
|
107
122
|
animation: true,
|
|
108
123
|
axisLabel: {
|
|
@@ -127,13 +142,26 @@ class YAxisService {
|
|
|
127
142
|
label: {
|
|
128
143
|
show: false
|
|
129
144
|
}
|
|
130
|
-
}
|
|
145
|
+
},
|
|
146
|
+
...(YAxisOptions.setYaxisStartToZero === false && { min: 'dataMin' }) // we only set min when the option is false
|
|
131
147
|
};
|
|
132
148
|
}
|
|
133
149
|
const matchingDpSet = new Set();
|
|
134
150
|
const firstOccurrence = new Set();
|
|
135
151
|
return datapointsWithValues.map((dp, index) => {
|
|
152
|
+
const barValues = dp.lineType === 'bars'
|
|
153
|
+
? Object.values(dp.values ?? {})
|
|
154
|
+
.flatMap(v => Object.values(v[0] ?? {}))
|
|
155
|
+
.filter((v) => typeof v === 'number')
|
|
156
|
+
: [];
|
|
157
|
+
const hasBarValues = barValues.length > 0;
|
|
158
|
+
const barDataMin = hasBarValues ? Math.min(...barValues) : undefined;
|
|
159
|
+
const barDataMax = hasBarValues ? Math.max(...barValues) : undefined;
|
|
160
|
+
const allBarsPositive = hasBarValues && barValues.every(v => v > 0);
|
|
136
161
|
const isDefined = (value) => value !== null && value !== undefined;
|
|
162
|
+
const barMinOffset = dp.lineType === 'bars' && allBarsPositive && isDefined(barDataMin) && isDefined(barDataMax)
|
|
163
|
+
? (barDataMax - barDataMin) * 0.1 || barDataMin * 0.1
|
|
164
|
+
: 0;
|
|
137
165
|
const isMatchingDp = (dp1, dp2) => dp1.min === dp2.min &&
|
|
138
166
|
dp1.max === dp2.max &&
|
|
139
167
|
isDefined(dp1.min) &&
|
|
@@ -160,7 +188,7 @@ class YAxisService {
|
|
|
160
188
|
? YAxisOptions.mergeMatchingDatapoints
|
|
161
189
|
? firstOccurrence.has(dp)
|
|
162
190
|
? Array.from(matchingDpSet)
|
|
163
|
-
.map(dp => `{${
|
|
191
|
+
.map((dp, index) => `{${index}|${dp.unit}}`)
|
|
164
192
|
.join(' /')
|
|
165
193
|
: matchingDpRange
|
|
166
194
|
? ''
|
|
@@ -168,13 +196,15 @@ class YAxisService {
|
|
|
168
196
|
: `${dp.label} [${dp.unit}]`
|
|
169
197
|
: '',
|
|
170
198
|
nameLocation: 'middle',
|
|
199
|
+
nameTruncate: {
|
|
200
|
+
maxWidth: 350
|
|
201
|
+
},
|
|
171
202
|
nameGap: 25,
|
|
172
203
|
nameTextStyle: {
|
|
173
204
|
// add rich text to support multiple colors for different dp units
|
|
174
205
|
rich: {
|
|
175
|
-
...Array.from(matchingDpSet).reduce((acc, dp) => {
|
|
176
|
-
|
|
177
|
-
acc[accKey] = {
|
|
206
|
+
...Array.from(matchingDpSet).reduce((acc, dp, index) => {
|
|
207
|
+
acc[index] = {
|
|
178
208
|
color: dp.color
|
|
179
209
|
};
|
|
180
210
|
return acc;
|
|
@@ -220,7 +250,13 @@ class YAxisService {
|
|
|
220
250
|
show: false
|
|
221
251
|
}
|
|
222
252
|
},
|
|
223
|
-
...(dp.min
|
|
253
|
+
...(isDefined(dp.min)
|
|
254
|
+
? { min: dp.min }
|
|
255
|
+
: YAxisOptions.setYaxisStartToZero === false
|
|
256
|
+
? dp.lineType === 'bars' && allBarsPositive && isDefined(barDataMin)
|
|
257
|
+
? { min: Math.max(0, barDataMin - barMinOffset) }
|
|
258
|
+
: { min: 'dataMin' }
|
|
259
|
+
: {}),
|
|
224
260
|
...(dp.max && { max: dp.max })
|
|
225
261
|
};
|
|
226
262
|
});
|
|
@@ -261,10 +297,10 @@ class YAxisService {
|
|
|
261
297
|
return 'left';
|
|
262
298
|
}
|
|
263
299
|
}
|
|
264
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
265
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
300
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: YAxisService, deps: [{ token: i1.AppStateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
301
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: YAxisService }); }
|
|
266
302
|
}
|
|
267
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
303
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: YAxisService, decorators: [{
|
|
268
304
|
type: Injectable
|
|
269
305
|
}], ctorParameters: () => [{ type: i1.AppStateService }] });
|
|
270
306
|
|
|
@@ -361,10 +397,10 @@ class ChartTypesService {
|
|
|
361
397
|
const baseOption = this.lineSeriesOption(color, isMinMaxChart, renderType);
|
|
362
398
|
return { ...baseOption, step: 'end' };
|
|
363
399
|
}
|
|
364
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
365
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
400
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartTypesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
401
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartTypesService }); }
|
|
366
402
|
}
|
|
367
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
403
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartTypesService, decorators: [{
|
|
368
404
|
type: Injectable
|
|
369
405
|
}] });
|
|
370
406
|
|
|
@@ -386,6 +422,7 @@ class EchartsOptionsService {
|
|
|
386
422
|
showSplitLines: showSplitLines.YAxis,
|
|
387
423
|
mergeMatchingDatapoints: displayOptions.mergeMatchingDatapoints,
|
|
388
424
|
forceMergeDatapoints: displayOptions.forceMergeDatapoints,
|
|
425
|
+
setYaxisStartToZero: displayOptions.setYaxisStartToZero,
|
|
389
426
|
showLabelAndUnit: displayOptions.showLabelAndUnit
|
|
390
427
|
});
|
|
391
428
|
const AXIS_PADDING = 20;
|
|
@@ -500,8 +537,8 @@ class EchartsOptionsService {
|
|
|
500
537
|
show: false
|
|
501
538
|
},
|
|
502
539
|
xAxis: {
|
|
503
|
-
min: aggregatedDatapoint
|
|
504
|
-
? Object.keys(aggregatedDatapoint.values)
|
|
540
|
+
min: Object.keys(aggregatedDatapoint.values || {}).length > 0
|
|
541
|
+
? Object.keys(aggregatedDatapoint.values || {})
|
|
505
542
|
.map(date => new Date(date).valueOf())
|
|
506
543
|
.sort((a, b) => a - b)[0]
|
|
507
544
|
: new Date(timeRange.dateFrom).valueOf() - intervalInMs,
|
|
@@ -632,6 +669,7 @@ class EchartsOptionsService {
|
|
|
632
669
|
displayMarkedPoint: true,
|
|
633
670
|
mergeMatchingDatapoints: false,
|
|
634
671
|
forceMergeDatapoints: false,
|
|
672
|
+
setYaxisStartToZero: false,
|
|
635
673
|
showLabelAndUnit: false,
|
|
636
674
|
showSlider: false
|
|
637
675
|
}, id, idx, realtime) {
|
|
@@ -993,9 +1031,9 @@ class EchartsOptionsService {
|
|
|
993
1031
|
*/
|
|
994
1032
|
processEvent(event, XAxisValue) {
|
|
995
1033
|
let value = `<ul class="list-unstyled small separator-top text-default">`;
|
|
996
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-
|
|
997
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-
|
|
998
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-
|
|
1034
|
+
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>`;
|
|
1035
|
+
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>`;
|
|
1036
|
+
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(XAxisValue))}<span></li>`;
|
|
999
1037
|
value += `</ul>`;
|
|
1000
1038
|
return value;
|
|
1001
1039
|
}
|
|
@@ -1006,19 +1044,19 @@ class EchartsOptionsService {
|
|
|
1006
1044
|
*/
|
|
1007
1045
|
async processAlarm(alarm) {
|
|
1008
1046
|
let value = `<ul class="list-unstyled small separator-top text-default m-0">`;
|
|
1009
|
-
value += `<li class="p-t-4 p-b-4 d-flex a-i-center separator-bottom text-
|
|
1047
|
+
value += `<li class="p-t-4 p-b-4 d-flex a-i-center separator-bottom text-truncate"><label class="text-label-small m-b-0 m-r-8">${echarts.format.encodeHTML(this.translate.instant(gettext('Alarm severity')))}</label>`;
|
|
1010
1048
|
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-${echarts.format.encodeHTML(this.severityIconPipe.transform(alarm.severity))} ${alarm.severity.toLowerCase()}" > </i> ${this.severityLabelPipe.transform(alarm.severity)} </span></li>`;
|
|
1011
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-
|
|
1012
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-
|
|
1013
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-
|
|
1049
|
+
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('Alarm type')))}</label><span class="small m-l-auto"><code title="${echarts.format.encodeHTML(alarm.type)}">${echarts.format.encodeHTML(alarm.type)}</code></span></li>`;
|
|
1050
|
+
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('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="${echarts.format.encodeHTML(this.translate.instant(alarm.text))}">${echarts.format.encodeHTML(this.translate.instant(alarm.text))}</span></li>`;
|
|
1051
|
+
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('Last updated')))}</label><span class="small m-l-auto">${echarts.format.encodeHTML(this.datePipe.transform(alarm['lastUpdated']))}</span></li>`;
|
|
1014
1052
|
const exists = await this.alarmRouteExists();
|
|
1015
1053
|
if (exists) {
|
|
1016
1054
|
const currentUrl = window.location.href;
|
|
1017
1055
|
const baseUrlIndex = currentUrl.indexOf(INDEX_HTML);
|
|
1018
1056
|
const baseUrl = currentUrl.substring(0, baseUrlIndex + INDEX_HTML.length);
|
|
1019
|
-
value += `<li class="p-t-4 p-b-4 d-flex separator-bottom text-
|
|
1057
|
+
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('Open details')))}</label><span class="small m-l-auto"><a href="${baseUrl}#/alarms/${alarm.id}/details?showCleared=true">${echarts.format.encodeHTML(this.translate.instant(gettext('Alarm details')))}</a></span></li>`;
|
|
1020
1058
|
}
|
|
1021
|
-
value += `<li class="p-t-4 p-b-4 d-flex text-
|
|
1059
|
+
value += `<li class="p-t-4 p-b-4 d-flex text-truncate"><label class="text-label-small m-b-0 m-r-8">${echarts.format.encodeHTML(this.translate.instant(gettext('Alarm count')))}</label><span class="small m-l-auto"><span class="badge badge-info">${alarm.count}</span></span></li>`;
|
|
1022
1060
|
value += `</ul>`;
|
|
1023
1061
|
return value;
|
|
1024
1062
|
}
|
|
@@ -1369,7 +1407,7 @@ class EchartsOptionsService {
|
|
|
1369
1407
|
value =
|
|
1370
1408
|
`<div class="d-flex a-i-center separator-top text-default p-t-8 p-b-8">` +
|
|
1371
1409
|
`<label class="text-12 m-r-8 m-b-0">${echarts.format.encodeHTML(this.datePipe.transform(minValue[0]))}</label>` +
|
|
1372
|
-
`<div class="m-l-auto text-12"
|
|
1410
|
+
`<div class="m-l-auto text-12 text-truncate">${echarts.format.encodeHTML(minValue[1].toFixed(displayOptions.numberOfDecimalPlaces ?? 2) ?? '--')} — ${echarts.format.encodeHTML(maxValue[1].toFixed(displayOptions.numberOfDecimalPlaces ?? 2) ?? '--')}</div>` +
|
|
1373
1411
|
(series['datapointUnit']
|
|
1374
1412
|
? ` ${echarts.format.encodeHTML(series['datapointUnit'])}`
|
|
1375
1413
|
: '') +
|
|
@@ -1387,7 +1425,7 @@ class EchartsOptionsService {
|
|
|
1387
1425
|
value =
|
|
1388
1426
|
`<div class="d-flex a-i-center separator-top text-default p-t-8 p-b-8">` +
|
|
1389
1427
|
`<label class="text-12 m-r-8 m-b-0">${echarts.format.encodeHTML(this.datePipe.transform(seriesValue[0]))}</label>` +
|
|
1390
|
-
`<div class="m-l-auto text-12"
|
|
1428
|
+
`<div class="m-l-auto text-12 text-truncate">${echarts.format.encodeHTML(seriesValue[1]?.toFixed(displayOptions.numberOfDecimalPlaces ?? 2) ?? '--')}` +
|
|
1391
1429
|
(series['datapointUnit']
|
|
1392
1430
|
? ` ${echarts.format.encodeHTML(series['datapointUnit'])}`
|
|
1393
1431
|
: '') +
|
|
@@ -1415,10 +1453,10 @@ class EchartsOptionsService {
|
|
|
1415
1453
|
return acc;
|
|
1416
1454
|
}, null);
|
|
1417
1455
|
}
|
|
1418
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1419
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1456
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EchartsOptionsService, deps: [{ token: i1.DatePipe }, { token: YAxisService }, { token: ChartTypesService }, { token: i4.AlarmSeverityToIconPipe }, { token: i4.AlarmSeverityToLabelPipe }, { token: i5.TranslateService }, { token: i6.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1457
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EchartsOptionsService }); }
|
|
1420
1458
|
}
|
|
1421
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EchartsOptionsService, decorators: [{
|
|
1422
1460
|
type: Injectable
|
|
1423
1461
|
}], ctorParameters: () => [{ type: i1.DatePipe }, { type: YAxisService }, { type: ChartTypesService }, { type: i4.AlarmSeverityToIconPipe }, { type: i4.AlarmSeverityToLabelPipe }, { type: i5.TranslateService }, { type: i6.Router }] });
|
|
1424
1462
|
|
|
@@ -1670,20 +1708,29 @@ class ChartRealtimeService {
|
|
|
1670
1708
|
datapointOutOfSyncCallback(datapoint);
|
|
1671
1709
|
}
|
|
1672
1710
|
}
|
|
1673
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1674
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1711
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartRealtimeService, deps: [{ token: i1.MeasurementRealtimeService }, { token: i1.AlarmRealtimeService }, { token: i1.EventRealtimeService }, { token: EchartsOptionsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1712
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartRealtimeService }); }
|
|
1675
1713
|
}
|
|
1676
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1714
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartRealtimeService, decorators: [{
|
|
1677
1715
|
type: Injectable
|
|
1678
1716
|
}], ctorParameters: () => [{ type: i1.MeasurementRealtimeService }, { type: i1.AlarmRealtimeService }, { type: i1.EventRealtimeService }, { type: EchartsOptionsService }] });
|
|
1679
1717
|
|
|
1680
1718
|
class ChartAlertsComponent {
|
|
1681
|
-
|
|
1682
|
-
|
|
1719
|
+
constructor() {
|
|
1720
|
+
this.sanitizer = inject(DomSanitizer);
|
|
1721
|
+
}
|
|
1722
|
+
sanitizeAlertText(text) {
|
|
1723
|
+
if (typeof text === 'string') {
|
|
1724
|
+
return this.sanitizer.sanitize(SecurityContext.HTML, text);
|
|
1725
|
+
}
|
|
1726
|
+
return text;
|
|
1727
|
+
}
|
|
1728
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartAlertsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1729
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ChartAlertsComponent, isStandalone: true, selector: "c8y-chart-alerts", inputs: { alerts: "alerts" }, ngImport: i0, template: "@if (alerts?.anyAlertExists$ | async) {\n <div class=\"overlay-center-vertically d-col p-16 p-r-24 p-l-24\">\n @for (alertGroup of alerts?.alertGroups; track alertGroup) {\n @if (alertGroup.value.alerts.length) {\n <div\n class=\"alert\"\n role=\"alert\"\n [ngClass]=\"'alert-' + alertGroup.type\"\n >\n @if (alertGroup.value.alertDismissal.dismissStrategy !== 'none') {\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 }\n\n @for (alertItem of alertGroup.value.alerts; track alertItem) {\n <p [innerHTML]=\"sanitizeAlertText(alertItem.text)\"></p>\n }\n\n @if (alertGroup.value.alertDismissal.dismissStrategy !== 'none') {\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 }\n </div>\n }\n }\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
|
|
1683
1730
|
}
|
|
1684
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1731
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartAlertsComponent, decorators: [{
|
|
1685
1732
|
type: Component,
|
|
1686
|
-
args: [{ selector: 'c8y-chart-alerts', standalone: true, imports: [CommonModule], template: "
|
|
1733
|
+
args: [{ selector: 'c8y-chart-alerts', standalone: true, imports: [CommonModule], template: "@if (alerts?.anyAlertExists$ | async) {\n <div class=\"overlay-center-vertically d-col p-16 p-r-24 p-l-24\">\n @for (alertGroup of alerts?.alertGroups; track alertGroup) {\n @if (alertGroup.value.alerts.length) {\n <div\n class=\"alert\"\n role=\"alert\"\n [ngClass]=\"'alert-' + alertGroup.type\"\n >\n @if (alertGroup.value.alertDismissal.dismissStrategy !== 'none') {\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 }\n\n @for (alertItem of alertGroup.value.alerts; track alertItem) {\n <p [innerHTML]=\"sanitizeAlertText(alertItem.text)\"></p>\n }\n\n @if (alertGroup.value.alertDismissal.dismissStrategy !== 'none') {\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 }\n </div>\n }\n }\n </div>\n}\n" }]
|
|
1687
1734
|
}], propDecorators: { alerts: [{
|
|
1688
1735
|
type: Input
|
|
1689
1736
|
}] } });
|
|
@@ -1721,10 +1768,10 @@ class ChartEventsService {
|
|
|
1721
1768
|
const result = await Promise.all(promises);
|
|
1722
1769
|
return result.flat();
|
|
1723
1770
|
}
|
|
1724
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1725
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1771
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartEventsService, deps: [{ token: i1$2.EventService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1772
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartEventsService }); }
|
|
1726
1773
|
}
|
|
1727
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1774
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartEventsService, decorators: [{
|
|
1728
1775
|
type: Injectable
|
|
1729
1776
|
}], ctorParameters: () => [{ type: i1$2.EventService }] });
|
|
1730
1777
|
|
|
@@ -1775,10 +1822,10 @@ class ChartAlarmsService {
|
|
|
1775
1822
|
const result = await Promise.all(promises);
|
|
1776
1823
|
return result.flat();
|
|
1777
1824
|
}
|
|
1778
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1779
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1825
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartAlarmsService, deps: [{ token: i1$2.AlarmService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1826
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartAlarmsService }); }
|
|
1780
1827
|
}
|
|
1781
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1828
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartAlarmsService, decorators: [{
|
|
1782
1829
|
type: Injectable
|
|
1783
1830
|
}], ctorParameters: () => [{ type: i1$2.AlarmService }] });
|
|
1784
1831
|
|
|
@@ -1810,10 +1857,10 @@ class ChartHelpersService {
|
|
|
1810
1857
|
getTargetId(obj) {
|
|
1811
1858
|
return obj?.__target?.id ?? obj?.target;
|
|
1812
1859
|
}
|
|
1813
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1814
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1860
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartHelpersService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1861
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartHelpersService }); }
|
|
1815
1862
|
}
|
|
1816
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1863
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartHelpersService, decorators: [{
|
|
1817
1864
|
type: Injectable
|
|
1818
1865
|
}] });
|
|
1819
1866
|
|
|
@@ -1852,10 +1899,10 @@ class SelectAggregatedDatapointComponent {
|
|
|
1852
1899
|
this.selectedDatapointLabel = found?.label || '';
|
|
1853
1900
|
this.selectedDatapointColor = found?.color || '';
|
|
1854
1901
|
}
|
|
1855
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1856
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
1902
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectAggregatedDatapointComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1903
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: SelectAggregatedDatapointComponent, isStandalone: true, selector: "c8y-select-aggregated-datapoint", inputs: { activeDatapoints: "activeDatapoints", value: "value" }, outputs: { valueChange: "valueChange" }, host: { classAttribute: "d-contents" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"dropdown dropup\"\n dropdown\n #datapointDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"datapointDropdown.isOpen\"\n *ngIf=\"activeDatapoints?.length > 0\"\n>\n <ng-template #selectedDatapoint>\n <div class=\"text-left\">\n <strong>{{ selectedDatapointLabel }}</strong>\n <br />\n {{ 'Click to change' | translate }}\n </div>\n </ng-template>\n <button\n class=\"btn btn-default d-flex a-i-center dropdown-toggle c8y-dropdown\"\n title=\"{{'Select a data point to view its aggregated values in the time slider.' | translate }}\"\n type=\"button\"\n dropdownToggle\n >\n <span\n [style.background-color]=\"selectedDatapointColor\"\n style=\"display: inline-block; width: 16px; height: 16px; border-radius: 50%\"\n ></span>\n <span class=\"caret\"></span>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n *dropdownMenu\n >\n <li *ngFor=\"let datapoint of activeDatapoints\">\n <button\n class=\"p-r-8\"\n type=\"button\"\n (click)=\"changeDatapointSelection(datapoint)\"\n >\n <span\n class=\"d-inline-block m-r-4\"\n [style.background-color]=\"datapoint?.color\"\n style=\"width: 16px; height: 16px; border-radius: 50%\"\n ></span>\n <span class=\"text-truncate\" style=\"max-width:220px!important\" title=\"{{ datapoint?.label || `${datapoint?.fragment}-${datapoint?.series}` }}\">\n {{ datapoint?.label || `${datapoint?.fragment}-${datapoint?.series}` }}\n </span>\n <span\n class=\"m-l-auto flex-no-shrink\"\n *ngIf=\"\n datapoint.__target.id === value?.__target.id &&\n datapoint.fragment === value?.fragment &&\n datapoint.series === value?.series\n \"\n >\n <i\n class=\"text-success h4\"\n [c8yIcon]=\"'check'\"\n ></i>\n </span>\n </button>\n </li>\n </ul>\n</div>\n<button\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Select a data point to view its aggregated values in the time slider.' | translate\n }}\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n></button>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PopoverModule }, { kind: "directive", type: i1$3.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
1857
1904
|
}
|
|
1858
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1905
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectAggregatedDatapointComponent, decorators: [{
|
|
1859
1906
|
type: Component,
|
|
1860
1907
|
args: [{ selector: 'c8y-select-aggregated-datapoint', host: {
|
|
1861
1908
|
class: 'd-contents'
|
|
@@ -1940,6 +1987,15 @@ class ChartsComponent {
|
|
|
1940
1987
|
changes.config.previousValue?.dateFrom !== changes.config.currentValue.dateFrom &&
|
|
1941
1988
|
changes.config.previousValue?.dateTo !== changes.config.currentValue.dateTo &&
|
|
1942
1989
|
changes.config.previousValue?.aggregation === changes.config.currentValue?.aggregation) {
|
|
1990
|
+
// This is needed for cases when 2 data point graph widgets exist on the same dashboard
|
|
1991
|
+
// and one of them changes the time range which is loaded, the other one should update the zoom level accordingly
|
|
1992
|
+
if (this.echartsInstance) {
|
|
1993
|
+
this.echartsInstance.dispatchAction({
|
|
1994
|
+
type: 'dataZoom',
|
|
1995
|
+
startValue: new Date(currentTimeRange.dateFrom).getTime(),
|
|
1996
|
+
endValue: new Date(currentTimeRange.dateTo).getTime()
|
|
1997
|
+
}, { silent: true });
|
|
1998
|
+
}
|
|
1943
1999
|
return;
|
|
1944
2000
|
}
|
|
1945
2001
|
this.configChangedSubject.next();
|
|
@@ -1947,6 +2003,7 @@ class ChartsComponent {
|
|
|
1947
2003
|
ngOnInit() {
|
|
1948
2004
|
if (this.alerts) {
|
|
1949
2005
|
this.alerts.setAlertGroupDismissStrategy('warning', DismissAlertStrategy.TEMPORARY_OR_PERMANENT);
|
|
2006
|
+
this.alerts.setAlertGroupDismissStrategy('danger', DismissAlertStrategy.NONE);
|
|
1950
2007
|
}
|
|
1951
2008
|
}
|
|
1952
2009
|
ngOnDestroy() {
|
|
@@ -1996,6 +2053,7 @@ class ChartsComponent {
|
|
|
1996
2053
|
displayMarkedPoint: this.config.displayMarkedPoint || false,
|
|
1997
2054
|
mergeMatchingDatapoints: this.config.mergeMatchingDatapoints || false,
|
|
1998
2055
|
forceMergeDatapoints: this.config.forceMergeDatapoints || false,
|
|
2056
|
+
setYaxisStartToZero: this.config.setYaxisStartToZero || false,
|
|
1999
2057
|
showLabelAndUnit: this.config.showLabelAndUnit || false,
|
|
2000
2058
|
showSlider: this.config.showSlider || false,
|
|
2001
2059
|
numberOfDecimalPlaces: this.config.numberOfDecimalPlaces ?? 2
|
|
@@ -2062,7 +2120,13 @@ class ChartsComponent {
|
|
|
2062
2120
|
return options?.series?.[0]?.markArea?.data?.length > 0;
|
|
2063
2121
|
}
|
|
2064
2122
|
saveAsImage() {
|
|
2065
|
-
this.echartsInstance.
|
|
2123
|
+
const dataZoom = this.echartsInstance.getOption().dataZoom;
|
|
2124
|
+
const grid = this.echartsInstance.getOption().grid;
|
|
2125
|
+
this.echartsInstance.setOption({
|
|
2126
|
+
grid: { bottom: 8 },
|
|
2127
|
+
dataZoom: [{}, { show: false }]
|
|
2128
|
+
});
|
|
2129
|
+
this.echartsInstance.resize();
|
|
2066
2130
|
const url = this.echartsInstance.getDataURL({
|
|
2067
2131
|
pixelRatio: 2,
|
|
2068
2132
|
backgroundColor: '#fff',
|
|
@@ -2074,7 +2138,8 @@ class ChartsComponent {
|
|
|
2074
2138
|
document.body.appendChild(link);
|
|
2075
2139
|
link.click();
|
|
2076
2140
|
document.body.removeChild(link);
|
|
2077
|
-
this.echartsInstance.setOption({
|
|
2141
|
+
this.echartsInstance.setOption({ dataZoom, grid });
|
|
2142
|
+
this.echartsInstance.resize(); // force resize to original state
|
|
2078
2143
|
}
|
|
2079
2144
|
loadMoreData() {
|
|
2080
2145
|
const currentRange = this.widgetTimeContextDateRangeService.initialTimeRange();
|
|
@@ -2229,6 +2294,7 @@ class ChartsComponent {
|
|
|
2229
2294
|
displayMarkedPoint: this.config.displayMarkedPoint || false,
|
|
2230
2295
|
mergeMatchingDatapoints: this.config.mergeMatchingDatapoints || false,
|
|
2231
2296
|
forceMergeDatapoints: this.config.forceMergeDatapoints || false,
|
|
2297
|
+
setYaxisStartToZero: this.config.setYaxisStartToZero || false,
|
|
2232
2298
|
showLabelAndUnit: this.config.showLabelAndUnit || false,
|
|
2233
2299
|
showSlider: this.config.showSlider || false,
|
|
2234
2300
|
showOnlyAlarmsOrEvents
|
|
@@ -2272,6 +2338,7 @@ class ChartsComponent {
|
|
|
2272
2338
|
displayMarkedPoint: this.config.displayMarkedPoint || false,
|
|
2273
2339
|
mergeMatchingDatapoints: false,
|
|
2274
2340
|
forceMergeDatapoints: false,
|
|
2341
|
+
setYaxisStartToZero: false,
|
|
2275
2342
|
showLabelAndUnit: false,
|
|
2276
2343
|
showSlider: false,
|
|
2277
2344
|
showOnlyAlarmsOrEvents: true
|
|
@@ -2296,8 +2363,9 @@ class ChartsComponent {
|
|
|
2296
2363
|
}, this.events, this.alarms, {
|
|
2297
2364
|
displayMarkedLine: this.config.displayMarkedLine || false,
|
|
2298
2365
|
displayMarkedPoint: this.config.displayMarkedPoint || false,
|
|
2299
|
-
mergeMatchingDatapoints: this.config.mergeMatchingDatapoints
|
|
2366
|
+
mergeMatchingDatapoints: this.config.mergeMatchingDatapoints ?? true,
|
|
2300
2367
|
forceMergeDatapoints: this.config.forceMergeDatapoints || false,
|
|
2368
|
+
setYaxisStartToZero: this.config.setYaxisStartToZero || false,
|
|
2301
2369
|
showLabelAndUnit: this.config.showLabelAndUnit || false,
|
|
2302
2370
|
showSlider: this.config.showSlider || false,
|
|
2303
2371
|
numberOfDecimalPlaces: this.config.numberOfDecimalPlaces ?? 2,
|
|
@@ -2334,8 +2402,9 @@ class ChartsComponent {
|
|
|
2334
2402
|
}, this.events, this.alarms, {
|
|
2335
2403
|
displayMarkedLine: this.config.displayMarkedLine || false,
|
|
2336
2404
|
displayMarkedPoint: this.config.displayMarkedPoint || false,
|
|
2337
|
-
mergeMatchingDatapoints: this.config.mergeMatchingDatapoints
|
|
2405
|
+
mergeMatchingDatapoints: this.config.mergeMatchingDatapoints ?? true,
|
|
2338
2406
|
forceMergeDatapoints: this.config.forceMergeDatapoints || false,
|
|
2407
|
+
setYaxisStartToZero: this.config.setYaxisStartToZero || false,
|
|
2339
2408
|
showLabelAndUnit: this.config.showLabelAndUnit || false,
|
|
2340
2409
|
showSlider: this.config.showSlider || false,
|
|
2341
2410
|
numberOfDecimalPlaces: this.config.numberOfDecimalPlaces ?? 2,
|
|
@@ -2345,6 +2414,15 @@ class ChartsComponent {
|
|
|
2345
2414
|
}
|
|
2346
2415
|
fetchSeriesForDatapoints$() {
|
|
2347
2416
|
this.activeDatapoints = this.config?.datapoints?.filter(dp => dp.__active);
|
|
2417
|
+
const retrievalError = this.config?.datapoints?.find(dp => dp.retrievalError);
|
|
2418
|
+
if (retrievalError) {
|
|
2419
|
+
this.alerts.clear();
|
|
2420
|
+
this.alerts.addAlerts(new DynamicComponentAlert({
|
|
2421
|
+
type: 'danger',
|
|
2422
|
+
text: retrievalError.text
|
|
2423
|
+
}));
|
|
2424
|
+
return of([]);
|
|
2425
|
+
}
|
|
2348
2426
|
if (!this.activeDatapoints || this.activeDatapoints.length === 0) {
|
|
2349
2427
|
this.updateActiveDatapoints.emit([]);
|
|
2350
2428
|
return of([]);
|
|
@@ -2388,7 +2466,7 @@ class ChartsComponent {
|
|
|
2388
2466
|
: this.config?.datapoints?.filter(dp => dp.__active)[0];
|
|
2389
2467
|
const request = defer(() => this.measurementService.listSeries({
|
|
2390
2468
|
...(customTimeRange ? customTimeRange : timeRange),
|
|
2391
|
-
source: aggregatedDatapoint
|
|
2469
|
+
source: aggregatedDatapoint.__target?.id || '',
|
|
2392
2470
|
series: [`${aggregatedDatapoint.fragment}.${aggregatedDatapoint.series}`],
|
|
2393
2471
|
...(this.config.aggregation || customTimeRange
|
|
2394
2472
|
? {
|
|
@@ -2471,8 +2549,8 @@ class ChartsComponent {
|
|
|
2471
2549
|
}
|
|
2472
2550
|
return { dateFrom: timeRange.dateFrom.toISOString(), dateTo: timeRange.dateTo.toISOString() };
|
|
2473
2551
|
}
|
|
2474
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2475
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
2552
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2553
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: ChartsComponent, isStandalone: true, selector: "c8y-charts", inputs: { config: "config", alerts: "alerts", chartViewContext: "chartViewContext" }, outputs: { configChangeOnZoomOut: "configChangeOnZoomOut", timeRangeChangeOnRealtime: "timeRangeChangeOnRealtime", datapointOutOfSync: "datapointOutOfSync", updateAlarmsAndEvents: "updateAlarmsAndEvents", isMarkedAreaEnabled: "isMarkedAreaEnabled", finishLoading: "finishLoading", updateActiveDatapoints: "updateActiveDatapoints", updateAggregatedSliderDatapoint: "updateAggregatedSliderDatapoint" }, providers: [
|
|
2476
2554
|
{ provide: NGX_ECHARTS_CONFIG, useFactory: () => ({ echarts: () => import('echarts') }) },
|
|
2477
2555
|
ChartRealtimeService,
|
|
2478
2556
|
MeasurementRealtimeService,
|
|
@@ -2485,7 +2563,7 @@ class ChartsComponent {
|
|
|
2485
2563
|
AlarmSeverityToLabelPipe
|
|
2486
2564
|
], viewQueries: [{ propertyName: "chart", first: true, predicate: ["chart"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"p-relative fit-h chart-container\">\n <div\n class=\"fit-w fit-h\"\n #chart\n echarts\n [options]=\"chartOption$ | async\"\n (chartInit)=\"onChartInit($event)\"\n ></div>\n\n <c8y-chart-alerts [alerts]=\"alerts\"></c8y-chart-alerts>\n\n <div\n class=\"chart-load-more\"\n *ngIf=\"showLoadMore\"\n >\n <button\n class=\"btn btn-primary btn-block\"\n (click)=\"loadMoreData()\"\n >\n <i c8yIcon=\"restore\"></i>\n {{ 'Load more' | translate }}\n </button>\n </div>\n\n <div\n class=\"e-charts--aggregated-datapoint\"\n *ngIf=\"\n activeDatapoints.length > 1 &&\n config?.showSlider &&\n chartViewContext !== CHART_VIEW_CONTEXT.WIDGET_VIEW\n \"\n >\n <c8y-select-aggregated-datapoint\n [value]=\"config?.aggregatedDatapoint || activeDatapoints[0]\"\n (valueChange)=\"updateAggregatedSliderDatapoint.emit($event)\"\n [activeDatapoints]=\"activeDatapoints\"\n ></c8y-select-aggregated-datapoint>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule$1 }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "ngmodule", type: NgxEchartsModule }, { kind: "directive", type: i3$1.NgxEchartsDirective, selector: "echarts, [echarts]", inputs: ["options", "theme", "initOpts", "merge", "autoResize", "loading", "loadingType", "loadingOpts"], outputs: ["chartInit", "optionsError", "chartClick", "chartDblClick", "chartMouseDown", "chartMouseMove", "chartMouseUp", "chartMouseOver", "chartMouseOut", "chartGlobalOut", "chartContextMenu", "chartHighlight", "chartDownplay", "chartSelectChanged", "chartLegendSelectChanged", "chartLegendSelected", "chartLegendUnselected", "chartLegendLegendSelectAll", "chartLegendLegendInverseSelect", "chartLegendScroll", "chartDataZoom", "chartDataRangeSelected", "chartGraphRoam", "chartGeoRoam", "chartTreeRoam", "chartTimelineChanged", "chartTimelinePlayChanged", "chartRestore", "chartDataViewChanged", "chartMagicTypeChanged", "chartGeoSelectChanged", "chartGeoSelected", "chartGeoUnselected", "chartAxisAreaSelected", "chartBrush", "chartBrushEnd", "chartBrushSelected", "chartGlobalCursorTaken", "chartRendered", "chartFinished"], exportAs: ["echarts"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: PopoverModule }, { kind: "component", type: ChartAlertsComponent, selector: "c8y-chart-alerts", inputs: ["alerts"] }, { kind: "ngmodule", type: AlarmsModule }, { kind: "component", type: SelectAggregatedDatapointComponent, selector: "c8y-select-aggregated-datapoint", inputs: ["activeDatapoints", "value"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
|
|
2487
2565
|
}
|
|
2488
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2566
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChartsComponent, decorators: [{
|
|
2489
2567
|
type: Component,
|
|
2490
2568
|
args: [{ selector: 'c8y-charts', providers: [
|
|
2491
2569
|
{ provide: NGX_ECHARTS_CONFIG, useFactory: () => ({ echarts: () => import('echarts') }) },
|