@c8y/ngx-components 1022.30.0 → 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.service.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/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/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 +107 -102
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-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.map +1 -1
- package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +22 -22
- package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-broker.mjs +7 -7
- package/fesm2022/c8y-ngx-components-data-broker.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +3 -3
- package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +3 -3
- package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer-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 +1329 -1317
- 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 +22 -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
|
@@ -19,10 +19,10 @@ class BulkOperationFromSingleComponent extends BaseStepperComponent {
|
|
|
19
19
|
prototype
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationFromSingleComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.BulkOperationsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: BulkOperationFromSingleComponent, isStandalone: true, selector: "bulk-operation-from-single", usesInheritance: true, ngImport: i0, template: "<c8y-bulk-operation-stepper type=\"from-single\"> </c8y-bulk-operation-stepper>\n", dependencies: [{ kind: "component", type: BulkOperationStepper, selector: "c8y-bulk-operation-stepper", inputs: ["type"], outputs: ["selectionChange"] }] }); }
|
|
24
24
|
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationFromSingleComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
27
|
args: [{ selector: 'bulk-operation-from-single', imports: [BulkOperationStepper], template: "<c8y-bulk-operation-stepper type=\"from-single\"> </c8y-bulk-operation-stepper>\n" }]
|
|
28
28
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.BulkOperationsService }] });
|
|
@@ -34,12 +34,12 @@ const bulkOperationCreateSingleRoutes = [
|
|
|
34
34
|
}
|
|
35
35
|
];
|
|
36
36
|
class BulkOperationFromSingleModule {
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
38
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
39
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationFromSingleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
38
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationFromSingleModule, imports: [i1.RouterModule, BulkOperationFromSingleComponent] }); }
|
|
39
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationFromSingleModule, imports: [RouterModule.forChild(bulkOperationCreateSingleRoutes),
|
|
40
40
|
BulkOperationFromSingleComponent] }); }
|
|
41
41
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationFromSingleModule, decorators: [{
|
|
43
43
|
type: NgModule,
|
|
44
44
|
args: [{
|
|
45
45
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-operations-bulk-operation-from-single.mjs","sources":["../../operations/bulk-operation-from-single/bulk-operation-from-single.component.ts","../../operations/bulk-operation-from-single/bulk-operation-from-single.component.html","../../operations/bulk-operation-from-single/bulk-operation-from-single.module.ts","../../operations/bulk-operation-from-single/c8y-ngx-components-operations-bulk-operation-from-single.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { IOperation } from '@c8y/client';\nimport { get } from 'lodash-es';\nimport {\n BaseStepperComponent,\n BulkOperationStepper\n} from '@c8y/ngx-components/operations/bulk-operation-stepper';\nimport {\n BulkOperationsService,\n OperationDetails\n} from '@c8y/ngx-components/operations/bulk-operations-service';\n\n@Component({\n selector: 'bulk-operation-from-single',\n templateUrl: 'bulk-operation-from-single.component.html',\n imports: [BulkOperationStepper]\n})\nexport class BulkOperationFromSingleComponent extends BaseStepperComponent implements OnInit {\n constructor(\n private activatedRoute: ActivatedRoute,\n private bulkOperationService: BulkOperationsService\n ) {\n super();\n }\n\n protected async retrieveOperationPrototype(): Promise<OperationDetails> {\n const prototype: IOperation = (\n await this.bulkOperationService.getOperation(this.activatedRoute.snapshot.params.operationId)\n ).data;\n\n return {\n description: get(prototype, 'description'),\n prototype\n };\n }\n}\n","<c8y-bulk-operation-stepper type=\"from-single\"> </c8y-bulk-operation-stepper>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { Route } from '@c8y/ngx-components';\n\nimport { BulkOperationFromSingleComponent } from './bulk-operation-from-single.component';\n\nexport const bulkOperationCreateSingleRoutes: Route[] = [\n {\n path: 'devicecontrol/single/create-bulk/:operationId',\n component: BulkOperationFromSingleComponent\n }\n];\n\n@NgModule({\n imports: [\n RouterModule.forChild(bulkOperationCreateSingleRoutes),\n BulkOperationFromSingleComponent\n ]\n})\nexport class BulkOperationFromSingleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAkBM,MAAO,gCAAiC,SAAQ,oBAAoB,CAAA;IACxE,
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-operations-bulk-operation-from-single.mjs","sources":["../../operations/bulk-operation-from-single/bulk-operation-from-single.component.ts","../../operations/bulk-operation-from-single/bulk-operation-from-single.component.html","../../operations/bulk-operation-from-single/bulk-operation-from-single.module.ts","../../operations/bulk-operation-from-single/c8y-ngx-components-operations-bulk-operation-from-single.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { IOperation } from '@c8y/client';\nimport { get } from 'lodash-es';\nimport {\n BaseStepperComponent,\n BulkOperationStepper\n} from '@c8y/ngx-components/operations/bulk-operation-stepper';\nimport {\n BulkOperationsService,\n OperationDetails\n} from '@c8y/ngx-components/operations/bulk-operations-service';\n\n@Component({\n selector: 'bulk-operation-from-single',\n templateUrl: 'bulk-operation-from-single.component.html',\n imports: [BulkOperationStepper]\n})\nexport class BulkOperationFromSingleComponent extends BaseStepperComponent implements OnInit {\n constructor(\n private activatedRoute: ActivatedRoute,\n private bulkOperationService: BulkOperationsService\n ) {\n super();\n }\n\n protected async retrieveOperationPrototype(): Promise<OperationDetails> {\n const prototype: IOperation = (\n await this.bulkOperationService.getOperation(this.activatedRoute.snapshot.params.operationId)\n ).data;\n\n return {\n description: get(prototype, 'description'),\n prototype\n };\n }\n}\n","<c8y-bulk-operation-stepper type=\"from-single\"> </c8y-bulk-operation-stepper>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { Route } from '@c8y/ngx-components';\n\nimport { BulkOperationFromSingleComponent } from './bulk-operation-from-single.component';\n\nexport const bulkOperationCreateSingleRoutes: Route[] = [\n {\n path: 'devicecontrol/single/create-bulk/:operationId',\n component: BulkOperationFromSingleComponent\n }\n];\n\n@NgModule({\n imports: [\n RouterModule.forChild(bulkOperationCreateSingleRoutes),\n BulkOperationFromSingleComponent\n ]\n})\nexport class BulkOperationFromSingleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAkBM,MAAO,gCAAiC,SAAQ,oBAAoB,CAAA;IACxE,WAAA,CACU,cAA8B,EAC9B,oBAA2C,EAAA;AAEnD,QAAA,KAAK,EAAE;QAHC,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,oBAAoB,GAApB,oBAAoB;IAG9B;AAEU,IAAA,MAAM,0BAA0B,GAAA;QACxC,MAAM,SAAS,GAAe,CAC5B,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAC7F,IAAI;QAEN,OAAO;AACL,YAAA,WAAW,EAAE,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC;YAC1C;SACD;IACH;+GAjBW,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClB7C,mFACA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDeY,oBAAoB,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEnB,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,4BAA4B,EAAA,OAAA,EAE7B,CAAC,oBAAoB,CAAC,EAAA,QAAA,EAAA,mFAAA,EAAA;;;AET1B,MAAM,+BAA+B,GAAY;AACtD,IAAA;AACE,QAAA,IAAI,EAAE,+CAA+C;AACrD,QAAA,SAAS,EAAE;AACZ;;MASU,6BAA6B,CAAA;+GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA7B,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,6BAA6B,6BAHtC,gCAAgC,CAAA,EAAA,CAAA,CAAA;AAGvB,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,6BAA6B,YAJtC,YAAY,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YACtD,gCAAgC,CAAA,EAAA,CAAA,CAAA;;4FAGvB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;AACP,wBAAA,YAAY,CAAC,QAAQ,CAAC,+BAA+B,CAAC;wBACtD;AACD;AACF,iBAAA;;;ACnBD;;AAEG;;;;"}
|
|
@@ -74,10 +74,10 @@ class ModalBodyHostDirective {
|
|
|
74
74
|
constructor(viewContainerRef) {
|
|
75
75
|
this.viewContainerRef = viewContainerRef;
|
|
76
76
|
}
|
|
77
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
78
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
77
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ModalBodyHostDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
78
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: ModalBodyHostDirective, isStandalone: true, selector: "[modalBodyHost]", ngImport: i0 }); }
|
|
79
79
|
}
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ModalBodyHostDirective, decorators: [{
|
|
81
81
|
type: Directive,
|
|
82
82
|
args: [{ selector: '[modalBodyHost]' }]
|
|
83
83
|
}], ctorParameters: () => [{ type: i0.ViewContainerRef }] });
|
|
@@ -115,10 +115,10 @@ class BulkOperationWrapperComponent {
|
|
|
115
115
|
ariaLabelledBy: 'modal-title'
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
119
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationWrapperComponent, deps: [{ token: i1.BulkOperationsService }, { token: i2.BsModalRef }, { token: i2.BsModalService }, { token: BULK_OPERATION_WRAPPER_MODAL_BODY_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
119
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: BulkOperationWrapperComponent, isStandalone: true, selector: "c8y-bulk-operations-wrapper", inputs: { bulkOperation: "bulkOperation" }, viewQueries: [{ propertyName: "modalBodyHost", first: true, predicate: ModalBodyHostDirective, descendants: true, static: true }], ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header\">\n <h3 id=\"modal-title\">{{ 'Bulk operation details' | translate }}</h3>\n </div>\n\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <ng-container modalBodyHost></ng-container>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Close' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"modalRef.hide()\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: ModalBodyHostDirective, selector: "[modalBodyHost]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
120
120
|
}
|
|
121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationWrapperComponent, decorators: [{
|
|
122
122
|
type: Component,
|
|
123
123
|
args: [{ selector: 'c8y-bulk-operations-wrapper', imports: [ModalBodyHostDirective, C8yTranslatePipe], template: "<div class=\"viewport-modal\">\n <div class=\"modal-header\">\n <h3 id=\"modal-title\">{{ 'Bulk operation details' | translate }}</h3>\n </div>\n\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <ng-container modalBodyHost></ng-container>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Close' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"modalRef.hide()\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n</div>\n" }]
|
|
124
124
|
}], ctorParameters: () => [{ type: i1.BulkOperationsService }, { type: i2.BsModalRef }, { type: i2.BsModalService }, { type: undefined, decorators: [{
|
|
@@ -148,10 +148,10 @@ class BulkOperationListItemService {
|
|
|
148
148
|
ariaLabelledBy: 'modal-title'
|
|
149
149
|
});
|
|
150
150
|
}
|
|
151
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
152
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationListItemService, deps: [{ token: i1.BulkOperationsService }, { token: i2.BsModalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
152
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationListItemService, providedIn: 'root' }); }
|
|
153
153
|
}
|
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationListItemService, decorators: [{
|
|
155
155
|
type: Injectable,
|
|
156
156
|
args: [{ providedIn: 'root' }]
|
|
157
157
|
}], ctorParameters: () => [{ type: i1.BulkOperationsService }, { type: i2.BsModalService }] });
|
|
@@ -212,10 +212,10 @@ class BulkOperationsRescheduleModalComponent {
|
|
|
212
212
|
this.closeSubject.next(newBulkOperation.data);
|
|
213
213
|
this.bsModalRef.hide();
|
|
214
214
|
}
|
|
215
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
216
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
215
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationsRescheduleModalComponent, deps: [{ token: i2.BsModalRef }, { token: i1.BulkOperationsService }, { token: i3.AlertService }, { token: i3.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: BulkOperationsRescheduleModalComponent, isStandalone: true, selector: "c8y-bulk-operations-reschedule-modal", host: { listeners: { "window:keyup": "onKeyUp($event)" } }, ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i c8yIcon=\"c8y-energy\"></i>\n <h4 id=\"modal-title\">{{ modalTitle | translate }}</h4>\n </div>\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"modal-body\">\n <div class=\"text-center\">\n <c8y-operation-summary\n [description]=\"bulkOperation.operationPrototype.description\"\n ></c8y-operation-summary>\n </div>\n <div class=\"p-t-16 center-block\" style=\"max-width: 300px\">\n <c8y-operation-scheduler\n [(ngModel)]=\"dateAndDelay\"\n #scheduler=\"ngModel\"\n ></c8y-operation-scheduler>\n </div>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n (click)=\"onCancel()\"\n type=\"button\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n [actionData]=\"{ title: modalTitle, result: 'Cancel' }\"\n >\n <span translate>Cancel</span>\n </button>\n <button\n id=\"save-btn\"\n (click)=\"onSave()\"\n type=\"button\"\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n [disabled]=\"scheduler?.control?.errors\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n [actionData]=\"{ title: modalTitle, result: 'Save' }\"\n >\n <span translate>Save</span>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: OperationSummaryComponent, selector: "c8y-operation-summary", inputs: ["name", "description", "deviceQueryString"] }, { kind: "component", type: OperationSchedulerComponent, selector: "c8y-operation-scheduler", inputs: ["minutesAhead"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
217
217
|
}
|
|
218
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationsRescheduleModalComponent, decorators: [{
|
|
219
219
|
type: Component,
|
|
220
220
|
args: [{ selector: 'c8y-bulk-operations-reschedule-modal', imports: [
|
|
221
221
|
IconDirective,
|
|
@@ -377,10 +377,10 @@ class BulkOperationListItemComponent {
|
|
|
377
377
|
isStatusFailed() {
|
|
378
378
|
return this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.FAILED;
|
|
379
379
|
}
|
|
380
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
381
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
380
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationListItemComponent, deps: [{ token: BulkOperationListItemService }, { token: i1.BulkOperationsService }, { token: i3.ModalService }, { token: i3.AlertService }, { token: i2.BsModalService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
381
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: BulkOperationListItemComponent, isStandalone: true, selector: "c8y-bulk-operation-list-item", inputs: { bulkOperation: "bulkOperation", detailsCollapsed: "detailsCollapsed", readOnly: "readOnly" }, outputs: { showFailedOperation: "showFailedOperation", reload: "reload" }, viewQueries: [{ propertyName: "listItem", first: true, predicate: ["listItem"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<c8y-li\n class=\"c8y-list__item--double-actions\"\n [ngClass]=\"{ 'c8y-list__item--no-expand': !detailsCollapsed }\"\n [collapsed]=\"detailsCollapsed\"\n #listItem\n id=\"{{ bulkOperation.id }}\"\n>\n <c8y-li-icon>\n <i\n [c8yIcon]=\"getOperationStatusOptions().icon\"\n [ngClass]=\"getOperationStatusOptions().styleClass\"\n [tooltip]=\"getOperationStatusOptions().label | translate\"\n ></i>\n </c8y-li-icon>\n <div [ngClass]=\"{ 'content-flex-58': !readOnly, 'content-flex-50': readOnly }\">\n <div class=\"col-5\">\n <button\n class=\"btn-clean\"\n type=\"button\"\n title=\"{{ bulkOperation.id }} - {{\n bulkOperation.operationPrototype.description | translate\n }}\"\n (click)=\"listItem.toggleCollapsed()\"\n >\n <span class=\"text-truncate\">\n <strong class=\"text-muted m-r-4\">{{ bulkOperation.id }}</strong>\n {{ bulkOperation.operationPrototype.description | translate }}\n </span>\n </button>\n </div>\n <div class=\"flex-grow\">\n <div class=\"m-t-8 visible-xs\"></div>\n <hr *ngIf=\"isStatusCanceled(); else statusNotCanceled\" class=\"m-t-16 m-b-0 visible-xs\" />\n <ng-template #statusNotCanceled>\n <div\n [class]=\"progressBarClass\"\n title=\"{{ progressBarStatus | c8yNumber: 'floor':'1.0-0' }}%\"\n >\n <div\n [class]=\"progressBarColor\"\n role=\"progressbar\"\n [attr.aria-label]=\"'Progress' | translate\"\n aria-valuenow=\"0\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width.%]=\"progressBarStatus\"\n >\n <span *ngIf=\"progressBarStatus !== 0\">\n {{ progressBarStatus | c8yNumber: 'floor':'1.0-0' }}%\n </span>\n </div>\n </div>\n </ng-template>\n </div>\n <div class=\"col-4\">\n <div class=\"p-t-8 visible-xs\"></div>\n <small *ngIf=\"bulkOperation.progress.successful > 0\" class=\"m-r-8 icon-flex\">\n <i c8yIcon=\"check-circle\" class=\"text-success m-r-4\"></i>\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ bulkOperationsCountSuccessful: bulkOperation.progress.successful }\"\n >\n {{ bulkOperationsCountSuccessful }} successful\n </span>\n </small>\n <small *ngIf=\"bulkOperation.progress.failed > 0\" class=\"m-r-8 icon-flex\">\n <i c8yIcon=\"warning\" class=\"text-danger m-r-4\"></i>\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ bulkOperationsCountFailed: bulkOperation.progress.failed }\"\n >\n {{ bulkOperationsCountFailed }} failed\n </span>\n </small>\n <small *ngIf=\"bulkOperation.progress.executing > 0\" class=\"m-r-8 icon-flex\">\n <i c8yIcon=\"refresh\" class=\"text-primary m-r-4\"></i>\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ bulkOperationsCountExecuting: bulkOperation.progress.executing }\"\n >\n {{ bulkOperationsCountExecuting }} executing\n </span>\n </small>\n <small *ngIf=\"bulkOperation.progress.pending > 0\" class=\"m-r-8 icon-flex\">\n <i c8yIcon=\"clock-o\" class=\"text-primary m-r-4\"></i>\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ bulkOperationsCountPending: bulkOperation.progress.pending }\"\n >\n {{ bulkOperationsCountPending }} pending\n </span>\n </small>\n </div>\n </div>\n <div class=\"c8y-list__item__footer\">\n <div class=\"m-r-16\">\n <span class=\"text-label-small m-r-4\" translate>Start</span>\n <small class=\"icon-flex\">\n <i c8yIcon=\"calendar\" class=\"m-r-4\"></i>\n <span>\n {{ bulkOperation.startDate | c8yDate }}\n </span>\n </small>\n </div>\n <div class=\"m-r-16\" *ngIf=\"bulkOperationGeneralStatus.CANCELED !== bulkOperation.generalStatus\">\n <span class=\"text-label-small m-r-4\" translate>Finish</span>\n\n <small class=\"icon-flex\">\n <i c8yIcon=\"calendar\" class=\"m-r-4\"></i>\n <span>{{ finishDate | c8yDate }}</span>\n </small>\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ finishDatePopoverText | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"isStatusScheduled() || isStatusExecutingOrExecutingWithError()\"\n ></button>\n </div>\n </div>\n <ng-container *ngIf=\"!readOnly\">\n <c8y-li-action\n *ngIf=\"isStatusScheduled()\"\n label=\"{{ 'Edit schedule' | translate }}\"\n (click)=\"editSchedule()\"\n icon=\"pencil\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n ></c8y-li-action>\n <c8y-li-action\n *ngIf=\"\n isStatusScheduled() || (isStatusExecutingOrExecutingWithError() && !allOperationsCreated())\n \"\n label=\"{{ 'Cancel bulk operation' | translate }}\"\n (click)=\"cancelBulkOperation()\"\n icon=\"remove\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n ></c8y-li-action>\n <c8y-li-action\n *ngIf=\"isStatusFailed()\"\n label=\"{{ 'Retry failed operations' | translate }}\"\n (click)=\"retryFailedOperation()\"\n icon=\"repeat\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n ></c8y-li-action>\n <c8y-li-action\n *ngIf=\"isStatusFailed()\"\n label=\"{{ 'Set operation to SUCCESSFUL' | translate }}\"\n (click)=\"setToSuccessful()\"\n icon=\"check-circle\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n ></c8y-li-action>\n </ng-container>\n <c8y-li-collapse class=\"m-b-16\">\n <c8y-operation-details-tabs\n *ngIf=\"!listItem.collapsed\"\n [operation]=\"bulkOperation\"\n [readOnly]=\"readOnly\"\n (onRetryFailedOperations)=\"retryFailedOperation()\"\n (showFailedOperation)=\"openFailedOperation($event)\"\n [bulkOperationModalDetailsService]=\"bulkOperationListItemService\"\n ></c8y-operation-details-tabs>\n </c8y-li-collapse>\n</c8y-li>\n", dependencies: [{ kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon", "disabled"], outputs: ["click"] }, { kind: "directive", type: ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "component", type: ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: OperationDetailsTabsComponent, selector: "c8y-operation-details-tabs", inputs: ["operation", "readOnly", "bulkOperationModalDetailsService"], outputs: ["onRetryFailedOperations", "showFailedOperation"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: DatePipe, name: "c8yDate" }, { kind: "pipe", type: NumberPipe, name: "c8yNumber" }] }); }
|
|
382
382
|
}
|
|
383
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
383
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationListItemComponent, decorators: [{
|
|
384
384
|
type: Component,
|
|
385
385
|
args: [{ selector: 'c8y-bulk-operation-list-item', imports: [
|
|
386
386
|
ListItemComponent,
|
|
@@ -418,14 +418,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
418
418
|
* This module allows for displaying the list item of a bulk operation with its details.
|
|
419
419
|
*/
|
|
420
420
|
class BulkOperationListItemModule {
|
|
421
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
422
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
421
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationListItemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
422
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationListItemModule, imports: [BulkOperationListItemComponent,
|
|
423
423
|
BulkOperationsRescheduleModalComponent,
|
|
424
424
|
BulkOperationWrapperComponent,
|
|
425
425
|
ModalBodyHostDirective], exports: [BulkOperationListItemComponent,
|
|
426
426
|
BulkOperationsRescheduleModalComponent,
|
|
427
427
|
BulkOperationWrapperComponent] }); }
|
|
428
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
428
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationListItemModule, providers: [
|
|
429
429
|
BulkOperationListItemService,
|
|
430
430
|
{
|
|
431
431
|
provide: BULK_OPERATION_WRAPPER_MODAL_BODY_COMPONENT,
|
|
@@ -437,7 +437,7 @@ class BulkOperationListItemModule {
|
|
|
437
437
|
], imports: [BulkOperationListItemComponent,
|
|
438
438
|
BulkOperationsRescheduleModalComponent] }); }
|
|
439
439
|
}
|
|
440
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
440
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationListItemModule, decorators: [{
|
|
441
441
|
type: NgModule,
|
|
442
442
|
args: [{
|
|
443
443
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-operations-bulk-operation-list-item.mjs","sources":["../../operations/bulk-operation-list-item/bulk-operation-list-item.model.ts","../../operations/bulk-operation-list-item/bulk-operation-wrapper.model.ts","../../operations/bulk-operation-list-item/modal-body-host.directive.ts","../../operations/bulk-operation-list-item/bulk-operation-wrapper.component.ts","../../operations/bulk-operation-list-item/bulk-operation-wrapper.component.html","../../operations/bulk-operation-list-item/bulk-operation-list-item.service.ts","../../operations/bulk-operation-list-item/modals/bulk-operations-reschedule-modal.component.ts","../../operations/bulk-operation-list-item/modals/bulk-operations-reschedule-modal.component.html","../../operations/bulk-operation-list-item/bulk-operation-list-item.component.ts","../../operations/bulk-operation-list-item/bulk-operation-list-item.component.html","../../operations/bulk-operation-list-item/bulk-operation-list-item.module.ts","../../operations/bulk-operation-list-item/c8y-ngx-components-operations-bulk-operation-list-item.ts"],"sourcesContent":["import { OperationBulkGeneralStatus } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components';\nimport { OperationStatusOption } from '@c8y/ngx-components/operations/shared';\n\nexport type OperationStatusOptionsMap = {\n [key in keyof typeof BULK_OPERATION_STATUS_LABELS]?: OperationStatusOption;\n};\n\nexport const BULK_OPERATION_STATUS_LABELS = {\n SCHEDULED: gettext('Scheduled'),\n EXECUTING: gettext('Executing'),\n CANCELED: gettext('Canceled'),\n FAILED: gettext('Completed with failures'),\n SUCCESSFUL: gettext('Completed successfully'),\n DELETED: gettext('Deleted')\n};\n\nexport const BULK_OPERATION_STATUS_OPTIONS: OperationStatusOptionsMap = {\n SCHEDULED: {\n label: BULK_OPERATION_STATUS_LABELS.SCHEDULED,\n generalStatuses: [OperationBulkGeneralStatus.SCHEDULED],\n icon: 'calendar',\n styleClass: 'text-info'\n },\n EXECUTING: {\n label: BULK_OPERATION_STATUS_LABELS.EXECUTING,\n generalStatuses: [\n OperationBulkGeneralStatus.EXECUTING,\n OperationBulkGeneralStatus.EXECUTING_WITH_ERROR\n ],\n icon: 'refresh',\n styleClass: 'text-primary'\n },\n DELETED: {\n label: BULK_OPERATION_STATUS_LABELS.DELETED,\n generalStatuses: [OperationBulkGeneralStatus.DELETED],\n icon: 'delete-document',\n styleClass: 'text-muted'\n },\n CANCELED: {\n label: BULK_OPERATION_STATUS_LABELS.CANCELED,\n generalStatuses: [OperationBulkGeneralStatus.CANCELED],\n icon: 'ban',\n styleClass: 'text-primary'\n },\n FAILED: {\n label: BULK_OPERATION_STATUS_LABELS.FAILED,\n generalStatuses: [OperationBulkGeneralStatus.FAILED],\n icon: 'exclamation-circle',\n styleClass: 'text-danger'\n },\n SUCCESSFUL: {\n label: BULK_OPERATION_STATUS_LABELS.SUCCESSFUL,\n generalStatuses: [OperationBulkGeneralStatus.SUCCESSFUL],\n icon: 'check-circle',\n styleClass: 'text-success'\n }\n};\n","import { EventEmitter, InjectionToken, Type } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\n\nexport const BULK_OPERATION_WRAPPER_MODAL_BODY_COMPONENT =\n new InjectionToken<BulkOperationDetailsModalBodyConfiguration>(\n 'BulkOperationWrapperModalBodyComponent'\n );\n\nexport interface BulkOperationDetailsModalBodyConfiguration {\n component: Type<BulkOperationDetailsModalBody>;\n config?: object;\n}\n\nexport interface BulkOperationDetailsModalBody {\n bulkOperation: Partial<IOperationBulk>;\n showFailedOperation: EventEmitter<any>;\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({ selector: '[modalBodyHost]' })\nexport class ModalBodyHostDirective {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import { Component, Inject, Input, OnDestroy, OnInit, Optional, ViewChild } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { assign } from 'lodash-es';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n BulkOperationDetailsModalBody,\n BulkOperationDetailsModalBodyConfiguration,\n BULK_OPERATION_WRAPPER_MODAL_BODY_COMPONENT\n} from './bulk-operation-wrapper.model';\nimport { ModalBodyHostDirective } from './modal-body-host.directive';\nimport { C8yTranslatePipe } from '@c8y/ngx-components';\n@Component({\n selector: 'c8y-bulk-operations-wrapper',\n templateUrl: './bulk-operation-wrapper.component.html',\n imports: [ModalBodyHostDirective, C8yTranslatePipe]\n})\nexport class BulkOperationWrapperComponent implements OnInit, OnDestroy {\n @Input() bulkOperation: Partial<IOperationBulk>;\n\n @ViewChild(ModalBodyHostDirective, { static: true })\n modalBodyHost: ModalBodyHostDirective;\n\n private destroyed$: Subject<void> = new Subject();\n\n constructor(\n public bulkOperationsService: BulkOperationsService,\n public modalRef: BsModalRef,\n private modalService: BsModalService,\n @Optional()\n @Inject(BULK_OPERATION_WRAPPER_MODAL_BODY_COMPONENT)\n private modalBodyConfig: BulkOperationDetailsModalBodyConfiguration\n ) {}\n\n ngOnInit(): void {\n if (this.modalBodyConfig) {\n const componentRef =\n this.modalBodyHost.viewContainerRef.createComponent<BulkOperationDetailsModalBody>(\n this.modalBodyConfig.component\n );\n assign(componentRef.instance, this.modalBodyConfig.config);\n componentRef.instance.bulkOperation = this.bulkOperation;\n componentRef.instance.showFailedOperation\n .pipe(takeUntil(this.destroyed$))\n .subscribe(event => this.openDetails(event));\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n // openDetails function needs to be defined in the both places (component and the service) to avoid circular dependency.\n async openDetails(bulkOperationId: string | number) {\n const bulkOperation: IOperationBulk = (\n await this.bulkOperationsService.getBulkOperationById(bulkOperationId)\n ).data;\n const initialState = { bulkOperation };\n this.modalService.show(BulkOperationWrapperComponent, {\n initialState,\n class: 'modal-lg',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title'\n });\n }\n}\n","<div class=\"viewport-modal\">\n <div class=\"modal-header\">\n <h3 id=\"modal-title\">{{ 'Bulk operation details' | translate }}</h3>\n </div>\n\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <ng-container modalBodyHost></ng-container>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Close' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"modalRef.hide()\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport { BulkOperationModalDetailsService } from '@c8y/ngx-components/operations/bulk-operation-modal-details';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BulkOperationWrapperComponent } from './bulk-operation-wrapper.component';\n\n@Injectable({ providedIn: 'root' })\nexport class BulkOperationListItemService implements BulkOperationModalDetailsService {\n constructor(\n private bulkOperationsService: BulkOperationsService,\n private modalService: BsModalService\n ) {}\n\n async openDetails(bulkOperationId: string | number) {\n const bulkOperation: IOperationBulk = (\n await this.bulkOperationsService.getBulkOperationById(bulkOperationId)\n ).data;\n const initialState = { bulkOperation };\n this.modalService.show(BulkOperationWrapperComponent, {\n initialState,\n class: 'modal-lg',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title'\n });\n }\n}\n","import { Component, HostListener, OnInit } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport {\n AlertService,\n GainsightService,\n gettext,\n IconDirective,\n ProductExperienceDirective,\n C8yTranslateDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport {\n OperationSchedule,\n OperationSchedulerComponent\n} from '@c8y/ngx-components/operations/bulk-operation-scheduler';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BULK_OPERATION_EVENT } from '@c8y/ngx-components/operations/product-experience';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { OperationSummaryComponent } from '@c8y/ngx-components/operations/operation-summary';\nimport { FormsModule } from '@angular/forms';\n@Component({\n selector: 'c8y-bulk-operations-reschedule-modal',\n templateUrl: 'bulk-operations-reschedule-modal.component.html',\n imports: [\n IconDirective,\n OperationSummaryComponent,\n OperationSchedulerComponent,\n FormsModule,\n ProductExperienceDirective,\n C8yTranslateDirective,\n C8yTranslatePipe\n ]\n})\nexport class BulkOperationsRescheduleModalComponent implements OnInit {\n BULK_OPERATION_EVENT = BULK_OPERATION_EVENT;\n closeSubject: Subject<IOperationBulk> = new Subject();\n dateAndDelay: OperationSchedule;\n bulkOperation: Partial<IOperationBulk>;\n isRetryOperation: boolean;\n modalTitle: string;\n\n private readonly CARRIAGE_RETURN_CODE = 'Escape';\n\n constructor(\n public bsModalRef: BsModalRef,\n private bulkOperationsService: BulkOperationsService,\n private alert: AlertService,\n private gainsightService: GainsightService\n ) {}\n\n @HostListener('window:keyup', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n if (event.code === this.CARRIAGE_RETURN_CODE) {\n this.gainsightService.triggerEvent('modalDialog', {\n title: this.modalTitle,\n result: 'Cancel'\n });\n }\n }\n\n ngOnInit() {\n this.modalTitle = this.getTitle();\n }\n\n onDateAndDelaySelect($event) {\n this.dateAndDelay = $event;\n }\n\n getTitle() {\n return this.isRetryOperation ? gettext('Retry operation') : gettext('Edit schedule');\n }\n\n onCancel() {\n this.bsModalRef.hide();\n }\n\n async onSave() {\n let newBulkOperation;\n this.bulkOperation.startDate = this.dateAndDelay.scheduledDate.toISOString();\n this.bulkOperation.creationRamp = this.dateAndDelay.delayInSeconds;\n\n if (this.isRetryOperation) {\n try {\n newBulkOperation = await this.bulkOperationsService.createBulkOperation(this.bulkOperation);\n this.alert.success(gettext('Successfully rescheduled for a retry.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n } else {\n try {\n newBulkOperation = await this.bulkOperationsService.updateBulkOperation(this.bulkOperation);\n this.alert.success(gettext('Successfully rescheduled.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n }\n\n // send back to component from which modal was called\n this.closeSubject.next(newBulkOperation.data);\n this.bsModalRef.hide();\n }\n}\n","<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i c8yIcon=\"c8y-energy\"></i>\n <h4 id=\"modal-title\">{{ modalTitle | translate }}</h4>\n </div>\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"modal-body\">\n <div class=\"text-center\">\n <c8y-operation-summary\n [description]=\"bulkOperation.operationPrototype.description\"\n ></c8y-operation-summary>\n </div>\n <div class=\"p-t-16 center-block\" style=\"max-width: 300px\">\n <c8y-operation-scheduler\n [(ngModel)]=\"dateAndDelay\"\n #scheduler=\"ngModel\"\n ></c8y-operation-scheduler>\n </div>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n (click)=\"onCancel()\"\n type=\"button\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n [actionData]=\"{ title: modalTitle, result: 'Cancel' }\"\n >\n <span translate>Cancel</span>\n </button>\n <button\n id=\"save-btn\"\n (click)=\"onSave()\"\n type=\"button\"\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n [disabled]=\"scheduler?.control?.errors\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n [actionData]=\"{ title: modalTitle, result: 'Save' }\"\n >\n <span translate>Save</span>\n </button>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { IOperationBulk, OperationBulkGeneralStatus } from '@c8y/client';\nimport {\n AlertService,\n gettext,\n ListItemComponent,\n ModalService,\n Status,\n ListItemIconComponent,\n IconDirective,\n C8yTranslateDirective,\n ListItemActionComponent,\n ProductExperienceDirective,\n ListItemCollapseComponent,\n C8yTranslatePipe,\n DatePipe,\n NumberPipe\n} from '@c8y/ngx-components';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BULK_OPERATION_EVENT } from '@c8y/ngx-components/operations/product-experience';\nimport { assign, cloneDeep, find, values } from 'lodash-es';\nimport { BsModalRef, BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\nimport {\n BULK_OPERATION_STATUS_OPTIONS,\n OperationStatusOptionsMap\n} from './bulk-operation-list-item.model';\nimport { BulkOperationListItemService } from './bulk-operation-list-item.service';\nimport { BulkOperationsRescheduleModalComponent } from './modals/bulk-operations-reschedule-modal.component';\nimport { NgClass, NgIf } from '@angular/common';\nimport { TooltipDirective } from 'ngx-bootstrap/tooltip';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\nimport { OperationDetailsTabsComponent } from '@c8y/ngx-components/operations/operations-list-item-details';\n\n@Component({\n selector: 'c8y-bulk-operation-list-item',\n templateUrl: './bulk-operation-list-item.component.html',\n imports: [\n ListItemComponent,\n NgClass,\n ListItemIconComponent,\n IconDirective,\n TooltipDirective,\n NgIf,\n C8yTranslateDirective,\n PopoverDirective,\n ListItemActionComponent,\n ProductExperienceDirective,\n ListItemCollapseComponent,\n OperationDetailsTabsComponent,\n C8yTranslatePipe,\n DatePipe,\n NumberPipe\n ]\n})\nexport class BulkOperationListItemComponent implements OnInit, OnChanges {\n BULK_OPERATION_EVENT = BULK_OPERATION_EVENT;\n @Input()\n bulkOperation: Partial<IOperationBulk>;\n @Input()\n detailsCollapsed = true;\n @Input()\n readOnly = false;\n @Output() showFailedOperation = new EventEmitter();\n @Output() reload: EventEmitter<any> = new EventEmitter();\n @ViewChild('listItem', { static: true }) listItem: ListItemComponent;\n iconClass: string;\n finishDate: number;\n refreshLoading = false;\n bulkOperationGeneralStatus = OperationBulkGeneralStatus;\n BULK_OPERATION_STATUS_OPTIONS: OperationStatusOptionsMap = BULK_OPERATION_STATUS_OPTIONS;\n bsModalRef: BsModalRef;\n finishDatePopoverText: string = gettext(\n 'Approximate date, estimated based on the bulk operation settings.'\n );\n progressBarClass = 'progress';\n progressBarColor: string;\n progressBarStatus = 0;\n\n constructor(\n public bulkOperationListItemService: BulkOperationListItemService,\n private bulkOperationsService: BulkOperationsService,\n private modal: ModalService,\n private alert: AlertService,\n private bsModalService: BsModalService\n ) {}\n\n ngOnInit() {\n this.finishDate = this.calculateFinishDateMs();\n this.setProgressBar();\n }\n\n getOperationStatusOptions() {\n const statusOptions = values(BULK_OPERATION_STATUS_OPTIONS);\n return find(statusOptions, options =>\n options.generalStatuses.includes(this.bulkOperation.generalStatus)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.bulkOperation && !changes.bulkOperation.firstChange) {\n this.setProgressBar();\n }\n }\n calculateFinishDateMs(): number {\n const startDateMs: number = new Date(this.bulkOperation.startDate).getTime();\n const creationRampMs: number = this.bulkOperation.creationRamp * 1000;\n\n return startDateMs + creationRampMs * this.bulkOperation.progress.all;\n }\n\n progressBarProgressFn() {\n return (\n ((this.bulkOperation.progress.successful + this.bulkOperation.progress.failed) /\n this.bulkOperation.progress.all) *\n 100\n );\n }\n\n setProgressBar() {\n const staticContentOfClass = 'progress-bar progress-striped active progress-bar';\n\n const progressBarState = {\n EXECUTING: {\n progressBarClass: 'progress progress-striped active',\n progressBarColor: `${staticContentOfClass}-primary`,\n progressBarStatus: this.progressBarProgressFn()\n },\n EXECUTING_WITH_ERROR: {\n progressBarClass: 'progress progress-striped active',\n progressBarColor: `${staticContentOfClass}-danger`,\n progressBarStatus: this.progressBarProgressFn()\n },\n FAILED: {\n progressBarClass: 'progress',\n progressBarColor: `${staticContentOfClass}-danger`,\n progressBarStatus: 100\n },\n SUCCESSFUL: {\n progressBarClass: 'progress',\n progressBarColor: `${staticContentOfClass}-success`,\n progressBarStatus: 100\n }\n };\n\n assign(this, progressBarState[this.bulkOperation.generalStatus]);\n }\n\n editSchedule() {\n const rescheduledOperation = cloneDeep(this.bulkOperation);\n const initialState = {\n bulkOperation: rescheduledOperation\n };\n const modalOptions = {\n initialState,\n class: 'modal-sm',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title',\n backdrop: 'static'\n } as ModalOptions;\n this.bsModalRef = this.bsModalService.show(\n BulkOperationsRescheduleModalComponent,\n modalOptions\n );\n }\n\n async cancelBulkOperation() {\n try {\n await this.modal.confirm(\n gettext('Cancel bulk operation'),\n gettext('You are about to cancel the bulk operation. Do you want to proceed?'),\n Status.DANGER,\n {},\n {},\n { eventName: BULK_OPERATION_EVENT }\n );\n await this.bulkOperationsService.deleteBulkOperation(this.bulkOperation.id);\n this.reload.emit();\n this.alert.success(gettext('Operation canceled.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n }\n\n retryFailedOperation() {\n const clonedBulk = cloneDeep(this.bulkOperation);\n\n // change the id to failedparentId similar to the logic in deviceBulkControl.service.js\n delete clonedBulk.groupId;\n clonedBulk.failedParentId = this.bulkOperation.id;\n\n // show reschdedule modal:\n const initialState = {\n bulkOperation: clonedBulk,\n isRetryOperation: true\n };\n const modalOptions = { initialState, class: 'modal-sm', backdrop: 'static' } as ModalOptions;\n this.bsModalRef = this.bsModalService.show(\n BulkOperationsRescheduleModalComponent,\n modalOptions\n );\n this.bsModalRef.content.closeSubject.subscribe(() => {\n this.reload.emit();\n });\n }\n\n async setToSuccessful() {\n try {\n await this.modal.confirm(\n gettext('Set manually bulk operation to SUCCESSFUL'),\n gettext(\n 'You are about to change the bulk operation status to SUCCESSFUL. Do you want to proceed?'\n ),\n Status.DANGER,\n {},\n {},\n { eventName: BULK_OPERATION_EVENT }\n );\n\n await this.bulkOperationsService.updateBulkOperation({\n id: this.bulkOperation.id,\n generalStatus: OperationBulkGeneralStatus.SUCCESSFUL\n });\n this.reload.emit();\n this.alert.success(gettext('Operation status changed to SUCCESSFUL.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n }\n\n openFailedOperation(failedParentId) {\n this.showFailedOperation.emit(failedParentId);\n }\n\n isStatusScheduled() {\n return this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.SCHEDULED;\n }\n\n isStatusExecutingOrExecutingWithError() {\n return (\n this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.EXECUTING ||\n this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.EXECUTING_WITH_ERROR\n );\n }\n\n allOperationsCreated() {\n return (\n this.bulkOperation.progress.all ===\n this.bulkOperation.progress.executing +\n this.bulkOperation.progress.failed +\n this.bulkOperation.progress.pending +\n this.bulkOperation.progress.successful\n );\n }\n\n isStatusCanceled() {\n return this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.CANCELED;\n }\n\n isStatusFailed() {\n return this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.FAILED;\n }\n}\n","<c8y-li\n class=\"c8y-list__item--double-actions\"\n [ngClass]=\"{ 'c8y-list__item--no-expand': !detailsCollapsed }\"\n [collapsed]=\"detailsCollapsed\"\n #listItem\n id=\"{{ bulkOperation.id }}\"\n>\n <c8y-li-icon>\n <i\n [c8yIcon]=\"getOperationStatusOptions().icon\"\n [ngClass]=\"getOperationStatusOptions().styleClass\"\n [tooltip]=\"getOperationStatusOptions().label | translate\"\n ></i>\n </c8y-li-icon>\n <div [ngClass]=\"{ 'content-flex-58': !readOnly, 'content-flex-50': readOnly }\">\n <div class=\"col-5\">\n <button\n class=\"btn-clean\"\n type=\"button\"\n title=\"{{ bulkOperation.id }} - {{\n bulkOperation.operationPrototype.description | translate\n }}\"\n (click)=\"listItem.toggleCollapsed()\"\n >\n <span class=\"text-truncate\">\n <strong class=\"text-muted m-r-4\">{{ bulkOperation.id }}</strong>\n {{ bulkOperation.operationPrototype.description | translate }}\n </span>\n </button>\n </div>\n <div class=\"flex-grow\">\n <div class=\"m-t-8 visible-xs\"></div>\n <hr *ngIf=\"isStatusCanceled(); else statusNotCanceled\" class=\"m-t-16 m-b-0 visible-xs\" />\n <ng-template #statusNotCanceled>\n <div\n [class]=\"progressBarClass\"\n title=\"{{ progressBarStatus | c8yNumber: 'floor':'1.0-0' }}%\"\n >\n <div\n [class]=\"progressBarColor\"\n role=\"progressbar\"\n [attr.aria-label]=\"'Progress' | translate\"\n aria-valuenow=\"0\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width.%]=\"progressBarStatus\"\n >\n <span *ngIf=\"progressBarStatus !== 0\">\n {{ progressBarStatus | c8yNumber: 'floor':'1.0-0' }}%\n </span>\n </div>\n </div>\n </ng-template>\n </div>\n <div class=\"col-4\">\n <div class=\"p-t-8 visible-xs\"></div>\n <small *ngIf=\"bulkOperation.progress.successful > 0\" class=\"m-r-8 icon-flex\">\n <i c8yIcon=\"check-circle\" class=\"text-success m-r-4\"></i>\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ bulkOperationsCountSuccessful: bulkOperation.progress.successful }\"\n >\n {{ bulkOperationsCountSuccessful }} successful\n </span>\n </small>\n <small *ngIf=\"bulkOperation.progress.failed > 0\" class=\"m-r-8 icon-flex\">\n <i c8yIcon=\"warning\" class=\"text-danger m-r-4\"></i>\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ bulkOperationsCountFailed: bulkOperation.progress.failed }\"\n >\n {{ bulkOperationsCountFailed }} failed\n </span>\n </small>\n <small *ngIf=\"bulkOperation.progress.executing > 0\" class=\"m-r-8 icon-flex\">\n <i c8yIcon=\"refresh\" class=\"text-primary m-r-4\"></i>\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ bulkOperationsCountExecuting: bulkOperation.progress.executing }\"\n >\n {{ bulkOperationsCountExecuting }} executing\n </span>\n </small>\n <small *ngIf=\"bulkOperation.progress.pending > 0\" class=\"m-r-8 icon-flex\">\n <i c8yIcon=\"clock-o\" class=\"text-primary m-r-4\"></i>\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ bulkOperationsCountPending: bulkOperation.progress.pending }\"\n >\n {{ bulkOperationsCountPending }} pending\n </span>\n </small>\n </div>\n </div>\n <div class=\"c8y-list__item__footer\">\n <div class=\"m-r-16\">\n <span class=\"text-label-small m-r-4\" translate>Start</span>\n <small class=\"icon-flex\">\n <i c8yIcon=\"calendar\" class=\"m-r-4\"></i>\n <span>\n {{ bulkOperation.startDate | c8yDate }}\n </span>\n </small>\n </div>\n <div class=\"m-r-16\" *ngIf=\"bulkOperationGeneralStatus.CANCELED !== bulkOperation.generalStatus\">\n <span class=\"text-label-small m-r-4\" translate>Finish</span>\n\n <small class=\"icon-flex\">\n <i c8yIcon=\"calendar\" class=\"m-r-4\"></i>\n <span>{{ finishDate | c8yDate }}</span>\n </small>\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ finishDatePopoverText | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"isStatusScheduled() || isStatusExecutingOrExecutingWithError()\"\n ></button>\n </div>\n </div>\n <ng-container *ngIf=\"!readOnly\">\n <c8y-li-action\n *ngIf=\"isStatusScheduled()\"\n label=\"{{ 'Edit schedule' | translate }}\"\n (click)=\"editSchedule()\"\n icon=\"pencil\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n ></c8y-li-action>\n <c8y-li-action\n *ngIf=\"\n isStatusScheduled() || (isStatusExecutingOrExecutingWithError() && !allOperationsCreated())\n \"\n label=\"{{ 'Cancel bulk operation' | translate }}\"\n (click)=\"cancelBulkOperation()\"\n icon=\"remove\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n ></c8y-li-action>\n <c8y-li-action\n *ngIf=\"isStatusFailed()\"\n label=\"{{ 'Retry failed operations' | translate }}\"\n (click)=\"retryFailedOperation()\"\n icon=\"repeat\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n ></c8y-li-action>\n <c8y-li-action\n *ngIf=\"isStatusFailed()\"\n label=\"{{ 'Set operation to SUCCESSFUL' | translate }}\"\n (click)=\"setToSuccessful()\"\n icon=\"check-circle\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n ></c8y-li-action>\n </ng-container>\n <c8y-li-collapse class=\"m-b-16\">\n <c8y-operation-details-tabs\n *ngIf=\"!listItem.collapsed\"\n [operation]=\"bulkOperation\"\n [readOnly]=\"readOnly\"\n (onRetryFailedOperations)=\"retryFailedOperation()\"\n (showFailedOperation)=\"openFailedOperation($event)\"\n [bulkOperationModalDetailsService]=\"bulkOperationListItemService\"\n ></c8y-operation-details-tabs>\n </c8y-li-collapse>\n</c8y-li>\n","import { NgModule } from '@angular/core';\nimport { BulkOperationListItemComponent } from './bulk-operation-list-item.component';\nimport { BulkOperationListItemService } from './bulk-operation-list-item.service';\nimport { BulkOperationWrapperComponent } from './bulk-operation-wrapper.component';\nimport { BULK_OPERATION_WRAPPER_MODAL_BODY_COMPONENT } from './bulk-operation-wrapper.model';\nimport { ModalBodyHostDirective } from './modal-body-host.directive';\nimport { BulkOperationsRescheduleModalComponent } from './modals/bulk-operations-reschedule-modal.component';\n\n/**\n * This module allows for displaying the list item of a bulk operation with its details.\n */\n@NgModule({\n imports: [\n BulkOperationListItemComponent,\n BulkOperationsRescheduleModalComponent,\n BulkOperationWrapperComponent,\n ModalBodyHostDirective\n ],\n providers: [\n BulkOperationListItemService,\n {\n provide: BULK_OPERATION_WRAPPER_MODAL_BODY_COMPONENT,\n useValue: {\n component: BulkOperationListItemComponent,\n config: { detailsCollapsed: false, readOnly: true }\n }\n }\n ],\n exports: [\n BulkOperationListItemComponent,\n BulkOperationsRescheduleModalComponent,\n BulkOperationWrapperComponent\n ]\n})\nexport class BulkOperationListItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i1.BulkOperationListItemService","i4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-operations-bulk-operation-list-item.mjs","sources":["../../operations/bulk-operation-list-item/bulk-operation-list-item.model.ts","../../operations/bulk-operation-list-item/bulk-operation-wrapper.model.ts","../../operations/bulk-operation-list-item/modal-body-host.directive.ts","../../operations/bulk-operation-list-item/bulk-operation-wrapper.component.ts","../../operations/bulk-operation-list-item/bulk-operation-wrapper.component.html","../../operations/bulk-operation-list-item/bulk-operation-list-item.service.ts","../../operations/bulk-operation-list-item/modals/bulk-operations-reschedule-modal.component.ts","../../operations/bulk-operation-list-item/modals/bulk-operations-reschedule-modal.component.html","../../operations/bulk-operation-list-item/bulk-operation-list-item.component.ts","../../operations/bulk-operation-list-item/bulk-operation-list-item.component.html","../../operations/bulk-operation-list-item/bulk-operation-list-item.module.ts","../../operations/bulk-operation-list-item/c8y-ngx-components-operations-bulk-operation-list-item.ts"],"sourcesContent":["import { OperationBulkGeneralStatus } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components';\nimport { OperationStatusOption } from '@c8y/ngx-components/operations/shared';\n\nexport type OperationStatusOptionsMap = {\n [key in keyof typeof BULK_OPERATION_STATUS_LABELS]?: OperationStatusOption;\n};\n\nexport const BULK_OPERATION_STATUS_LABELS = {\n SCHEDULED: gettext('Scheduled'),\n EXECUTING: gettext('Executing'),\n CANCELED: gettext('Canceled'),\n FAILED: gettext('Completed with failures'),\n SUCCESSFUL: gettext('Completed successfully'),\n DELETED: gettext('Deleted')\n};\n\nexport const BULK_OPERATION_STATUS_OPTIONS: OperationStatusOptionsMap = {\n SCHEDULED: {\n label: BULK_OPERATION_STATUS_LABELS.SCHEDULED,\n generalStatuses: [OperationBulkGeneralStatus.SCHEDULED],\n icon: 'calendar',\n styleClass: 'text-info'\n },\n EXECUTING: {\n label: BULK_OPERATION_STATUS_LABELS.EXECUTING,\n generalStatuses: [\n OperationBulkGeneralStatus.EXECUTING,\n OperationBulkGeneralStatus.EXECUTING_WITH_ERROR\n ],\n icon: 'refresh',\n styleClass: 'text-primary'\n },\n DELETED: {\n label: BULK_OPERATION_STATUS_LABELS.DELETED,\n generalStatuses: [OperationBulkGeneralStatus.DELETED],\n icon: 'delete-document',\n styleClass: 'text-muted'\n },\n CANCELED: {\n label: BULK_OPERATION_STATUS_LABELS.CANCELED,\n generalStatuses: [OperationBulkGeneralStatus.CANCELED],\n icon: 'ban',\n styleClass: 'text-primary'\n },\n FAILED: {\n label: BULK_OPERATION_STATUS_LABELS.FAILED,\n generalStatuses: [OperationBulkGeneralStatus.FAILED],\n icon: 'exclamation-circle',\n styleClass: 'text-danger'\n },\n SUCCESSFUL: {\n label: BULK_OPERATION_STATUS_LABELS.SUCCESSFUL,\n generalStatuses: [OperationBulkGeneralStatus.SUCCESSFUL],\n icon: 'check-circle',\n styleClass: 'text-success'\n }\n};\n","import { EventEmitter, InjectionToken, Type } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\n\nexport const BULK_OPERATION_WRAPPER_MODAL_BODY_COMPONENT =\n new InjectionToken<BulkOperationDetailsModalBodyConfiguration>(\n 'BulkOperationWrapperModalBodyComponent'\n );\n\nexport interface BulkOperationDetailsModalBodyConfiguration {\n component: Type<BulkOperationDetailsModalBody>;\n config?: object;\n}\n\nexport interface BulkOperationDetailsModalBody {\n bulkOperation: Partial<IOperationBulk>;\n showFailedOperation: EventEmitter<any>;\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({ selector: '[modalBodyHost]' })\nexport class ModalBodyHostDirective {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import { Component, Inject, Input, OnDestroy, OnInit, Optional, ViewChild } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { assign } from 'lodash-es';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n BulkOperationDetailsModalBody,\n BulkOperationDetailsModalBodyConfiguration,\n BULK_OPERATION_WRAPPER_MODAL_BODY_COMPONENT\n} from './bulk-operation-wrapper.model';\nimport { ModalBodyHostDirective } from './modal-body-host.directive';\nimport { C8yTranslatePipe } from '@c8y/ngx-components';\n@Component({\n selector: 'c8y-bulk-operations-wrapper',\n templateUrl: './bulk-operation-wrapper.component.html',\n imports: [ModalBodyHostDirective, C8yTranslatePipe]\n})\nexport class BulkOperationWrapperComponent implements OnInit, OnDestroy {\n @Input() bulkOperation: Partial<IOperationBulk>;\n\n @ViewChild(ModalBodyHostDirective, { static: true })\n modalBodyHost: ModalBodyHostDirective;\n\n private destroyed$: Subject<void> = new Subject();\n\n constructor(\n public bulkOperationsService: BulkOperationsService,\n public modalRef: BsModalRef,\n private modalService: BsModalService,\n @Optional()\n @Inject(BULK_OPERATION_WRAPPER_MODAL_BODY_COMPONENT)\n private modalBodyConfig: BulkOperationDetailsModalBodyConfiguration\n ) {}\n\n ngOnInit(): void {\n if (this.modalBodyConfig) {\n const componentRef =\n this.modalBodyHost.viewContainerRef.createComponent<BulkOperationDetailsModalBody>(\n this.modalBodyConfig.component\n );\n assign(componentRef.instance, this.modalBodyConfig.config);\n componentRef.instance.bulkOperation = this.bulkOperation;\n componentRef.instance.showFailedOperation\n .pipe(takeUntil(this.destroyed$))\n .subscribe(event => this.openDetails(event));\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n // openDetails function needs to be defined in the both places (component and the service) to avoid circular dependency.\n async openDetails(bulkOperationId: string | number) {\n const bulkOperation: IOperationBulk = (\n await this.bulkOperationsService.getBulkOperationById(bulkOperationId)\n ).data;\n const initialState = { bulkOperation };\n this.modalService.show(BulkOperationWrapperComponent, {\n initialState,\n class: 'modal-lg',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title'\n });\n }\n}\n","<div class=\"viewport-modal\">\n <div class=\"modal-header\">\n <h3 id=\"modal-title\">{{ 'Bulk operation details' | translate }}</h3>\n </div>\n\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <ng-container modalBodyHost></ng-container>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Close' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"modalRef.hide()\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport { BulkOperationModalDetailsService } from '@c8y/ngx-components/operations/bulk-operation-modal-details';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BulkOperationWrapperComponent } from './bulk-operation-wrapper.component';\n\n@Injectable({ providedIn: 'root' })\nexport class BulkOperationListItemService implements BulkOperationModalDetailsService {\n constructor(\n private bulkOperationsService: BulkOperationsService,\n private modalService: BsModalService\n ) {}\n\n async openDetails(bulkOperationId: string | number) {\n const bulkOperation: IOperationBulk = (\n await this.bulkOperationsService.getBulkOperationById(bulkOperationId)\n ).data;\n const initialState = { bulkOperation };\n this.modalService.show(BulkOperationWrapperComponent, {\n initialState,\n class: 'modal-lg',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title'\n });\n }\n}\n","import { Component, HostListener, OnInit } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport {\n AlertService,\n GainsightService,\n gettext,\n IconDirective,\n ProductExperienceDirective,\n C8yTranslateDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport {\n OperationSchedule,\n OperationSchedulerComponent\n} from '@c8y/ngx-components/operations/bulk-operation-scheduler';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BULK_OPERATION_EVENT } from '@c8y/ngx-components/operations/product-experience';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { OperationSummaryComponent } from '@c8y/ngx-components/operations/operation-summary';\nimport { FormsModule } from '@angular/forms';\n@Component({\n selector: 'c8y-bulk-operations-reschedule-modal',\n templateUrl: 'bulk-operations-reschedule-modal.component.html',\n imports: [\n IconDirective,\n OperationSummaryComponent,\n OperationSchedulerComponent,\n FormsModule,\n ProductExperienceDirective,\n C8yTranslateDirective,\n C8yTranslatePipe\n ]\n})\nexport class BulkOperationsRescheduleModalComponent implements OnInit {\n BULK_OPERATION_EVENT = BULK_OPERATION_EVENT;\n closeSubject: Subject<IOperationBulk> = new Subject();\n dateAndDelay: OperationSchedule;\n bulkOperation: Partial<IOperationBulk>;\n isRetryOperation: boolean;\n modalTitle: string;\n\n private readonly CARRIAGE_RETURN_CODE = 'Escape';\n\n constructor(\n public bsModalRef: BsModalRef,\n private bulkOperationsService: BulkOperationsService,\n private alert: AlertService,\n private gainsightService: GainsightService\n ) {}\n\n @HostListener('window:keyup', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n if (event.code === this.CARRIAGE_RETURN_CODE) {\n this.gainsightService.triggerEvent('modalDialog', {\n title: this.modalTitle,\n result: 'Cancel'\n });\n }\n }\n\n ngOnInit() {\n this.modalTitle = this.getTitle();\n }\n\n onDateAndDelaySelect($event) {\n this.dateAndDelay = $event;\n }\n\n getTitle() {\n return this.isRetryOperation ? gettext('Retry operation') : gettext('Edit schedule');\n }\n\n onCancel() {\n this.bsModalRef.hide();\n }\n\n async onSave() {\n let newBulkOperation;\n this.bulkOperation.startDate = this.dateAndDelay.scheduledDate.toISOString();\n this.bulkOperation.creationRamp = this.dateAndDelay.delayInSeconds;\n\n if (this.isRetryOperation) {\n try {\n newBulkOperation = await this.bulkOperationsService.createBulkOperation(this.bulkOperation);\n this.alert.success(gettext('Successfully rescheduled for a retry.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n } else {\n try {\n newBulkOperation = await this.bulkOperationsService.updateBulkOperation(this.bulkOperation);\n this.alert.success(gettext('Successfully rescheduled.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n }\n\n // send back to component from which modal was called\n this.closeSubject.next(newBulkOperation.data);\n this.bsModalRef.hide();\n }\n}\n","<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i c8yIcon=\"c8y-energy\"></i>\n <h4 id=\"modal-title\">{{ modalTitle | translate }}</h4>\n </div>\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"modal-body\">\n <div class=\"text-center\">\n <c8y-operation-summary\n [description]=\"bulkOperation.operationPrototype.description\"\n ></c8y-operation-summary>\n </div>\n <div class=\"p-t-16 center-block\" style=\"max-width: 300px\">\n <c8y-operation-scheduler\n [(ngModel)]=\"dateAndDelay\"\n #scheduler=\"ngModel\"\n ></c8y-operation-scheduler>\n </div>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n (click)=\"onCancel()\"\n type=\"button\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n [actionData]=\"{ title: modalTitle, result: 'Cancel' }\"\n >\n <span translate>Cancel</span>\n </button>\n <button\n id=\"save-btn\"\n (click)=\"onSave()\"\n type=\"button\"\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n [disabled]=\"scheduler?.control?.errors\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n [actionData]=\"{ title: modalTitle, result: 'Save' }\"\n >\n <span translate>Save</span>\n </button>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { IOperationBulk, OperationBulkGeneralStatus } from '@c8y/client';\nimport {\n AlertService,\n gettext,\n ListItemComponent,\n ModalService,\n Status,\n ListItemIconComponent,\n IconDirective,\n C8yTranslateDirective,\n ListItemActionComponent,\n ProductExperienceDirective,\n ListItemCollapseComponent,\n C8yTranslatePipe,\n DatePipe,\n NumberPipe\n} from '@c8y/ngx-components';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BULK_OPERATION_EVENT } from '@c8y/ngx-components/operations/product-experience';\nimport { assign, cloneDeep, find, values } from 'lodash-es';\nimport { BsModalRef, BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\nimport {\n BULK_OPERATION_STATUS_OPTIONS,\n OperationStatusOptionsMap\n} from './bulk-operation-list-item.model';\nimport { BulkOperationListItemService } from './bulk-operation-list-item.service';\nimport { BulkOperationsRescheduleModalComponent } from './modals/bulk-operations-reschedule-modal.component';\nimport { NgClass, NgIf } from '@angular/common';\nimport { TooltipDirective } from 'ngx-bootstrap/tooltip';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\nimport { OperationDetailsTabsComponent } from '@c8y/ngx-components/operations/operations-list-item-details';\n\n@Component({\n selector: 'c8y-bulk-operation-list-item',\n templateUrl: './bulk-operation-list-item.component.html',\n imports: [\n ListItemComponent,\n NgClass,\n ListItemIconComponent,\n IconDirective,\n TooltipDirective,\n NgIf,\n C8yTranslateDirective,\n PopoverDirective,\n ListItemActionComponent,\n ProductExperienceDirective,\n ListItemCollapseComponent,\n OperationDetailsTabsComponent,\n C8yTranslatePipe,\n DatePipe,\n NumberPipe\n ]\n})\nexport class BulkOperationListItemComponent implements OnInit, OnChanges {\n BULK_OPERATION_EVENT = BULK_OPERATION_EVENT;\n @Input()\n bulkOperation: Partial<IOperationBulk>;\n @Input()\n detailsCollapsed = true;\n @Input()\n readOnly = false;\n @Output() showFailedOperation = new EventEmitter();\n @Output() reload: EventEmitter<any> = new EventEmitter();\n @ViewChild('listItem', { static: true }) listItem: ListItemComponent;\n iconClass: string;\n finishDate: number;\n refreshLoading = false;\n bulkOperationGeneralStatus = OperationBulkGeneralStatus;\n BULK_OPERATION_STATUS_OPTIONS: OperationStatusOptionsMap = BULK_OPERATION_STATUS_OPTIONS;\n bsModalRef: BsModalRef;\n finishDatePopoverText: string = gettext(\n 'Approximate date, estimated based on the bulk operation settings.'\n );\n progressBarClass = 'progress';\n progressBarColor: string;\n progressBarStatus = 0;\n\n constructor(\n public bulkOperationListItemService: BulkOperationListItemService,\n private bulkOperationsService: BulkOperationsService,\n private modal: ModalService,\n private alert: AlertService,\n private bsModalService: BsModalService\n ) {}\n\n ngOnInit() {\n this.finishDate = this.calculateFinishDateMs();\n this.setProgressBar();\n }\n\n getOperationStatusOptions() {\n const statusOptions = values(BULK_OPERATION_STATUS_OPTIONS);\n return find(statusOptions, options =>\n options.generalStatuses.includes(this.bulkOperation.generalStatus)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.bulkOperation && !changes.bulkOperation.firstChange) {\n this.setProgressBar();\n }\n }\n calculateFinishDateMs(): number {\n const startDateMs: number = new Date(this.bulkOperation.startDate).getTime();\n const creationRampMs: number = this.bulkOperation.creationRamp * 1000;\n\n return startDateMs + creationRampMs * this.bulkOperation.progress.all;\n }\n\n progressBarProgressFn() {\n return (\n ((this.bulkOperation.progress.successful + this.bulkOperation.progress.failed) /\n this.bulkOperation.progress.all) *\n 100\n );\n }\n\n setProgressBar() {\n const staticContentOfClass = 'progress-bar progress-striped active progress-bar';\n\n const progressBarState = {\n EXECUTING: {\n progressBarClass: 'progress progress-striped active',\n progressBarColor: `${staticContentOfClass}-primary`,\n progressBarStatus: this.progressBarProgressFn()\n },\n EXECUTING_WITH_ERROR: {\n progressBarClass: 'progress progress-striped active',\n progressBarColor: `${staticContentOfClass}-danger`,\n progressBarStatus: this.progressBarProgressFn()\n },\n FAILED: {\n progressBarClass: 'progress',\n progressBarColor: `${staticContentOfClass}-danger`,\n progressBarStatus: 100\n },\n SUCCESSFUL: {\n progressBarClass: 'progress',\n progressBarColor: `${staticContentOfClass}-success`,\n progressBarStatus: 100\n }\n };\n\n assign(this, progressBarState[this.bulkOperation.generalStatus]);\n }\n\n editSchedule() {\n const rescheduledOperation = cloneDeep(this.bulkOperation);\n const initialState = {\n bulkOperation: rescheduledOperation\n };\n const modalOptions = {\n initialState,\n class: 'modal-sm',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title',\n backdrop: 'static'\n } as ModalOptions;\n this.bsModalRef = this.bsModalService.show(\n BulkOperationsRescheduleModalComponent,\n modalOptions\n );\n }\n\n async cancelBulkOperation() {\n try {\n await this.modal.confirm(\n gettext('Cancel bulk operation'),\n gettext('You are about to cancel the bulk operation. Do you want to proceed?'),\n Status.DANGER,\n {},\n {},\n { eventName: BULK_OPERATION_EVENT }\n );\n await this.bulkOperationsService.deleteBulkOperation(this.bulkOperation.id);\n this.reload.emit();\n this.alert.success(gettext('Operation canceled.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n }\n\n retryFailedOperation() {\n const clonedBulk = cloneDeep(this.bulkOperation);\n\n // change the id to failedparentId similar to the logic in deviceBulkControl.service.js\n delete clonedBulk.groupId;\n clonedBulk.failedParentId = this.bulkOperation.id;\n\n // show reschdedule modal:\n const initialState = {\n bulkOperation: clonedBulk,\n isRetryOperation: true\n };\n const modalOptions = { initialState, class: 'modal-sm', backdrop: 'static' } as ModalOptions;\n this.bsModalRef = this.bsModalService.show(\n BulkOperationsRescheduleModalComponent,\n modalOptions\n );\n this.bsModalRef.content.closeSubject.subscribe(() => {\n this.reload.emit();\n });\n }\n\n async setToSuccessful() {\n try {\n await this.modal.confirm(\n gettext('Set manually bulk operation to SUCCESSFUL'),\n gettext(\n 'You are about to change the bulk operation status to SUCCESSFUL. Do you want to proceed?'\n ),\n Status.DANGER,\n {},\n {},\n { eventName: BULK_OPERATION_EVENT }\n );\n\n await this.bulkOperationsService.updateBulkOperation({\n id: this.bulkOperation.id,\n generalStatus: OperationBulkGeneralStatus.SUCCESSFUL\n });\n this.reload.emit();\n this.alert.success(gettext('Operation status changed to SUCCESSFUL.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n }\n\n openFailedOperation(failedParentId) {\n this.showFailedOperation.emit(failedParentId);\n }\n\n isStatusScheduled() {\n return this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.SCHEDULED;\n }\n\n isStatusExecutingOrExecutingWithError() {\n return (\n this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.EXECUTING ||\n this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.EXECUTING_WITH_ERROR\n );\n }\n\n allOperationsCreated() {\n return (\n this.bulkOperation.progress.all ===\n this.bulkOperation.progress.executing +\n this.bulkOperation.progress.failed +\n this.bulkOperation.progress.pending +\n this.bulkOperation.progress.successful\n );\n }\n\n isStatusCanceled() {\n return this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.CANCELED;\n }\n\n isStatusFailed() {\n return this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.FAILED;\n }\n}\n","<c8y-li\n class=\"c8y-list__item--double-actions\"\n [ngClass]=\"{ 'c8y-list__item--no-expand': !detailsCollapsed }\"\n [collapsed]=\"detailsCollapsed\"\n #listItem\n id=\"{{ bulkOperation.id }}\"\n>\n <c8y-li-icon>\n <i\n [c8yIcon]=\"getOperationStatusOptions().icon\"\n [ngClass]=\"getOperationStatusOptions().styleClass\"\n [tooltip]=\"getOperationStatusOptions().label | translate\"\n ></i>\n </c8y-li-icon>\n <div [ngClass]=\"{ 'content-flex-58': !readOnly, 'content-flex-50': readOnly }\">\n <div class=\"col-5\">\n <button\n class=\"btn-clean\"\n type=\"button\"\n title=\"{{ bulkOperation.id }} - {{\n bulkOperation.operationPrototype.description | translate\n }}\"\n (click)=\"listItem.toggleCollapsed()\"\n >\n <span class=\"text-truncate\">\n <strong class=\"text-muted m-r-4\">{{ bulkOperation.id }}</strong>\n {{ bulkOperation.operationPrototype.description | translate }}\n </span>\n </button>\n </div>\n <div class=\"flex-grow\">\n <div class=\"m-t-8 visible-xs\"></div>\n <hr *ngIf=\"isStatusCanceled(); else statusNotCanceled\" class=\"m-t-16 m-b-0 visible-xs\" />\n <ng-template #statusNotCanceled>\n <div\n [class]=\"progressBarClass\"\n title=\"{{ progressBarStatus | c8yNumber: 'floor':'1.0-0' }}%\"\n >\n <div\n [class]=\"progressBarColor\"\n role=\"progressbar\"\n [attr.aria-label]=\"'Progress' | translate\"\n aria-valuenow=\"0\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width.%]=\"progressBarStatus\"\n >\n <span *ngIf=\"progressBarStatus !== 0\">\n {{ progressBarStatus | c8yNumber: 'floor':'1.0-0' }}%\n </span>\n </div>\n </div>\n </ng-template>\n </div>\n <div class=\"col-4\">\n <div class=\"p-t-8 visible-xs\"></div>\n <small *ngIf=\"bulkOperation.progress.successful > 0\" class=\"m-r-8 icon-flex\">\n <i c8yIcon=\"check-circle\" class=\"text-success m-r-4\"></i>\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ bulkOperationsCountSuccessful: bulkOperation.progress.successful }\"\n >\n {{ bulkOperationsCountSuccessful }} successful\n </span>\n </small>\n <small *ngIf=\"bulkOperation.progress.failed > 0\" class=\"m-r-8 icon-flex\">\n <i c8yIcon=\"warning\" class=\"text-danger m-r-4\"></i>\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ bulkOperationsCountFailed: bulkOperation.progress.failed }\"\n >\n {{ bulkOperationsCountFailed }} failed\n </span>\n </small>\n <small *ngIf=\"bulkOperation.progress.executing > 0\" class=\"m-r-8 icon-flex\">\n <i c8yIcon=\"refresh\" class=\"text-primary m-r-4\"></i>\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ bulkOperationsCountExecuting: bulkOperation.progress.executing }\"\n >\n {{ bulkOperationsCountExecuting }} executing\n </span>\n </small>\n <small *ngIf=\"bulkOperation.progress.pending > 0\" class=\"m-r-8 icon-flex\">\n <i c8yIcon=\"clock-o\" class=\"text-primary m-r-4\"></i>\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ bulkOperationsCountPending: bulkOperation.progress.pending }\"\n >\n {{ bulkOperationsCountPending }} pending\n </span>\n </small>\n </div>\n </div>\n <div class=\"c8y-list__item__footer\">\n <div class=\"m-r-16\">\n <span class=\"text-label-small m-r-4\" translate>Start</span>\n <small class=\"icon-flex\">\n <i c8yIcon=\"calendar\" class=\"m-r-4\"></i>\n <span>\n {{ bulkOperation.startDate | c8yDate }}\n </span>\n </small>\n </div>\n <div class=\"m-r-16\" *ngIf=\"bulkOperationGeneralStatus.CANCELED !== bulkOperation.generalStatus\">\n <span class=\"text-label-small m-r-4\" translate>Finish</span>\n\n <small class=\"icon-flex\">\n <i c8yIcon=\"calendar\" class=\"m-r-4\"></i>\n <span>{{ finishDate | c8yDate }}</span>\n </small>\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ finishDatePopoverText | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"isStatusScheduled() || isStatusExecutingOrExecutingWithError()\"\n ></button>\n </div>\n </div>\n <ng-container *ngIf=\"!readOnly\">\n <c8y-li-action\n *ngIf=\"isStatusScheduled()\"\n label=\"{{ 'Edit schedule' | translate }}\"\n (click)=\"editSchedule()\"\n icon=\"pencil\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n ></c8y-li-action>\n <c8y-li-action\n *ngIf=\"\n isStatusScheduled() || (isStatusExecutingOrExecutingWithError() && !allOperationsCreated())\n \"\n label=\"{{ 'Cancel bulk operation' | translate }}\"\n (click)=\"cancelBulkOperation()\"\n icon=\"remove\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n ></c8y-li-action>\n <c8y-li-action\n *ngIf=\"isStatusFailed()\"\n label=\"{{ 'Retry failed operations' | translate }}\"\n (click)=\"retryFailedOperation()\"\n icon=\"repeat\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n ></c8y-li-action>\n <c8y-li-action\n *ngIf=\"isStatusFailed()\"\n label=\"{{ 'Set operation to SUCCESSFUL' | translate }}\"\n (click)=\"setToSuccessful()\"\n icon=\"check-circle\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n ></c8y-li-action>\n </ng-container>\n <c8y-li-collapse class=\"m-b-16\">\n <c8y-operation-details-tabs\n *ngIf=\"!listItem.collapsed\"\n [operation]=\"bulkOperation\"\n [readOnly]=\"readOnly\"\n (onRetryFailedOperations)=\"retryFailedOperation()\"\n (showFailedOperation)=\"openFailedOperation($event)\"\n [bulkOperationModalDetailsService]=\"bulkOperationListItemService\"\n ></c8y-operation-details-tabs>\n </c8y-li-collapse>\n</c8y-li>\n","import { NgModule } from '@angular/core';\nimport { BulkOperationListItemComponent } from './bulk-operation-list-item.component';\nimport { BulkOperationListItemService } from './bulk-operation-list-item.service';\nimport { BulkOperationWrapperComponent } from './bulk-operation-wrapper.component';\nimport { BULK_OPERATION_WRAPPER_MODAL_BODY_COMPONENT } from './bulk-operation-wrapper.model';\nimport { ModalBodyHostDirective } from './modal-body-host.directive';\nimport { BulkOperationsRescheduleModalComponent } from './modals/bulk-operations-reschedule-modal.component';\n\n/**\n * This module allows for displaying the list item of a bulk operation with its details.\n */\n@NgModule({\n imports: [\n BulkOperationListItemComponent,\n BulkOperationsRescheduleModalComponent,\n BulkOperationWrapperComponent,\n ModalBodyHostDirective\n ],\n providers: [\n BulkOperationListItemService,\n {\n provide: BULK_OPERATION_WRAPPER_MODAL_BODY_COMPONENT,\n useValue: {\n component: BulkOperationListItemComponent,\n config: { detailsCollapsed: false, readOnly: true }\n }\n }\n ],\n exports: [\n BulkOperationListItemComponent,\n BulkOperationsRescheduleModalComponent,\n BulkOperationWrapperComponent\n ]\n})\nexport class BulkOperationListItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i1.BulkOperationListItemService","i4"],"mappings":";;;;;;;;;;;;;;;;;;;;AAQO,MAAM,4BAA4B,GAAG;AAC1C,IAAA,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC;AAC/B,IAAA,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC;AAC/B,IAAA,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;AAC7B,IAAA,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC;AAC1C,IAAA,UAAU,EAAE,OAAO,CAAC,wBAAwB,CAAC;AAC7C,IAAA,OAAO,EAAE,OAAO,CAAC,SAAS;;AAGrB,MAAM,6BAA6B,GAA8B;AACtE,IAAA,SAAS,EAAE;QACT,KAAK,EAAE,4BAA4B,CAAC,SAAS;AAC7C,QAAA,eAAe,EAAE,CAAC,0BAA0B,CAAC,SAAS,CAAC;AACvD,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,UAAU,EAAE;AACb,KAAA;AACD,IAAA,SAAS,EAAE;QACT,KAAK,EAAE,4BAA4B,CAAC,SAAS;AAC7C,QAAA,eAAe,EAAE;AACf,YAAA,0BAA0B,CAAC,SAAS;AACpC,YAAA,0BAA0B,CAAC;AAC5B,SAAA;AACD,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,UAAU,EAAE;AACb,KAAA;AACD,IAAA,OAAO,EAAE;QACP,KAAK,EAAE,4BAA4B,CAAC,OAAO;AAC3C,QAAA,eAAe,EAAE,CAAC,0BAA0B,CAAC,OAAO,CAAC;AACrD,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,UAAU,EAAE;AACb,KAAA;AACD,IAAA,QAAQ,EAAE;QACR,KAAK,EAAE,4BAA4B,CAAC,QAAQ;AAC5C,QAAA,eAAe,EAAE,CAAC,0BAA0B,CAAC,QAAQ,CAAC;AACtD,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,UAAU,EAAE;AACb,KAAA;AACD,IAAA,MAAM,EAAE;QACN,KAAK,EAAE,4BAA4B,CAAC,MAAM;AAC1C,QAAA,eAAe,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC;AACpD,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,UAAU,EAAE;AACb,KAAA;AACD,IAAA,UAAU,EAAE;QACV,KAAK,EAAE,4BAA4B,CAAC,UAAU;AAC9C,QAAA,eAAe,EAAE,CAAC,0BAA0B,CAAC,UAAU,CAAC;AACxD,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,UAAU,EAAE;AACb;;;ACrDI,MAAM,2CAA2C,GACtD,IAAI,cAAc,CAChB,wCAAwC,CACzC;;MCHU,sBAAsB,CAAA;AACjC,IAAA,WAAA,CAAmB,gBAAkC,EAAA;QAAlC,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IAAqB;+GAD7C,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,SAAS;mBAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE;;;MCiB7B,6BAA6B,CAAA;AAQxC,IAAA,WAAA,CACS,qBAA4C,EAC5C,QAAoB,EACnB,YAA4B,EAG5B,eAA2D,EAAA;QAL5D,IAAA,CAAA,qBAAqB,GAArB,qBAAqB;QACrB,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACP,IAAA,CAAA,YAAY,GAAZ,YAAY;QAGZ,IAAA,CAAA,eAAe,GAAf,eAAe;AARjB,QAAA,IAAA,CAAA,UAAU,GAAkB,IAAI,OAAO,EAAE;IAS9C;IAEH,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,MAAM,YAAY,GAChB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,eAAe,CACjD,IAAI,CAAC,eAAe,CAAC,SAAS,CAC/B;YACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAC1D,YAAY,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;YACxD,YAAY,CAAC,QAAQ,CAAC;AACnB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/B,iBAAA,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChD;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;IAC5B;;IAGA,MAAM,WAAW,CAAC,eAAgC,EAAA;AAChD,QAAA,MAAM,aAAa,GAAmB,CACpC,MAAM,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,eAAe,CAAC,EACtE,IAAI;AACN,QAAA,MAAM,YAAY,GAAG,EAAE,aAAa,EAAE;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,6BAA6B,EAAE;YACpD,YAAY;AACZ,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,eAAe,EAAE,YAAY;AAC7B,YAAA,cAAc,EAAE;AACjB,SAAA,CAAC;IACJ;AAhDW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,+GAa9B,2CAA2C,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAb1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,kLAG7B,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBnC,2gBAoBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDHY,sBAAsB,uDAAE,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEvC,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAAA,OAAA,EAE9B,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,2gBAAA,EAAA;;0BAchD;;0BACA,MAAM;2BAAC,2CAA2C;yCAZ5C,aAAa,EAAA,CAAA;sBAArB;gBAGD,aAAa,EAAA,CAAA;sBADZ,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;MEdxC,4BAA4B,CAAA;IACvC,WAAA,CACU,qBAA4C,EAC5C,YAA4B,EAAA;QAD5B,IAAA,CAAA,qBAAqB,GAArB,qBAAqB;QACrB,IAAA,CAAA,YAAY,GAAZ,YAAY;IACnB;IAEH,MAAM,WAAW,CAAC,eAAgC,EAAA;AAChD,QAAA,MAAM,aAAa,GAAmB,CACpC,MAAM,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,eAAe,CAAC,EACtE,IAAI;AACN,QAAA,MAAM,YAAY,GAAG,EAAE,aAAa,EAAE;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,6BAA6B,EAAE;YACpD,YAAY;AACZ,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,eAAe,EAAE,YAAY;AAC7B,YAAA,cAAc,EAAE;AACjB,SAAA,CAAC;IACJ;+GAjBW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cADf,MAAM,EAAA,CAAA,CAAA;;4FACnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MC2BrB,sCAAsC,CAAA;AAUjD,IAAA,WAAA,CACS,UAAsB,EACrB,qBAA4C,EAC5C,KAAmB,EACnB,gBAAkC,EAAA;QAHnC,IAAA,CAAA,UAAU,GAAV,UAAU;QACT,IAAA,CAAA,qBAAqB,GAArB,qBAAqB;QACrB,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAb1B,IAAA,CAAA,oBAAoB,GAAG,oBAAoB;AAC3C,QAAA,IAAA,CAAA,YAAY,GAA4B,IAAI,OAAO,EAAE;QAMpC,IAAA,CAAA,oBAAoB,GAAG,QAAQ;IAO7C;AAGH,IAAA,OAAO,CAAC,KAAoB,EAAA;QAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE;AAC5C,YAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,aAAa,EAAE;gBAChD,KAAK,EAAE,IAAI,CAAC,UAAU;AACtB,gBAAA,MAAM,EAAE;AACT,aAAA,CAAC;QACJ;IACF;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE;IACnC;AAEA,IAAA,oBAAoB,CAAC,MAAM,EAAA;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM;IAC5B;IAEA,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IACtF;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;IACxB;AAEA,IAAA,MAAM,MAAM,GAAA;AACV,QAAA,IAAI,gBAAgB;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,EAAE;QAC5E,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc;AAElE,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI;AACF,gBAAA,gBAAgB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC3F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;YACtE;YAAE,OAAO,EAAE,EAAE;AACX,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACjC;QACF;aAAO;AACL,YAAA,IAAI;AACF,gBAAA,gBAAgB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC3F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;YAC1D;YAAE,OAAO,EAAE,EAAE;AACX,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACjC;QACF;;QAGA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC7C,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;IACxB;+GAnEW,sCAAsC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sCAAsC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClCnD,q+CA+CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDtBI,aAAa,2EACb,yBAAyB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACzB,2BAA2B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC3B,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,0BAA0B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC1B,qBAAqB,mEACrB,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGP,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBAblD,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sCAAsC,EAAA,OAAA,EAEvC;wBACP,aAAa;wBACb,yBAAyB;wBACzB,2BAA2B;wBAC3B,WAAW;wBACX,0BAA0B;wBAC1B,qBAAqB;wBACrB;AACD,qBAAA,EAAA,QAAA,EAAA,q+CAAA,EAAA;6KAoBD,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,cAAc,EAAE,CAAC,QAAQ,CAAC;;;MEY7B,8BAA8B,CAAA;IAwBzC,WAAA,CACS,4BAA0D,EACzD,qBAA4C,EAC5C,KAAmB,EACnB,KAAmB,EACnB,cAA8B,EAAA;QAJ/B,IAAA,CAAA,4BAA4B,GAA5B,4BAA4B;QAC3B,IAAA,CAAA,qBAAqB,GAArB,qBAAqB;QACrB,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,cAAc,GAAd,cAAc;QA5BxB,IAAA,CAAA,oBAAoB,GAAG,oBAAoB;QAI3C,IAAA,CAAA,gBAAgB,GAAG,IAAI;QAEvB,IAAA,CAAA,QAAQ,GAAG,KAAK;AACN,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE;AACxC,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,EAAE;QAIxD,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,0BAA0B,GAAG,0BAA0B;QACvD,IAAA,CAAA,6BAA6B,GAA8B,6BAA6B;AAExF,QAAA,IAAA,CAAA,qBAAqB,GAAW,OAAO,CACrC,mEAAmE,CACpE;QACD,IAAA,CAAA,gBAAgB,GAAG,UAAU;QAE7B,IAAA,CAAA,iBAAiB,GAAG,CAAC;IAQlB;IAEH,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,EAAE;QAC9C,IAAI,CAAC,cAAc,EAAE;IACvB;IAEA,yBAAyB,GAAA;AACvB,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,6BAA6B,CAAC;QAC3D,OAAO,IAAI,CAAC,aAAa,EAAE,OAAO,IAChC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CACnE;IACH;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE;YAC/D,IAAI,CAAC,cAAc,EAAE;QACvB;IACF;IACA,qBAAqB,GAAA;AACnB,QAAA,MAAM,WAAW,GAAW,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;QAC5E,MAAM,cAAc,GAAW,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI;QAErE,OAAO,WAAW,GAAG,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG;IACvE;IAEA,qBAAqB,GAAA;AACnB,QAAA,QACE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM;AAC3E,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG;AACjC,YAAA,GAAG;IAEP;IAEA,cAAc,GAAA;QACZ,MAAM,oBAAoB,GAAG,mDAAmD;AAEhF,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,SAAS,EAAE;AACT,gBAAA,gBAAgB,EAAE,kCAAkC;gBACpD,gBAAgB,EAAE,CAAA,EAAG,oBAAoB,CAAA,QAAA,CAAU;AACnD,gBAAA,iBAAiB,EAAE,IAAI,CAAC,qBAAqB;AAC9C,aAAA;AACD,YAAA,oBAAoB,EAAE;AACpB,gBAAA,gBAAgB,EAAE,kCAAkC;gBACpD,gBAAgB,EAAE,CAAA,EAAG,oBAAoB,CAAA,OAAA,CAAS;AAClD,gBAAA,iBAAiB,EAAE,IAAI,CAAC,qBAAqB;AAC9C,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,gBAAgB,EAAE,UAAU;gBAC5B,gBAAgB,EAAE,CAAA,EAAG,oBAAoB,CAAA,OAAA,CAAS;AAClD,gBAAA,iBAAiB,EAAE;AACpB,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,gBAAgB,EAAE,UAAU;gBAC5B,gBAAgB,EAAE,CAAA,EAAG,oBAAoB,CAAA,QAAA,CAAU;AACnD,gBAAA,iBAAiB,EAAE;AACpB;SACF;AAED,QAAA,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAClE;IAEA,YAAY,GAAA;QACV,MAAM,oBAAoB,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1D,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,aAAa,EAAE;SAChB;AACD,QAAA,MAAM,YAAY,GAAG;YACnB,YAAY;AACZ,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,eAAe,EAAE,YAAY;AAC7B,YAAA,cAAc,EAAE,aAAa;AAC7B,YAAA,QAAQ,EAAE;SACK;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACxC,sCAAsC,EACtC,YAAY,CACb;IACH;AAEA,IAAA,MAAM,mBAAmB,GAAA;AACvB,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CACtB,OAAO,CAAC,uBAAuB,CAAC,EAChC,OAAO,CAAC,qEAAqE,CAAC,EAC9E,MAAM,CAAC,MAAM,EACb,EAAE,EACF,EAAE,EACF,EAAE,SAAS,EAAE,oBAAoB,EAAE,CACpC;AACD,YAAA,MAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;AAC3E,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACpD;QAAE,OAAO,EAAE,EAAE;AACX,YAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC;IACF;IAEA,oBAAoB,GAAA;QAClB,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;;QAGhD,OAAO,UAAU,CAAC,OAAO;QACzB,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE;;AAGjD,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,aAAa,EAAE,UAAU;AACzB,YAAA,gBAAgB,EAAE;SACnB;AACD,QAAA,MAAM,YAAY,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAkB;AAC5F,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACxC,sCAAsC,EACtC,YAAY,CACb;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,MAAK;AAClD,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACpB,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,MAAM,eAAe,GAAA;AACnB,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CACtB,OAAO,CAAC,2CAA2C,CAAC,EACpD,OAAO,CACL,0FAA0F,CAC3F,EACD,MAAM,CAAC,MAAM,EACb,EAAE,EACF,EAAE,EACF,EAAE,SAAS,EAAE,oBAAoB,EAAE,CACpC;AAED,YAAA,MAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC;AACnD,gBAAA,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;gBACzB,aAAa,EAAE,0BAA0B,CAAC;AAC3C,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;QACxE;QAAE,OAAO,EAAE,EAAE;AACX,YAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC;IACF;AAEA,IAAA,mBAAmB,CAAC,cAAc,EAAA;AAChC,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC;IAC/C;IAEA,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,IAAI,CAAC,0BAA0B,CAAC,SAAS;IACvF;IAEA,qCAAqC,GAAA;QACnC,QACE,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,IAAI,CAAC,0BAA0B,CAAC,SAAS;YAC9E,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,IAAI,CAAC,0BAA0B,CAAC,oBAAoB;IAE7F;IAEA,oBAAoB,GAAA;AAClB,QAAA,QACE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG;AAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS;AACnC,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM;AAClC,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO;AACnC,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU;IAE5C;IAEA,gBAAgB,GAAA;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,IAAI,CAAC,0BAA0B,CAAC,QAAQ;IACtF;IAEA,cAAc,GAAA;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,IAAI,CAAC,0BAA0B,CAAC,MAAM;IACpF;+GA9MW,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/D3C,uxMA8KA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhII,iBAAiB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,qBAAqB,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,aAAa,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,gBAAgB,ghBAChB,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACJ,qBAAqB,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,cAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,uBAAuB,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,0BAA0B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC1B,yBAAyB,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACzB,6BAA6B,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,UAAA,EAAA,kCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,yBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAC7B,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAChB,QAAQ,2CACR,UAAU,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGD,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBArB1C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAAA,OAAA,EAE/B;wBACP,iBAAiB;wBACjB,OAAO;wBACP,qBAAqB;wBACrB,aAAa;wBACb,gBAAgB;wBAChB,IAAI;wBACJ,qBAAqB;wBACrB,gBAAgB;wBAChB,uBAAuB;wBACvB,0BAA0B;wBAC1B,yBAAyB;wBACzB,6BAA6B;wBAC7B,gBAAgB;wBAChB,QAAQ;wBACR;AACD,qBAAA,EAAA,QAAA,EAAA,uxMAAA,EAAA;qNAKD,aAAa,EAAA,CAAA;sBADZ;gBAGD,gBAAgB,EAAA,CAAA;sBADf;gBAGD,QAAQ,EAAA,CAAA;sBADP;gBAES,mBAAmB,EAAA,CAAA;sBAA5B;gBACS,MAAM,EAAA,CAAA;sBAAf;gBACwC,QAAQ,EAAA,CAAA;sBAAhD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;AEjEzC;;AAEG;MAwBU,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA3B,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,2BAA2B,YArBpC,8BAA8B;YAC9B,sCAAsC;YACtC,6BAA6B;AAC7B,YAAA,sBAAsB,aAatB,8BAA8B;YAC9B,sCAAsC;YACtC,6BAA6B,CAAA,EAAA,CAAA,CAAA;AAGpB,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,2BAA2B,EAAA,SAAA,EAhB3B;YACT,4BAA4B;AAC5B,YAAA;AACE,gBAAA,OAAO,EAAE,2CAA2C;AACpD,gBAAA,QAAQ,EAAE;AACR,oBAAA,SAAS,EAAE,8BAA8B;oBACzC,MAAM,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI;AAClD;AACF;AACF,SAAA,EAAA,OAAA,EAAA,CAdC,8BAA8B;YAC9B,sCAAsC,CAAA,EAAA,CAAA,CAAA;;4FAoB7B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAvBvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,8BAA8B;wBAC9B,sCAAsC;wBACtC,6BAA6B;wBAC7B;AACD,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,4BAA4B;AAC5B,wBAAA;AACE,4BAAA,OAAO,EAAE,2CAA2C;AACpD,4BAAA,QAAQ,EAAE;AACR,gCAAA,SAAS,EAAE,8BAA8B;gCACzC,MAAM,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI;AAClD;AACF;AACF,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,8BAA8B;wBAC9B,sCAAsC;wBACtC;AACD;AACF,iBAAA;;;ACjCD;;AAEG;;;;"}
|
|
@@ -207,8 +207,8 @@ class OperationSchedulerComponent {
|
|
|
207
207
|
}
|
|
208
208
|
return { dateValidation: true };
|
|
209
209
|
}
|
|
210
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
211
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
210
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: OperationSchedulerComponent, deps: [{ token: i1.FormBuilder }, { token: i2.OptionsService }, { token: i2.DateFormatService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
211
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: OperationSchedulerComponent, isStandalone: true, selector: "c8y-operation-scheduler", inputs: { _minutesAhead: ["minutesAhead", "_minutesAhead"] }, providers: [
|
|
212
212
|
{
|
|
213
213
|
provide: NG_VALUE_ACCESSOR,
|
|
214
214
|
multi: true,
|
|
@@ -221,7 +221,7 @@ class OperationSchedulerComponent {
|
|
|
221
221
|
}
|
|
222
222
|
], ngImport: i0, template: "<div [formGroup]=\"fgOperationScheduler\">\n <div class=\"form-group\">\n <label translate>Start date</label>\n <div class=\"datetime-picker\">\n <c8y-form-group class=\"datepicker\">\n <input\n class=\"form-control\"\n placeholder=\"{{ placeholder | translate }}\"\n required\n formControlName=\"picker\"\n [bsConfig]=\"{ customTodayClass: 'today', dateInputFormat: dateInputFormat }\"\n [minDate]=\"minDate\"\n bsDatepicker\n (blur)=\"markAsTouched()\"\n />\n <c8y-messages>\n <c8y-message\n [name]=\"'dateValidation'\"\n [text]=\"'Select time in the future.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <timepicker\n class=\"form-group\"\n [showSpinners]=\"false\"\n [showMeridian]=\"false\"\n formControlName=\"time\"\n (blur)=\"markAsTouched()\"\n ></timepicker>\n </div>\n </div>\n <div class=\"form-group\">\n <c8y-form-group [hasError]=\"delayErrors\">\n <label translate>Delay</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 15\"\n type=\"number\"\n required\n formControlName=\"delay\"\n (blur)=\"markAsTouched()\"\n />\n <div class=\"input-group-btn\">\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control m-r-sm-32 m-r-xs-56\"\n [attr.aria-label]=\"'Delay units' | translate\"\n formControlName=\"unit\"\n (blur)=\"markAsTouched()\"\n >\n <option\n value=\"seconds\"\n translate\n >\n Seconds\n </option>\n <option\n value=\"milliseconds\"\n translate\n >\n Milliseconds\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </c8y-form-group>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "ignoreMinMaxErrors", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: TimepickerComponent, selector: "timepicker", inputs: ["hourStep", "minuteStep", "secondsStep", "readonlyInput", "disabled", "mousewheel", "arrowkeys", "showSpinners", "showMeridian", "showMinutes", "showSeconds", "meridians", "min", "max", "hoursPlaceholder", "minutesPlaceholder", "secondsPlaceholder"], outputs: ["isValid", "meridianChange"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
223
223
|
}
|
|
224
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: OperationSchedulerComponent, decorators: [{
|
|
225
225
|
type: Component,
|
|
226
226
|
args: [{ selector: 'c8y-operation-scheduler', providers: [
|
|
227
227
|
{
|
|
@@ -256,16 +256,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
256
256
|
* This module provides components for scheduling bulk operations.
|
|
257
257
|
*/
|
|
258
258
|
class BulkOperationSchedulerModule {
|
|
259
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
260
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
259
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationSchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
260
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationSchedulerModule, imports: [CoreModule,
|
|
261
261
|
ReactiveFormsModule, i1$1.BsDatepickerModule, i2$1.TimepickerModule, OperationSchedulerComponent], exports: [OperationSchedulerComponent] }); }
|
|
262
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
262
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationSchedulerModule, imports: [CoreModule,
|
|
263
263
|
ReactiveFormsModule,
|
|
264
264
|
BsDatepickerModule.forRoot(),
|
|
265
265
|
TimepickerModule.forRoot(),
|
|
266
266
|
OperationSchedulerComponent] }); }
|
|
267
267
|
}
|
|
268
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
268
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BulkOperationSchedulerModule, decorators: [{
|
|
269
269
|
type: NgModule,
|
|
270
270
|
args: [{
|
|
271
271
|
imports: [
|