@c8y/ngx-components 1023.4.6 → 1023.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +16 -16
- package/fesm2022/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-advanced-software-management.mjs +7 -7
- package/fesm2022/c8y-ngx-components-advanced-software-management.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +9 -9
- package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +12 -12
- package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ai.mjs +3 -3
- 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-alarm-event-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +4 -4
- package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +76 -76
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-api.mjs +7 -7
- package/fesm2022/c8y-ngx-components-api.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-app-logs.mjs +10 -10
- package/fesm2022/c8y-ngx-components-app-logs.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-asset-properties.mjs +39 -39
- package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
- package/fesm2022/{c8y-ngx-components-asset-property-grid.component-B0Yspstg.mjs → c8y-ngx-components-asset-property-grid.component-B1q7kXRu.mjs} +13 -13
- package/fesm2022/{c8y-ngx-components-asset-property-grid.component-B0Yspstg.mjs.map → c8y-ngx-components-asset-property-grid.component-B1q7kXRu.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs +32 -32
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs +114 -114
- 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-binary-file-download.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-bookmarks.mjs +13 -13
- package/fesm2022/c8y-ngx-components-bookmarks.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-base-branding.mjs +4 -4
- package/fesm2022/c8y-ngx-components-branding-base-branding.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs +7 -7
- package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs +7 -7
- package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs +3 -3
- package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +7 -7
- package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +15 -15
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +6 -6
- package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +36 -36
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared.mjs +13 -13
- package/fesm2022/c8y-ngx-components-branding-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-child-devices.mjs +13 -13
- package/fesm2022/c8y-ngx-components-child-devices.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs +40 -40
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-computed-asset-properties-alarm-count-config.component-Bl18pHcM.mjs +68 -0
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-BeFT75x1.mjs.map → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-Bl18pHcM.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-B8_RmTvv.mjs → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-C5QMFdX1.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-B8_RmTvv.mjs.map → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-C5QMFdX1.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-computed-asset-properties-event-count-config.component-C-Lc5Ble.mjs +44 -0
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-BUxC3Tmh.mjs.map → c8y-ngx-components-computed-asset-properties-event-count-config.component-C-Lc5Ble.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-Dcmrw2Wg.mjs → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BXfM7hTQ.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-Dcmrw2Wg.mjs.map → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BXfM7hTQ.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-connectivity.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs +10 -10
- package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs +7 -7
- package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +11 -11
- package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs.map +1 -1
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C30if8-Q.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BuGMpNrA.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C30if8-Q.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BuGMpNrA.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-FBfdlVT1.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DN-f35bA.mjs} +10 -10
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-FBfdlVT1.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DN-f35bA.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DrVQS63v.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-BlIVEV__.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DrVQS63v.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component-BlIVEV__.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs +10 -10
- package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +7 -7
- package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs +3 -3
- package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs +3 -3
- package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +102 -102
- 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-BHmaZVgy.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-m7YeEj9R.mjs} +16 -16
- package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-BHmaZVgy.mjs.map → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-m7YeEj9R.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +12 -12
- package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs +6 -6
- package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +22 -22
- package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-broker.mjs +7 -7
- package/fesm2022/c8y-ngx-components-data-broker.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +3 -3
- package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +3 -3
- package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +24 -24
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +7 -7
- package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +3 -3
- 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-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs +3 -3
- package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-library.mjs +4 -4
- package/fesm2022/c8y-ngx-components-datapoint-library.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +40 -40
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +33 -33
- 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-default-subscriptions.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-grid.mjs +43 -43
- 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-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-map.mjs +12 -12
- package/fesm2022/c8y-ngx-components-device-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-profile.mjs +34 -34
- package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs +3 -3
- package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-protocols.mjs +16 -16
- package/fesm2022/c8y-ngx-components-device-protocols.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +13 -13
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-shell.mjs +31 -31
- package/fesm2022/c8y-ngx-components-device-shell.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-diagnostics.mjs +13 -13
- package/fesm2022/c8y-ngx-components-diagnostics.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +30 -30
- 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-application-plugins.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +7 -7
- package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +10 -10
- package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs +7 -7
- package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +46 -46
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +82 -82
- package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-editor.mjs +6 -6
- package/fesm2022/c8y-ngx-components-editor.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-events-events-timeline.mjs +3 -3
- 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-events.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-exports-list.mjs +6 -6
- package/fesm2022/c8y-ngx-components-exports-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-file-preview.mjs +7 -7
- package/fesm2022/c8y-ngx-components-file-preview.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-files-repository.mjs +19 -19
- package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-global-context.mjs +118 -118
- package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector.mjs +19 -19
- 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-interval-picker.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-location.mjs +28 -28
- package/fesm2022/c8y-ngx-components-location.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +16 -16
- package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-map.mjs +19 -19
- package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-messaging-management.mjs +55 -55
- package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +19 -19
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +3 -3
- package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-device-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +12 -12
- package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-operation-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +10 -10
- package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +12 -12
- package/fesm2022/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs +7 -7
- 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-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-status-filter.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-status-filter.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-pending-mo-request.mjs +7 -7
- package/fesm2022/c8y-ngx-components-pending-mo-request.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-platform-configuration.mjs +10 -10
- package/fesm2022/c8y-ngx-components-platform-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +38 -38
- package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +58 -58
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-register-device.mjs +58 -58
- package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +9 -9
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-data.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +6 -6
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +6 -6
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs +6 -6
- package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-replace-device.mjs +10 -10
- package/fesm2022/c8y-ngx-components-replace-device.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-report-dashboard.mjs +16 -16
- package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-reports.mjs +19 -19
- package/fesm2022/c8y-ngx-components-reports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs +48 -48
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs +33 -33
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-shared.mjs +34 -34
- package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-software.mjs +42 -42
- package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository.mjs +4 -4
- package/fesm2022/c8y-ngx-components-repository.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-search.mjs +19 -19
- 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-sensor-phone-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sensor-phone.mjs +7 -7
- package/fesm2022/c8y-ngx-components-sensor-phone.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +3 -3
- package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services-shared.mjs +3 -3
- package/fesm2022/c8y-ngx-components-services-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services.mjs +29 -29
- package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +16 -16
- package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sms-gateway.mjs +7 -7
- package/fesm2022/c8y-ngx-components-sms-gateway.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-static-assets-data.mjs +3 -3
- package/fesm2022/c8y-ngx-components-static-assets-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-static-assets-modal.mjs +9 -9
- package/fesm2022/c8y-ngx-components-static-assets-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-static-assets.mjs +6 -6
- package/fesm2022/c8y-ngx-components-static-assets.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sub-assets.mjs +60 -60
- package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-tenants.mjs +41 -41
- package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-time-context.mjs +6 -6
- package/fesm2022/c8y-ngx-components-time-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-tracking.mjs +12 -12
- 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-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +12 -12
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor.mjs +6 -6
- package/fesm2022/c8y-ngx-components-translation-editor.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +33 -33
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs +4 -4
- package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs +62 -43
- package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-user-roles.mjs +10 -10
- package/fesm2022/c8y-ngx-components-user-roles.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs +3 -3
- 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-definitions-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-exports.mjs +8 -1
- package/fesm2022/c8y-ngx-components-widgets-exports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +19 -19
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +6 -6
- 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-datapoints-table.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +7 -7
- package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +24 -24
- package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +9 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +18 -18
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +6 -6
- package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +6 -6
- package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +9 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +9 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +18 -18
- package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +9 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-widget-providers.mjs +5 -2
- package/fesm2022/c8y-ngx-components-widgets-widget-providers.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +1329 -1325
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/index.d.ts +7 -0
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/upgrade/index.d.ts +1 -0
- package/upgrade/index.d.ts.map +1 -1
- package/widgets/cockpit-exports/index.d.ts +6 -0
- package/widgets/cockpit-exports/index.d.ts.map +1 -1
- package/widgets/device-management-exports/index.d.ts +6 -0
- package/widgets/device-management-exports/index.d.ts.map +1 -1
- package/widgets/exports/index.d.ts +8 -1
- package/widgets/exports/index.d.ts.map +1 -1
- package/widgets/widget-providers/index.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-computed-asset-properties-alarm-count-config.component-BeFT75x1.mjs +0 -68
- package/fesm2022/c8y-ngx-components-computed-asset-properties-event-count-config.component-BUxC3Tmh.mjs +0 -44
|
@@ -13,10 +13,10 @@ class InventoryRoleSelector extends UpgradeComponent {
|
|
|
13
13
|
constructor(elementRef, injector) {
|
|
14
14
|
super('c8yInventoryRoleSelector', elementRef, injector);
|
|
15
15
|
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
17
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: InventoryRoleSelector, deps: [{ token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
17
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: InventoryRoleSelector, isStandalone: true, selector: "c8y-inventory-role-selector-upgraded", inputs: { assignedRoles: "assignedRoles", inheritedRoles: "inheritedRoles", inventoryRoles: "inventoryRoles", ownerAllowedRoles: "ownerAllowedRoles", disableEditForExternalUsers: "disableEditForExternalUsers" }, outputs: { onApply: "onApply" }, usesInheritance: true, ngImport: i0 }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: InventoryRoleSelector, decorators: [{
|
|
20
20
|
type: Directive,
|
|
21
21
|
args: [{ selector: 'c8y-inventory-role-selector-upgraded' }]
|
|
22
22
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Injector }], propDecorators: { assignedRoles: [{
|
|
@@ -146,10 +146,10 @@ class RolesAssetTreeComponent {
|
|
|
146
146
|
}
|
|
147
147
|
return true;
|
|
148
148
|
}
|
|
149
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
150
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
149
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RolesAssetTreeComponent, deps: [{ token: i1.Ng1UserInventoryRolesService, optional: true }, { token: i1.Ng1RolesService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
150
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: RolesAssetTreeComponent, isStandalone: true, selector: "c8y-roles-asset-tree-upgraded", inputs: { user: "user", searchFilter: "searchFilter", assignedRoles: "assignedRoles", ownerAssignedRoles: "ownerAssignedRoles", expandGroups: "expandGroups", pageSize: "pageSize", paginationOffset: "paginationOffset", disableEditForExternalUsers: "disableEditForExternalUsers" }, outputs: { onChangeRoles: "onChangeRoles", onChangeItemCount: "onChangeItemCount" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"c8y-list__group m-b-0 no-border-last\">\n <div\n class=\"c8y-list__item\"\n *ngFor=\"\n let asset of flatAssetTree$ | async | slice: paginationOffset:paginationOffset + pageSize\n \"\n >\n <div\n class=\"c8y-list__item__block\"\n [title]=\"\n (asset._subGroups && asset.isOpened\n ? asset._subGroups.length\n ? asset._subGroups.length > 1\n ? manySubgroupsTitle\n : oneSubgroupTitle\n : noSubgroupTitle\n : clickToOpenTitle\n ) | translate: { count: asset._subGroups?.length }\n \"\n >\n <div [ngStyle]=\"{ 'padding-left': asset._depth * 8 + 'px' }\"></div>\n <div class=\"c8y-list__item__icon m-t-4 p-l-0\">\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"(!asset.isOpened ? expandAriaLabel : collapseAriaLabel) | translate\"\n type=\"button\"\n (click)=\"loadChildren(asset)\"\n >\n <i\n class=\"c8y-icon-duocolor\"\n c8yIcon=\"c8y-group\"\n *ngIf=\"!asset.isOpened\"\n ></i>\n <i\n class=\"c8y-icon-duocolor\"\n c8yIcon=\"c8y-group-open\"\n *ngIf=\"asset.isOpened\"\n ></i>\n </button>\n </div>\n <div class=\"c8y-list__item__body\">\n <div class=\"d-flex a-i-center\">\n <div class=\"col-sm-7 p-l-0 col-xs-12\">\n <button\n class=\"btn-clean\"\n type=\"button\"\n (click)=\"loadChildren(asset)\"\n >\n <span\n class=\"text-truncate\"\n [ngStyle]=\"{ cursor: 'pointer' }\"\n title=\"{{ asset.name }}\"\n >\n {{ asset.name }}\n </span>\n </button>\n </div>\n <div class=\"p-t-8 col-xs-12 visible-xs\"></div>\n <div class=\"col-sm-5 p-l-0 col-xs-12 p-r-0\">\n <div class=\"d-flex\">\n <div class=\"flex-grow form-group-sm max-width-100\">\n <c8y-inventory-role-selector-upgraded\n [ownerAllowedRoles]=\"\n ownerAllAssignedRoles ? ownerAllAssignedRoles[asset.id] : undefined\n \"\n [inheritedRoles]=\"inheritedRoles ? inheritedRoles[asset.id] : undefined\"\n [assignedRoles]=\"assignedRoles ? assignedRoles[asset.id] : undefined\"\n [inventoryRoles]=\"inventoryRoles\"\n [disableEditForExternalUsers]=\"disableEditForExternalUsers\"\n (onApply)=\"onApply($event, asset.id)\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-inventory-role-selector-upgraded>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No matching group found among the expanded groups.' | translate\"\n [subtitle]=\"'Try to expand more groups or to refine your search term.' | translate\"\n *ngIf=\"searchFilter && !(flatAssetTree$ | async).length\"\n [horizontal]=\"false\"\n ></c8y-ui-empty-state>\n</div>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: InventoryRoleSelector, selector: "c8y-inventory-role-selector-upgraded", inputs: ["assignedRoles", "inheritedRoles", "inventoryRoles", "ownerAllowedRoles", "disableEditForExternalUsers"], outputs: ["onApply"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SlicePipe, name: "slice" }] }); }
|
|
151
151
|
}
|
|
152
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RolesAssetTreeComponent, decorators: [{
|
|
153
153
|
type: Component,
|
|
154
154
|
args: [{ selector: 'c8y-roles-asset-tree-upgraded', imports: [
|
|
155
155
|
NgFor,
|
|
@@ -189,11 +189,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
189
189
|
}] } });
|
|
190
190
|
|
|
191
191
|
class UserRolesModule {
|
|
192
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
193
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
194
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
192
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: UserRolesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
193
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: UserRolesModule, imports: [CoreModule, InventoryRoleSelector, RolesAssetTreeComponent] }); }
|
|
194
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: UserRolesModule, imports: [CoreModule, RolesAssetTreeComponent] }); }
|
|
195
195
|
}
|
|
196
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: UserRolesModule, decorators: [{
|
|
197
197
|
type: NgModule,
|
|
198
198
|
args: [{
|
|
199
199
|
imports: [CoreModule, InventoryRoleSelector, RolesAssetTreeComponent]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-user-roles.mjs","sources":["../../user-roles/inventory-role-selector/inventory-role-selector.component.ts","../../user-roles/roles-asset-tree/roles-asset-tree.component.ts","../../user-roles/roles-asset-tree/roles-asset-tree.component.html","../../user-roles/user-roles.module.ts","../../user-roles/c8y-ngx-components-user-roles.ts"],"sourcesContent":["import { Directive, ElementRef, EventEmitter, Injector, Input, Output } from '@angular/core';\nimport { UpgradeComponent } from '@angular/upgrade/static';\n\n@Directive({ selector: 'c8y-inventory-role-selector-upgraded' })\nexport class InventoryRoleSelector extends UpgradeComponent {\n @Input() assignedRoles: any;\n @Input() inheritedRoles: any;\n @Input() inventoryRoles: any;\n @Input() ownerAllowedRoles: any;\n @Input() disableEditForExternalUsers: any;\n @Output() onApply: EventEmitter<any>;\n\n constructor(elementRef: ElementRef, injector: Injector) {\n super('c8yInventoryRoleSelector', elementRef, injector);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Optional, Output } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { IconDirective, EmptyStateComponent, C8yTranslatePipe } from '@c8y/ngx-components';\n\nimport {\n mergeWith,\n map as _map,\n filter,\n flatten,\n uniqBy,\n identity,\n property,\n get,\n reduce\n} from 'lodash-es';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\nimport { IIdentified } from '@c8y/client';\nimport {\n Ng1RolesService,\n Ng1UserInventoryRolesService\n} from '@c8y/ngx-components/upgrade/upgraded-services';\nimport { NgFor, NgStyle, NgIf, AsyncPipe, SlicePipe } from '@angular/common';\nimport { InventoryRoleSelector } from '../inventory-role-selector/inventory-role-selector.component';\n\n@Component({\n selector: 'c8y-roles-asset-tree-upgraded',\n templateUrl: './roles-asset-tree.component.html',\n imports: [\n NgFor,\n NgStyle,\n NgIf,\n IconDirective,\n InventoryRoleSelector,\n EmptyStateComponent,\n C8yTranslatePipe,\n AsyncPipe,\n SlicePipe\n ]\n})\nexport class RolesAssetTreeComponent implements OnInit, OnChanges {\n @Input() user;\n @Input() searchFilter;\n @Input() assignedRoles;\n @Input() ownerAssignedRoles;\n @Input() expandGroups;\n @Input() pageSize;\n @Input() paginationOffset;\n @Input() disableEditForExternalUsers = false;\n @Output() onChangeRoles = new EventEmitter();\n @Output() onChangeItemCount = new EventEmitter();\n\n rootGroups;\n flatAssetTree;\n inventoryRoles;\n loadingAssetTree;\n inheritedRoles;\n ownerAllAssignedRoles;\n\n noSubgroupTitle = gettext('No subgroups');\n manySubgroupsTitle = gettext('Subgroups: {{ count }}');\n oneSubgroupTitle = gettext('Subgroup: 1');\n clickToOpenTitle = gettext('Click to fetch subgroups');\n expandAriaLabel = gettext('Expand');\n collapseAriaLabel = gettext('Collapse');\n\n searchTermSubject = new BehaviorSubject<string>('');\n flatTreeSubject = new BehaviorSubject<IIdentified[]>([]);\n\n flatAssetTree$ = combineLatest([this.searchTermSubject, this.flatTreeSubject]).pipe(\n map(([searchTerm, flatTree]) => {\n return flatTree\n .filter(group => group.name.toLowerCase().includes(searchTerm.toLowerCase()))\n .filter(this.filterAsset.bind(this));\n }),\n tap(flatTree => {\n this.onChangeItemCount.emit(flatTree.length);\n })\n );\n\n constructor(\n @Optional() public c8yUserInventoryRoles: Ng1UserInventoryRolesService,\n @Optional() public c8yRoles: Ng1RolesService\n ) {}\n\n ngOnInit() {\n this.loadInventoryRoles();\n }\n\n loadAssetTree() {\n const onlyRootsUser = this.user.owner;\n return this.c8yUserInventoryRoles.listRootGroups({ onlyRootsUser }).then(result => {\n this.rootGroups = result;\n this.updateTree();\n });\n }\n\n updateTree() {\n this.flatAssetTree = this.c8yUserInventoryRoles.flatTree(this.rootGroups);\n this.setInheritedRoles();\n this.flatTreeSubject.next(this.flatAssetTree);\n }\n\n loadChildren(mo) {\n if (mo.isOpened) {\n // eslint-disable-next-line no-underscore-dangle\n mo._subGroups = [];\n mo.isOpened = false;\n this.updateTree();\n } else {\n this.c8yUserInventoryRoles.loadChildren(mo).then(_ => {\n this.updateTree();\n });\n mo.isOpened = true;\n }\n }\n\n loadInventoryRoles() {\n this.c8yRoles.list({ pageSize: 1000 }).then(roles => {\n this.inventoryRoles = roles;\n });\n }\n\n ngOnChanges(changes) {\n if (changes.searchFilter) {\n this.searchTermSubject.next(this.searchFilter || '');\n }\n if (changes.user && !this.loadingAssetTree) {\n this.loadingAssetTree = this.loadAssetTree();\n }\n if (changes.assignedRoles || changes.ownerAssignedRoles) {\n this.loadingAssetTree.then(this.setInheritedRoles.bind(this));\n }\n if (changes.expandGroups && this.expandGroups) {\n this.c8yUserInventoryRoles.expandAll(this.rootGroups, this.updateTree.bind(this));\n }\n }\n\n setInheritedRoles() {\n if (this.assignedRoles) {\n this.inheritedRoles = this.getInventoryInheritedRoles(this.flatAssetTree, this.assignedRoles);\n }\n if (this.ownerAssignedRoles) {\n const ownerInheritedRoles = this.getInventoryInheritedRoles(\n this.flatAssetTree,\n this.ownerAssignedRoles\n );\n this.ownerAllAssignedRoles = mergeWith(\n ownerInheritedRoles,\n this.ownerAssignedRoles,\n (objValue, srcValue) => {\n if (srcValue) {\n if (objValue) {\n return uniqBy(objValue.concat(srcValue.roles), 'id');\n }\n return srcValue.roles;\n }\n return objValue;\n }\n );\n }\n }\n\n getInventoryInheritedRoles(flatTree, assignedRoles) {\n return reduce(\n flatTree,\n (inheritedRoles, asset) => {\n // eslint-disable-next-line no-underscore-dangle\n let chain = asset._parentGroups;\n chain = _map(chain, group => get(assignedRoles, group.id));\n chain = filter(chain, identity);\n chain = _map(chain, property('roles'));\n chain = flatten(chain);\n chain = uniqBy(chain, 'id');\n inheritedRoles[asset.id] = chain;\n return inheritedRoles;\n },\n {}\n );\n }\n\n onApply(ev, managedObjectId) {\n return this.onChangeRoles.emit({\n managedObjectId: managedObjectId,\n roles: ev.roles\n });\n }\n\n filterAsset(asset) {\n if (this.ownerAllAssignedRoles) {\n return get(this.ownerAllAssignedRoles, [asset.id, 'length']);\n }\n return true;\n }\n}\n","<div class=\"c8y-list__group m-b-0 no-border-last\">\n <div\n class=\"c8y-list__item\"\n *ngFor=\"\n let asset of flatAssetTree$ | async | slice: paginationOffset:paginationOffset + pageSize\n \"\n >\n <div\n class=\"c8y-list__item__block\"\n [title]=\"\n (asset._subGroups && asset.isOpened\n ? asset._subGroups.length\n ? asset._subGroups.length > 1\n ? manySubgroupsTitle\n : oneSubgroupTitle\n : noSubgroupTitle\n : clickToOpenTitle\n ) | translate: { count: asset._subGroups?.length }\n \"\n >\n <div [ngStyle]=\"{ 'padding-left': asset._depth * 8 + 'px' }\"></div>\n <div class=\"c8y-list__item__icon m-t-4 p-l-0\">\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"(!asset.isOpened ? expandAriaLabel : collapseAriaLabel) | translate\"\n type=\"button\"\n (click)=\"loadChildren(asset)\"\n >\n <i\n class=\"c8y-icon-duocolor\"\n c8yIcon=\"c8y-group\"\n *ngIf=\"!asset.isOpened\"\n ></i>\n <i\n class=\"c8y-icon-duocolor\"\n c8yIcon=\"c8y-group-open\"\n *ngIf=\"asset.isOpened\"\n ></i>\n </button>\n </div>\n <div class=\"c8y-list__item__body\">\n <div class=\"d-flex a-i-center\">\n <div class=\"col-sm-7 p-l-0 col-xs-12\">\n <button\n class=\"btn-clean\"\n type=\"button\"\n (click)=\"loadChildren(asset)\"\n >\n <span\n class=\"text-truncate\"\n [ngStyle]=\"{ cursor: 'pointer' }\"\n title=\"{{ asset.name }}\"\n >\n {{ asset.name }}\n </span>\n </button>\n </div>\n <div class=\"p-t-8 col-xs-12 visible-xs\"></div>\n <div class=\"col-sm-5 p-l-0 col-xs-12 p-r-0\">\n <div class=\"d-flex\">\n <div class=\"flex-grow form-group-sm max-width-100\">\n <c8y-inventory-role-selector-upgraded\n [ownerAllowedRoles]=\"\n ownerAllAssignedRoles ? ownerAllAssignedRoles[asset.id] : undefined\n \"\n [inheritedRoles]=\"inheritedRoles ? inheritedRoles[asset.id] : undefined\"\n [assignedRoles]=\"assignedRoles ? assignedRoles[asset.id] : undefined\"\n [inventoryRoles]=\"inventoryRoles\"\n [disableEditForExternalUsers]=\"disableEditForExternalUsers\"\n (onApply)=\"onApply($event, asset.id)\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-inventory-role-selector-upgraded>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No matching group found among the expanded groups.' | translate\"\n [subtitle]=\"'Try to expand more groups or to refine your search term.' | translate\"\n *ngIf=\"searchFilter && !(flatAssetTree$ | async).length\"\n [horizontal]=\"false\"\n ></c8y-ui-empty-state>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@c8y/ngx-components';\nimport { InventoryRoleSelector } from './inventory-role-selector/inventory-role-selector.component';\nimport { RolesAssetTreeComponent } from './roles-asset-tree/roles-asset-tree.component';\n\n@NgModule({\n imports: [CoreModule, InventoryRoleSelector, RolesAssetTreeComponent]\n})\nexport class UserRolesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-user-roles.mjs","sources":["../../user-roles/inventory-role-selector/inventory-role-selector.component.ts","../../user-roles/roles-asset-tree/roles-asset-tree.component.ts","../../user-roles/roles-asset-tree/roles-asset-tree.component.html","../../user-roles/user-roles.module.ts","../../user-roles/c8y-ngx-components-user-roles.ts"],"sourcesContent":["import { Directive, ElementRef, EventEmitter, Injector, Input, Output } from '@angular/core';\nimport { UpgradeComponent } from '@angular/upgrade/static';\n\n@Directive({ selector: 'c8y-inventory-role-selector-upgraded' })\nexport class InventoryRoleSelector extends UpgradeComponent {\n @Input() assignedRoles: any;\n @Input() inheritedRoles: any;\n @Input() inventoryRoles: any;\n @Input() ownerAllowedRoles: any;\n @Input() disableEditForExternalUsers: any;\n @Output() onApply: EventEmitter<any>;\n\n constructor(elementRef: ElementRef, injector: Injector) {\n super('c8yInventoryRoleSelector', elementRef, injector);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Optional, Output } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { IconDirective, EmptyStateComponent, C8yTranslatePipe } from '@c8y/ngx-components';\n\nimport {\n mergeWith,\n map as _map,\n filter,\n flatten,\n uniqBy,\n identity,\n property,\n get,\n reduce\n} from 'lodash-es';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\nimport { IIdentified } from '@c8y/client';\nimport {\n Ng1RolesService,\n Ng1UserInventoryRolesService\n} from '@c8y/ngx-components/upgrade/upgraded-services';\nimport { NgFor, NgStyle, NgIf, AsyncPipe, SlicePipe } from '@angular/common';\nimport { InventoryRoleSelector } from '../inventory-role-selector/inventory-role-selector.component';\n\n@Component({\n selector: 'c8y-roles-asset-tree-upgraded',\n templateUrl: './roles-asset-tree.component.html',\n imports: [\n NgFor,\n NgStyle,\n NgIf,\n IconDirective,\n InventoryRoleSelector,\n EmptyStateComponent,\n C8yTranslatePipe,\n AsyncPipe,\n SlicePipe\n ]\n})\nexport class RolesAssetTreeComponent implements OnInit, OnChanges {\n @Input() user;\n @Input() searchFilter;\n @Input() assignedRoles;\n @Input() ownerAssignedRoles;\n @Input() expandGroups;\n @Input() pageSize;\n @Input() paginationOffset;\n @Input() disableEditForExternalUsers = false;\n @Output() onChangeRoles = new EventEmitter();\n @Output() onChangeItemCount = new EventEmitter();\n\n rootGroups;\n flatAssetTree;\n inventoryRoles;\n loadingAssetTree;\n inheritedRoles;\n ownerAllAssignedRoles;\n\n noSubgroupTitle = gettext('No subgroups');\n manySubgroupsTitle = gettext('Subgroups: {{ count }}');\n oneSubgroupTitle = gettext('Subgroup: 1');\n clickToOpenTitle = gettext('Click to fetch subgroups');\n expandAriaLabel = gettext('Expand');\n collapseAriaLabel = gettext('Collapse');\n\n searchTermSubject = new BehaviorSubject<string>('');\n flatTreeSubject = new BehaviorSubject<IIdentified[]>([]);\n\n flatAssetTree$ = combineLatest([this.searchTermSubject, this.flatTreeSubject]).pipe(\n map(([searchTerm, flatTree]) => {\n return flatTree\n .filter(group => group.name.toLowerCase().includes(searchTerm.toLowerCase()))\n .filter(this.filterAsset.bind(this));\n }),\n tap(flatTree => {\n this.onChangeItemCount.emit(flatTree.length);\n })\n );\n\n constructor(\n @Optional() public c8yUserInventoryRoles: Ng1UserInventoryRolesService,\n @Optional() public c8yRoles: Ng1RolesService\n ) {}\n\n ngOnInit() {\n this.loadInventoryRoles();\n }\n\n loadAssetTree() {\n const onlyRootsUser = this.user.owner;\n return this.c8yUserInventoryRoles.listRootGroups({ onlyRootsUser }).then(result => {\n this.rootGroups = result;\n this.updateTree();\n });\n }\n\n updateTree() {\n this.flatAssetTree = this.c8yUserInventoryRoles.flatTree(this.rootGroups);\n this.setInheritedRoles();\n this.flatTreeSubject.next(this.flatAssetTree);\n }\n\n loadChildren(mo) {\n if (mo.isOpened) {\n // eslint-disable-next-line no-underscore-dangle\n mo._subGroups = [];\n mo.isOpened = false;\n this.updateTree();\n } else {\n this.c8yUserInventoryRoles.loadChildren(mo).then(_ => {\n this.updateTree();\n });\n mo.isOpened = true;\n }\n }\n\n loadInventoryRoles() {\n this.c8yRoles.list({ pageSize: 1000 }).then(roles => {\n this.inventoryRoles = roles;\n });\n }\n\n ngOnChanges(changes) {\n if (changes.searchFilter) {\n this.searchTermSubject.next(this.searchFilter || '');\n }\n if (changes.user && !this.loadingAssetTree) {\n this.loadingAssetTree = this.loadAssetTree();\n }\n if (changes.assignedRoles || changes.ownerAssignedRoles) {\n this.loadingAssetTree.then(this.setInheritedRoles.bind(this));\n }\n if (changes.expandGroups && this.expandGroups) {\n this.c8yUserInventoryRoles.expandAll(this.rootGroups, this.updateTree.bind(this));\n }\n }\n\n setInheritedRoles() {\n if (this.assignedRoles) {\n this.inheritedRoles = this.getInventoryInheritedRoles(this.flatAssetTree, this.assignedRoles);\n }\n if (this.ownerAssignedRoles) {\n const ownerInheritedRoles = this.getInventoryInheritedRoles(\n this.flatAssetTree,\n this.ownerAssignedRoles\n );\n this.ownerAllAssignedRoles = mergeWith(\n ownerInheritedRoles,\n this.ownerAssignedRoles,\n (objValue, srcValue) => {\n if (srcValue) {\n if (objValue) {\n return uniqBy(objValue.concat(srcValue.roles), 'id');\n }\n return srcValue.roles;\n }\n return objValue;\n }\n );\n }\n }\n\n getInventoryInheritedRoles(flatTree, assignedRoles) {\n return reduce(\n flatTree,\n (inheritedRoles, asset) => {\n // eslint-disable-next-line no-underscore-dangle\n let chain = asset._parentGroups;\n chain = _map(chain, group => get(assignedRoles, group.id));\n chain = filter(chain, identity);\n chain = _map(chain, property('roles'));\n chain = flatten(chain);\n chain = uniqBy(chain, 'id');\n inheritedRoles[asset.id] = chain;\n return inheritedRoles;\n },\n {}\n );\n }\n\n onApply(ev, managedObjectId) {\n return this.onChangeRoles.emit({\n managedObjectId: managedObjectId,\n roles: ev.roles\n });\n }\n\n filterAsset(asset) {\n if (this.ownerAllAssignedRoles) {\n return get(this.ownerAllAssignedRoles, [asset.id, 'length']);\n }\n return true;\n }\n}\n","<div class=\"c8y-list__group m-b-0 no-border-last\">\n <div\n class=\"c8y-list__item\"\n *ngFor=\"\n let asset of flatAssetTree$ | async | slice: paginationOffset:paginationOffset + pageSize\n \"\n >\n <div\n class=\"c8y-list__item__block\"\n [title]=\"\n (asset._subGroups && asset.isOpened\n ? asset._subGroups.length\n ? asset._subGroups.length > 1\n ? manySubgroupsTitle\n : oneSubgroupTitle\n : noSubgroupTitle\n : clickToOpenTitle\n ) | translate: { count: asset._subGroups?.length }\n \"\n >\n <div [ngStyle]=\"{ 'padding-left': asset._depth * 8 + 'px' }\"></div>\n <div class=\"c8y-list__item__icon m-t-4 p-l-0\">\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"(!asset.isOpened ? expandAriaLabel : collapseAriaLabel) | translate\"\n type=\"button\"\n (click)=\"loadChildren(asset)\"\n >\n <i\n class=\"c8y-icon-duocolor\"\n c8yIcon=\"c8y-group\"\n *ngIf=\"!asset.isOpened\"\n ></i>\n <i\n class=\"c8y-icon-duocolor\"\n c8yIcon=\"c8y-group-open\"\n *ngIf=\"asset.isOpened\"\n ></i>\n </button>\n </div>\n <div class=\"c8y-list__item__body\">\n <div class=\"d-flex a-i-center\">\n <div class=\"col-sm-7 p-l-0 col-xs-12\">\n <button\n class=\"btn-clean\"\n type=\"button\"\n (click)=\"loadChildren(asset)\"\n >\n <span\n class=\"text-truncate\"\n [ngStyle]=\"{ cursor: 'pointer' }\"\n title=\"{{ asset.name }}\"\n >\n {{ asset.name }}\n </span>\n </button>\n </div>\n <div class=\"p-t-8 col-xs-12 visible-xs\"></div>\n <div class=\"col-sm-5 p-l-0 col-xs-12 p-r-0\">\n <div class=\"d-flex\">\n <div class=\"flex-grow form-group-sm max-width-100\">\n <c8y-inventory-role-selector-upgraded\n [ownerAllowedRoles]=\"\n ownerAllAssignedRoles ? ownerAllAssignedRoles[asset.id] : undefined\n \"\n [inheritedRoles]=\"inheritedRoles ? inheritedRoles[asset.id] : undefined\"\n [assignedRoles]=\"assignedRoles ? assignedRoles[asset.id] : undefined\"\n [inventoryRoles]=\"inventoryRoles\"\n [disableEditForExternalUsers]=\"disableEditForExternalUsers\"\n (onApply)=\"onApply($event, asset.id)\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-inventory-role-selector-upgraded>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No matching group found among the expanded groups.' | translate\"\n [subtitle]=\"'Try to expand more groups or to refine your search term.' | translate\"\n *ngIf=\"searchFilter && !(flatAssetTree$ | async).length\"\n [horizontal]=\"false\"\n ></c8y-ui-empty-state>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@c8y/ngx-components';\nimport { InventoryRoleSelector } from './inventory-role-selector/inventory-role-selector.component';\nimport { RolesAssetTreeComponent } from './roles-asset-tree/roles-asset-tree.component';\n\n@NgModule({\n imports: [CoreModule, InventoryRoleSelector, RolesAssetTreeComponent]\n})\nexport class UserRolesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_map"],"mappings":"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"}
|
|
@@ -157,10 +157,10 @@ class DatapointGraphFactory {
|
|
|
157
157
|
return [];
|
|
158
158
|
}));
|
|
159
159
|
}
|
|
160
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
161
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
160
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DatapointGraphFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
161
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DatapointGraphFactory }); }
|
|
162
162
|
}
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DatapointGraphFactory, decorators: [{
|
|
164
164
|
type: Injectable
|
|
165
165
|
}] });
|
|
166
166
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-widgets-definitions-datapoints-graph.mjs","sources":["../../widgets/definitions/datapoints-graph/datapoint-graph-widget-controls-definition.ts","../../widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.ts","../../widgets/definitions/datapoints-graph/index.ts","../../widgets/definitions/datapoints-graph/c8y-ngx-components-widgets-definitions-datapoints-graph.ts"],"sourcesContent":["import {\n defineWidgetControls,\n createAutoRefreshHandlers\n} from '@c8y/ngx-components/global-context';\n\nconst autoRefreshHandlers = createAutoRefreshHandlers();\n\nexport const datapointsGraphWidgetControls = defineWidgetControls({\n name: 'datapoints-graph-widget',\n supports: [\n 'timeRange',\n 'liveRefresh',\n 'displayMode',\n 'refreshInterval',\n 'refreshOption',\n 'dataAggregation',\n 'source',\n 'eventSourceId'\n ],\n handlers: {\n disableAutoRefresh: {\n handler: state => {\n const result = autoRefreshHandlers.disableAutoRefresh(state);\n return {\n inlineControlSettings: result?.inlineControlSettings ?? {},\n dashboardControlSettings: result?.dashboardControlSettings ?? {},\n links: result?.links ?? {},\n options: result?.options\n };\n }\n }\n },\n settings: {\n dashboard: {\n live: {\n inline: {\n showAutoRefresh: true,\n showTimeContext: true\n }\n },\n history: {\n inline: {\n showTimeContext: true,\n showAggregation: true\n }\n }\n },\n config: {\n live: {\n inline: {\n showAutoRefresh: true,\n showRefreshInterval: true\n },\n configuration: {\n showAutoRefresh: true,\n showRefreshInterval: true,\n showTimeContext: true\n }\n },\n history: {\n inline: {},\n configuration: {\n showTimeContext: true,\n showAggregation: true\n }\n }\n },\n viewAndConfig: {\n live: {\n inline: {\n showAutoRefresh: true,\n showTimeContext: true,\n showRefreshInterval: true\n },\n configuration: {\n showAutoRefresh: true,\n showRefreshInterval: true,\n showTimeContext: true\n }\n },\n history: {\n inline: {\n showTimeContext: true,\n showAggregation: true\n },\n configuration: {\n showTimeContext: true,\n showAggregation: true\n }\n }\n },\n defaultLinks: {\n dashboard: {\n live: {\n dateTimeContext: true,\n isAutoRefreshEnabled: true\n },\n history: {\n dateTimeContext: true,\n aggregation: true\n }\n },\n config: {},\n viewAndConfig: {}\n }\n }\n});\n","import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicDatapointsResolver,\n PreviewService,\n DynamicWidgetDefinition\n} from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { datapointsGraphWidgetControls } from './datapoint-graph-widget-controls-definition';\n\n@Injectable()\nexport class DatapointGraphFactory {\n private readonly previewFeatureService = inject(PreviewService);\n\n private readonly baseWidgetDefinition: DynamicWidgetDefinition = {\n id: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Data points graph'),\n description: gettext('Displays a graph of selected data points'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n m => m.DatapointsGraphWidgetViewComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n m => m.DatapointsGraphWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/datapoints-graph-widget.png',\n resolve: {\n datapoints: DynamicDatapointsResolver\n },\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DatapointsGraphWidgetConfig!@c8y/ngx-components/echart'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n widgetControls: datapointsGraphWidgetControls,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n },\n noDeviceTarget: true,\n groupsSelectable: false\n },\n displaySettings: {\n globalTimeContext: true,\n globalAggregationContext: true,\n globalRealtimeContext: true\n }\n }\n };\n\n get(): Observable<DynamicWidgetDefinition[]> {\n return this.previewFeatureService.getState$('ui.datapoint-graph.v2').pipe(\n map(state => {\n if (state) {\n const newWidgetDefinition = cloneDeep(this.baseWidgetDefinition);\n newWidgetDefinition.id = defaultWidgetIds.DATAPOINTS_GRAPH_NEW;\n newWidgetDefinition.data.settings.noNewWidgets = true;\n\n return [this.baseWidgetDefinition, newWidgetDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { DatapointGraphFactory } from './datapoint-graph-widget-factory';\nimport {\n hookWidgetConfig,\n GlobalContextSectionComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { datapointsGraphWidgetControls } from './datapoint-graph-widget-controls-definition';\n\nexport const datapointGraphWidgetproviders = [\n hookWidget(DatapointGraphFactory),\n hookPreview({\n key: 'ui.datapoint-graph.v2',\n label: 'Data points graph',\n description: () =>\n import('@c8y/style/markdown-files/datapoint-graph-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n }),\n /* We need to register the widget config for both the new and old widget IDs. This ensures compatibility for widgets\n created with the new data point graph id (e.g. if a data point graph widget was created via community plugins)\n and widgets using the default one (toggled via preview feature)\n */\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH_NEW,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n widgetControls: datapointsGraphWidgetControls\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n }),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n widgetControls: datapointsGraphWidgetControls\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-widgets-definitions-datapoints-graph.mjs","sources":["../../widgets/definitions/datapoints-graph/datapoint-graph-widget-controls-definition.ts","../../widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.ts","../../widgets/definitions/datapoints-graph/index.ts","../../widgets/definitions/datapoints-graph/c8y-ngx-components-widgets-definitions-datapoints-graph.ts"],"sourcesContent":["import {\n defineWidgetControls,\n createAutoRefreshHandlers\n} from '@c8y/ngx-components/global-context';\n\nconst autoRefreshHandlers = createAutoRefreshHandlers();\n\nexport const datapointsGraphWidgetControls = defineWidgetControls({\n name: 'datapoints-graph-widget',\n supports: [\n 'timeRange',\n 'liveRefresh',\n 'displayMode',\n 'refreshInterval',\n 'refreshOption',\n 'dataAggregation',\n 'source',\n 'eventSourceId'\n ],\n handlers: {\n disableAutoRefresh: {\n handler: state => {\n const result = autoRefreshHandlers.disableAutoRefresh(state);\n return {\n inlineControlSettings: result?.inlineControlSettings ?? {},\n dashboardControlSettings: result?.dashboardControlSettings ?? {},\n links: result?.links ?? {},\n options: result?.options\n };\n }\n }\n },\n settings: {\n dashboard: {\n live: {\n inline: {\n showAutoRefresh: true,\n showTimeContext: true\n }\n },\n history: {\n inline: {\n showTimeContext: true,\n showAggregation: true\n }\n }\n },\n config: {\n live: {\n inline: {\n showAutoRefresh: true,\n showRefreshInterval: true\n },\n configuration: {\n showAutoRefresh: true,\n showRefreshInterval: true,\n showTimeContext: true\n }\n },\n history: {\n inline: {},\n configuration: {\n showTimeContext: true,\n showAggregation: true\n }\n }\n },\n viewAndConfig: {\n live: {\n inline: {\n showAutoRefresh: true,\n showTimeContext: true,\n showRefreshInterval: true\n },\n configuration: {\n showAutoRefresh: true,\n showRefreshInterval: true,\n showTimeContext: true\n }\n },\n history: {\n inline: {\n showTimeContext: true,\n showAggregation: true\n },\n configuration: {\n showTimeContext: true,\n showAggregation: true\n }\n }\n },\n defaultLinks: {\n dashboard: {\n live: {\n dateTimeContext: true,\n isAutoRefreshEnabled: true\n },\n history: {\n dateTimeContext: true,\n aggregation: true\n }\n },\n config: {},\n viewAndConfig: {}\n }\n }\n});\n","import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicDatapointsResolver,\n PreviewService,\n DynamicWidgetDefinition\n} from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { datapointsGraphWidgetControls } from './datapoint-graph-widget-controls-definition';\n\n@Injectable()\nexport class DatapointGraphFactory {\n private readonly previewFeatureService = inject(PreviewService);\n\n private readonly baseWidgetDefinition: DynamicWidgetDefinition = {\n id: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Data points graph'),\n description: gettext('Displays a graph of selected data points'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n m => m.DatapointsGraphWidgetViewComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n m => m.DatapointsGraphWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/datapoints-graph-widget.png',\n resolve: {\n datapoints: DynamicDatapointsResolver\n },\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DatapointsGraphWidgetConfig!@c8y/ngx-components/echart'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n widgetControls: datapointsGraphWidgetControls,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n },\n noDeviceTarget: true,\n groupsSelectable: false\n },\n displaySettings: {\n globalTimeContext: true,\n globalAggregationContext: true,\n globalRealtimeContext: true\n }\n }\n };\n\n get(): Observable<DynamicWidgetDefinition[]> {\n return this.previewFeatureService.getState$('ui.datapoint-graph.v2').pipe(\n map(state => {\n if (state) {\n const newWidgetDefinition = cloneDeep(this.baseWidgetDefinition);\n newWidgetDefinition.id = defaultWidgetIds.DATAPOINTS_GRAPH_NEW;\n newWidgetDefinition.data.settings.noNewWidgets = true;\n\n return [this.baseWidgetDefinition, newWidgetDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { DatapointGraphFactory } from './datapoint-graph-widget-factory';\nimport {\n hookWidgetConfig,\n GlobalContextSectionComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { datapointsGraphWidgetControls } from './datapoint-graph-widget-controls-definition';\n\nexport const datapointGraphWidgetproviders = [\n hookWidget(DatapointGraphFactory),\n hookPreview({\n key: 'ui.datapoint-graph.v2',\n label: 'Data points graph',\n description: () =>\n import('@c8y/style/markdown-files/datapoint-graph-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n }),\n /* We need to register the widget config for both the new and old widget IDs. This ensures compatibility for widgets\n created with the new data point graph id (e.g. if a data point graph widget was created via community plugins)\n and widgets using the default one (toggled via preview feature)\n */\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH_NEW,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n widgetControls: datapointsGraphWidgetControls\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n }),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n widgetControls: datapointsGraphWidgetControls\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -554,10 +554,10 @@ class AIHtmlWidgetConfigFactory {
|
|
|
554
554
|
return [];
|
|
555
555
|
}));
|
|
556
556
|
}
|
|
557
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
558
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
557
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AIHtmlWidgetConfigFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
558
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AIHtmlWidgetConfigFactory, providedIn: 'root' }); }
|
|
559
559
|
}
|
|
560
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
560
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AIHtmlWidgetConfigFactory, decorators: [{
|
|
561
561
|
type: Injectable,
|
|
562
562
|
args: [{
|
|
563
563
|
providedIn: 'root'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs","sources":["../../widgets/definitions/html-widget-ai-config/html-widget.agent.ts","../../widgets/definitions/html-widget-ai-config/ai-html-widget-config.factory.ts","../../widgets/definitions/html-widget-ai-config/index.ts","../../widgets/definitions/html-widget-ai-config/c8y-ngx-components-widgets-definitions-html-widget-ai-config.ts"],"sourcesContent":["// This file contains the definitions for the various AI agents used in the application.\n\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport type { ClientAgentDefinition } from '@c8y/ngx-components/ai';\n\ndeclare const __MODE__: string;\n\nexport const EXTRACT_TAG_NAME = 'c8y-code-extract';\n\nconst WIDGET_CODE_INSTRUCTIONS = `You are responsible for creating a Web component that is rendered on the Dashboard of the Cumulocity IoT Platform. It is written as a lit-element. The following is a very basic example: \n\n<${EXTRACT_TAG_NAME}>\nimport { LitElement, html, css} from 'lit';\nimport { styleImports } from 'styles';\n\nexport default class DefaultWebComponent extends LitElement {\n static styles = css\\`\n \n:host > div {\n padding-left: var(--c8y-root-component-padding);\n padding-right: var(--c8y-root-component-padding);\n}\nspan.branded { \n color: var(--c8y-brand-primary); \n}\n \\`;\n\n static properties = {\n // The managed object this widget is assigned to. Can be null.\n c8yContext: { type: Object },\n };\n\n constructor() {\n super();\n }\n\n render() {\n return html\\`\n <style>\n \\${styleImports}\n </style>\n <div>\n <h1>Hello from HTML widget</h1>\n <p>\n You can use HTML and Javascript template literals here:\n \\${this.c8yContext ? this.c8yContext.name : 'No device selected'}\n </p>\n\n <a class=\"btn btn-primary\" href=\"#/group\">Go to groups</a>\n\n <p>\n Use the CSS editor to add CSS. You can use <span class=\"branded\">any design-token CSS variable</span> in there.\n </p>\n</div>\n \\`;\n }\n}\n</${EXTRACT_TAG_NAME}>\n\nYou are allowed to use the following ESM imports and libs:\n\njavascript\nimport { L } from 'leaflet';\nimport * as echarts from 'echarts'\nimport { fetch } from 'fetch'\n\n\nRemember to not use any leflet plugin. You are only allowed to use pure leaftlet. Always use the imported fetch function to make API calls authenticated to the Cumulocity instance.\n\nDo not include any emoji characters or Unicode symbols in the output - replace any decorative icons with plain text descriptions.\n\nAmong the UI elements that you are allowed to build on your own using HTML and CSS, here are components that you are encouraged to use in your answer:\n\n## Buttons\nYou can apply button classes to any <a>, <input>, or <button> element to style them as buttons. When using a button inside a <form> without a defined type, it defaults to type=\"submit\". To prevent accidental form submissions, always explicitly define the button's type as type=\"button\".\n\nAvailable button variants:\n- .btn-default (standard button)\n- .btn-primary (primary action)\n- .btn-success (positive action)\n- .btn-warning (caution action)\n- .btn-danger (destructive action)\n- .btn-link (text-only button)\n\nButton sizes:\n- .btn-lg (large)\n- .btn-sm (small)\n- .btn-xs (extra small)\n\n\\`\\`\\`html\n<button class=\"btn btn-primary\" type=\"button\">Primary Button</button>\n<button class=\"btn btn-default\" type=\"button\">Default Button</button>\n<button class=\"btn btn-success\" type=\"button\">Success Button</button>\n<button class=\"btn btn-warning\" type=\"button\">Warning Button</button>\n<button class=\"btn btn-danger\" type=\"button\">Danger Button</button>\n<a class=\"btn btn-link\" href=\"javascript:void(0);\">Link Button</a>\n\\`\\`\\`\n\n### Pending/Loading Buttons\nAdd .btn-pending to display an active process. The pointer-events are set to none, making the button unclickable.\n\n\\`\\`\\`html\n<button type=\"button\" aria-busy=\"true\" class=\"btn btn-primary btn-pending\">\n Processing...\n</button>\n\\`\\`\\`\n\n### Button Groups\nGroup a series of buttons together with .btn-group. Can be used for toolbars or action groups.\n\n\\`\\`\\`html\n<div class=\"btn-group\" role=\"group\">\n <button type=\"button\" class=\"btn btn-default\">Left</button>\n <button type=\"button\" class=\"btn btn-default\">Middle</button>\n <button type=\"button\" class=\"btn btn-default\">Right</button>\n</div>\n\\`\\`\\`\n\n## Alerts\nWrap your message in a <div> with .alert class and a modifier class. Always add appropriate ARIA roles:\n\n- Use role=\"status\" for informational messages\n- Use role=\"alert\" for errors or messages \nrequiring immediate attention\n\n\\`\\`\\`html\n<div class=\"alert alert-success\" role=\"status\">\n <strong>Success!</strong> Operation completed successfully.\n</div>\n<div class=\"alert alert-warning\" role=\"alert\">\n <strong>Warning!</strong> Please review your settings.\n</div>\n<div class=\"alert alert-danger\" role=\"alert\">\n <strong>Error!</strong> Failed to save data.\n</div>\n<div class=\"alert alert-info\" role=\"status\">\n <strong>Info:</strong> New updates available.\n</div>\n<div class=\"alert alert-system\" role=\"alert\">\n <strong>System:</strong> Maintenance scheduled.\n</div>\n\\`\\`\\`\n\n### Dismissible Alerts\nFor dismissible alerts, add a close button with proper accessibility:\n\n\\`\\`\\`html\n<div class=\"alert alert-danger alert-dismissible\" role=\"alert\">\n <button class=\"close\" type=\"button\" @click=\"\\${() => this.dismissAlert()}\" aria-label=\"Close alert\">\n <span aria-hidden=\"true\">×</span>\n </button>\n <strong>Error:</strong> Invalid credentials provided.\n</div>\n\\`\\`\\`\n\n## Badges\nBadges indicate states with specific color schemes. Add .badge with a modifier class:\n\n\\`\\`\\`html\n<span class=\"badge badge-default\">3</span>\n<span class=\"badge badge-success\">Active</span>\n<span class=\"badge badge-warning\">Pending</span>\n<span class=\"badge badge-danger\">Critical</span>\n<span class=\"badge badge-system\">System</span>\n<span class=\"badge badge-info\">72</span>\n\\`\\`\\`\n### Icon Badges\nCombine badges with icons using .c8y-icon-badge wrapper:\n\n\\`\\`\\`html\n<span class=\"c8y-icon-badge\" title=\"14 Critical alarms\">\n <i class=\"dlt-c8y-icon-exclamation-circle status critical\"></i>\n <span class=\"badge badge-danger\" aria-live=\"assertive\">14</span>\n</span>\n\\`\\`\\`\n\n## Loading Spinner\nShows content is being loaded or processed:\n\n\\`\\`\\`html\n<div class=\"spinner\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n</div>\n\\`\\`\\`\n\n## Tag\nTags highlight small pieces of information inline. They are commonly used to display categories, filters, or selected options in a visually appealing and compact manner.\n\nAdd the .tag class to any <span> or <div> together with any of the modifier classes mentioned below to change the appearance of an inline label. Add the .font-size-inherit class to inherit the font size.\n\n\\`\\`\\`html\n<h1>heading 1\n<span class=\"tag tag--default\">Default</span>\n</h1>\n<br>\n<h2>heading 2\n<span class=\"tag tag--primary\">Primary</span>\n</h2>\n<br>\n<h3>heading 3\n<span class=\"tag tag--danger\">Danger</span>\n</h3>\n<br>\n<h4>heading 4\n<span class=\"tag tag--success font-size-inherit\">Success</span>\n</h4>\n<br>\n<h5>heading 5\n<span class=\"tag tag--warning\">Warning</span>\n</h5>\n<br>\n<h6>heading 6\n<span class=\"tag tag--info\">Info</span>\n</h6>\n\\`\\`\\`\n\n## Table\nTables help you see and process great amounts of data in a tabular form. Designed for simplicity and clarity, they are an efficient way to organize and present information.\n\n\n### Default table\n\nFor basic styling—light padding and only horizontal dividers—add the base class .table to any table tag. It may seem redundant, but given the widespread use of tables for other plugins like calendars and date pickers, we have opted to isolate our custom table styles.\n\n\\`\\`\\`html\n<div class=\"container-fluid\">\n <table class=\"table\" role=\"table\" aria-label=\"Basic data table\">\n <caption>Optional table caption.</caption>\n <colgroup>\n <col width=\"20px\">\n <col width=\"33%\">\n <col width=\"33%\">\n <col width=\"33%\">\n </colgroup>\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">First Name</th>\n <th scope=\"col\">Last Name</th>\n <th scope=\"col\">Username</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th scope=\"row\">1</th>\n <td>Mark</td>\n <td>Field</td>\n <td>mod22755</td>\n </tr>\n <tr>\n <th scope=\"row\">2</th>\n <td>Jacob</td>\n <td>Diom</td>\n <td>2weet22</td>\n </tr>\n <tr>\n <th scope=\"row\">3</th>\n <td>Larry</td>\n <td>the Clam</td>\n <td>art36552</td>\n </tr>\n </tbody>\n </table>\n</div>\n\\`\\`\\`\n\n### Striped rows\nUse .table-striped to add zebra-striping to any table row within the tbody tag.\n\n\\`\\`\\`html\n<div class=\"container-fluid\">\n <table class=\"table table-striped\" role=\"table\" aria-label=\"Striped data table\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">First Name</th>\n <th scope=\"col\">Last Name</th>\n <th scope=\"col\">Username</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th scope=\"row\">1</th>\n <td>Mark</td>\n <td>Field</td>\n <td>mod22755</td>\n </tr>\n <tr>\n <th scope=\"row\">2</th>\n <td>Jacob</td>\n <td>Diom</td>\n <td>2weet22</td>\n </tr>\n <tr>\n <th scope=\"row\">3</th>\n <td>Larry</td>\n <td>the Clam</td>\n <td>art36552</td>\n </tr>\n </tbody>\n </table>\n</div>\n\\`\\`\\`\n\n### Bordered tables\nAdd .table-bordered for borders on all sides of the table and cells.\n\n\\`\\`\\`html\n<div class=\"container-fluid\">\n <table class=\"table table-bordered\" role=\"table\" aria-label=\"Bordered data table\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">First Name</th>\n <th scope=\"col\">Last Name</th>\n <th scope=\"col\">Username</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th scope=\"row\">1</th>\n <td>Mark</td>\n <td>Field</td>\n <td>mod22755</td>\n </tr>\n <tr>\n <th scope=\"row\">2</th>\n <td>Jacob</td>\n <td>Diom</td>\n <td>2weet22</td>\n </tr>\n <tr>\n <th scope=\"row\">3</th>\n <td>Larry</td>\n <td>the Clam</td>\n <td>art36552</td>\n </tr>\n </tbody>\n </table>\n</div>\n\\`\\`\\`\n\n\n### Hover rows\nAdd .table-hover to enable a hover state on table rows within a tbody tag.\n\n\\`\\`\\`html\n<div class=\"container-fluid\">\n <table class=\"table table-hover\" role=\"table\" aria-label=\"Hoverable data table\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">First Name</th>\n <th scope=\"col\">Last Name</th>\n <th scope=\"col\">Username</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th scope=\"row\">1</th>\n <td>Mark</td>\n <td>Field</td>\n <td>mod22755</td>\n </tr>\n <tr>\n <th scope=\"row\">2</th>\n <td>Jacob</td>\n <td>Diom</td>\n <td>2weet22</td>\n </tr>\n <tr>\n <th scope=\"row\">3</th>\n <td>Larry</td>\n <td>the Clam</td>\n <td>art36552</td>\n </tr>\n </tbody>\n </table>\n</div>\n\\`\\`\\`\n\n\n### Condensed tables\nWhen in need of showing tables in a more compact way, add .table-condensed to reduce font size and cut cell padding in half.\n\n\\`\\`\\`html\n<div class=\"container-fluid\">\n <table class=\"table table-condensed\" role=\"table\" aria-label=\"Condensed data table\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">First Name</th>\n <th scope=\"col\">Last Name</th>\n <th scope=\"col\">Username</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th scope=\"row\">1</th>\n <td>Mark</td>\n <td>Field</td>\n <td>mod22755</td>\n </tr>\n <tr>\n <th scope=\"row\">2</th>\n <td>Jacob</td>\n <td>Diom</td>\n <td>2weet22</td>\n </tr>\n <tr>\n <th scope=\"row\">3</th>\n <td colspan=\"2\">Larry the Clam</td>\n <td>art36552</td>\n </tr>\n </tbody>\n </table>\n</div>\n\\`\\`\\`\n\n## Alarms\nAlarms indicate device or system issues with varying levels of severity. Each alarm has both a severity level and a status to track its lifecycle.\n\n### Alarm Severities\n\nAlarms are classified into four severity levels, each with its own icon and use case:\n\n- **CRITICAL**: Device is out of service and requires immediate attention\n- **MAJOR**: Device has a significant problem that should be fixed\n- **MINOR**: Device has a problem that may need attention\n- **WARNING**: Informational warning that should be noted\n\n\\`\\`\\`html\n<!-- Critical Alarm -->\n<i class=\"status stroked-icon c8y-icon dlt-c8y-icon-exclamation-circle critical\"></i>\n<span>Critical: System failure detected</span>\n\n<!-- Major Alarm -->\n<i class=\"status stroked-icon c8y-icon dlt-c8y-icon-warning major\"></i>\n<span>Major: Service degradation</span>\n\n<!-- Minor Alarm -->\n<i class=\"status stroked-icon c8y-icon dlt-c8y-icon-high-priority minor\"></i>\n<span>Minor: Performance threshold exceeded</span>\n\n<!-- Warning Alarm -->\n<i class=\"status stroked-icon c8y-icon dlt-c8y-icon-circle warning\"></i>\n<span>Warning: Maintenance required soon</span>\n\n### Alarm Statuses\nAlarms progress through three possible statuses during their lifecycle:\n\n- Active: Alarm has been raised and no one is currently addressing it\n- Acknowledged: Someone has acknowledged the alarm and is working on resolution\n- Cleared: The issue has been resolved (either manually cleared or auto-resolved by the device)\n\n\\`\\`\\`html\n<!-- Active Status -->\n<i class=\"c8y-icon dlt-c8y-icon-bell\"></i>\n<span>Active alarm</span>\n\n<!-- Acknowledged Status -->\n<i class=\"c8y-icon dlt-c8y-icon-bell-slash\"></i>\n<span>Acknowledged by technician</span>\n\n<!-- Cleared Status -->\n<i class=\"c8y-icon c8y-icon-alert-idle\"></i>\n<span>Alarm cleared</span>\n\\`\\`\\`\\``;\n\nexport const HTML_WIDGET_AGENT: ClientAgentDefinition = {\n snapshot: __MODE__ !== 'production',\n label: gettext('HTML Widget Code assistant'),\n definitions: [\n {\n name: 'c8y-html-widget',\n agent: {\n system: `1. **Analyze the user request**\n - Extract specific data requirements\n - Identify visualization needs\n - Note any context dependencies\n\n2. **API Verification**\n - Use the \"cumulocity-api-request\" tool to verify needed APIs\n - Document the exact API endpoints, parameters, and expected responses\n\n3. **Coding**\n - Put out one code block with only the code, wrap it in a <${EXTRACT_TAG_NAME}> block\n - IMPORTANT: And no other text or markdown formatting inside the <${EXTRACT_TAG_NAME}> block\n - build the widget code using the following rules: ${WIDGET_CODE_INSTRUCTIONS}\n\n4. **Quality Validation**\n - Analyze if the widget fulfills the user request\n - Check for mock data usage vs real API integration\n - If inadequate, ask user for specific clarifications needed\n`,\n maxTokens: 20000\n },\n type: 'text',\n mcp: [\n {\n serverName: 'cumulocity-default',\n tools: ['cumulocity-api-request']\n }\n ]\n }\n ]\n};\n","import { inject, Injectable } from '@angular/core';\nimport { ExtensionFactory, PreviewService } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { AIService } from '@c8y/ngx-components/ai';\nimport type { WidgetAiChatSectionComponent } from '@c8y/ngx-components/ai/agent-chat';\nimport type { WidgetConfigSectionDefinition } from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { combineLatest, first, from, map, Observable } from 'rxjs';\nimport { HTML_WIDGET_AGENT } from './html-widget.agent';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AIHtmlWidgetConfigFactory implements ExtensionFactory<WidgetConfigSectionDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly aiService = inject(AIService);\n private readonly aiWidgetConfigDefinition: WidgetConfigSectionDefinition<WidgetAiChatSectionComponent> =\n {\n widgetId: defaultWidgetIds.HTML,\n label: gettext('AI Code Assistant'),\n loadComponent: () =>\n import('@c8y/ngx-components/ai/agent-chat').then(m => m.WidgetAiChatSectionComponent),\n initialState: {\n agent: HTML_WIDGET_AGENT,\n title: gettext(\n 'I’m your AI Code Assistant, here to help you build powerful widgets for your dashboard.'\n ),\n welcomeText: gettext(\n 'Describe the widget you want or select one of the options below to get started.'\n ),\n\n loadRenderStepComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlAiChatFeedbackComponent\n ),\n\n suggestions: [\n {\n label: gettext('Measurement widget'),\n prompt: gettext('Create a widget that shows the current measurement of this device.')\n },\n {\n label: gettext('Device status widget'),\n prompt: gettext('Create a widget that shows the status of my devices.')\n },\n {\n label: gettext('Critical alarm widget'),\n prompt: gettext('Create a widget that shows all critical alarms.')\n }\n ]\n },\n priority: 100\n };\n\n get(): Observable<WidgetConfigSectionDefinition[]> {\n return combineLatest([\n from(this.aiService.getAgentHealth(HTML_WIDGET_AGENT.definitions[0].name)),\n this.betaPreviewService.getState$('ui.html-widget.v2').pipe(first())\n ]).pipe(\n map(([aiExists, state]) => {\n const shouldIncludeAi = aiExists.exists || aiExists.isProviderConfigured;\n if (state && shouldIncludeAi) {\n return [this.aiWidgetConfigDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';\nimport { AIHtmlWidgetConfigFactory } from './ai-html-widget-config.factory';\n\nexport const htmlWidgetAIChatProviders = [hookWidgetConfig(AIHtmlWidgetConfigFactory)];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs","sources":["../../widgets/definitions/html-widget-ai-config/html-widget.agent.ts","../../widgets/definitions/html-widget-ai-config/ai-html-widget-config.factory.ts","../../widgets/definitions/html-widget-ai-config/index.ts","../../widgets/definitions/html-widget-ai-config/c8y-ngx-components-widgets-definitions-html-widget-ai-config.ts"],"sourcesContent":["// This file contains the definitions for the various AI agents used in the application.\n\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport type { ClientAgentDefinition } from '@c8y/ngx-components/ai';\n\ndeclare const __MODE__: string;\n\nexport const EXTRACT_TAG_NAME = 'c8y-code-extract';\n\nconst WIDGET_CODE_INSTRUCTIONS = `You are responsible for creating a Web component that is rendered on the Dashboard of the Cumulocity IoT Platform. It is written as a lit-element. The following is a very basic example: \n\n<${EXTRACT_TAG_NAME}>\nimport { LitElement, html, css} from 'lit';\nimport { styleImports } from 'styles';\n\nexport default class DefaultWebComponent extends LitElement {\n static styles = css\\`\n \n:host > div {\n padding-left: var(--c8y-root-component-padding);\n padding-right: var(--c8y-root-component-padding);\n}\nspan.branded { \n color: var(--c8y-brand-primary); \n}\n \\`;\n\n static properties = {\n // The managed object this widget is assigned to. Can be null.\n c8yContext: { type: Object },\n };\n\n constructor() {\n super();\n }\n\n render() {\n return html\\`\n <style>\n \\${styleImports}\n </style>\n <div>\n <h1>Hello from HTML widget</h1>\n <p>\n You can use HTML and Javascript template literals here:\n \\${this.c8yContext ? this.c8yContext.name : 'No device selected'}\n </p>\n\n <a class=\"btn btn-primary\" href=\"#/group\">Go to groups</a>\n\n <p>\n Use the CSS editor to add CSS. You can use <span class=\"branded\">any design-token CSS variable</span> in there.\n </p>\n</div>\n \\`;\n }\n}\n</${EXTRACT_TAG_NAME}>\n\nYou are allowed to use the following ESM imports and libs:\n\njavascript\nimport { L } from 'leaflet';\nimport * as echarts from 'echarts'\nimport { fetch } from 'fetch'\n\n\nRemember to not use any leflet plugin. You are only allowed to use pure leaftlet. Always use the imported fetch function to make API calls authenticated to the Cumulocity instance.\n\nDo not include any emoji characters or Unicode symbols in the output - replace any decorative icons with plain text descriptions.\n\nAmong the UI elements that you are allowed to build on your own using HTML and CSS, here are components that you are encouraged to use in your answer:\n\n## Buttons\nYou can apply button classes to any <a>, <input>, or <button> element to style them as buttons. When using a button inside a <form> without a defined type, it defaults to type=\"submit\". To prevent accidental form submissions, always explicitly define the button's type as type=\"button\".\n\nAvailable button variants:\n- .btn-default (standard button)\n- .btn-primary (primary action)\n- .btn-success (positive action)\n- .btn-warning (caution action)\n- .btn-danger (destructive action)\n- .btn-link (text-only button)\n\nButton sizes:\n- .btn-lg (large)\n- .btn-sm (small)\n- .btn-xs (extra small)\n\n\\`\\`\\`html\n<button class=\"btn btn-primary\" type=\"button\">Primary Button</button>\n<button class=\"btn btn-default\" type=\"button\">Default Button</button>\n<button class=\"btn btn-success\" type=\"button\">Success Button</button>\n<button class=\"btn btn-warning\" type=\"button\">Warning Button</button>\n<button class=\"btn btn-danger\" type=\"button\">Danger Button</button>\n<a class=\"btn btn-link\" href=\"javascript:void(0);\">Link Button</a>\n\\`\\`\\`\n\n### Pending/Loading Buttons\nAdd .btn-pending to display an active process. The pointer-events are set to none, making the button unclickable.\n\n\\`\\`\\`html\n<button type=\"button\" aria-busy=\"true\" class=\"btn btn-primary btn-pending\">\n Processing...\n</button>\n\\`\\`\\`\n\n### Button Groups\nGroup a series of buttons together with .btn-group. Can be used for toolbars or action groups.\n\n\\`\\`\\`html\n<div class=\"btn-group\" role=\"group\">\n <button type=\"button\" class=\"btn btn-default\">Left</button>\n <button type=\"button\" class=\"btn btn-default\">Middle</button>\n <button type=\"button\" class=\"btn btn-default\">Right</button>\n</div>\n\\`\\`\\`\n\n## Alerts\nWrap your message in a <div> with .alert class and a modifier class. Always add appropriate ARIA roles:\n\n- Use role=\"status\" for informational messages\n- Use role=\"alert\" for errors or messages \nrequiring immediate attention\n\n\\`\\`\\`html\n<div class=\"alert alert-success\" role=\"status\">\n <strong>Success!</strong> Operation completed successfully.\n</div>\n<div class=\"alert alert-warning\" role=\"alert\">\n <strong>Warning!</strong> Please review your settings.\n</div>\n<div class=\"alert alert-danger\" role=\"alert\">\n <strong>Error!</strong> Failed to save data.\n</div>\n<div class=\"alert alert-info\" role=\"status\">\n <strong>Info:</strong> New updates available.\n</div>\n<div class=\"alert alert-system\" role=\"alert\">\n <strong>System:</strong> Maintenance scheduled.\n</div>\n\\`\\`\\`\n\n### Dismissible Alerts\nFor dismissible alerts, add a close button with proper accessibility:\n\n\\`\\`\\`html\n<div class=\"alert alert-danger alert-dismissible\" role=\"alert\">\n <button class=\"close\" type=\"button\" @click=\"\\${() => this.dismissAlert()}\" aria-label=\"Close alert\">\n <span aria-hidden=\"true\">×</span>\n </button>\n <strong>Error:</strong> Invalid credentials provided.\n</div>\n\\`\\`\\`\n\n## Badges\nBadges indicate states with specific color schemes. Add .badge with a modifier class:\n\n\\`\\`\\`html\n<span class=\"badge badge-default\">3</span>\n<span class=\"badge badge-success\">Active</span>\n<span class=\"badge badge-warning\">Pending</span>\n<span class=\"badge badge-danger\">Critical</span>\n<span class=\"badge badge-system\">System</span>\n<span class=\"badge badge-info\">72</span>\n\\`\\`\\`\n### Icon Badges\nCombine badges with icons using .c8y-icon-badge wrapper:\n\n\\`\\`\\`html\n<span class=\"c8y-icon-badge\" title=\"14 Critical alarms\">\n <i class=\"dlt-c8y-icon-exclamation-circle status critical\"></i>\n <span class=\"badge badge-danger\" aria-live=\"assertive\">14</span>\n</span>\n\\`\\`\\`\n\n## Loading Spinner\nShows content is being loaded or processed:\n\n\\`\\`\\`html\n<div class=\"spinner\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n</div>\n\\`\\`\\`\n\n## Tag\nTags highlight small pieces of information inline. They are commonly used to display categories, filters, or selected options in a visually appealing and compact manner.\n\nAdd the .tag class to any <span> or <div> together with any of the modifier classes mentioned below to change the appearance of an inline label. Add the .font-size-inherit class to inherit the font size.\n\n\\`\\`\\`html\n<h1>heading 1\n<span class=\"tag tag--default\">Default</span>\n</h1>\n<br>\n<h2>heading 2\n<span class=\"tag tag--primary\">Primary</span>\n</h2>\n<br>\n<h3>heading 3\n<span class=\"tag tag--danger\">Danger</span>\n</h3>\n<br>\n<h4>heading 4\n<span class=\"tag tag--success font-size-inherit\">Success</span>\n</h4>\n<br>\n<h5>heading 5\n<span class=\"tag tag--warning\">Warning</span>\n</h5>\n<br>\n<h6>heading 6\n<span class=\"tag tag--info\">Info</span>\n</h6>\n\\`\\`\\`\n\n## Table\nTables help you see and process great amounts of data in a tabular form. Designed for simplicity and clarity, they are an efficient way to organize and present information.\n\n\n### Default table\n\nFor basic styling—light padding and only horizontal dividers—add the base class .table to any table tag. It may seem redundant, but given the widespread use of tables for other plugins like calendars and date pickers, we have opted to isolate our custom table styles.\n\n\\`\\`\\`html\n<div class=\"container-fluid\">\n <table class=\"table\" role=\"table\" aria-label=\"Basic data table\">\n <caption>Optional table caption.</caption>\n <colgroup>\n <col width=\"20px\">\n <col width=\"33%\">\n <col width=\"33%\">\n <col width=\"33%\">\n </colgroup>\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">First Name</th>\n <th scope=\"col\">Last Name</th>\n <th scope=\"col\">Username</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th scope=\"row\">1</th>\n <td>Mark</td>\n <td>Field</td>\n <td>mod22755</td>\n </tr>\n <tr>\n <th scope=\"row\">2</th>\n <td>Jacob</td>\n <td>Diom</td>\n <td>2weet22</td>\n </tr>\n <tr>\n <th scope=\"row\">3</th>\n <td>Larry</td>\n <td>the Clam</td>\n <td>art36552</td>\n </tr>\n </tbody>\n </table>\n</div>\n\\`\\`\\`\n\n### Striped rows\nUse .table-striped to add zebra-striping to any table row within the tbody tag.\n\n\\`\\`\\`html\n<div class=\"container-fluid\">\n <table class=\"table table-striped\" role=\"table\" aria-label=\"Striped data table\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">First Name</th>\n <th scope=\"col\">Last Name</th>\n <th scope=\"col\">Username</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th scope=\"row\">1</th>\n <td>Mark</td>\n <td>Field</td>\n <td>mod22755</td>\n </tr>\n <tr>\n <th scope=\"row\">2</th>\n <td>Jacob</td>\n <td>Diom</td>\n <td>2weet22</td>\n </tr>\n <tr>\n <th scope=\"row\">3</th>\n <td>Larry</td>\n <td>the Clam</td>\n <td>art36552</td>\n </tr>\n </tbody>\n </table>\n</div>\n\\`\\`\\`\n\n### Bordered tables\nAdd .table-bordered for borders on all sides of the table and cells.\n\n\\`\\`\\`html\n<div class=\"container-fluid\">\n <table class=\"table table-bordered\" role=\"table\" aria-label=\"Bordered data table\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">First Name</th>\n <th scope=\"col\">Last Name</th>\n <th scope=\"col\">Username</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th scope=\"row\">1</th>\n <td>Mark</td>\n <td>Field</td>\n <td>mod22755</td>\n </tr>\n <tr>\n <th scope=\"row\">2</th>\n <td>Jacob</td>\n <td>Diom</td>\n <td>2weet22</td>\n </tr>\n <tr>\n <th scope=\"row\">3</th>\n <td>Larry</td>\n <td>the Clam</td>\n <td>art36552</td>\n </tr>\n </tbody>\n </table>\n</div>\n\\`\\`\\`\n\n\n### Hover rows\nAdd .table-hover to enable a hover state on table rows within a tbody tag.\n\n\\`\\`\\`html\n<div class=\"container-fluid\">\n <table class=\"table table-hover\" role=\"table\" aria-label=\"Hoverable data table\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">First Name</th>\n <th scope=\"col\">Last Name</th>\n <th scope=\"col\">Username</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th scope=\"row\">1</th>\n <td>Mark</td>\n <td>Field</td>\n <td>mod22755</td>\n </tr>\n <tr>\n <th scope=\"row\">2</th>\n <td>Jacob</td>\n <td>Diom</td>\n <td>2weet22</td>\n </tr>\n <tr>\n <th scope=\"row\">3</th>\n <td>Larry</td>\n <td>the Clam</td>\n <td>art36552</td>\n </tr>\n </tbody>\n </table>\n</div>\n\\`\\`\\`\n\n\n### Condensed tables\nWhen in need of showing tables in a more compact way, add .table-condensed to reduce font size and cut cell padding in half.\n\n\\`\\`\\`html\n<div class=\"container-fluid\">\n <table class=\"table table-condensed\" role=\"table\" aria-label=\"Condensed data table\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">First Name</th>\n <th scope=\"col\">Last Name</th>\n <th scope=\"col\">Username</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th scope=\"row\">1</th>\n <td>Mark</td>\n <td>Field</td>\n <td>mod22755</td>\n </tr>\n <tr>\n <th scope=\"row\">2</th>\n <td>Jacob</td>\n <td>Diom</td>\n <td>2weet22</td>\n </tr>\n <tr>\n <th scope=\"row\">3</th>\n <td colspan=\"2\">Larry the Clam</td>\n <td>art36552</td>\n </tr>\n </tbody>\n </table>\n</div>\n\\`\\`\\`\n\n## Alarms\nAlarms indicate device or system issues with varying levels of severity. Each alarm has both a severity level and a status to track its lifecycle.\n\n### Alarm Severities\n\nAlarms are classified into four severity levels, each with its own icon and use case:\n\n- **CRITICAL**: Device is out of service and requires immediate attention\n- **MAJOR**: Device has a significant problem that should be fixed\n- **MINOR**: Device has a problem that may need attention\n- **WARNING**: Informational warning that should be noted\n\n\\`\\`\\`html\n<!-- Critical Alarm -->\n<i class=\"status stroked-icon c8y-icon dlt-c8y-icon-exclamation-circle critical\"></i>\n<span>Critical: System failure detected</span>\n\n<!-- Major Alarm -->\n<i class=\"status stroked-icon c8y-icon dlt-c8y-icon-warning major\"></i>\n<span>Major: Service degradation</span>\n\n<!-- Minor Alarm -->\n<i class=\"status stroked-icon c8y-icon dlt-c8y-icon-high-priority minor\"></i>\n<span>Minor: Performance threshold exceeded</span>\n\n<!-- Warning Alarm -->\n<i class=\"status stroked-icon c8y-icon dlt-c8y-icon-circle warning\"></i>\n<span>Warning: Maintenance required soon</span>\n\n### Alarm Statuses\nAlarms progress through three possible statuses during their lifecycle:\n\n- Active: Alarm has been raised and no one is currently addressing it\n- Acknowledged: Someone has acknowledged the alarm and is working on resolution\n- Cleared: The issue has been resolved (either manually cleared or auto-resolved by the device)\n\n\\`\\`\\`html\n<!-- Active Status -->\n<i class=\"c8y-icon dlt-c8y-icon-bell\"></i>\n<span>Active alarm</span>\n\n<!-- Acknowledged Status -->\n<i class=\"c8y-icon dlt-c8y-icon-bell-slash\"></i>\n<span>Acknowledged by technician</span>\n\n<!-- Cleared Status -->\n<i class=\"c8y-icon c8y-icon-alert-idle\"></i>\n<span>Alarm cleared</span>\n\\`\\`\\`\\``;\n\nexport const HTML_WIDGET_AGENT: ClientAgentDefinition = {\n snapshot: __MODE__ !== 'production',\n label: gettext('HTML Widget Code assistant'),\n definitions: [\n {\n name: 'c8y-html-widget',\n agent: {\n system: `1. **Analyze the user request**\n - Extract specific data requirements\n - Identify visualization needs\n - Note any context dependencies\n\n2. **API Verification**\n - Use the \"cumulocity-api-request\" tool to verify needed APIs\n - Document the exact API endpoints, parameters, and expected responses\n\n3. **Coding**\n - Put out one code block with only the code, wrap it in a <${EXTRACT_TAG_NAME}> block\n - IMPORTANT: And no other text or markdown formatting inside the <${EXTRACT_TAG_NAME}> block\n - build the widget code using the following rules: ${WIDGET_CODE_INSTRUCTIONS}\n\n4. **Quality Validation**\n - Analyze if the widget fulfills the user request\n - Check for mock data usage vs real API integration\n - If inadequate, ask user for specific clarifications needed\n`,\n maxTokens: 20000\n },\n type: 'text',\n mcp: [\n {\n serverName: 'cumulocity-default',\n tools: ['cumulocity-api-request']\n }\n ]\n }\n ]\n};\n","import { inject, Injectable } from '@angular/core';\nimport { ExtensionFactory, PreviewService } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { AIService } from '@c8y/ngx-components/ai';\nimport type { WidgetAiChatSectionComponent } from '@c8y/ngx-components/ai/agent-chat';\nimport type { WidgetConfigSectionDefinition } from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { combineLatest, first, from, map, Observable } from 'rxjs';\nimport { HTML_WIDGET_AGENT } from './html-widget.agent';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AIHtmlWidgetConfigFactory implements ExtensionFactory<WidgetConfigSectionDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly aiService = inject(AIService);\n private readonly aiWidgetConfigDefinition: WidgetConfigSectionDefinition<WidgetAiChatSectionComponent> =\n {\n widgetId: defaultWidgetIds.HTML,\n label: gettext('AI Code Assistant'),\n loadComponent: () =>\n import('@c8y/ngx-components/ai/agent-chat').then(m => m.WidgetAiChatSectionComponent),\n initialState: {\n agent: HTML_WIDGET_AGENT,\n title: gettext(\n 'I’m your AI Code Assistant, here to help you build powerful widgets for your dashboard.'\n ),\n welcomeText: gettext(\n 'Describe the widget you want or select one of the options below to get started.'\n ),\n\n loadRenderStepComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlAiChatFeedbackComponent\n ),\n\n suggestions: [\n {\n label: gettext('Measurement widget'),\n prompt: gettext('Create a widget that shows the current measurement of this device.')\n },\n {\n label: gettext('Device status widget'),\n prompt: gettext('Create a widget that shows the status of my devices.')\n },\n {\n label: gettext('Critical alarm widget'),\n prompt: gettext('Create a widget that shows all critical alarms.')\n }\n ]\n },\n priority: 100\n };\n\n get(): Observable<WidgetConfigSectionDefinition[]> {\n return combineLatest([\n from(this.aiService.getAgentHealth(HTML_WIDGET_AGENT.definitions[0].name)),\n this.betaPreviewService.getState$('ui.html-widget.v2').pipe(first())\n ]).pipe(\n map(([aiExists, state]) => {\n const shouldIncludeAi = aiExists.exists || aiExists.isProviderConfigured;\n if (state && shouldIncludeAi) {\n return [this.aiWidgetConfigDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';\nimport { AIHtmlWidgetConfigFactory } from './ai-html-widget-config.factory';\n\nexport const htmlWidgetAIChatProviders = [hookWidgetConfig(AIHtmlWidgetConfigFactory)];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -50,10 +50,10 @@ class HtmlWidgetConfigFactory {
|
|
|
50
50
|
return [];
|
|
51
51
|
}));
|
|
52
52
|
}
|
|
53
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
54
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: HtmlWidgetConfigFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
54
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: HtmlWidgetConfigFactory, providedIn: 'root' }); }
|
|
55
55
|
}
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: HtmlWidgetConfigFactory, decorators: [{
|
|
57
57
|
type: Injectable,
|
|
58
58
|
args: [{
|
|
59
59
|
providedIn: 'root'
|
|
@@ -94,10 +94,10 @@ class HtmlWidgetFactory {
|
|
|
94
94
|
return [];
|
|
95
95
|
}));
|
|
96
96
|
}
|
|
97
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
98
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
97
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: HtmlWidgetFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
98
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: HtmlWidgetFactory, providedIn: 'root' }); }
|
|
99
99
|
}
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: HtmlWidgetFactory, decorators: [{
|
|
101
101
|
type: Injectable,
|
|
102
102
|
args: [{
|
|
103
103
|
providedIn: 'root'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-widgets-definitions-html-widget.mjs","sources":["../../widgets/definitions/html-widget/html-widget-config.factory.ts","../../widgets/definitions/html-widget/html-widget.factory.ts","../../widgets/definitions/html-widget/index.ts","../../widgets/definitions/html-widget/c8y-ngx-components-widgets-definitions-html-widget.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { ExtensionFactory, PreviewService } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport type { WidgetConfigSectionDefinition } from '@c8y/ngx-components/context-dashboard';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HtmlWidgetConfigFactory implements ExtensionFactory<WidgetConfigSectionDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetConfigDefinition: WidgetConfigSectionDefinition[] = [\n {\n widgetId: defaultWidgetIds.HTML,\n providers: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(m => [\n m.HtmlWidgetConfigService\n ]),\n label: gettext('Asset selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.WidgetAssetSelectorComponent),\n priority: 100,\n initialState: {\n isRequired: false,\n groupsSelectable: true\n }\n },\n {\n widgetId: defaultWidgetIds.HTML,\n label: gettext('Asset properties'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetPropertiesSelectorComponent\n ),\n priority: 50\n },\n {\n widgetId: defaultWidgetIds.HTML,\n providers: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(m => [\n m.HtmlWidgetConfigService\n ]),\n label: gettext('Settings'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetConfigComponent\n ),\n priority: 0,\n expanded: true\n }\n ];\n\n get(): Observable<WidgetConfigSectionDefinition[]> {\n return this.betaPreviewService.getState$('ui.html-widget.v2').pipe(\n map(state => {\n if (state) {\n return this.baseWidgetConfigDefinition;\n }\n return [];\n })\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicComponentDefinition,\n DynamicManagedObjectResolver,\n DynamicWidgetDefinition,\n ExtensionFactory,\n PreviewService\n} from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HtmlWidgetFactory implements ExtensionFactory<DynamicComponentDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetDefinition: DynamicComponentDefinition = {\n id: defaultWidgetIds.HTML,\n label: gettext('HTML'),\n description: gettext(`Display custom HTML code.`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetComponent\n ),\n previewImage: 'c8y-style-assets/html-widget-pr.png',\n data: {\n settings: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=HtmlWidgetConfig!@c8y/ngx-components/widgets/implementations/html-widget'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n }\n }\n },\n resolve: {\n device: DynamicManagedObjectResolver\n }\n };\n\n get(): Observable<DynamicWidgetDefinition[]> {\n return this.betaPreviewService.getState$('ui.html-widget.v2').pipe(\n map(state => {\n if (state) {\n return [this.baseWidgetDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';\nimport { HtmlWidgetConfigFactory } from './html-widget-config.factory';\nimport { HtmlWidgetFactory } from './html-widget.factory';\n\nexport const htmlWidgetProviders = [\n hookWidget(HtmlWidgetFactory),\n hookWidgetConfig(HtmlWidgetConfigFactory),\n hookPreview({\n key: 'ui.html-widget.v2',\n label: 'Improved HTML widget',\n description: () =>\n import('@c8y/style/markdown-files/html-widget-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":";;;;;;;;;MAUa,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC;AAC3C,QAAA,IAAA,CAAA,0BAA0B,GAAoC;AAC7E,YAAA;gBACE,QAAQ,EAAE,gBAAgB,CAAC,IAAI;AAC/B,gBAAA,SAAS,EAAE,MACT,OAAO,yDAAyD,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI;AAC1E,oBAAA,CAAC,CAAC;iBACH,CAAC;AACJ,gBAAA,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC;AACjC,gBAAA,aAAa,EAAE,MACb,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,4BAA4B,CAAC;AAC3F,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,YAAY,EAAE;AACZ,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,gBAAgB,EAAE;AACnB;AACF,aAAA;AACD,YAAA;gBACE,QAAQ,EAAE,gBAAgB,CAAC,IAAI;AAC/B,gBAAA,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC;AAClC,gBAAA,aAAa,EAAE,MACb,OAAO,yDAAyD,CAAC,CAAC,IAAI,CACpE,CAAC,IAAI,CAAC,CAAC,qCAAqC,CAC7C;AACH,gBAAA,QAAQ,EAAE;AACX,aAAA;AACD,YAAA;gBACE,QAAQ,EAAE,gBAAgB,CAAC,IAAI;AAC/B,gBAAA,SAAS,EAAE,MACT,OAAO,yDAAyD,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI;AAC1E,oBAAA,CAAC,CAAC;iBACH,CAAC;AACJ,gBAAA,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC;AAC1B,gBAAA,aAAa,EAAE,MACb,OAAO,yDAAyD,CAAC,CAAC,IAAI,CACpE,CAAC,IAAI,CAAC,CAAC,yBAAyB,CACjC;AACH,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,QAAQ,EAAE;AACX;SACF;AAYF,IAAA;IAVC,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAChE,GAAG,CAAC,KAAK,IAAG;YACV,IAAI,KAAK,EAAE;gBACT,OAAO,IAAI,CAAC,0BAA0B;YACxC;AACA,YAAA,OAAO,EAAE;QACX,CAAC,CAAC,CACH;IACH
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-widgets-definitions-html-widget.mjs","sources":["../../widgets/definitions/html-widget/html-widget-config.factory.ts","../../widgets/definitions/html-widget/html-widget.factory.ts","../../widgets/definitions/html-widget/index.ts","../../widgets/definitions/html-widget/c8y-ngx-components-widgets-definitions-html-widget.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { ExtensionFactory, PreviewService } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport type { WidgetConfigSectionDefinition } from '@c8y/ngx-components/context-dashboard';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HtmlWidgetConfigFactory implements ExtensionFactory<WidgetConfigSectionDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetConfigDefinition: WidgetConfigSectionDefinition[] = [\n {\n widgetId: defaultWidgetIds.HTML,\n providers: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(m => [\n m.HtmlWidgetConfigService\n ]),\n label: gettext('Asset selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.WidgetAssetSelectorComponent),\n priority: 100,\n initialState: {\n isRequired: false,\n groupsSelectable: true\n }\n },\n {\n widgetId: defaultWidgetIds.HTML,\n label: gettext('Asset properties'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetPropertiesSelectorComponent\n ),\n priority: 50\n },\n {\n widgetId: defaultWidgetIds.HTML,\n providers: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(m => [\n m.HtmlWidgetConfigService\n ]),\n label: gettext('Settings'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetConfigComponent\n ),\n priority: 0,\n expanded: true\n }\n ];\n\n get(): Observable<WidgetConfigSectionDefinition[]> {\n return this.betaPreviewService.getState$('ui.html-widget.v2').pipe(\n map(state => {\n if (state) {\n return this.baseWidgetConfigDefinition;\n }\n return [];\n })\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicComponentDefinition,\n DynamicManagedObjectResolver,\n DynamicWidgetDefinition,\n ExtensionFactory,\n PreviewService\n} from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HtmlWidgetFactory implements ExtensionFactory<DynamicComponentDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetDefinition: DynamicComponentDefinition = {\n id: defaultWidgetIds.HTML,\n label: gettext('HTML'),\n description: gettext(`Display custom HTML code.`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetComponent\n ),\n previewImage: 'c8y-style-assets/html-widget-pr.png',\n data: {\n settings: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=HtmlWidgetConfig!@c8y/ngx-components/widgets/implementations/html-widget'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n }\n }\n },\n resolve: {\n device: DynamicManagedObjectResolver\n }\n };\n\n get(): Observable<DynamicWidgetDefinition[]> {\n return this.betaPreviewService.getState$('ui.html-widget.v2').pipe(\n map(state => {\n if (state) {\n return [this.baseWidgetDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';\nimport { HtmlWidgetConfigFactory } from './html-widget-config.factory';\nimport { HtmlWidgetFactory } from './html-widget.factory';\n\nexport const htmlWidgetProviders = [\n hookWidget(HtmlWidgetFactory),\n hookWidgetConfig(HtmlWidgetConfigFactory),\n hookPreview({\n key: 'ui.html-widget.v2',\n label: 'Improved HTML widget',\n description: () =>\n import('@c8y/style/markdown-files/html-widget-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":"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"}
|
|
@@ -159,6 +159,13 @@ const assetNotesWidgetExport = {
|
|
|
159
159
|
description: 'Asset notes widget',
|
|
160
160
|
scope: 'self'
|
|
161
161
|
};
|
|
162
|
+
const eventListWidgetExport = {
|
|
163
|
+
name: 'Widgets: Event list',
|
|
164
|
+
module: 'eventListWidgetProviders',
|
|
165
|
+
path: '@c8y/ngx-components/widgets/definitions/event-list',
|
|
166
|
+
description: 'Event list widget',
|
|
167
|
+
scope: 'self'
|
|
168
|
+
};
|
|
162
169
|
const htmlWidgetAIChat = {
|
|
163
170
|
name: 'Widgets: HTML Widget AI Code Assistant',
|
|
164
171
|
module: 'htmlWidgetAIChatProviders',
|
|
@@ -171,5 +178,5 @@ const htmlWidgetAIChat = {
|
|
|
171
178
|
* Generated bundle index. Do not edit.
|
|
172
179
|
*/
|
|
173
180
|
|
|
174
|
-
export { alarmListWidgetExport, applicationsWidgetExport, assetNotesWidgetExport, cockpitWelcomeWidgetExport, criticalAlarmsWidgetExport, dataPointsTableWidgetExport, datapointGraphWidgetExport, deviceControlMessageWidgetExport, deviceManagementWelcomeWidgetExport, helpAndServiceWidgetExport, htmlWidgetAIChat, htmlWidgetExport, imageWidgetExport, infoGaugeWidgetExport, kpiWidgetExport, legacyCockpitWelcomeWidgetExport, linearGaugeWidgetExport, mapWidgetExport, markdownWidgetExport, quickLinksWidgetExport, radialGaugeWidgetExport, recentAlarmsWidgetExport, siloWidgetExport, threeDRotationWidgetExport };
|
|
181
|
+
export { alarmListWidgetExport, applicationsWidgetExport, assetNotesWidgetExport, cockpitWelcomeWidgetExport, criticalAlarmsWidgetExport, dataPointsTableWidgetExport, datapointGraphWidgetExport, deviceControlMessageWidgetExport, deviceManagementWelcomeWidgetExport, eventListWidgetExport, helpAndServiceWidgetExport, htmlWidgetAIChat, htmlWidgetExport, imageWidgetExport, infoGaugeWidgetExport, kpiWidgetExport, legacyCockpitWelcomeWidgetExport, linearGaugeWidgetExport, mapWidgetExport, markdownWidgetExport, quickLinksWidgetExport, radialGaugeWidgetExport, recentAlarmsWidgetExport, siloWidgetExport, threeDRotationWidgetExport };
|
|
175
182
|
//# sourceMappingURL=c8y-ngx-components-widgets-exports.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-widgets-exports.mjs","sources":["../../widgets/exports/index.ts","../../widgets/exports/c8y-ngx-components-widgets-exports.ts"],"sourcesContent":["import { PluginsExports } from '@c8y/options';\n\nexport const radialGaugeWidgetExport = {\n name: 'Widgets: Radial Gauge widget',\n module: 'radialGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/radial-gauge',\n description: 'Radial gauge widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const kpiWidgetExport = {\n name: 'Widgets: KPI widget',\n module: 'kpiWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/kpi',\n description: 'KPI widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const alarmListWidgetExport = {\n name: 'Widgets: Alarm list',\n module: 'alarmListWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/alarm-list',\n description: 'Alarm list widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const criticalAlarmsWidgetExport = {\n name: 'Widgets: All critical alarms',\n module: 'criticalAlarmsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/all-critical-alarms',\n description: 'All critical alarms widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const recentAlarmsWidgetExport = {\n name: 'Widgets: Recent alarms',\n module: 'recentAlarmsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/recent-alarms',\n description: 'Recent alarms widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const applicationsWidgetExport = {\n name: 'Widgets: Applications',\n module: 'applicationsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/applications',\n description: 'Applications widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const legacyCockpitWelcomeWidgetExport = {\n name: 'Widgets: Legacy welcome to Cockpit',\n module: 'legacyCockpitWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/cockpit-legacy-welcome',\n description: 'Legacy welcome to Cockpit widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const cockpitWelcomeWidgetExport = {\n name: 'Widgets: Welcome to Cockpit',\n module: 'cockpitWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/cockpit-welcome',\n description: 'Welcome to Cockpit widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const deviceControlMessageWidgetExport = {\n name: 'Widgets: Message sending',\n module: 'deviceControlMessageWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/device-control-message',\n description: 'Message sending widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const helpAndServiceWidgetExport = {\n name: 'Widgets: Help and service',\n module: 'helpAndServiceWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/help-and-service',\n description: 'Help and service widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const imageWidgetExport = {\n name: 'Widgets: Image',\n module: 'imageWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/image',\n description: 'Image widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const infoGaugeWidgetExport = {\n name: 'Widgets: Info gauge',\n module: 'infoGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/info-gauge',\n description: 'Info gauge widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const mapWidgetExport = {\n name: 'Widgets: Map',\n module: 'mapWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/map',\n description: 'Map widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const markdownWidgetExport = {\n name: 'Widgets: Markdown',\n module: 'markdownWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/markdown',\n description: 'Markdown widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const threeDRotationWidgetExport = {\n name: 'Widgets: Rotation',\n module: 'threeDRotationWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/three-d-rotation',\n description: 'Rotation widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const siloWidgetExport = {\n name: 'Widgets: Silo',\n module: 'siloWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/silo',\n description: 'Silo widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const linearGaugeWidgetExport = {\n name: 'Widgets: Linear Gauge',\n module: 'linearGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/linear-gauge',\n description: 'Linear Gauge widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const datapointGraphWidgetExport = {\n name: 'Widgets: Data points graph',\n module: 'datapointGraphWidgetproviders',\n path: '@c8y/ngx-components/widgets/definitions/datapoints-graph',\n description: 'Data points graph widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const dataPointsTableWidgetExport = {\n name: 'Widgets: Data Points Table',\n module: 'dataPointsTableWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/datapoints-table',\n description: 'Data Points Table widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const htmlWidgetExport = {\n name: 'Widgets: HTML Widget',\n module: 'htmlWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/html-widget',\n description: 'Allows to set custom HTML on a dashboard',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const quickLinksWidgetExport = {\n name: 'Widgets: Quick Links',\n module: 'quickLinksWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/quick-links',\n description: 'Quick Links widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const deviceManagementWelcomeWidgetExport = {\n name: 'Widgets: Welcome to Device Management',\n module: 'deviceManagementWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/device-management-welcome',\n description: 'Welcome to Device Management widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const assetNotesWidgetExport = {\n name: 'Widgets: Asset notes',\n module: 'assetNotesWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/asset-notes',\n description: 'Asset notes widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const htmlWidgetAIChat = {\n name: 'Widgets: HTML Widget AI Code Assistant',\n module: 'htmlWidgetAIChatProviders',\n path: '@c8y/ngx-components/widgets/definitions/html-widget-ai-config',\n description: 'Adds AI Code Assistant capabilities to the HTML Widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-widgets-exports.mjs","sources":["../../widgets/exports/index.ts","../../widgets/exports/c8y-ngx-components-widgets-exports.ts"],"sourcesContent":["import { PluginsExports } from '@c8y/options';\n\nexport const radialGaugeWidgetExport = {\n name: 'Widgets: Radial Gauge widget',\n module: 'radialGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/radial-gauge',\n description: 'Radial gauge widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const kpiWidgetExport = {\n name: 'Widgets: KPI widget',\n module: 'kpiWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/kpi',\n description: 'KPI widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const alarmListWidgetExport = {\n name: 'Widgets: Alarm list',\n module: 'alarmListWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/alarm-list',\n description: 'Alarm list widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const criticalAlarmsWidgetExport = {\n name: 'Widgets: All critical alarms',\n module: 'criticalAlarmsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/all-critical-alarms',\n description: 'All critical alarms widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const recentAlarmsWidgetExport = {\n name: 'Widgets: Recent alarms',\n module: 'recentAlarmsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/recent-alarms',\n description: 'Recent alarms widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const applicationsWidgetExport = {\n name: 'Widgets: Applications',\n module: 'applicationsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/applications',\n description: 'Applications widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const legacyCockpitWelcomeWidgetExport = {\n name: 'Widgets: Legacy welcome to Cockpit',\n module: 'legacyCockpitWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/cockpit-legacy-welcome',\n description: 'Legacy welcome to Cockpit widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const cockpitWelcomeWidgetExport = {\n name: 'Widgets: Welcome to Cockpit',\n module: 'cockpitWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/cockpit-welcome',\n description: 'Welcome to Cockpit widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const deviceControlMessageWidgetExport = {\n name: 'Widgets: Message sending',\n module: 'deviceControlMessageWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/device-control-message',\n description: 'Message sending widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const helpAndServiceWidgetExport = {\n name: 'Widgets: Help and service',\n module: 'helpAndServiceWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/help-and-service',\n description: 'Help and service widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const imageWidgetExport = {\n name: 'Widgets: Image',\n module: 'imageWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/image',\n description: 'Image widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const infoGaugeWidgetExport = {\n name: 'Widgets: Info gauge',\n module: 'infoGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/info-gauge',\n description: 'Info gauge widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const mapWidgetExport = {\n name: 'Widgets: Map',\n module: 'mapWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/map',\n description: 'Map widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const markdownWidgetExport = {\n name: 'Widgets: Markdown',\n module: 'markdownWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/markdown',\n description: 'Markdown widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const threeDRotationWidgetExport = {\n name: 'Widgets: Rotation',\n module: 'threeDRotationWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/three-d-rotation',\n description: 'Rotation widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const siloWidgetExport = {\n name: 'Widgets: Silo',\n module: 'siloWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/silo',\n description: 'Silo widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const linearGaugeWidgetExport = {\n name: 'Widgets: Linear Gauge',\n module: 'linearGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/linear-gauge',\n description: 'Linear Gauge widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const datapointGraphWidgetExport = {\n name: 'Widgets: Data points graph',\n module: 'datapointGraphWidgetproviders',\n path: '@c8y/ngx-components/widgets/definitions/datapoints-graph',\n description: 'Data points graph widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const dataPointsTableWidgetExport = {\n name: 'Widgets: Data Points Table',\n module: 'dataPointsTableWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/datapoints-table',\n description: 'Data Points Table widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const htmlWidgetExport = {\n name: 'Widgets: HTML Widget',\n module: 'htmlWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/html-widget',\n description: 'Allows to set custom HTML on a dashboard',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const quickLinksWidgetExport = {\n name: 'Widgets: Quick Links',\n module: 'quickLinksWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/quick-links',\n description: 'Quick Links widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const deviceManagementWelcomeWidgetExport = {\n name: 'Widgets: Welcome to Device Management',\n module: 'deviceManagementWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/device-management-welcome',\n description: 'Welcome to Device Management widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const assetNotesWidgetExport = {\n name: 'Widgets: Asset notes',\n module: 'assetNotesWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/asset-notes',\n description: 'Asset notes widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const eventListWidgetExport = {\n name: 'Widgets: Event list',\n module: 'eventListWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/event-list',\n description: 'Event list widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const htmlWidgetAIChat = {\n name: 'Widgets: HTML Widget AI Code Assistant',\n module: 'htmlWidgetAIChatProviders',\n path: '@c8y/ngx-components/widgets/definitions/html-widget-ai-config',\n description: 'Adds AI Code Assistant capabilities to the HTML Widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|