@c8y/ngx-components 1022.13.0 → 1022.16.2
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/alarms/alarms.helper.d.ts.map +1 -1
- package/auth-configuration/sso-configuration/templates/template.component.d.ts +1 -1
- package/core/asset-property/asset-property.model.d.ts +2 -0
- package/core/asset-property/asset-property.model.d.ts.map +1 -1
- package/core/authentication/authentication.module.d.ts.map +1 -1
- package/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.d.ts.map +1 -1
- package/core/drop-area/drop-area.component.d.ts +2 -0
- package/core/drop-area/drop-area.component.d.ts.map +1 -1
- package/core/dynamic-forms/file/file.type.component.d.ts.map +1 -1
- package/core/modal/modal.module.d.ts.map +1 -1
- package/core/plugins/plugins.module.d.ts.map +1 -1
- package/core/plugins/plugins.service.d.ts +1 -2
- package/core/plugins/plugins.service.d.ts.map +1 -1
- package/core/select/select.component.d.ts.map +1 -1
- package/device-list/devices.breadcrumb-factory.d.ts +1 -0
- package/device-list/devices.breadcrumb-factory.d.ts.map +1 -1
- package/device-parameters/device-parameter-details.component.d.ts +22 -0
- package/device-parameters/device-parameter-details.component.d.ts.map +1 -0
- package/device-parameters/device-parameter-value.component.d.ts +12 -0
- package/device-parameters/device-parameter-value.component.d.ts.map +1 -0
- package/device-parameters/device-parameters-list.component.d.ts +2 -1
- package/device-parameters/device-parameters-list.component.d.ts.map +1 -1
- package/device-parameters/index.d.ts +5 -0
- package/device-parameters/index.d.ts.map +1 -1
- package/device-parameters/parameter-type-cell-renderer.components.d.ts +8 -0
- package/device-parameters/parameter-type-cell-renderer.components.d.ts.map +1 -0
- package/device-profile/add-device-profile.component.d.ts +1 -1
- package/device-profile/add-device-profile.component.d.ts.map +1 -1
- package/device-profile/device-profile-list.component.d.ts +1 -1
- package/device-profile/device-profile-list.component.d.ts.map +1 -1
- package/device-profile/device-profile.component.d.ts +1 -1
- package/device-profile/device-profile.component.d.ts.map +1 -1
- package/device-profile/device-profile.module.d.ts +17 -17
- package/device-profile/device-profile.module.d.ts.map +1 -1
- package/device-profile/device-tab-profile/device-profile-item-list.component.d.ts +1 -1
- package/device-profile/device-tab-profile/device-profile-item-list.component.d.ts.map +1 -1
- package/device-profile/device-tab-profile/device-tab-profile-detail.component.d.ts +1 -1
- package/device-profile/device-tab-profile/device-tab-profile-detail.component.d.ts.map +1 -1
- package/device-profile/device-tab-profile/device-tab-profile.component.d.ts +1 -1
- package/device-profile/device-tab-profile/device-tab-profile.component.d.ts.map +1 -1
- package/device-profile/select-configuration-modal.component.d.ts +1 -1
- package/device-profile/select-configuration-modal.component.d.ts.map +1 -1
- package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts +4 -2
- package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map +1 -1
- package/device-shell/command-templates/command-templates.component.d.ts +1 -1
- package/device-shell/command-templates/command-templates.component.d.ts.map +1 -1
- package/device-shell/command-templates/command-templates.directive.d.ts +1 -1
- package/device-shell/command-templates/command-templates.directive.d.ts.map +1 -1
- package/device-shell/command-templates/command-templates.module.d.ts +1 -1
- package/device-shell/shell/shell.component.d.ts +1 -1
- package/device-shell/shell/shell.component.d.ts.map +1 -1
- package/device-shell/shell/shell.module.d.ts +7 -7
- package/diagnostics/diagnostics.component.d.ts +1 -1
- package/diagnostics/diagnostics.component.d.ts.map +1 -1
- package/diagnostics/diagnostics.module.d.ts +8 -8
- package/diagnostics/diagnostics.module.d.ts.map +1 -1
- package/events/c8y-ngx-components-events.d.ts.map +1 -0
- package/events/events-timeline/c8y-ngx-components-events-events-timeline.d.ts.map +1 -0
- package/events/events-timeline/events-timeline.component.d.ts +19 -0
- package/events/events-timeline/events-timeline.component.d.ts.map +1 -0
- package/events/events-timeline/index.d.ts +2 -0
- package/events/events-timeline/index.d.ts.map +1 -0
- package/events/events.model.d.ts +6 -0
- package/events/events.model.d.ts.map +1 -0
- package/events/events.service.d.ts +10 -0
- package/events/events.service.d.ts.map +1 -0
- package/events/index.d.ts +3 -0
- package/events/index.d.ts.map +1 -0
- package/fesm2022/c8y-ngx-components-alarms.mjs +2 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs +2 -2
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-list.mjs +10 -3
- package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-parameters.mjs +110 -13
- package/fesm2022/c8y-ngx-components-device-parameters.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-profile.mjs +126 -49
- package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +44 -12
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-shell.mjs +31 -22
- package/fesm2022/c8y-ngx-components-device-shell.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-diagnostics.mjs +36 -19
- package/fesm2022/c8y-ngx-components-diagnostics.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-events-events-timeline.mjs +45 -0
- package/fesm2022/c8y-ngx-components-events-events-timeline.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-events.mjs +44 -0
- package/fesm2022/c8y-ngx-components-events.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs +8 -14
- 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 +49 -49
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +27 -14
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +27 -33
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +51 -39
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs +10 -8
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +16 -11
- package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +8 -11
- package/fesm2022/c8y-ngx-components-operations-device-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +25 -21
- package/fesm2022/c8y-ngx-components-operations-operation-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs +7 -9
- package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +31 -31
- package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +3 -3
- package/fesm2022/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs +33 -13
- package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-status-filter.mjs +19 -13
- package/fesm2022/c8y-ngx-components-operations-status-filter.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +40 -36
- 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 +60 -41
- 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 +122 -109
- 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 +66 -41
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs +11 -16
- package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +212 -83
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs +113 -54
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs +130 -62
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-shared.mjs +37 -28
- package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-software.mjs +156 -83
- package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services.mjs +32 -19
- package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +66 -29
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs +16 -3
- package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs +1 -14
- package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-user-roles.mjs +8 -3
- package/fesm2022/c8y-ngx-components-user-roles.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +864 -859
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +34 -17
- package/locales/es.po +20 -2
- package/locales/fr.po +20 -2
- package/locales/ja_JP.po +22 -4
- package/locales/ko.po +20 -2
- package/locales/locales.pot +19 -1
- package/locales/nl.po +20 -2
- package/locales/pl.po +20 -2
- package/locales/pt_BR.po +20 -2
- package/locales/zh_CN.po +21 -3
- package/locales/zh_TW.po +20 -2
- package/operations/bulk-operation-from-single/bulk-operation-from-single.component.d.ts +1 -1
- package/operations/bulk-operation-from-single/bulk-operation-from-single.component.d.ts.map +1 -1
- package/operations/bulk-operation-from-single/bulk-operation-from-single.module.d.ts +3 -5
- package/operations/bulk-operation-from-single/bulk-operation-from-single.module.d.ts.map +1 -1
- package/operations/bulk-operation-list-item/bulk-operation-list-item.component.d.ts +1 -1
- package/operations/bulk-operation-list-item/bulk-operation-list-item.component.d.ts.map +1 -1
- package/operations/bulk-operation-list-item/bulk-operation-list-item.module.d.ts +1 -7
- package/operations/bulk-operation-list-item/bulk-operation-list-item.module.d.ts.map +1 -1
- package/operations/bulk-operation-list-item/bulk-operation-wrapper.component.d.ts +1 -1
- package/operations/bulk-operation-list-item/bulk-operation-wrapper.component.d.ts.map +1 -1
- package/operations/bulk-operation-list-item/modal-body-host.directive.d.ts +1 -1
- package/operations/bulk-operation-list-item/modal-body-host.directive.d.ts.map +1 -1
- package/operations/bulk-operation-list-item/modals/bulk-operations-reschedule-modal.component.d.ts +1 -1
- package/operations/bulk-operation-list-item/modals/bulk-operations-reschedule-modal.component.d.ts.map +1 -1
- package/operations/bulk-operation-scheduler/bulk-operation-scheduler.module.d.ts +6 -6
- package/operations/bulk-operation-scheduler/operation-scheduler.component.d.ts +1 -1
- package/operations/bulk-operation-scheduler/operation-scheduler.component.d.ts.map +1 -1
- package/operations/bulk-operation-stepper/base-stepper.component.d.ts +1 -1
- package/operations/bulk-operation-stepper/bulk-operation-stepper.component.d.ts +1 -1
- package/operations/bulk-operation-stepper/bulk-operation-stepper.component.d.ts.map +1 -1
- package/operations/bulk-operation-stepper/bulk-operation-stepper.module.d.ts +1 -5
- package/operations/bulk-operation-stepper/bulk-operation-stepper.module.d.ts.map +1 -1
- package/operations/bulk-operation-stepper/custom-step.directive.d.ts +1 -1
- package/operations/bulk-operation-stepper/custom-step.directive.d.ts.map +1 -1
- package/operations/bulk-operations-list/bulk-operations-list.component.d.ts +1 -1
- package/operations/bulk-operations-list/bulk-operations-list.component.d.ts.map +1 -1
- package/operations/bulk-operations-list/bulk-operations-list.module.d.ts +4 -10
- package/operations/bulk-operations-list/bulk-operations-list.module.d.ts.map +1 -1
- package/operations/bulk-operations-list/modals/bulk-operations-modal.component.d.ts +1 -1
- package/operations/bulk-operations-list/modals/bulk-operations-modal.component.d.ts.map +1 -1
- package/operations/bulk-operations-stepper-container/bulk-operations-stepper-container.component.d.ts +1 -1
- package/operations/bulk-operations-stepper-container/bulk-operations-stepper-container.component.d.ts.map +1 -1
- package/operations/bulk-operations-stepper-container/bulk-operations-stepper-container.module.d.ts +3 -4
- package/operations/bulk-operations-stepper-container/bulk-operations-stepper-container.module.d.ts.map +1 -1
- package/operations/create-bulk-operation-details/create-bulk-operation-details.component.d.ts +1 -1
- package/operations/create-bulk-operation-details/create-bulk-operation-details.component.d.ts.map +1 -1
- package/operations/create-bulk-operation-details/create-bulk-operation-details.module.d.ts +1 -4
- package/operations/create-bulk-operation-details/create-bulk-operation-details.module.d.ts.map +1 -1
- package/operations/device-selector/device-selector.component.d.ts +1 -1
- package/operations/device-selector/device-selector.component.d.ts.map +1 -1
- package/operations/device-selector/device-selector.module.d.ts +1 -3
- package/operations/device-selector/device-selector.module.d.ts.map +1 -1
- package/operations/operation-details/operation-details-modal.component.d.ts +1 -1
- package/operations/operation-details/operation-details-modal.component.d.ts.map +1 -1
- package/operations/operation-details/operation-details.component.d.ts +1 -1
- package/operations/operation-details/operation-details.component.d.ts.map +1 -1
- package/operations/operation-details/operation-details.module.d.ts +1 -7
- package/operations/operation-details/operation-details.module.d.ts.map +1 -1
- package/operations/operation-details/operation-details.service.d.ts.map +1 -1
- package/operations/operation-summary/operation-summary.component.d.ts +1 -1
- package/operations/operation-summary/operation-summary.component.d.ts.map +1 -1
- package/operations/operation-summary/operation-summary.module.d.ts +1 -2
- package/operations/operation-summary/operation-summary.module.d.ts.map +1 -1
- package/operations/operations-list/operations-list-item.component.d.ts.map +1 -1
- package/operations/operations-list/operations-list.component.d.ts.map +1 -1
- package/operations/operations-list/operations-list.service.d.ts +1 -1
- package/operations/operations-list/operations-list.service.d.ts.map +1 -1
- package/operations/operations-list-item-details/operation-details-tabs.component.d.ts +1 -1
- package/operations/operations-list-item-details/operation-details-tabs.component.d.ts.map +1 -1
- package/operations/operations-list-item-details/operation-details.component.d.ts +1 -1
- package/operations/operations-list-item-details/operation-details.component.d.ts.map +1 -1
- package/operations/operations-list-item-details/operations-list-item-details.module.d.ts +1 -6
- package/operations/operations-list-item-details/operations-list-item-details.module.d.ts.map +1 -1
- package/operations/operations-timeline/operations-timeline.component.d.ts +5 -5
- package/operations/operations-timeline/operations-timeline.component.d.ts.map +1 -1
- package/operations/operations-timeline/operations-timeline.module.d.ts +4 -6
- package/operations/operations-timeline/operations-timeline.module.d.ts.map +1 -1
- package/operations/status-filter/status-filter.component.d.ts +1 -1
- package/operations/status-filter/status-filter.component.d.ts.map +1 -1
- package/operations/status-filter/status-filter.module.d.ts +1 -4
- package/operations/status-filter/status-filter.module.d.ts.map +1 -1
- package/operations/stepper-bulk-type-configuration/stepper-bulk-type-configuration.component.d.ts +1 -1
- package/operations/stepper-bulk-type-configuration/stepper-bulk-type-configuration.component.d.ts.map +1 -1
- package/operations/stepper-bulk-type-configuration/stepper-bulk-type-configuration.module.d.ts +1 -6
- package/operations/stepper-bulk-type-configuration/stepper-bulk-type-configuration.module.d.ts.map +1 -1
- package/operations/stepper-bulk-type-device-profile/confirm-device-profile-selection-step.component.d.ts +1 -1
- package/operations/stepper-bulk-type-device-profile/confirm-device-profile-selection-step.component.d.ts.map +1 -1
- package/operations/stepper-bulk-type-device-profile/select-device-profile-step.component.d.ts +1 -1
- package/operations/stepper-bulk-type-device-profile/select-device-profile-step.component.d.ts.map +1 -1
- package/operations/stepper-bulk-type-device-profile/stepper-bulk-type-device-profile.component.d.ts +1 -1
- package/operations/stepper-bulk-type-device-profile/stepper-bulk-type-device-profile.component.d.ts.map +1 -1
- package/operations/stepper-bulk-type-device-profile/stepper-bulk-type-device-profile.module.d.ts +1 -6
- package/operations/stepper-bulk-type-device-profile/stepper-bulk-type-device-profile.module.d.ts.map +1 -1
- package/operations/stepper-bulk-type-firmware/select-firmware.component.d.ts +1 -1
- package/operations/stepper-bulk-type-firmware/select-firmware.component.d.ts.map +1 -1
- package/operations/stepper-bulk-type-firmware/stepper-bulk-type-firmware.component.d.ts +1 -1
- package/operations/stepper-bulk-type-firmware/stepper-bulk-type-firmware.component.d.ts.map +1 -1
- package/operations/stepper-bulk-type-firmware/stepper-bulk-type-firmware.module.d.ts +1 -6
- package/operations/stepper-bulk-type-firmware/stepper-bulk-type-firmware.module.d.ts.map +1 -1
- package/operations/stepper-bulk-type-firmware/version-or-patch.component.d.ts +1 -1
- package/operations/stepper-bulk-type-firmware/version-or-patch.component.d.ts.map +1 -1
- package/operations/stepper-bulk-type-software/confirm-software-selection-step.component.d.ts +1 -1
- package/operations/stepper-bulk-type-software/confirm-software-selection-step.component.d.ts.map +1 -1
- package/operations/stepper-bulk-type-software/select-software-step.component.d.ts +1 -1
- package/operations/stepper-bulk-type-software/select-software-step.component.d.ts.map +1 -1
- package/operations/stepper-bulk-type-software/stepper-bulk-type-software.component.d.ts +1 -1
- package/operations/stepper-bulk-type-software/stepper-bulk-type-software.component.d.ts.map +1 -1
- package/operations/stepper-bulk-type-software/stepper-bulk-type-software.module.d.ts +1 -6
- package/operations/stepper-bulk-type-software/stepper-bulk-type-software.module.d.ts.map +1 -1
- package/operations/stepper-frames/preview-block.directive.d.ts +1 -1
- package/operations/stepper-frames/preview-block.directive.d.ts.map +1 -1
- package/operations/stepper-frames/preview-selection-frame.component.d.ts +1 -1
- package/operations/stepper-frames/preview-selection-frame.component.d.ts.map +1 -1
- package/operations/stepper-frames/select-step-frame.component.d.ts +1 -1
- package/operations/stepper-frames/select-step-frame.component.d.ts.map +1 -1
- package/operations/stepper-frames/stepper-frames.modules.d.ts +1 -2
- package/operations/stepper-frames/stepper-frames.modules.d.ts.map +1 -1
- package/package.json +1 -1
- package/protocol-opcua/opcua-address-space-detail.component.d.ts +1 -1
- package/protocol-opcua/opcua-address-space-detail.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-address-space-tree.component.d.ts +1 -1
- package/protocol-opcua/opcua-address-space-tree.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-address-space.component.d.ts +1 -1
- package/protocol-opcua/opcua-address-space.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-auto-apply-settings.component.d.ts +1 -1
- package/protocol-opcua/opcua-auto-apply-settings.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-device-protocol-browse-path-validation.directive.d.ts +1 -1
- package/protocol-opcua/opcua-device-protocol-browse-path-validation.directive.d.ts.map +1 -1
- package/protocol-opcua/opcua-device-protocol-data-reporting.component.d.ts +1 -1
- package/protocol-opcua/opcua-device-protocol-data-reporting.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-device-protocol-description.component.d.ts +1 -1
- package/protocol-opcua/opcua-device-protocol-description.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-device-protocol-detail.component.d.ts +1 -1
- package/protocol-opcua/opcua-device-protocol-detail.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-device-protocol-mapping.component.d.ts +1 -1
- package/protocol-opcua/opcua-device-protocol-mapping.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-device-protocol-object-mapping-status-icon.component.d.ts +1 -1
- package/protocol-opcua/opcua-device-protocol-object-mapping-status-icon.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-protocol.module.d.ts +26 -26
- package/protocol-opcua/opcua-protocol.module.d.ts.map +1 -1
- package/protocol-opcua/opcua-server-config.component.d.ts +1 -1
- package/protocol-opcua/opcua-server-config.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-server-list.component.d.ts +1 -1
- package/protocol-opcua/opcua-server-list.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-servers.component.d.ts +1 -1
- package/protocol-opcua/opcua-servers.component.d.ts.map +1 -1
- package/repository/configuration/device-tab/configuration-filter.pipe.d.ts +1 -1
- package/repository/configuration/device-tab/configuration-filter.pipe.d.ts.map +1 -1
- package/repository/configuration/device-tab/configuration-preview.component.d.ts +1 -1
- package/repository/configuration/device-tab/configuration-preview.component.d.ts.map +1 -1
- package/repository/configuration/device-tab/configuration-repository-device-tab.module.d.ts +11 -13
- package/repository/configuration/device-tab/configuration-repository-device-tab.module.d.ts.map +1 -1
- package/repository/configuration/device-tab/device-configuration-list.component.d.ts +1 -1
- package/repository/configuration/device-tab/device-configuration-list.component.d.ts.map +1 -1
- package/repository/configuration/device-tab/device-configuration.component.d.ts +1 -1
- package/repository/configuration/device-tab/device-configuration.component.d.ts.map +1 -1
- package/repository/configuration/device-tab/save-to-repository.component.d.ts +1 -1
- package/repository/configuration/device-tab/save-to-repository.component.d.ts.map +1 -1
- package/repository/configuration/device-tab/source-code-preview.component.d.ts +1 -1
- package/repository/configuration/device-tab/source-code-preview.component.d.ts.map +1 -1
- package/repository/configuration/device-tab/text-based-configuration.component.d.ts +1 -1
- package/repository/configuration/device-tab/text-based-configuration.component.d.ts.map +1 -1
- package/repository/configuration/list/configuration-detail.component.d.ts +1 -1
- package/repository/configuration/list/configuration-detail.component.d.ts.map +1 -1
- package/repository/configuration/list/configuration-list.component.d.ts +1 -1
- package/repository/configuration/list/configuration-list.component.d.ts.map +1 -1
- package/repository/configuration/list/configuration-repository-list.module.d.ts +4 -7
- package/repository/configuration/list/configuration-repository-list.module.d.ts.map +1 -1
- package/repository/firmware/device-tab/firmware-device-tab.component.d.ts +1 -1
- package/repository/firmware/device-tab/firmware-device-tab.component.d.ts.map +1 -1
- package/repository/firmware/device-tab/firmware-repository-device-tab.module.d.ts +4 -6
- package/repository/firmware/device-tab/firmware-repository-device-tab.module.d.ts.map +1 -1
- package/repository/firmware/list/add-firmware-modal.component.d.ts +1 -1
- package/repository/firmware/list/add-firmware-modal.component.d.ts.map +1 -1
- package/repository/firmware/list/add-firmware-patch-modal.component.d.ts +1 -1
- package/repository/firmware/list/add-firmware-patch-modal.component.d.ts.map +1 -1
- package/repository/firmware/list/firmware-details.component.d.ts +1 -1
- package/repository/firmware/list/firmware-details.component.d.ts.map +1 -1
- package/repository/firmware/list/firmware-list.component.d.ts +1 -1
- package/repository/firmware/list/firmware-list.component.d.ts.map +1 -1
- package/repository/firmware/list/firmware-repository-list.module.d.ts +6 -11
- package/repository/firmware/list/firmware-repository-list.module.d.ts.map +1 -1
- package/repository/shared/file-download/file-download.component.d.ts +1 -1
- package/repository/shared/file-download/file-download.component.d.ts.map +1 -1
- package/repository/shared/select-modal/repository-select-modal.component.d.ts +1 -1
- package/repository/shared/select-modal/repository-select-modal.component.d.ts.map +1 -1
- package/repository/shared/shared-repository.module.d.ts +1 -4
- package/repository/shared/shared-repository.module.d.ts.map +1 -1
- package/repository/shared/software-type/software-type.component.d.ts +1 -1
- package/repository/shared/software-type/software-type.component.d.ts.map +1 -1
- package/repository/software/device-tab/device-software-changes.component.d.ts +1 -1
- package/repository/software/device-tab/device-software-changes.component.d.ts.map +1 -1
- package/repository/software/device-tab/device-software-list.component.d.ts +1 -1
- package/repository/software/device-tab/device-software-list.component.d.ts.map +1 -1
- package/repository/software/device-tab/installed-software.component.d.ts +1 -1
- package/repository/software/device-tab/installed-software.component.d.ts.map +1 -1
- package/repository/software/device-tab/software-device-tab.component.d.ts +1 -1
- package/repository/software/device-tab/software-device-tab.component.d.ts.map +1 -1
- package/repository/software/device-tab/software-repository-device-tab.module.d.ts +7 -11
- package/repository/software/device-tab/software-repository-device-tab.module.d.ts.map +1 -1
- package/repository/software/list/add-software-modal.component.d.ts +1 -1
- package/repository/software/list/add-software-modal.component.d.ts.map +1 -1
- package/repository/software/list/software-details.component.d.ts +1 -1
- package/repository/software/list/software-details.component.d.ts.map +1 -1
- package/repository/software/list/software-list.component.d.ts +1 -1
- package/repository/software/list/software-list.component.d.ts.map +1 -1
- package/repository/software/list/software-repository-list.module.d.ts +5 -11
- package/repository/software/list/software-repository-list.module.d.ts.map +1 -1
- package/services/services-device-tab/columns/last-updated-date.cell-renderer.component.d.ts +1 -1
- package/services/services-device-tab/columns/last-updated-date.cell-renderer.component.d.ts.map +1 -1
- package/services/services-device-tab/columns/name.cell-renderer.component.d.ts +1 -1
- package/services/services-device-tab/columns/name.cell-renderer.component.d.ts.map +1 -1
- package/services/services-device-tab/columns/status.cell-renderer.component.d.ts +1 -1
- package/services/services-device-tab/columns/status.cell-renderer.component.d.ts.map +1 -1
- package/services/services-device-tab/services-device-tab.component.d.ts +1 -1
- package/services/services-device-tab/services-device-tab.component.d.ts.map +1 -1
- package/services/services-device-tab/services-device-tab.module.d.ts +1 -4
- package/services/services-device-tab/services-device-tab.module.d.ts.map +1 -1
- package/trusted-certificates/crl/crl-settings.component.d.ts +5 -1
- package/trusted-certificates/crl/crl-settings.component.d.ts.map +1 -1
- package/trusted-certificates/factories/tabs.factory.d.ts +3 -2
- package/trusted-certificates/factories/tabs.factory.d.ts.map +1 -1
- package/trusted-certificates/factories/trusted-certificates-navigation.factory.d.ts +2 -0
- package/trusted-certificates/factories/trusted-certificates-navigation.factory.d.ts.map +1 -1
- package/trusted-certificates/list/trusted-certificate-list.component.d.ts +5 -1
- package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
- package/trusted-certificates/trusted-certificates.guard.d.ts +11 -0
- package/trusted-certificates/trusted-certificates.guard.d.ts.map +1 -0
- package/upgrade/index.d.ts +0 -1
- package/upgrade/index.d.ts.map +1 -1
- package/upgrade/upgrade.module.d.ts.map +1 -1
- package/upgrade/upgraded-services/index.d.ts +1 -0
- package/upgrade/upgraded-services/index.d.ts.map +1 -1
- package/upgrade/upgraded-services/smart-rules.service.d.ts.map +1 -0
- package/upgrade/upgraded-services/upgraded-services.module.d.ts.map +1 -1
- package/user-roles/inventory-role-selector/inventory-role-selector.component.d.ts +2 -1
- package/user-roles/inventory-role-selector/inventory-role-selector.component.d.ts.map +1 -1
- package/user-roles/roles-asset-tree/roles-asset-tree.component.d.ts +2 -1
- package/user-roles/roles-asset-tree/roles-asset-tree.component.d.ts.map +1 -1
- package/upgrade/smart-rules.service.d.ts.map +0 -1
- /package/upgrade/{smart-rules.service.d.ts → upgraded-services/smart-rules.service.d.ts} +0 -0
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, InjectionToken, Optional, Inject, Injectable, EventEmitter, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@c8y/ngx-components';
|
|
4
|
-
import { BaseColumn, gettext, getBasicInputArrayFormFieldConfig, hookGeneric,
|
|
4
|
+
import { DatePipe, BaseColumn, gettext, getBasicInputArrayFormFieldConfig, hookGeneric, IconDirective, C8yTranslatePipe, DataGridComponent, EmptyStateContextDirective, EmptyStateComponent, ColumnDirective, ViewContext, hookRoute, hookBreadcrumb, CoreModule } from '@c8y/ngx-components';
|
|
5
5
|
import { FormGroup } from '@angular/forms';
|
|
6
6
|
import * as i1$1 from '@angular/router';
|
|
7
|
-
import {
|
|
7
|
+
import { RouterLink } from '@angular/router';
|
|
8
8
|
import { flatten, entries, get } from 'lodash-es';
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
9
|
+
import { NgSwitch, NgFor, NgSwitchCase, NgSwitchDefault } from '@angular/common';
|
|
10
|
+
import { TooltipDirective } from 'ngx-bootstrap/tooltip';
|
|
12
11
|
import * as i1$2 from '@c8y/client';
|
|
13
12
|
import { QueriesUtil } from '@c8y/client';
|
|
14
13
|
import * as i5 from '@c8y/ngx-components/services/shared';
|
|
@@ -20,14 +19,14 @@ class LastUpdatedDateCellRendererComponent {
|
|
|
20
19
|
this.context = context;
|
|
21
20
|
}
|
|
22
21
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: LastUpdatedDateCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: LastUpdatedDateCellRendererComponent, isStandalone:
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: LastUpdatedDateCellRendererComponent, isStandalone: true, selector: "c8y-last-updated-date-cell-renderer", ngImport: i0, template: `{{ context.value | c8yDate }}`, isInline: true, dependencies: [{ kind: "pipe", type: DatePipe, name: "c8yDate" }] }); }
|
|
24
23
|
}
|
|
25
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: LastUpdatedDateCellRendererComponent, decorators: [{
|
|
26
25
|
type: Component,
|
|
27
26
|
args: [{
|
|
28
27
|
template: `{{ context.value | c8yDate }}`,
|
|
29
28
|
selector: 'c8y-last-updated-date-cell-renderer',
|
|
30
|
-
|
|
29
|
+
imports: [DatePipe]
|
|
31
30
|
}]
|
|
32
31
|
}], ctorParameters: () => [{ type: i1.CellRendererContext }] });
|
|
33
32
|
|
|
@@ -108,11 +107,11 @@ class ServicesNameCellRendererComponent {
|
|
|
108
107
|
this.context = context;
|
|
109
108
|
}
|
|
110
109
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ServicesNameCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
111
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ServicesNameCellRendererComponent, isStandalone:
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ServicesNameCellRendererComponent, isStandalone: true, selector: "c8y-services-name-cell-renderer", ngImport: i0, template: `
|
|
112
111
|
<a class="interact" [title]="context.item.name" [routerLink]="['/service', context.item.id]">
|
|
113
112
|
{{ context.item.name }}
|
|
114
113
|
</a>
|
|
115
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
114
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
116
115
|
}
|
|
117
116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ServicesNameCellRendererComponent, decorators: [{
|
|
118
117
|
type: Component,
|
|
@@ -123,7 +122,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
123
122
|
</a>
|
|
124
123
|
`,
|
|
125
124
|
selector: 'c8y-services-name-cell-renderer',
|
|
126
|
-
|
|
125
|
+
imports: [RouterLink]
|
|
127
126
|
}]
|
|
128
127
|
}], ctorParameters: () => [{ type: i1.CellRendererContext }] });
|
|
129
128
|
|
|
@@ -275,11 +274,19 @@ class ServicesStatusCellRendererComponent {
|
|
|
275
274
|
this.statusOptionsService = statusOptionsService;
|
|
276
275
|
}
|
|
277
276
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ServicesStatusCellRendererComponent, deps: [{ token: i1.CellRendererContext }, { token: StatusOptionsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
278
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ServicesStatusCellRendererComponent, isStandalone:
|
|
277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ServicesStatusCellRendererComponent, isStandalone: true, selector: "c8y-services-status-cell-renderer", ngImport: i0, template: "<span [ngSwitch]=\"context.item.status\">\n <ng-container *ngFor=\"let option of statusOptionsService.options\">\n <i\n *ngSwitchCase=\"option.key\"\n [c8yIcon]=\"option.icon\"\n class=\"{{ option.class }}\"\n [tooltip]=\"option.label | translate\"\n container=\"body\"\n placement=\"top\"\n ></i>\n </ng-container>\n <i\n *ngSwitchDefault\n c8yIcon=\"job\"\n class=\"text-primary\"\n [tooltip]=\"context.item.status\"\n container=\"body\"\n placement=\"top\"\n ></i>\n</span>\n", dependencies: [{ kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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: NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
279
278
|
}
|
|
280
279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ServicesStatusCellRendererComponent, decorators: [{
|
|
281
280
|
type: Component,
|
|
282
|
-
args: [{ selector: 'c8y-services-status-cell-renderer',
|
|
281
|
+
args: [{ selector: 'c8y-services-status-cell-renderer', imports: [
|
|
282
|
+
NgSwitch,
|
|
283
|
+
NgFor,
|
|
284
|
+
NgSwitchCase,
|
|
285
|
+
IconDirective,
|
|
286
|
+
TooltipDirective,
|
|
287
|
+
NgSwitchDefault,
|
|
288
|
+
C8yTranslatePipe
|
|
289
|
+
], template: "<span [ngSwitch]=\"context.item.status\">\n <ng-container *ngFor=\"let option of statusOptionsService.options\">\n <i\n *ngSwitchCase=\"option.key\"\n [c8yIcon]=\"option.icon\"\n class=\"{{ option.class }}\"\n [tooltip]=\"option.label | translate\"\n container=\"body\"\n placement=\"top\"\n ></i>\n </ng-container>\n <i\n *ngSwitchDefault\n c8yIcon=\"job\"\n class=\"text-primary\"\n [tooltip]=\"context.item.status\"\n container=\"body\"\n placement=\"top\"\n ></i>\n</span>\n" }]
|
|
283
290
|
}], ctorParameters: () => [{ type: i1.CellRendererContext }, { type: StatusOptionsService }] });
|
|
284
291
|
|
|
285
292
|
class StatusGridColumn extends BaseColumn {
|
|
@@ -415,11 +422,18 @@ class ServicesDeviceTabComponent {
|
|
|
415
422
|
return column.name;
|
|
416
423
|
}
|
|
417
424
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ServicesDeviceTabComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$2.InventoryService }, { token: i1.DataGridService }, { token: StatusOptionsService }, { token: i5.ServiceCommandService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
418
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ServicesDeviceTabComponent, isStandalone:
|
|
425
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ServicesDeviceTabComponent, isStandalone: true, selector: "c8y-services-device-tab", ngImport: i0, template: "<div class=\"content-fullpage\">\n <c8y-data-grid\n [title]=\"'Services' | translate\"\n [refresh]=\"refresh$\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-tools'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : null\"\n *emptyStateContext=\"let stats; isLoading as isLoading\"\n [horizontal]=\"stats?.size > 0\"\n ></c8y-ui-empty-state>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n", dependencies: [{ kind: "component", type: DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "directive", type: EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
419
426
|
}
|
|
420
427
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ServicesDeviceTabComponent, decorators: [{
|
|
421
428
|
type: Component,
|
|
422
|
-
args: [{ selector: 'c8y-services-device-tab',
|
|
429
|
+
args: [{ selector: 'c8y-services-device-tab', imports: [
|
|
430
|
+
DataGridComponent,
|
|
431
|
+
EmptyStateContextDirective,
|
|
432
|
+
EmptyStateComponent,
|
|
433
|
+
NgFor,
|
|
434
|
+
ColumnDirective,
|
|
435
|
+
C8yTranslatePipe
|
|
436
|
+
], template: "<div class=\"content-fullpage\">\n <c8y-data-grid\n [title]=\"'Services' | translate\"\n [refresh]=\"refresh$\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-tools'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : null\"\n *emptyStateContext=\"let stats; isLoading as isLoading\"\n [horizontal]=\"stats?.size > 0\"\n ></c8y-ui-empty-state>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n" }]
|
|
423
437
|
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i1$2.InventoryService }, { type: i1.DataGridService }, { type: StatusOptionsService }, { type: i5.ServiceCommandService }] });
|
|
424
438
|
|
|
425
439
|
class ServicesDeviceTabGuard {
|
|
@@ -492,10 +506,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
492
506
|
|
|
493
507
|
class ServicesDeviceTabModule {
|
|
494
508
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ServicesDeviceTabModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
495
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: ServicesDeviceTabModule,
|
|
509
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: ServicesDeviceTabModule, imports: [ServicesDeviceTabComponent,
|
|
496
510
|
LastUpdatedDateCellRendererComponent,
|
|
497
511
|
ServicesNameCellRendererComponent,
|
|
498
|
-
ServicesStatusCellRendererComponent]
|
|
512
|
+
ServicesStatusCellRendererComponent] }); }
|
|
499
513
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ServicesDeviceTabModule, providers: [
|
|
500
514
|
ServicesBreadcrumbFactory,
|
|
501
515
|
hookRoute({
|
|
@@ -508,13 +522,12 @@ class ServicesDeviceTabModule {
|
|
|
508
522
|
canActivate: [ServicesDeviceTabGuard]
|
|
509
523
|
}),
|
|
510
524
|
hookBreadcrumb(ServicesBreadcrumbFactory)
|
|
511
|
-
], imports: [
|
|
525
|
+
], imports: [ServicesDeviceTabComponent] }); }
|
|
512
526
|
}
|
|
513
527
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ServicesDeviceTabModule, decorators: [{
|
|
514
528
|
type: NgModule,
|
|
515
529
|
args: [{
|
|
516
|
-
imports: [
|
|
517
|
-
declarations: [
|
|
530
|
+
imports: [
|
|
518
531
|
ServicesDeviceTabComponent,
|
|
519
532
|
LastUpdatedDateCellRendererComponent,
|
|
520
533
|
ServicesNameCellRendererComponent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-services.mjs","sources":["../../services/services-device-tab/columns/last-updated-date.cell-renderer.component.ts","../../services/services-device-tab/columns/last-updated-date.device-grid-column.ts","../../services/services-device-tab/columns/name.cell-renderer.component.ts","../../services/services-device-tab/columns/name.grid-column.ts","../../services/services-device-tab/columns/service-type.grid-column.ts","../../services/status-options/status-options.model.ts","../../services/status-options/status-options.service.ts","../../services/services-device-tab/columns/status.cell-renderer.component.ts","../../services/services-device-tab/columns/status.cell-renderer.component.html","../../services/services-device-tab/columns/status.grid-column.ts","../../services/services-device-tab/services-device-tab.component.ts","../../services/services-device-tab/services-device-tab.component.html","../../services/services-device-tab/services-device-tab.guard.ts","../../services/services-device-tab/services.breadcrumb-factory.ts","../../services/services-device-tab/services-device-tab.module.ts","../../services/services.module.ts","../../services/c8y-ngx-components-services.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\n\n@Component({\n template: `{{ context.value | c8yDate }}`,\n selector: 'c8y-last-updated-date-cell-renderer',\n standalone: false\n})\nexport class LastUpdatedDateCellRendererComponent {\n constructor(public context: CellRendererContext) {}\n}\n","import { FormGroup } from '@angular/forms';\nimport { BaseColumn, ColumnConfig, gettext } from '@c8y/ngx-components';\nimport { LastUpdatedDateCellRendererComponent } from './last-updated-date.cell-renderer.component';\n\nexport class LastUpdatedDateGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n this.path = 'lastUpdated';\n this.name = 'lastUpdatedDate';\n this.header = gettext('Last updated');\n this.cellRendererComponent = LastUpdatedDateCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n fields: [\n {\n type: 'object',\n key: 'lastUpdated',\n templateOptions: {\n label: gettext('Show services updated`between dates`')\n },\n fieldGroup: [\n {\n type: 'date-time',\n key: 'after',\n templateOptions: {\n label: gettext('from`date`')\n },\n expressionProperties: {\n 'templateOptions.maxDate': (model: any) => model?.before\n }\n },\n {\n type: 'date-time',\n key: 'before',\n templateOptions: {\n label: gettext('to`date`')\n },\n expressionProperties: {\n 'templateOptions.minDate': (model: any) => model?.after\n }\n }\n ]\n }\n ],\n formGroup: new FormGroup({}),\n getFilter: model => {\n const filter: any = {};\n const dates = model && model.lastUpdated;\n if (dates && (dates.after || dates.before)) {\n filter.__and = [];\n if (dates.after) {\n const after = this.formatDate(dates.after);\n filter.__and.push({\n 'lastUpdated.date': { __gt: after }\n });\n }\n if (dates.before) {\n const before = this.formatDate(dates.before);\n filter.__and.push({\n 'lastUpdated.date': { __lt: before }\n });\n }\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: 'lastUpdated.date' }]\n };\n }\n\n protected formatDate(dateToFormat: string): string {\n return new Date(dateToFormat).toISOString();\n }\n}\n","import { Component } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\n\n@Component({\n template: `\n <a class=\"interact\" [title]=\"context.item.name\" [routerLink]=\"['/service', context.item.id]\">\n {{ context.item.name }}\n </a>\n `,\n selector: 'c8y-services-name-cell-renderer',\n standalone: false\n})\nexport class ServicesNameCellRendererComponent {\n constructor(public context: CellRendererContext) {}\n}\n","import {\n BaseColumn,\n ColumnConfig,\n getBasicInputArrayFormFieldConfig,\n gettext\n} from '@c8y/ngx-components';\nimport { ServicesNameCellRendererComponent } from './name.cell-renderer.component';\n\nexport class ServiceNameGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'name';\n this.path = 'name';\n this.header = gettext('Name');\n this.cellRendererComponent = ServicesNameCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n fields: getBasicInputArrayFormFieldConfig({\n key: 'names',\n label: gettext('Filter services by name'),\n addText: gettext('Add next`name`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: gettext('daemon`SERVICE_NAME`')\n }),\n getFilter(model: any): any {\n const filter: any = {};\n if (model.names.length) {\n filter.name = { __in: model.names };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import {\n BaseColumn,\n ColumnConfig,\n getBasicInputArrayFormFieldConfig,\n gettext\n} from '@c8y/ngx-components';\n\nexport class ServiceTypeGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'serviceType';\n this.path = 'serviceType';\n this.header = gettext('Type');\n\n this.filterable = true;\n\n this.filteringConfig = {\n fields: getBasicInputArrayFormFieldConfig({\n key: 'serviceTypes',\n label: gettext('Filter services by type'),\n addText: gettext('Add next`type`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: 'systemd'\n }),\n getFilter(model: any): any {\n const filter: any = {};\n if (model.serviceTypes.length) {\n filter.serviceType = { __in: model.serviceTypes };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { gettext, hookGeneric, GenericHookType, GenericHookOptions } from '@c8y/ngx-components';\nimport { SupportedIconsSuggestions } from '@c8y/ngx-components/icon-selector/icons';\n\n/**\n * Extension hook allowing to register custom service statuses and configure their visual presentation.\n * @deprecated Consider using the `hookServiceStatus` function instead.\n */\nexport const HOOK_SERVICE_STATUS = new InjectionToken<StatusOption | StatusOption[]>(\n 'HOOK_SERVICE_STATUS'\n);\n\n/**\n * Extension hook allowing to register custom service statuses and configure their visual presentation.\n *\n * You can either provide a single `StatusOption` as parameter:\n * ```typescript\n * hookServiceStatus(...)\n * ```\n *\n * Or an array to directly register multiple:\n * ```typescript\n * hookServiceStatus([...])\n * ```\n *\n * Or you provide an Service that implements `ExtensionFactory<StatusOption>`\n * ```typescript\n * export class MyServiceStatusFactory implements ExtensionFactory<StatusOption> {...}\n * ...\n * hookServiceStatus(MyServiceStatusFactory)\n * ```\n * A typed alternative to `HOOK_SERVICE_STATUS`.\n * @param status The `StatusOption`'s or `ExtensionFactory` to be provided.\n * @returns An `Provider` to be provided in your module.\n */\nexport function hookServiceStatus(\n status: GenericHookType<StatusOption>,\n options?: Partial<GenericHookOptions>\n) {\n return hookGeneric<StatusOption>(status, HOOK_SERVICE_STATUS, options);\n}\n\n/**\n * Defines the visual presentation of a service status option.\n */\nexport interface StatusOption {\n /**\n * Key used for this status in the c8y_Service object.\n */\n key: string;\n /**\n * Human readable name of the status used to be translated.\n */\n label: string;\n /**\n * An icon to use to display the status.\n */\n icon: SupportedIconsSuggestions;\n /**\n * CSS class(es) used to e.g. accent the status (contextual color, etc.)\n */\n class?: string;\n}\n\n/**\n * Standard status options supported by the platform.\n */\nexport const SERVICE_STATUS_OPTIONS: StatusOption[] = [\n {\n key: 'up',\n label: gettext('Up'),\n icon: 'check-circle',\n class: 'text-success'\n },\n {\n key: 'down',\n label: gettext('Down'),\n icon: 'exclamation-circle',\n class: 'text-danger'\n },\n {\n key: 'unknown',\n label: gettext('Unknown'),\n icon: 'inactive-state'\n }\n];\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { flatten } from 'lodash-es';\nimport { HOOK_SERVICE_STATUS, SERVICE_STATUS_OPTIONS, StatusOption } from './status-options.model';\n\n/**\n * The service for system wide registered service status options.\n * It provides the standard service statuses plus all custom status options\n * registered with the <code>HOOK_SERVICE_STATUS</code> extension hook.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class StatusOptionsService {\n get options(): StatusOption[] {\n return this._options;\n }\n\n private _options: StatusOption[];\n\n constructor(\n @Optional() @Inject(HOOK_SERVICE_STATUS) options: Array<StatusOption | StatusOption[]>\n ) {\n this._options = [...SERVICE_STATUS_OPTIONS, ...flatten(options)];\n }\n}\n","import { Component } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\nimport { StatusOptionsService } from '../../status-options';\n\n@Component({\n templateUrl: 'status.cell-renderer.component.html',\n selector: 'c8y-services-status-cell-renderer',\n standalone: false\n})\nexport class ServicesStatusCellRendererComponent {\n constructor(\n public context: CellRendererContext,\n public statusOptionsService: StatusOptionsService\n ) {}\n}\n","<span [ngSwitch]=\"context.item.status\">\n <ng-container *ngFor=\"let option of statusOptionsService.options\">\n <i\n *ngSwitchCase=\"option.key\"\n [c8yIcon]=\"option.icon\"\n class=\"{{ option.class }}\"\n [tooltip]=\"option.label | translate\"\n container=\"body\"\n placement=\"top\"\n ></i>\n </ng-container>\n <i\n *ngSwitchDefault\n c8yIcon=\"job\"\n class=\"text-primary\"\n [tooltip]=\"context.item.status\"\n container=\"body\"\n placement=\"top\"\n ></i>\n</span>\n","import {\n BaseColumn,\n ColumnConfig,\n ColumnDataType,\n getBasicInputArrayFormFieldConfig,\n gettext\n} from '@c8y/ngx-components';\nimport { entries } from 'lodash-es';\nimport { StatusOptionsService } from '../../status-options';\nimport { ServicesStatusCellRendererComponent } from './status.cell-renderer.component';\n\nexport class StatusGridColumn extends BaseColumn {\n constructor(statusOptionsService: StatusOptionsService, initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'status';\n this.path = 'status';\n this.header = gettext('Status');\n this.dataType = ColumnDataType.Icon;\n this.cellRendererComponent = ServicesStatusCellRendererComponent;\n this.filterable = true;\n this.resizable = false;\n\n this.filteringConfig = {\n fields: [\n {\n key: 'statusOptions',\n type: 'object',\n props: {\n label: gettext('Show devices with status')\n },\n fieldGroup: [\n ...statusOptionsService.options.map(option => ({\n key: option.key,\n type: 'switch',\n props: {\n label: option.label,\n optionDataCy: option.key\n }\n }))\n ]\n },\n ...getBasicInputArrayFormFieldConfig({\n key: 'custom',\n label: gettext('or filter by custom status'),\n addText: gettext('Add next`custom status`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: gettext('restarting`SERVICE_STATUS`'),\n optional: true\n })\n ],\n getFilter(model) {\n const filter: any = {};\n filter.status = {\n __in: [\n ...entries(model?.statusOptions || {})\n .filter(([_, value]) => !!value)\n .map(([key, _]) => key),\n ...model.custom.filter(c => !!c)\n ]\n };\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import { Component, EventEmitter } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { IManagedObject, InventoryService, IResultList, QueriesUtil } from '@c8y/client';\nimport {\n ActionControl,\n Column,\n DataGridService,\n DataSourceModifier,\n gettext,\n ServerSideDataResult\n} from '@c8y/ngx-components';\nimport {\n Service,\n SERVICE_FRAGMENT,\n ServiceCommandService\n} from '@c8y/ngx-components/services/shared';\nimport { StatusOptionsService } from '../status-options';\nimport {\n LastUpdatedDateGridColumn,\n ServiceNameGridColumn,\n ServiceTypeGridColumn,\n StatusGridColumn\n} from './columns';\n\n@Component({\n selector: 'c8y-services-device-tab',\n templateUrl: 'services-device-tab.component.html',\n standalone: false\n})\nexport class ServicesDeviceTabComponent {\n deviceId: string | number = this.route.snapshot.parent.data.contextData.id;\n\n sizeRequest: Promise<number>;\n sizeRequestDone = false;\n\n refresh$: EventEmitter<void> = new EventEmitter();\n pagination = {\n pageSize: 50,\n currentPage: 1\n };\n\n actionControls: ActionControl[] = [];\n columns: Column[] = [\n new StatusGridColumn(this.statusOptionsService),\n new ServiceNameGridColumn(),\n new ServiceTypeGridColumn(),\n new LastUpdatedDateGridColumn()\n ];\n\n serverSideDataCallback: any;\n\n noResultsMessage = gettext('No results to display.');\n noDataMessage = gettext('No services to display.');\n noResultsSubtitle = gettext('Refine your search terms or check your spelling.');\n\n private queriesUtil: QueriesUtil = new QueriesUtil();\n\n constructor(\n private route: ActivatedRoute,\n private inventoryService: InventoryService,\n private gridService: DataGridService,\n private statusOptionsService: StatusOptionsService,\n private serviceCommand: ServiceCommandService\n ) {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n this.sizeRequest = this.inventoryService\n .childAdditionsList(this.deviceId, {\n query: `type eq ${SERVICE_FRAGMENT}`,\n withTotalPages: true,\n pageSize: 1\n })\n .then(response => {\n this.sizeRequestDone = true;\n return response?.paging?.totalPages;\n });\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const query = this.queriesUtil.buildQuery(\n this.queriesUtil.addAndFilter(this.gridService.getQueryObj(dataSourceModifier.columns), {\n type: SERVICE_FRAGMENT\n })\n );\n\n const dataRequest: Promise<IResultList<IManagedObject>> =\n this.inventoryService.childAdditionsList(this.deviceId, {\n query,\n withTotalPages: true,\n pageSize: dataSourceModifier.pagination.pageSize,\n currentPage: dataSourceModifier.pagination.currentPage\n });\n\n const filtererdSizeRequest: Promise<number> = this.inventoryService\n .childAdditionsList(this.deviceId, {\n query,\n withTotalPages: true,\n pageSize: 1\n })\n .then(response => response?.paging?.totalPages);\n\n const [dataResponse, size, filteredSize] = await Promise.all([\n dataRequest,\n this.sizeRequest,\n filtererdSizeRequest\n ]);\n\n const { res, data, paging } = dataResponse;\n\n const commands = this.serviceCommand.getAllSupportedCommands(data as unknown as Service[]);\n this.actionControls = this.serviceCommand.generateActionControls(commands);\n\n const serverSideDataResult: ServerSideDataResult = {\n res,\n data,\n paging,\n filteredSize,\n size\n };\n\n return serverSideDataResult;\n }\n\n trackByName(_index, column: Column): string {\n return column.name;\n }\n}\n","<div class=\"content-fullpage\">\n <c8y-data-grid\n [title]=\"'Services' | translate\"\n [refresh]=\"refresh$\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-tools'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : null\"\n *emptyStateContext=\"let stats; isLoading as isLoading\"\n [horizontal]=\"stats?.size > 0\"\n ></c8y-ui-empty-state>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { InventoryService } from '@c8y/client';\nimport { SERVICE_FRAGMENT } from '@c8y/ngx-components/services/shared';\nimport { get } from 'lodash-es';\n\n@Injectable({ providedIn: 'root' })\nexport class ServicesDeviceTabGuard {\n constructor(private inventoryService: InventoryService) {}\n\n canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {\n const id = get(route, 'params.id') || get(route, 'parent.params.id');\n return this.inventoryService\n .childAdditionsList({ id }, { query: `type eq ${SERVICE_FRAGMENT}`, pageSize: 1 })\n .then(result => !!result?.data?.length);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { InventoryService, ISource } from '@c8y/client';\nimport {\n Breadcrumb,\n BreadcrumbFactory,\n BreadcrumbItem,\n gettext,\n ViewContext\n} from '@c8y/ngx-components';\n\n@Injectable()\nexport class ServicesBreadcrumbFactory implements BreadcrumbFactory {\n private contextData;\n\n constructor(private inventoryService: InventoryService) {}\n\n async get(route: ActivatedRoute) {\n const { context, contextData } = route.snapshot.data;\n const { routeConfig } = route.snapshot;\n\n this.contextData = contextData || this.contextData;\n\n if (\n (context === ViewContext.Service || (routeConfig as any)?.context === ViewContext.Service) &&\n !!this.contextData\n ) {\n const serviceMO = (\n await this.inventoryService.detail(this.contextData, { withParents: true })\n )?.data;\n const breadcrumb: Breadcrumb = { items: [] };\n const breadcrumbItems: BreadcrumbItem[] = [];\n const device: ISource = serviceMO?.additionParents?.references[0]?.managedObject;\n\n if (device) {\n breadcrumbItems.push({\n label: gettext('Devices'),\n icon: 'exchange'\n } as BreadcrumbItem);\n\n breadcrumbItems.push({\n label: gettext('All devices'),\n path: '/device'\n });\n\n breadcrumbItems.push({\n label: device.name,\n path: `/device/${device.id}`\n });\n breadcrumbItems.push({\n label: gettext('Services'),\n path: `/device/${device.id}/services`\n });\n breadcrumbItems.push({\n label: serviceMO.name\n } as BreadcrumbItem);\n\n const label = (routeConfig as { label: string })?.label;\n\n if (!!label) {\n breadcrumbItems.push({ label } as BreadcrumbItem);\n }\n }\n\n breadcrumb.items = breadcrumbItems;\n return breadcrumb;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CoreModule, gettext, hookBreadcrumb, hookRoute, ViewContext } from '@c8y/ngx-components';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport {\n LastUpdatedDateCellRendererComponent,\n ServicesNameCellRendererComponent,\n ServicesStatusCellRendererComponent\n} from './columns';\nimport { ServicesDeviceTabComponent } from './services-device-tab.component';\nimport { ServicesDeviceTabGuard } from './services-device-tab.guard';\nimport { ServicesBreadcrumbFactory } from './services.breadcrumb-factory';\n\n@NgModule({\n imports: [CoreModule, RouterModule, TooltipModule],\n declarations: [\n ServicesDeviceTabComponent,\n LastUpdatedDateCellRendererComponent,\n ServicesNameCellRendererComponent,\n ServicesStatusCellRendererComponent\n ],\n providers: [\n ServicesBreadcrumbFactory,\n hookRoute({\n context: ViewContext.Device,\n path: 'services',\n component: ServicesDeviceTabComponent,\n label: gettext('Services'),\n icon: 'statistics',\n priority: 500,\n canActivate: [ServicesDeviceTabGuard]\n }),\n hookBreadcrumb(ServicesBreadcrumbFactory)\n ]\n})\nexport class ServicesDeviceTabModule {}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@c8y/ngx-components';\nimport { serviceCommandTabFeatureProvider } from '@c8y/ngx-components/services/service-command-tab';\nimport { ServicesDeviceTabModule } from './services-device-tab';\n\n@NgModule({\n providers: [serviceCommandTabFeatureProvider],\n imports: [CoreModule, ServicesDeviceTabModule]\n})\nexport class ServicesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i2.StatusOptionsService","i1","i3","i4.StatusOptionsService","i6"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-services.mjs","sources":["../../services/services-device-tab/columns/last-updated-date.cell-renderer.component.ts","../../services/services-device-tab/columns/last-updated-date.device-grid-column.ts","../../services/services-device-tab/columns/name.cell-renderer.component.ts","../../services/services-device-tab/columns/name.grid-column.ts","../../services/services-device-tab/columns/service-type.grid-column.ts","../../services/status-options/status-options.model.ts","../../services/status-options/status-options.service.ts","../../services/services-device-tab/columns/status.cell-renderer.component.ts","../../services/services-device-tab/columns/status.cell-renderer.component.html","../../services/services-device-tab/columns/status.grid-column.ts","../../services/services-device-tab/services-device-tab.component.ts","../../services/services-device-tab/services-device-tab.component.html","../../services/services-device-tab/services-device-tab.guard.ts","../../services/services-device-tab/services.breadcrumb-factory.ts","../../services/services-device-tab/services-device-tab.module.ts","../../services/services.module.ts","../../services/c8y-ngx-components-services.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { CellRendererContext, DatePipe } from '@c8y/ngx-components';\n\n@Component({\n template: `{{ context.value | c8yDate }}`,\n selector: 'c8y-last-updated-date-cell-renderer',\n imports: [DatePipe]\n})\nexport class LastUpdatedDateCellRendererComponent {\n constructor(public context: CellRendererContext) {}\n}\n","import { FormGroup } from '@angular/forms';\nimport { BaseColumn, ColumnConfig, gettext } from '@c8y/ngx-components';\nimport { LastUpdatedDateCellRendererComponent } from './last-updated-date.cell-renderer.component';\n\nexport class LastUpdatedDateGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n this.path = 'lastUpdated';\n this.name = 'lastUpdatedDate';\n this.header = gettext('Last updated');\n this.cellRendererComponent = LastUpdatedDateCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n fields: [\n {\n type: 'object',\n key: 'lastUpdated',\n templateOptions: {\n label: gettext('Show services updated`between dates`')\n },\n fieldGroup: [\n {\n type: 'date-time',\n key: 'after',\n templateOptions: {\n label: gettext('from`date`')\n },\n expressionProperties: {\n 'templateOptions.maxDate': (model: any) => model?.before\n }\n },\n {\n type: 'date-time',\n key: 'before',\n templateOptions: {\n label: gettext('to`date`')\n },\n expressionProperties: {\n 'templateOptions.minDate': (model: any) => model?.after\n }\n }\n ]\n }\n ],\n formGroup: new FormGroup({}),\n getFilter: model => {\n const filter: any = {};\n const dates = model && model.lastUpdated;\n if (dates && (dates.after || dates.before)) {\n filter.__and = [];\n if (dates.after) {\n const after = this.formatDate(dates.after);\n filter.__and.push({\n 'lastUpdated.date': { __gt: after }\n });\n }\n if (dates.before) {\n const before = this.formatDate(dates.before);\n filter.__and.push({\n 'lastUpdated.date': { __lt: before }\n });\n }\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: 'lastUpdated.date' }]\n };\n }\n\n protected formatDate(dateToFormat: string): string {\n return new Date(dateToFormat).toISOString();\n }\n}\n","import { Component } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n template: `\n <a class=\"interact\" [title]=\"context.item.name\" [routerLink]=\"['/service', context.item.id]\">\n {{ context.item.name }}\n </a>\n `,\n selector: 'c8y-services-name-cell-renderer',\n imports: [RouterLink]\n})\nexport class ServicesNameCellRendererComponent {\n constructor(public context: CellRendererContext) {}\n}\n","import {\n BaseColumn,\n ColumnConfig,\n getBasicInputArrayFormFieldConfig,\n gettext\n} from '@c8y/ngx-components';\nimport { ServicesNameCellRendererComponent } from './name.cell-renderer.component';\n\nexport class ServiceNameGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'name';\n this.path = 'name';\n this.header = gettext('Name');\n this.cellRendererComponent = ServicesNameCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n fields: getBasicInputArrayFormFieldConfig({\n key: 'names',\n label: gettext('Filter services by name'),\n addText: gettext('Add next`name`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: gettext('daemon`SERVICE_NAME`')\n }),\n getFilter(model: any): any {\n const filter: any = {};\n if (model.names.length) {\n filter.name = { __in: model.names };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import {\n BaseColumn,\n ColumnConfig,\n getBasicInputArrayFormFieldConfig,\n gettext\n} from '@c8y/ngx-components';\n\nexport class ServiceTypeGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'serviceType';\n this.path = 'serviceType';\n this.header = gettext('Type');\n\n this.filterable = true;\n\n this.filteringConfig = {\n fields: getBasicInputArrayFormFieldConfig({\n key: 'serviceTypes',\n label: gettext('Filter services by type'),\n addText: gettext('Add next`type`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: 'systemd'\n }),\n getFilter(model: any): any {\n const filter: any = {};\n if (model.serviceTypes.length) {\n filter.serviceType = { __in: model.serviceTypes };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { gettext, hookGeneric, GenericHookType, GenericHookOptions } from '@c8y/ngx-components';\nimport { SupportedIconsSuggestions } from '@c8y/ngx-components/icon-selector/icons';\n\n/**\n * Extension hook allowing to register custom service statuses and configure their visual presentation.\n * @deprecated Consider using the `hookServiceStatus` function instead.\n */\nexport const HOOK_SERVICE_STATUS = new InjectionToken<StatusOption | StatusOption[]>(\n 'HOOK_SERVICE_STATUS'\n);\n\n/**\n * Extension hook allowing to register custom service statuses and configure their visual presentation.\n *\n * You can either provide a single `StatusOption` as parameter:\n * ```typescript\n * hookServiceStatus(...)\n * ```\n *\n * Or an array to directly register multiple:\n * ```typescript\n * hookServiceStatus([...])\n * ```\n *\n * Or you provide an Service that implements `ExtensionFactory<StatusOption>`\n * ```typescript\n * export class MyServiceStatusFactory implements ExtensionFactory<StatusOption> {...}\n * ...\n * hookServiceStatus(MyServiceStatusFactory)\n * ```\n * A typed alternative to `HOOK_SERVICE_STATUS`.\n * @param status The `StatusOption`'s or `ExtensionFactory` to be provided.\n * @returns An `Provider` to be provided in your module.\n */\nexport function hookServiceStatus(\n status: GenericHookType<StatusOption>,\n options?: Partial<GenericHookOptions>\n) {\n return hookGeneric<StatusOption>(status, HOOK_SERVICE_STATUS, options);\n}\n\n/**\n * Defines the visual presentation of a service status option.\n */\nexport interface StatusOption {\n /**\n * Key used for this status in the c8y_Service object.\n */\n key: string;\n /**\n * Human readable name of the status used to be translated.\n */\n label: string;\n /**\n * An icon to use to display the status.\n */\n icon: SupportedIconsSuggestions;\n /**\n * CSS class(es) used to e.g. accent the status (contextual color, etc.)\n */\n class?: string;\n}\n\n/**\n * Standard status options supported by the platform.\n */\nexport const SERVICE_STATUS_OPTIONS: StatusOption[] = [\n {\n key: 'up',\n label: gettext('Up'),\n icon: 'check-circle',\n class: 'text-success'\n },\n {\n key: 'down',\n label: gettext('Down'),\n icon: 'exclamation-circle',\n class: 'text-danger'\n },\n {\n key: 'unknown',\n label: gettext('Unknown'),\n icon: 'inactive-state'\n }\n];\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { flatten } from 'lodash-es';\nimport { HOOK_SERVICE_STATUS, SERVICE_STATUS_OPTIONS, StatusOption } from './status-options.model';\n\n/**\n * The service for system wide registered service status options.\n * It provides the standard service statuses plus all custom status options\n * registered with the <code>HOOK_SERVICE_STATUS</code> extension hook.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class StatusOptionsService {\n get options(): StatusOption[] {\n return this._options;\n }\n\n private _options: StatusOption[];\n\n constructor(\n @Optional() @Inject(HOOK_SERVICE_STATUS) options: Array<StatusOption | StatusOption[]>\n ) {\n this._options = [...SERVICE_STATUS_OPTIONS, ...flatten(options)];\n }\n}\n","import { Component } from '@angular/core';\nimport { CellRendererContext, IconDirective, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { StatusOptionsService } from '../../status-options';\nimport { NgSwitch, NgFor, NgSwitchCase, NgSwitchDefault } from '@angular/common';\nimport { TooltipDirective } from 'ngx-bootstrap/tooltip';\n\n@Component({\n templateUrl: 'status.cell-renderer.component.html',\n selector: 'c8y-services-status-cell-renderer',\n imports: [\n NgSwitch,\n NgFor,\n NgSwitchCase,\n IconDirective,\n TooltipDirective,\n NgSwitchDefault,\n C8yTranslatePipe\n ]\n})\nexport class ServicesStatusCellRendererComponent {\n constructor(\n public context: CellRendererContext,\n public statusOptionsService: StatusOptionsService\n ) {}\n}\n","<span [ngSwitch]=\"context.item.status\">\n <ng-container *ngFor=\"let option of statusOptionsService.options\">\n <i\n *ngSwitchCase=\"option.key\"\n [c8yIcon]=\"option.icon\"\n class=\"{{ option.class }}\"\n [tooltip]=\"option.label | translate\"\n container=\"body\"\n placement=\"top\"\n ></i>\n </ng-container>\n <i\n *ngSwitchDefault\n c8yIcon=\"job\"\n class=\"text-primary\"\n [tooltip]=\"context.item.status\"\n container=\"body\"\n placement=\"top\"\n ></i>\n</span>\n","import {\n BaseColumn,\n ColumnConfig,\n ColumnDataType,\n getBasicInputArrayFormFieldConfig,\n gettext\n} from '@c8y/ngx-components';\nimport { entries } from 'lodash-es';\nimport { StatusOptionsService } from '../../status-options';\nimport { ServicesStatusCellRendererComponent } from './status.cell-renderer.component';\n\nexport class StatusGridColumn extends BaseColumn {\n constructor(statusOptionsService: StatusOptionsService, initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'status';\n this.path = 'status';\n this.header = gettext('Status');\n this.dataType = ColumnDataType.Icon;\n this.cellRendererComponent = ServicesStatusCellRendererComponent;\n this.filterable = true;\n this.resizable = false;\n\n this.filteringConfig = {\n fields: [\n {\n key: 'statusOptions',\n type: 'object',\n props: {\n label: gettext('Show devices with status')\n },\n fieldGroup: [\n ...statusOptionsService.options.map(option => ({\n key: option.key,\n type: 'switch',\n props: {\n label: option.label,\n optionDataCy: option.key\n }\n }))\n ]\n },\n ...getBasicInputArrayFormFieldConfig({\n key: 'custom',\n label: gettext('or filter by custom status'),\n addText: gettext('Add next`custom status`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: gettext('restarting`SERVICE_STATUS`'),\n optional: true\n })\n ],\n getFilter(model) {\n const filter: any = {};\n filter.status = {\n __in: [\n ...entries(model?.statusOptions || {})\n .filter(([_, value]) => !!value)\n .map(([key, _]) => key),\n ...model.custom.filter(c => !!c)\n ]\n };\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import { Component, EventEmitter } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { IManagedObject, InventoryService, IResultList, QueriesUtil } from '@c8y/client';\nimport {\n ActionControl,\n Column,\n DataGridService,\n DataSourceModifier,\n gettext,\n ServerSideDataResult,\n DataGridComponent,\n EmptyStateContextDirective,\n EmptyStateComponent,\n ColumnDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport {\n Service,\n SERVICE_FRAGMENT,\n ServiceCommandService\n} from '@c8y/ngx-components/services/shared';\nimport { StatusOptionsService } from '../status-options';\nimport {\n LastUpdatedDateGridColumn,\n ServiceNameGridColumn,\n ServiceTypeGridColumn,\n StatusGridColumn\n} from './columns';\nimport { NgFor } from '@angular/common';\n\n@Component({\n selector: 'c8y-services-device-tab',\n templateUrl: 'services-device-tab.component.html',\n imports: [\n DataGridComponent,\n EmptyStateContextDirective,\n EmptyStateComponent,\n NgFor,\n ColumnDirective,\n C8yTranslatePipe\n ]\n})\nexport class ServicesDeviceTabComponent {\n deviceId: string | number = this.route.snapshot.parent.data.contextData.id;\n\n sizeRequest: Promise<number>;\n sizeRequestDone = false;\n\n refresh$: EventEmitter<void> = new EventEmitter();\n pagination = {\n pageSize: 50,\n currentPage: 1\n };\n\n actionControls: ActionControl[] = [];\n columns: Column[] = [\n new StatusGridColumn(this.statusOptionsService),\n new ServiceNameGridColumn(),\n new ServiceTypeGridColumn(),\n new LastUpdatedDateGridColumn()\n ];\n\n serverSideDataCallback: any;\n\n noResultsMessage = gettext('No results to display.');\n noDataMessage = gettext('No services to display.');\n noResultsSubtitle = gettext('Refine your search terms or check your spelling.');\n\n private queriesUtil: QueriesUtil = new QueriesUtil();\n\n constructor(\n private route: ActivatedRoute,\n private inventoryService: InventoryService,\n private gridService: DataGridService,\n private statusOptionsService: StatusOptionsService,\n private serviceCommand: ServiceCommandService\n ) {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n this.sizeRequest = this.inventoryService\n .childAdditionsList(this.deviceId, {\n query: `type eq ${SERVICE_FRAGMENT}`,\n withTotalPages: true,\n pageSize: 1\n })\n .then(response => {\n this.sizeRequestDone = true;\n return response?.paging?.totalPages;\n });\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const query = this.queriesUtil.buildQuery(\n this.queriesUtil.addAndFilter(this.gridService.getQueryObj(dataSourceModifier.columns), {\n type: SERVICE_FRAGMENT\n })\n );\n\n const dataRequest: Promise<IResultList<IManagedObject>> =\n this.inventoryService.childAdditionsList(this.deviceId, {\n query,\n withTotalPages: true,\n pageSize: dataSourceModifier.pagination.pageSize,\n currentPage: dataSourceModifier.pagination.currentPage\n });\n\n const filtererdSizeRequest: Promise<number> = this.inventoryService\n .childAdditionsList(this.deviceId, {\n query,\n withTotalPages: true,\n pageSize: 1\n })\n .then(response => response?.paging?.totalPages);\n\n const [dataResponse, size, filteredSize] = await Promise.all([\n dataRequest,\n this.sizeRequest,\n filtererdSizeRequest\n ]);\n\n const { res, data, paging } = dataResponse;\n\n const commands = this.serviceCommand.getAllSupportedCommands(data as unknown as Service[]);\n this.actionControls = this.serviceCommand.generateActionControls(commands);\n\n const serverSideDataResult: ServerSideDataResult = {\n res,\n data,\n paging,\n filteredSize,\n size\n };\n\n return serverSideDataResult;\n }\n\n trackByName(_index, column: Column): string {\n return column.name;\n }\n}\n","<div class=\"content-fullpage\">\n <c8y-data-grid\n [title]=\"'Services' | translate\"\n [refresh]=\"refresh$\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-tools'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : null\"\n *emptyStateContext=\"let stats; isLoading as isLoading\"\n [horizontal]=\"stats?.size > 0\"\n ></c8y-ui-empty-state>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { InventoryService } from '@c8y/client';\nimport { SERVICE_FRAGMENT } from '@c8y/ngx-components/services/shared';\nimport { get } from 'lodash-es';\n\n@Injectable({ providedIn: 'root' })\nexport class ServicesDeviceTabGuard {\n constructor(private inventoryService: InventoryService) {}\n\n canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {\n const id = get(route, 'params.id') || get(route, 'parent.params.id');\n return this.inventoryService\n .childAdditionsList({ id }, { query: `type eq ${SERVICE_FRAGMENT}`, pageSize: 1 })\n .then(result => !!result?.data?.length);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { InventoryService, ISource } from '@c8y/client';\nimport {\n Breadcrumb,\n BreadcrumbFactory,\n BreadcrumbItem,\n gettext,\n ViewContext\n} from '@c8y/ngx-components';\n\n@Injectable()\nexport class ServicesBreadcrumbFactory implements BreadcrumbFactory {\n private contextData;\n\n constructor(private inventoryService: InventoryService) {}\n\n async get(route: ActivatedRoute) {\n const { context, contextData } = route.snapshot.data;\n const { routeConfig } = route.snapshot;\n\n this.contextData = contextData || this.contextData;\n\n if (\n (context === ViewContext.Service || (routeConfig as any)?.context === ViewContext.Service) &&\n !!this.contextData\n ) {\n const serviceMO = (\n await this.inventoryService.detail(this.contextData, { withParents: true })\n )?.data;\n const breadcrumb: Breadcrumb = { items: [] };\n const breadcrumbItems: BreadcrumbItem[] = [];\n const device: ISource = serviceMO?.additionParents?.references[0]?.managedObject;\n\n if (device) {\n breadcrumbItems.push({\n label: gettext('Devices'),\n icon: 'exchange'\n } as BreadcrumbItem);\n\n breadcrumbItems.push({\n label: gettext('All devices'),\n path: '/device'\n });\n\n breadcrumbItems.push({\n label: device.name,\n path: `/device/${device.id}`\n });\n breadcrumbItems.push({\n label: gettext('Services'),\n path: `/device/${device.id}/services`\n });\n breadcrumbItems.push({\n label: serviceMO.name\n } as BreadcrumbItem);\n\n const label = (routeConfig as { label: string })?.label;\n\n if (!!label) {\n breadcrumbItems.push({ label } as BreadcrumbItem);\n }\n }\n\n breadcrumb.items = breadcrumbItems;\n return breadcrumb;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { gettext, hookBreadcrumb, hookRoute, ViewContext } from '@c8y/ngx-components';\nimport {\n LastUpdatedDateCellRendererComponent,\n ServicesNameCellRendererComponent,\n ServicesStatusCellRendererComponent\n} from './columns';\nimport { ServicesDeviceTabComponent } from './services-device-tab.component';\nimport { ServicesDeviceTabGuard } from './services-device-tab.guard';\nimport { ServicesBreadcrumbFactory } from './services.breadcrumb-factory';\n\n@NgModule({\n imports: [\n ServicesDeviceTabComponent,\n LastUpdatedDateCellRendererComponent,\n ServicesNameCellRendererComponent,\n ServicesStatusCellRendererComponent\n ],\n providers: [\n ServicesBreadcrumbFactory,\n hookRoute({\n context: ViewContext.Device,\n path: 'services',\n component: ServicesDeviceTabComponent,\n label: gettext('Services'),\n icon: 'statistics',\n priority: 500,\n canActivate: [ServicesDeviceTabGuard]\n }),\n hookBreadcrumb(ServicesBreadcrumbFactory)\n ]\n})\nexport class ServicesDeviceTabModule {}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@c8y/ngx-components';\nimport { serviceCommandTabFeatureProvider } from '@c8y/ngx-components/services/service-command-tab';\nimport { ServicesDeviceTabModule } from './services-device-tab';\n\n@NgModule({\n providers: [serviceCommandTabFeatureProvider],\n imports: [CoreModule, ServicesDeviceTabModule]\n})\nexport class ServicesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.StatusOptionsService","i1","i2","i3","i4.StatusOptionsService"],"mappings":"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"}
|