@c8y/ngx-components 1022.28.2 → 1022.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/asset-properties/asset-properties.model.d.ts +12 -3
- package/asset-properties/asset-properties.model.d.ts.map +1 -1
- package/asset-properties/asset-properties.service.d.ts +20 -2
- package/asset-properties/asset-properties.service.d.ts.map +1 -1
- package/asset-properties/asset-property-list/asset-property-icon-tooltip.pipe.d.ts +14 -0
- package/asset-properties/asset-property-list/asset-property-icon-tooltip.pipe.d.ts.map +1 -0
- package/asset-properties/asset-property-list/asset-property-icon.pipe.d.ts.map +1 -1
- package/asset-properties/asset-property-list/asset-property-list.component.d.ts +28 -18
- package/asset-properties/asset-property-list/asset-property-list.component.d.ts.map +1 -1
- package/asset-properties/asset-property-selector-drawer/asset-property-selector-drawer.component.d.ts +2 -2
- package/asset-properties/asset-property-selector-drawer/asset-property-selector-drawer.component.d.ts.map +1 -1
- package/asset-properties/custom-properties-drawer/custom-properties-drawer.component.d.ts +97 -0
- package/asset-properties/custom-properties-drawer/custom-properties-drawer.component.d.ts.map +1 -0
- package/asset-properties/custom-properties-drawer.service.d.ts +12 -0
- package/asset-properties/custom-properties-drawer.service.d.ts.map +1 -0
- package/asset-properties/index.d.ts +1 -0
- package/asset-properties/index.d.ts.map +1 -1
- package/context-dashboard/dashboard-detail.service.d.ts +2 -2
- package/context-dashboard/widget-config-hook/widget-config-hook.model.d.ts +2 -1
- package/context-dashboard/widget-config-hook/widget-config-hook.model.d.ts.map +1 -1
- package/context-dashboard/widget-config.component.d.ts +3 -1
- package/context-dashboard/widget-config.component.d.ts.map +1 -1
- package/context-dashboard/widget-config.service.d.ts +14 -8
- package/context-dashboard/widget-config.service.d.ts.map +1 -1
- package/core/dynamic-component/dynamic-component.model.d.ts +26 -0
- package/core/dynamic-component/dynamic-component.model.d.ts.map +1 -1
- package/core/i18n/pattern-messages.data.d.ts +7 -0
- package/core/i18n/pattern-messages.data.d.ts.map +1 -1
- package/core/index.d.ts +1 -0
- package/core/index.d.ts.map +1 -1
- package/core/query-param-handler/query-param-handler.service.d.ts +1 -1
- package/core/query-param-handler/query-param-handler.service.d.ts.map +1 -1
- package/core/query-param-handler/query-param-modal-handler.service.d.ts +16 -5
- package/core/query-param-handler/query-param-modal-handler.service.d.ts.map +1 -1
- package/core/resizable-grid/index.d.ts +2 -0
- package/core/resizable-grid/index.d.ts.map +1 -0
- package/core/resizable-grid/resizable-grid.component.d.ts +114 -0
- package/core/resizable-grid/resizable-grid.component.d.ts.map +1 -0
- package/dashboard-manager/devicemanagement/c8y-ngx-components-dashboard-manager-devicemanagement.d.ts.map +1 -0
- package/dashboard-manager/devicemanagement/index.d.ts +2 -0
- package/dashboard-manager/devicemanagement/index.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-fetching.service.d.ts.map +1 -1
- 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-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-devicemanagement.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +73 -73
- 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 +427 -66
- package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
- package/fesm2022/{c8y-ngx-components-asset-property-grid.component-WUN1r4fC.mjs → c8y-ngx-components-asset-property-grid.component-CRnyUbyz.mjs} +13 -13
- package/fesm2022/{c8y-ngx-components-asset-property-grid.component-WUN1r4fC.mjs.map → c8y-ngx-components-asset-property-grid.component-CRnyUbyz.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-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 +33 -33
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared.mjs +10 -10
- 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-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-C-JLbcn5.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BWyhab0H.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C-JLbcn5.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BWyhab0H.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-RXvOcs04.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DjlpSztw.mjs} +10 -10
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-RXvOcs04.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DjlpSztw.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DmPIJGXO.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-B2zLhv0X.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DmPIJGXO.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component-B2zLhv0X.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.mjs +133 -116
- 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-DtLAOoFx.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-CwfVxTSx.mjs} +16 -16
- package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DtLAOoFx.mjs.map → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-CwfVxTSx.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 +19 -0
- package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs.map +1 -0
- 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-devicemanagement.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 +41 -40
- 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-models.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +27 -27
- 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-exports.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-icon-selector-icons-arrows.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-city.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-dateAndTime.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-devicesAndSensors.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-ecommerce.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-editing.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-filesAndFolders.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-finance.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-hands.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-location.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-messaging.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-multimedia.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-network.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-office.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-people.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-platform.mjs +1 -0
- package/fesm2022/c8y-ngx-components-icon-selector-icons-platform.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-programming.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-security.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-transport.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-userInterface.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons-weather.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-model.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 +10 -10
- 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-product-experience.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-mappings.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 +13 -29
- 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 +33 -27
- package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sensor-phone.mjs +17 -320
- 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 +3 -3
- 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 +40 -40
- 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 +41 -41
- 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-cockpit-exports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs +4 -4
- package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-applications.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-asset-notes.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-cockpit-legacy-welcome.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-cockpit-welcome.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-datapoints-table.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-device-control-message.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-device-management-welcome.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-help-and-service.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +18 -14
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-image.mjs +4 -2
- package/fesm2022/c8y-ngx-components-widgets-definitions-image.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs +4 -2
- package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-quick-links.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-three-d-rotation.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-device-management.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +22 -22
- 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 +50 -36
- 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 +22 -22
- 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-import-export-config.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets.mjs +4 -4
- package/fesm2022/c8y-ngx-components-widgets.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +1658 -1315
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/icon-selector/icons/index.d.ts +1 -1
- package/icon-selector/icons/platform/index.d.ts +2 -2
- package/icon-selector/icons/platform/index.d.ts.map +1 -1
- package/locales/de.po +26 -3
- package/locales/es.po +26 -3
- package/locales/fr.po +26 -3
- package/locales/ja_JP.po +25 -3
- package/locales/ko.po +26 -3
- package/locales/locales.pot +25 -2
- package/locales/nl.po +26 -3
- package/locales/pl.po +26 -3
- package/locales/pt_BR.po +26 -3
- package/locales/zh_CN.po +26 -3
- package/locales/zh_TW.po +26 -3
- package/package.json +1 -1
- package/replace-device/replace-device.module.d.ts.map +1 -1
- package/sensor-phone/sensor-phone-modal/sensor-phone-modal.component.d.ts +6 -6
- package/sensor-phone/sensor-phone-modal/sensor-phone-modal.component.d.ts.map +1 -1
- package/sensor-phone/sensor-phone-modal/sensor-phone.model.d.ts +0 -1
- package/sensor-phone/sensor-phone-modal/sensor-phone.model.d.ts.map +1 -1
- package/sensor-phone/sensor-phone.module.d.ts +2 -3
- package/sensor-phone/sensor-phone.module.d.ts.map +1 -1
- package/widgets/definitions/datapoints-table/index.d.ts +1 -2
- package/widgets/definitions/datapoints-table/index.d.ts.map +1 -1
- package/widgets/definitions/html-widget/html-widget-config.factory.d.ts +1 -1
- package/widgets/definitions/html-widget/html-widget-config.factory.d.ts.map +1 -1
- package/widgets/definitions/image/index.d.ts +1 -1
- package/widgets/definitions/image/index.d.ts.map +1 -1
- package/widgets/definitions/markdown/index.d.ts +1 -1
- package/widgets/definitions/markdown/index.d.ts.map +1 -1
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.d.ts.map +1 -1
- package/widgets/implementations/three-d-rotation/three-d-rotation-widget-view/three-d-rotation-widget-view.component.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-operations-stepper-bulk-type-software.mjs","sources":["../../operations/stepper-bulk-type-software/select-software-step.component.ts","../../operations/stepper-bulk-type-software/select-software-step.component.html","../../operations/stepper-bulk-type-software/confirm-software-selection-step.component.ts","../../operations/stepper-bulk-type-software/confirm-software-selection-step.component.html","../../operations/stepper-bulk-type-software/stepper-bulk-type-software.component.ts","../../operations/stepper-bulk-type-software/stepper-bulk-type-software.component.html","../../operations/stepper-bulk-type-software/stepper-bulk-type-software.module.ts","../../operations/stepper-bulk-type-software/c8y-ngx-components-operations-stepper-bulk-type-software.ts"],"sourcesContent":["import { Component, EventEmitter, Output, QueryList, ViewChildren } from '@angular/core';\nimport { IManagedObject, IResultList } from '@c8y/client';\nimport {\n gettext,\n ListItemRadioComponent,\n memoize,\n IconDirective,\n FormGroupComponent,\n TypeaheadComponent,\n ListItemComponent,\n HighlightComponent,\n MessagesComponent,\n MessageDirective,\n ListItemIconComponent,\n ListItemBodyComponent,\n ListGroupComponent,\n ForOfDirective,\n C8yTranslateDirective,\n ListItemCollapseComponent,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport {\n RepositoryService,\n RepositoryType,\n SharedRepositoryModule\n} from '@c8y/ngx-components/repository/shared';\nimport { TranslateService } from '@ngx-translate/core';\nimport { get, isEqual, property, uniqWith } from 'lodash-es';\nimport { BehaviorSubject, combineLatest, from, Observable, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, shareReplay, switchMap } from 'rxjs/operators';\nimport { ISelectedSoftware } from './select-software.model';\nimport { SelectStepFrameComponent } from '@c8y/ngx-components/operations/stepper-frames';\nimport { FormsModule } from '@angular/forms';\nimport { NgIf, NgFor, NgPlural, NgPluralCase, AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'c8y-select-software-step',\n templateUrl: 'select-software-step.component.html',\n imports: [\n SelectStepFrameComponent,\n FormsModule,\n NgIf,\n IconDirective,\n FormGroupComponent,\n TypeaheadComponent,\n ListItemComponent,\n NgFor,\n HighlightComponent,\n MessagesComponent,\n MessageDirective,\n SharedRepositoryModule,\n ListItemIconComponent,\n ListItemBodyComponent,\n ListGroupComponent,\n ForOfDirective,\n C8yTranslateDirective,\n NgPlural,\n NgPluralCase,\n ListItemCollapseComponent,\n ListItemRadioComponent,\n C8yTranslatePipe,\n AsyncPipe\n ]\n})\nexport class SelectSoftwareStepComponent {\n @Output() software: EventEmitter<ISelectedSoftware> = new EventEmitter<ISelectedSoftware>();\n textFilter$: BehaviorSubject<string> = new BehaviorSubject('');\n deviceType$: BehaviorSubject<string> = new BehaviorSubject('');\n softwareTypeFilter$: BehaviorSubject<string> = new BehaviorSubject('');\n deviceTypes = [];\n selectedDeviceType = { name: '' };\n isLegacy = this.repositoryService.isLegacyEntry.bind(this.repositoryService);\n software$: Observable<IResultList<IManagedObject>> = combineLatest(\n this.textFilter$,\n this.deviceType$,\n this.softwareTypeFilter$\n ).pipe(\n switchMap(([name, deviceType, softwareType]) =>\n this.getSoftware(name, deviceType, softwareType)\n ),\n shareReplay(1)\n );\n readonly NO_DEVICE_TYPE_AVAILABLE = gettext('No device type available');\n @ViewChildren(ListItemRadioComponent) radioButtons: QueryList<ListItemRadioComponent>;\n\n private deviceTypeSubscription: Subscription;\n\n constructor(\n private repositoryService: RepositoryService,\n private translate: TranslateService\n ) {\n this.loadDeviceTypes();\n }\n\n @memoize(property('id'))\n getBaseVersionsCount$(software: IManagedObject): Observable<number> {\n return this.repositoryService.getBaseVersionsCount$(software).pipe(shareReplay(1));\n }\n\n @memoize(property('id'))\n getVersions(software: IManagedObject) {\n return this.repositoryService.listAllVersions(software);\n }\n\n getDeviceTypeTitle(software: IManagedObject): string {\n return get(software, 'c8y_Filter.type', this.translate.instant(this.NO_DEVICE_TYPE_AVAILABLE));\n }\n\n loadDeviceTypes() {\n this.deviceTypeSubscription = this.deviceType$\n .pipe(\n debounceTime(300),\n distinctUntilChanged(),\n switchMap(searchStr => {\n const query = { 'c8y_Filter.type': `*${searchStr}*` };\n return from(\n this.repositoryService.listRepositoryEntries(RepositoryType.SOFTWARE, { query })\n );\n })\n )\n .subscribe(result => {\n const { data } = result;\n this.deviceTypes = uniqWith(\n data.map(val => ({ name: val.c8y_Filter.type })),\n isEqual\n );\n });\n }\n\n ngOnDestroy() {\n this.deviceTypeSubscription.unsubscribe();\n }\n\n resetSelection() {\n this.radioButtons.map(radio => radio.reset());\n }\n\n selectSoftware({ option, software }) {\n software.selectedId = option.id;\n option.action = 'install';\n this.emitSoftware({ option, software });\n }\n\n emitSoftware({ option, software }) {\n const emitData = Object.assign(\n {},\n { software },\n { version: option },\n { action: option.action }\n );\n this.software.emit(emitData);\n }\n\n private getSoftware(name?: string, deviceType?: string, softwareType?: string) {\n const query: any = name ? { name: `*${name}*` } : {};\n if (deviceType) {\n query.__or = [{ 'c8y_Filter.type': deviceType }, { __not: { __has: `c8y_Filter.type` } }];\n }\n if (softwareType) {\n query.__or = { softwareType };\n }\n return this.repositoryService.listRepositoryEntries(RepositoryType.SOFTWARE, { query });\n }\n}\n","<c8y-select-step-frame\n [header]=\"'Select software' | translate\"\n [noResults]=\"\n ((textFilter$ | async)?.length ||\n (deviceType$ | async)?.length ||\n (softwareTypeFilter$ | async)?.length) &&\n (software$ | async)?.data.length === 0\n \"\n>\n <div\n class=\"row\"\n filters\n >\n <div class=\"col-md-4 m-b-xs-8 m-b-sm-8\">\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n title=\"{{ 'Filter…' | translate }}\"\n placeholder=\"{{ 'Filter…' | translate }}\"\n type=\"search\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n <i\n c8yIcon=\"search\"\n *ngIf=\"(textFilter$ | async).length === 0\"\n ></i>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"(textFilter$ | async).length > 0\"\n (click)=\"textFilter$.next('')\"\n ></i>\n </span>\n </div>\n </div>\n <div class=\"col-md-4 m-b-xs-8 m-b-sm-8\">\n <c8y-form-group class=\"m-0\">\n <c8y-typeahead\n placeholder=\"{{ 'Type to filter device types…' | translate }}\"\n name=\"deviceType\"\n [(ngModel)]=\"selectedDeviceType\"\n (onSearch)=\"deviceType$.next($event)\"\n [allowFreeEntries]=\"false\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selectedDeviceType = { name: '' }; deviceType$.next('')\"\n [active]=\"!selectedDeviceType?.name\"\n >\n <span>{{ 'All device types' | translate }}</span>\n </c8y-li>\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *ngFor=\"let deviceType of deviceTypes\"\n (click)=\"selectedDeviceType = deviceType; deviceType$.next(deviceType.name)\"\n [active]=\"selectedDeviceType === deviceType\"\n >\n <c8y-highlight\n [text]=\"deviceType.name\"\n [pattern]=\"deviceType$ | async\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <c8y-messages>\n <c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the existing device types.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-4\">\n <c8y-form-group class=\"m-0\">\n <c8y-software-type\n [required]=\"false\"\n [emitResultsOnly]=\"true\"\n [showBtnInNotFoundMessage]=\"false\"\n [allowFreeEntries]=\"false\"\n [placeholder]=\"'Type to filter software types…' | translate\"\n [showClearSelectionOption]=\"true\"\n (onSelectSoftware)=\"softwareTypeFilter$.next($event?.softwareType)\"\n ></c8y-software-type>\n <c8y-messages>\n <c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the existing device types.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <c8y-li\n class=\"hidden-sm hidden-xs m-r-8 m-l-8\"\n header\n >\n <c8y-li-icon><i class=\"p-l-24\"></i></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40 p-r-32\">\n <div class=\"col-5\">\n <span\n class=\"text-truncate\"\n title=\" {{ 'Name' | translate }} \"\n >\n {{ 'Name' | translate }}\n </span>\n </div>\n <div class=\"col-2\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}\"\n >\n {{ 'Device type' | translate }}\n </span>\n </div>\n <div class=\"col-3\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Software type' | translate }}\"\n >\n {{ 'Software type' | translate }}\n </span>\n </div>\n <div class=\"col-2\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Versions' | translate }}\"\n >\n {{ 'Versions' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-list-group list>\n <c8y-li\n *c8yFor=\"let software of software$ | async; loadMore: 'auto'\"\n #li\n >\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <div class=\"content-flex-40\">\n <div class=\"col-5 m-b-xs-8\">\n <button\n class=\"btn-clean\"\n title=\"{{ software.name }}\"\n type=\"button\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <c8y-highlight\n [text]=\"software.name\"\n [pattern]=\"textFilter$ | async\"\n ></c8y-highlight>\n </button>\n </div>\n <div class=\"col-2 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}: {{ getDeviceTypeTitle(software) }}\"\n >\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Device type\n </span>\n <span *ngIf=\"software.c8y_Filter?.type; else noType\">\n {{ software.c8y_Filter?.type }}\n </span>\n <ng-template #noType>\n <small>\n <em\n class=\"text-muted\"\n translate\n >\n Undefined`device type`\n </em>\n </small>\n </ng-template>\n </div>\n </div>\n <div class=\"col-3 m-b-xs-8\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Software type\n </span>\n <span\n class=\"label label-info\"\n *ngIf=\"software.softwareType; else emptyText\"\n >\n {{ software.softwareType }}\n </span>\n <ng-template #emptyText>\n <small class=\"text-muted\">\n <em translate>Undefined`software type`</em>\n </small>\n </ng-template>\n </div>\n <div class=\"col-2\">\n <span\n class=\"label label-warning m-l-auto-sm\"\n *ngIf=\"isLegacy(software)\"\n >\n <span translate>Legacy</span>\n </span>\n <span *ngIf=\"!isLegacy(software)\">\n <span *ngIf=\"(getBaseVersionsCount$(software) | async) === null\">\n <span class=\"label label-info\">\n <i\n class=\"icon-spin\"\n c8yIcon=\"circle-o-notch\"\n ></i>\n </span>\n </span>\n <span *ngIf=\"(getBaseVersionsCount$(software) | async) !== null\">\n <span [ngPlural]=\"getBaseVersionsCount$(software) | async\">\n <ng-template ngPluralCase=\"=1\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n version\n </span>\n <span class=\"badge badge-info m-l-auto-sm\">1</span>\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n versions\n </span>\n <span class=\"badge badge-info m-l-auto-sm\">\n {{ getBaseVersionsCount$(software) | async }}\n </span>\n </ng-template>\n </span>\n </span>\n </span>\n </div>\n </div>\n <c8y-li-collapse>\n <c8y-list-group>\n <c8y-li *c8yFor=\"let option of getVersions(software) | async\">\n <c8y-li-radio\n [name]=\"software.id\"\n (onSelect)=\"selectSoftware({ option: option, software: software })\"\n ></c8y-li-radio>\n <c8y-li-body class=\"content-flex-40 p-r-16\">\n <div class=\"col-4\">\n {{ option.c8y_Software.version }}\n </div>\n <div class=\"col-5\">\n <p class=\"text-truncate\">\n <span\n class=\"text-label-small m-r-8\"\n translate\n >\n File\n </span>\n <ng-container *ngIf=\"option.c8y_Software.url === '$PROVIDED'; else fileDownload\">\n <span title=\"{{ 'Provided by device' | translate }}\">\n {{ 'Provided by device' | translate }}\n </span>\n </ng-container>\n <ng-template #fileDownload>\n <span title=\"{{ option.c8y_Software.url }}\">\n {{ option.c8y_Software.url }}\n </span>\n </ng-template>\n </p>\n </div>\n <div\n class=\"col-3 d-flex\"\n *ngIf=\"option.id === software.selectedId\"\n >\n <div\n class=\"c8y-select-wrapper d-inline-block m-l-auto\"\n style=\"margin: -4px 0\"\n >\n <select\n class=\"form-control input-sm\"\n id=\"action\"\n [(ngModel)]=\"option.action\"\n (change)=\"emitSoftware({ option: option, software: software })\"\n >\n <option [ngValue]=\"'install'\">\n {{ 'Install/update`software`' | translate }}\n </option>\n <option [ngValue]=\"'delete'\">{{ 'Remove`software`' | translate }}</option>\n </select>\n <span></span>\n </div>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n</c8y-select-step-frame>\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport {\n gettext,\n C8yTranslateDirective,\n ListGroupComponent,\n ListItemComponent,\n ListItemIconComponent,\n IconDirective,\n ListItemBodyComponent,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { has, uniq } from 'lodash-es';\nimport { ISelectedSoftware } from './select-software.model';\nimport {\n PreviewSelectionFrameComponent,\n PreviewBlockDirective\n} from '@c8y/ngx-components/operations/stepper-frames';\nimport { NgIf, NgFor } from '@angular/common';\n\n@Component({\n selector: 'c8y-confirm-software-selection-step',\n templateUrl: 'confirm-software-selection-step.component.html',\n imports: [\n PreviewSelectionFrameComponent,\n PreviewBlockDirective,\n NgIf,\n NgFor,\n C8yTranslateDirective,\n ListGroupComponent,\n ListItemComponent,\n ListItemIconComponent,\n IconDirective,\n ListItemBodyComponent,\n C8yTranslatePipe\n ]\n})\nexport class ConfirmSoftwareSelectionStepComponent implements OnChanges {\n @Input() selectedItems: ISelectedSoftware[];\n title: string;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.selectedItems) {\n const deviceTypes: string[] = this.deviceTypes;\n this.title =\n deviceTypes && deviceTypes.length\n ? deviceTypes.join(', ')\n : gettext('Undefined`device type`');\n }\n }\n\n get selectedToInstall() {\n return this.selectedItems.filter(software => software.action === 'install');\n }\n\n get selectedToDelete() {\n return this.selectedItems.filter(software => software.action === 'delete');\n }\n\n get deviceTypes() {\n return uniq(\n this.selectedItems\n .filter(val => has(val, ['software', 'c8y_Filter', 'type']))\n .map(val => val.software.c8y_Filter.type)\n .filter(val => !!val)\n );\n }\n}\n","<c8y-preview-selection-frame [header]=\"'Confirm selection' | translate\">\n <ng-container *previewBlock=\"'Device type' | translate\">\n <ng-container *ngIf=\"deviceTypes.length > 0; else noType\">\n <span *ngFor=\"let deviceType of deviceTypes; let last = last\"\n >{{ deviceType }}{{ last ? '' : ', ' }}</span\n >\n </ng-container>\n <ng-template #noType>\n <em class=\"text-muted\" translate>Undefined`device type`</em>\n </ng-template>\n </ng-container>\n <c8y-list-group\n *previewBlock=\"'Installations/updates`software`' | translate; if: !!selectedToInstall.length\"\n >\n <c8y-li *ngFor=\"let selectedItem of selectedToInstall\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-10\">\n <div class=\"col-6 text-truncate\" title=\"{{ selectedItem.software.name }}\">\n {{ selectedItem.software.name }}\n </div>\n <div class=\"col-6 text-right\" *ngIf=\"!!selectedItem?.version?.c8y_Software?.version\">\n <span class=\"text-label-small m-r-4\" translate> Version </span>\n <span>\n {{ selectedItem.version.c8y_Software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n <c8y-list-group *previewBlock=\"'Removals`software`' | translate; if: !!selectedToDelete.length\">\n <c8y-li *ngFor=\"let selectedItem of selectedToDelete\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-10\">\n <div class=\"col-6\">\n {{ selectedItem.software.name }}\n </div>\n <div class=\"col-6 text-right\">\n <span class=\"text-label-small m-r-8\" translate> Version </span>\n <span>\n {{ selectedItem.version.c8y_Software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n</c8y-preview-selection-frame>\n","import { CdkStep } from '@angular/cdk/stepper';\nimport { Component, ViewChild } from '@angular/core';\nimport { IOperation } from '@c8y/client';\nimport { C8yStepper, gettext, ModalService, Status, C8yTranslatePipe } from '@c8y/ngx-components';\nimport {\n BaseStepperComponent,\n BulkOperationStepper,\n CustomStep\n} from '@c8y/ngx-components/operations/bulk-operation-stepper';\nimport {\n BulkOperationType,\n OperationDetails\n} from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { uniq } from 'lodash-es';\nimport { SelectSoftwareStepComponent } from './select-software-step.component';\nimport { ISelectedSoftware, ISoftwareUpdateOperationPrototype } from './select-software.model';\nimport { ConfirmSoftwareSelectionStepComponent } from './confirm-software-selection-step.component';\n\n@Component({\n selector: 'c8y-stepper-bulk-type-software',\n templateUrl: 'stepper-bulk-type-software.component.html',\n imports: [\n BulkOperationStepper,\n CustomStep,\n SelectSoftwareStepComponent,\n ConfirmSoftwareSelectionStepComponent,\n C8yTranslatePipe\n ]\n})\nexport class StepperBulkTypeSoftwareComponent extends BaseStepperComponent {\n readonly type: BulkOperationType = BulkOperationType.SOFTWARE;\n readonly descriptionTemplateSingle: string = gettext(\n 'Update software to: {{ name }} (version {{ version }})'\n );\n readonly descriptionTemplateOneOther: string = gettext(\n 'Update software to: {{ name }} (version {{ version }}) and one other'\n );\n readonly descriptionTemplateMultiple: string = gettext(\n 'Update software to: {{ name }} (version {{ version }}) and {{ count }} others'\n );\n\n selectedSoftware: ISelectedSoftware[] = [];\n @ViewChild(SelectSoftwareStepComponent, { static: false })\n selectSoftware: SelectSoftwareStepComponent;\n\n constructor(\n private modal: ModalService,\n private translate: TranslateService\n ) {\n super();\n }\n\n onSoftwareSelected(selectedItem) {\n this.selectedSoftware = this.selectedSoftware.filter(\n item => item.software.id !== selectedItem.software.id\n );\n this.selectedSoftware.push(selectedItem);\n }\n\n async confirmSoftwareSelection($event: { stepper: C8yStepper; step: CdkStep }) {\n const deviceTypes: string[] = this.getUniqueDeviceTypes();\n this.deviceTypes = deviceTypes;\n if (deviceTypes.length > 1) {\n try {\n await this.modal.confirm(\n gettext('Selected software for various device types'),\n gettext('Operation may fail due to unsupported software. Do you want to proceed?'),\n Status.WARNING,\n { ok: gettext('Confirm'), cancel: gettext('Cancel') }\n );\n $event.stepper.next();\n } catch (ex) {\n this.selectedSoftware = [];\n this.selectSoftware.resetSelection();\n }\n } else {\n $event.stepper.next();\n }\n }\n\n protected retrieveOperationPrototype(): OperationDetails {\n const softwareList: ISoftwareUpdateOperationPrototype[] = this.selectedSoftware.map(item => ({\n name: item.software.name,\n version: item.version.c8y_Software.version,\n url: item.version.c8y_Software.url,\n action: item.action\n }));\n\n const interpolationParams: object = {\n name: softwareList[0].name,\n version: softwareList[0].version,\n count: softwareList.length - 1\n };\n let description: string;\n switch (softwareList.length) {\n case 1:\n description = this.translate.instant(this.descriptionTemplateSingle, interpolationParams);\n break;\n case 2:\n description = this.translate.instant(this.descriptionTemplateOneOther, interpolationParams);\n break;\n default:\n description = this.translate.instant(this.descriptionTemplateMultiple, interpolationParams);\n }\n\n return {\n name: gettext('Software update'),\n prototype: {\n description,\n c8y_SoftwareUpdate: softwareList\n } as unknown as IOperation\n };\n }\n\n private getUniqueDeviceTypes(): string[] {\n return uniq(\n this.selectedSoftware\n .map(item => item.software.c8y_Filter && item.software.c8y_Filter.type)\n .filter(type => !!type)\n );\n }\n}\n","<c8y-bulk-operation-stepper [type]=\"type\">\n <ng-container\n *customStep=\"\n 'Select software' | translate;\n completed: !!selectedSoftware.length;\n buttonsDisabled: !selectedSoftware.length;\n onNext: confirmSoftwareSelection.bind(this)\n \"\n >\n <c8y-select-software-step\n (software)=\"onSoftwareSelected($event)\"\n class=\"d-contents\"\n ></c8y-select-software-step>\n </ng-container>\n <ng-container *customStep=\"'Confirm selected software' | translate\">\n <c8y-confirm-software-selection-step\n class=\"d-contents\"\n [selectedItems]=\"selectedSoftware\"\n ></c8y-confirm-software-selection-step>\n </ng-container>\n</c8y-bulk-operation-stepper>\n","import { NgModule } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n baseUrl,\n BulkOperationType,\n hookListBulkType\n} from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { ConfirmSoftwareSelectionStepComponent } from './confirm-software-selection-step.component';\nimport { SelectSoftwareStepComponent } from './select-software-step.component';\nimport { StepperBulkTypeSoftwareComponent } from './stepper-bulk-type-software.component';\n\n/** Module for the 'Software update' operation type stepper */\n@NgModule({\n imports: [\n StepperBulkTypeSoftwareComponent,\n ConfirmSoftwareSelectionStepComponent,\n SelectSoftwareStepComponent\n ],\n providers: [\n hookListBulkType({\n type: BulkOperationType.SOFTWARE,\n c8yIcon: 'c8y-tools',\n name: gettext('Software update'),\n path: `${baseUrl}software`,\n component: StepperBulkTypeSoftwareComponent,\n fragments: ['c8y_SoftwareList', 'c8y_SoftwareUpdate'],\n selected: false\n })\n ],\n exports: [StepperBulkTypeSoftwareComponent]\n})\nexport class StepperBulkTypeSoftwareModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","gettext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-operations-stepper-bulk-type-software.mjs","sources":["../../operations/stepper-bulk-type-software/select-software-step.component.ts","../../operations/stepper-bulk-type-software/select-software-step.component.html","../../operations/stepper-bulk-type-software/confirm-software-selection-step.component.ts","../../operations/stepper-bulk-type-software/confirm-software-selection-step.component.html","../../operations/stepper-bulk-type-software/stepper-bulk-type-software.component.ts","../../operations/stepper-bulk-type-software/stepper-bulk-type-software.component.html","../../operations/stepper-bulk-type-software/stepper-bulk-type-software.module.ts","../../operations/stepper-bulk-type-software/c8y-ngx-components-operations-stepper-bulk-type-software.ts"],"sourcesContent":["import { Component, EventEmitter, Output, QueryList, ViewChildren } from '@angular/core';\nimport { IManagedObject, IResultList } from '@c8y/client';\nimport {\n gettext,\n ListItemRadioComponent,\n memoize,\n IconDirective,\n FormGroupComponent,\n TypeaheadComponent,\n ListItemComponent,\n HighlightComponent,\n MessagesComponent,\n MessageDirective,\n ListItemIconComponent,\n ListItemBodyComponent,\n ListGroupComponent,\n ForOfDirective,\n C8yTranslateDirective,\n ListItemCollapseComponent,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport {\n RepositoryService,\n RepositoryType,\n SharedRepositoryModule\n} from '@c8y/ngx-components/repository/shared';\nimport { TranslateService } from '@ngx-translate/core';\nimport { get, isEqual, property, uniqWith } from 'lodash-es';\nimport { BehaviorSubject, combineLatest, from, Observable, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, shareReplay, switchMap } from 'rxjs/operators';\nimport { ISelectedSoftware } from './select-software.model';\nimport { SelectStepFrameComponent } from '@c8y/ngx-components/operations/stepper-frames';\nimport { FormsModule } from '@angular/forms';\nimport { NgIf, NgFor, NgPlural, NgPluralCase, AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'c8y-select-software-step',\n templateUrl: 'select-software-step.component.html',\n imports: [\n SelectStepFrameComponent,\n FormsModule,\n NgIf,\n IconDirective,\n FormGroupComponent,\n TypeaheadComponent,\n ListItemComponent,\n NgFor,\n HighlightComponent,\n MessagesComponent,\n MessageDirective,\n SharedRepositoryModule,\n ListItemIconComponent,\n ListItemBodyComponent,\n ListGroupComponent,\n ForOfDirective,\n C8yTranslateDirective,\n NgPlural,\n NgPluralCase,\n ListItemCollapseComponent,\n ListItemRadioComponent,\n C8yTranslatePipe,\n AsyncPipe\n ]\n})\nexport class SelectSoftwareStepComponent {\n @Output() software: EventEmitter<ISelectedSoftware> = new EventEmitter<ISelectedSoftware>();\n textFilter$: BehaviorSubject<string> = new BehaviorSubject('');\n deviceType$: BehaviorSubject<string> = new BehaviorSubject('');\n softwareTypeFilter$: BehaviorSubject<string> = new BehaviorSubject('');\n deviceTypes = [];\n selectedDeviceType = { name: '' };\n isLegacy = this.repositoryService.isLegacyEntry.bind(this.repositoryService);\n software$: Observable<IResultList<IManagedObject>> = combineLatest(\n this.textFilter$,\n this.deviceType$,\n this.softwareTypeFilter$\n ).pipe(\n switchMap(([name, deviceType, softwareType]) =>\n this.getSoftware(name, deviceType, softwareType)\n ),\n shareReplay(1)\n );\n readonly NO_DEVICE_TYPE_AVAILABLE = gettext('No device type available');\n @ViewChildren(ListItemRadioComponent) radioButtons: QueryList<ListItemRadioComponent>;\n\n private deviceTypeSubscription: Subscription;\n\n constructor(\n private repositoryService: RepositoryService,\n private translate: TranslateService\n ) {\n this.loadDeviceTypes();\n }\n\n @memoize(property('id'))\n getBaseVersionsCount$(software: IManagedObject): Observable<number> {\n return this.repositoryService.getBaseVersionsCount$(software).pipe(shareReplay(1));\n }\n\n @memoize(property('id'))\n getVersions(software: IManagedObject) {\n return this.repositoryService.listAllVersions(software);\n }\n\n getDeviceTypeTitle(software: IManagedObject): string {\n return get(software, 'c8y_Filter.type', this.translate.instant(this.NO_DEVICE_TYPE_AVAILABLE));\n }\n\n loadDeviceTypes() {\n this.deviceTypeSubscription = this.deviceType$\n .pipe(\n debounceTime(300),\n distinctUntilChanged(),\n switchMap(searchStr => {\n const query = { 'c8y_Filter.type': `*${searchStr}*` };\n return from(\n this.repositoryService.listRepositoryEntries(RepositoryType.SOFTWARE, { query })\n );\n })\n )\n .subscribe(result => {\n const { data } = result;\n this.deviceTypes = uniqWith(\n data.map(val => ({ name: val.c8y_Filter.type })),\n isEqual\n );\n });\n }\n\n ngOnDestroy() {\n this.deviceTypeSubscription.unsubscribe();\n }\n\n resetSelection() {\n this.radioButtons.map(radio => radio.reset());\n }\n\n selectSoftware({ option, software }) {\n software.selectedId = option.id;\n option.action = 'install';\n this.emitSoftware({ option, software });\n }\n\n emitSoftware({ option, software }) {\n const emitData = Object.assign(\n {},\n { software },\n { version: option },\n { action: option.action }\n );\n this.software.emit(emitData);\n }\n\n private getSoftware(name?: string, deviceType?: string, softwareType?: string) {\n const query: any = name ? { name: `*${name}*` } : {};\n if (deviceType) {\n query.__or = [{ 'c8y_Filter.type': deviceType }, { __not: { __has: `c8y_Filter.type` } }];\n }\n if (softwareType) {\n query.__or = { softwareType };\n }\n return this.repositoryService.listRepositoryEntries(RepositoryType.SOFTWARE, { query });\n }\n}\n","<c8y-select-step-frame\n [header]=\"'Select software' | translate\"\n [noResults]=\"\n ((textFilter$ | async)?.length ||\n (deviceType$ | async)?.length ||\n (softwareTypeFilter$ | async)?.length) &&\n (software$ | async)?.data.length === 0\n \"\n>\n <div\n class=\"row\"\n filters\n >\n <div class=\"col-md-4 m-b-xs-8 m-b-sm-8\">\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n title=\"{{ 'Filter…' | translate }}\"\n placeholder=\"{{ 'Filter…' | translate }}\"\n type=\"search\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n <i\n c8yIcon=\"search\"\n *ngIf=\"(textFilter$ | async).length === 0\"\n ></i>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"(textFilter$ | async).length > 0\"\n (click)=\"textFilter$.next('')\"\n ></i>\n </span>\n </div>\n </div>\n <div class=\"col-md-4 m-b-xs-8 m-b-sm-8\">\n <c8y-form-group class=\"m-0\">\n <c8y-typeahead\n placeholder=\"{{ 'Type to filter device types…' | translate }}\"\n name=\"deviceType\"\n [(ngModel)]=\"selectedDeviceType\"\n (onSearch)=\"deviceType$.next($event)\"\n [allowFreeEntries]=\"false\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selectedDeviceType = { name: '' }; deviceType$.next('')\"\n [active]=\"!selectedDeviceType?.name\"\n >\n <span>{{ 'All device types' | translate }}</span>\n </c8y-li>\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *ngFor=\"let deviceType of deviceTypes\"\n (click)=\"selectedDeviceType = deviceType; deviceType$.next(deviceType.name)\"\n [active]=\"selectedDeviceType === deviceType\"\n >\n <c8y-highlight\n [text]=\"deviceType.name\"\n [pattern]=\"deviceType$ | async\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <c8y-messages>\n <c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the existing device types.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-4\">\n <c8y-form-group class=\"m-0\">\n <c8y-software-type\n [required]=\"false\"\n [emitResultsOnly]=\"true\"\n [showBtnInNotFoundMessage]=\"false\"\n [allowFreeEntries]=\"false\"\n [placeholder]=\"'Type to filter software types…' | translate\"\n [showClearSelectionOption]=\"true\"\n (onSelectSoftware)=\"softwareTypeFilter$.next($event?.softwareType)\"\n ></c8y-software-type>\n <c8y-messages>\n <c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the existing device types.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <c8y-li\n class=\"hidden-sm hidden-xs m-r-8 m-l-8\"\n header\n >\n <c8y-li-icon><i class=\"p-l-24\"></i></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40 p-r-32\">\n <div class=\"col-5\">\n <span\n class=\"text-truncate\"\n title=\" {{ 'Name' | translate }} \"\n >\n {{ 'Name' | translate }}\n </span>\n </div>\n <div class=\"col-2\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}\"\n >\n {{ 'Device type' | translate }}\n </span>\n </div>\n <div class=\"col-3\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Software type' | translate }}\"\n >\n {{ 'Software type' | translate }}\n </span>\n </div>\n <div class=\"col-2\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Versions' | translate }}\"\n >\n {{ 'Versions' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-list-group list>\n <c8y-li\n *c8yFor=\"let software of software$ | async; loadMore: 'auto'\"\n #li\n >\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <div class=\"content-flex-40\">\n <div class=\"col-5 m-b-xs-8\">\n <button\n class=\"btn-clean\"\n title=\"{{ software.name }}\"\n type=\"button\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <c8y-highlight\n [text]=\"software.name\"\n [pattern]=\"textFilter$ | async\"\n ></c8y-highlight>\n </button>\n </div>\n <div class=\"col-2 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}: {{ getDeviceTypeTitle(software) }}\"\n >\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Device type\n </span>\n <span *ngIf=\"software.c8y_Filter?.type; else noType\">\n {{ software.c8y_Filter?.type }}\n </span>\n <ng-template #noType>\n <small>\n <em\n class=\"text-muted\"\n translate\n >\n Undefined`device type`\n </em>\n </small>\n </ng-template>\n </div>\n </div>\n <div class=\"col-3 m-b-xs-8\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Software type\n </span>\n <span\n class=\"label label-info\"\n *ngIf=\"software.softwareType; else emptyText\"\n >\n {{ software.softwareType }}\n </span>\n <ng-template #emptyText>\n <small class=\"text-muted\">\n <em translate>Undefined`software type`</em>\n </small>\n </ng-template>\n </div>\n <div class=\"col-2\">\n <span\n class=\"label label-warning m-l-auto-sm\"\n *ngIf=\"isLegacy(software)\"\n >\n <span translate>Legacy</span>\n </span>\n <span *ngIf=\"!isLegacy(software)\">\n <span *ngIf=\"(getBaseVersionsCount$(software) | async) === null\">\n <span class=\"label label-info\">\n <i\n class=\"icon-spin\"\n c8yIcon=\"circle-o-notch\"\n ></i>\n </span>\n </span>\n <span *ngIf=\"(getBaseVersionsCount$(software) | async) !== null\">\n <span [ngPlural]=\"getBaseVersionsCount$(software) | async\">\n <ng-template ngPluralCase=\"=1\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n version\n </span>\n <span class=\"badge badge-info m-l-auto-sm\">1</span>\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n versions\n </span>\n <span class=\"badge badge-info m-l-auto-sm\">\n {{ getBaseVersionsCount$(software) | async }}\n </span>\n </ng-template>\n </span>\n </span>\n </span>\n </div>\n </div>\n <c8y-li-collapse>\n <c8y-list-group>\n <c8y-li *c8yFor=\"let option of getVersions(software) | async\">\n <c8y-li-radio\n [name]=\"software.id\"\n (onSelect)=\"selectSoftware({ option: option, software: software })\"\n ></c8y-li-radio>\n <c8y-li-body class=\"content-flex-40 p-r-16\">\n <div class=\"col-4\">\n {{ option.c8y_Software.version }}\n </div>\n <div class=\"col-5\">\n <p class=\"text-truncate\">\n <span\n class=\"text-label-small m-r-8\"\n translate\n >\n File\n </span>\n <ng-container *ngIf=\"option.c8y_Software.url === '$PROVIDED'; else fileDownload\">\n <span title=\"{{ 'Provided by device' | translate }}\">\n {{ 'Provided by device' | translate }}\n </span>\n </ng-container>\n <ng-template #fileDownload>\n <span title=\"{{ option.c8y_Software.url }}\">\n {{ option.c8y_Software.url }}\n </span>\n </ng-template>\n </p>\n </div>\n <div\n class=\"col-3 d-flex\"\n *ngIf=\"option.id === software.selectedId\"\n >\n <div\n class=\"c8y-select-wrapper d-inline-block m-l-auto\"\n style=\"margin: -4px 0\"\n >\n <select\n class=\"form-control input-sm\"\n id=\"action\"\n [(ngModel)]=\"option.action\"\n (change)=\"emitSoftware({ option: option, software: software })\"\n >\n <option [ngValue]=\"'install'\">\n {{ 'Install/update`software`' | translate }}\n </option>\n <option [ngValue]=\"'delete'\">{{ 'Remove`software`' | translate }}</option>\n </select>\n <span></span>\n </div>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n</c8y-select-step-frame>\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport {\n gettext,\n C8yTranslateDirective,\n ListGroupComponent,\n ListItemComponent,\n ListItemIconComponent,\n IconDirective,\n ListItemBodyComponent,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { has, uniq } from 'lodash-es';\nimport { ISelectedSoftware } from './select-software.model';\nimport {\n PreviewSelectionFrameComponent,\n PreviewBlockDirective\n} from '@c8y/ngx-components/operations/stepper-frames';\nimport { NgIf, NgFor } from '@angular/common';\n\n@Component({\n selector: 'c8y-confirm-software-selection-step',\n templateUrl: 'confirm-software-selection-step.component.html',\n imports: [\n PreviewSelectionFrameComponent,\n PreviewBlockDirective,\n NgIf,\n NgFor,\n C8yTranslateDirective,\n ListGroupComponent,\n ListItemComponent,\n ListItemIconComponent,\n IconDirective,\n ListItemBodyComponent,\n C8yTranslatePipe\n ]\n})\nexport class ConfirmSoftwareSelectionStepComponent implements OnChanges {\n @Input() selectedItems: ISelectedSoftware[];\n title: string;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.selectedItems) {\n const deviceTypes: string[] = this.deviceTypes;\n this.title =\n deviceTypes && deviceTypes.length\n ? deviceTypes.join(', ')\n : gettext('Undefined`device type`');\n }\n }\n\n get selectedToInstall() {\n return this.selectedItems.filter(software => software.action === 'install');\n }\n\n get selectedToDelete() {\n return this.selectedItems.filter(software => software.action === 'delete');\n }\n\n get deviceTypes() {\n return uniq(\n this.selectedItems\n .filter(val => has(val, ['software', 'c8y_Filter', 'type']))\n .map(val => val.software.c8y_Filter.type)\n .filter(val => !!val)\n );\n }\n}\n","<c8y-preview-selection-frame [header]=\"'Confirm selection' | translate\">\n <ng-container *previewBlock=\"'Device type' | translate\">\n <ng-container *ngIf=\"deviceTypes.length > 0; else noType\">\n <span *ngFor=\"let deviceType of deviceTypes; let last = last\"\n >{{ deviceType }}{{ last ? '' : ', ' }}</span\n >\n </ng-container>\n <ng-template #noType>\n <em class=\"text-muted\" translate>Undefined`device type`</em>\n </ng-template>\n </ng-container>\n <c8y-list-group\n *previewBlock=\"'Installations/updates`software`' | translate; if: !!selectedToInstall.length\"\n >\n <c8y-li *ngFor=\"let selectedItem of selectedToInstall\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-10\">\n <div class=\"col-6 text-truncate\" title=\"{{ selectedItem.software.name }}\">\n {{ selectedItem.software.name }}\n </div>\n <div class=\"col-6 text-right\" *ngIf=\"!!selectedItem?.version?.c8y_Software?.version\">\n <span class=\"text-label-small m-r-4\" translate> Version </span>\n <span>\n {{ selectedItem.version.c8y_Software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n <c8y-list-group *previewBlock=\"'Removals`software`' | translate; if: !!selectedToDelete.length\">\n <c8y-li *ngFor=\"let selectedItem of selectedToDelete\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-10\">\n <div class=\"col-6\">\n {{ selectedItem.software.name }}\n </div>\n <div class=\"col-6 text-right\">\n <span class=\"text-label-small m-r-8\" translate> Version </span>\n <span>\n {{ selectedItem.version.c8y_Software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n</c8y-preview-selection-frame>\n","import { CdkStep } from '@angular/cdk/stepper';\nimport { Component, ViewChild } from '@angular/core';\nimport { IOperation } from '@c8y/client';\nimport { C8yStepper, gettext, ModalService, Status, C8yTranslatePipe } from '@c8y/ngx-components';\nimport {\n BaseStepperComponent,\n BulkOperationStepper,\n CustomStep\n} from '@c8y/ngx-components/operations/bulk-operation-stepper';\nimport {\n BulkOperationType,\n OperationDetails\n} from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { uniq } from 'lodash-es';\nimport { SelectSoftwareStepComponent } from './select-software-step.component';\nimport { ISelectedSoftware, ISoftwareUpdateOperationPrototype } from './select-software.model';\nimport { ConfirmSoftwareSelectionStepComponent } from './confirm-software-selection-step.component';\n\n@Component({\n selector: 'c8y-stepper-bulk-type-software',\n templateUrl: 'stepper-bulk-type-software.component.html',\n imports: [\n BulkOperationStepper,\n CustomStep,\n SelectSoftwareStepComponent,\n ConfirmSoftwareSelectionStepComponent,\n C8yTranslatePipe\n ]\n})\nexport class StepperBulkTypeSoftwareComponent extends BaseStepperComponent {\n readonly type: BulkOperationType = BulkOperationType.SOFTWARE;\n readonly descriptionTemplateSingle: string = gettext(\n 'Update software to: {{ name }} (version {{ version }})'\n );\n readonly descriptionTemplateOneOther: string = gettext(\n 'Update software to: {{ name }} (version {{ version }}) and one other'\n );\n readonly descriptionTemplateMultiple: string = gettext(\n 'Update software to: {{ name }} (version {{ version }}) and {{ count }} others'\n );\n\n selectedSoftware: ISelectedSoftware[] = [];\n @ViewChild(SelectSoftwareStepComponent, { static: false })\n selectSoftware: SelectSoftwareStepComponent;\n\n constructor(\n private modal: ModalService,\n private translate: TranslateService\n ) {\n super();\n }\n\n onSoftwareSelected(selectedItem) {\n this.selectedSoftware = this.selectedSoftware.filter(\n item => item.software.id !== selectedItem.software.id\n );\n this.selectedSoftware.push(selectedItem);\n }\n\n async confirmSoftwareSelection($event: { stepper: C8yStepper; step: CdkStep }) {\n const deviceTypes: string[] = this.getUniqueDeviceTypes();\n this.deviceTypes = deviceTypes;\n if (deviceTypes.length > 1) {\n try {\n await this.modal.confirm(\n gettext('Selected software for various device types'),\n gettext('Operation may fail due to unsupported software. Do you want to proceed?'),\n Status.WARNING,\n { ok: gettext('Confirm'), cancel: gettext('Cancel') }\n );\n $event.stepper.next();\n } catch (ex) {\n this.selectedSoftware = [];\n this.selectSoftware.resetSelection();\n }\n } else {\n $event.stepper.next();\n }\n }\n\n protected retrieveOperationPrototype(): OperationDetails {\n const softwareList: ISoftwareUpdateOperationPrototype[] = this.selectedSoftware.map(item => ({\n name: item.software.name,\n version: item.version.c8y_Software.version,\n url: item.version.c8y_Software.url,\n action: item.action\n }));\n\n const interpolationParams: object = {\n name: softwareList[0].name,\n version: softwareList[0].version,\n count: softwareList.length - 1\n };\n let description: string;\n switch (softwareList.length) {\n case 1:\n description = this.translate.instant(this.descriptionTemplateSingle, interpolationParams);\n break;\n case 2:\n description = this.translate.instant(this.descriptionTemplateOneOther, interpolationParams);\n break;\n default:\n description = this.translate.instant(this.descriptionTemplateMultiple, interpolationParams);\n }\n\n return {\n name: gettext('Software update'),\n prototype: {\n description,\n c8y_SoftwareUpdate: softwareList\n } as unknown as IOperation\n };\n }\n\n private getUniqueDeviceTypes(): string[] {\n return uniq(\n this.selectedSoftware\n .map(item => item.software.c8y_Filter && item.software.c8y_Filter.type)\n .filter(type => !!type)\n );\n }\n}\n","<c8y-bulk-operation-stepper [type]=\"type\">\n <ng-container\n *customStep=\"\n 'Select software' | translate;\n completed: !!selectedSoftware.length;\n buttonsDisabled: !selectedSoftware.length;\n onNext: confirmSoftwareSelection.bind(this)\n \"\n >\n <c8y-select-software-step\n (software)=\"onSoftwareSelected($event)\"\n class=\"d-contents\"\n ></c8y-select-software-step>\n </ng-container>\n <ng-container *customStep=\"'Confirm selected software' | translate\">\n <c8y-confirm-software-selection-step\n class=\"d-contents\"\n [selectedItems]=\"selectedSoftware\"\n ></c8y-confirm-software-selection-step>\n </ng-container>\n</c8y-bulk-operation-stepper>\n","import { NgModule } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n baseUrl,\n BulkOperationType,\n hookListBulkType\n} from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { ConfirmSoftwareSelectionStepComponent } from './confirm-software-selection-step.component';\nimport { SelectSoftwareStepComponent } from './select-software-step.component';\nimport { StepperBulkTypeSoftwareComponent } from './stepper-bulk-type-software.component';\n\n/** Module for the 'Software update' operation type stepper */\n@NgModule({\n imports: [\n StepperBulkTypeSoftwareComponent,\n ConfirmSoftwareSelectionStepComponent,\n SelectSoftwareStepComponent\n ],\n providers: [\n hookListBulkType({\n type: BulkOperationType.SOFTWARE,\n c8yIcon: 'c8y-tools',\n name: gettext('Software update'),\n path: `${baseUrl}software`,\n component: StepperBulkTypeSoftwareComponent,\n fragments: ['c8y_SoftwareList', 'c8y_SoftwareUpdate'],\n selected: false\n })\n ],\n exports: [StepperBulkTypeSoftwareComponent]\n})\nexport class StepperBulkTypeSoftwareModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","gettext"],"mappings":"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"}
|
|
@@ -8,10 +8,10 @@ class PreviewBlockDirective {
|
|
|
8
8
|
this.templateRef = templateRef;
|
|
9
9
|
this.show = true;
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
12
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PreviewBlockDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: PreviewBlockDirective, isStandalone: true, selector: "[previewBlock]", inputs: { label: ["previewBlock", "label"], show: ["previewBlockIf", "show"] }, ngImport: i0 }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PreviewBlockDirective, decorators: [{
|
|
15
15
|
type: Directive,
|
|
16
16
|
args: [{ selector: '[previewBlock]' }]
|
|
17
17
|
}], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { label: [{
|
|
@@ -30,10 +30,10 @@ class PreviewSelectionFrameComponent {
|
|
|
30
30
|
this.type = type;
|
|
31
31
|
this.showType = true;
|
|
32
32
|
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PreviewSelectionFrameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: PreviewSelectionFrameComponent, isStandalone: true, selector: "c8y-preview-selection-frame", inputs: { header: "header", name: "name", description: "description", _type: ["type", "_type"] }, queries: [{ propertyName: "previewBlocks", predicate: PreviewBlockDirective }], viewQueries: [{ propertyName: "listRef", first: true, predicate: ["list"], descendants: true }], ngImport: i0, template: "<div class=\"card-block p-t-0 flex-no-shrink separator-bottom col-xs-12\">\n <div class=\"d-flex p-b-8 p-t-4 j-c-center\">\n <div>\n <h4 class=\"text-center text-normal\">{{ header | translate }}</h4>\n <p *ngIf=\"name || description\" class=\"text-center p-t-16 p-b-8 text-truncate\">\n <strong *ngIf=\"name\" [title]=\"name\">{{ name }}</strong\n ><br />\n <small *ngIf=\"description\" [title]=\"description\">{{ description }}</small>\n </p>\n <p class=\"text-center\" *ngIf=\"showType\">\n <span class=\"label label-primary\" *ngIf=\"type; else noType\">\n {{ type }}\n </span>\n <ng-template #noType>\n <span class=\"label label-default\">\n {{ 'Undefined' | translate }}\n </span>\n </ng-template>\n </p>\n </div>\n </div>\n</div>\n<div *ngIf=\"previewBlocks?.length\" class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block\">\n <ng-container *ngFor=\"let block of previewBlocks\">\n <div *ngIf=\"block.show\" class=\"d-flex p-b-8 j-c-center\">\n <div class=\"col-xs-12 col-sm-6\">\n <div class=\"text-truncate\" [title]=\"block.label | translate\">\n <span class=\"legend form-block\">{{ block.label | translate }}</span>\n <ng-container *ngTemplateOutlet=\"block.templateRef\"></ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n<div [style.display]=\"listRef?.nativeElement?.children?.length ? 'contents' : 'none'\">\n <div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div #list class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"> </ng-content>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PreviewSelectionFrameComponent, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
38
|
args: [{ selector: 'c8y-preview-selection-frame', imports: [NgIf, NgFor, NgTemplateOutlet, C8yTranslatePipe], template: "<div class=\"card-block p-t-0 flex-no-shrink separator-bottom col-xs-12\">\n <div class=\"d-flex p-b-8 p-t-4 j-c-center\">\n <div>\n <h4 class=\"text-center text-normal\">{{ header | translate }}</h4>\n <p *ngIf=\"name || description\" class=\"text-center p-t-16 p-b-8 text-truncate\">\n <strong *ngIf=\"name\" [title]=\"name\">{{ name }}</strong\n ><br />\n <small *ngIf=\"description\" [title]=\"description\">{{ description }}</small>\n </p>\n <p class=\"text-center\" *ngIf=\"showType\">\n <span class=\"label label-primary\" *ngIf=\"type; else noType\">\n {{ type }}\n </span>\n <ng-template #noType>\n <span class=\"label label-default\">\n {{ 'Undefined' | translate }}\n </span>\n </ng-template>\n </p>\n </div>\n </div>\n</div>\n<div *ngIf=\"previewBlocks?.length\" class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block\">\n <ng-container *ngFor=\"let block of previewBlocks\">\n <div *ngIf=\"block.show\" class=\"d-flex p-b-8 j-c-center\">\n <div class=\"col-xs-12 col-sm-6\">\n <div class=\"text-truncate\" [title]=\"block.label | translate\">\n <span class=\"legend form-block\">{{ block.label | translate }}</span>\n <ng-container *ngTemplateOutlet=\"block.templateRef\"></ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n<div [style.display]=\"listRef?.nativeElement?.children?.length ? 'contents' : 'none'\">\n <div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div #list class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"> </ng-content>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
39
39
|
}], propDecorators: { header: [{
|
|
@@ -54,10 +54,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
54
54
|
}] } });
|
|
55
55
|
|
|
56
56
|
class SelectStepFrameComponent {
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
58
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectStepFrameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: SelectStepFrameComponent, isStandalone: true, selector: "c8y-select-step-frame", inputs: { header: "header", noResults: "noResults" }, ngImport: i0, template: "<div class=\"card-block overflow-visible flex-no-shrink col-xs-12 p-b-0 p-t-4 separator-bottom\">\n <div class=\"d-flex j-c-center m-b-24\">\n <div class=\"col-xs-12 col-sm-8\">\n <h4 class=\"text-normal text-center m-b-16\">\n {{ header | translate }}\n </h4>\n <ng-content select=\"[filters]\"></ng-content>\n </div>\n </div>\n <ng-content select=\"[header]\"></ng-content>\n</div>\n<c8y-search-result-empty *ngIf=\"noResults\"> </c8y-search-result-empty>\n<div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"></ng-content>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchResultEmptyComponent, selector: "c8y-search-result-empty", inputs: ["message"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
59
59
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectStepFrameComponent, decorators: [{
|
|
61
61
|
type: Component,
|
|
62
62
|
args: [{ selector: 'c8y-select-step-frame', imports: [NgIf, SearchResultEmptyComponent, C8yTranslatePipe], template: "<div class=\"card-block overflow-visible flex-no-shrink col-xs-12 p-b-0 p-t-4 separator-bottom\">\n <div class=\"d-flex j-c-center m-b-24\">\n <div class=\"col-xs-12 col-sm-8\">\n <h4 class=\"text-normal text-center m-b-16\">\n {{ header | translate }}\n </h4>\n <ng-content select=\"[filters]\"></ng-content>\n </div>\n </div>\n <ng-content select=\"[header]\"></ng-content>\n</div>\n<c8y-search-result-empty *ngIf=\"noResults\"> </c8y-search-result-empty>\n<div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"></ng-content>\n </div>\n </div>\n</div>\n" }]
|
|
63
63
|
}], propDecorators: { header: [{
|
|
@@ -67,11 +67,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
67
67
|
}] } });
|
|
68
68
|
|
|
69
69
|
class StepperFramesModule {
|
|
70
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
71
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
72
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: StepperFramesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
71
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: StepperFramesModule, imports: [PreviewSelectionFrameComponent, SelectStepFrameComponent, PreviewBlockDirective], exports: [PreviewSelectionFrameComponent, SelectStepFrameComponent, PreviewBlockDirective] }); }
|
|
72
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: StepperFramesModule, imports: [SelectStepFrameComponent] }); }
|
|
73
73
|
}
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: StepperFramesModule, decorators: [{
|
|
75
75
|
type: NgModule,
|
|
76
76
|
args: [{
|
|
77
77
|
imports: [PreviewSelectionFrameComponent, SelectStepFrameComponent, PreviewBlockDirective],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-operations-stepper-frames.mjs","sources":["../../operations/stepper-frames/preview-block.directive.ts","../../operations/stepper-frames/preview-selection-frame.component.ts","../../operations/stepper-frames/preview-selection-frame.component.html","../../operations/stepper-frames/select-step-frame.component.ts","../../operations/stepper-frames/select-step-frame.component.html","../../operations/stepper-frames/stepper-frames.modules.ts","../../operations/stepper-frames/c8y-ngx-components-operations-stepper-frames.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[previewBlock]' })\nexport class PreviewBlockDirective {\n @Input('previewBlock')\n label: string;\n\n @Input('previewBlockIf')\n show = true;\n\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { Component, ContentChildren, ElementRef, Input, QueryList, ViewChild } from '@angular/core';\nimport { PreviewBlockDirective } from './preview-block.directive';\nimport { NgIf, NgFor, NgTemplateOutlet } from '@angular/common';\nimport { C8yTranslatePipe } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-preview-selection-frame',\n templateUrl: './preview-selection-frame.component.html',\n imports: [NgIf, NgFor, NgTemplateOutlet, C8yTranslatePipe]\n})\nexport class PreviewSelectionFrameComponent {\n @Input()\n header: string;\n\n @Input()\n name: string;\n\n @Input()\n description: string;\n\n @Input('type')\n set _type(type: string) {\n this.type = type;\n this.showType = true;\n }\n\n @ViewChild('list')\n listRef: ElementRef<any>;\n\n @ContentChildren(PreviewBlockDirective)\n previewBlocks: QueryList<PreviewBlockDirective>;\n\n type: string;\n showType = false;\n}\n","<div class=\"card-block p-t-0 flex-no-shrink separator-bottom col-xs-12\">\n <div class=\"d-flex p-b-8 p-t-4 j-c-center\">\n <div>\n <h4 class=\"text-center text-normal\">{{ header | translate }}</h4>\n <p *ngIf=\"name || description\" class=\"text-center p-t-16 p-b-8 text-truncate\">\n <strong *ngIf=\"name\" [title]=\"name\">{{ name }}</strong\n ><br />\n <small *ngIf=\"description\" [title]=\"description\">{{ description }}</small>\n </p>\n <p class=\"text-center\" *ngIf=\"showType\">\n <span class=\"label label-primary\" *ngIf=\"type; else noType\">\n {{ type }}\n </span>\n <ng-template #noType>\n <span class=\"label label-default\">\n {{ 'Undefined' | translate }}\n </span>\n </ng-template>\n </p>\n </div>\n </div>\n</div>\n<div *ngIf=\"previewBlocks?.length\" class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block\">\n <ng-container *ngFor=\"let block of previewBlocks\">\n <div *ngIf=\"block.show\" class=\"d-flex p-b-8 j-c-center\">\n <div class=\"col-xs-12 col-sm-6\">\n <div class=\"text-truncate\" [title]=\"block.label | translate\">\n <span class=\"legend form-block\">{{ block.label | translate }}</span>\n <ng-container *ngTemplateOutlet=\"block.templateRef\"></ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n<div [style.display]=\"listRef?.nativeElement?.children?.length ? 'contents' : 'none'\">\n <div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div #list class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"> </ng-content>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { SearchResultEmptyComponent, C8yTranslatePipe } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-select-step-frame',\n templateUrl: './select-step-frame.component.html',\n imports: [NgIf, SearchResultEmptyComponent, C8yTranslatePipe]\n})\nexport class SelectStepFrameComponent {\n @Input()\n header: string;\n\n @Input()\n noResults: boolean;\n}\n","<div class=\"card-block overflow-visible flex-no-shrink col-xs-12 p-b-0 p-t-4 separator-bottom\">\n <div class=\"d-flex j-c-center m-b-24\">\n <div class=\"col-xs-12 col-sm-8\">\n <h4 class=\"text-normal text-center m-b-16\">\n {{ header | translate }}\n </h4>\n <ng-content select=\"[filters]\"></ng-content>\n </div>\n </div>\n <ng-content select=\"[header]\"></ng-content>\n</div>\n<c8y-search-result-empty *ngIf=\"noResults\"> </c8y-search-result-empty>\n<div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"></ng-content>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { PreviewBlockDirective } from './preview-block.directive';\nimport { PreviewSelectionFrameComponent } from './preview-selection-frame.component';\nimport { SelectStepFrameComponent } from './select-step-frame.component';\n\n@NgModule({\n imports: [PreviewSelectionFrameComponent, SelectStepFrameComponent, PreviewBlockDirective],\n exports: [PreviewSelectionFrameComponent, SelectStepFrameComponent, PreviewBlockDirective]\n})\nexport class StepperFramesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAGa,qBAAqB,CAAA;AAOhC,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-operations-stepper-frames.mjs","sources":["../../operations/stepper-frames/preview-block.directive.ts","../../operations/stepper-frames/preview-selection-frame.component.ts","../../operations/stepper-frames/preview-selection-frame.component.html","../../operations/stepper-frames/select-step-frame.component.ts","../../operations/stepper-frames/select-step-frame.component.html","../../operations/stepper-frames/stepper-frames.modules.ts","../../operations/stepper-frames/c8y-ngx-components-operations-stepper-frames.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[previewBlock]' })\nexport class PreviewBlockDirective {\n @Input('previewBlock')\n label: string;\n\n @Input('previewBlockIf')\n show = true;\n\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { Component, ContentChildren, ElementRef, Input, QueryList, ViewChild } from '@angular/core';\nimport { PreviewBlockDirective } from './preview-block.directive';\nimport { NgIf, NgFor, NgTemplateOutlet } from '@angular/common';\nimport { C8yTranslatePipe } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-preview-selection-frame',\n templateUrl: './preview-selection-frame.component.html',\n imports: [NgIf, NgFor, NgTemplateOutlet, C8yTranslatePipe]\n})\nexport class PreviewSelectionFrameComponent {\n @Input()\n header: string;\n\n @Input()\n name: string;\n\n @Input()\n description: string;\n\n @Input('type')\n set _type(type: string) {\n this.type = type;\n this.showType = true;\n }\n\n @ViewChild('list')\n listRef: ElementRef<any>;\n\n @ContentChildren(PreviewBlockDirective)\n previewBlocks: QueryList<PreviewBlockDirective>;\n\n type: string;\n showType = false;\n}\n","<div class=\"card-block p-t-0 flex-no-shrink separator-bottom col-xs-12\">\n <div class=\"d-flex p-b-8 p-t-4 j-c-center\">\n <div>\n <h4 class=\"text-center text-normal\">{{ header | translate }}</h4>\n <p *ngIf=\"name || description\" class=\"text-center p-t-16 p-b-8 text-truncate\">\n <strong *ngIf=\"name\" [title]=\"name\">{{ name }}</strong\n ><br />\n <small *ngIf=\"description\" [title]=\"description\">{{ description }}</small>\n </p>\n <p class=\"text-center\" *ngIf=\"showType\">\n <span class=\"label label-primary\" *ngIf=\"type; else noType\">\n {{ type }}\n </span>\n <ng-template #noType>\n <span class=\"label label-default\">\n {{ 'Undefined' | translate }}\n </span>\n </ng-template>\n </p>\n </div>\n </div>\n</div>\n<div *ngIf=\"previewBlocks?.length\" class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block\">\n <ng-container *ngFor=\"let block of previewBlocks\">\n <div *ngIf=\"block.show\" class=\"d-flex p-b-8 j-c-center\">\n <div class=\"col-xs-12 col-sm-6\">\n <div class=\"text-truncate\" [title]=\"block.label | translate\">\n <span class=\"legend form-block\">{{ block.label | translate }}</span>\n <ng-container *ngTemplateOutlet=\"block.templateRef\"></ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n<div [style.display]=\"listRef?.nativeElement?.children?.length ? 'contents' : 'none'\">\n <div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div #list class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"> </ng-content>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { SearchResultEmptyComponent, C8yTranslatePipe } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-select-step-frame',\n templateUrl: './select-step-frame.component.html',\n imports: [NgIf, SearchResultEmptyComponent, C8yTranslatePipe]\n})\nexport class SelectStepFrameComponent {\n @Input()\n header: string;\n\n @Input()\n noResults: boolean;\n}\n","<div class=\"card-block overflow-visible flex-no-shrink col-xs-12 p-b-0 p-t-4 separator-bottom\">\n <div class=\"d-flex j-c-center m-b-24\">\n <div class=\"col-xs-12 col-sm-8\">\n <h4 class=\"text-normal text-center m-b-16\">\n {{ header | translate }}\n </h4>\n <ng-content select=\"[filters]\"></ng-content>\n </div>\n </div>\n <ng-content select=\"[header]\"></ng-content>\n</div>\n<c8y-search-result-empty *ngIf=\"noResults\"> </c8y-search-result-empty>\n<div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"></ng-content>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { PreviewBlockDirective } from './preview-block.directive';\nimport { PreviewSelectionFrameComponent } from './preview-selection-frame.component';\nimport { SelectStepFrameComponent } from './select-step-frame.component';\n\n@NgModule({\n imports: [PreviewSelectionFrameComponent, SelectStepFrameComponent, PreviewBlockDirective],\n exports: [PreviewSelectionFrameComponent, SelectStepFrameComponent, PreviewBlockDirective]\n})\nexport class StepperFramesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAGa,qBAAqB,CAAA;AAOhC,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAA,CAAA,WAAW,GAAX,WAAW;QAF9B,IAAA,CAAA,IAAI,GAAG,IAAI;IAEwC;+GAPxC,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,cAAA,EAAA,OAAA,CAAA,EAAA,IAAA,EAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,SAAS;mBAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE;gFAGvC,KAAK,EAAA,CAAA;sBADJ,KAAK;uBAAC,cAAc;gBAIrB,IAAI,EAAA,CAAA;sBADH,KAAK;uBAAC,gBAAgB;;;MCGZ,8BAA8B,CAAA;AAL3C,IAAA,WAAA,GAAA;QA4BE,IAAA,CAAA,QAAQ,GAAG,KAAK;AACjB,IAAA;IAdC,IACI,KAAK,CAAC,IAAY,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACtB;+GAdW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAmBxB,qBAAqB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BxC,y1DA+CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDvCY,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,KAAK,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE9C,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,6BAA6B,EAAA,OAAA,EAE9B,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,y1DAAA,EAAA;8BAI1D,MAAM,EAAA,CAAA;sBADL;gBAID,IAAI,EAAA,CAAA;sBADH;gBAID,WAAW,EAAA,CAAA;sBADV;gBAIG,KAAK,EAAA,CAAA;sBADR,KAAK;uBAAC,MAAM;gBAOb,OAAO,EAAA,CAAA;sBADN,SAAS;uBAAC,MAAM;gBAIjB,aAAa,EAAA,CAAA;sBADZ,eAAe;uBAAC,qBAAqB;;;MEpB3B,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,uICTrC,msBAmBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDZY,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,0BAA0B,oFAAE,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEjD,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,WAExB,CAAC,IAAI,EAAE,0BAA0B,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,msBAAA,EAAA;8BAI7D,MAAM,EAAA,CAAA;sBADL;gBAID,SAAS,EAAA,CAAA;sBADR;;;MEJU,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAnB,mBAAmB,EAAA,OAAA,EAAA,CAHpB,8BAA8B,EAAE,wBAAwB,EAAE,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAC/E,8BAA8B,EAAE,wBAAwB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAE9E,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHY,wBAAwB,CAAA,EAAA,CAAA,CAAA;;4FAGvD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,8BAA8B,EAAE,wBAAwB,EAAE,qBAAqB,CAAC;AAC1F,oBAAA,OAAO,EAAE,CAAC,8BAA8B,EAAE,wBAAwB,EAAE,qBAAqB;AAC1F,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -29,10 +29,10 @@ class BulkOperationsTabsFactory {
|
|
|
29
29
|
}
|
|
30
30
|
return tabs;
|
|
31
31
|
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
33
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationsTabsFactory, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
33
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationsTabsFactory }); }
|
|
34
34
|
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationsTabsFactory, decorators: [{
|
|
36
36
|
type: Injectable
|
|
37
37
|
}], ctorParameters: () => [{ type: i1.Router }] });
|
|
38
38
|
|
|
@@ -109,8 +109,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
109
109
|
* ]```
|
|
110
110
|
*/
|
|
111
111
|
class OperationsModule {
|
|
112
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
113
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
112
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: OperationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
113
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: OperationsModule, imports: [CoreModule,
|
|
114
114
|
BulkOperationFromSingleModule,
|
|
115
115
|
BulkOperationsListModule,
|
|
116
116
|
BulkOperationsServiceModule,
|
|
@@ -119,7 +119,7 @@ class OperationsModule {
|
|
|
119
119
|
StepperBulkTypeFirmwareModule,
|
|
120
120
|
StepperBulkTypeSoftwareModule,
|
|
121
121
|
StepperBulkTypeDeviceProfileModule] }); }
|
|
122
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
122
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: OperationsModule, providers: [
|
|
123
123
|
hookTab(BulkOperationsTabsFactory),
|
|
124
124
|
deviceControlOverviewFeatureProviderFactory(),
|
|
125
125
|
deviceControlTabFeatureProviderFactory()
|
|
@@ -133,7 +133,7 @@ class OperationsModule {
|
|
|
133
133
|
StepperBulkTypeSoftwareModule,
|
|
134
134
|
StepperBulkTypeDeviceProfileModule] }); }
|
|
135
135
|
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: OperationsModule, decorators: [{
|
|
137
137
|
type: NgModule,
|
|
138
138
|
args: [{
|
|
139
139
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-operations.mjs","sources":["../../operations/factories/bulk-operations-tab.factory.ts","../../operations/operations.module.ts","../../operations/c8y-ngx-components-operations.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { gettext, Tab, TabFactory } from '@c8y/ngx-components';\r\n\r\n@Injectable()\r\nexport class BulkOperationsTabsFactory implements TabFactory {\r\n constructor(public router: Router) {}\r\n get() {\r\n const tabs: Tab[] = [];\r\n if (this.router.url.match(/devicecontrol/g)) {\r\n tabs.push({\r\n path: 'devicecontrol/bulk',\r\n label: gettext('Bulk operations'),\r\n icon: 'c8y-icon c8y-icon-energy',\r\n priority: 1050,\r\n orientation: 'horizontal'\r\n } as Tab);\r\n }\r\n\r\n return tabs;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\n\nimport { CoreModule, hookTab } from '@c8y/ngx-components';\nimport { BulkOperationFromSingleModule } from '@c8y/ngx-components/operations/bulk-operation-from-single';\nimport { BulkOperationsListModule } from '@c8y/ngx-components/operations/bulk-operations-list';\nimport { BulkOperationsServiceModule } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BulkOperationsStepperContainerModule } from '@c8y/ngx-components/operations/bulk-operations-stepper-container';\nimport { StepperBulkTypeConfigurationModule } from '@c8y/ngx-components/operations/stepper-bulk-type-configuration';\nimport { StepperBulkTypeDeviceProfileModule } from '@c8y/ngx-components/operations/stepper-bulk-type-device-profile';\nimport { StepperBulkTypeFirmwareModule } from '@c8y/ngx-components/operations/stepper-bulk-type-firmware';\nimport { StepperBulkTypeSoftwareModule } from '@c8y/ngx-components/operations/stepper-bulk-type-software';\n\nimport {\n deviceControlOverviewFeatureProviderFactory,\n deviceControlTabFeatureProviderFactory\n} from '@c8y/ngx-components/operations/operations-list';\nimport { BulkOperationsTabsFactory } from './factories/bulk-operations-tab.factory';\n\n/**\n * This module sets up the 'Device control' view. By importing it in your custom application you will have:\n * - a 'Device control' tab in device details view\n * - a 'Device control' entry in the 'Overviews' section of navigator\n * - 'Bulk operations' tab on the 'Device control' page\n * - list view of existing bulk operations with expandable details and options to filter\n * - guided stepper dialogs to schedule new bulk operations of supported types\n * (Configuration update, Firmware update, Software update, Apply device profile).\n *\n * Additionaly you can use the modules imported by {@link OperationsModule} separately to achieve\n * the results you wish to have in your application, e.g.:\n * - import {@link BulkOperationsListModule} and {@link BulkOperationsServiceModule}\n * to have an overview of existing bulk operation with expandable details\n * - additionaly import {@link BulkOperationsStepperContainerModule} and any of the existing\n * `StepperBulkType*Module` modules ({@link StepperBulkTypeConfigurationModule},\n * {@link StepperBulkTypeFirmwareModule}, {@link StepperBulkTypeSoftwareModule},\n * {@link StepperBulkTypeDeviceProfileModule}) to have the option\n * to create new bulk operation in a guided stepper dialog.\n *\n * ```typescript\n * import { BulkOperationsServiceModule } from '@c8y/ngx-components/operations/bulk-operations-service';\n * import { BulkOperationsListModule } from '@c8y/ngx-components/operations/bulk-operations-list';\n *\n * @NgModule({\n * imports: [\n * [...]\n * BulkOperationsServiceModule,\n * BulkOperationsListModule\n * ],\n * [...]\n * })\n * export class CustomOperationsModule {}```\n * respectively\n * ```typescript\n * import { BulkOperationsStepperContainerModule } from '@c8y/ngx-components/operations/bulk-operations-stepper-container';\n * import { BulkOperationsServiceModule } from '@c8y/ngx-components/operations/bulk-operations-service';\n * import { BulkOperationsListModule } from '@c8y/ngx-components/operations/bulk-operations-list';\n * import { StepperBulkTypeSoftwareModule } from '@c8y/ngx-components/operations/stepper-bulk-type-software';\n *\n * @NgModule({\n * imports: [\n * [...]\n * BulkOperationsServiceModule,\n * BulkOperationsListModule,\n * BulkOperationsStepperContainerModule,\n * StepperBulkTypeSoftwareModule\n * ],\n * [...]\n * })\n * export class CustomOperationsModule {}```\n * You can provide your own bulk operation stepper by registering a component via the `hookListBulkType`:\n *\n * ```typescript\n * import {\n * hookListBulkType,\n * baseUrl\n * } from '@c8y/ngx-components/operations/bulk-operations-service';\n *\n * [...]\n *\n * providers: [\n * hookListBulkType({\n * type: 'my-bulk-op-type',\n * c8yIcon: 'c8y-tools',\n * name: 'My bulk op type',\n * path: `${baseUrl}my-type`,\n * component: StepperMyBulkTypeComponent,\n * fragments: ['c8y_MyType'],\n * selected: false\n * })\n * ]```\n */\n@NgModule({\n imports: [\n CoreModule,\n BulkOperationFromSingleModule,\n BulkOperationsListModule,\n BulkOperationsServiceModule,\n BulkOperationsStepperContainerModule,\n StepperBulkTypeConfigurationModule,\n StepperBulkTypeFirmwareModule,\n StepperBulkTypeSoftwareModule,\n StepperBulkTypeDeviceProfileModule\n ],\n providers: [\n hookTab(BulkOperationsTabsFactory),\n deviceControlOverviewFeatureProviderFactory(),\n deviceControlTabFeatureProviderFactory()\n ]\n})\nexport class OperationsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;MAKa,yBAAyB,CAAA;AACpC,IAAA,WAAA,CAAmB,MAAc,EAAA;QAAd,
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-operations.mjs","sources":["../../operations/factories/bulk-operations-tab.factory.ts","../../operations/operations.module.ts","../../operations/c8y-ngx-components-operations.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { gettext, Tab, TabFactory } from '@c8y/ngx-components';\r\n\r\n@Injectable()\r\nexport class BulkOperationsTabsFactory implements TabFactory {\r\n constructor(public router: Router) {}\r\n get() {\r\n const tabs: Tab[] = [];\r\n if (this.router.url.match(/devicecontrol/g)) {\r\n tabs.push({\r\n path: 'devicecontrol/bulk',\r\n label: gettext('Bulk operations'),\r\n icon: 'c8y-icon c8y-icon-energy',\r\n priority: 1050,\r\n orientation: 'horizontal'\r\n } as Tab);\r\n }\r\n\r\n return tabs;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\n\nimport { CoreModule, hookTab } from '@c8y/ngx-components';\nimport { BulkOperationFromSingleModule } from '@c8y/ngx-components/operations/bulk-operation-from-single';\nimport { BulkOperationsListModule } from '@c8y/ngx-components/operations/bulk-operations-list';\nimport { BulkOperationsServiceModule } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BulkOperationsStepperContainerModule } from '@c8y/ngx-components/operations/bulk-operations-stepper-container';\nimport { StepperBulkTypeConfigurationModule } from '@c8y/ngx-components/operations/stepper-bulk-type-configuration';\nimport { StepperBulkTypeDeviceProfileModule } from '@c8y/ngx-components/operations/stepper-bulk-type-device-profile';\nimport { StepperBulkTypeFirmwareModule } from '@c8y/ngx-components/operations/stepper-bulk-type-firmware';\nimport { StepperBulkTypeSoftwareModule } from '@c8y/ngx-components/operations/stepper-bulk-type-software';\n\nimport {\n deviceControlOverviewFeatureProviderFactory,\n deviceControlTabFeatureProviderFactory\n} from '@c8y/ngx-components/operations/operations-list';\nimport { BulkOperationsTabsFactory } from './factories/bulk-operations-tab.factory';\n\n/**\n * This module sets up the 'Device control' view. By importing it in your custom application you will have:\n * - a 'Device control' tab in device details view\n * - a 'Device control' entry in the 'Overviews' section of navigator\n * - 'Bulk operations' tab on the 'Device control' page\n * - list view of existing bulk operations with expandable details and options to filter\n * - guided stepper dialogs to schedule new bulk operations of supported types\n * (Configuration update, Firmware update, Software update, Apply device profile).\n *\n * Additionaly you can use the modules imported by {@link OperationsModule} separately to achieve\n * the results you wish to have in your application, e.g.:\n * - import {@link BulkOperationsListModule} and {@link BulkOperationsServiceModule}\n * to have an overview of existing bulk operation with expandable details\n * - additionaly import {@link BulkOperationsStepperContainerModule} and any of the existing\n * `StepperBulkType*Module` modules ({@link StepperBulkTypeConfigurationModule},\n * {@link StepperBulkTypeFirmwareModule}, {@link StepperBulkTypeSoftwareModule},\n * {@link StepperBulkTypeDeviceProfileModule}) to have the option\n * to create new bulk operation in a guided stepper dialog.\n *\n * ```typescript\n * import { BulkOperationsServiceModule } from '@c8y/ngx-components/operations/bulk-operations-service';\n * import { BulkOperationsListModule } from '@c8y/ngx-components/operations/bulk-operations-list';\n *\n * @NgModule({\n * imports: [\n * [...]\n * BulkOperationsServiceModule,\n * BulkOperationsListModule\n * ],\n * [...]\n * })\n * export class CustomOperationsModule {}```\n * respectively\n * ```typescript\n * import { BulkOperationsStepperContainerModule } from '@c8y/ngx-components/operations/bulk-operations-stepper-container';\n * import { BulkOperationsServiceModule } from '@c8y/ngx-components/operations/bulk-operations-service';\n * import { BulkOperationsListModule } from '@c8y/ngx-components/operations/bulk-operations-list';\n * import { StepperBulkTypeSoftwareModule } from '@c8y/ngx-components/operations/stepper-bulk-type-software';\n *\n * @NgModule({\n * imports: [\n * [...]\n * BulkOperationsServiceModule,\n * BulkOperationsListModule,\n * BulkOperationsStepperContainerModule,\n * StepperBulkTypeSoftwareModule\n * ],\n * [...]\n * })\n * export class CustomOperationsModule {}```\n * You can provide your own bulk operation stepper by registering a component via the `hookListBulkType`:\n *\n * ```typescript\n * import {\n * hookListBulkType,\n * baseUrl\n * } from '@c8y/ngx-components/operations/bulk-operations-service';\n *\n * [...]\n *\n * providers: [\n * hookListBulkType({\n * type: 'my-bulk-op-type',\n * c8yIcon: 'c8y-tools',\n * name: 'My bulk op type',\n * path: `${baseUrl}my-type`,\n * component: StepperMyBulkTypeComponent,\n * fragments: ['c8y_MyType'],\n * selected: false\n * })\n * ]```\n */\n@NgModule({\n imports: [\n CoreModule,\n BulkOperationFromSingleModule,\n BulkOperationsListModule,\n BulkOperationsServiceModule,\n BulkOperationsStepperContainerModule,\n StepperBulkTypeConfigurationModule,\n StepperBulkTypeFirmwareModule,\n StepperBulkTypeSoftwareModule,\n StepperBulkTypeDeviceProfileModule\n ],\n providers: [\n hookTab(BulkOperationsTabsFactory),\n deviceControlOverviewFeatureProviderFactory(),\n deviceControlTabFeatureProviderFactory()\n ]\n})\nexport class OperationsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;MAKa,yBAAyB,CAAA;AACpC,IAAA,WAAA,CAAmB,MAAc,EAAA;QAAd,IAAA,CAAA,MAAM,GAAN,MAAM;IAAW;IACpC,GAAG,GAAA;QACD,MAAM,IAAI,GAAU,EAAE;QACtB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;YAC3C,IAAI,CAAC,IAAI,CAAC;AACR,gBAAA,IAAI,EAAE,oBAAoB;AAC1B,gBAAA,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC;AACjC,gBAAA,IAAI,EAAE,0BAA0B;AAChC,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,WAAW,EAAE;AACP,aAAA,CAAC;QACX;AAEA,QAAA,OAAO,IAAI;IACb;+GAfW,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAzB,yBAAyB,EAAA,CAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC;;;ACcD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEG;MAmBU,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAhBzB,UAAU;YACV,6BAA6B;YAC7B,wBAAwB;YACxB,2BAA2B;YAC3B,oCAAoC;YACpC,kCAAkC;YAClC,6BAA6B;YAC7B,6BAA6B;YAC7B,kCAAkC,CAAA,EAAA,CAAA,CAAA;AAQzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,SAAA,EANhB;YACT,OAAO,CAAC,yBAAyB,CAAC;AAClC,YAAA,2CAA2C,EAAE;AAC7C,YAAA,sCAAsC;AACvC,SAAA,EAAA,OAAA,EAAA,CAdC,UAAU;YACV,6BAA6B;YAC7B,wBAAwB;YACxB,2BAA2B;YAC3B,oCAAoC;YACpC,kCAAkC;YAClC,6BAA6B;YAC7B,6BAA6B;YAC7B,kCAAkC,CAAA,EAAA,CAAA,CAAA;;4FAQzB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAlB5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,UAAU;wBACV,6BAA6B;wBAC7B,wBAAwB;wBACxB,2BAA2B;wBAC3B,oCAAoC;wBACpC,kCAAkC;wBAClC,6BAA6B;wBAC7B,6BAA6B;wBAC7B;AACD,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,OAAO,CAAC,yBAAyB,CAAC;AAClC,wBAAA,2CAA2C,EAAE;AAC7C,wBAAA,sCAAsC;AACvC;AACF,iBAAA;;;AC3GD;;AAEG;;;;"}
|
|
@@ -60,10 +60,10 @@ class PendingMoRequestService {
|
|
|
60
60
|
});
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
64
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PendingMoRequestService, deps: [{ token: i0.Injector }, { token: i1.ApiService }, { token: i2.AlertService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
64
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PendingMoRequestService, providedIn: 'root' }); }
|
|
65
65
|
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PendingMoRequestService, decorators: [{
|
|
67
67
|
type: Injectable,
|
|
68
68
|
args: [{
|
|
69
69
|
providedIn: 'root'
|
|
@@ -75,11 +75,11 @@ class PendingMoRequestModule {
|
|
|
75
75
|
this.pendingMoRequestService = pendingMoRequestService;
|
|
76
76
|
this.pendingMoRequestService.setupHooks();
|
|
77
77
|
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
79
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
80
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PendingMoRequestModule, deps: [{ token: PendingMoRequestService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
79
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: PendingMoRequestModule, imports: [CommonModule] }); }
|
|
80
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PendingMoRequestModule, providers: [PendingMoRequestService], imports: [CommonModule] }); }
|
|
81
81
|
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PendingMoRequestModule, decorators: [{
|
|
83
83
|
type: NgModule,
|
|
84
84
|
args: [{
|
|
85
85
|
imports: [CommonModule],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-pending-mo-request.mjs","sources":["../../pending-mo-request/pending-mo-request-interceptor.ts","../../pending-mo-request/pending-mo-request.service.ts","../../pending-mo-request/pending-mo-request.module.ts","../../pending-mo-request/c8y-ngx-components-pending-mo-request.ts"],"sourcesContent":["import { Injector } from '@angular/core';\nimport { IFetchResponse } from '@c8y/client';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { ApiCall, HttpHandler, HttpInterceptor } from '@c8y/ngx-components/api';\nimport { NEVER, Observable, combineLatest } from 'rxjs';\nimport { timeout, catchError, share, map, startWith, take } from 'rxjs/operators';\n\nexport class PendingMoRequestInterceptor implements HttpInterceptor {\n constructor(private injector: Injector) {}\n\n intercept(req: ApiCall, next: HttpHandler): Observable<IFetchResponse> {\n const alertService = this.injector.get(AlertService);\n\n const timeoutValue = 5_000;\n if (/inventory\\/managedObjects/.test(req.url)) {\n const response$ = next.handle(req).pipe(share());\n const timeout$ = response$.pipe(\n timeout({ first: timeoutValue }),\n catchError(error => {\n if (error.name === 'TimeoutError') {\n alertService.add({\n type: 'system',\n text: gettext(\n 'The request is taking longer than usual. We apologize for the inconvenience.'\n ),\n timeout: 10000\n });\n }\n return NEVER;\n }),\n startWith('')\n );\n return combineLatest([response$, timeout$]).pipe(\n map(([response]) => response),\n take(1)\n );\n } else {\n return next.handle(req);\n }\n }\n}\n","import { DestroyRef, Injectable, Injector } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ApiService } from '@c8y/ngx-components/api';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { PendingMoRequestInterceptor } from './pending-mo-request-interceptor';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PendingMoRequestService {\n constructor(\n private injector: Injector,\n private apiService: ApiService,\n private alertService: AlertService,\n private destroyRef: DestroyRef\n ) {}\n\n setupHooks() {\n this.apiService.addInterceptor(new PendingMoRequestInterceptor(this.injector));\n\n /* Backend will return 202 when a request takes more than 30 seconds to complete\n * and will continue the execution in the background. So the user will be able to navigate away.\n */\n this.apiService\n .hookResponse(\n call =>\n call.method === 'DELETE' &&\n /inventory\\/managedObjects/.test(call.url) &&\n call.response.status === 202\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.alertService.add({\n type: 'system',\n text: gettext(\n 'The managed object is deleted in the background. Continue with using the platform as normal.'\n ),\n timeout: 10000\n });\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PendingMoRequestService } from './pending-mo-request.service';\n\n@NgModule({\n imports: [CommonModule],\n providers: [PendingMoRequestService]\n})\nexport class PendingMoRequestModule {\n constructor(private pendingMoRequestService: PendingMoRequestService) {\n this.pendingMoRequestService.setupHooks();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.PendingMoRequestService"],"mappings":";;;;;;;;;;MAOa,2BAA2B,CAAA;AACtC,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-pending-mo-request.mjs","sources":["../../pending-mo-request/pending-mo-request-interceptor.ts","../../pending-mo-request/pending-mo-request.service.ts","../../pending-mo-request/pending-mo-request.module.ts","../../pending-mo-request/c8y-ngx-components-pending-mo-request.ts"],"sourcesContent":["import { Injector } from '@angular/core';\nimport { IFetchResponse } from '@c8y/client';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { ApiCall, HttpHandler, HttpInterceptor } from '@c8y/ngx-components/api';\nimport { NEVER, Observable, combineLatest } from 'rxjs';\nimport { timeout, catchError, share, map, startWith, take } from 'rxjs/operators';\n\nexport class PendingMoRequestInterceptor implements HttpInterceptor {\n constructor(private injector: Injector) {}\n\n intercept(req: ApiCall, next: HttpHandler): Observable<IFetchResponse> {\n const alertService = this.injector.get(AlertService);\n\n const timeoutValue = 5_000;\n if (/inventory\\/managedObjects/.test(req.url)) {\n const response$ = next.handle(req).pipe(share());\n const timeout$ = response$.pipe(\n timeout({ first: timeoutValue }),\n catchError(error => {\n if (error.name === 'TimeoutError') {\n alertService.add({\n type: 'system',\n text: gettext(\n 'The request is taking longer than usual. We apologize for the inconvenience.'\n ),\n timeout: 10000\n });\n }\n return NEVER;\n }),\n startWith('')\n );\n return combineLatest([response$, timeout$]).pipe(\n map(([response]) => response),\n take(1)\n );\n } else {\n return next.handle(req);\n }\n }\n}\n","import { DestroyRef, Injectable, Injector } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ApiService } from '@c8y/ngx-components/api';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { PendingMoRequestInterceptor } from './pending-mo-request-interceptor';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PendingMoRequestService {\n constructor(\n private injector: Injector,\n private apiService: ApiService,\n private alertService: AlertService,\n private destroyRef: DestroyRef\n ) {}\n\n setupHooks() {\n this.apiService.addInterceptor(new PendingMoRequestInterceptor(this.injector));\n\n /* Backend will return 202 when a request takes more than 30 seconds to complete\n * and will continue the execution in the background. So the user will be able to navigate away.\n */\n this.apiService\n .hookResponse(\n call =>\n call.method === 'DELETE' &&\n /inventory\\/managedObjects/.test(call.url) &&\n call.response.status === 202\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.alertService.add({\n type: 'system',\n text: gettext(\n 'The managed object is deleted in the background. Continue with using the platform as normal.'\n ),\n timeout: 10000\n });\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PendingMoRequestService } from './pending-mo-request.service';\n\n@NgModule({\n imports: [CommonModule],\n providers: [PendingMoRequestService]\n})\nexport class PendingMoRequestModule {\n constructor(private pendingMoRequestService: PendingMoRequestService) {\n this.pendingMoRequestService.setupHooks();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.PendingMoRequestService"],"mappings":"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"}
|