@c8y/ngx-components 1021.38.1 → 1021.49.1
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/api/services.d.ts +1 -1
- package/api/services.d.ts.map +1 -1
- package/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.d.ts.map +1 -1
- package/connectivity/abstract-connectivity-tab.factory.d.ts +1 -1
- package/context-dashboard/add-dashboard.component.d.ts.map +1 -1
- package/context-dashboard/context-dashboard.model.d.ts +4 -2
- package/context-dashboard/context-dashboard.model.d.ts.map +1 -1
- package/context-dashboard/dashboard-detail.component.d.ts.map +1 -1
- package/context-dashboard/dashboard-manager/dashboard-manager.model.d.ts +1 -0
- package/context-dashboard/dashboard-manager/dashboard-manager.model.d.ts.map +1 -1
- package/context-dashboard/dashboard-manager/dashboard-manager.service.d.ts +0 -1
- package/context-dashboard/dashboard-manager/dashboard-manager.service.d.ts.map +1 -1
- package/context-dashboard/dashboard-manager/type-dashboards-list/type-dashboards-list.component.d.ts.map +1 -1
- package/context-dashboard/new-dashboard.guard.d.ts +1 -1
- package/context-dashboard/new-dashboard.guard.d.ts.map +1 -1
- package/core/action/action.component.d.ts +2 -1
- package/core/action/action.component.d.ts.map +1 -1
- package/core/action/action.model.d.ts +3 -2
- package/core/action/action.model.d.ts.map +1 -1
- package/core/breadcrumb/breadcrumb-item.component.d.ts +2 -1
- package/core/breadcrumb/breadcrumb-item.component.d.ts.map +1 -1
- package/core/breadcrumb/breadcrumb.model.d.ts +2 -1
- package/core/breadcrumb/breadcrumb.model.d.ts.map +1 -1
- package/core/common/ApplicationOptions.d.ts +1 -0
- package/core/common/ApplicationOptions.d.ts.map +1 -1
- package/core/common/empty-state/empty-state.component.d.ts +2 -1
- package/core/common/empty-state/empty-state.component.d.ts.map +1 -1
- package/core/common/get-group-icon.pipe.d.ts +2 -1
- package/core/common/get-group-icon.pipe.d.ts.map +1 -1
- package/core/common/group.service.d.ts +22 -7
- package/core/common/group.service.d.ts.map +1 -1
- package/core/common/icon.directive.d.ts +5 -5
- package/core/common/icon.directive.d.ts.map +1 -1
- package/core/common/service-registry.model.d.ts +2 -1
- package/core/common/service-registry.model.d.ts.map +1 -1
- package/core/data-grid/data-grid.model.d.ts +2 -1
- package/core/data-grid/data-grid.model.d.ts.map +1 -1
- package/core/docs/docs.models.d.ts +2 -1
- package/core/docs/docs.models.d.ts.map +1 -1
- package/core/docs/help-and-support-outlet/help-and-support-outlet.component.d.ts +5 -1
- package/core/docs/help-and-support-outlet/help-and-support-outlet.component.d.ts.map +1 -1
- package/core/docs/legal-notices-outlet/legal-notices-outlet.component.d.ts +5 -1
- package/core/docs/legal-notices-outlet/legal-notices-outlet.component.d.ts.map +1 -1
- package/core/docs/support-outlet/support-outlet.component.d.ts +5 -1
- package/core/docs/support-outlet/support-outlet.component.d.ts.map +1 -1
- package/core/forms/filter-input.component.d.ts +8 -3
- package/core/forms/filter-input.component.d.ts.map +1 -1
- package/core/list-group/list-item-action.component.d.ts +2 -1
- package/core/list-group/list-item-action.component.d.ts.map +1 -1
- package/core/list-group/list-item-icon.component.d.ts +2 -1
- package/core/list-group/list-item-icon.component.d.ts.map +1 -1
- package/core/login/login.service.d.ts.map +1 -1
- package/core/navigator/navigator-icon.component.d.ts +1 -1
- package/core/navigator/navigator-icon.component.d.ts.map +1 -1
- package/core/navigator/navigator-node-data.d.ts +2 -1
- package/core/navigator/navigator-node-data.d.ts.map +1 -1
- package/core/navigator/navigator-node.component.d.ts.map +1 -1
- package/core/navigator/navigator-node.d.ts +2 -1
- package/core/navigator/navigator-node.d.ts.map +1 -1
- package/core/plugins/plugins.model.d.ts +7 -2
- package/core/plugins/plugins.model.d.ts.map +1 -1
- package/core/plugins/plugins.service.d.ts.map +1 -1
- package/core/properties-list/properties-list.component.d.ts +2 -1
- package/core/properties-list/properties-list.component.d.ts.map +1 -1
- package/core/provider-configuration/model/dynamic-provider-config.model.d.ts +2 -2
- package/core/provider-configuration/model/dynamic-provider-config.model.d.ts.map +1 -1
- package/core/router/context-route.service.d.ts.map +1 -1
- package/core/router/router.model.d.ts +1 -1
- package/core/router/router.model.d.ts.map +1 -1
- package/core/router/scoped-context-route.service.d.ts.map +1 -1
- package/core/search/search.model.d.ts +2 -1
- package/core/search/search.model.d.ts.map +1 -1
- package/core/select/select-keyboard.service.d.ts +4 -0
- package/core/select/select-keyboard.service.d.ts.map +1 -1
- package/core/select/select.component.d.ts +14 -3
- package/core/select/select.component.d.ts.map +1 -1
- package/core/select-modal/select-modal.component.d.ts +2 -1
- package/core/select-modal/select-modal.component.d.ts.map +1 -1
- package/core/shared/core.model.d.ts +5 -1
- package/core/shared/core.model.d.ts.map +1 -1
- package/core/tabs/conditional-tabs-outlet.component.d.ts.map +1 -1
- package/core/tabs/tab.component.d.ts +3 -2
- package/core/tabs/tab.component.d.ts.map +1 -1
- package/core/tabs/tab.model.d.ts +10 -5
- package/core/tabs/tab.model.d.ts.map +1 -1
- package/core/tabs/tabs-outlet.component.d.ts +7 -4
- package/core/tabs/tabs-outlet.component.d.ts.map +1 -1
- package/core/user/user-menu-item.component.d.ts +2 -1
- package/core/user/user-menu-item.component.d.ts.map +1 -1
- package/core/user/user.model.d.ts +2 -1
- package/core/user/user.model.d.ts.map +1 -1
- package/core/wizard/wizard.model.d.ts +4 -3
- package/core/wizard/wizard.model.d.ts.map +1 -1
- package/data-grid-columns/asset-type/asset-type.cell-renderer.component.d.ts.map +1 -1
- package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts +15 -46
- package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts.map +1 -1
- package/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.d.ts +3 -0
- package/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.d.ts.map +1 -1
- package/datapoint-selector/datapoint-selection.model.d.ts +6 -7
- package/datapoint-selector/datapoint-selection.model.d.ts.map +1 -1
- package/datapoints-export-selector/datapoints-export-selector.model.d.ts +2 -1
- package/datapoints-export-selector/datapoints-export-selector.model.d.ts.map +1 -1
- package/device-grid/columns/icon.cell-renderer.component.d.ts +14 -0
- package/device-grid/columns/icon.cell-renderer.component.d.ts.map +1 -0
- package/device-grid/columns/index.d.ts +1 -0
- package/device-grid/columns/index.d.ts.map +1 -1
- package/device-grid/device-grid.component.d.ts.map +1 -1
- package/device-grid/device-grid.service.d.ts +0 -2
- package/device-grid/device-grid.service.d.ts.map +1 -1
- package/device-provisioned-certificates/c8y-ngx-components-device-provisioned-certificates.d.ts.map +1 -0
- package/device-provisioned-certificates/device-provisioned-certificates.guard.d.ts +11 -0
- package/device-provisioned-certificates/device-provisioned-certificates.guard.d.ts.map +1 -0
- package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts +13 -0
- package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts.map +1 -0
- package/device-provisioned-certificates/device-provisioned-certificates.service.d.ts +13 -0
- package/device-provisioned-certificates/device-provisioned-certificates.service.d.ts.map +1 -0
- package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts +57 -0
- package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map +1 -0
- package/device-provisioned-certificates/index.d.ts +2 -0
- package/device-provisioned-certificates/index.d.ts.map +1 -0
- package/ecosystem/application-plugins/application-plugins.component.d.ts +4 -0
- package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/application-plugins.module.d.ts +2 -2
- package/ecosystem/application-plugins/application-plugins.module.d.ts.map +1 -1
- package/ecosystem/application-plugins/index.d.ts +1 -0
- package/ecosystem/application-plugins/index.d.ts.map +1 -1
- package/ecosystem/application-plugins/install-plugin.component.d.ts +9 -11
- package/ecosystem/application-plugins/install-plugin.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts +12 -0
- package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts.map +1 -0
- package/ecosystem/application-plugins/plugin-list-item.component.d.ts +8 -3
- package/ecosystem/application-plugins/plugin-list-item.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/plugin-list.component.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/applications/application-list/application-list.component.d.ts +2 -2
- package/ecosystem/applications/application-list/application-list.component.d.ts.map +1 -1
- package/ecosystem/applications/install-from-package/install-from-package.component.d.ts.map +1 -1
- package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts +11 -0
- package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts.map +1 -0
- package/ecosystem/archived-confirm/archived-confirm.module.d.ts +10 -0
- package/ecosystem/archived-confirm/archived-confirm.module.d.ts.map +1 -0
- package/ecosystem/archived-confirm/c8y-ngx-components-ecosystem-archived-confirm.d.ts.map +1 -0
- package/ecosystem/archived-confirm/index.d.ts +3 -0
- package/ecosystem/archived-confirm/index.d.ts.map +1 -0
- package/ecosystem/ecosystem.module.d.ts +2 -1
- package/ecosystem/ecosystem.module.d.ts.map +1 -1
- package/ecosystem/features/feature-list.component.d.ts +2 -2
- package/ecosystem/features/feature-list.component.d.ts.map +1 -1
- package/ecosystem/microservices/microservice-list.component.d.ts +2 -2
- package/ecosystem/microservices/microservice-list.component.d.ts.map +1 -1
- package/ecosystem/packages/deploy-application/deploy-application.component.d.ts.map +1 -1
- package/ecosystem/packages/package-details/package-details.component.d.ts +7 -2
- package/ecosystem/packages/package-details/package-details.component.d.ts.map +1 -1
- package/ecosystem/packages/package-list/packages-list.component.d.ts +2 -2
- package/ecosystem/packages/package-list/packages-list.component.d.ts.map +1 -1
- package/ecosystem/shared/add-application.component.d.ts +2 -1
- package/ecosystem/shared/add-application.component.d.ts.map +1 -1
- package/ecosystem/shared/application-card.component.d.ts +4 -0
- package/ecosystem/shared/application-card.component.d.ts.map +1 -1
- package/ecosystem/shared/archived-filter/archived-filter.component.d.ts +12 -0
- package/ecosystem/shared/archived-filter/archived-filter.component.d.ts.map +1 -0
- package/ecosystem/shared/ecosystem.constants.d.ts +4 -0
- package/ecosystem/shared/ecosystem.constants.d.ts.map +1 -1
- package/ecosystem/shared/ecosystem.model.d.ts +5 -1
- package/ecosystem/shared/ecosystem.model.d.ts.map +1 -1
- package/ecosystem/shared/ecosystem.service.d.ts +7 -0
- package/ecosystem/shared/ecosystem.service.d.ts.map +1 -1
- package/ecosystem/shared/index.d.ts +1 -0
- package/ecosystem/shared/index.d.ts.map +1 -1
- package/ecosystem/shared/list-filters/list-filters.component.d.ts +14 -4
- package/ecosystem/shared/list-filters/list-filters.component.d.ts.map +1 -1
- package/ecosystem/shared/list-filters/list-filters.model.d.ts +8 -2
- package/ecosystem/shared/list-filters/list-filters.model.d.ts.map +1 -1
- package/ecosystem/shared/shared-ecosystem.module.d.ts +9 -8
- package/ecosystem/shared/shared-ecosystem.module.d.ts.map +1 -1
- package/ecosystem/shared/translate-package-label.pipe.d.ts +1 -1
- package/ecosystem/shared/translate-package-label.pipe.d.ts.map +1 -1
- package/esm2022/alarms/alarm-info.component.mjs +1 -1
- package/esm2022/api/services.mjs +2 -2
- package/esm2022/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.mjs +10 -5
- package/esm2022/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.mjs +4 -4
- package/esm2022/context-dashboard/add-dashboard.component.mjs +4 -2
- package/esm2022/context-dashboard/context-dashboard.model.mjs +3 -2
- package/esm2022/context-dashboard/context-dashboard.service.mjs +2 -2
- package/esm2022/context-dashboard/dashboard-detail.component.mjs +5 -3
- package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.model.mjs +1 -1
- package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.service.mjs +5 -15
- package/esm2022/context-dashboard/dashboard-manager/type-dashboards-list/type-dashboards-list.component.mjs +2 -2
- package/esm2022/context-dashboard/new-dashboard.guard.mjs +1 -1
- package/esm2022/core/action/action.component.mjs +1 -1
- package/esm2022/core/action/action.model.mjs +1 -1
- package/esm2022/core/bootstrap/bootstrap.component.mjs +1 -1
- package/esm2022/core/breadcrumb/breadcrumb-item.component.mjs +1 -1
- package/esm2022/core/breadcrumb/breadcrumb.model.mjs +1 -1
- package/esm2022/core/common/ApplicationOptions.mjs +1 -1
- package/esm2022/core/common/empty-state/empty-state.component.mjs +1 -1
- package/esm2022/core/common/get-group-icon.pipe.mjs +1 -1
- package/esm2022/core/common/group.service.mjs +2 -2
- package/esm2022/core/common/icon.directive.mjs +1 -1
- package/esm2022/core/common/service-registry.model.mjs +1 -1
- package/esm2022/core/data-grid/data-grid.model.mjs +1 -1
- package/esm2022/core/docs/docs.models.mjs +1 -1
- package/esm2022/core/docs/support-outlet/support-outlet.component.mjs +3 -3
- package/esm2022/core/forms/filter-input.component.mjs +22 -7
- package/esm2022/core/list-group/list-item-action.component.mjs +1 -1
- package/esm2022/core/list-group/list-item-icon.component.mjs +1 -1
- package/esm2022/core/login/credentials.component.mjs +2 -2
- package/esm2022/core/login/login.service.mjs +18 -7
- package/esm2022/core/navigator/navigator-node-data.mjs +1 -1
- package/esm2022/core/navigator/navigator-node.component.mjs +11 -2
- package/esm2022/core/navigator/navigator-node.mjs +1 -1
- package/esm2022/core/plugins/plugins.model.mjs +5 -1
- package/esm2022/core/plugins/plugins.service.mjs +6 -2
- package/esm2022/core/properties-list/properties-list.component.mjs +1 -1
- package/esm2022/core/provider-configuration/model/dynamic-provider-config.model.mjs +1 -1
- package/esm2022/core/router/context-route.service.mjs +4 -2
- package/esm2022/core/router/router.model.mjs +1 -1
- package/esm2022/core/router/scoped-context-route.service.mjs +4 -2
- package/esm2022/core/search/search.model.mjs +1 -1
- package/esm2022/core/select/select-keyboard.service.mjs +7 -3
- package/esm2022/core/select/select.component.mjs +36 -8
- package/esm2022/core/select-modal/select-modal.component.mjs +2 -2
- package/esm2022/core/shared/core.model.mjs +6 -2
- package/esm2022/core/tabs/conditional-tabs-outlet.component.mjs +4 -2
- package/esm2022/core/tabs/tab.component.mjs +1 -1
- package/esm2022/core/tabs/tab.model.mjs +1 -1
- package/esm2022/core/tabs/tabs-outlet.component.mjs +41 -12
- package/esm2022/core/user/user-menu-item.component.mjs +1 -1
- package/esm2022/core/user/user.model.mjs +1 -1
- package/esm2022/core/wizard/wizard.model.mjs +1 -1
- package/esm2022/data-grid-columns/asset-type/asset-type.cell-renderer.component.mjs +1 -1
- package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.mjs +47 -22
- package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.mjs +1 -1
- package/esm2022/datapoint-selector/datapoint-selection.model.mjs +1 -1
- package/esm2022/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.mjs +3 -3
- package/esm2022/datapoints-export-selector/datapoints-export-selector.model.mjs +1 -1
- package/esm2022/device-grid/columns/icon.cell-renderer.component.mjs +42 -0
- package/esm2022/device-grid/columns/index.mjs +2 -1
- package/esm2022/device-grid/device-grid.component.mjs +3 -3
- package/esm2022/device-grid/device-grid.service.mjs +7 -25
- package/esm2022/device-provisioned-certificates/c8y-ngx-components-device-provisioned-certificates.mjs +5 -0
- package/esm2022/device-provisioned-certificates/device-provisioned-certificates.guard.mjs +28 -0
- package/esm2022/device-provisioned-certificates/device-provisioned-certificates.module.mjs +51 -0
- package/esm2022/device-provisioned-certificates/device-provisioned-certificates.service.mjs +31 -0
- package/esm2022/device-provisioned-certificates/device-tab-provisioned-certificates.component.mjs +76 -0
- package/esm2022/device-provisioned-certificates/index.mjs +2 -0
- package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +41 -39
- package/esm2022/ecosystem/application-plugins/application-plugins.module.mjs +8 -6
- package/esm2022/ecosystem/application-plugins/apps-to-update-remotes-select.component.mjs +1 -1
- package/esm2022/ecosystem/application-plugins/index.mjs +2 -1
- package/esm2022/ecosystem/application-plugins/install-plugin.component.mjs +18 -21
- package/esm2022/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.mjs +26 -0
- package/esm2022/ecosystem/application-plugins/plugin-list-item.component.mjs +14 -6
- package/esm2022/ecosystem/application-plugins/plugin-list.component.mjs +14 -12
- package/esm2022/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.mjs +7 -1
- package/esm2022/ecosystem/applications/application-list/application-list.component.mjs +1 -1
- package/esm2022/ecosystem/applications/install-from-package/install-from-package.component.mjs +6 -1
- package/esm2022/ecosystem/archived-confirm/archived-confirm-modal.component.mjs +22 -0
- package/esm2022/ecosystem/archived-confirm/archived-confirm.module.mjs +32 -0
- package/esm2022/ecosystem/archived-confirm/c8y-ngx-components-ecosystem-archived-confirm.mjs +5 -0
- package/esm2022/ecosystem/archived-confirm/index.mjs +3 -0
- package/esm2022/ecosystem/ecosystem.module.mjs +20 -16
- package/esm2022/ecosystem/features/feature-list.component.mjs +1 -1
- package/esm2022/ecosystem/microservices/microservice-list.component.mjs +1 -1
- package/esm2022/ecosystem/packages/deploy-application/deploy-application.component.mjs +6 -1
- package/esm2022/ecosystem/packages/package-details/package-details.component.mjs +13 -8
- package/esm2022/ecosystem/packages/package-list/packages-list.component.mjs +4 -4
- package/esm2022/ecosystem/shared/add-application.component.mjs +1 -1
- package/esm2022/ecosystem/shared/application-card.component.mjs +3 -3
- package/esm2022/ecosystem/shared/archived-filter/archived-filter.component.mjs +27 -0
- package/esm2022/ecosystem/shared/ecosystem.constants.mjs +5 -1
- package/esm2022/ecosystem/shared/ecosystem.model.mjs +7 -3
- package/esm2022/ecosystem/shared/ecosystem.service.mjs +26 -1
- package/esm2022/ecosystem/shared/index.mjs +2 -1
- package/esm2022/ecosystem/shared/list-filters/list-filters.component.mjs +75 -13
- package/esm2022/ecosystem/shared/list-filters/list-filters.model.mjs +1 -1
- package/esm2022/ecosystem/shared/shared-ecosystem.module.mjs +10 -5
- package/esm2022/ecosystem/shared/translate-package-label.pipe.mjs +3 -3
- package/esm2022/files-repository/files-repository.component.mjs +2 -2
- package/esm2022/files-repository/files-repository.service.mjs +5 -16
- package/esm2022/icon-selector/icon-selector.component.mjs +1 -1
- package/esm2022/icon-selector/icons/index.mjs +1 -1
- package/esm2022/operations/shared/status-option.model.mjs +1 -1
- package/esm2022/protocol-lwm2m/components/configuration/lwm2m-configuration.component.mjs +2 -2
- package/esm2022/protocol-opcua/opcua-auto-apply-settings.component.mjs +1 -1
- package/esm2022/register-device/bulk/bulk-device-registration-modal.component.mjs +17 -9
- package/esm2022/register-device/general/general-device-registration-button.component.mjs +3 -3
- package/esm2022/register-device/general/general-device-registration.component.mjs +109 -33
- package/esm2022/remote-access/configurations/c8y-ngx-components-remote-access-configurations.mjs +5 -0
- package/esm2022/remote-access/configurations/index.mjs +16 -0
- package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.mjs +218 -0
- package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.mjs +60 -0
- package/esm2022/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.mjs +36 -0
- package/esm2022/remote-access/data/c8y-ngx-components-remote-access-data.mjs +5 -0
- package/esm2022/remote-access/data/index.mjs +3 -0
- package/esm2022/remote-access/data/remote-access-protocol-provider.mjs +2 -0
- package/esm2022/remote-access/data/remote-access.service.mjs +200 -0
- package/esm2022/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.mjs +5 -0
- package/esm2022/remote-access/passthrough/index.mjs +36 -0
- package/esm2022/remote-access/shared/c8y-ngx-components-remote-access-shared.mjs +5 -0
- package/esm2022/remote-access/shared/index.mjs +3 -0
- package/esm2022/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.mjs +49 -0
- package/esm2022/remote-access/shared/ssh-key-input/ssh-key-input.component.mjs +87 -0
- package/esm2022/remote-access/ssh/c8y-ngx-components-remote-access-ssh.mjs +5 -0
- package/esm2022/remote-access/ssh/index.mjs +73 -0
- package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +5 -0
- package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/index.mjs +2 -0
- package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.mjs +104 -0
- package/esm2022/remote-access/telnet/c8y-ngx-components-remote-access-telnet.mjs +5 -0
- package/esm2022/remote-access/telnet/index.mjs +43 -0
- package/esm2022/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.mjs +5 -0
- package/esm2022/remote-access/terminal-viewer/index.mjs +2 -0
- package/esm2022/remote-access/terminal-viewer/shell-adapter.mjs +36 -0
- package/esm2022/remote-access/terminal-viewer/telnet-negotiator.mjs +96 -0
- package/esm2022/remote-access/terminal-viewer/terminal-viewer.component.mjs +101 -0
- package/esm2022/remote-access/vnc/c8y-ngx-components-remote-access-vnc.mjs +5 -0
- package/esm2022/remote-access/vnc/index.mjs +73 -0
- package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +5 -0
- package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/index.mjs +2 -0
- package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.mjs +59 -0
- package/esm2022/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +5 -0
- package/esm2022/remote-access/vnc/vnc-viewer/index.mjs +2 -0
- package/esm2022/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.mjs +57 -0
- package/esm2022/remote-access/vnc/vnc-viewer/vnc-viewer.component.mjs +158 -0
- package/esm2022/replace-device/replace-device-wizard/replace-device-wizard.model.mjs +1 -1
- package/esm2022/report-dashboard/report-dashboard-list.component.mjs +4 -3
- package/esm2022/repository/configuration/device-tab/device-configuration-list.component.mjs +1 -1
- package/esm2022/repository/shared/repository.model.mjs +1 -1
- package/esm2022/repository/shared/repository.service.mjs +3 -3
- package/esm2022/services/status-options/status-options.model.mjs +1 -1
- package/esm2022/sub-assets/group-info.component.mjs +1 -1
- package/esm2022/translation-editor/data/translation-store.service.mjs +4 -3
- package/esm2022/trusted-certificates/list/trusted-certificate-list.component.mjs +35 -9
- package/esm2022/upgrade/bridge.service.mjs +16 -2
- package/esm2022/widgets/implementations/alarms/severity-icon.pipe.mjs +1 -1
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.mjs +3 -2
- package/esm2022/widgets/implementations/kpi/kpi-widget.model.mjs +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-api.mjs +3 -2
- package/fesm2022/c8y-ngx-components-api.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs +12 -7
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +15 -20
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +48 -23
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-grid.mjs +48 -28
- package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +174 -0
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +125 -105
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +57 -0
- package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +147 -31
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +1452 -1414
- package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-files-repository.mjs +5 -16
- package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +1 -1
- package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-register-device.mjs +269 -188
- package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +314 -0
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-data.mjs +206 -0
- package/fesm2022/c8y-ngx-components-remote-access-data.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +42 -0
- package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +138 -0
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +111 -0
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +79 -0
- package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +50 -0
- package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +235 -0
- package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +66 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +211 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +79 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-report-dashboard.mjs +3 -2
- package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-shared.mjs +2 -2
- package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -2
- package/fesm2022/c8y-ngx-components-translation-editor-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +43 -17
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs +16 -2
- package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.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.mjs +151 -38
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/files-repository/files-repository.component.d.ts.map +1 -1
- package/files-repository/files-repository.service.d.ts +0 -2
- package/files-repository/files-repository.service.d.ts.map +1 -1
- package/icon-selector/icon-selector.component.d.ts +3 -2
- package/icon-selector/icon-selector.component.d.ts.map +1 -1
- package/icon-selector/icons/index.d.ts +1 -0
- package/icon-selector/icons/index.d.ts.map +1 -1
- package/locales/de.po +157 -5
- package/locales/es.po +157 -5
- package/locales/fr.po +157 -5
- package/locales/ja_JP.po +156 -5
- package/locales/ko.po +156 -5
- package/locales/locales.pot +156 -4
- package/locales/nl.po +157 -5
- package/locales/pl.po +157 -5
- package/locales/pt_BR.po +157 -5
- package/locales/zh_CN.po +156 -5
- package/locales/zh_TW.po +156 -5
- package/operations/shared/status-option.model.d.ts +2 -1
- package/operations/shared/status-option.model.d.ts.map +1 -1
- package/package.json +1 -1
- package/register-device/bulk/bulk-device-registration-modal.component.d.ts +6 -2
- package/register-device/bulk/bulk-device-registration-modal.component.d.ts.map +1 -1
- package/register-device/general/general-device-registration-button.component.d.ts +1 -1
- package/register-device/general/general-device-registration-button.component.d.ts.map +1 -1
- package/register-device/general/general-device-registration.component.d.ts +21 -7
- package/register-device/general/general-device-registration.component.d.ts.map +1 -1
- package/remote-access/configurations/c8y-ngx-components-remote-access-configurations.d.ts.map +1 -0
- package/remote-access/configurations/index.d.ts +3 -0
- package/remote-access/configurations/index.d.ts.map +1 -0
- package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts +34 -0
- package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts.map +1 -0
- package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts +17 -0
- package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts.map +1 -0
- package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts +18 -0
- package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts.map +1 -0
- package/remote-access/data/c8y-ngx-components-remote-access-data.d.ts.map +1 -0
- package/remote-access/data/index.d.ts +3 -0
- package/remote-access/data/index.d.ts.map +1 -0
- package/remote-access/data/remote-access-protocol-provider.d.ts +21 -0
- package/remote-access/data/remote-access-protocol-provider.d.ts.map +1 -0
- package/remote-access/data/remote-access.service.d.ts +94 -0
- package/remote-access/data/remote-access.service.d.ts.map +1 -0
- package/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.d.ts.map +1 -0
- package/remote-access/passthrough/index.d.ts +17 -0
- package/remote-access/passthrough/index.d.ts.map +1 -0
- package/remote-access/shared/c8y-ngx-components-remote-access-shared.d.ts.map +1 -0
- package/remote-access/shared/index.d.ts +3 -0
- package/remote-access/shared/index.d.ts.map +1 -0
- package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts +37 -0
- package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts.map +1 -0
- package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts +38 -0
- package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts.map +1 -0
- package/remote-access/ssh/c8y-ngx-components-remote-access-ssh.d.ts.map +1 -0
- package/remote-access/ssh/index.d.ts +22 -0
- package/remote-access/ssh/index.d.ts.map +1 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.d.ts.map +1 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts +2 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts.map +1 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts +64 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts.map +1 -0
- package/remote-access/telnet/c8y-ngx-components-remote-access-telnet.d.ts.map +1 -0
- package/remote-access/telnet/index.d.ts +17 -0
- package/remote-access/telnet/index.d.ts.map +1 -0
- package/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.d.ts.map +1 -0
- package/remote-access/terminal-viewer/index.d.ts +2 -0
- package/remote-access/terminal-viewer/index.d.ts.map +1 -0
- package/remote-access/terminal-viewer/shell-adapter.d.ts +14 -0
- package/remote-access/terminal-viewer/shell-adapter.d.ts.map +1 -0
- package/remote-access/terminal-viewer/telnet-negotiator.d.ts +13 -0
- package/remote-access/terminal-viewer/telnet-negotiator.d.ts.map +1 -0
- package/remote-access/terminal-viewer/terminal-viewer.component.d.ts +25 -0
- package/remote-access/terminal-viewer/terminal-viewer.component.d.ts.map +1 -0
- package/remote-access/vnc/c8y-ngx-components-remote-access-vnc.d.ts.map +1 -0
- package/remote-access/vnc/index.d.ts +22 -0
- package/remote-access/vnc/index.d.ts.map +1 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.d.ts.map +1 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts +2 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts.map +1 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts +46 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts.map +1 -0
- package/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.d.ts.map +1 -0
- package/remote-access/vnc/vnc-viewer/index.d.ts +2 -0
- package/remote-access/vnc/vnc-viewer/index.d.ts.map +1 -0
- package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts +32 -0
- package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts.map +1 -0
- package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts +37 -0
- package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts.map +1 -0
- package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts +2 -1
- package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts.map +1 -1
- package/report-dashboard/report-dashboard-list.component.d.ts +29 -0
- package/report-dashboard/report-dashboard-list.component.d.ts.map +1 -1
- package/repository/shared/repository.model.d.ts +2 -1
- package/repository/shared/repository.model.d.ts.map +1 -1
- package/services/status-options/status-options.model.d.ts +2 -1
- package/services/status-options/status-options.model.d.ts.map +1 -1
- package/sub-assets/group-info.component.d.ts +2 -1
- package/sub-assets/group-info.component.d.ts.map +1 -1
- package/translation-editor/data/translation-store.service.d.ts.map +1 -1
- package/trusted-certificates/list/trusted-certificate-list.component.d.ts +7 -2
- package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
- package/upgrade/bridge.service.d.ts +5 -0
- package/upgrade/bridge.service.d.ts.map +1 -1
- package/widgets/implementations/alarms/severity-icon.pipe.d.ts.map +1 -1
- package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.d.ts.map +1 -1
- package/widgets/implementations/kpi/kpi-widget.model.d.ts +2 -1
- package/widgets/implementations/kpi/kpi-widget.model.d.ts.map +1 -1
- package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts +0 -10
- package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts.map +0 -1
- package/esm2022/ecosystem/application-plugins/only-latest-plugin-version.pipe.mjs +0 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-protocol-lwm2m-components-configuration.mjs","sources":["../../protocol-lwm2m/components/configuration/lwm2m-configuration.component.ts","../../protocol-lwm2m/components/configuration/lwm2m-configuration.component.html","../../protocol-lwm2m/components/configuration/typed-forms/form-wrapper-base.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/form-wrapper-base.component.html","../../protocol-lwm2m/components/configuration/typed-forms/bootstrap-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/connectivity-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/device-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/firmware-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/single-server-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/create-single-server-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/servers-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/server-settings.component.html","../../protocol-lwm2m/components/configuration/c8y-ngx-components-protocol-lwm2m-components-configuration.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { LWM2MEndpoint, Settings } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { CdkTreeModule } from '@angular/cdk/tree';\nimport { CoreModule, Tab, gettext } from '@c8y/ngx-components';\nimport { IIdentified } from '@c8y/client';\nimport { Lwm2mFormWrapperBase } from './typed-forms';\n\n@Component({\n selector: 'c8y-lwm2m-configuration',\n templateUrl: './lwm2m-configuration.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule, CdkTreeModule, RouterModule],\n standalone: true\n})\nexport class Lwm2mConfigurationComponent {\n tabs: Tab[];\n componentInstance: Lwm2mFormWrapperBase<Settings>;\n\n constructor(\n private lwm2mConfigService: Lwm2mConfigurationService<IIdentified>,\n private route: ActivatedRoute\n ) {\n this.lwm2mConfigService.deviceId = this.route?.snapshot?.parent?.params?.id;\n\n this.tabs = [\n {\n icon: 'cog',\n label: gettext('Device settings'),\n path: this.getPath(LWM2MEndpoint.deviceSettings)\n },\n {\n icon: 'connected',\n label: gettext('Connectivity'),\n path: this.getPath(LWM2MEndpoint.connectivity)\n },\n {\n icon: 'c8y-firmware',\n label: gettext('Firmware update'),\n path: this.getPath(LWM2MEndpoint.firmware)\n },\n {\n icon: 'root-server',\n label: gettext('Bootstrap'),\n path: this.getPath(LWM2MEndpoint.bootstrap)\n },\n {\n icon: 'stack',\n label: gettext('Servers written during bootstrap'),\n path: this.getPath(LWM2MEndpoint.servers)\n }\n ];\n\n this.lwm2mConfigService.getSecurityModes();\n }\n\n onActivate(event) {\n this.componentInstance = event;\n }\n\n private getPath(endpoint: LWM2MEndpoint) {\n const { deviceId } = this.lwm2mConfigService;\n return `/device/${deviceId}/lwm2m-configuration/${endpoint}`;\n }\n}\n","<div class=\"card content-fullpage d-col\">\n <div class=\"card-header p-0\">\n <c8y-ui-tabs\n class=\"card-has-tabs card-tabs\"\n [tabs]=\"tabs\"\n [orientation]=\"'horizontal'\"\n ></c8y-ui-tabs>\n </div>\n <div class=\"inner-scroll bg-level-0 flex-grow\">\n <form class=\"card-block--formly fit-h\">\n <router-outlet (activate)=\"onActivate($event)\"></router-outlet>\n </form>\n </div>\n <div\n class=\"card-footer separator sticky-bottom\"\n *ngIf=\"componentInstance?.fields?.length > 0\"\n >\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"componentInstance.cancel()\"\n [disabled]=\"!componentInstance.form.dirty\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n [disabled]=\"componentInstance.form.invalid || !componentInstance.form.dirty\"\n (click)=\"componentInstance.save()\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n","import { Component, OnDestroy, OnInit, inject } from '@angular/core';\nimport { AlertService, CoreModule, Permissions } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { FormlyFieldConfig, FormlyFormBuilder, FormlyFormOptions } from '@ngx-formly/core';\nimport { LWM2MEndpoint, permissionAlert } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { FormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-wrapper-base'\n})\nexport abstract class Lwm2mFormWrapperBase<T> implements OnInit, OnDestroy {\n private alertService: AlertService;\n protected abstract endpoint: LWM2MEndpoint;\n protected destroy$: Subject<void> = new Subject();\n\n model = {} as T;\n form = new FormGroup({});\n fields: FormlyFieldConfig[] = [];\n buttons = {};\n options: FormlyFormOptions = {\n formState: { disabled: false }\n };\n\n constructor(protected service: Lwm2mConfigurationService<T>) {\n this.fields = this.createForm();\n\n inject(FormlyFormBuilder)?.buildForm(this.form, this.fields, this.model, this.options);\n\n if (!inject(Permissions)?.hasRole(Permissions.ROLE_INVENTORY_ADMIN)) {\n this.alertService = inject(AlertService);\n this.alertService.info(permissionAlert.text as string);\n this.form.disable();\n this.options.formState.disabled = true;\n }\n }\n\n abstract createForm(): FormlyFieldConfig[];\n\n ngOnInit(): void {\n this.service.settings$.pipe(takeUntil(this.destroy$)).subscribe(next => (this.model = next));\n this.service.getSettingsFor({ endpoint: this.endpoint });\n }\n\n ngOnDestroy(): void {\n this.alertService?.remove(permissionAlert);\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n save() {\n this.form.markAsPristine();\n this.form.markAsUntouched();\n this.service.updateConfig(this.model, this.endpoint);\n }\n\n cancel = () => {\n this.options.resetModel();\n this.service.getSettingsFor({ endpoint: this.endpoint });\n };\n}\n","<formly-form\n *ngIf=\"fields?.length > 0; else empty\"\n [model]=\"model\"\n [form]=\"form\"\n [fields]=\"fields\"\n [options]=\"options\"\n data-cy=\"lwm2m-device-configuration--formly-form\"\n></formly-form>\n<ng-template #empty>\n <c8y-ui-empty-state\n [icon]=\"'c8y-device-protocols'\"\n title=\"{{ 'No configuration selected' | translate }}\"\n subtitle=\"{{ 'Select a configuration on the left' | translate }}\"\n ></c8y-ui-empty-state>\n</ng-template>\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { BootstrapSettings, LWM2MEndpoint } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-bootstrap-settings'\n})\nexport class Lwm2mFormBootstrapSettings extends Lwm2mFormWrapperBase<BootstrapSettings> {\n protected endpoint: LWM2MEndpoint = LWM2MEndpoint.bootstrap;\n constructor(protected service: Lwm2mConfigurationService<BootstrapSettings>) {\n super(service);\n }\n\n createForm() {\n return [\n {\n fieldGroup: [\n {\n key: 'bootstrapServerId',\n type: 'number',\n props: {\n label: gettext('Bootstrap Server ID'),\n placeholder: '1',\n min: 0\n }\n },\n {\n key: 'securityInstanceOffset',\n type: 'number',\n props: {\n label: gettext('Security instance offset'),\n placeholder: '1',\n min: 0\n }\n }\n ]\n }\n ];\n }\n}\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { ConnectivitySettings, LWM2MEndpoint } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { delay, map } from 'rxjs';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-connectivity-settings'\n})\nexport class Lwm2mFormConnectivitySettings extends Lwm2mFormWrapperBase<ConnectivitySettings> {\n protected endpoint: LWM2MEndpoint = LWM2MEndpoint.connectivity;\n constructor(protected service: Lwm2mConfigurationService<ConnectivitySettings>) {\n super(service);\n }\n\n createForm() {\n const selects = [\n {\n key: 'bootstrapConnectivity',\n label: gettext('Bootstrap server authentication'),\n options: this.service.securityModesRaw$.pipe(\n map(dictObjs => dictObjs.filter(o => o?.useInBootstrapConnectivity)),\n delay(1)\n )\n },\n {\n key: 'serverConnectivity',\n label: gettext('Server authentication'),\n options: this.service.securityModesRaw$.pipe(\n map(dictObjs => dictObjs.filter(o => o?.useInServerConnectivity)),\n delay(1)\n )\n }\n ];\n\n return [\n {\n fieldGroup: [\n ...selects.map(select => ({\n key: select.key,\n wrappers: ['legend'],\n props: {\n label: select.label\n },\n fieldGroup: [\n {\n type: '#securityMode',\n props: {\n options: select.options\n }\n },\n { type: '#pskId' },\n { type: '#pskKey' }\n ]\n }))\n ]\n }\n ];\n }\n}\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport {\n AutoManageAvailabilty,\n BinaryEncoding,\n DeviceSettings,\n LWM2MEndpoint,\n SerializationFormat\n} from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-device-settings'\n})\nexport class Lwm2mFormDeviceSettings extends Lwm2mFormWrapperBase<DeviceSettings> {\n protected endpoint: LWM2MEndpoint = LWM2MEndpoint.deviceSettings;\n constructor(protected service: Lwm2mConfigurationService<DeviceSettings>) {\n super(service);\n }\n\n createForm() {\n return [\n {\n fieldGroup: [\n {\n key: 'endpointId',\n type: 'string',\n props: {\n label: gettext('Endpoint client ID'),\n required: true\n }\n },\n {\n key: 'awakeTime',\n type: 'number',\n props: {\n label: gettext('Awake time registration parameter'),\n description: gettext('in milliseconds, 0 means device is always online'),\n placeholder: '0',\n min: 0\n }\n },\n {\n key: 'requestTimeout',\n type: 'number',\n props: {\n label: gettext('LWM2M request timeout'),\n description: gettext('in milliseconds'),\n placeholder: '180000',\n min: 0\n }\n },\n {\n key: 'binaryEncoding',\n type: 'select',\n defaultValue: BinaryEncoding.OPAQUE,\n props: {\n label: gettext('Binary delivery encoding'),\n options: Object.values(BinaryEncoding).map(value => ({ label: value, value }))\n }\n },\n {\n key: 'serializationFormat',\n type: 'select',\n props: {\n label: gettext('Serialization format'),\n placeholder: gettext('Default device value'),\n options: [\n ...Object.values(SerializationFormat).map(value => ({ label: value, value }))\n ],\n description: gettext(\n 'Indicates the preferred content format for LWM2M Agent to use to communicate with the device.'\n ),\n acceptUndefined: true,\n removeExempliGratia: true\n }\n },\n {\n key: 'useTimestampResources',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Use source timestamp'),\n description: gettext(\n 'LWM2M offers various methods for associating timestamp information with data points, including resources 5518 and 6050, SenML, or resource 5 for the location object (6). When activated, the LWM2M agent utilizes this timestamp data source to generate measurements, events, or alarms. If deactivated, the LWM2M agent resorts to using its local time.'\n )\n }\n },\n {\n key: 'keepOldValuesOnOperationFail',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Keep old values'),\n description: gettext('Keep old values in the objects tab if an operation fails')\n }\n },\n {\n key: 'disableObjectInstanceActions',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Disable default behavior for object instances'),\n description: gettext('Turns off the internal default handling of objects 3, 4 and 6')\n }\n },\n {\n key: 'autoManageAvailabilityRequiredInterval',\n type: 'select',\n defaultValue: null,\n props: {\n label: gettext('Set the required interval automatically'),\n options: [\n { label: gettext('Default'), value: null },\n ...Object.entries(AutoManageAvailabilty).map(entry => {\n return { label: gettext(entry[0]), value: !!+entry[1] };\n })\n ],\n description: gettext(\n 'When enabled, the LWM2M service automatically sets the interval to registration lifetime plus 2 minutes.'\n )\n }\n }\n ]\n }\n ];\n }\n}\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport {\n LWM2MEndpoint,\n FWU_DeliveryMethod,\n FWU_ResetMechanism,\n FWU_SupportedDeviceProtocol,\n FirmwareSettings\n} from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-firmware-settings'\n})\nexport class Lwm2mFormFirmwareSettings extends Lwm2mFormWrapperBase<FirmwareSettings> {\n protected endpoint = LWM2MEndpoint.firmware;\n constructor(protected service: Lwm2mConfigurationService<FirmwareSettings>) {\n super(service);\n }\n\n createForm() {\n const selects = [\n {\n key: 'firmwareDeliveryMethod',\n label: gettext('Update`verb` delivery method'),\n _enum: FWU_DeliveryMethod\n },\n {\n key: 'supportedDeviceProtocol',\n label: gettext('Update`verb` supported device protocol'),\n _enum: FWU_SupportedDeviceProtocol\n },\n {\n key: 'resetMethod',\n label: gettext('Update`verb` reset mechanism'),\n _enum: FWU_ResetMechanism\n }\n ];\n return [\n {\n fieldGroup: [\n {\n key: 'disableFirmwareStateMachine',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Disable automated firmware update support'),\n description: gettext('Turns off the internal firmware update state machine')\n }\n },\n {\n key: 'url',\n type: 'string',\n props: {\n label: gettext('Update`noun` URL'),\n placeholder: 'firmware-image-url',\n description: gettext('If not specified, LWM2M Agent generates the URL')\n },\n expressions: {\n hide: 'model.disableFirmwareStateMachine'\n }\n },\n {\n key: 'resetStateMachineOnStart',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Always reset firmware state machine'),\n description: gettext(\n 'Controls if the LWM2M Agent performs an initial state machine reset before it starts a firmware update'\n )\n },\n expressions: {\n hide: 'model.disableFirmwareStateMachine'\n }\n },\n ...selects.map(select => ({\n key: select.key,\n type: 'select',\n props: {\n label: select.label,\n placeholder: gettext('Default device value'),\n options: Object.values(select._enum).map(value => ({ label: value, value })),\n acceptUndefined: true,\n removeExempliGratia: true\n },\n expressions: {\n hide: 'model.disableFirmwareStateMachine'\n }\n })),\n {\n key: 'failOnStateAndResultIncompatibility',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Fail device firmware update on unexpected result'),\n description: gettext(\n 'If the configuration is enabled, the firmware update operation will fail if the update result (resource 5) is not as expected based on the LWM2M firmware state machine.'\n )\n }\n }\n ]\n }\n ];\n }\n}\n","import { Component, OnInit, inject } from '@angular/core';\nimport { AlertService, CoreModule, DroppedFile, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport {\n BindingMode,\n CertificateUsage,\n LWM2MEndpoint,\n Mode,\n Security,\n ServerSettings,\n ValidationType\n} from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { catchError, delay, filter, map, takeUntil } from 'rxjs/operators';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { of } from 'rxjs';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule, RouterModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-single-server-settings'\n})\nexport class Lwm2mFormSingleServerSettings\n extends Lwm2mFormWrapperBase<ServerSettings>\n implements OnInit\n{\n id: string;\n protected endpoint: LWM2MEndpoint = LWM2MEndpoint.servers;\n protected alert: AlertService;\n private readonly COAP = 'coap://';\n private readonly COAPS = 'coaps://';\n private router: Router;\n private route: ActivatedRoute;\n\n constructor(protected service: Lwm2mConfigurationService<ServerSettings>) {\n super(service);\n this.router = inject(Router);\n this.route = inject(ActivatedRoute);\n this.alert = inject(AlertService);\n }\n\n ngOnInit(): void {\n this.service.settings$.pipe(takeUntil(this.destroy$)).subscribe(data => (this.model = data));\n this.service.getSettingsFor({ endpoint: this.endpoint, id: this.id });\n }\n\n createForm() {\n return [\n {\n wrappers: ['legend'],\n fieldGroup: [\n {\n key: 'bootstrap',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Bootstrap server'),\n description: gettext('This configuration is for a bootstrap server')\n }\n },\n {\n key: 'uri',\n type: 'input-addon',\n props: {\n label: gettext('Server URI'),\n addonLabel: this.COAP,\n required: true,\n placeholder: '<LWM2M-server-domain>:<coap(s)-port>'\n },\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.props.addonLabel = this.COAP;\n return field.options.fieldChanges.pipe(\n filter(\n e => e.type === 'valueChanges' && (e.field === field || e.field.key === 'mode')\n ),\n map(e => {\n if (e.field.key === 'uri')\n field.formControl.setValue(\n ((e.value as string) || '').replace(/^.*:\\/\\//i, '')\n );\n field.props.addonLabel =\n field.model?.security?.mode === Mode.NO_SEC ? this.COAP : this.COAPS;\n return e;\n })\n );\n }\n }\n },\n {\n key: 'security',\n wrappers: ['legend'],\n props: {\n label: 'Security'\n },\n fieldGroup: [\n {\n type: '#securityMode',\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.props.options = this.service.securityModesByScope$.pipe(delay(1));\n this.service.getSecurityModeByScope('useInServerConnectivity');\n return field.options.fieldChanges.pipe(\n filter(e => e.type === 'valueChanges' && e.field.key === 'bootstrap'),\n map(e => {\n if (e.value) {\n this.service.getSecurityModeByScope('useInBootstrapConnectivity');\n if (field.model?.mode === Mode.X509_EST) {\n field.formControl.setValue(Mode.NO_SEC);\n }\n } else {\n this.service.getSecurityModeByScope('useInServerConnectivity');\n }\n return e;\n })\n );\n }\n }\n },\n { type: '#pskId' },\n { type: '#pskKey' },\n {\n key: 'x509ServerCertificateName',\n type: 'select',\n props: {\n label: gettext('Server certificate'),\n placeholder: gettext('Not written`setting`'),\n acceptUndefined: true,\n removeExempliGratia: true,\n options: this.service.certificates$.pipe(\n map(certs => certs.map(value => ({ label: value, value })))\n )\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return field.model?.mode !== Mode.X509 && field.model?.mode !== Mode.X509_EST;\n }\n }\n },\n {\n key: 'certificateUsage',\n type: 'select',\n props: {\n label: gettext('Certificate usage'),\n placeholder: gettext('Not written`setting`'),\n acceptUndefined: true,\n removeExempliGratia: true,\n options: Object.values(CertificateUsage).map(value => ({ label: value, value }))\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return field.model?.mode !== Mode.X509 && field.model?.mode !== Mode.X509_EST;\n }\n }\n },\n {\n key: 'certificateDropArea',\n type: 'file',\n props: {\n accept: 'pem',\n label: gettext('Certificate'),\n description: gettext('One .pem file may be uploaded'),\n forceHideList: true,\n dropped: async (files: DroppedFile[]) =>\n this.patchCommonName(\n this.service.cleanUpBase64Data(\n (await files?.pop()?.readAsDataURL()) as string\n )\n )\n },\n expressions: {\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !!field.model?.x509CertificateCommonName\n );\n }\n }\n },\n {\n key: 'x509CertificateCommonName',\n type: 'file-pick-replace',\n props: {\n label: gettext('Certificate Common Name'),\n remove: () => this.removeCertificateAndCommonName(),\n onPick: certificate => this.patchCommonName(certificate)\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !field.model?.x509CertificateCommonName\n );\n }\n }\n },\n {\n key: 'privateKeyDropArea',\n type: 'file',\n props: {\n accept: 'pem',\n label: gettext('Private key'),\n description: gettext('One .pem file may be uploaded'),\n forceHideList: true,\n disabled: true,\n dropped: async (files: DroppedFile[]) =>\n this.patchFingerprint(\n this.service.cleanUpBase64Data(\n (await files?.pop()?.readAsDataURL()) as string\n )\n )\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !!field.model?.x509PrivateKeyFingerPrint\n );\n }\n }\n },\n {\n key: 'x509PrivateKeyFingerPrint',\n type: 'file-pick-replace',\n props: {\n label: gettext('Fingerprint of the private key'),\n remove: () => this.removePrivateKeyAndFingerprint(),\n onPick: privateKey => this.patchFingerprint(privateKey)\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !field.model?.x509PrivateKeyFingerPrint\n );\n }\n }\n }\n ]\n },\n {\n wrappers: ['legend'],\n props: {\n label: gettext('Server object configuration')\n },\n fieldGroup: [\n {\n key: 'storeNotifications',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Store notifications'),\n description: gettext(\n 'LWM2M Client to store notify operations when client is offline or LWM2M Server is disabled. Also used to forward them to the LWM2M Server when the client is able to connect.'\n )\n }\n },\n {\n key: 'shortServerId',\n type: 'number',\n props: {\n label: gettext('Short Server ID'),\n description: gettext('in numbers'),\n placeholder: '1',\n min: 0\n }\n },\n {\n key: 'registrationLifetime',\n type: 'number',\n props: {\n label: gettext('Registration lifetime'),\n description: gettext('in seconds'),\n placeholder: '600',\n min: 0\n }\n },\n {\n key: 'defaultMinPeriod',\n type: 'number',\n props: {\n label: gettext('Default minimum period'),\n description: gettext('in seconds'),\n placeholder: '10',\n min: 0\n }\n },\n {\n key: 'defaultMaxPeriod',\n type: 'number',\n props: {\n label: gettext('Default maximum period'),\n description: gettext('in seconds'),\n placeholder: '60',\n min: 0\n }\n },\n {\n key: 'bindingMode',\n type: 'select',\n defaultValue: BindingMode.U,\n props: {\n label: gettext('Binding mode'),\n options: Object.values(BindingMode).map(value => ({\n label:\n value === BindingMode.U ? gettext('UDP') : gettext('UDP with queue mode'),\n value\n }))\n }\n },\n {\n key: 'disableTimeout',\n type: 'number',\n props: {\n label: gettext('Disable timeout'),\n description: gettext('in seconds'),\n placeholder: '86400',\n min: 0\n }\n }\n ]\n }\n ]\n }\n ];\n }\n\n save() {\n this.service\n .update$({\n ...this.model,\n uri: this.getFullURI(),\n endpoint: LWM2MEndpoint.servers\n })\n .pipe(\n catchError(err => {\n this.alert.addServerFailure(err);\n return of(null);\n })\n )\n .subscribe(_next => this.cancel());\n }\n\n delete() {\n this.service\n .deleteServer$(this.model)\n .pipe(\n catchError(err => {\n this.alert.addServerFailure(err);\n return of(null);\n })\n )\n .subscribe(_next => this.cancel());\n }\n\n cancel = () => this.router.navigate(['../servers'], { relativeTo: this.route });\n\n protected getFullURI() {\n const {\n uri,\n security: { mode = Mode.NO_SEC }\n } = this.model;\n return (mode === Mode.NO_SEC ? this.COAP : this.COAPS).concat(uri);\n }\n\n private patchFingerprint(privateKey: string) {\n if (privateKey?.length > 0) {\n this.service\n .validate(privateKey, ValidationType.PRIVATE_KEY)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n fingerprint => {\n this.model.security.x509PrivateKey = privateKey;\n this.model.security.x509PrivateKeyFingerPrint = fingerprint;\n this.form.patchValue(this.model);\n this.form.markAsDirty();\n },\n _error => {\n // already catched\n }\n );\n }\n }\n\n private patchCommonName(certificate: string) {\n if (certificate?.length > 0) {\n this.service\n .validate(certificate, ValidationType.X509)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n commonName => {\n this.model.security.x509Certificate = certificate;\n this.model.security.x509CertificateCommonName = commonName;\n this.form.patchValue(this.model);\n this.form.markAsDirty();\n },\n _error => {\n // already catched\n }\n );\n }\n }\n\n private removePrivateKeyAndFingerprint() {\n this.form.patchValue({\n security: {\n x509PrivateKey: null,\n x509PrivateKeyFingerPrint: null\n } as Partial<Security>\n });\n delete this.model?.security?.x509PrivateKey;\n delete this.model?.security?.x509PrivateKeyFingerPrint;\n this.form.markAsDirty();\n }\n\n private removeCertificateAndCommonName() {\n this.form.patchValue({\n security: {\n x509Certificate: null,\n x509CertificateCommonName: null\n } as Partial<Security>\n });\n delete this.model?.security?.x509CertificateCommonName;\n delete this.model?.security?.x509Certificate;\n this.form.markAsDirty();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CoreModule } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { ServerSettings } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { Lwm2mFormSingleServerSettings } from './single-server-settings.component';\nimport { catchError } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-create-single-server-settings'\n})\nexport class Lwm2mFormCreateSingleServerSettings\n extends Lwm2mFormSingleServerSettings\n implements OnInit\n{\n constructor(protected service: Lwm2mConfigurationService<ServerSettings>) {\n super(service);\n }\n\n ngOnInit() {\n // override by design\n }\n\n create() {\n this.service\n .createServer$({\n ...this.model,\n uri: this.getFullURI()\n })\n .pipe(\n catchError(err => {\n this.alert.addServerFailure(err);\n return of(null);\n })\n )\n .subscribe(_next => this.cancel());\n }\n}\n","import { Component, ComponentRef, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { ServerSettings } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { Lwm2mFormSingleServerSettings } from './single-server-settings.component';\nimport { map, takeUntil } from 'rxjs/operators';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { Lwm2mFormCreateSingleServerSettings } from './create-single-server-settings.component';\nimport { Subject } from 'rxjs';\n\n@Component({\n templateUrl: './server-settings.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule, Lwm2mFormSingleServerSettings, RouterModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-server-settings'\n})\nexport class Lwm2mFormServerSettings implements OnInit {\n private componentRef: ComponentRef<\n Lwm2mFormSingleServerSettings | Lwm2mFormCreateSingleServerSettings\n >;\n private destroy$: Subject<void> = new Subject();\n @ViewChild('singleServerForm', { read: ViewContainerRef, static: true })\n formContainer: ViewContainerRef;\n cmp: Lwm2mFormSingleServerSettings;\n id: string;\n\n listelements$ = this.service.servers$.pipe(\n map(servers =>\n servers.map(server => ({\n title: server.uri || gettext('Invalid server configuration'),\n icon: 'server',\n id: server.id\n }))\n )\n );\n\n constructor(\n protected service: Lwm2mConfigurationService<ServerSettings>,\n protected route: ActivatedRoute,\n protected router: Router\n ) {}\n\n ngOnInit() {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe(({ id }) => {\n this.id = id;\n this.service.listServers();\n this.createComponent(id);\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n select(id) {\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: { id },\n queryParamsHandling: 'merge'\n });\n }\n\n createComponent(id) {\n this.formContainer.clear();\n this.cmp = null;\n\n if (!id) return;\n\n this.componentRef = this.formContainer.createComponent(\n id !== 'create' ? Lwm2mFormSingleServerSettings : Lwm2mFormCreateSingleServerSettings\n );\n this.cmp = this.componentRef?.instance;\n this.cmp.id = id;\n }\n}\n","<div class=\"split-view--5-7 grid__row--1 fit-h\">\n <div class=\"inner-scroll split-view__list\">\n <div class=\"bg-level-1 flex-grow\">\n <ng-container *ngIf=\"listelements$ | async as list\">\n <ng-container *ngIf=\"list.length > 0 || id === 'create'; else empty\">\n <c8y-list-group class=\"c8y-list__group nav c8y-nav-stacked\">\n <c8y-li\n class=\"c8y-stacked-item p-0 active\"\n *ngIf=\"id === 'create'\"\n >\n <c8y-li-icon icon=\"server\"></c8y-li-icon>\n <span title=\"{{ 'New server' | translate }}\">\n {{ 'New server' | translate }}\n </span>\n </c8y-li>\n <c8y-li\n class=\"c8y-stacked-item p-0\"\n [class.active]=\"el.id === id\"\n *ngFor=\"let el of list\"\n (click)=\"select(el.id)\"\n >\n <c8y-li-icon [icon]=\"el.icon\"></c8y-li-icon>\n <span title=\"{{ el.title }}\">\n {{ el.title }}\n </span>\n </c8y-li>\n </c8y-list-group>\n </ng-container>\n <ng-template #empty>\n <div class=\"card-block\">\n <c8y-ui-empty-state\n [icon]=\"'stack'\"\n [title]=\"'No servers found.' | translate\"\n [subtitle]=\"'Click below to add a new server.' | translate\"\n ></c8y-ui-empty-state>\n </div>\n </ng-template>\n </ng-container>\n </div>\n <div class=\"card-footer separator-top\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Add server' | translate }}\"\n [disabled]=\"id === 'create'\"\n (click)=\"select('create')\"\n >\n <i [c8yIcon]=\"'plus-circle'\"></i>\n {{ 'Add server' | translate }}\n </button>\n </div>\n </div>\n <form class=\"d-contents\">\n <div\n class=\"inner-scroll split-view__detail\"\n [ngClass]=\"{ 'split-view__detail--selected': cmp?.fields?.length > 0 }\"\n >\n <div class=\"card-header separator visible-sm visible-xs fit-w sticky-top\">\n <button\n class=\"btn btn-clean text-primary\"\n title=\"{{ 'Back' | translate }}\"\n type=\"button\"\n (click)=\"cmp?.cancel()\"\n >\n <i c8y-icon=\"chevron-left\"></i>\n <span>{{ 'Back' | translate }}</span>\n </button>\n </div>\n <div class=\"card-block flex-grow overflow-visible\">\n <ng-container *ngIf=\"!cmp?.fields?.length\">\n <c8y-ui-empty-state\n [icon]=\"'stack'\"\n title=\"{{ 'No server to display.' | translate }}\"\n subtitle=\"{{ 'Add or select a server.' | translate }}\"\n ></c8y-ui-empty-state>\n <div\n class=\"alert alert-info\"\n role=\"alert\"\n >\n <strong>{{ 'Info' | translate }}</strong>\n {{\n 'Configured servers are written as soon as the device does a bootstrap connection.'\n | translate\n }}\n </div>\n </ng-container>\n <ng-container #singleServerForm></ng-container>\n </div>\n <div\n class=\"card-footer separator sticky-bottom bg-level-0\"\n *ngIf=\"cmp?.fields?.length > 0\"\n >\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cmp.cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n\n <ng-container *ngIf=\"id !== 'create'; else createServer\">\n <button\n class=\"btn btn-danger\"\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n [disabled]=\"cmp.options?.formState?.disabled || false\"\n (click)=\"cmp.delete()\"\n >\n {{ 'Delete' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n [disabled]=\"cmp.form?.invalid || !cmp.form?.dirty\"\n (click)=\"cmp.save()\"\n >\n {{ 'Save' | translate }}\n </button>\n </ng-container>\n <ng-template #createServer>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Create' | translate }}\"\n type=\"button\"\n [disabled]=\"cmp.form?.invalid || !cmp.form?.dirty\"\n (click)=\"cmp.create()\"\n >\n {{ 'Create' | translate }}\n </button>\n </ng-template>\n </div>\n </div>\n </form>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","delay","i2","i3","i4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-protocol-lwm2m-components-configuration.mjs","sources":["../../protocol-lwm2m/components/configuration/lwm2m-configuration.component.ts","../../protocol-lwm2m/components/configuration/lwm2m-configuration.component.html","../../protocol-lwm2m/components/configuration/typed-forms/form-wrapper-base.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/form-wrapper-base.component.html","../../protocol-lwm2m/components/configuration/typed-forms/bootstrap-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/connectivity-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/device-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/firmware-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/single-server-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/create-single-server-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/servers-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/server-settings.component.html","../../protocol-lwm2m/components/configuration/c8y-ngx-components-protocol-lwm2m-components-configuration.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { LWM2MEndpoint, Settings } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { CdkTreeModule } from '@angular/cdk/tree';\nimport { CoreModule, Tab, gettext } from '@c8y/ngx-components';\nimport { IIdentified } from '@c8y/client';\nimport { Lwm2mFormWrapperBase } from './typed-forms';\n\n@Component({\n selector: 'c8y-lwm2m-configuration',\n templateUrl: './lwm2m-configuration.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule, CdkTreeModule, RouterModule],\n standalone: true\n})\nexport class Lwm2mConfigurationComponent {\n tabs: Tab[];\n componentInstance: Lwm2mFormWrapperBase<Settings>;\n\n constructor(\n private lwm2mConfigService: Lwm2mConfigurationService<IIdentified>,\n private route: ActivatedRoute\n ) {\n this.lwm2mConfigService.deviceId = this.route?.snapshot?.parent?.params?.id;\n\n this.tabs = [\n {\n icon: 'cog',\n label: gettext('Device settings'),\n path: this.getPath(LWM2MEndpoint.deviceSettings)\n },\n {\n icon: 'connected',\n label: gettext('Connectivity'),\n path: this.getPath(LWM2MEndpoint.connectivity)\n },\n {\n icon: 'c8y-firmware',\n label: gettext('Firmware update'),\n path: this.getPath(LWM2MEndpoint.firmware)\n },\n {\n icon: 'root-server',\n label: gettext('Bootstrap'),\n path: this.getPath(LWM2MEndpoint.bootstrap)\n },\n {\n icon: 'stack',\n label: gettext('Servers written during bootstrap'),\n path: this.getPath(LWM2MEndpoint.servers)\n }\n ];\n\n this.lwm2mConfigService.getSecurityModes();\n }\n\n onActivate(event) {\n this.componentInstance = event;\n }\n\n private getPath(endpoint: LWM2MEndpoint) {\n const { deviceId } = this.lwm2mConfigService;\n return `/device/${deviceId}/lwm2m-configuration/${endpoint}`;\n }\n}\n","<div class=\"card content-fullpage d-col\">\n <div class=\"card-header p-0\">\n <c8y-ui-tabs\n class=\"card-has-tabs card-tabs\"\n [tabs]=\"tabs\"\n [orientation]=\"'horizontal'\"\n ></c8y-ui-tabs>\n </div>\n <div class=\"inner-scroll bg-level-0 flex-grow\">\n <form class=\"card-block--formly fit-h\">\n <router-outlet (activate)=\"onActivate($event)\"></router-outlet>\n </form>\n </div>\n <div\n class=\"card-footer separator sticky-bottom\"\n *ngIf=\"componentInstance?.fields?.length > 0\"\n >\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"componentInstance.cancel()\"\n [disabled]=\"!componentInstance.form.dirty\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n [disabled]=\"componentInstance.form.invalid || !componentInstance.form.dirty\"\n (click)=\"componentInstance.save()\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n","import { Component, OnDestroy, OnInit, inject } from '@angular/core';\nimport { AlertService, CoreModule, Permissions } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { FormlyFieldConfig, FormlyFormBuilder, FormlyFormOptions } from '@ngx-formly/core';\nimport { LWM2MEndpoint, permissionAlert } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { FormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-wrapper-base'\n})\nexport abstract class Lwm2mFormWrapperBase<T> implements OnInit, OnDestroy {\n private alertService: AlertService;\n protected abstract endpoint: LWM2MEndpoint;\n protected destroy$: Subject<void> = new Subject();\n\n model = {} as T;\n form = new FormGroup({});\n fields: FormlyFieldConfig[] = [];\n buttons = {};\n options: FormlyFormOptions = {\n formState: { disabled: false }\n };\n\n constructor(protected service: Lwm2mConfigurationService<T>) {\n this.fields = this.createForm();\n\n inject(FormlyFormBuilder)?.buildForm(this.form, this.fields, this.model, this.options);\n\n if (!inject(Permissions)?.hasRole(Permissions.ROLE_INVENTORY_ADMIN)) {\n this.alertService = inject(AlertService);\n this.alertService.info(permissionAlert.text as string);\n this.form.disable();\n this.options.formState.disabled = true;\n }\n }\n\n abstract createForm(): FormlyFieldConfig[];\n\n ngOnInit(): void {\n this.service.settings$.pipe(takeUntil(this.destroy$)).subscribe(next => (this.model = next));\n this.service.getSettingsFor({ endpoint: this.endpoint });\n }\n\n ngOnDestroy(): void {\n this.alertService?.remove(permissionAlert);\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n save() {\n this.form.markAsPristine();\n this.form.markAsUntouched();\n this.service.updateConfig(this.model, this.endpoint);\n }\n\n cancel = () => {\n this.options.resetModel();\n this.service.getSettingsFor({ endpoint: this.endpoint });\n };\n}\n","<formly-form\n *ngIf=\"fields?.length > 0; else empty\"\n [model]=\"model\"\n [form]=\"form\"\n [fields]=\"fields\"\n [options]=\"options\"\n data-cy=\"lwm2m-device-configuration--formly-form\"\n></formly-form>\n<ng-template #empty>\n <c8y-ui-empty-state\n [icon]=\"'c8y-device-protocols'\"\n title=\"{{ 'No configuration selected' | translate }}\"\n subtitle=\"{{ 'Select a configuration on the left' | translate }}\"\n ></c8y-ui-empty-state>\n</ng-template>\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { BootstrapSettings, LWM2MEndpoint } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-bootstrap-settings'\n})\nexport class Lwm2mFormBootstrapSettings extends Lwm2mFormWrapperBase<BootstrapSettings> {\n protected endpoint: LWM2MEndpoint = LWM2MEndpoint.bootstrap;\n constructor(protected service: Lwm2mConfigurationService<BootstrapSettings>) {\n super(service);\n }\n\n createForm() {\n return [\n {\n fieldGroup: [\n {\n key: 'bootstrapServerId',\n type: 'number',\n props: {\n label: gettext('Bootstrap Server ID'),\n placeholder: '1',\n min: 0\n }\n },\n {\n key: 'securityInstanceOffset',\n type: 'number',\n props: {\n label: gettext('Security instance offset'),\n placeholder: '1',\n min: 0\n }\n }\n ]\n }\n ];\n }\n}\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { ConnectivitySettings, LWM2MEndpoint } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { delay, map } from 'rxjs';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-connectivity-settings'\n})\nexport class Lwm2mFormConnectivitySettings extends Lwm2mFormWrapperBase<ConnectivitySettings> {\n protected endpoint: LWM2MEndpoint = LWM2MEndpoint.connectivity;\n constructor(protected service: Lwm2mConfigurationService<ConnectivitySettings>) {\n super(service);\n }\n\n createForm() {\n const selects = [\n {\n key: 'bootstrapConnectivity',\n label: gettext('Bootstrap server authentication'),\n options: this.service.securityModesRaw$.pipe(\n map(dictObjs => dictObjs.filter(o => o?.useInBootstrapConnectivity)),\n delay(1)\n )\n },\n {\n key: 'serverConnectivity',\n label: gettext('Server authentication'),\n options: this.service.securityModesRaw$.pipe(\n map(dictObjs => dictObjs.filter(o => o?.useInServerConnectivity)),\n delay(1)\n )\n }\n ];\n\n return [\n {\n fieldGroup: [\n ...selects.map(select => ({\n key: select.key,\n wrappers: ['legend'],\n props: {\n label: select.label\n },\n fieldGroup: [\n {\n type: '#securityMode',\n props: {\n options: select.options\n }\n },\n { type: '#pskId' },\n { type: '#pskKey' }\n ]\n }))\n ]\n }\n ];\n }\n}\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport {\n AutoManageAvailabilty,\n BinaryEncoding,\n DeviceSettings,\n LWM2MEndpoint,\n SerializationFormat\n} from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-device-settings'\n})\nexport class Lwm2mFormDeviceSettings extends Lwm2mFormWrapperBase<DeviceSettings> {\n protected endpoint: LWM2MEndpoint = LWM2MEndpoint.deviceSettings;\n constructor(protected service: Lwm2mConfigurationService<DeviceSettings>) {\n super(service);\n }\n\n createForm() {\n return [\n {\n fieldGroup: [\n {\n key: 'endpointId',\n type: 'string',\n props: {\n label: gettext('Endpoint client ID'),\n required: true\n }\n },\n {\n key: 'awakeTime',\n type: 'number',\n props: {\n label: gettext('Awake time registration parameter'),\n description: gettext('in milliseconds, 0 means device is always online'),\n placeholder: '0',\n min: 0\n }\n },\n {\n key: 'requestTimeout',\n type: 'number',\n props: {\n label: gettext('LWM2M request timeout'),\n description: gettext('in milliseconds'),\n placeholder: '180000',\n min: 0\n }\n },\n {\n key: 'binaryEncoding',\n type: 'select',\n defaultValue: BinaryEncoding.OPAQUE,\n props: {\n label: gettext('Binary delivery encoding'),\n options: Object.values(BinaryEncoding).map(value => ({ label: value, value }))\n }\n },\n {\n key: 'serializationFormat',\n type: 'select',\n props: {\n label: gettext('Serialization format'),\n placeholder: gettext('Default device value'),\n options: [\n ...Object.values(SerializationFormat).map(value => ({ label: value, value }))\n ],\n description: gettext(\n 'Indicates the preferred content format for LWM2M Agent to use to communicate with the device.'\n ),\n acceptUndefined: true,\n removeExempliGratia: true\n }\n },\n {\n key: 'useTimestampResources',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Use source timestamp'),\n description: gettext(\n 'LWM2M offers various methods for associating timestamp information with data points, including resources 5518 and 6050, SenML, or resource 5 for the location object (6). When activated, the LWM2M agent utilizes this timestamp data source to generate measurements, events, or alarms. If deactivated, the LWM2M agent resorts to using its local time.'\n )\n }\n },\n {\n key: 'keepOldValuesOnOperationFail',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Keep old values'),\n description: gettext('Keep old values in the objects tab if an operation fails')\n }\n },\n {\n key: 'disableObjectInstanceActions',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Disable default behavior for object instances'),\n description: gettext('Turns off the internal default handling of objects 3, 4 and 6')\n }\n },\n {\n key: 'autoManageAvailabilityRequiredInterval',\n type: 'select',\n defaultValue: null,\n props: {\n label: gettext('Set the required interval automatically'),\n options: [\n { label: gettext('Default'), value: null },\n ...Object.entries(AutoManageAvailabilty).map(entry => {\n return { label: gettext(entry[0]), value: !!+entry[1] };\n })\n ],\n description: gettext(\n 'When enabled, the LWM2M service automatically sets the interval to registration lifetime plus 2 minutes.'\n )\n }\n }\n ]\n }\n ];\n }\n}\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport {\n LWM2MEndpoint,\n FWU_DeliveryMethod,\n FWU_ResetMechanism,\n FWU_SupportedDeviceProtocol,\n FirmwareSettings\n} from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-firmware-settings'\n})\nexport class Lwm2mFormFirmwareSettings extends Lwm2mFormWrapperBase<FirmwareSettings> {\n protected endpoint = LWM2MEndpoint.firmware;\n constructor(protected service: Lwm2mConfigurationService<FirmwareSettings>) {\n super(service);\n }\n\n createForm() {\n const selects = [\n {\n key: 'firmwareDeliveryMethod',\n label: gettext('Update`verb` delivery method'),\n _enum: FWU_DeliveryMethod\n },\n {\n key: 'supportedDeviceProtocol',\n label: gettext('Update`verb` supported device protocol'),\n _enum: FWU_SupportedDeviceProtocol\n },\n {\n key: 'resetMethod',\n label: gettext('Update`verb` reset mechanism'),\n _enum: FWU_ResetMechanism\n }\n ];\n return [\n {\n fieldGroup: [\n {\n key: 'disableFirmwareStateMachine',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Disable automated firmware update support'),\n description: gettext('Turns off the internal firmware update state machine')\n }\n },\n {\n key: 'url',\n type: 'string',\n props: {\n label: gettext('Update`noun` URL'),\n placeholder: 'firmware-image-url',\n description: gettext('If not specified, LWM2M Agent generates the URL')\n },\n expressions: {\n hide: 'model.disableFirmwareStateMachine'\n }\n },\n {\n key: 'resetStateMachineOnStart',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Always reset firmware state machine'),\n description: gettext(\n 'Controls if the LWM2M Agent performs an initial state machine reset before it starts a firmware update'\n )\n },\n expressions: {\n hide: 'model.disableFirmwareStateMachine'\n }\n },\n ...selects.map(select => ({\n key: select.key,\n type: 'select',\n props: {\n label: select.label,\n placeholder: gettext('Default device value'),\n options: Object.values(select._enum).map(value => ({ label: value, value })),\n acceptUndefined: true,\n removeExempliGratia: true\n },\n expressions: {\n hide: 'model.disableFirmwareStateMachine'\n }\n })),\n {\n key: 'failOnStateAndResultIncompatibility',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Fail device firmware update on unexpected result'),\n description: gettext(\n 'If the configuration is enabled, the firmware update operation will fail if the update result (resource 5) is not as expected based on the LWM2M firmware state machine.'\n )\n }\n }\n ]\n }\n ];\n }\n}\n","import { Component, OnInit, inject } from '@angular/core';\nimport { AlertService, CoreModule, DroppedFile, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport {\n BindingMode,\n CertificateUsage,\n LWM2MEndpoint,\n Mode,\n Security,\n ServerSettings,\n ValidationType\n} from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { catchError, delay, filter, map, takeUntil } from 'rxjs/operators';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { of } from 'rxjs';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule, RouterModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-single-server-settings'\n})\nexport class Lwm2mFormSingleServerSettings\n extends Lwm2mFormWrapperBase<ServerSettings>\n implements OnInit\n{\n id: string;\n protected endpoint: LWM2MEndpoint = LWM2MEndpoint.servers;\n protected alert: AlertService;\n private readonly COAP = 'coap://';\n private readonly COAPS = 'coaps://';\n private router: Router;\n private route: ActivatedRoute;\n\n constructor(protected service: Lwm2mConfigurationService<ServerSettings>) {\n super(service);\n this.router = inject(Router);\n this.route = inject(ActivatedRoute);\n this.alert = inject(AlertService);\n }\n\n ngOnInit(): void {\n this.service.settings$.pipe(takeUntil(this.destroy$)).subscribe(data => (this.model = data));\n this.service.getSettingsFor({ endpoint: this.endpoint, id: this.id });\n }\n\n createForm() {\n return [\n {\n wrappers: ['legend'],\n fieldGroup: [\n {\n key: 'bootstrap',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Bootstrap server'),\n description: gettext('This configuration is for a bootstrap server')\n }\n },\n {\n key: 'uri',\n type: 'input-addon',\n props: {\n label: gettext('Server URI'),\n addonLabel: this.COAP,\n required: true,\n placeholder: '<LWM2M-server-domain>:<coap(s)-port>'\n },\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.props.addonLabel = this.COAP;\n return field.options.fieldChanges.pipe(\n filter(\n e => e.type === 'valueChanges' && (e.field === field || e.field.key === 'mode')\n ),\n map(e => {\n if (e.field.key === 'uri')\n field.formControl.setValue(\n ((e.value as string) || '').replace(/^.*:\\/\\//i, '')\n );\n field.props.addonLabel =\n field.model?.security?.mode === Mode.NO_SEC ? this.COAP : this.COAPS;\n return e;\n })\n );\n }\n }\n },\n {\n key: 'security',\n wrappers: ['legend'],\n props: {\n label: 'Security'\n },\n fieldGroup: [\n {\n type: '#securityMode',\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.props.options = this.service.securityModesByScope$.pipe(delay(1));\n this.service.getSecurityModeByScope('useInServerConnectivity');\n return field.options.fieldChanges.pipe(\n filter(e => e.type === 'valueChanges' && e.field.key === 'bootstrap'),\n map(e => {\n if (e.value) {\n this.service.getSecurityModeByScope('useInBootstrapConnectivity');\n if (field.model?.mode === Mode.X509_EST) {\n field.formControl.setValue(Mode.NO_SEC);\n }\n } else {\n this.service.getSecurityModeByScope('useInServerConnectivity');\n }\n return e;\n })\n );\n }\n }\n },\n { type: '#pskId' },\n { type: '#pskKey' },\n {\n key: 'x509ServerCertificateName',\n type: 'select',\n props: {\n label: gettext('Server certificate'),\n placeholder: gettext('Not written`setting`'),\n acceptUndefined: true,\n removeExempliGratia: true,\n options: this.service.certificates$.pipe(\n map(certs => certs.map(value => ({ label: value, value })))\n )\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return field.model?.mode !== Mode.X509 && field.model?.mode !== Mode.X509_EST;\n }\n }\n },\n {\n key: 'certificateUsage',\n type: 'select',\n props: {\n label: gettext('Certificate usage'),\n placeholder: gettext('Not written`setting`'),\n acceptUndefined: true,\n removeExempliGratia: true,\n options: Object.values(CertificateUsage).map(value => ({ label: value, value }))\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return field.model?.mode !== Mode.X509 && field.model?.mode !== Mode.X509_EST;\n }\n }\n },\n {\n key: 'certificateDropArea',\n type: 'file',\n props: {\n accept: 'pem',\n label: gettext('Certificate'),\n description: gettext('One .pem file may be uploaded'),\n forceHideList: true,\n dropped: async (files: DroppedFile[]) =>\n this.patchCommonName(\n this.service.cleanUpBase64Data(\n (await files?.pop()?.readAsDataURL()) as string\n )\n )\n },\n expressions: {\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !!field.model?.x509CertificateCommonName\n );\n }\n }\n },\n {\n key: 'x509CertificateCommonName',\n type: 'file-pick-replace',\n props: {\n label: gettext('Certificate Common Name'),\n remove: () => this.removeCertificateAndCommonName(),\n onPick: certificate => this.patchCommonName(certificate)\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !field.model?.x509CertificateCommonName\n );\n }\n }\n },\n {\n key: 'privateKeyDropArea',\n type: 'file',\n props: {\n accept: 'pem',\n label: gettext('Private key'),\n description: gettext('One .pem file may be uploaded'),\n forceHideList: true,\n disabled: true,\n dropped: async (files: DroppedFile[]) =>\n this.patchFingerprint(\n this.service.cleanUpBase64Data(\n (await files?.pop()?.readAsDataURL()) as string\n )\n )\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !!field.model?.x509PrivateKeyFingerPrint\n );\n }\n }\n },\n {\n key: 'x509PrivateKeyFingerPrint',\n type: 'file-pick-replace',\n props: {\n label: gettext('Fingerprint of the private key'),\n remove: () => this.removePrivateKeyAndFingerprint(),\n onPick: privateKey => this.patchFingerprint(privateKey)\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !field.model?.x509PrivateKeyFingerPrint\n );\n }\n }\n }\n ]\n },\n {\n wrappers: ['legend'],\n props: {\n label: gettext('Server object configuration')\n },\n fieldGroup: [\n {\n key: 'storeNotifications',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Store notifications'),\n description: gettext(\n 'LWM2M Client to store notify operations when client is offline or LWM2M Server is disabled. Also used to forward them to the LWM2M Server when the client is able to connect.'\n )\n }\n },\n {\n key: 'shortServerId',\n type: 'number',\n props: {\n label: gettext('Short Server ID'),\n description: gettext('in numbers'),\n placeholder: '1',\n min: 0\n }\n },\n {\n key: 'registrationLifetime',\n type: 'number',\n props: {\n label: gettext('Registration lifetime'),\n description: gettext('in seconds'),\n placeholder: '600',\n min: 0\n }\n },\n {\n key: 'defaultMinPeriod',\n type: 'number',\n props: {\n label: gettext('Default minimum period'),\n description: gettext('in seconds'),\n placeholder: '10',\n min: 0\n }\n },\n {\n key: 'defaultMaxPeriod',\n type: 'number',\n props: {\n label: gettext('Default maximum period'),\n description: gettext('in seconds'),\n placeholder: '60',\n min: 0\n }\n },\n {\n key: 'bindingMode',\n type: 'select',\n defaultValue: BindingMode.U,\n props: {\n label: gettext('Binding mode'),\n options: Object.values(BindingMode).map(value => ({\n label:\n value === BindingMode.U ? gettext('UDP') : gettext('UDP with queue mode'),\n value\n }))\n }\n },\n {\n key: 'disableTimeout',\n type: 'number',\n props: {\n label: gettext('Disable timeout'),\n description: gettext('in seconds'),\n placeholder: '86400',\n min: 0\n }\n }\n ]\n }\n ]\n }\n ];\n }\n\n save() {\n this.service\n .update$({\n ...this.model,\n uri: this.getFullURI(),\n endpoint: LWM2MEndpoint.servers\n })\n .pipe(\n catchError(err => {\n this.alert.addServerFailure(err);\n return of(null);\n })\n )\n .subscribe(_next => this.cancel());\n }\n\n delete() {\n this.service\n .deleteServer$(this.model)\n .pipe(\n catchError(err => {\n this.alert.addServerFailure(err);\n return of(null);\n })\n )\n .subscribe(_next => this.cancel());\n }\n\n cancel = () => this.router.navigate(['../servers'], { relativeTo: this.route });\n\n protected getFullURI() {\n const {\n uri,\n security: { mode = Mode.NO_SEC }\n } = this.model;\n return (mode === Mode.NO_SEC ? this.COAP : this.COAPS).concat(uri);\n }\n\n private patchFingerprint(privateKey: string) {\n if (privateKey?.length > 0) {\n this.service\n .validate(privateKey, ValidationType.PRIVATE_KEY)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n fingerprint => {\n this.model.security.x509PrivateKey = privateKey;\n this.model.security.x509PrivateKeyFingerPrint = fingerprint;\n this.form.patchValue(this.model);\n this.form.markAsDirty();\n },\n _error => {\n // already catched\n }\n );\n }\n }\n\n private patchCommonName(certificate: string) {\n if (certificate?.length > 0) {\n this.service\n .validate(certificate, ValidationType.X509)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n commonName => {\n this.model.security.x509Certificate = certificate;\n this.model.security.x509CertificateCommonName = commonName;\n this.form.patchValue(this.model);\n this.form.markAsDirty();\n },\n _error => {\n // already catched\n }\n );\n }\n }\n\n private removePrivateKeyAndFingerprint() {\n this.form.patchValue({\n security: {\n x509PrivateKey: null,\n x509PrivateKeyFingerPrint: null\n } as Partial<Security>\n });\n delete this.model?.security?.x509PrivateKey;\n delete this.model?.security?.x509PrivateKeyFingerPrint;\n this.form.markAsDirty();\n }\n\n private removeCertificateAndCommonName() {\n this.form.patchValue({\n security: {\n x509Certificate: null,\n x509CertificateCommonName: null\n } as Partial<Security>\n });\n delete this.model?.security?.x509CertificateCommonName;\n delete this.model?.security?.x509Certificate;\n this.form.markAsDirty();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CoreModule } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { ServerSettings } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { Lwm2mFormSingleServerSettings } from './single-server-settings.component';\nimport { catchError } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-create-single-server-settings'\n})\nexport class Lwm2mFormCreateSingleServerSettings\n extends Lwm2mFormSingleServerSettings\n implements OnInit\n{\n constructor(protected service: Lwm2mConfigurationService<ServerSettings>) {\n super(service);\n }\n\n ngOnInit() {\n // override by design\n }\n\n create() {\n this.service\n .createServer$({\n ...this.model,\n uri: this.getFullURI()\n })\n .pipe(\n catchError(err => {\n this.alert.addServerFailure(err);\n return of(null);\n })\n )\n .subscribe(_next => this.cancel());\n }\n}\n","import { Component, ComponentRef, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { ServerSettings } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { Lwm2mFormSingleServerSettings } from './single-server-settings.component';\nimport { map, takeUntil } from 'rxjs/operators';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { Lwm2mFormCreateSingleServerSettings } from './create-single-server-settings.component';\nimport { Subject } from 'rxjs';\n\n@Component({\n templateUrl: './server-settings.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule, Lwm2mFormSingleServerSettings, RouterModule],\n standalone: true,\n selector: 'c8y-lwm2m-form-server-settings'\n})\nexport class Lwm2mFormServerSettings implements OnInit {\n private componentRef: ComponentRef<\n Lwm2mFormSingleServerSettings | Lwm2mFormCreateSingleServerSettings\n >;\n private destroy$: Subject<void> = new Subject();\n @ViewChild('singleServerForm', { read: ViewContainerRef, static: true })\n formContainer: ViewContainerRef;\n cmp: Lwm2mFormSingleServerSettings;\n id: string;\n\n listelements$ = this.service.servers$.pipe(\n map(servers =>\n servers.map(server => ({\n title: server.uri || gettext('Invalid server configuration'),\n icon: 'server',\n id: server.id\n }))\n )\n );\n\n constructor(\n protected service: Lwm2mConfigurationService<ServerSettings>,\n protected route: ActivatedRoute,\n protected router: Router\n ) {}\n\n ngOnInit() {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe(({ id }) => {\n this.id = id;\n this.service.listServers();\n this.createComponent(id);\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n select(id) {\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: { id },\n queryParamsHandling: 'merge'\n });\n }\n\n createComponent(id) {\n this.formContainer.clear();\n this.cmp = null;\n\n if (!id) return;\n\n this.componentRef = this.formContainer.createComponent(\n id !== 'create' ? Lwm2mFormSingleServerSettings : Lwm2mFormCreateSingleServerSettings\n );\n this.cmp = this.componentRef?.instance;\n this.cmp.id = id;\n }\n}\n","<div class=\"split-view--5-7 grid__row--1 fit-h\">\n <div class=\"inner-scroll split-view__list\">\n <div class=\"bg-level-1 flex-grow\">\n <ng-container *ngIf=\"listelements$ | async as list\">\n <ng-container *ngIf=\"list.length > 0 || id === 'create'; else empty\">\n <c8y-list-group class=\"c8y-list__group nav c8y-nav-stacked\">\n <c8y-li\n class=\"c8y-stacked-item p-0 active\"\n *ngIf=\"id === 'create'\"\n >\n <c8y-li-icon icon=\"server\"></c8y-li-icon>\n <span title=\"{{ 'New server' | translate }}\">\n {{ 'New server' | translate }}\n </span>\n </c8y-li>\n <c8y-li\n class=\"c8y-stacked-item p-0\"\n [class.active]=\"el.id === id\"\n *ngFor=\"let el of list\"\n (click)=\"select(el.id)\"\n >\n <c8y-li-icon [icon]=\"el.icon\"></c8y-li-icon>\n <span title=\"{{ el.title }}\">\n {{ el.title }}\n </span>\n </c8y-li>\n </c8y-list-group>\n </ng-container>\n <ng-template #empty>\n <div class=\"card-block\">\n <c8y-ui-empty-state\n [icon]=\"'stack'\"\n [title]=\"'No servers found.' | translate\"\n [subtitle]=\"'Click below to add a new server.' | translate\"\n ></c8y-ui-empty-state>\n </div>\n </ng-template>\n </ng-container>\n </div>\n <div class=\"card-footer separator-top\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Add server' | translate }}\"\n [disabled]=\"id === 'create'\"\n (click)=\"select('create')\"\n >\n <i [c8yIcon]=\"'plus-circle'\"></i>\n {{ 'Add server' | translate }}\n </button>\n </div>\n </div>\n <form class=\"d-contents\">\n <div\n class=\"inner-scroll split-view__detail\"\n [ngClass]=\"{ 'split-view__detail--selected': cmp?.fields?.length > 0 }\"\n >\n <div class=\"card-header separator visible-sm visible-xs fit-w sticky-top\">\n <button\n class=\"btn btn-clean text-primary\"\n title=\"{{ 'Back' | translate }}\"\n type=\"button\"\n (click)=\"cmp?.cancel()\"\n >\n <i c8y-icon=\"chevron-left\"></i>\n <span>{{ 'Back' | translate }}</span>\n </button>\n </div>\n <div class=\"card-block flex-grow overflow-visible\">\n <ng-container *ngIf=\"!cmp?.fields?.length\">\n <c8y-ui-empty-state\n [icon]=\"'stack'\"\n title=\"{{ 'No server to display.' | translate }}\"\n subtitle=\"{{ 'Add or select a server.' | translate }}\"\n ></c8y-ui-empty-state>\n <div\n class=\"alert alert-info\"\n role=\"alert\"\n >\n <strong>{{ 'Info' | translate }}</strong>\n {{\n 'Configured servers are written as soon as the device does a bootstrap connection.'\n | translate\n }}\n </div>\n </ng-container>\n <ng-container #singleServerForm></ng-container>\n </div>\n <div\n class=\"card-footer separator sticky-bottom bg-level-0\"\n *ngIf=\"cmp?.fields?.length > 0\"\n >\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cmp.cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n\n <ng-container *ngIf=\"id !== 'create'; else createServer\">\n <button\n class=\"btn btn-danger\"\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n [disabled]=\"cmp.options?.formState?.disabled || false\"\n (click)=\"cmp.delete()\"\n >\n {{ 'Delete' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n [disabled]=\"cmp.form?.invalid || !cmp.form?.dirty\"\n (click)=\"cmp.save()\"\n >\n {{ 'Save' | translate }}\n </button>\n </ng-container>\n <ng-template #createServer>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Create' | translate }}\"\n type=\"button\"\n [disabled]=\"cmp.form?.invalid || !cmp.form?.dirty\"\n (click)=\"cmp.create()\"\n >\n {{ 'Create' | translate }}\n </button>\n </ng-template>\n </div>\n </div>\n </form>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","delay","i2","i3","i4"],"mappings":"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"}
|
|
@@ -1287,7 +1287,7 @@ class OpcuaAutoApplySettingsComponent {
|
|
|
1287
1287
|
this.updateConstraints(this.selectedItems);
|
|
1288
1288
|
}
|
|
1289
1289
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: OpcuaAutoApplySettingsComponent, deps: [{ token: i1.InventoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1290
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: OpcuaAutoApplySettingsComponent, selector: "opcua-auto-apply", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-md-4\">\n <p translate>\n Specifying auto-apply constraints allows you to limit the scope where the device protocols are\n applied, for example by specifying a set of possible servers or node IDs.\n </p>\n <p translate>\n If no constraints are set, device protocols are applied at any fitting location on the OPC UA\n server.\n </p>\n </div>\n\n <div class=\"col-md-6\">\n <ul class=\"list-group\" style=\"box-shadow: none;\">\n <!-- Limit device type to a set of servers -->\n <li class=\"list-group-item\">\n <label\n title=\"{{ 'Limit device protocol to a set of servers' | translate }}\"\n class=\"c8y-checkbox\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"\n constraints.matchesServerIds !== null && constraints.matchesServerIds.length > 0\n \"\n (change)=\"onChangeShowServerIds($event)\"\n />\n <span></span>\n <span class=\"m-l-8\">\n {{ 'Limit device protocol to a set of servers' | translate }}\n </span>\n </label>\n <div\n class=\"collapse\"\n [collapse]=\"\n (!showServerIds &&\n (constraints.matchesServerIds !== null && constraints.matchesServerIds.length < 1)) ||\n (!showServerIds && constraints.matchesServerIds === null)\n \"\n [isAnimated]=\"true\"\n >\n <c8y-form-group class=\"m-t-8 m-b-8\">\n <c8y-select-legacy\n [items]=\"opcuaServers\"\n [selected]=\"selectedItems\"\n [placeholder]=\"placeholderSelectServerIds\"\n (onChange)=\"serverIdsSelected($event)\"\n [updateItems]=\"updateSelectedItem\"\n >\n \n <c8y-li *ngIf=\"opcuaServers.length > sizeToShowFilter\" class=\"sticky-top\">\n <c8y-filter [icon]=\"'search'\" (onSearch)=\"filterItems($event)\"></c8y-filter>\n </c8y-li>\n <c8y-li *ngIf=\"filteredList && filteredList.length === 0\">\n <c8y-li-body> \n <div class=\"c8y-empty-state text-left\">\n <p>{{ 'No items to display.' | translate }}</p>\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-li *ngFor=\"let item of filteredList\">\n <c8y-li-checkbox\n [selected]=\"isChecked(item)\"\n (onSelect)=\"onSelect($event, item)\"\n ></c8y-li-checkbox>\n <c8y-li-body>{{ item.name | translate }}<br>\n <span class=\"text-label-small m-r-4\" translate>ID</span> <small>{{ item.id }}</small>\n </c8y-li-body>\n </c8y-li>\n </c8y-select-legacy>\n </c8y-form-group>\n </div>\n </li>\n <!-- Limit device type scope in the address space -->\n <li class=\"list-group-item\">\n <label\n title=\"{{ 'Limit device protocol scope in the address space' | translate }}\"\n class=\"c8y-checkbox\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"\n constraints.browsePathMatchesRegex !== null &&\n constraints.browsePathMatchesRegex.length > 0\n \"\n (change)=\"onChangeShowBrowsePath($event)\"\n />\n <span></span>\n <span class=\"m-l-8\">\n {{ 'Limit device protocol scope in the address space' | translate }}\n </span>\n </label>\n <div\n class=\"collapse\"\n [isAnimated]=\"true\"\n [collapse]=\"\n (!showBrowsePath &&\n constraints.browsePathMatchesRegex !== null &&\n constraints.browsePathMatchesRegex.length < 1) ||\n (!showBrowsePath && constraints.browsePathMatchesRegex === null)\n \"\n >\n <c8y-form-group class=\"m-t-8 m-b-8\">\n <input\n name=\"browsePath\"\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} /objects/devices/.*\"\n [(ngModel)]=\"constraints.browsePathMatchesRegex\"\n ngDefaultControl\n />\n </c8y-form-group>\n </div>\n </li>\n <!-- Limit device type to servers with a certain fragment-->\n <li class=\"list-group-item\">\n <label\n title=\"{{ 'Limit device protocol to servers with a certain fragment' | translate }}\"\n class=\"c8y-checkbox\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"constraints.serverObjectHasFragment !== null && constraints.serverObjectHasFragment.length > 0\"\n (change)=\"onChangeShowServerFragment($event)\"\n />\n <span></span>\n <span class=\"m-l-8\">\n {{ 'Limit device protocol to servers with a certain fragment' | translate }}\n </span>\n </label>\n <div\n class=\"collapse\"\n [isAnimated]=\"true\"\n [collapse]=\"(!showServerFragment && constraints.serverObjectHasFragment !== null && constraints.serverObjectHasFragment.length < 1) || (!showServerFragment && constraints.serverObjectHasFragment === null)\"\n >\n <c8y-form-group class=\"m-t-8 m-b-8\">\n <input\n name=\"serverFragment\"\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} c8y_SomeServerMarker\"\n [(ngModel)]=\"constraints.serverObjectHasFragment\"\n ngDefaultControl\n />\n </c8y-form-group>\n </div>\n </li>\n <!-- Limit device type to a specific root node ID -->\n <li class=\"list-group-item\">\n <label\n title=\"{{ 'Limit device protocol to specific root nodes ID' | translate }}\"\n class=\"c8y-checkbox\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"constraints.matchesNodeIds !== null && constraints.matchesNodeIds.length > 0\"\n (change)=\"onChangeNodeId($event)\"\n />\n <span></span>\n <span class=\"m-l-8\">\n {{ 'Limit device protocol to specific root nodes ID' | translate }}\n </span>\n </label>\n <div\n class=\"collapse\"\n [isAnimated]=\"true\"\n [collapse]=\"(!showRootNodes && constraints.matchesNodeIds !== null && constraints.matchesNodeIds.length < 1) || ( !showRootNodes && constraints.matchesNodeIds === null)\"\n >\n <ul c8yInputGroupListContainer class=\"list-unstyled p-t-16\">\n <li\n class=\"m-b-8\"\n *ngFor=\"let item of constraints.matchesNodeIds; let i = index; trackBy: trackByFn\"\n >\n <c8y-input-group-list [index]=\"i\" (onAdd)=\"add()\" (onRemove)=\"remove($event)\">\n <c8y-form-group class=\"form-group--tooltip-validation\">\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} nodeId\"\n [(ngModel)]=\"constraints.matchesNodeIds[i]\"\n [required]=\"true\"\n />\n </c8y-form-group>\n </c8y-input-group-list>\n </li>\n </ul> \n </div>\n </li>\n </ul>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2$1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.SelectLegacyComponent, selector: "c8y-select-legacy", inputs: ["placeholder", "selectedLabel", "applyLabel", "items", "selected", "updateItems", "disableApplyOnNoSelection", "addDropdownContainerToBody"], outputs: ["onChange"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i2$1.InputGroupListComponent, selector: "c8y-input-group-list", inputs: ["plus", "minus", "index"], outputs: ["onRemove", "onAdd"] }, { kind: "directive", type: i2$1.InputGroupListContainerDirective, selector: "[c8yInputGroupListContainer]" }, { kind: "directive", type: i2$1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i2$1.FilterInputComponent, selector: "c8y-filter", inputs: ["icon"], outputs: ["onSearch"] }, { kind: "component", type: i2$1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2$1.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: i2$1.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "directive", type: i4$1.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "pipe", type: i2$1.C8yTranslatePipe, name: "translate" }] }); }
|
|
1290
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: OpcuaAutoApplySettingsComponent, selector: "opcua-auto-apply", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-md-4\">\n <p translate>\n Specifying auto-apply constraints allows you to limit the scope where the device protocols are\n applied, for example by specifying a set of possible servers or node IDs.\n </p>\n <p translate>\n If no constraints are set, device protocols are applied at any fitting location on the OPC UA\n server.\n </p>\n </div>\n\n <div class=\"col-md-6\">\n <ul class=\"list-group\" style=\"box-shadow: none;\">\n <!-- Limit device type to a set of servers -->\n <li class=\"list-group-item\">\n <label\n title=\"{{ 'Limit device protocol to a set of servers' | translate }}\"\n class=\"c8y-checkbox\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"\n constraints.matchesServerIds !== null && constraints.matchesServerIds.length > 0\n \"\n (change)=\"onChangeShowServerIds($event)\"\n />\n <span></span>\n <span class=\"m-l-8\">\n {{ 'Limit device protocol to a set of servers' | translate }}\n </span>\n </label>\n <div\n class=\"collapse\"\n [collapse]=\"\n (!showServerIds &&\n (constraints.matchesServerIds !== null && constraints.matchesServerIds.length < 1)) ||\n (!showServerIds && constraints.matchesServerIds === null)\n \"\n [isAnimated]=\"true\"\n >\n <c8y-form-group class=\"m-t-8 m-b-8\">\n <c8y-select-legacy\n [items]=\"opcuaServers\"\n [selected]=\"selectedItems\"\n [placeholder]=\"placeholderSelectServerIds\"\n (onChange)=\"serverIdsSelected($event)\"\n [updateItems]=\"updateSelectedItem\"\n >\n \n <c8y-li *ngIf=\"opcuaServers.length > sizeToShowFilter\" class=\"sticky-top\">\n <c8y-filter [icon]=\"'search'\" (onSearch)=\"filterItems($event)\"></c8y-filter>\n </c8y-li>\n <c8y-li *ngIf=\"filteredList && filteredList.length === 0\">\n <c8y-li-body> \n <div class=\"c8y-empty-state text-left\">\n <p>{{ 'No items to display.' | translate }}</p>\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-li *ngFor=\"let item of filteredList\">\n <c8y-li-checkbox\n [selected]=\"isChecked(item)\"\n (onSelect)=\"onSelect($event, item)\"\n ></c8y-li-checkbox>\n <c8y-li-body>{{ item.name | translate }}<br>\n <span class=\"text-label-small m-r-4\" translate>ID</span> <small>{{ item.id }}</small>\n </c8y-li-body>\n </c8y-li>\n </c8y-select-legacy>\n </c8y-form-group>\n </div>\n </li>\n <!-- Limit device type scope in the address space -->\n <li class=\"list-group-item\">\n <label\n title=\"{{ 'Limit device protocol scope in the address space' | translate }}\"\n class=\"c8y-checkbox\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"\n constraints.browsePathMatchesRegex !== null &&\n constraints.browsePathMatchesRegex.length > 0\n \"\n (change)=\"onChangeShowBrowsePath($event)\"\n />\n <span></span>\n <span class=\"m-l-8\">\n {{ 'Limit device protocol scope in the address space' | translate }}\n </span>\n </label>\n <div\n class=\"collapse\"\n [isAnimated]=\"true\"\n [collapse]=\"\n (!showBrowsePath &&\n constraints.browsePathMatchesRegex !== null &&\n constraints.browsePathMatchesRegex.length < 1) ||\n (!showBrowsePath && constraints.browsePathMatchesRegex === null)\n \"\n >\n <c8y-form-group class=\"m-t-8 m-b-8\">\n <input\n name=\"browsePath\"\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} /objects/devices/.*\"\n [(ngModel)]=\"constraints.browsePathMatchesRegex\"\n ngDefaultControl\n />\n </c8y-form-group>\n </div>\n </li>\n <!-- Limit device type to servers with a certain fragment-->\n <li class=\"list-group-item\">\n <label\n title=\"{{ 'Limit device protocol to servers with a certain fragment' | translate }}\"\n class=\"c8y-checkbox\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"constraints.serverObjectHasFragment !== null && constraints.serverObjectHasFragment.length > 0\"\n (change)=\"onChangeShowServerFragment($event)\"\n />\n <span></span>\n <span class=\"m-l-8\">\n {{ 'Limit device protocol to servers with a certain fragment' | translate }}\n </span>\n </label>\n <div\n class=\"collapse\"\n [isAnimated]=\"true\"\n [collapse]=\"(!showServerFragment && constraints.serverObjectHasFragment !== null && constraints.serverObjectHasFragment.length < 1) || (!showServerFragment && constraints.serverObjectHasFragment === null)\"\n >\n <c8y-form-group class=\"m-t-8 m-b-8\">\n <input\n name=\"serverFragment\"\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} c8y_SomeServerMarker\"\n [(ngModel)]=\"constraints.serverObjectHasFragment\"\n ngDefaultControl\n />\n </c8y-form-group>\n </div>\n </li>\n <!-- Limit device type to a specific root node ID -->\n <li class=\"list-group-item\">\n <label\n title=\"{{ 'Limit device protocol to specific root nodes ID' | translate }}\"\n class=\"c8y-checkbox\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"constraints.matchesNodeIds !== null && constraints.matchesNodeIds.length > 0\"\n (change)=\"onChangeNodeId($event)\"\n />\n <span></span>\n <span class=\"m-l-8\">\n {{ 'Limit device protocol to specific root nodes ID' | translate }}\n </span>\n </label>\n <div\n class=\"collapse\"\n [isAnimated]=\"true\"\n [collapse]=\"(!showRootNodes && constraints.matchesNodeIds !== null && constraints.matchesNodeIds.length < 1) || ( !showRootNodes && constraints.matchesNodeIds === null)\"\n >\n <ul c8yInputGroupListContainer class=\"list-unstyled p-t-16\">\n <li\n class=\"m-b-8\"\n *ngFor=\"let item of constraints.matchesNodeIds; let i = index; trackBy: trackByFn\"\n >\n <c8y-input-group-list [index]=\"i\" (onAdd)=\"add()\" (onRemove)=\"remove($event)\">\n <c8y-form-group class=\"form-group--tooltip-validation\">\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} nodeId\"\n [(ngModel)]=\"constraints.matchesNodeIds[i]\"\n [required]=\"true\"\n />\n </c8y-form-group>\n </c8y-input-group-list>\n </li>\n </ul> \n </div>\n </li>\n </ul>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2$1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.SelectLegacyComponent, selector: "c8y-select-legacy", inputs: ["placeholder", "selectedLabel", "applyLabel", "items", "selected", "updateItems", "disableApplyOnNoSelection", "addDropdownContainerToBody"], outputs: ["onChange"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i2$1.InputGroupListComponent, selector: "c8y-input-group-list", inputs: ["plus", "minus", "index"], outputs: ["onRemove", "onAdd"] }, { kind: "directive", type: i2$1.InputGroupListContainerDirective, selector: "[c8yInputGroupListContainer]" }, { kind: "directive", type: i2$1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i2$1.FilterInputComponent, selector: "c8y-filter", inputs: ["icon", "filterTerm"], outputs: ["onSearch"] }, { kind: "component", type: i2$1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2$1.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: i2$1.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "directive", type: i4$1.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "pipe", type: i2$1.C8yTranslatePipe, name: "translate" }] }); }
|
|
1291
1291
|
}
|
|
1292
1292
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: OpcuaAutoApplySettingsComponent, decorators: [{
|
|
1293
1293
|
type: Component,
|