@c8y/ngx-components 1022.35.1 → 1022.44.7
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/actility-device-registration/actility-device-registration.component.d.ts.map +1 -1
- package/actility-device-registration/actility-device-registration.service.d.ts.map +1 -1
- package/alarms/alarm-details.component.d.ts.map +1 -1
- package/alarms/alarm-info.component.d.ts.map +1 -1
- package/alarms/alarm-severity-to-icon-class.pipe.d.ts +9 -0
- package/alarms/alarm-severity-to-icon-class.pipe.d.ts.map +1 -0
- package/alarms/alarms-icon.component.d.ts.map +1 -1
- package/alarms/alarms-interval-refresh.component.d.ts.map +1 -1
- package/alarms/alarms-list.component.d.ts.map +1 -1
- package/alarms/alarms-view.service.d.ts.map +1 -1
- package/alarms/alarms.component.d.ts.map +1 -1
- package/alarms/alarms.helper.d.ts.map +1 -1
- package/alarms/alarms.model.d.ts.map +1 -1
- package/alarms/cockpit/index.d.ts.map +1 -1
- package/alarms/devicemanagement/index.d.ts.map +1 -1
- package/alarms/index.d.ts +1 -0
- package/alarms/index.d.ts.map +1 -1
- package/asset-properties/asset-properties.model.d.ts +77 -1
- package/asset-properties/asset-properties.model.d.ts.map +1 -1
- package/asset-properties/asset-properties.service.d.ts +17 -0
- package/asset-properties/asset-properties.service.d.ts.map +1 -1
- package/asset-properties/asset-property-list/asset-property-collapse-button-title.pipe.d.ts +14 -0
- package/asset-properties/asset-property-list/asset-property-collapse-button-title.pipe.d.ts.map +1 -0
- package/asset-properties/asset-property-list/asset-property-icon.pipe.d.ts +2 -1
- 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 +52 -13
- package/asset-properties/asset-property-list/asset-property-list.component.d.ts.map +1 -1
- package/asset-properties/asset-property-list/asset-property-value.pipe.d.ts +7 -3
- package/asset-properties/asset-property-list/asset-property-value.pipe.d.ts.map +1 -1
- package/asset-properties/asset-property-list/tree-data-source.d.ts +1 -0
- package/asset-properties/asset-property-list/tree-data-source.d.ts.map +1 -1
- package/asset-properties/asset-property-selector-drawer/asset-property-selector-drawer.component.d.ts.map +1 -1
- package/asset-properties/computed-properties-config/computed-properties-config.component.d.ts +39 -0
- package/asset-properties/computed-properties-config/computed-properties-config.component.d.ts.map +1 -0
- package/asset-properties/computed-properties.service.d.ts +27 -0
- package/asset-properties/computed-properties.service.d.ts.map +1 -0
- package/asset-properties/custom-properties-drawer/custom-properties-drawer.component.d.ts +11 -6
- package/asset-properties/custom-properties-drawer/custom-properties-drawer.component.d.ts.map +1 -1
- package/asset-properties/custom-properties-drawer.service.d.ts +2 -1
- package/asset-properties/custom-properties-drawer.service.d.ts.map +1 -1
- package/asset-properties/index.d.ts +1 -0
- package/asset-properties/index.d.ts.map +1 -1
- package/assets-navigator/asset-node.d.ts.map +1 -1
- package/assets-navigator/asset-node.service.d.ts.map +1 -1
- package/assets-navigator/asset-selector/asset-selector-node.component.d.ts.map +1 -1
- package/assets-navigator/asset-selector/asset-selector.model.d.ts +1 -2
- package/assets-navigator/asset-selector/asset-selector.model.d.ts.map +1 -1
- package/assets-navigator/asset-selector/miller-view.component.d.ts +17 -5
- package/assets-navigator/asset-selector/miller-view.component.d.ts.map +1 -1
- package/assets-navigator/asset-selector/unassigned-devices-node.d.ts.map +1 -1
- package/assets-navigator/load-more-node.d.ts.map +1 -1
- package/auth-configuration/basic-settings/login-settings.component.d.ts.map +1 -1
- package/auth-configuration/basic-settings/session-configuration.component.d.ts.map +1 -1
- package/auth-configuration/factories/navigation.factory.d.ts.map +1 -1
- package/auth-configuration/factories/tabs.factory.d.ts.map +1 -1
- package/auth-configuration/sso-configuration/sso-configuration.component.d.ts.map +1 -1
- package/auth-configuration/sso-configuration/template-parts/access-mapping/inventory-roles-modal.component.d.ts.map +1 -1
- package/auth-configuration/sso-configuration/template-parts/signature-configuration.component.d.ts.map +1 -1
- package/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.d.ts.map +1 -1
- package/binary-file-download/binary-file-download.service.d.ts.map +1 -1
- package/bookmarks/bookmarks.component.d.ts.map +1 -1
- package/bookmarks/bookmarks.service.d.ts.map +1 -1
- package/bookmarks/edit-bookmarks/edit-bookmarks.component.d.ts.map +1 -1
- package/branding/dark-theme/dark-theme-tab.factory.d.ts.map +1 -1
- package/branding/extra-css-branding-editor/extra-css-branding-editor-tab.factory.d.ts.map +1 -1
- package/branding/plain-branding-editor/plain-branding-editor-tab.factory.d.ts.map +1 -1
- package/branding/shared/lazy/branding-form/branding-form.component.d.ts.map +1 -1
- package/branding/shared/lazy/branding-import-modal/branding-import-modal.component.d.ts.map +1 -1
- package/branding/shared/lazy/edit-branding-router-outlet/edit-branding-router-outlet.component.d.ts.map +1 -1
- package/cockpit-config/cockpit-config.guard.d.ts.map +1 -1
- package/cockpit-config/cockpit-configuration.component.d.ts.map +1 -1
- package/computed-asset-properties/alarm-count/alarm-count-3-months-computed-property.d.ts +8 -0
- package/computed-asset-properties/alarm-count/alarm-count-3-months-computed-property.d.ts.map +1 -0
- package/computed-asset-properties/alarm-count/alarm-count-config.component.d.ts +26 -0
- package/computed-asset-properties/alarm-count/alarm-count-config.component.d.ts.map +1 -0
- package/computed-asset-properties/alarm-count/alarm-count-today-computed-property.d.ts +8 -0
- package/computed-asset-properties/alarm-count/alarm-count-today-computed-property.d.ts.map +1 -0
- package/computed-asset-properties/alarm-count/alarm-count-value.d.ts +17 -0
- package/computed-asset-properties/alarm-count/alarm-count-value.d.ts.map +1 -0
- package/computed-asset-properties/alarm-count/alarm-count.model.d.ts +6 -0
- package/computed-asset-properties/alarm-count/alarm-count.model.d.ts.map +1 -0
- package/computed-asset-properties/c8y-ngx-components-computed-asset-properties.d.ts.map +1 -0
- package/computed-asset-properties/child-count/child-assets-count-computed-property.d.ts +14 -0
- package/computed-asset-properties/child-count/child-assets-count-computed-property.d.ts.map +1 -0
- package/computed-asset-properties/child-count/child-count-value.d.ts +14 -0
- package/computed-asset-properties/child-count/child-count-value.d.ts.map +1 -0
- package/computed-asset-properties/child-count/child-devices-count-computed-property.d.ts +14 -0
- package/computed-asset-properties/child-count/child-devices-count-computed-property.d.ts.map +1 -0
- package/computed-asset-properties/common/realtime-value-base.d.ts +32 -0
- package/computed-asset-properties/common/realtime-value-base.d.ts.map +1 -0
- package/computed-asset-properties/common/realtime-value-handler.d.ts +19 -0
- package/computed-asset-properties/common/realtime-value-handler.d.ts.map +1 -0
- package/computed-asset-properties/configuration-snapshot/configuration-snapshot-computed-property.d.ts +7 -0
- package/computed-asset-properties/configuration-snapshot/configuration-snapshot-computed-property.d.ts.map +1 -0
- package/computed-asset-properties/configuration-snapshot/configuration-snapshot-config.component.d.ts +21 -0
- package/computed-asset-properties/configuration-snapshot/configuration-snapshot-config.component.d.ts.map +1 -0
- package/computed-asset-properties/configuration-snapshot/configuration-snapshot.model.d.ts +8 -0
- package/computed-asset-properties/configuration-snapshot/configuration-snapshot.model.d.ts.map +1 -0
- package/computed-asset-properties/event-count/event-count-3-months.d.ts +8 -0
- package/computed-asset-properties/event-count/event-count-3-months.d.ts.map +1 -0
- package/computed-asset-properties/event-count/event-count-config.component.d.ts +18 -0
- package/computed-asset-properties/event-count/event-count-config.component.d.ts.map +1 -0
- package/computed-asset-properties/event-count/event-count-today.d.ts +8 -0
- package/computed-asset-properties/event-count/event-count-today.d.ts.map +1 -0
- package/computed-asset-properties/event-count/event-count-value.d.ts +17 -0
- package/computed-asset-properties/event-count/event-count-value.d.ts.map +1 -0
- package/computed-asset-properties/event-count/event-count.model.d.ts +4 -0
- package/computed-asset-properties/event-count/event-count.model.d.ts.map +1 -0
- package/computed-asset-properties/index.d.ts +3 -0
- package/computed-asset-properties/index.d.ts.map +1 -0
- package/computed-asset-properties/last-device-message/last-device-message-computed-property.d.ts +3 -0
- package/computed-asset-properties/last-device-message/last-device-message-computed-property.d.ts.map +1 -0
- package/computed-asset-properties/last-device-message/last-device-message-value.d.ts +13 -0
- package/computed-asset-properties/last-device-message/last-device-message-value.d.ts.map +1 -0
- package/computed-asset-properties/last-measurement/last-measurement-computed-property.d.ts +8 -0
- package/computed-asset-properties/last-measurement/last-measurement-computed-property.d.ts.map +1 -0
- package/computed-asset-properties/last-measurement/last-measurement-config.component.d.ts +48 -0
- package/computed-asset-properties/last-measurement/last-measurement-config.component.d.ts.map +1 -0
- package/computed-asset-properties/last-measurement/last-measurement-value.d.ts +13 -0
- package/computed-asset-properties/last-measurement/last-measurement-value.d.ts.map +1 -0
- package/computed-asset-properties/last-measurement/last-measurement.model.d.ts +28 -0
- package/computed-asset-properties/last-measurement/last-measurement.model.d.ts.map +1 -0
- package/computed-asset-properties/strategies/alarm-count-strategy.d.ts +17 -0
- package/computed-asset-properties/strategies/alarm-count-strategy.d.ts.map +1 -0
- package/computed-asset-properties/strategies/child-count-strategy.d.ts +14 -0
- package/computed-asset-properties/strategies/child-count-strategy.d.ts.map +1 -0
- package/computed-asset-properties/strategies/count-strategy-base.d.ts +12 -0
- package/computed-asset-properties/strategies/count-strategy-base.d.ts.map +1 -0
- package/computed-asset-properties/strategies/event-count-strategy.d.ts +16 -0
- package/computed-asset-properties/strategies/event-count-strategy.d.ts.map +1 -0
- package/computed-asset-properties/strategies/last-device-message-strategy.d.ts +20 -0
- package/computed-asset-properties/strategies/last-device-message-strategy.d.ts.map +1 -0
- package/computed-asset-properties/strategies/last-measurement-strategy.d.ts +16 -0
- package/computed-asset-properties/strategies/last-measurement-strategy.d.ts.map +1 -0
- package/connectivity/abstract-connectivity-node.factory.d.ts.map +1 -1
- package/connectivity/actility/actility-tab.factory.d.ts.map +1 -1
- package/connectivity/sigfox/sigfox-tab.factory.d.ts.map +1 -1
- package/connectivity/sim/sim.module.d.ts.map +1 -1
- package/context-dashboard/cockpit-home-dashboard/cockpit-dashboard.component.d.ts.map +1 -1
- package/context-dashboard/cockpit-home-dashboard/cockpit-dashboard.model.d.ts.map +1 -1
- package/context-dashboard/cockpit-home-dashboard/cockpit-dashboard.module.d.ts.map +1 -1
- package/context-dashboard/context-dashboard.component.d.ts.map +1 -1
- package/context-dashboard/context-dashboard.model.d.ts +16 -0
- package/context-dashboard/context-dashboard.model.d.ts.map +1 -1
- package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
- package/context-dashboard/dashboard-detail.component.d.ts.map +1 -1
- package/context-dashboard/dashboard-detail.service.d.ts.map +1 -1
- package/context-dashboard/dashboard-details-tabs.factory.d.ts.map +1 -1
- package/context-dashboard/dashboard-settings/dashboard-general-settings.component.d.ts.map +1 -1
- package/context-dashboard/dashboard-settings/dashboard-version-history.component.d.ts.map +1 -1
- package/context-dashboard/dashboard-settings/typed-dashboard-settings.component.d.ts.map +1 -1
- package/context-dashboard/device-info-dashboard/device-info-dashboard.component.d.ts.map +1 -1
- package/context-dashboard/device-info-dashboard/device-info-dashboard.module.d.ts.map +1 -1
- package/context-dashboard/device-management-home-dashboard/device-management-home-dashboard.component.d.ts.map +1 -1
- package/context-dashboard/device-management-home-dashboard/device-management-home-dashboard.module.d.ts.map +1 -1
- package/context-dashboard/new-dashboard.guard.d.ts.map +1 -1
- package/context-dashboard/widget-config/appearance-settings.component.d.ts.map +1 -1
- package/context-dashboard/widget-config.service.d.ts +11 -1
- package/context-dashboard/widget-config.service.d.ts.map +1 -1
- package/core/action/action.service.d.ts +1 -1
- package/core/action-bar/action-bar.service.d.ts +1 -1
- package/core/authentication/simplified-auth.service.d.ts +1 -1
- package/core/authentication/simplified-auth.service.d.ts.map +1 -1
- package/core/bottom-drawer/bottom-drawer.component.d.ts +16 -2
- package/core/bottom-drawer/bottom-drawer.component.d.ts.map +1 -1
- package/core/bottom-drawer/bottom-drawer.service.d.ts +13 -5
- package/core/bottom-drawer/bottom-drawer.service.d.ts.map +1 -1
- package/core/breadcrumb/breadcrumb.service.d.ts +1 -1
- package/core/common/extension-hooks.d.ts.map +1 -1
- package/core/common/options.service.d.ts +1 -1
- package/core/common/service-registry.service.d.ts +1 -1
- package/core/common/ui-state.service.d.ts +7 -7
- package/core/common/ui-state.service.d.ts.map +1 -1
- package/core/common/user-preferences/user-preferences.service.d.ts +4 -4
- package/core/common/user-preferences/user-preferences.service.d.ts.map +1 -1
- package/core/dashboard/widgets-dashboard.component.d.ts +9 -1
- package/core/dashboard/widgets-dashboard.component.d.ts.map +1 -1
- package/core/data-grid/action-controls-extension.service.d.ts +1 -1
- package/core/data-grid/filter-chip/filter-mapper.factory.d.ts +1 -1
- package/core/date-picker/date-picker.component.d.ts.map +1 -1
- package/core/docs/docs.models.d.ts +1 -1
- package/core/docs/docs.module.d.ts +1 -1
- package/core/docs/help-and-support-outlet/help-and-support-outlet.module.d.ts +1 -1
- package/core/docs/legal-notices-outlet/legal-notices-outlet.module.d.ts +1 -1
- package/core/docs/support-outlet/support-outlet.component.d.ts +4 -3
- package/core/docs/support-outlet/support-outlet.component.d.ts.map +1 -1
- package/core/docs/support-outlet/support-outlet.module.d.ts +1 -1
- package/core/drawer/drawer.service.d.ts +1 -1
- package/core/dynamic-component/dynamic-component.model.d.ts +18 -4
- package/core/dynamic-component/dynamic-component.model.d.ts.map +1 -1
- package/core/dynamic-forms/i18n/translate.extension.d.ts.map +1 -1
- package/core/feedback-form/feedback-form.component.d.ts +27 -0
- package/core/feedback-form/feedback-form.component.d.ts.map +1 -0
- package/core/feedback-form/feedback-form.model.d.ts +6 -0
- package/core/feedback-form/feedback-form.model.d.ts.map +1 -0
- package/core/feedback-form/index.d.ts +2 -0
- package/core/feedback-form/index.d.ts.map +1 -0
- package/core/i18n/gettext.d.ts +4 -1
- package/core/i18n/gettext.d.ts.map +1 -1
- package/core/i18n/pattern-messages.data.d.ts +61 -0
- package/core/i18n/pattern-messages.data.d.ts.map +1 -1
- package/core/i18n/patterns-message.hook.d.ts +1 -1
- package/core/index.d.ts +1 -0
- package/core/index.d.ts.map +1 -1
- package/core/modal/modal.service.d.ts +0 -1
- package/core/modal/modal.service.d.ts.map +1 -1
- package/core/navigator/navigator-bottom/navigator-bottom.module.d.ts +1 -1
- package/core/navigator/navigator-top/navigator-top.module.d.ts +1 -1
- package/core/navigator/navigator.module.d.ts +1 -1
- package/core/navigator/navigator.service.d.ts +1 -1
- package/core/plugins/index.d.ts +1 -0
- package/core/plugins/index.d.ts.map +1 -1
- package/core/plugins/plugins-injection-token.d.ts +14 -0
- package/core/plugins/plugins-injection-token.d.ts.map +1 -0
- package/core/plugins/plugins-loader.service.d.ts +7 -21
- package/core/plugins/plugins-loader.service.d.ts.map +1 -1
- package/core/plugins/plugins-resolve.service.d.ts +1 -0
- package/core/plugins/plugins-resolve.service.d.ts.map +1 -1
- package/core/preview-feature/preview-feature.component.d.ts.map +1 -1
- package/core/preview-feature/preview-feature.service.d.ts +1 -1
- package/core/provider-configuration/provider-configuration-hook.d.ts +1 -1
- package/core/query-param-handler/index.d.ts +1 -1
- package/core/query-param-handler/query-param-bottom-drawer.service.d.ts +1 -1
- package/core/query-param-handler/query-param-handler.service.d.ts +1 -1
- package/core/query-param-handler/query-param-modal-handler.service.d.ts +1 -1
- package/core/router/router.service.d.ts +1 -1
- package/core/search/search.service.d.ts +1 -1
- package/core/stepper/stepper.service.d.ts +1 -1
- package/core/tabs/tab.component.d.ts +2 -2
- package/core/tabs/tab.component.d.ts.map +1 -1
- package/core/tabs/tab.model.d.ts +2 -2
- package/core/tabs/tab.model.d.ts.map +1 -1
- package/core/tabs/tabs.service.d.ts +1 -1
- package/core/tabs/tabs.service.d.ts.map +1 -1
- package/core/ui-settings/ui-settings.module.d.ts +1 -1
- package/core/user/change-current-user-password.service.d.ts +10 -0
- package/core/user/change-current-user-password.service.d.ts.map +1 -0
- package/core/user/index.d.ts +1 -0
- package/core/user/index.d.ts.map +1 -1
- package/core/user/user-details-drawer/user-details-drawer.module.d.ts +1 -1
- package/core/user/user-menu.service.d.ts +1 -1
- package/core/user/user.module.d.ts +1 -1
- package/core/version/version.model.d.ts +1 -1
- package/core/version/version.module.d.ts +1 -1
- package/core/wizard/wizard.model.d.ts +1 -1
- package/dashboard-details-advanced-tab/advanced-tab.factory.d.ts.map +1 -1
- package/dashboard-details-advanced-tab/assign-widget-assets/assign-widget-asset-modal.component.d.ts.map +1 -1
- package/dashboard-details-advanced-tab/dashboard-json-editor/dashboard-json-editor.component.d.ts.map +1 -1
- package/dashboard-details-advanced-tab/dashboard-json-editor/import-export-widgets.service.d.ts.map +1 -1
- package/dashboard-manager/dashboard-manager-tabs.factory.d.ts.map +1 -1
- package/dashboard-manager/dashboard-manager.service.d.ts.map +1 -1
- package/dashboard-manager/devicemanagement/index.d.ts +1 -1
- package/dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.d.ts.map +1 -1
- package/dashboard-manager/type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component.d.ts.map +1 -1
- package/dashboard-manager/type-dashboards-list/device-type-value.grid-column.d.ts.map +1 -1
- package/dashboard-manager/type-dashboards-list/type-dashboards-list.component.d.ts.map +1 -1
- package/data-grid-columns/asset-type/asset-type-grid-column.d.ts.map +1 -1
- package/data-grid-columns/asset-type/asset-type.cell-renderer.component.d.ts.map +1 -1
- package/datapoint-explorer/datapoint-explorer-navigation-factory.d.ts.map +1 -1
- package/datapoint-explorer/devicemanagement/index.d.ts +3 -0
- package/datapoint-explorer/devicemanagement/index.d.ts.map +1 -1
- package/datapoint-explorer/view/configuration/workspace-configuration.component.d.ts +4 -2
- package/datapoint-explorer/view/configuration/workspace-configuration.component.d.ts.map +1 -1
- package/datapoint-explorer/view/create-new-report-modal/create-new-report-modal.component.d.ts.map +1 -1
- package/datapoint-explorer/view/datapoint-explorer.model.d.ts +1 -0
- package/datapoint-explorer/view/datapoint-explorer.model.d.ts.map +1 -1
- package/datapoint-explorer/view/index.d.ts +3 -0
- package/datapoint-explorer/view/index.d.ts.map +1 -1
- package/datapoint-explorer/view/send-as-widget-to-dashboard-modal/send-as-widget-to-dashboard-modal.component.d.ts.map +1 -1
- package/datapoint-explorer/view/send-as-widget-to-report-modal/send-as-widget-to-report-modal.component.d.ts.map +1 -1
- package/datapoint-library/datapoint-library.module.d.ts.map +1 -1
- package/datapoint-library/details/datapoint-library-details.component.d.ts +1 -2
- package/datapoint-library/details/datapoint-library-details.component.d.ts.map +1 -1
- package/datapoint-library/list/datapoint-library-list.component.d.ts.map +1 -1
- package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form-validation.service.d.ts.map +1 -1
- package/datapoint-selector/datapoint-selector-modal/datapoint-selector-modal.component.d.ts.map +1 -1
- package/datapoint-selector/datapoint-template-popover/datapoint-template-popover.component.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/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.service.d.ts.map +1 -1
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-time-range/datapoints-exports-selector-time-range.component.d.ts.map +1 -1
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-modal.component.d.ts.map +1 -1
- package/datapoints-export-selector/datapoints-export-selector.model.d.ts.map +1 -1
- package/default-subscriptions/default-subscriptions-navigation.factory.d.ts.map +1 -1
- package/default-subscriptions/default-subscriptions.component.d.ts.map +1 -1
- package/device-grid/columns/alarms.cell-renderer.component.d.ts.map +1 -1
- package/device-grid/columns/alarms.device-grid-column.d.ts.map +1 -1
- package/device-grid/columns/group.device-grid-column.d.ts.map +1 -1
- package/device-grid/columns/imei.device-grid-column.d.ts.map +1 -1
- package/device-grid/columns/model.device-grid-column.d.ts.map +1 -1
- package/device-grid/columns/name.device-grid-column.d.ts.map +1 -1
- package/device-grid/columns/registration-date.device-grid-column.d.ts.map +1 -1
- package/device-grid/columns/serial-number.device-grid-column.d.ts.map +1 -1
- package/device-grid/columns/status.device-grid-column.d.ts.map +1 -1
- package/device-grid/columns/system-id.device-grid-column.d.ts.map +1 -1
- package/device-grid/columns/type.device-grid-column.d.ts.map +1 -1
- package/device-grid/device-grid.component.d.ts.map +1 -1
- package/device-grid/device-grid.service.d.ts.map +1 -1
- package/device-list/add-smart-group.component.d.ts.map +1 -1
- package/device-list/device-list-navigation.factory.d.ts.map +1 -1
- package/device-list/devices.breadcrumb-factory.d.ts.map +1 -1
- package/device-map/device-map-navigation.factory.d.ts.map +1 -1
- package/device-profile/add-device-profile.component.d.ts.map +1 -1
- package/device-profile/device-profile-list.component.d.ts.map +1 -1
- package/device-profile/device-profile-navigation.factory.d.ts.map +1 -1
- package/device-profile/device-profile.component.d.ts.map +1 -1
- package/device-profile/device-profile.service.d.ts.map +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.map +1 -1
- package/device-protocols/device-protocols.guard.d.ts.map +1 -1
- package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts.map +1 -1
- package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map +1 -1
- package/device-shell/device-shell.module.d.ts.map +1 -1
- package/device-shell/shared/device-shell.service.d.ts.map +1 -1
- package/device-shell/shell/shell.component.d.ts.map +1 -1
- package/diagnostics/diagnostics.module.d.ts.map +1 -1
- package/diagnostics/diagnostics.service.d.ts.map +1 -1
- package/echart/services/echarts-options.service.d.ts +2 -3
- package/echart/services/echarts-options.service.d.ts.map +1 -1
- package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/application-plugins.module.d.ts.map +1 -1
- package/ecosystem/application-plugins/apps-to-update-remotes-select.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/orphaned-status-cell-renderer.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/plugin-list.service.d.ts.map +1 -1
- package/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.d.ts.map +1 -1
- package/ecosystem/application-properties/application-properties.component.d.ts.map +1 -1
- package/ecosystem/application-properties/subscription-modal/subscription-modal.component.d.ts.map +1 -1
- package/ecosystem/ecosystem-tabs.factory.d.ts.map +1 -1
- package/ecosystem/license-confirm/license-confirm-modal.component.d.ts.map +1 -1
- package/ecosystem/license-confirm/license-view.component.d.ts.map +1 -1
- package/ecosystem/microservices/add-microservice.component.d.ts.map +1 -1
- package/ecosystem/packages/add-package.component.d.ts.map +1 -1
- package/ecosystem/packages/deploy-application/deploy-application.component.d.ts.map +1 -1
- package/ecosystem/packages/package-list/packages-list.component.d.ts.map +1 -1
- package/ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.d.ts.map +1 -1
- package/ecosystem/packages/package-versions/packages-versions.component.d.ts.map +1 -1
- package/ecosystem/plugin-setup-stepper/plugin-setup-stepper.module.d.ts.map +1 -1
- package/ecosystem/shared/add-application.component.d.ts.map +1 -1
- package/ecosystem/shared/application-card.component.d.ts.map +1 -1
- package/ecosystem/shared/archived-filter/archived-filter.component.d.ts.map +1 -1
- package/ecosystem/shared/ecosystem.constants.d.ts.map +1 -1
- package/ecosystem/shared/ecosystem.service.d.ts.map +1 -1
- package/ecosystem/shared/package-availability.service.d.ts.map +1 -1
- package/ecosystem/shared/package-version-select/package-version-select.component.d.ts.map +1 -1
- package/ecosystem/shared/upload-archive.component.d.ts.map +1 -1
- package/editor/editor.component.d.ts +16 -0
- package/editor/editor.component.d.ts.map +1 -1
- package/exports/index.d.ts +1 -1
- package/exports/index.d.ts.map +1 -1
- package/exports/list/exports-grid.service.d.ts.map +1 -1
- package/exports/list/exports-list/exports-list.component.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +2 -1
- package/fesm2022/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +8 -7
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +2 -1
- package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs +2 -1
- package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +40 -2
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-asset-properties.mjs +608 -97
- package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-asset-property-grid.component-CRnyUbyz.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs +70 -23
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs +2 -1
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-binary-file-download.mjs +2 -1
- package/fesm2022/c8y-ngx-components-binary-file-download.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-bookmarks.mjs +2 -1
- package/fesm2022/c8y-ngx-components-bookmarks.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs +2 -1
- package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs +3 -3
- package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +2 -1
- package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +22 -12
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-child-devices.mjs +2 -1
- package/fesm2022/c8y-ngx-components-child-devices.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs +2 -1
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-computed-asset-properties-alarm-count-config.component-BOpIFCYh.mjs +68 -0
- package/fesm2022/c8y-ngx-components-computed-asset-properties-alarm-count-config.component-BOpIFCYh.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-D8otkLI8.mjs +73 -0
- package/fesm2022/c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-D8otkLI8.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-computed-asset-properties-event-count-config.component-AVm6qa9k.mjs +44 -0
- package/fesm2022/c8y-ngx-components-computed-asset-properties-event-count-config.component-AVm6qa9k.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-computed-asset-properties-last-measurement-config.component-CtUoKGuU.mjs +91 -0
- package/fesm2022/c8y-ngx-components-computed-asset-properties-last-measurement-config.component-CtUoKGuU.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +643 -0
- package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-connectivity.mjs +2 -1
- package/fesm2022/c8y-ngx-components-connectivity.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +2 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs.map +1 -1
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DjlpSztw.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-BkcNSexF.mjs} +3 -2
- package/fesm2022/c8y-ngx-components-context-dashboard-dashboard-general-settings.component-BkcNSexF.mjs.map +1 -0
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-B2zLhv0X.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-D9W68e7h.mjs} +3 -2
- package/fesm2022/c8y-ngx-components-context-dashboard-dashboard-version-history.component-D9W68e7h.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +45 -12
- 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-CwfVxTSx.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-D0lATUjO.mjs} +12 -8
- package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-D0lATUjO.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +4 -3
- package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +2 -1
- package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-broker.mjs +2 -1
- package/fesm2022/c8y-ngx-components-data-broker.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +2 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +2 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer-devicemanagement.mjs +38 -9
- package/fesm2022/c8y-ngx-components-datapoint-explorer-devicemanagement.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +58 -53
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +2 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +2 -1
- package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +2 -1
- package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-library.mjs +2 -1
- package/fesm2022/c8y-ngx-components-datapoint-library.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +2 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +2 -1
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +2 -1
- package/fesm2022/c8y-ngx-components-default-subscriptions.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-grid.mjs +3 -3
- package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-list.mjs +2 -1
- package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-map.mjs +2 -1
- package/fesm2022/c8y-ngx-components-device-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-profile.mjs +2 -1
- package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs +3 -2
- package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-protocols.mjs +2 -1
- package/fesm2022/c8y-ngx-components-device-protocols.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +2 -1
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-shell.mjs +2 -1
- package/fesm2022/c8y-ngx-components-device-shell.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-diagnostics.mjs +2 -1
- package/fesm2022/c8y-ngx-components-diagnostics.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +6 -8
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +2 -1
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +2 -1
- package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs +2 -1
- package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +2 -1
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +2 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-editor.mjs +39 -1
- package/fesm2022/c8y-ngx-components-editor.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-events.mjs +1 -1
- package/fesm2022/c8y-ngx-components-events.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-exports-list.mjs +2 -1
- package/fesm2022/c8y-ngx-components-exports-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-exports.mjs +2 -1
- package/fesm2022/c8y-ngx-components-exports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-file-preview.mjs +2 -1
- package/fesm2022/c8y-ngx-components-file-preview.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-files-repository.mjs +2 -1
- package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector.mjs +2 -1
- package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-location.mjs +2 -1
- package/fesm2022/c8y-ngx-components-location.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +2 -1
- package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-map.mjs +2 -1
- package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-messaging-management.mjs +2 -1
- package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +2 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +2 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +2 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +2 -1
- 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 +2 -1
- package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +2 -1
- package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +2 -1
- package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +2 -1
- package/fesm2022/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-shared.mjs +2 -1
- package/fesm2022/c8y-ngx-components-operations-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +4 -4
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations.mjs +2 -1
- package/fesm2022/c8y-ngx-components-operations.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-pending-mo-request.mjs +2 -1
- package/fesm2022/c8y-ngx-components-pending-mo-request.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-platform-configuration.mjs +2 -1
- package/fesm2022/c8y-ngx-components-platform-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +2 -1
- package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua-mappings.mjs +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua-mappings.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +2 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-register-device.mjs +2 -1
- package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +2 -1
- package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +2 -1
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +2 -1
- package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +2 -1
- package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +2 -1
- package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs +2 -1
- package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-replace-device.mjs +2 -1
- package/fesm2022/c8y-ngx-components-replace-device.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-report-dashboard.mjs +2 -1
- package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-reports.mjs +2 -1
- package/fesm2022/c8y-ngx-components-reports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs +2 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs +2 -1
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-shared.mjs +3 -2
- package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-software.mjs +2 -1
- package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-search.mjs +2 -1
- package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs +2 -1
- package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sensor-phone.mjs +3 -2
- package/fesm2022/c8y-ngx-components-sensor-phone.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +2 -1
- package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services-shared.mjs +1 -1
- package/fesm2022/c8y-ngx-components-services-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services.mjs +2 -1
- package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +2 -1
- package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sms-gateway.mjs +3 -2
- package/fesm2022/c8y-ngx-components-sms-gateway.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sub-assets.mjs +13 -9
- package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-tenants.mjs +37 -37
- package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-tracking.mjs +2 -1
- package/fesm2022/c8y-ngx-components-tracking.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +5 -5
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +2 -1
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs +10 -3
- package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-user-roles.mjs +2 -1
- package/fesm2022/c8y-ngx-components-user-roles.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +2 -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 +2 -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 +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-applications.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-applications.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-asset-notes.mjs +2 -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 +2 -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 +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-cockpit-welcome.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +2 -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 +2 -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 +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 +2 -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 +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-image.mjs +3 -6
- package/fesm2022/c8y-ngx-components-widgets-definitions-image.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-quick-links.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-quick-links.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-three-d-rotation.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-three-d-rotation.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +9 -6
- package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs +2 -1
- 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 +2 -1
- 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 +2 -1
- 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 +13 -8
- package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-import-export-config.mjs +3 -10
- package/fesm2022/c8y-ngx-components-widgets-import-export-config.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +789 -531
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/file-preview/file-preview.component.d.ts.map +1 -1
- package/files-repository/files-repository-navigation.factory.d.ts.map +1 -1
- package/files-repository/files-repository-upload.component.d.ts.map +1 -1
- package/files-repository/files-repository.component.d.ts.map +1 -1
- package/files-repository/files-repository.service.d.ts +1 -2
- package/files-repository/files-repository.service.d.ts.map +1 -1
- package/icon-selector/icon-selector-modal/icon-selector-modal.component.d.ts.map +1 -1
- package/icon-selector/icon-selector.component.d.ts.map +1 -1
- package/locales/de.po +105 -12
- package/locales/es.po +105 -12
- package/locales/fr.po +105 -12
- package/locales/ja_JP.po +99 -12
- package/locales/ko.po +104 -12
- package/locales/locales.pot +97 -12
- package/locales/nl.po +105 -12
- package/locales/pl.po +105 -12
- package/locales/pt_BR.po +105 -12
- package/locales/zh_CN.po +104 -12
- package/locales/zh_TW.po +104 -12
- package/location/location-tab.factory.d.ts.map +1 -1
- package/location/location.component.d.ts.map +1 -1
- package/loriot-device-registration/loriot-device-registration.component.d.ts.map +1 -1
- package/loriot-device-registration/loriot-provider.service.d.ts.map +1 -1
- package/map/map.component.d.ts.map +1 -1
- package/messaging-management/messaging/namespace-list/namespace-item/namespace-item-card/namespace-item-card.component.d.ts.map +1 -1
- package/messaging-management/messaging/shared/usage/usage.component.d.ts.map +1 -1
- package/messaging-management/messaging/topic/topic-list-view.component.d.ts.map +1 -1
- package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-data-grid.service.d.ts.map +1 -1
- package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-view.component.d.ts.map +1 -1
- package/messaging-management/messaging/topic/topics-data-grid.service.d.ts.map +1 -1
- package/messaging-management/navigator/messaging-navigator-factory.d.ts.map +1 -1
- package/messaging-management/navigator/topic-details-tab.factory.d.ts.map +1 -1
- package/operations/bulk-operation-list-item/bulk-operation-list-item.component.d.ts.map +1 -1
- package/operations/bulk-operation-list-item/modals/bulk-operations-reschedule-modal.component.d.ts.map +1 -1
- package/operations/bulk-operation-scheduler/operation-scheduler.component.d.ts.map +1 -1
- package/operations/bulk-operation-stepper/bulk-operation-stepper.component.d.ts.map +1 -1
- package/operations/bulk-single-operations-list/single-operation-item.component.d.ts.map +1 -1
- package/operations/bulk-single-operations-list/single-operations-list.component.d.ts.map +1 -1
- package/operations/factories/bulk-operations-tab.factory.d.ts.map +1 -1
- package/operations/grid-columns/creation-time.grid-column.d.ts.map +1 -1
- package/operations/grid-columns/device.grid-column.d.ts.map +1 -1
- package/operations/grid-columns/failure-reason.grid-column.d.ts.map +1 -1
- package/operations/grid-columns/status.grid-column.d.ts.map +1 -1
- package/operations/operations-list/device-control.feature.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/single-operations-tab.factory.d.ts.map +1 -1
- package/operations/operations-list-item-details/operation-details-tabs.component.d.ts.map +1 -1
- package/operations/shared/nav.factory.d.ts.map +1 -1
- package/operations/shared/operations.service.d.ts.map +1 -1
- package/operations/stepper-bulk-type-configuration/stepper-bulk-type-configuration.component.d.ts.map +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-firmware/stepper-bulk-type-firmware.component.d.ts.map +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.map +1 -1
- package/package.json +1 -1
- package/pending-mo-request/pending-mo-request-interceptor.d.ts.map +1 -1
- package/pending-mo-request/pending-mo-request.service.d.ts.map +1 -1
- package/platform-configuration/platform-configuration-form-provider.service.d.ts.map +1 -1
- package/protocol-lpwan/lpwan-protocol.module.d.ts.map +1 -1
- package/protocol-lpwan/lpwan-set-connections.component.d.ts.map +1 -1
- package/protocol-lpwan/lpwan-set-device-protocol.component.d.ts.map +1 -1
- package/protocol-lpwan/multiple-lns-connectors/actility-multiple-lns-connector.component.d.ts.map +1 -1
- package/protocol-lpwan/multiple-lns-connectors/connection-info-with-download-csv.component.d.ts.map +1 -1
- package/protocol-lpwan/multiple-lns-connectors/loriot/loriot-multiple-lns-connector.component.d.ts.map +1 -1
- package/protocol-lpwan/multiple-lns-connectors/no-connections-found.component.d.ts.map +1 -1
- package/protocol-lpwan/multiple-lns-connectors/sigfox-multiple-lns-connector.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-address-space.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-device-protocol-detail.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-server-config.component.d.ts.map +1 -1
- package/protocol-opcua/opcua-servers.component.d.ts.map +1 -1
- package/register-device/bulk/bulk-device-registration-modal.component.d.ts.map +1 -1
- package/register-device/device-registration-view.component.d.ts.map +1 -1
- package/register-device/extensible/base-extensible-device-registration.service.d.ts.map +1 -1
- package/register-device/extensible/bulk/extensible-bulk-device-registration-modal.component.d.ts.map +1 -1
- package/register-device/extensible/bulk/extensible-bulk-device-registration.service.d.ts.map +1 -1
- package/register-device/extensible/single/extensible-device-registration-modal.component.d.ts.map +1 -1
- package/register-device/extensible/single/extensible-device-registration-stepper.component.d.ts.map +1 -1
- package/register-device/extensible/single/extensible-device-registration.service.d.ts.map +1 -1
- package/register-device/general/general-device-registration.component.d.ts.map +1 -1
- package/register-device/register-device-navigation.factory.d.ts.map +1 -1
- package/register-device/register-device.service.d.ts.map +1 -1
- package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts.map +1 -1
- package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts.map +1 -1
- package/remote-access/passthrough/index.d.ts +1 -1
- package/remote-access/passthrough/index.d.ts.map +1 -1
- package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts.map +1 -1
- package/remote-access/ssh/index.d.ts.map +1 -1
- package/remote-access/telnet/index.d.ts.map +1 -1
- package/remote-access/vnc/index.d.ts.map +1 -1
- package/replace-device/replace-device-grid-action.factory.d.ts.map +1 -1
- package/replace-device/replace-device-wizard/replace-device-wizard.component.d.ts.map +1 -1
- package/replace-device/replace-device-wizard/replace-device-wizard.service.d.ts.map +1 -1
- package/replace-device/replace-device.service.d.ts.map +1 -1
- package/report-dashboard/report-dashboard-list.component.d.ts.map +1 -1
- package/report-dashboard/report-dashboard-navigation.factory.d.ts.map +1 -1
- package/reports/export-schedules.component.d.ts.map +1 -1
- package/repository/configuration/device-tab/configuration-repository-device-tab.module.d.ts.map +1 -1
- package/repository/configuration/device-tab/save-to-repository.component.d.ts.map +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.map +1 -1
- package/repository/configuration/list/configuration-list.component.d.ts.map +1 -1
- package/repository/configuration/list/configuration-repository-navigation-factory.d.ts.map +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.map +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.map +1 -1
- package/repository/firmware/list/firmware-details.component.d.ts.map +1 -1
- package/repository/firmware/list/firmware-list.component.d.ts.map +1 -1
- package/repository/firmware/list/firmware-repository-navigation-factory.d.ts.map +1 -1
- package/repository/shared/columns/description.grid-column.d.ts.map +1 -1
- package/repository/shared/columns/device-type.grid-column.d.ts.map +1 -1
- package/repository/shared/columns/file.grid-column.d.ts.map +1 -1
- package/repository/shared/columns/name.grid-column.d.ts.map +1 -1
- package/repository/shared/columns/type.filtering-form-renderer.component.d.ts.map +1 -1
- package/repository/shared/columns/type.grid-column.d.ts.map +1 -1
- package/repository/shared/columns/versions.grid-column.d.ts.map +1 -1
- package/repository/shared/repository.service.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/software-type/software-type.component.d.ts.map +1 -1
- package/repository/software/device-tab/installed-software.component.d.ts.map +1 -1
- 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.map +1 -1
- package/repository/software/list/software-details.component.d.ts.map +1 -1
- package/repository/software/list/software-list.component.d.ts.map +1 -1
- package/repository/software/list/software-repository-navigation-factory.d.ts.map +1 -1
- package/search/columns/asset-type-search-grid-column.d.ts.map +1 -1
- package/search/search-grid.component.d.ts.map +1 -1
- package/search/search-results.component.d.ts.map +1 -1
- package/sensor-phone/connect-smartphone.factory.d.ts.map +1 -1
- package/sensor-phone/sensor-phone-modal/sensor-phone-modal.component.d.ts.map +1 -1
- package/sensor-phone/sensor-phone-modal/sensor-phone.service.d.ts.map +1 -1
- package/services/service-command-tab/service-command.feature.d.ts.map +1 -1
- package/services/services-device-tab/columns/last-updated-date.device-grid-column.d.ts.map +1 -1
- package/services/services-device-tab/columns/name.grid-column.d.ts.map +1 -1
- package/services/services-device-tab/columns/service-type.grid-column.d.ts.map +1 -1
- package/services/services-device-tab/columns/status.grid-column.d.ts.map +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.map +1 -1
- package/services/services-device-tab/services.breadcrumb-factory.d.ts.map +1 -1
- package/services/shared/service-command.service.d.ts.map +1 -1
- package/services/status-options/status-options.model.d.ts.map +1 -1
- package/sigfox-device-registration/sigfox-device-registration.component.d.ts.map +1 -1
- package/sigfox-device-registration/sigfox-provider.service.d.ts.map +1 -1
- package/sms-gateway/sms-gateway.module.d.ts.map +1 -1
- package/sub-assets/add-group/add-group.component.d.ts.map +1 -1
- package/sub-assets/asset-properties-item.component.d.ts.map +1 -1
- package/sub-assets/asset-properties.component.d.ts.map +1 -1
- package/sub-assets/assign-devices/assign-child-devices.component.d.ts.map +1 -1
- package/sub-assets/assign-devices/assign-devices.component.d.ts.map +1 -1
- package/sub-assets/delete-assets-modal/delete-assets-modal.component.d.ts.map +1 -1
- package/sub-assets/group-info.component.d.ts.map +1 -1
- package/sub-assets/sub-assets-grid.component.d.ts.map +1 -1
- package/sub-assets/sub-assets.component.d.ts.map +1 -1
- package/sub-assets/sub-assets.module.d.ts.map +1 -1
- package/sub-assets/sub-assets.service.d.ts.map +1 -1
- package/sub-assets/unassign-assets-modal/unassign-modal.component.d.ts.map +1 -1
- package/tenants/custom-properties/custom-properties.component.d.ts.map +1 -1
- package/tenants/tenant-form/tenant-form.component.d.ts.map +1 -1
- package/tenants/tenant-limits/tenant-limits.component.d.ts.map +1 -1
- package/tenants/tenant-list/creation-time.filtering-form-renderer.component.d.ts.map +1 -1
- package/tenants/tenant-list/tenant-list.component.d.ts.map +1 -1
- package/tenants/tenants-navigation.factory.d.ts.map +1 -1
- package/tenants/tenants.module.d.ts.map +1 -1
- package/tracking/tracking.feature.d.ts.map +1 -1
- package/translation-editor/lazy/translation-editor/translation-editor.component.d.ts.map +1 -1
- package/trusted-certificates/crl/crl-check-settings.component.d.ts.map +1 -1
- package/trusted-certificates/crl/crl-settings.component.d.ts.map +1 -1
- package/trusted-certificates/factories/tabs.factory.d.ts.map +1 -1
- package/trusted-certificates/factories/trusted-certificates-navigation.factory.d.ts.map +1 -1
- package/trusted-certificates/list/add-trusted-certificate.component.d.ts.map +1 -1
- package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
- package/upgrade/auth-bridge.service.d.ts.map +1 -1
- package/upgrade/bridge.service.d.ts.map +1 -1
- package/upgrade/ng1/downgraded.services.d.ts +1 -0
- package/upgrade/ng1/downgraded.services.d.ts.map +1 -1
- package/upgrade/ng1/index.d.ts.map +1 -1
- package/user-roles/roles-asset-tree/roles-asset-tree.component.d.ts.map +1 -1
- package/widgets/cockpit/index.d.ts +4 -4
- package/widgets/definitions/alarms/alarm-list/index.d.ts +1 -1
- package/widgets/definitions/alarms/alarm-list/index.d.ts.map +1 -1
- package/widgets/definitions/alarms/all-critical-alarms/index.d.ts +1 -1
- package/widgets/definitions/alarms/all-critical-alarms/index.d.ts.map +1 -1
- package/widgets/definitions/alarms/recent-alarms/index.d.ts +1 -1
- package/widgets/definitions/alarms/recent-alarms/index.d.ts.map +1 -1
- package/widgets/definitions/applications/index.d.ts +1 -1
- package/widgets/definitions/applications/index.d.ts.map +1 -1
- package/widgets/definitions/asset-notes/index.d.ts +1 -1
- package/widgets/definitions/asset-notes/index.d.ts.map +1 -1
- package/widgets/definitions/cockpit-legacy-welcome/index.d.ts +1 -1
- package/widgets/definitions/cockpit-legacy-welcome/index.d.ts.map +1 -1
- package/widgets/definitions/cockpit-welcome/index.d.ts +1 -1
- package/widgets/definitions/cockpit-welcome/index.d.ts.map +1 -1
- package/widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.d.ts.map +1 -1
- package/widgets/definitions/datapoints-graph/index.d.ts +1 -1
- package/widgets/definitions/datapoints-table/index.d.ts +1 -1
- package/widgets/definitions/datapoints-table/index.d.ts.map +1 -1
- package/widgets/definitions/device-control-message/index.d.ts +1 -1
- package/widgets/definitions/device-control-message/index.d.ts.map +1 -1
- package/widgets/definitions/help-and-service/index.d.ts +1 -1
- package/widgets/definitions/help-and-service/index.d.ts.map +1 -1
- package/widgets/definitions/html-widget/html-widget.factory.d.ts.map +1 -1
- package/widgets/definitions/html-widget/index.d.ts +1 -1
- package/widgets/definitions/image/index.d.ts +5 -3
- package/widgets/definitions/image/index.d.ts.map +1 -1
- package/widgets/definitions/info-gauge/index.d.ts +2 -3
- package/widgets/definitions/info-gauge/index.d.ts.map +1 -1
- package/widgets/definitions/kpi/index.d.ts +1 -1
- package/widgets/definitions/kpi/index.d.ts.map +1 -1
- package/widgets/definitions/linear-gauge/index.d.ts +1 -1
- package/widgets/definitions/linear-gauge/index.d.ts.map +1 -1
- package/widgets/definitions/map/index.d.ts +1 -1
- package/widgets/definitions/map/index.d.ts.map +1 -1
- package/widgets/definitions/markdown/index.d.ts +5 -3
- package/widgets/definitions/markdown/index.d.ts.map +1 -1
- package/widgets/definitions/quick-links/index.d.ts +1 -1
- package/widgets/definitions/quick-links/index.d.ts.map +1 -1
- package/widgets/definitions/radial-gauge/index.d.ts +1 -1
- package/widgets/definitions/radial-gauge/index.d.ts.map +1 -1
- package/widgets/definitions/silo/index.d.ts +1 -1
- package/widgets/definitions/silo/index.d.ts.map +1 -1
- package/widgets/definitions/three-d-rotation/index.d.ts +1 -1
- package/widgets/definitions/three-d-rotation/index.d.ts.map +1 -1
- package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts.map +1 -1
- package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts.map +1 -1
- package/widgets/implementations/alarms/alarm-list-widget.model.d.ts.map +1 -1
- package/widgets/implementations/alarms/alarm-widget-alarms-reload.component.d.ts.map +1 -1
- package/widgets/implementations/cockpit-welcome/welcome.component.d.ts +3 -2
- package/widgets/implementations/cockpit-welcome/welcome.component.d.ts.map +1 -1
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-reload/datapoints-reload.component.d.ts.map +1 -1
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/datapoints-table.component.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/datapoints-table/datapoints-table-widget.model.d.ts.map +1 -1
- package/widgets/implementations/datapoints-table/date-range-picker.component.d.ts.map +1 -1
- package/widgets/implementations/device-control-message/device-control-message-widget-view/device-control-message-widget-view.component.d.ts.map +1 -1
- package/widgets/implementations/device-management-welcome/welcome.component.d.ts.map +1 -1
- package/widgets/implementations/help-and-service-widget/help-and-service-view/help-and-service-view.component.d.ts.map +1 -1
- package/widgets/implementations/html-widget/advanced-settings/advanced-settings.component.d.ts.map +1 -1
- package/widgets/implementations/html-widget/html-widget-config.service.d.ts.map +1 -1
- package/widgets/implementations/html-widget/widget-code-editor-section/widget-code-editor.component.d.ts +5 -3
- package/widgets/implementations/html-widget/widget-code-editor-section/widget-code-editor.component.d.ts.map +1 -1
- package/widgets/implementations/image/image-widget-config/image-widget-config.component.d.ts.map +1 -1
- package/widgets/implementations/image/image-widget.service.d.ts +1 -2
- package/widgets/implementations/image/image-widget.service.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.d.ts.map +1 -1
- package/widgets/implementations/linear-gauge/linear-gauge-widget-view/linear-gauge-widget-view.component.d.ts.map +1 -1
- package/widgets/implementations/map/map-widget-config.component.d.ts.map +1 -1
- package/widgets/implementations/map/map-widget.component.d.ts.map +1 -1
- package/widgets/implementations/markdown/markdown-widget-config/markdown-widget-config.component.d.ts.map +1 -1
- package/widgets/implementations/markdown/markdown-widget.service.d.ts.map +1 -1
- package/widgets/implementations/quick-links/quick-links-widget-config/quick-links-widget-config.component.d.ts.map +1 -1
- package/widgets/import-export-config/config-target-export.d.ts +3 -1
- package/widgets/import-export-config/config-target-export.d.ts.map +1 -1
- package/widgets/import-export-config/config-target-import.d.ts +3 -1
- package/widgets/import-export-config/config-target-import.d.ts.map +1 -1
- package/widgets/import-export-config/device-import-export.d.ts +3 -1
- package/widgets/import-export-config/device-import-export.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DjlpSztw.mjs.map +0 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-dashboard-version-history.component-B2zLhv0X.mjs.map +0 -1
- package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-CwfVxTSx.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-files-repository.mjs","sources":["../../files-repository/files-repository.guard.ts","../../files-repository/files-repository-navigation.factory.ts","../../files-repository/files-repository-product-experience.constants.ts","../../files-repository/files-repository-upload.component.ts","../../files-repository/files-repository-upload.component.html","../../files-repository/files-repository.service.ts","../../files-repository/files-repository.component.ts","../../files-repository/files-repository.component.html","../../files-repository/files-repository.module.ts","../../files-repository/c8y-ngx-components-files-repository.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { Permissions } from '@c8y/ngx-components';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilesRepositoryGuard {\n constructor(private permissions: Permissions) {}\n\n /**\n * Checks if files repository should be active,\n * i.e. whether the current tenant can read or admin files in repository.\n *\n * @returns True, if the feature should be active.\n */\n canActivate(): boolean {\n return (\n this.permissions.hasRole(Permissions.ROLE_INVENTORY_READ) ||\n this.permissions.hasAllRoles([\n Permissions.ROLE_MANAGED_OBJECT_READ,\n Permissions.ROLE_BINARY_READ\n ])\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { gettext, NavigatorNode, NavigatorNodeFactory } from '@c8y/ngx-components';\nimport { FilesRepositoryGuard } from './files-repository.guard';\n\n@Injectable({ providedIn: 'root' })\nexport class FilesRepositoryNavigationFactory implements NavigatorNodeFactory {\n private navs: NavigatorNode[] = [];\n\n constructor(private filesRepositoryGuard: FilesRepositoryGuard) {}\n\n async get(): Promise<NavigatorNode[]> {\n if (this.filesRepositoryGuard.canActivate()) {\n if (!this.navs.length) {\n this.navs.push(\n new NavigatorNode({\n parent: gettext('Management'),\n label: gettext('Files repository'),\n icon: 'c8y-archive',\n path: 'files',\n routerLinkExact: false,\n priority: 1000\n })\n );\n }\n }\n return this.navs;\n }\n}\n","export const PRODUCT_EXPERIENCE_FILE_REPOSITORY = {\n EVENTS: {\n FILE_REPOSITORY_UPLOAD: 'filesRepositoryUpload'\n },\n COMPONENTS: {\n FILE_REPOSITORY_UPLOAD_COMPONENT: 'files-repository-upload'\n },\n RESULTS: {\n UPLOAD_ITEM_SUCCESS: 'fileUploadSuccess',\n UPLOAD_ITEM_FAILED: 'fileUploadFailed'\n }\n} as const;\n","import { Component, Output, EventEmitter } from '@angular/core';\nimport {\n AlertService,\n GainsightService,\n FilesService,\n gettext,\n IFetchWithProgress,\n IconDirective,\n C8yTranslateDirective,\n FilePickerFormControlComponent,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { PRODUCT_EXPERIENCE_FILE_REPOSITORY } from './files-repository-product-experience.constants';\nimport { Observable, Subscription, combineLatest } from 'rxjs';\n\n@Component({\n selector: 'c8y-files-repository-upload',\n templateUrl: './files-repository-upload.component.html',\n imports: [IconDirective, C8yTranslateDirective, FilePickerFormControlComponent, C8yTranslatePipe]\n})\nexport class FilesRepositoryUploadComponent {\n /** Emits an event when modal is closed. `uploaded` indicates if any files were uploaded. */\n @Output() onClose: EventEmitter<{ uploaded: boolean }> = new EventEmitter();\n isLoading = false;\n dropFilesHereMessage: string = gettext('Drop files here');\n filesToUpload: File[];\n uploadProgress: IFetchWithProgress[];\n uploadProgress$: Observable<IFetchWithProgress[]>;\n uploadSubscription: Subscription;\n\n constructor(\n private alertService: AlertService,\n private gainsightService: GainsightService,\n private filesService: FilesService\n ) {}\n\n async upload(): Promise<void> {\n this.isLoading = true;\n this.uploadProgress$ = combineLatest(\n this.filesToUpload.map(file => this.filesService.uploadFileWithProgress$(file))\n );\n\n this.uploadSubscription = this.uploadProgress$.subscribe(\n uploadProgress => {\n this.uploadProgress = uploadProgress;\n },\n e => {\n if (e) {\n this.alertService.addServerFailure(e);\n this.gainsightService.triggerEvent(\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.EVENTS.FILE_REPOSITORY_UPLOAD,\n {\n component:\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.COMPONENTS.FILE_REPOSITORY_UPLOAD_COMPONENT,\n action: PRODUCT_EXPERIENCE_FILE_REPOSITORY.RESULTS.UPLOAD_ITEM_FAILED\n }\n );\n }\n this.isLoading = false;\n },\n () => {\n this.alertService.success(gettext('File(s) uploaded.'));\n this.onClose.emit({ uploaded: true });\n this.gainsightService.triggerEvent(\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.EVENTS.FILE_REPOSITORY_UPLOAD,\n {\n component:\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.COMPONENTS.FILE_REPOSITORY_UPLOAD_COMPONENT,\n action: PRODUCT_EXPERIENCE_FILE_REPOSITORY.RESULTS.UPLOAD_ITEM_SUCCESS\n }\n );\n }\n );\n }\n\n onFileDroppedEvent(event: File[]): void {\n if (event && event.length > 0) {\n this.filesToUpload = event;\n }\n }\n}\n","<div class=\"c8y-viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i c8yIcon=\"upload\"></i>\n <h4\n id=\"modal-title\"\n translate\n >\n Upload files\n </h4>\n </div>\n <div class=\"modal-inner-scroll\">\n <div\n class=\"modal-body\"\n id=\"modal-body\"\n >\n <c8y-file-picker-form-control\n #filePicker\n [uploadInProgress]=\"isLoading\"\n (dropped)=\"onFileDroppedEvent($event)\"\n [uploadProgress]=\"uploadProgress\"\n ></c8y-file-picker-form-control>\n </div>\n </div>\n <div class=\"card-footer separator d-flex j-c-center\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"onClose.emit({ uploaded: false })\"\n [disabled]=\"isLoading\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-primary btn-form\"\n title=\"{{ 'Upload' | translate }}\"\n type=\"button\"\n (click)=\"upload()\"\n [disabled]=\"!filePicker.valid || isLoading\"\n translate\n data-cy=\"c8y-files-repository-upload--upload\"\n >\n Upload\n </button>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { QueriesUtil } from '@c8y/client';\nimport { InventoryService } from '@c8y/client';\nimport { gettext, Pagination, SortOrder, Column, Row } from '@c8y/ngx-components';\nimport { transform, has } from 'lodash-es';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilesRepositoryService {\n queriesUtil: QueriesUtil;\n baseQuery = { __has: 'c8y_IsBinary' };\n constructor(private inventoryService: InventoryService) {\n this.queriesUtil = new QueriesUtil();\n }\n\n getPagination(): Pagination {\n return {\n pageSize: 10,\n currentPage: 1\n };\n }\n\n hasApplicationStorageFragment(file: Row): boolean {\n return has(file, 'c8y_applications_storage');\n }\n\n getColumns(): Column[] {\n return [\n {\n name: 'name',\n header: gettext('Name'),\n path: 'name',\n filterable: true,\n sortable: true,\n sortOrder: 'asc' as SortOrder\n },\n {\n name: 'type',\n header: gettext('Type'),\n path: 'type',\n filterable: true,\n sortable: true\n },\n {\n name: 'length',\n header: gettext('Size'),\n path: 'length',\n filterable: false,\n sortable: true\n },\n {\n name: 'owner',\n header: gettext('Owner'),\n path: 'owner',\n filterable: true,\n sortable: true\n },\n {\n name: 'lastUpdated',\n header: gettext('Last update'),\n path: 'lastUpdated',\n filterable: false,\n sortable: true\n }\n ];\n }\n\n /** Returns array with items id where item has not c8y_applications_storage fragment. */\n getDeletableItemsIds(selectedItemsIds: string[], dataFromDataGrid: Array<any>): string[] {\n const selectedItemsWithoutApplications = [];\n dataFromDataGrid.forEach(item => {\n selectedItemsIds.forEach(selectedItemId => {\n if (selectedItemId === item.id && !this.hasApplicationStorageFragment(item)) {\n selectedItemsWithoutApplications.push(selectedItemId);\n }\n });\n });\n\n return selectedItemsWithoutApplications;\n }\n\n /** Returns the total number of items (with no filters based on columns setup). */\n async getTotal(): Promise<number> {\n const filters = {\n query: this.queriesUtil.buildQuery(this.baseQuery),\n withTotalElements: true\n };\n return (await this.inventoryService.list(filters)).paging.totalElements;\n }\n\n /** Returns data for current columns and pagination setup. */\n async getData(columns: Column[], pagination: Pagination, searchText = '') {\n // build filters based on columns and pagination\n const filters = {\n text: searchText,\n ...this.getFilters(columns, pagination),\n withTotalElements: true\n };\n // execute inventory query for the list of managed objects\n\n return this.inventoryService.list(filters);\n }\n\n /** Returns filters for given columns and pagination setup. */\n private getFilters(columns: Column[], pagination: Pagination) {\n return {\n query: this.getQueryString(columns),\n pageSize: pagination.pageSize,\n currentPage: pagination.currentPage,\n withChildren: false,\n withTotalPages: true\n };\n }\n\n /** Returns a query string based on columns setup. */\n private getQueryString(columns: Column[]): string {\n let fullQuery = this.getQueryObj(columns);\n fullQuery = this.queriesUtil.addAndFilter(fullQuery, this.baseQuery);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n\n /** Returns a query object based on columns setup. */\n private getQueryObj(columns: Column[]) {\n return transform(columns, (query, column) => this.addColumnQuery(query, column), {\n __filter: {},\n __orderby: []\n });\n }\n\n /** Extends given query with a part based on the setup of given column. */\n private addColumnQuery(query, column: Column): void {\n // when a column is marked as filterable\n if (column.filterable) {\n // in the case of default filtering form, `filterPredicate` will contain the string entered by a user\n if (column.filterPredicate) {\n // so we use it as the expected value, * allow to search for it anywhere in the property\n query.__filter[column.path] = `*${column.filterPredicate}*`;\n }\n\n // in the case of custom filtering form, we're storing the query in `externalFilterQuery.query`\n if (column.externalFilterQuery) {\n query = this.queriesUtil.addAndFilter(query, column.externalFilterQuery.query);\n }\n }\n\n // when a column is sortable and has a specified sorting order\n if (column.sortable && column.sortOrder) {\n // add sorting condition for the configured column `path`\n query.__orderby.push({\n [column.path]: column.sortOrder === 'asc' ? 1 : -1\n });\n }\n\n return query;\n }\n}\n","import { Component, EventEmitter, ViewChild } from '@angular/core';\nimport { IManagedObjectBinary, InventoryBinaryService } from '@c8y/client';\nimport {\n ActionControl,\n AlertService,\n BuiltInActionType,\n BulkActionControl,\n Column,\n DataGridComponent,\n DataSourceModifier,\n DisplayOptions,\n FilesService,\n gettext,\n LoadMoreMode,\n ModalService,\n Pagination,\n Row,\n ServerSideDataCallback,\n ServerSideDataResult,\n Status,\n TitleComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n ActionBarItemComponent,\n IfAllowedDirective,\n IconDirective,\n HelpComponent,\n EmptyStateContextDirective,\n EmptyStateComponent,\n ColumnDirective,\n CellRendererDefDirective,\n C8yTranslatePipe,\n DatePipe,\n BytesPipe\n} from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { FilesRepositoryUploadComponent } from './files-repository-upload.component';\nimport { FilesRepositoryService } from './files-repository.service';\n\nimport { NgIf } from '@angular/common';\nimport { FilePreviewComponent } from '@c8y/ngx-components/file-preview';\n\n@Component({\n selector: 'c8y-files-repository',\n templateUrl: './files-repository.component.html',\n imports: [\n TitleComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n ActionBarItemComponent,\n IfAllowedDirective,\n IconDirective,\n HelpComponent,\n DataGridComponent,\n EmptyStateContextDirective,\n EmptyStateComponent,\n NgIf,\n ColumnDirective,\n CellRendererDefDirective,\n FilePreviewComponent,\n C8yTranslatePipe,\n DatePipe,\n BytesPipe\n ]\n})\nexport class FilesRepositoryComponent {\n @ViewChild(DataGridComponent, { static: true }) dataGrid: DataGridComponent;\n destroy$: Subject<boolean> = new Subject<boolean>();\n title: string = gettext('Files repository');\n managementTitle: string = gettext('Management');\n loadMoreItemsLabel: string = gettext('Load more files');\n loadingItemsLabel: string = gettext('Loading files…');\n\n isLoading = true;\n\n displayOptions: DisplayOptions = {\n bordered: false,\n striped: true,\n filter: true,\n gridHeader: true,\n hover: true\n };\n\n columns: Column[] = this.filesRepositoryService.getColumns();\n pagination: Pagination = this.filesRepositoryService.getPagination();\n infiniteScroll: LoadMoreMode = 'auto';\n serverSideDataCallback: ServerSideDataCallback;\n returnedDataSize: number;\n selectable = true;\n actionControls: ActionControl[] = [\n {\n text: gettext('Delete'),\n icon: 'trash',\n type: BuiltInActionType.Delete,\n showIf: selectedItem =>\n !this.filesRepositoryService.hasApplicationStorageFragment(selectedItem),\n callback: selectedItem => this.onDeleteItem(selectedItem)\n },\n {\n text: gettext('Download'),\n icon: 'download',\n type: BuiltInActionType.Export,\n callback: selectedItem => this.onDownloadItem(selectedItem as IManagedObjectBinary)\n }\n ];\n bulkActionControls: BulkActionControl[] = [\n {\n type: BuiltInActionType.Delete,\n callback: selectedItemIds => this.onDeleteItems(selectedItemIds)\n }\n ];\n\n refresh: EventEmitter<void> = new EventEmitter<void>();\n\n noResultsMessage = gettext('No results to display.');\n noDataMessage = gettext('No files to display.');\n noResultsSubtitle = gettext('Refine your search terms or check your spelling.');\n noDataSubtitle = gettext('Add a new file by clicking below.');\n\n constructor(\n private filesRepositoryService: FilesRepositoryService,\n private inventoryBinaryService: InventoryBinaryService,\n private modalService: ModalService,\n private alertService: AlertService,\n private bsModalService: BsModalService,\n private fileService: FilesService,\n private translateService: TranslateService\n ) {\n // we're setting up `serverSideDataCallback` to execute a method from this component with bound `this`\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const { res, data, paging } = await this.filesRepositoryService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n dataSourceModifier.searchText\n );\n const filteredSize: number = paging.totalElements;\n const size: number = await this.filesRepositoryService.getTotal();\n\n const serverSideDataResult: ServerSideDataResult = { res, data, paging, filteredSize, size };\n this.isLoading = false;\n this.returnedDataSize = serverSideDataResult.size;\n\n return serverSideDataResult;\n }\n\n async onDeleteItem(selectedItem: Row) {\n return this.deleteItemsWithConfirmation([selectedItem.id], {\n title: gettext('Delete file'),\n body: this.translateService.instant(\n gettext('You are about to delete file \"{{ name }}\". Do you want to proceed?'),\n selectedItem\n ),\n successText: gettext('File deleted.')\n });\n }\n\n async onDeleteItems(selectedItemsIds: string[]) {\n const dataGridDataSourceData = await this.dataGrid.dataSource.data$.pipe(take(1)).toPromise();\n const deletableItemsIds = this.filesRepositoryService.getDeletableItemsIds(\n selectedItemsIds,\n dataGridDataSourceData\n );\n let body: string;\n if (deletableItemsIds.length < selectedItemsIds.length) {\n body = gettext(`\n You are about to delete the selected files.\n Note: the selected files of type \"c8y_applications_storage_*\" won't be deleted though\n - such files can be deleted only from the \"Activity log\" of the associated application.\n Do you want to proceed?\n `);\n } else {\n body = gettext('You are about to delete the selected files. Do you want to proceed?');\n }\n\n return this.deleteItemsWithConfirmation(deletableItemsIds, {\n title: gettext('Delete files'),\n body,\n successText: gettext('Files deleted.')\n });\n }\n\n async onDownloadItem(selectedItem: IManagedObjectBinary) {\n return this.fileService.download(selectedItem);\n }\n\n openFileUploadComponent() {\n const modalOptions: ModalOptions<FilesRepositoryUploadComponent> = {\n class: 'modal-sm',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title',\n ignoreBackdropClick: true\n };\n const modalRef = this.bsModalService.show(FilesRepositoryUploadComponent, modalOptions);\n modalRef.content.onClose.pipe(takeUntil(this.destroy$)).subscribe(({ uploaded }) => {\n if (uploaded) {\n this.refresh.emit();\n }\n modalRef.hide();\n });\n }\n\n private async deleteItemsWithConfirmation(\n selectedItemsIds: string[],\n options: { title: string; body: string; successText: string }\n ) {\n try {\n await this.confirmItemsDeletion(options);\n this.isLoading = true;\n const promises = selectedItemsIds.map(selectedItemId =>\n this.inventoryBinaryService.delete(selectedItemId)\n );\n await Promise.all(promises);\n this.alertService.success(options.successText);\n this.refresh.next();\n } catch (ex) {\n if (ex) {\n this.alertService.addServerFailure(ex);\n }\n } finally {\n this.isLoading = false;\n }\n }\n\n private async confirmItemsDeletion({ title, body }: { title: string; body: string }) {\n const status = Status.DANGER;\n const labels = { ok: gettext('Delete'), cancel: gettext('Cancel') };\n await this.modalService.confirm(title, body, status, labels);\n }\n}\n","<c8y-title>\n {{ title | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n [label]=\"managementTitle | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"title | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Upload files' | translate }}\"\n *c8yIfAllowed=\"['ROLE_INVENTORY_ADMIN', 'ROLE_INVENTORY_CREATE']; allowAny: true\"\n (click)=\"openFileUploadComponent()\"\n data-cy=\"c8y-files-repository--open-file-upload-component\"\n >\n <i c8yIcon=\"upload\"></i>\n {{ 'Upload files' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/docs/standard-tenant/managing-data/#file-repository\"></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"infiniteScroll\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [showSearch]=\"true\"\n [refresh]=\"refresh\"\n [bulkActionControls]=\"bulkActionControls\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-archive'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <p *ngIf=\"stats?.size === 0\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Upload file' | translate }}\"\n type=\"button\"\n (click)=\"openFileUploadComponent()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Upload file' | translate }}\n </button>\n </p>\n </c8y-ui-empty-state>\n\n <c8y-column name=\"name\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }}\">\n <div class=\"d-flex j-c-between a-i-center\">\n {{ context.value }}\n <c8y-file-preview\n class=\"m-l-auto\"\n [mo]=\"context.item\"\n >\n <button\n class=\"btn btn-emphasis btn-icon\"\n [title]=\"'Preview file' | translate\"\n type=\"button\"\n customButton\n >\n <i c8yIcon=\"search\"></i>\n </button>\n </c8y-file-preview>\n </div>\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"length\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }} B\">\n {{ context.value | bytes }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"lastUpdated\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value | c8yDate }}\">\n {{ context.value | c8yDate }}\n </span>\n </ng-container>\n </c8y-column>\n </c8y-data-grid>\n</div>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CoreModule, hookNavigator, hookRoute, DropAreaModule } from '@c8y/ngx-components';\nimport { FilesRepositoryNavigationFactory } from './files-repository-navigation.factory';\nimport { FilesRepositoryComponent } from './files-repository.component';\nimport { FilesRepositoryUploadComponent } from './files-repository-upload.component';\nimport { FilesRepositoryService } from './files-repository.service';\nimport { FilesRepositoryGuard } from './files-repository.guard';\nimport { FilePreviewModule } from '@c8y/ngx-components/file-preview';\n\n@NgModule({\n imports: [\n RouterModule,\n CoreModule,\n DropAreaModule,\n FilePreviewModule,\n FilesRepositoryComponent,\n FilesRepositoryUploadComponent\n ],\n exports: [],\n providers: [\n FilesRepositoryGuard,\n hookNavigator(FilesRepositoryNavigationFactory),\n hookRoute(\n {\n path: 'files',\n component: FilesRepositoryComponent,\n canActivate: [FilesRepositoryGuard]\n },\n { multi: true }\n ),\n FilesRepositoryService\n ]\n})\nexport class FilesRepositoryModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.FilesRepositoryGuard","i1","i1.FilesRepositoryService","i2","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-files-repository.mjs","sources":["../../files-repository/files-repository.guard.ts","../../files-repository/files-repository-navigation.factory.ts","../../files-repository/files-repository-product-experience.constants.ts","../../files-repository/files-repository-upload.component.ts","../../files-repository/files-repository-upload.component.html","../../files-repository/files-repository.service.ts","../../files-repository/files-repository.component.ts","../../files-repository/files-repository.component.html","../../files-repository/files-repository.module.ts","../../files-repository/c8y-ngx-components-files-repository.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { Permissions } from '@c8y/ngx-components';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilesRepositoryGuard {\n constructor(private permissions: Permissions) {}\n\n /**\n * Checks if files repository should be active,\n * i.e. whether the current tenant can read or admin files in repository.\n *\n * @returns True, if the feature should be active.\n */\n canActivate(): boolean {\n return (\n this.permissions.hasRole(Permissions.ROLE_INVENTORY_READ) ||\n this.permissions.hasAllRoles([\n Permissions.ROLE_MANAGED_OBJECT_READ,\n Permissions.ROLE_BINARY_READ\n ])\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { NavigatorNode, NavigatorNodeFactory } from '@c8y/ngx-components';\nimport { FilesRepositoryGuard } from './files-repository.guard';\n\n@Injectable({ providedIn: 'root' })\nexport class FilesRepositoryNavigationFactory implements NavigatorNodeFactory {\n private navs: NavigatorNode[] = [];\n\n constructor(private filesRepositoryGuard: FilesRepositoryGuard) {}\n\n async get(): Promise<NavigatorNode[]> {\n if (this.filesRepositoryGuard.canActivate()) {\n if (!this.navs.length) {\n this.navs.push(\n new NavigatorNode({\n parent: gettext('Management'),\n label: gettext('Files repository'),\n icon: 'c8y-archive',\n path: 'files',\n routerLinkExact: false,\n priority: 1000\n })\n );\n }\n }\n return this.navs;\n }\n}\n","export const PRODUCT_EXPERIENCE_FILE_REPOSITORY = {\n EVENTS: {\n FILE_REPOSITORY_UPLOAD: 'filesRepositoryUpload'\n },\n COMPONENTS: {\n FILE_REPOSITORY_UPLOAD_COMPONENT: 'files-repository-upload'\n },\n RESULTS: {\n UPLOAD_ITEM_SUCCESS: 'fileUploadSuccess',\n UPLOAD_ITEM_FAILED: 'fileUploadFailed'\n }\n} as const;\n","import { Component, Output, EventEmitter } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n AlertService,\n GainsightService,\n FilesService,\n IFetchWithProgress,\n IconDirective,\n C8yTranslateDirective,\n FilePickerFormControlComponent,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { PRODUCT_EXPERIENCE_FILE_REPOSITORY } from './files-repository-product-experience.constants';\nimport { Observable, Subscription, combineLatest } from 'rxjs';\n\n@Component({\n selector: 'c8y-files-repository-upload',\n templateUrl: './files-repository-upload.component.html',\n imports: [IconDirective, C8yTranslateDirective, FilePickerFormControlComponent, C8yTranslatePipe]\n})\nexport class FilesRepositoryUploadComponent {\n /** Emits an event when modal is closed. `uploaded` indicates if any files were uploaded. */\n @Output() onClose: EventEmitter<{ uploaded: boolean }> = new EventEmitter();\n isLoading = false;\n dropFilesHereMessage: string = gettext('Drop files here');\n filesToUpload: File[];\n uploadProgress: IFetchWithProgress[];\n uploadProgress$: Observable<IFetchWithProgress[]>;\n uploadSubscription: Subscription;\n\n constructor(\n private alertService: AlertService,\n private gainsightService: GainsightService,\n private filesService: FilesService\n ) {}\n\n async upload(): Promise<void> {\n this.isLoading = true;\n this.uploadProgress$ = combineLatest(\n this.filesToUpload.map(file => this.filesService.uploadFileWithProgress$(file))\n );\n\n this.uploadSubscription = this.uploadProgress$.subscribe(\n uploadProgress => {\n this.uploadProgress = uploadProgress;\n },\n e => {\n if (e) {\n this.alertService.addServerFailure(e);\n this.gainsightService.triggerEvent(\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.EVENTS.FILE_REPOSITORY_UPLOAD,\n {\n component:\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.COMPONENTS.FILE_REPOSITORY_UPLOAD_COMPONENT,\n action: PRODUCT_EXPERIENCE_FILE_REPOSITORY.RESULTS.UPLOAD_ITEM_FAILED\n }\n );\n }\n this.isLoading = false;\n },\n () => {\n this.alertService.success(gettext('File(s) uploaded.'));\n this.onClose.emit({ uploaded: true });\n this.gainsightService.triggerEvent(\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.EVENTS.FILE_REPOSITORY_UPLOAD,\n {\n component:\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.COMPONENTS.FILE_REPOSITORY_UPLOAD_COMPONENT,\n action: PRODUCT_EXPERIENCE_FILE_REPOSITORY.RESULTS.UPLOAD_ITEM_SUCCESS\n }\n );\n }\n );\n }\n\n onFileDroppedEvent(event: File[]): void {\n if (event && event.length > 0) {\n this.filesToUpload = event;\n }\n }\n}\n","<div class=\"c8y-viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i c8yIcon=\"upload\"></i>\n <h4\n id=\"modal-title\"\n translate\n >\n Upload files\n </h4>\n </div>\n <div class=\"modal-inner-scroll\">\n <div\n class=\"modal-body\"\n id=\"modal-body\"\n >\n <c8y-file-picker-form-control\n #filePicker\n [uploadInProgress]=\"isLoading\"\n (dropped)=\"onFileDroppedEvent($event)\"\n [uploadProgress]=\"uploadProgress\"\n ></c8y-file-picker-form-control>\n </div>\n </div>\n <div class=\"card-footer separator d-flex j-c-center\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"onClose.emit({ uploaded: false })\"\n [disabled]=\"isLoading\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-primary btn-form\"\n title=\"{{ 'Upload' | translate }}\"\n type=\"button\"\n (click)=\"upload()\"\n [disabled]=\"!filePicker.valid || isLoading\"\n translate\n data-cy=\"c8y-files-repository-upload--upload\"\n >\n Upload\n </button>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { QueriesUtil, InventoryService } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { Pagination, SortOrder, Column, Row } from '@c8y/ngx-components';\nimport { transform, has } from 'lodash-es';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilesRepositoryService {\n queriesUtil: QueriesUtil;\n baseQuery = { __has: 'c8y_IsBinary' };\n constructor(private inventoryService: InventoryService) {\n this.queriesUtil = new QueriesUtil();\n }\n\n getPagination(): Pagination {\n return {\n pageSize: 10,\n currentPage: 1\n };\n }\n\n hasApplicationStorageFragment(file: Row): boolean {\n return has(file, 'c8y_applications_storage');\n }\n\n getColumns(): Column[] {\n return [\n {\n name: 'name',\n header: gettext('Name'),\n path: 'name',\n filterable: true,\n sortable: true,\n sortOrder: 'asc' as SortOrder\n },\n {\n name: 'type',\n header: gettext('Type'),\n path: 'type',\n filterable: true,\n sortable: true\n },\n {\n name: 'length',\n header: gettext('Size'),\n path: 'length',\n filterable: false,\n sortable: true\n },\n {\n name: 'owner',\n header: gettext('Owner'),\n path: 'owner',\n filterable: true,\n sortable: true\n },\n {\n name: 'lastUpdated',\n header: gettext('Last update'),\n path: 'lastUpdated',\n filterable: false,\n sortable: true\n }\n ];\n }\n\n /** Returns array with items id where item has not c8y_applications_storage fragment. */\n getDeletableItemsIds(selectedItemsIds: string[], dataFromDataGrid: Array<any>): string[] {\n const selectedItemsWithoutApplications = [];\n dataFromDataGrid.forEach(item => {\n selectedItemsIds.forEach(selectedItemId => {\n if (selectedItemId === item.id && !this.hasApplicationStorageFragment(item)) {\n selectedItemsWithoutApplications.push(selectedItemId);\n }\n });\n });\n\n return selectedItemsWithoutApplications;\n }\n\n /** Returns the total number of items (with no filters based on columns setup). */\n async getTotal(): Promise<number> {\n const filters = {\n query: this.queriesUtil.buildQuery(this.baseQuery),\n withTotalElements: true\n };\n return (await this.inventoryService.list(filters)).paging.totalElements;\n }\n\n /** Returns data for current columns and pagination setup. */\n async getData(columns: Column[], pagination: Pagination, searchText = '') {\n // build filters based on columns and pagination\n const filters = {\n text: searchText,\n ...this.getFilters(columns, pagination),\n withTotalElements: true\n };\n // execute inventory query for the list of managed objects\n\n return this.inventoryService.list(filters);\n }\n\n /** Returns filters for given columns and pagination setup. */\n private getFilters(columns: Column[], pagination: Pagination) {\n return {\n query: this.getQueryString(columns),\n pageSize: pagination.pageSize,\n currentPage: pagination.currentPage,\n withChildren: false,\n withTotalPages: true\n };\n }\n\n /** Returns a query string based on columns setup. */\n private getQueryString(columns: Column[]): string {\n let fullQuery = this.getQueryObj(columns);\n fullQuery = this.queriesUtil.addAndFilter(fullQuery, this.baseQuery);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n\n /** Returns a query object based on columns setup. */\n private getQueryObj(columns: Column[]) {\n return transform(columns, (query, column) => this.addColumnQuery(query, column), {\n __filter: {},\n __orderby: []\n });\n }\n\n /** Extends given query with a part based on the setup of given column. */\n private addColumnQuery(query, column: Column): void {\n // when a column is marked as filterable\n if (column.filterable) {\n // in the case of default filtering form, `filterPredicate` will contain the string entered by a user\n if (column.filterPredicate) {\n // so we use it as the expected value, * allow to search for it anywhere in the property\n query.__filter[column.path] = `*${column.filterPredicate}*`;\n }\n\n // in the case of custom filtering form, we're storing the query in `externalFilterQuery.query`\n if (column.externalFilterQuery) {\n query = this.queriesUtil.addAndFilter(query, column.externalFilterQuery.query);\n }\n }\n\n // when a column is sortable and has a specified sorting order\n if (column.sortable && column.sortOrder) {\n // add sorting condition for the configured column `path`\n query.__orderby.push({\n [column.path]: column.sortOrder === 'asc' ? 1 : -1\n });\n }\n\n return query;\n }\n}\n","import { Component, EventEmitter, ViewChild } from '@angular/core';\nimport { IManagedObjectBinary, InventoryBinaryService } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n ActionControl,\n AlertService,\n BuiltInActionType,\n BulkActionControl,\n Column,\n DataGridComponent,\n DataSourceModifier,\n DisplayOptions,\n FilesService,\n LoadMoreMode,\n ModalService,\n Pagination,\n Row,\n ServerSideDataCallback,\n ServerSideDataResult,\n Status,\n TitleComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n ActionBarItemComponent,\n IfAllowedDirective,\n IconDirective,\n HelpComponent,\n EmptyStateContextDirective,\n EmptyStateComponent,\n ColumnDirective,\n CellRendererDefDirective,\n C8yTranslatePipe,\n DatePipe,\n BytesPipe\n} from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { FilesRepositoryUploadComponent } from './files-repository-upload.component';\nimport { FilesRepositoryService } from './files-repository.service';\n\nimport { NgIf } from '@angular/common';\nimport { FilePreviewComponent } from '@c8y/ngx-components/file-preview';\n\n@Component({\n selector: 'c8y-files-repository',\n templateUrl: './files-repository.component.html',\n imports: [\n TitleComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n ActionBarItemComponent,\n IfAllowedDirective,\n IconDirective,\n HelpComponent,\n DataGridComponent,\n EmptyStateContextDirective,\n EmptyStateComponent,\n NgIf,\n ColumnDirective,\n CellRendererDefDirective,\n FilePreviewComponent,\n C8yTranslatePipe,\n DatePipe,\n BytesPipe\n ]\n})\nexport class FilesRepositoryComponent {\n @ViewChild(DataGridComponent, { static: true }) dataGrid: DataGridComponent;\n destroy$: Subject<boolean> = new Subject<boolean>();\n title: string = gettext('Files repository');\n managementTitle: string = gettext('Management');\n loadMoreItemsLabel: string = gettext('Load more files');\n loadingItemsLabel: string = gettext('Loading files…');\n\n isLoading = true;\n\n displayOptions: DisplayOptions = {\n bordered: false,\n striped: true,\n filter: true,\n gridHeader: true,\n hover: true\n };\n\n columns: Column[] = this.filesRepositoryService.getColumns();\n pagination: Pagination = this.filesRepositoryService.getPagination();\n infiniteScroll: LoadMoreMode = 'auto';\n serverSideDataCallback: ServerSideDataCallback;\n returnedDataSize: number;\n selectable = true;\n actionControls: ActionControl[] = [\n {\n text: gettext('Delete'),\n icon: 'trash',\n type: BuiltInActionType.Delete,\n showIf: selectedItem =>\n !this.filesRepositoryService.hasApplicationStorageFragment(selectedItem),\n callback: selectedItem => this.onDeleteItem(selectedItem)\n },\n {\n text: gettext('Download'),\n icon: 'download',\n type: BuiltInActionType.Export,\n callback: selectedItem => this.onDownloadItem(selectedItem as IManagedObjectBinary)\n }\n ];\n bulkActionControls: BulkActionControl[] = [\n {\n type: BuiltInActionType.Delete,\n callback: selectedItemIds => this.onDeleteItems(selectedItemIds)\n }\n ];\n\n refresh: EventEmitter<void> = new EventEmitter<void>();\n\n noResultsMessage = gettext('No results to display.');\n noDataMessage = gettext('No files to display.');\n noResultsSubtitle = gettext('Refine your search terms or check your spelling.');\n noDataSubtitle = gettext('Add a new file by clicking below.');\n\n constructor(\n private filesRepositoryService: FilesRepositoryService,\n private inventoryBinaryService: InventoryBinaryService,\n private modalService: ModalService,\n private alertService: AlertService,\n private bsModalService: BsModalService,\n private fileService: FilesService,\n private translateService: TranslateService\n ) {\n // we're setting up `serverSideDataCallback` to execute a method from this component with bound `this`\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const { res, data, paging } = await this.filesRepositoryService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n dataSourceModifier.searchText\n );\n const filteredSize: number = paging.totalElements;\n const size: number = await this.filesRepositoryService.getTotal();\n\n const serverSideDataResult: ServerSideDataResult = { res, data, paging, filteredSize, size };\n this.isLoading = false;\n this.returnedDataSize = serverSideDataResult.size;\n\n return serverSideDataResult;\n }\n\n async onDeleteItem(selectedItem: Row) {\n return this.deleteItemsWithConfirmation([selectedItem.id], {\n title: gettext('Delete file'),\n body: this.translateService.instant(\n gettext('You are about to delete file \"{{ name }}\". Do you want to proceed?'),\n selectedItem\n ),\n successText: gettext('File deleted.')\n });\n }\n\n async onDeleteItems(selectedItemsIds: string[]) {\n const dataGridDataSourceData = await this.dataGrid.dataSource.data$.pipe(take(1)).toPromise();\n const deletableItemsIds = this.filesRepositoryService.getDeletableItemsIds(\n selectedItemsIds,\n dataGridDataSourceData\n );\n let body: string;\n if (deletableItemsIds.length < selectedItemsIds.length) {\n body = gettext(`\n You are about to delete the selected files.\n Note: the selected files of type \"c8y_applications_storage_*\" won't be deleted though\n - such files can be deleted only from the \"Activity log\" of the associated application.\n Do you want to proceed?\n `);\n } else {\n body = gettext('You are about to delete the selected files. Do you want to proceed?');\n }\n\n return this.deleteItemsWithConfirmation(deletableItemsIds, {\n title: gettext('Delete files'),\n body,\n successText: gettext('Files deleted.')\n });\n }\n\n async onDownloadItem(selectedItem: IManagedObjectBinary) {\n return this.fileService.download(selectedItem);\n }\n\n openFileUploadComponent() {\n const modalOptions: ModalOptions<FilesRepositoryUploadComponent> = {\n class: 'modal-sm',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title',\n ignoreBackdropClick: true\n };\n const modalRef = this.bsModalService.show(FilesRepositoryUploadComponent, modalOptions);\n modalRef.content.onClose.pipe(takeUntil(this.destroy$)).subscribe(({ uploaded }) => {\n if (uploaded) {\n this.refresh.emit();\n }\n modalRef.hide();\n });\n }\n\n private async deleteItemsWithConfirmation(\n selectedItemsIds: string[],\n options: { title: string; body: string; successText: string }\n ) {\n try {\n await this.confirmItemsDeletion(options);\n this.isLoading = true;\n const promises = selectedItemsIds.map(selectedItemId =>\n this.inventoryBinaryService.delete(selectedItemId)\n );\n await Promise.all(promises);\n this.alertService.success(options.successText);\n this.refresh.next();\n } catch (ex) {\n if (ex) {\n this.alertService.addServerFailure(ex);\n }\n } finally {\n this.isLoading = false;\n }\n }\n\n private async confirmItemsDeletion({ title, body }: { title: string; body: string }) {\n const status = Status.DANGER;\n const labels = { ok: gettext('Delete'), cancel: gettext('Cancel') };\n await this.modalService.confirm(title, body, status, labels);\n }\n}\n","<c8y-title>\n {{ title | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n [label]=\"managementTitle | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"title | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Upload files' | translate }}\"\n *c8yIfAllowed=\"['ROLE_INVENTORY_ADMIN', 'ROLE_INVENTORY_CREATE']; allowAny: true\"\n (click)=\"openFileUploadComponent()\"\n data-cy=\"c8y-files-repository--open-file-upload-component\"\n >\n <i c8yIcon=\"upload\"></i>\n {{ 'Upload files' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/docs/standard-tenant/managing-data/#file-repository\"></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"infiniteScroll\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [showSearch]=\"true\"\n [refresh]=\"refresh\"\n [bulkActionControls]=\"bulkActionControls\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-archive'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <p *ngIf=\"stats?.size === 0\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Upload file' | translate }}\"\n type=\"button\"\n (click)=\"openFileUploadComponent()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Upload file' | translate }}\n </button>\n </p>\n </c8y-ui-empty-state>\n\n <c8y-column name=\"name\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }}\">\n <div class=\"d-flex j-c-between a-i-center\">\n {{ context.value }}\n <c8y-file-preview\n class=\"m-l-auto\"\n [mo]=\"context.item\"\n >\n <button\n class=\"btn btn-emphasis btn-icon\"\n [title]=\"'Preview file' | translate\"\n type=\"button\"\n customButton\n >\n <i c8yIcon=\"search\"></i>\n </button>\n </c8y-file-preview>\n </div>\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"length\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }} B\">\n {{ context.value | bytes }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"lastUpdated\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value | c8yDate }}\">\n {{ context.value | c8yDate }}\n </span>\n </ng-container>\n </c8y-column>\n </c8y-data-grid>\n</div>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CoreModule, hookNavigator, hookRoute, DropAreaModule } from '@c8y/ngx-components';\nimport { FilesRepositoryNavigationFactory } from './files-repository-navigation.factory';\nimport { FilesRepositoryComponent } from './files-repository.component';\nimport { FilesRepositoryUploadComponent } from './files-repository-upload.component';\nimport { FilesRepositoryService } from './files-repository.service';\nimport { FilesRepositoryGuard } from './files-repository.guard';\nimport { FilePreviewModule } from '@c8y/ngx-components/file-preview';\n\n@NgModule({\n imports: [\n RouterModule,\n CoreModule,\n DropAreaModule,\n FilePreviewModule,\n FilesRepositoryComponent,\n FilesRepositoryUploadComponent\n ],\n exports: [],\n providers: [\n FilesRepositoryGuard,\n hookNavigator(FilesRepositoryNavigationFactory),\n hookRoute(\n {\n path: 'files',\n component: FilesRepositoryComponent,\n canActivate: [FilesRepositoryGuard]\n },\n { multi: true }\n ),\n FilesRepositoryService\n ]\n})\nexport class FilesRepositoryModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.FilesRepositoryGuard","i1","i1.FilesRepositoryService","i2","i3"],"mappings":"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"}
|
|
@@ -3,8 +3,9 @@ import { Pipe, EventEmitter, Input, Output, Component, Injectable, forwardRef, N
|
|
|
3
3
|
import * as i1 from '@angular/forms';
|
|
4
4
|
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
5
|
import * as i2 from '@c8y/ngx-components';
|
|
6
|
-
import {
|
|
6
|
+
import { IconDirective, C8yTranslateDirective, C8yTranslatePipe, CommonModule, DropAreaModule } from '@c8y/ngx-components';
|
|
7
7
|
import { TooltipDirective, TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
8
|
+
import { gettext } from '@c8y/ngx-components/gettext';
|
|
8
9
|
import * as i1$1 from 'ngx-bootstrap/modal';
|
|
9
10
|
import { BehaviorSubject, defer, from, combineLatest } from 'rxjs';
|
|
10
11
|
import { map, shareReplay, debounceTime, startWith } from 'rxjs/operators';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-icon-selector.mjs","sources":["../../icon-selector/icon-name.pipe.ts","../../icon-selector/icon-selector.component.ts","../../icon-selector/icon-selector.component.html","../../icon-selector/icon-selector-modal/icon-selector-modal.component.ts","../../icon-selector/icon-selector-modal/icon-selector-modal.component.html","../../icon-selector/icon-selector.service.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.html","../../icon-selector/icon-selector.module.ts","../../icon-selector/c8y-ngx-components-icon-selector.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'iconName' })\nexport class IconNamePipe implements PipeTransform {\n transform(icon: string): string {\n if (icon.startsWith('c8y-')) {\n return icon.replace(/^c8y-/, '');\n }\n return icon;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest, defer, from } from 'rxjs';\nimport { debounceTime, map, shareReplay, startWith } from 'rxjs/operators';\nimport {\n gettext,\n IconDirective,\n C8yTranslateDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { clone } from 'lodash-es';\nimport { DefaultIconDefinition } from '@c8y/ngx-components/icon-selector/model';\nimport { SupportedIconsSuggestions } from '@c8y/ngx-components/icon-selector/icons';\nimport { FormsModule } from '@angular/forms';\nimport { NgIf, NgFor, NgClass, AsyncPipe } from '@angular/common';\nimport { IconNamePipe } from './icon-name.pipe';\n\nconst allIconCategory = gettext('All`icons-category`');\n\n@Component({\n selector: 'c8y-icon-selector',\n templateUrl: './icon-selector.component.html',\n styleUrls: [],\n imports: [\n FormsModule,\n IconDirective,\n NgIf,\n C8yTranslateDirective,\n NgFor,\n NgClass,\n C8yTranslatePipe,\n AsyncPipe,\n IconNamePipe\n ]\n})\nexport class IconSelectorComponent {\n @Input() iconCategoriesToExclude: string[] = [];\n @Input() showIconClass = true;\n @Output() onSelect = new EventEmitter<string>();\n @Input() selectedIcon: SupportedIconsSuggestions;\n\n icons$: Observable<DefaultIconDefinition[]>;\n filteredIcons$: Observable<DefaultIconDefinition[]>;\n searchTerm$ = new BehaviorSubject('');\n selectedIconCategory$ = new BehaviorSubject<string>(allIconCategory);\n availableIconCategories$: Observable<string[]>;\n\n constructor() {\n this.icons$ = defer(() => from(this.loadIconDefinitions())).pipe(\n map(icons => icons.filter(tmp => !this.iconCategoriesToExclude.includes(tmp.label))),\n shareReplay({ refCount: true, bufferSize: 1 })\n );\n this.filteredIcons$ = combineLatest([\n this.icons$,\n this.searchTerm$.pipe(debounceTime(500), startWith(this.searchTerm$.value)),\n this.selectedIconCategory$\n ]).pipe(\n map(([icons, searchTerm, category]) =>\n this.filterIconsByCategoryAndSearchTerm(icons, category, searchTerm)\n )\n );\n this.availableIconCategories$ = this.icons$.pipe(\n map(icons => [allIconCategory, ...icons.map(tmp => tmp.label)])\n );\n }\n\n async loadIconDefinitions(): Promise<DefaultIconDefinition[]> {\n const { allIcons } = await import('@c8y/ngx-components/icon-selector/icons');\n return allIcons;\n }\n\n filterIconsByCategoryAndSearchTerm(\n iconCategories: DefaultIconDefinition[],\n selectedCategory: string,\n searchTerm: string\n ): DefaultIconDefinition[] {\n if (selectedCategory !== allIconCategory) {\n iconCategories = iconCategories.filter(category => category.label === selectedCategory);\n }\n\n if (searchTerm) {\n const lowerCaseSearchTerm = searchTerm.toLowerCase();\n const matchingCategories = new Array<DefaultIconDefinition>();\n for (const category of iconCategories) {\n const matchingIcons = category.icons.filter(iconClasses =>\n iconClasses.some(iconClass => iconClass.includes(lowerCaseSearchTerm))\n );\n if (matchingIcons.length) {\n matchingCategories.push({ ...clone(category), icons: matchingIcons });\n }\n }\n return matchingCategories;\n }\n\n return iconCategories;\n }\n\n onSearchChange(searchTerm: string) {\n this.searchTerm$.next(searchTerm);\n }\n\n onCategoryFilterChanged(categoryChange: string): void {\n this.selectedIconCategory$.next(categoryChange);\n }\n\n onIconClicked(icon: ReadonlyArray<string>): void {\n this.selectedIcon = icon[0];\n this.onSelect.emit(icon[0]);\n }\n}\n","<div class=\"p-l-24 p-r-24 p-t-8 p-b-8 separator-bottom\">\n <div class=\"row d-flex-sm\">\n <div class=\"col-sm-6 m-b-8\">\n <div class=\"input-group-search input-group\" style=\"width: auto\">\n <input\n type=\"search\"\n class=\"form-control\"\n id=\"filter-icons\"\n [ngModel]=\"searchTerm$ | async\"\n (ngModelChange)=\"onSearchChange($event)\"\n placeholder=\"{{ 'Type to filter icons…' | translate }}\"\n />\n <ng-template #searchIcon>\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\"></i>\n </span>\n </ng-template>\n <span\n class=\"input-group-addon pointer\"\n *ngIf=\"searchTerm$ | async; else searchIcon\"\n (click)=\"onSearchChange('')\"\n >\n <i c8yIcon=\"times\"></i>\n </span>\n </div>\n </div>\n <div class=\"col-sm-6 m-b-8 text-right\">\n <div class=\"d-inline-flex a-i-center text-left\">\n <label class=\"m-b-0 m-r-8 flex-no-shrink\" translate>Filter by type</label>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"exampleSelect\"\n class=\"form-control\"\n [ngModel]=\"selectedIconCategory$ | async\"\n (ngModelChange)=\"onCategoryFilterChanged($event)\"\n >\n <option *ngFor=\"let category of availableIconCategories$ | async\" [ngValue]=\"category\">\n {{ category | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-inner-scroll\">\n <div class=\"modal-body\" style=\"height: calc(100vh - 293px)\">\n <div class=\"dtm-icon-grid\">\n <div *ngFor=\"let iconDefinition of filteredIcons$ | async\" class=\"d-contents\">\n <div class=\"legend form-block center grid__col--fullspan\">\n {{ iconDefinition.label | translate }}\n </div>\n\n <div class=\"d-contents\" *ngFor=\"let icon of iconDefinition.icons\">\n <div\n class=\"dtm-icon-grid__item\"\n [ngClass]=\"{\n 'dtm-icon-grid__item--selected': selectedIcon && icon[0] === selectedIcon\n }\"\n >\n <button (click)=\"onIconClicked(icon)\" class=\"dtm-icon-grid__btn\" [title]=\"icon[0] | iconName\">\n <i [c8yIcon]=\"icon[0]\" class=\"d-block icon-40\"></i>\n <small *ngIf=\"showIconClass\" class=\"text-break-word\">{{ icon[0] | iconName }}</small>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { gettext, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { IconSelectorComponent } from '../icon-selector.component';\n\n@Component({\n selector: 'c8y-icon-selector-modal',\n templateUrl: './icon-selector-modal.component.html',\n imports: [IconSelectorComponent, C8yTranslatePipe]\n})\nexport class IconSelectorModalComponent {\n title: string = gettext('Select icon');\n currentSelection: string;\n saveButtonLabel: string = gettext('Select');\n iconCategoriesToExclude: string[] = [];\n showIconClass = true;\n\n readonly result: Promise<string> = new Promise((resolve, reject) => {\n this.save = resolve;\n this.cancel = reject;\n });\n\n private save: (value: string) => void;\n private cancel: (reason?: any) => void;\n\n constructor(private bsModal: BsModalRef) {}\n\n close() {\n this.bsModal.hide();\n this.cancel();\n }\n\n saveChanges(): void {\n this.bsModal.hide();\n this.save(this.currentSelection);\n }\n\n selectionChange(newSelection: string) {\n this.currentSelection = newSelection;\n }\n}\n","<div class=\"modal-header\">\n <div id=\"modal-title\" class=\"modal-title h4\">{{ title | translate }}</div>\n</div>\n<div id=\"modal-body\">\n <c8y-icon-selector\n (onSelect)=\"selectionChange($event)\"\n [selectedIcon]=\"currentSelection\"\n [iconCategoriesToExclude]=\"iconCategoriesToExclude\"\n [showIconClass]=\"showIconClass\"\n ></c8y-icon-selector>\n</div>\n<div class=\"modal-footer separator text-center\">\n <button class=\"btn btn-default\" (click)=\"close()\">\n {{ 'Cancel' | translate }}\n </button>\n <button class=\"btn btn-primary\" [disabled]=\"!currentSelection\" (click)=\"saveChanges()\">\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { IconSelectorModalComponent } from './icon-selector-modal/icon-selector-modal.component';\n\n@Injectable({ providedIn: 'root' })\nexport class IconSelectorService {\n constructor(protected modal: BsModalService) {}\n\n selectIcon(\n initialState: Partial<\n Pick<\n IconSelectorModalComponent,\n | 'currentSelection'\n | 'title'\n | 'saveButtonLabel'\n | 'iconCategoriesToExclude'\n | 'showIconClass'\n >\n > = {}\n ): Promise<string> {\n const modal = this.modal.show(IconSelectorModalComponent, {\n ignoreBackdropClick: true,\n keyboard: false,\n initialState,\n class: 'modal-lg'\n });\n const content = modal.content as IconSelectorModalComponent;\n return content.result;\n }\n}\n","import { Component, forwardRef, Input, Output, EventEmitter } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IconSelectorService } from '../icon-selector.service';\nimport { GainsightService, IconDirective, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { PRODUCT_EXPERIENCE_ICON_SELECTOR } from '@c8y/ngx-components/icon-selector/model';\nimport { NgIf } from '@angular/common';\nimport { TooltipDirective } from 'ngx-bootstrap/tooltip';\n\n/**\n * A component which acts as a wrapper for the icon selector.\n *\n * Example 1:\n * ```\n <c8y-icon-selector-wrapper\n [selectedIcon]=\"'water'\"\n (onSelect)=\"selectIcon($event)\"\n ></c8y-icon-selector-wrapper>\n * ```\n * OR as a part of a formGroup\n * Example 2:\n * ```\n <c8y-icon-selector-wrapper name=\"icon\" formControlName=\"icon\">\n </c8y-icon-selector-wrapper>\n * ```\n */\n@Component({\n selector: 'c8y-icon-selector-wrapper',\n templateUrl: './icon-selector-wrapper.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IconSelectorWrapperComponent),\n multi: true\n }\n ],\n imports: [NgIf, IconDirective, TooltipDirective, C8yTranslatePipe]\n})\nexport class IconSelectorWrapperComponent implements ControlValueAccessor {\n @Input() canRemoveIcon = false;\n @Input() selectedIcon: string;\n /**\n * The displayed icon size, the value has to be multiple of 8.\n */\n @Input() iconSize = 32;\n @Output() onSelect: EventEmitter<string> = new EventEmitter();\n\n /**\n * @ignore\n */\n onTouched: () => void;\n\n constructor(\n private iconSelector: IconSelectorService,\n private gainsightService: GainsightService\n ) {}\n\n /**\n * @ignore\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: string) => void = () => {};\n\n /**\n * @ignore\n * @param icon The value to update\n */\n writeValue(icon: string): void {\n this.selectedIcon = icon;\n }\n\n /**\n * @ignore\n * @param fn The function to register for changes\n */\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n /**\n * @ignore\n * @param fn The function to register for changes\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n removeIcon() {\n this.onSelect.emit(undefined);\n }\n\n async openIconSelector() {\n try {\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE_ICON_SELECTOR.EVENTS.ICON_SELECTOR, {\n component: PRODUCT_EXPERIENCE_ICON_SELECTOR.COMPONENTS.ICON_SELECTOR_WRAPPER_COMPONENT,\n action: PRODUCT_EXPERIENCE_ICON_SELECTOR.ACTIONS.OPEN_ICON_SELECTOR\n });\n const icon = await this.iconSelector.selectIcon({\n currentSelection: this.selectedIcon\n });\n this.onChange(icon);\n this.selectedIcon = icon;\n this.onSelect.emit(icon);\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE_ICON_SELECTOR.EVENTS.ICON_SELECTOR, {\n component: PRODUCT_EXPERIENCE_ICON_SELECTOR.COMPONENTS.ICON_SELECTOR_WRAPPER_COMPONENT,\n action: PRODUCT_EXPERIENCE_ICON_SELECTOR.ACTIONS.ICON_SELECTED\n });\n } catch {\n // nothing to do\n }\n }\n}\n","<div class=\"d-flex a-i-center j-c-center p-relative\">\n <div\n class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\"\n *ngIf=\"selectedIcon\"\n >\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n *ngIf=\"!selectedIcon\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n <button\n class=\"btn btn-dot btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n *ngIf=\"!selectedIcon\"\n >\n {{ 'Select' | translate }}\n </button>\n <button\n class=\"btn btn-dot btn-sm btn-icon m-0\"\n [attr.aria-label]=\"'Change icon' | translate\"\n tooltip=\"{{ 'Change icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon\"\n (click)=\"openIconSelector()\"\n >\n <i [c8yIcon]=\"'replace'\"></i>\n </button>\n <button\n class=\"btn btn-dot btn-dot--danger btn-icon btn-sm m-0\"\n [attr.aria-label]=\"'Remove icon and use default icon' | translate\"\n tooltip=\"{{ 'Remove icon and use default icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon && canRemoveIcon\"\n (click)=\"removeIcon()\"\n >\n <i [c8yIcon]=\"'trash'\"></i>\n </button>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule, DropAreaModule } from '@c8y/ngx-components';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { IconNamePipe } from './icon-name.pipe';\nimport { IconSelectorModalComponent } from './icon-selector-modal/icon-selector-modal.component';\nimport { IconSelectorComponent } from './icon-selector.component';\nimport { IconSelectorWrapperComponent } from './icon-selector-wrapper/icon-selector-wrapper.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n DropAreaModule,\n TooltipModule,\n IconSelectorComponent,\n IconSelectorModalComponent,\n IconNamePipe,\n IconSelectorWrapperComponent\n ],\n exports: [\n IconSelectorComponent,\n IconSelectorModalComponent,\n IconNamePipe,\n IconSelectorWrapperComponent\n ]\n})\nexport class IconSelectorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.IconSelectorService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-icon-selector.mjs","sources":["../../icon-selector/icon-name.pipe.ts","../../icon-selector/icon-selector.component.ts","../../icon-selector/icon-selector.component.html","../../icon-selector/icon-selector-modal/icon-selector-modal.component.ts","../../icon-selector/icon-selector-modal/icon-selector-modal.component.html","../../icon-selector/icon-selector.service.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.html","../../icon-selector/icon-selector.module.ts","../../icon-selector/c8y-ngx-components-icon-selector.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'iconName' })\nexport class IconNamePipe implements PipeTransform {\n transform(icon: string): string {\n if (icon.startsWith('c8y-')) {\n return icon.replace(/^c8y-/, '');\n }\n return icon;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest, defer, from } from 'rxjs';\nimport { debounceTime, map, shareReplay, startWith } from 'rxjs/operators';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { IconDirective, C8yTranslateDirective, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { clone } from 'lodash-es';\nimport { DefaultIconDefinition } from '@c8y/ngx-components/icon-selector/model';\nimport { SupportedIconsSuggestions } from '@c8y/ngx-components/icon-selector/icons';\nimport { FormsModule } from '@angular/forms';\nimport { NgIf, NgFor, NgClass, AsyncPipe } from '@angular/common';\nimport { IconNamePipe } from './icon-name.pipe';\n\nconst allIconCategory = gettext('All`icons-category`');\n\n@Component({\n selector: 'c8y-icon-selector',\n templateUrl: './icon-selector.component.html',\n styleUrls: [],\n imports: [\n FormsModule,\n IconDirective,\n NgIf,\n C8yTranslateDirective,\n NgFor,\n NgClass,\n C8yTranslatePipe,\n AsyncPipe,\n IconNamePipe\n ]\n})\nexport class IconSelectorComponent {\n @Input() iconCategoriesToExclude: string[] = [];\n @Input() showIconClass = true;\n @Output() onSelect = new EventEmitter<string>();\n @Input() selectedIcon: SupportedIconsSuggestions;\n\n icons$: Observable<DefaultIconDefinition[]>;\n filteredIcons$: Observable<DefaultIconDefinition[]>;\n searchTerm$ = new BehaviorSubject('');\n selectedIconCategory$ = new BehaviorSubject<string>(allIconCategory);\n availableIconCategories$: Observable<string[]>;\n\n constructor() {\n this.icons$ = defer(() => from(this.loadIconDefinitions())).pipe(\n map(icons => icons.filter(tmp => !this.iconCategoriesToExclude.includes(tmp.label))),\n shareReplay({ refCount: true, bufferSize: 1 })\n );\n this.filteredIcons$ = combineLatest([\n this.icons$,\n this.searchTerm$.pipe(debounceTime(500), startWith(this.searchTerm$.value)),\n this.selectedIconCategory$\n ]).pipe(\n map(([icons, searchTerm, category]) =>\n this.filterIconsByCategoryAndSearchTerm(icons, category, searchTerm)\n )\n );\n this.availableIconCategories$ = this.icons$.pipe(\n map(icons => [allIconCategory, ...icons.map(tmp => tmp.label)])\n );\n }\n\n async loadIconDefinitions(): Promise<DefaultIconDefinition[]> {\n const { allIcons } = await import('@c8y/ngx-components/icon-selector/icons');\n return allIcons;\n }\n\n filterIconsByCategoryAndSearchTerm(\n iconCategories: DefaultIconDefinition[],\n selectedCategory: string,\n searchTerm: string\n ): DefaultIconDefinition[] {\n if (selectedCategory !== allIconCategory) {\n iconCategories = iconCategories.filter(category => category.label === selectedCategory);\n }\n\n if (searchTerm) {\n const lowerCaseSearchTerm = searchTerm.toLowerCase();\n const matchingCategories = new Array<DefaultIconDefinition>();\n for (const category of iconCategories) {\n const matchingIcons = category.icons.filter(iconClasses =>\n iconClasses.some(iconClass => iconClass.includes(lowerCaseSearchTerm))\n );\n if (matchingIcons.length) {\n matchingCategories.push({ ...clone(category), icons: matchingIcons });\n }\n }\n return matchingCategories;\n }\n\n return iconCategories;\n }\n\n onSearchChange(searchTerm: string) {\n this.searchTerm$.next(searchTerm);\n }\n\n onCategoryFilterChanged(categoryChange: string): void {\n this.selectedIconCategory$.next(categoryChange);\n }\n\n onIconClicked(icon: ReadonlyArray<string>): void {\n this.selectedIcon = icon[0];\n this.onSelect.emit(icon[0]);\n }\n}\n","<div class=\"p-l-24 p-r-24 p-t-8 p-b-8 separator-bottom\">\n <div class=\"row d-flex-sm\">\n <div class=\"col-sm-6 m-b-8\">\n <div class=\"input-group-search input-group\" style=\"width: auto\">\n <input\n type=\"search\"\n class=\"form-control\"\n id=\"filter-icons\"\n [ngModel]=\"searchTerm$ | async\"\n (ngModelChange)=\"onSearchChange($event)\"\n placeholder=\"{{ 'Type to filter icons…' | translate }}\"\n />\n <ng-template #searchIcon>\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\"></i>\n </span>\n </ng-template>\n <span\n class=\"input-group-addon pointer\"\n *ngIf=\"searchTerm$ | async; else searchIcon\"\n (click)=\"onSearchChange('')\"\n >\n <i c8yIcon=\"times\"></i>\n </span>\n </div>\n </div>\n <div class=\"col-sm-6 m-b-8 text-right\">\n <div class=\"d-inline-flex a-i-center text-left\">\n <label class=\"m-b-0 m-r-8 flex-no-shrink\" translate>Filter by type</label>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"exampleSelect\"\n class=\"form-control\"\n [ngModel]=\"selectedIconCategory$ | async\"\n (ngModelChange)=\"onCategoryFilterChanged($event)\"\n >\n <option *ngFor=\"let category of availableIconCategories$ | async\" [ngValue]=\"category\">\n {{ category | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-inner-scroll\">\n <div class=\"modal-body\" style=\"height: calc(100vh - 293px)\">\n <div class=\"dtm-icon-grid\">\n <div *ngFor=\"let iconDefinition of filteredIcons$ | async\" class=\"d-contents\">\n <div class=\"legend form-block center grid__col--fullspan\">\n {{ iconDefinition.label | translate }}\n </div>\n\n <div class=\"d-contents\" *ngFor=\"let icon of iconDefinition.icons\">\n <div\n class=\"dtm-icon-grid__item\"\n [ngClass]=\"{\n 'dtm-icon-grid__item--selected': selectedIcon && icon[0] === selectedIcon\n }\"\n >\n <button (click)=\"onIconClicked(icon)\" class=\"dtm-icon-grid__btn\" [title]=\"icon[0] | iconName\">\n <i [c8yIcon]=\"icon[0]\" class=\"d-block icon-40\"></i>\n <small *ngIf=\"showIconClass\" class=\"text-break-word\">{{ icon[0] | iconName }}</small>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { C8yTranslatePipe } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { IconSelectorComponent } from '../icon-selector.component';\n\n@Component({\n selector: 'c8y-icon-selector-modal',\n templateUrl: './icon-selector-modal.component.html',\n imports: [IconSelectorComponent, C8yTranslatePipe]\n})\nexport class IconSelectorModalComponent {\n title: string = gettext('Select icon');\n currentSelection: string;\n saveButtonLabel: string = gettext('Select');\n iconCategoriesToExclude: string[] = [];\n showIconClass = true;\n\n readonly result: Promise<string> = new Promise((resolve, reject) => {\n this.save = resolve;\n this.cancel = reject;\n });\n\n private save: (value: string) => void;\n private cancel: (reason?: any) => void;\n\n constructor(private bsModal: BsModalRef) {}\n\n close() {\n this.bsModal.hide();\n this.cancel();\n }\n\n saveChanges(): void {\n this.bsModal.hide();\n this.save(this.currentSelection);\n }\n\n selectionChange(newSelection: string) {\n this.currentSelection = newSelection;\n }\n}\n","<div class=\"modal-header\">\n <div id=\"modal-title\" class=\"modal-title h4\">{{ title | translate }}</div>\n</div>\n<div id=\"modal-body\">\n <c8y-icon-selector\n (onSelect)=\"selectionChange($event)\"\n [selectedIcon]=\"currentSelection\"\n [iconCategoriesToExclude]=\"iconCategoriesToExclude\"\n [showIconClass]=\"showIconClass\"\n ></c8y-icon-selector>\n</div>\n<div class=\"modal-footer separator text-center\">\n <button class=\"btn btn-default\" (click)=\"close()\">\n {{ 'Cancel' | translate }}\n </button>\n <button class=\"btn btn-primary\" [disabled]=\"!currentSelection\" (click)=\"saveChanges()\">\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { IconSelectorModalComponent } from './icon-selector-modal/icon-selector-modal.component';\n\n@Injectable({ providedIn: 'root' })\nexport class IconSelectorService {\n constructor(protected modal: BsModalService) {}\n\n selectIcon(\n initialState: Partial<\n Pick<\n IconSelectorModalComponent,\n | 'currentSelection'\n | 'title'\n | 'saveButtonLabel'\n | 'iconCategoriesToExclude'\n | 'showIconClass'\n >\n > = {}\n ): Promise<string> {\n const modal = this.modal.show(IconSelectorModalComponent, {\n ignoreBackdropClick: true,\n keyboard: false,\n initialState,\n class: 'modal-lg'\n });\n const content = modal.content as IconSelectorModalComponent;\n return content.result;\n }\n}\n","import { Component, forwardRef, Input, Output, EventEmitter } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IconSelectorService } from '../icon-selector.service';\nimport { GainsightService, IconDirective, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { PRODUCT_EXPERIENCE_ICON_SELECTOR } from '@c8y/ngx-components/icon-selector/model';\nimport { NgIf } from '@angular/common';\nimport { TooltipDirective } from 'ngx-bootstrap/tooltip';\n\n/**\n * A component which acts as a wrapper for the icon selector.\n *\n * Example 1:\n * ```\n <c8y-icon-selector-wrapper\n [selectedIcon]=\"'water'\"\n (onSelect)=\"selectIcon($event)\"\n ></c8y-icon-selector-wrapper>\n * ```\n * OR as a part of a formGroup\n * Example 2:\n * ```\n <c8y-icon-selector-wrapper name=\"icon\" formControlName=\"icon\">\n </c8y-icon-selector-wrapper>\n * ```\n */\n@Component({\n selector: 'c8y-icon-selector-wrapper',\n templateUrl: './icon-selector-wrapper.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IconSelectorWrapperComponent),\n multi: true\n }\n ],\n imports: [NgIf, IconDirective, TooltipDirective, C8yTranslatePipe]\n})\nexport class IconSelectorWrapperComponent implements ControlValueAccessor {\n @Input() canRemoveIcon = false;\n @Input() selectedIcon: string;\n /**\n * The displayed icon size, the value has to be multiple of 8.\n */\n @Input() iconSize = 32;\n @Output() onSelect: EventEmitter<string> = new EventEmitter();\n\n /**\n * @ignore\n */\n onTouched: () => void;\n\n constructor(\n private iconSelector: IconSelectorService,\n private gainsightService: GainsightService\n ) {}\n\n /**\n * @ignore\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: string) => void = () => {};\n\n /**\n * @ignore\n * @param icon The value to update\n */\n writeValue(icon: string): void {\n this.selectedIcon = icon;\n }\n\n /**\n * @ignore\n * @param fn The function to register for changes\n */\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n /**\n * @ignore\n * @param fn The function to register for changes\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n removeIcon() {\n this.onSelect.emit(undefined);\n }\n\n async openIconSelector() {\n try {\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE_ICON_SELECTOR.EVENTS.ICON_SELECTOR, {\n component: PRODUCT_EXPERIENCE_ICON_SELECTOR.COMPONENTS.ICON_SELECTOR_WRAPPER_COMPONENT,\n action: PRODUCT_EXPERIENCE_ICON_SELECTOR.ACTIONS.OPEN_ICON_SELECTOR\n });\n const icon = await this.iconSelector.selectIcon({\n currentSelection: this.selectedIcon\n });\n this.onChange(icon);\n this.selectedIcon = icon;\n this.onSelect.emit(icon);\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE_ICON_SELECTOR.EVENTS.ICON_SELECTOR, {\n component: PRODUCT_EXPERIENCE_ICON_SELECTOR.COMPONENTS.ICON_SELECTOR_WRAPPER_COMPONENT,\n action: PRODUCT_EXPERIENCE_ICON_SELECTOR.ACTIONS.ICON_SELECTED\n });\n } catch {\n // nothing to do\n }\n }\n}\n","<div class=\"d-flex a-i-center j-c-center p-relative\">\n <div\n class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\"\n *ngIf=\"selectedIcon\"\n >\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n *ngIf=\"!selectedIcon\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n <button\n class=\"btn btn-dot btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n *ngIf=\"!selectedIcon\"\n >\n {{ 'Select' | translate }}\n </button>\n <button\n class=\"btn btn-dot btn-sm btn-icon m-0\"\n [attr.aria-label]=\"'Change icon' | translate\"\n tooltip=\"{{ 'Change icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon\"\n (click)=\"openIconSelector()\"\n >\n <i [c8yIcon]=\"'replace'\"></i>\n </button>\n <button\n class=\"btn btn-dot btn-dot--danger btn-icon btn-sm m-0\"\n [attr.aria-label]=\"'Remove icon and use default icon' | translate\"\n tooltip=\"{{ 'Remove icon and use default icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon && canRemoveIcon\"\n (click)=\"removeIcon()\"\n >\n <i [c8yIcon]=\"'trash'\"></i>\n </button>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule, DropAreaModule } from '@c8y/ngx-components';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { IconNamePipe } from './icon-name.pipe';\nimport { IconSelectorModalComponent } from './icon-selector-modal/icon-selector-modal.component';\nimport { IconSelectorComponent } from './icon-selector.component';\nimport { IconSelectorWrapperComponent } from './icon-selector-wrapper/icon-selector-wrapper.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n DropAreaModule,\n TooltipModule,\n IconSelectorComponent,\n IconSelectorModalComponent,\n IconNamePipe,\n IconSelectorWrapperComponent\n ],\n exports: [\n IconSelectorComponent,\n IconSelectorModalComponent,\n IconNamePipe,\n IconSelectorWrapperComponent\n ]\n})\nexport class IconSelectorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.IconSelectorService"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { TemplateRef, ViewChild, Optional, Inject, Component, Injectable, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@c8y/client';
|
|
4
4
|
import * as i1$1 from '@c8y/ngx-components';
|
|
5
|
-
import { IconDirective, C8yTranslateDirective, C8yTranslatePipe, ViewContext,
|
|
5
|
+
import { IconDirective, C8yTranslateDirective, C8yTranslatePipe, ViewContext, Permissions, ActionBarItemComponent, FormGroupComponent, RequiredInputPlaceholderDirective, MinValidationDirective, MaxValidationDirective, MessagesComponent, MessageDirective, CoreModule, hookRoute, hookTab, hookActionBar } from '@c8y/ngx-components';
|
|
6
6
|
import * as i3 from '@angular/router';
|
|
7
7
|
import { RouterModule } from '@angular/router';
|
|
8
8
|
import { defaultMapConfig, MAP_DEFAULT_CONFIG, MapComponent, MapModule } from '@c8y/ngx-components/map';
|
|
@@ -10,6 +10,7 @@ import * as i4 from 'rxjs';
|
|
|
10
10
|
import { of, Subject } from 'rxjs';
|
|
11
11
|
import { first, takeUntil } from 'rxjs/operators';
|
|
12
12
|
import { isUndefined, cloneDeep } from 'lodash-es';
|
|
13
|
+
import { gettext } from '@c8y/ngx-components/gettext';
|
|
13
14
|
import { NgClass, NgIf } from '@angular/common';
|
|
14
15
|
import * as i4$1 from '@angular/forms';
|
|
15
16
|
import { FormsModule } from '@angular/forms';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-location.mjs","sources":["../../location/add-location.component.ts","../../location/add-location.component.html","../../location/add-location.factory.ts","../../location/location-tab.factory.ts","../../location/location.component.ts","../../location/location.component.html","../../location/location.module.ts","../../location/c8y-ngx-components-location.ts"],"sourcesContent":["import {\n Component,\n Inject,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { IManagedObject, InventoryService } from '@c8y/client';\nimport {\n AlertService,\n ContextRouteService,\n IconDirective,\n C8yTranslateDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport type { MapDefaultConfig } from '@c8y/options';\nimport { Router } from '@angular/router';\nimport { MAP_DEFAULT_CONFIG, defaultMapConfig } from '@c8y/ngx-components/map';\nimport { Observable, of } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\n@Component({\n selector: 'c8y-add-location',\n templateUrl: './add-location.component.html',\n imports: [IconDirective, C8yTranslateDirective, C8yTranslatePipe]\n})\nexport class AddLocationComponent implements OnInit {\n @ViewChild('templateCopy', { read: TemplateRef, static: true }) templateCopy;\n\n constructor(\n private inventoryService: InventoryService,\n private contextRouteService: ContextRouteService,\n @Optional()\n @Inject(MAP_DEFAULT_CONFIG)\n private defaultConfig$: Observable<MapDefaultConfig>,\n private router: Router,\n private alertService: AlertService,\n private vcRef: ViewContainerRef\n ) {}\n\n ngOnInit() {\n this.vcRef.createEmbeddedView(this.templateCopy);\n }\n\n onClick(): void {\n const mapConfig$ = this.defaultConfig$ || of(defaultMapConfig);\n mapConfig$.pipe(first()).subscribe(async config => {\n const context = this.contextRouteService.activatedContextData;\n context.contextData.c8y_Position = {\n lat: config.center[0],\n lng: config.center[1]\n };\n try {\n await this.inventoryService.update(context.contextData as IManagedObject);\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n }\n\n const route = this.contextRouteService.getContextRoute(context);\n this.contextRouteService.refreshContext();\n this.router.navigateByUrl(route + '/location');\n });\n }\n}\n","<ng-template #templateCopy>\n <button\n class=\"btn btn-link\"\n [title]=\"'Add location' | translate\"\n (click)=\"onClick()\"\n >\n <i c8yIcon=\"location-arrow\"></i>\n <span translate>Add location</span>\n </button>\n</ng-template>\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n ActionBarFactory,\n ActionBarItem,\n ContextRouteService,\n ViewContext\n} from '@c8y/ngx-components';\nimport { AddLocationComponent } from './add-location.component';\nimport { isUndefined } from 'lodash-es';\n\n@Injectable({ providedIn: 'root' })\nexport class AddLocationFactory implements ActionBarFactory {\n private action: ActionBarItem = {\n component: AddLocationComponent,\n placement: 'more'\n };\n\n constructor(private contextRouteService: ContextRouteService) {}\n\n get(activatedRoute?: ActivatedRoute): ActionBarItem {\n const routeData = this.contextRouteService.getContextData(activatedRoute);\n if (!routeData) {\n return;\n }\n if (\n routeData.context === ViewContext.Device &&\n isUndefined(routeData.contextData.c8y_Position)\n ) {\n return this.action;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n ContextRouteService,\n Tab,\n ViewContext,\n ExtensionFactory,\n gettext\n} from '@c8y/ngx-components';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocationTabFactory implements ExtensionFactory<Tab> {\n constructor(private contextRouteService: ContextRouteService) {}\n\n get(activatedRoute: ActivatedRoute): Tab[] {\n const contextData = this.contextRouteService.getContextData(activatedRoute);\n const isDeviceOrGroupWithPosition =\n (contextData?.context === ViewContext.Device || contextData?.context === ViewContext.Group) &&\n contextData?.contextData.c8y_Position;\n if (isDeviceOrGroupWithPosition) {\n return [\n {\n label: gettext('Location'),\n icon: 'location-arrow',\n path: `${this.contextRouteService.getContextRoute(contextData)}/location`\n }\n ];\n }\n return [];\n }\n}\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MapComponent, MapConfig, PositionManagedObject } from '@c8y/ngx-components/map';\nimport {\n AlertService,\n ContextRouteService,\n OptionsService,\n Permissions,\n gettext,\n ActionBarItemComponent,\n C8yTranslateDirective,\n IconDirective,\n FormGroupComponent,\n RequiredInputPlaceholderDirective,\n MinValidationDirective,\n MaxValidationDirective,\n MessagesComponent,\n MessageDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { ActivatedRoute } from '@angular/router';\nimport { InventoryService } from '@c8y/client';\nimport { isUndefined, cloneDeep } from 'lodash-es';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { NgClass, NgIf } from '@angular/common';\n\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'c8y-location',\n templateUrl: './location.component.html',\n imports: [\n ActionBarItemComponent,\n NgClass,\n C8yTranslateDirective,\n IconDirective,\n MapComponent,\n FormsModule,\n NgIf,\n FormGroupComponent,\n RequiredInputPlaceholderDirective,\n MinValidationDirective,\n MaxValidationDirective,\n MessagesComponent,\n MessageDirective,\n C8yTranslatePipe\n ]\n})\nexport class LocationComponent implements OnInit, OnDestroy {\n position: PositionManagedObject;\n originalPosition: PositionManagedObject;\n isEdit = false;\n canEdit = true;\n config: MapConfig = { realtime: false, follow: true, zoomLevel: 12 };\n addressSearchTerm = '';\n hideAddressSearchFeature = false;\n\n private destroy$ = new Subject<void>();\n private mapNominatimUrl = 'https://nominatim.openstreetmap.org/search?format=json&q={searchTerm}';\n\n @ViewChild(MapComponent)\n map: MapComponent;\n\n constructor(\n private contextRouteService: ContextRouteService,\n private activatedRoute: ActivatedRoute,\n private inventoryService: InventoryService,\n private permissions: Permissions,\n private optionsService: OptionsService,\n private alertService: AlertService\n ) {}\n\n ngOnInit(): void {\n this.activatedRoute.url.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.updateMap();\n });\n }\n\n async updateMap() {\n const { contextData } = this.contextRouteService.getContextData(this.activatedRoute);\n this.position = contextData as PositionManagedObject;\n this.canEdit = await this.permissions.canEdit(\n [Permissions.ROLE_INVENTORY_ADMIN, Permissions.ROLE_INVENTORY_CREATE],\n contextData\n );\n\n const hasCustomSetting = !isUndefined(this.optionsService.mapNominatimUrl);\n this.hideAddressSearchFeature = hasCustomSetting && !this.optionsService.mapNominatimUrl;\n\n if (hasCustomSetting) {\n this.mapNominatimUrl = this.optionsService.mapNominatimUrl;\n }\n\n this.map.refresh();\n }\n\n toggleRealtime() {\n this.config = { ...this.config, realtime: !this.config.realtime };\n }\n\n disableRealtime() {\n this.config = { ...this.config, realtime: false };\n }\n\n centerMap() {\n this.config = {\n ...this.config,\n center: [this.position.c8y_Position.lat, this.position.c8y_Position.lng]\n };\n }\n\n edit() {\n this.originalPosition = cloneDeep(this.position);\n this.enableMarkerDragging();\n this.disableRealtime();\n this.isEdit = true;\n }\n\n cancel() {\n this.position = this.originalPosition;\n this.isEdit = false;\n this.map.markers[0]?.dragging.disable();\n this.centerMap();\n }\n\n async save() {\n try {\n const { data } = await this.inventoryService.update({\n id: this.position.id,\n c8y_Position: this.position.c8y_Position\n });\n this.position = data as PositionManagedObject;\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n }\n this.map.markers[0]?.dragging.disable();\n this.centerMap();\n this.isEdit = false;\n }\n\n positionChanged(position: PositionManagedObject) {\n this.position = position;\n }\n\n async searchAddress(searchTerm: string) {\n const fetchResponse = await fetch(this.mapNominatimUrl.replace('{searchTerm}', searchTerm));\n if (fetchResponse.status !== 200) {\n this.alertService.danger(gettext('Failed to search for address.'));\n return;\n }\n const data: Array<{ lat: string | number; lon: string | number; licence?: string }> =\n await fetchResponse.json();\n const latLng = data[0];\n if (!latLng) {\n this.alertService.warning(gettext('Address could not be found.'));\n return;\n }\n this.position.c8y_Position.lat = Number(latLng.lat);\n this.position.c8y_Position.lng = Number(latLng.lon);\n this.updateMarkerPosition();\n if (latLng.licence) {\n this.map.map.attributionControl.addAttribution(latLng.licence);\n }\n }\n\n updateMarkerPosition() {\n this.map.refreshMarkers();\n this.enableMarkerDragging();\n this.centerMap();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n private enableMarkerDragging() {\n const marker = this.map.markers[0];\n if (marker) {\n marker.dragging.enable();\n marker.on('dragend', () => {\n const latlng = marker.getLatLng();\n this.position.c8y_Position = {\n ...this.position.c8y_Position,\n lat: latlng.lat,\n lng: latlng.lng\n };\n this.centerMap();\n });\n }\n }\n}\n","<c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link c8y-realtime\"\n title=\"{{ 'Toggle realtime' | translate }}\"\n type=\"button\"\n (click)=\"toggleRealtime()\"\n >\n <span\n class=\"c8y-pulse\"\n [ngClass]=\"{ active: config.realtime, inactive: !config.realtime }\"\n ></span>\n <span translate>Realtime</span>\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-clean\"\n title=\"{{ 'Center`verb`' | translate }}\"\n (click)=\"centerMap()\"\n >\n <i [c8yIcon]=\"'target1'\"></i>\n <span translate>Center`verb`</span>\n </button>\n</c8y-action-bar-item>\n\n<div class=\"card card--grid content-fullpage d-grid grid__col--8-4--md\">\n <div\n class=\"bg-white p-relative\"\n style=\"min-height: 30vh\"\n >\n <c8y-map\n [assets]=\"[position]\"\n [config]=\"config\"\n (onRealtimeUpdate)=\"positionChanged($event)\"\n ></c8y-map>\n </div>\n\n <form\n class=\"d-flex d-col bg-inherit content-fullpage bg-gray-white\"\n #positionForm=\"ngForm\"\n (ngSubmit)=\"save()\"\n >\n <div class=\"card-header large-padding separator sticky-top\">\n <span\n class=\"card-title\"\n translate\n >\n Device location\n </span>\n </div>\n <div class=\"inner-scroll\">\n <div\n class=\"m-16\"\n *ngIf=\"!isEdit\"\n >\n <div class=\"p-b-40\">\n <div\n class=\"text-bold\"\n translate\n >\n Latitude (°)\n </div>\n {{ position.c8y_Position.lat }}\n </div>\n <div class=\"p-b-40\">\n <div\n class=\"text-bold\"\n translate\n >\n Longitude (°)\n </div>\n {{ position.c8y_Position.lng }}\n </div>\n <div class=\"p-b-40\">\n <div\n class=\"text-bold\"\n translate\n >\n Altitude (m)\n </div>\n {{ position.c8y_Position.alt }}\n </div>\n </div>\n <div\n class=\"m-16\"\n *ngIf=\"isEdit\"\n >\n <c8y-form-group>\n <label\n for=\"lat\"\n translate\n >\n Latitude (°)\n </label>\n\n <input\n class=\"form-control\"\n [title]=\"'Latitude (°)' | translate\"\n id=\"lat\"\n name=\"lat\"\n type=\"number\"\n required\n min=\"-90\"\n max=\"90\"\n (blur)=\"positionForm.valid && updateMarkerPosition()\"\n [(ngModel)]=\"position.c8y_Position.lat\"\n />\n <c8y-messages>\n <c8y-message\n name=\"min\"\n [text]=\"'The minimum latitude value is -90°.' | translate\"\n ></c8y-message>\n <c8y-message\n name=\"max\"\n [text]=\"'The maximum latitude value is 90°.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label\n for=\"lat\"\n translate\n >\n Longitude (°)\n </label>\n\n <input\n class=\"form-control\"\n [title]=\"'Longitude (°)' | translate\"\n id=\"lng\"\n name=\"lng\"\n type=\"number\"\n required\n min=\"-180\"\n max=\"180\"\n (blur)=\"positionForm.valid && updateMarkerPosition()\"\n [(ngModel)]=\"position.c8y_Position.lng\"\n />\n <c8y-messages>\n <c8y-message\n name=\"min\"\n [text]=\"'The minimum longitude value is -180°.' | translate\"\n ></c8y-message>\n <c8y-message\n name=\"max\"\n [text]=\"'The maximum longitude value is 180°.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label\n for=\"alt\"\n translate\n >\n Altitude (m)\n </label>\n\n <input\n class=\"form-control\"\n [title]=\"'Altitude (m)' | translate\"\n id=\"alt\"\n name=\"alt\"\n type=\"number\"\n [(ngModel)]=\"position.c8y_Position.alt\"\n />\n </c8y-form-group>\n </div>\n\n <form\n class=\"card-block bg-level-1\"\n #addressSearch=\"ngForm\"\n novalidate\n (submit)=\"searchAddress(addressSearchTerm)\"\n *ngIf=\"isEdit && !hideAddressSearchFeature\"\n >\n <div class=\"form-group\">\n <label\n for=\"searchAddress\"\n translate\n >\n Find lat/long by address\n </label>\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n id=\"searchAddress\"\n name=\"addressSearchTerm\"\n type=\"text\"\n [placeholder]=\"'e.g. Speditionstraße 13, Düsseldorf`LOCALIZE`' | translate\"\n [(ngModel)]=\"addressSearchTerm\"\n />\n <span class=\"input-group-btn\">\n <button\n class=\"btn btn-dot\"\n [title]=\"'Search' | translate\"\n type=\"submit\"\n >\n <i\n class=\"dlt-c8y-icon-search\"\n c8y-icon=\"search\"\n ></i>\n </button>\n </span>\n </div>\n </div>\n </form>\n </div>\n <div class=\"card-footer separator\">\n <button\n class=\"btn btn-default\"\n [title]=\"'Edit location' | translate\"\n type=\"button\"\n *ngIf=\"canEdit && !isEdit\"\n (click)=\"edit()\"\n translate\n >\n Edit location\n </button>\n <button\n class=\"btn btn-default\"\n [title]=\"'Cancel' | translate\"\n type=\"button\"\n (click)=\"cancel()\"\n *ngIf=\"isEdit\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-primary\"\n [title]=\"'Save' | translate\"\n type=\"submit\"\n *ngIf=\"isEdit\"\n translate\n [disabled]=\"!positionForm.valid\"\n >\n Save\n </button>\n </div>\n </form>\n</div>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CoreModule, hookActionBar, hookRoute, hookTab, ViewContext } from '@c8y/ngx-components';\nimport { MapModule } from '@c8y/ngx-components/map';\nimport { AddLocationComponent } from './add-location.component';\nimport { AddLocationFactory } from './add-location.factory';\nimport { LocationTabFactory } from './location-tab.factory';\nimport { LocationComponent } from './location.component';\nimport { LocationConfiguration } from './location.model';\n\n@NgModule({\n imports: [MapModule, CoreModule, RouterModule, LocationComponent],\n exports: [LocationComponent],\n providers: [\n hookRoute({\n path: 'location',\n component: LocationComponent,\n context: ViewContext.Device,\n tabs: []\n }),\n hookRoute({\n path: 'location',\n component: LocationComponent,\n context: ViewContext.Group,\n tabs: []\n })\n ]\n})\nexport class LocationRouteModule {}\n\n@NgModule({\n imports: [LocationRouteModule],\n providers: [hookTab(LocationTabFactory)]\n})\nexport class LocationTabModule {}\n\n/**\n * @deprecated has been splitted into `LocationTabModule` and `AddLocationModule`.\n */\n@NgModule({\n imports: [LocationTabModule]\n})\nexport class LocationModule {\n /**\n *\n * @deprecated use the `LocationTabModule` and optionally `AddLocationModule` instead.\n */\n static config(\n config: LocationConfiguration = { addLocation: false }\n ): ModuleWithProviders<LocationModule> {\n return {\n ngModule: LocationModule,\n providers: config.addLocation ? [hookActionBar(AddLocationFactory)] : []\n };\n }\n}\n\n@NgModule({\n imports: [CoreModule, LocationRouteModule, AddLocationComponent],\n exports: [AddLocationComponent],\n providers: [hookActionBar(AddLocationFactory)]\n})\nexport class AddLocationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3","i4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-location.mjs","sources":["../../location/add-location.component.ts","../../location/add-location.component.html","../../location/add-location.factory.ts","../../location/location-tab.factory.ts","../../location/location.component.ts","../../location/location.component.html","../../location/location.module.ts","../../location/c8y-ngx-components-location.ts"],"sourcesContent":["import {\n Component,\n Inject,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { IManagedObject, InventoryService } from '@c8y/client';\nimport {\n AlertService,\n ContextRouteService,\n IconDirective,\n C8yTranslateDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport type { MapDefaultConfig } from '@c8y/options';\nimport { Router } from '@angular/router';\nimport { MAP_DEFAULT_CONFIG, defaultMapConfig } from '@c8y/ngx-components/map';\nimport { Observable, of } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\n@Component({\n selector: 'c8y-add-location',\n templateUrl: './add-location.component.html',\n imports: [IconDirective, C8yTranslateDirective, C8yTranslatePipe]\n})\nexport class AddLocationComponent implements OnInit {\n @ViewChild('templateCopy', { read: TemplateRef, static: true }) templateCopy;\n\n constructor(\n private inventoryService: InventoryService,\n private contextRouteService: ContextRouteService,\n @Optional()\n @Inject(MAP_DEFAULT_CONFIG)\n private defaultConfig$: Observable<MapDefaultConfig>,\n private router: Router,\n private alertService: AlertService,\n private vcRef: ViewContainerRef\n ) {}\n\n ngOnInit() {\n this.vcRef.createEmbeddedView(this.templateCopy);\n }\n\n onClick(): void {\n const mapConfig$ = this.defaultConfig$ || of(defaultMapConfig);\n mapConfig$.pipe(first()).subscribe(async config => {\n const context = this.contextRouteService.activatedContextData;\n context.contextData.c8y_Position = {\n lat: config.center[0],\n lng: config.center[1]\n };\n try {\n await this.inventoryService.update(context.contextData as IManagedObject);\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n }\n\n const route = this.contextRouteService.getContextRoute(context);\n this.contextRouteService.refreshContext();\n this.router.navigateByUrl(route + '/location');\n });\n }\n}\n","<ng-template #templateCopy>\n <button\n class=\"btn btn-link\"\n [title]=\"'Add location' | translate\"\n (click)=\"onClick()\"\n >\n <i c8yIcon=\"location-arrow\"></i>\n <span translate>Add location</span>\n </button>\n</ng-template>\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n ActionBarFactory,\n ActionBarItem,\n ContextRouteService,\n ViewContext\n} from '@c8y/ngx-components';\nimport { AddLocationComponent } from './add-location.component';\nimport { isUndefined } from 'lodash-es';\n\n@Injectable({ providedIn: 'root' })\nexport class AddLocationFactory implements ActionBarFactory {\n private action: ActionBarItem = {\n component: AddLocationComponent,\n placement: 'more'\n };\n\n constructor(private contextRouteService: ContextRouteService) {}\n\n get(activatedRoute?: ActivatedRoute): ActionBarItem {\n const routeData = this.contextRouteService.getContextData(activatedRoute);\n if (!routeData) {\n return;\n }\n if (\n routeData.context === ViewContext.Device &&\n isUndefined(routeData.contextData.c8y_Position)\n ) {\n return this.action;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { ContextRouteService, Tab, ViewContext, ExtensionFactory } from '@c8y/ngx-components';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocationTabFactory implements ExtensionFactory<Tab> {\n constructor(private contextRouteService: ContextRouteService) {}\n\n get(activatedRoute: ActivatedRoute): Tab[] {\n const contextData = this.contextRouteService.getContextData(activatedRoute);\n const isDeviceOrGroupWithPosition =\n (contextData?.context === ViewContext.Device || contextData?.context === ViewContext.Group) &&\n contextData?.contextData.c8y_Position;\n if (isDeviceOrGroupWithPosition) {\n return [\n {\n label: gettext('Location'),\n icon: 'location-arrow',\n path: `${this.contextRouteService.getContextRoute(contextData)}/location`\n }\n ];\n }\n return [];\n }\n}\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MapComponent, MapConfig, PositionManagedObject } from '@c8y/ngx-components/map';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n AlertService,\n ContextRouteService,\n OptionsService,\n Permissions,\n ActionBarItemComponent,\n C8yTranslateDirective,\n IconDirective,\n FormGroupComponent,\n RequiredInputPlaceholderDirective,\n MinValidationDirective,\n MaxValidationDirective,\n MessagesComponent,\n MessageDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { ActivatedRoute } from '@angular/router';\nimport { InventoryService } from '@c8y/client';\nimport { isUndefined, cloneDeep } from 'lodash-es';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { NgClass, NgIf } from '@angular/common';\n\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'c8y-location',\n templateUrl: './location.component.html',\n imports: [\n ActionBarItemComponent,\n NgClass,\n C8yTranslateDirective,\n IconDirective,\n MapComponent,\n FormsModule,\n NgIf,\n FormGroupComponent,\n RequiredInputPlaceholderDirective,\n MinValidationDirective,\n MaxValidationDirective,\n MessagesComponent,\n MessageDirective,\n C8yTranslatePipe\n ]\n})\nexport class LocationComponent implements OnInit, OnDestroy {\n position: PositionManagedObject;\n originalPosition: PositionManagedObject;\n isEdit = false;\n canEdit = true;\n config: MapConfig = { realtime: false, follow: true, zoomLevel: 12 };\n addressSearchTerm = '';\n hideAddressSearchFeature = false;\n\n private destroy$ = new Subject<void>();\n private mapNominatimUrl = 'https://nominatim.openstreetmap.org/search?format=json&q={searchTerm}';\n\n @ViewChild(MapComponent)\n map: MapComponent;\n\n constructor(\n private contextRouteService: ContextRouteService,\n private activatedRoute: ActivatedRoute,\n private inventoryService: InventoryService,\n private permissions: Permissions,\n private optionsService: OptionsService,\n private alertService: AlertService\n ) {}\n\n ngOnInit(): void {\n this.activatedRoute.url.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.updateMap();\n });\n }\n\n async updateMap() {\n const { contextData } = this.contextRouteService.getContextData(this.activatedRoute);\n this.position = contextData as PositionManagedObject;\n this.canEdit = await this.permissions.canEdit(\n [Permissions.ROLE_INVENTORY_ADMIN, Permissions.ROLE_INVENTORY_CREATE],\n contextData\n );\n\n const hasCustomSetting = !isUndefined(this.optionsService.mapNominatimUrl);\n this.hideAddressSearchFeature = hasCustomSetting && !this.optionsService.mapNominatimUrl;\n\n if (hasCustomSetting) {\n this.mapNominatimUrl = this.optionsService.mapNominatimUrl;\n }\n\n this.map.refresh();\n }\n\n toggleRealtime() {\n this.config = { ...this.config, realtime: !this.config.realtime };\n }\n\n disableRealtime() {\n this.config = { ...this.config, realtime: false };\n }\n\n centerMap() {\n this.config = {\n ...this.config,\n center: [this.position.c8y_Position.lat, this.position.c8y_Position.lng]\n };\n }\n\n edit() {\n this.originalPosition = cloneDeep(this.position);\n this.enableMarkerDragging();\n this.disableRealtime();\n this.isEdit = true;\n }\n\n cancel() {\n this.position = this.originalPosition;\n this.isEdit = false;\n this.map.markers[0]?.dragging.disable();\n this.centerMap();\n }\n\n async save() {\n try {\n const { data } = await this.inventoryService.update({\n id: this.position.id,\n c8y_Position: this.position.c8y_Position\n });\n this.position = data as PositionManagedObject;\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n }\n this.map.markers[0]?.dragging.disable();\n this.centerMap();\n this.isEdit = false;\n }\n\n positionChanged(position: PositionManagedObject) {\n this.position = position;\n }\n\n async searchAddress(searchTerm: string) {\n const fetchResponse = await fetch(this.mapNominatimUrl.replace('{searchTerm}', searchTerm));\n if (fetchResponse.status !== 200) {\n this.alertService.danger(gettext('Failed to search for address.'));\n return;\n }\n const data: Array<{ lat: string | number; lon: string | number; licence?: string }> =\n await fetchResponse.json();\n const latLng = data[0];\n if (!latLng) {\n this.alertService.warning(gettext('Address could not be found.'));\n return;\n }\n this.position.c8y_Position.lat = Number(latLng.lat);\n this.position.c8y_Position.lng = Number(latLng.lon);\n this.updateMarkerPosition();\n if (latLng.licence) {\n this.map.map.attributionControl.addAttribution(latLng.licence);\n }\n }\n\n updateMarkerPosition() {\n this.map.refreshMarkers();\n this.enableMarkerDragging();\n this.centerMap();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n private enableMarkerDragging() {\n const marker = this.map.markers[0];\n if (marker) {\n marker.dragging.enable();\n marker.on('dragend', () => {\n const latlng = marker.getLatLng();\n this.position.c8y_Position = {\n ...this.position.c8y_Position,\n lat: latlng.lat,\n lng: latlng.lng\n };\n this.centerMap();\n });\n }\n }\n}\n","<c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link c8y-realtime\"\n title=\"{{ 'Toggle realtime' | translate }}\"\n type=\"button\"\n (click)=\"toggleRealtime()\"\n >\n <span\n class=\"c8y-pulse\"\n [ngClass]=\"{ active: config.realtime, inactive: !config.realtime }\"\n ></span>\n <span translate>Realtime</span>\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-clean\"\n title=\"{{ 'Center`verb`' | translate }}\"\n (click)=\"centerMap()\"\n >\n <i [c8yIcon]=\"'target1'\"></i>\n <span translate>Center`verb`</span>\n </button>\n</c8y-action-bar-item>\n\n<div class=\"card card--grid content-fullpage d-grid grid__col--8-4--md\">\n <div\n class=\"bg-white p-relative\"\n style=\"min-height: 30vh\"\n >\n <c8y-map\n [assets]=\"[position]\"\n [config]=\"config\"\n (onRealtimeUpdate)=\"positionChanged($event)\"\n ></c8y-map>\n </div>\n\n <form\n class=\"d-flex d-col bg-inherit content-fullpage bg-gray-white\"\n #positionForm=\"ngForm\"\n (ngSubmit)=\"save()\"\n >\n <div class=\"card-header large-padding separator sticky-top\">\n <span\n class=\"card-title\"\n translate\n >\n Device location\n </span>\n </div>\n <div class=\"inner-scroll\">\n <div\n class=\"m-16\"\n *ngIf=\"!isEdit\"\n >\n <div class=\"p-b-40\">\n <div\n class=\"text-bold\"\n translate\n >\n Latitude (°)\n </div>\n {{ position.c8y_Position.lat }}\n </div>\n <div class=\"p-b-40\">\n <div\n class=\"text-bold\"\n translate\n >\n Longitude (°)\n </div>\n {{ position.c8y_Position.lng }}\n </div>\n <div class=\"p-b-40\">\n <div\n class=\"text-bold\"\n translate\n >\n Altitude (m)\n </div>\n {{ position.c8y_Position.alt }}\n </div>\n </div>\n <div\n class=\"m-16\"\n *ngIf=\"isEdit\"\n >\n <c8y-form-group>\n <label\n for=\"lat\"\n translate\n >\n Latitude (°)\n </label>\n\n <input\n class=\"form-control\"\n [title]=\"'Latitude (°)' | translate\"\n id=\"lat\"\n name=\"lat\"\n type=\"number\"\n required\n min=\"-90\"\n max=\"90\"\n (blur)=\"positionForm.valid && updateMarkerPosition()\"\n [(ngModel)]=\"position.c8y_Position.lat\"\n />\n <c8y-messages>\n <c8y-message\n name=\"min\"\n [text]=\"'The minimum latitude value is -90°.' | translate\"\n ></c8y-message>\n <c8y-message\n name=\"max\"\n [text]=\"'The maximum latitude value is 90°.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label\n for=\"lat\"\n translate\n >\n Longitude (°)\n </label>\n\n <input\n class=\"form-control\"\n [title]=\"'Longitude (°)' | translate\"\n id=\"lng\"\n name=\"lng\"\n type=\"number\"\n required\n min=\"-180\"\n max=\"180\"\n (blur)=\"positionForm.valid && updateMarkerPosition()\"\n [(ngModel)]=\"position.c8y_Position.lng\"\n />\n <c8y-messages>\n <c8y-message\n name=\"min\"\n [text]=\"'The minimum longitude value is -180°.' | translate\"\n ></c8y-message>\n <c8y-message\n name=\"max\"\n [text]=\"'The maximum longitude value is 180°.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label\n for=\"alt\"\n translate\n >\n Altitude (m)\n </label>\n\n <input\n class=\"form-control\"\n [title]=\"'Altitude (m)' | translate\"\n id=\"alt\"\n name=\"alt\"\n type=\"number\"\n [(ngModel)]=\"position.c8y_Position.alt\"\n />\n </c8y-form-group>\n </div>\n\n <form\n class=\"card-block bg-level-1\"\n #addressSearch=\"ngForm\"\n novalidate\n (submit)=\"searchAddress(addressSearchTerm)\"\n *ngIf=\"isEdit && !hideAddressSearchFeature\"\n >\n <div class=\"form-group\">\n <label\n for=\"searchAddress\"\n translate\n >\n Find lat/long by address\n </label>\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n id=\"searchAddress\"\n name=\"addressSearchTerm\"\n type=\"text\"\n [placeholder]=\"'e.g. Speditionstraße 13, Düsseldorf`LOCALIZE`' | translate\"\n [(ngModel)]=\"addressSearchTerm\"\n />\n <span class=\"input-group-btn\">\n <button\n class=\"btn btn-dot\"\n [title]=\"'Search' | translate\"\n type=\"submit\"\n >\n <i\n class=\"dlt-c8y-icon-search\"\n c8y-icon=\"search\"\n ></i>\n </button>\n </span>\n </div>\n </div>\n </form>\n </div>\n <div class=\"card-footer separator\">\n <button\n class=\"btn btn-default\"\n [title]=\"'Edit location' | translate\"\n type=\"button\"\n *ngIf=\"canEdit && !isEdit\"\n (click)=\"edit()\"\n translate\n >\n Edit location\n </button>\n <button\n class=\"btn btn-default\"\n [title]=\"'Cancel' | translate\"\n type=\"button\"\n (click)=\"cancel()\"\n *ngIf=\"isEdit\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-primary\"\n [title]=\"'Save' | translate\"\n type=\"submit\"\n *ngIf=\"isEdit\"\n translate\n [disabled]=\"!positionForm.valid\"\n >\n Save\n </button>\n </div>\n </form>\n</div>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CoreModule, hookActionBar, hookRoute, hookTab, ViewContext } from '@c8y/ngx-components';\nimport { MapModule } from '@c8y/ngx-components/map';\nimport { AddLocationComponent } from './add-location.component';\nimport { AddLocationFactory } from './add-location.factory';\nimport { LocationTabFactory } from './location-tab.factory';\nimport { LocationComponent } from './location.component';\nimport { LocationConfiguration } from './location.model';\n\n@NgModule({\n imports: [MapModule, CoreModule, RouterModule, LocationComponent],\n exports: [LocationComponent],\n providers: [\n hookRoute({\n path: 'location',\n component: LocationComponent,\n context: ViewContext.Device,\n tabs: []\n }),\n hookRoute({\n path: 'location',\n component: LocationComponent,\n context: ViewContext.Group,\n tabs: []\n })\n ]\n})\nexport class LocationRouteModule {}\n\n@NgModule({\n imports: [LocationRouteModule],\n providers: [hookTab(LocationTabFactory)]\n})\nexport class LocationTabModule {}\n\n/**\n * @deprecated has been splitted into `LocationTabModule` and `AddLocationModule`.\n */\n@NgModule({\n imports: [LocationTabModule]\n})\nexport class LocationModule {\n /**\n *\n * @deprecated use the `LocationTabModule` and optionally `AddLocationModule` instead.\n */\n static config(\n config: LocationConfiguration = { addLocation: false }\n ): ModuleWithProviders<LocationModule> {\n return {\n ngModule: LocationModule,\n providers: config.addLocation ? [hookActionBar(AddLocationFactory)] : []\n };\n }\n}\n\n@NgModule({\n imports: [CoreModule, LocationRouteModule, AddLocationComponent],\n exports: [AddLocationComponent],\n providers: [hookActionBar(AddLocationFactory)]\n})\nexport class AddLocationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3","i4"],"mappings":"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"}
|
|
@@ -3,8 +3,9 @@ import { Injectable, Component, NgModule } from '@angular/core';
|
|
|
3
3
|
import * as i1$1 from 'ngx-bootstrap/modal';
|
|
4
4
|
import { CdkStep } from '@angular/cdk/stepper';
|
|
5
5
|
import { FormGroup } from '@angular/forms';
|
|
6
|
+
import { gettext } from '@c8y/ngx-components/gettext';
|
|
6
7
|
import * as i3 from '@c8y/ngx-components';
|
|
7
|
-
import {
|
|
8
|
+
import { ModalComponent, IconDirective, LoadingComponent, C8yStepper, C8yStepperButtons, OperationResultComponent, C8yTranslatePipe, CoreModule, CommonModule } from '@c8y/ngx-components';
|
|
8
9
|
import * as i4 from '@ngx-formly/core';
|
|
9
10
|
import { FormlyModule } from '@ngx-formly/core';
|
|
10
11
|
import { uniq, cloneDeep } from 'lodash-es';
|