@c8y/ngx-components 1021.38.0 → 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/tenants/custom-properties/custom-properties.service.mjs +6 -2
- 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-tenants.mjs +5 -1
- package/fesm2022/c8y-ngx-components-tenants.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 +159 -7
- 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/tenants/custom-properties/custom-properties.service.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
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { gettext, hookRoute, hookService, ViewContext } from '@c8y/ngx-components';
|
|
3
|
+
import { canActivateRemoteAccess, RemoteAccessService } from '@c8y/ngx-components/remote-access/data';
|
|
4
|
+
import { BsModalService } from 'ngx-bootstrap/modal';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@c8y/ngx-components/remote-access/data";
|
|
7
|
+
import * as i2 from "ngx-bootstrap/modal";
|
|
8
|
+
export class VNCRemoteAccessProtocolProviderService {
|
|
9
|
+
constructor(remoteAccess, bsModalService) {
|
|
10
|
+
this.remoteAccess = remoteAccess;
|
|
11
|
+
this.bsModalService = bsModalService;
|
|
12
|
+
this.protocolName = 'VNC';
|
|
13
|
+
this.protocolLabel = gettext('VNC');
|
|
14
|
+
this.protocolDescription = gettext('Allows to connect to a VNC service.');
|
|
15
|
+
this.protocolIcon = 'laptop';
|
|
16
|
+
}
|
|
17
|
+
async addEndpoint(deviceId) {
|
|
18
|
+
const modalResult = await this.openVNCEndpointModal({});
|
|
19
|
+
if (!modalResult) {
|
|
20
|
+
return modalResult;
|
|
21
|
+
}
|
|
22
|
+
return this.remoteAccess.addConfiguration(deviceId, modalResult);
|
|
23
|
+
}
|
|
24
|
+
removeEndpoint(deviceId, currentEndpointConfig) {
|
|
25
|
+
return this.remoteAccess.deleteConfiguration(deviceId, currentEndpointConfig.id);
|
|
26
|
+
}
|
|
27
|
+
async editEndpoint(deviceId, currentEndpointConfig) {
|
|
28
|
+
const modalResult = await this.openVNCEndpointModal(currentEndpointConfig);
|
|
29
|
+
if (!modalResult) {
|
|
30
|
+
return modalResult;
|
|
31
|
+
}
|
|
32
|
+
return this.remoteAccess.updateConfiguration(deviceId, modalResult);
|
|
33
|
+
}
|
|
34
|
+
async connectEndpointHref(deviceId, configuration) {
|
|
35
|
+
return `/device/${deviceId}/vnc/${configuration.id}`;
|
|
36
|
+
}
|
|
37
|
+
async getDefaultEndpointConfiguration() {
|
|
38
|
+
return {
|
|
39
|
+
hostname: '127.0.0.1',
|
|
40
|
+
port: 5900
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
async openVNCEndpointModal(currentConfiguration) {
|
|
44
|
+
const { RemoteAccessVncEndpointModalComponent } = await import('@c8y/ngx-components/remote-access/vnc/remote-access-vnc-endpoint-modal');
|
|
45
|
+
try {
|
|
46
|
+
const modalRef = this.bsModalService.show(RemoteAccessVncEndpointModalComponent, {
|
|
47
|
+
initialState: { currentValue: currentConfiguration }
|
|
48
|
+
});
|
|
49
|
+
return (await modalRef.content.result);
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
// modal closed
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: VNCRemoteAccessProtocolProviderService, deps: [{ token: i1.RemoteAccessService }, { token: i2.BsModalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
57
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: VNCRemoteAccessProtocolProviderService, providedIn: 'root' }); }
|
|
58
|
+
}
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: VNCRemoteAccessProtocolProviderService, decorators: [{
|
|
60
|
+
type: Injectable,
|
|
61
|
+
args: [{ providedIn: 'root' }]
|
|
62
|
+
}], ctorParameters: () => [{ type: i1.RemoteAccessService }, { type: i2.BsModalService }] });
|
|
63
|
+
export const remoteAccessVNCProviders = [
|
|
64
|
+
hookRoute({
|
|
65
|
+
loadComponent: () => import('@c8y/ngx-components/remote-access/vnc/vnc-viewer').then(m => m.VncViewerComponent),
|
|
66
|
+
path: 'vnc/:configurationId',
|
|
67
|
+
context: ViewContext.Device,
|
|
68
|
+
tabs: [],
|
|
69
|
+
canActivate: [canActivateRemoteAccess]
|
|
70
|
+
}),
|
|
71
|
+
hookService('remoteAccessProtocolHook', VNCRemoteAccessProtocolProviderService)
|
|
72
|
+
];
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3ZuYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRixPQUFPLEVBQ0wsdUJBQXVCLEVBR3ZCLG1CQUFtQixFQUNwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUdyRCxNQUFNLE9BQU8sc0NBQXNDO0lBTWpELFlBQ1ksWUFBaUMsRUFDakMsY0FBOEI7UUFEOUIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVAxQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixrQkFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQix3QkFBbUIsR0FBRyxPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUNyRSxpQkFBWSxHQUFHLFFBQWlCLENBQUM7SUFLOUIsQ0FBQztJQUVKLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBZ0I7UUFDaEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxjQUFjLENBQ1osUUFBZ0IsRUFDaEIscUJBQWdEO1FBRWhELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQ2hCLFFBQWdCLEVBQ2hCLHFCQUFnRDtRQUVoRCxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUN2QixRQUFnQixFQUNoQixhQUF3QztRQUV4QyxPQUFPLFdBQVcsUUFBUSxRQUFRLGFBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsS0FBSyxDQUFDLCtCQUErQjtRQUNuQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLFdBQVc7WUFDckIsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVTLEtBQUssQ0FBQyxvQkFBb0IsQ0FDbEMsb0JBQXdEO1FBRXhELE1BQU0sRUFBRSxxQ0FBcUMsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUM1RCx3RUFBd0UsQ0FDekUsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxFQUFFO2dCQUMvRSxZQUFZLEVBQUUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUU7YUFDckQsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQThCLENBQUM7UUFDdEUsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxlQUFlO1lBQ2YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQzs4R0FwRVUsc0NBQXNDO2tIQUF0QyxzQ0FBc0MsY0FEekIsTUFBTTs7MkZBQ25CLHNDQUFzQztrQkFEbEQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBd0VsQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxTQUFTLENBQUM7UUFDUixhQUFhLEVBQUUsR0FBRyxFQUFFLENBQ2xCLE1BQU0sQ0FBQyxrREFBa0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztRQUM1RixJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLE9BQU8sRUFBRSxXQUFXLENBQUMsTUFBTTtRQUMzQixJQUFJLEVBQUUsRUFBRTtRQUNSLFdBQVcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO0tBQ3ZDLENBQUM7SUFDRixXQUFXLENBQUMsMEJBQTBCLEVBQUUsc0NBQXNDLENBQUM7Q0FDaEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldHRleHQsIGhvb2tSb3V0ZSwgaG9va1NlcnZpY2UsIFZpZXdDb250ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBjYW5BY3RpdmF0ZVJlbW90ZUFjY2VzcyxcbiAgUmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbixcbiAgUmVtb3RlQWNjZXNzUHJvdG9jb2xQcm92aWRlcixcbiAgUmVtb3RlQWNjZXNzU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3JlbW90ZS1hY2Nlc3MvZGF0YSc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFZOQ1JlbW90ZUFjY2Vzc1Byb3RvY29sUHJvdmlkZXJTZXJ2aWNlIGltcGxlbWVudHMgUmVtb3RlQWNjZXNzUHJvdG9jb2xQcm92aWRlciB7XG4gIHByb3RvY29sTmFtZSA9ICdWTkMnO1xuICBwcm90b2NvbExhYmVsID0gZ2V0dGV4dCgnVk5DJyk7XG4gIHByb3RvY29sRGVzY3JpcHRpb24gPSBnZXR0ZXh0KCdBbGxvd3MgdG8gY29ubmVjdCB0byBhIFZOQyBzZXJ2aWNlLicpO1xuICBwcm90b2NvbEljb24gPSAnbGFwdG9wJyBhcyBjb25zdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVtb3RlQWNjZXNzOiBSZW1vdGVBY2Nlc3NTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBic01vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGFkZEVuZHBvaW50KGRldmljZUlkOiBzdHJpbmcpOiBQcm9taXNlPFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24+IHtcbiAgICBjb25zdCBtb2RhbFJlc3VsdCA9IGF3YWl0IHRoaXMub3BlblZOQ0VuZHBvaW50TW9kYWwoe30pO1xuICAgIGlmICghbW9kYWxSZXN1bHQpIHtcbiAgICAgIHJldHVybiBtb2RhbFJlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yZW1vdGVBY2Nlc3MuYWRkQ29uZmlndXJhdGlvbihkZXZpY2VJZCwgbW9kYWxSZXN1bHQpO1xuICB9XG5cbiAgcmVtb3ZlRW5kcG9pbnQoXG4gICAgZGV2aWNlSWQ6IHN0cmluZyxcbiAgICBjdXJyZW50RW5kcG9pbnRDb25maWc6IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb25cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMucmVtb3RlQWNjZXNzLmRlbGV0ZUNvbmZpZ3VyYXRpb24oZGV2aWNlSWQsIGN1cnJlbnRFbmRwb2ludENvbmZpZy5pZCk7XG4gIH1cblxuICBhc3luYyBlZGl0RW5kcG9pbnQoXG4gICAgZGV2aWNlSWQ6IHN0cmluZyxcbiAgICBjdXJyZW50RW5kcG9pbnRDb25maWc6IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb25cbiAgKTogUHJvbWlzZTxSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uPiB7XG4gICAgY29uc3QgbW9kYWxSZXN1bHQgPSBhd2FpdCB0aGlzLm9wZW5WTkNFbmRwb2ludE1vZGFsKGN1cnJlbnRFbmRwb2ludENvbmZpZyk7XG4gICAgaWYgKCFtb2RhbFJlc3VsdCkge1xuICAgICAgcmV0dXJuIG1vZGFsUmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlbW90ZUFjY2Vzcy51cGRhdGVDb25maWd1cmF0aW9uKGRldmljZUlkLCBtb2RhbFJlc3VsdCk7XG4gIH1cblxuICBhc3luYyBjb25uZWN0RW5kcG9pbnRIcmVmKFxuICAgIGRldmljZUlkOiBzdHJpbmcsXG4gICAgY29uZmlndXJhdGlvbjogUmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvblxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgL2RldmljZS8ke2RldmljZUlkfS92bmMvJHtjb25maWd1cmF0aW9uLmlkfWA7XG4gIH1cblxuICBhc3luYyBnZXREZWZhdWx0RW5kcG9pbnRDb25maWd1cmF0aW9uKCk6IFByb21pc2U8UGFydGlhbDxSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uPj4ge1xuICAgIHJldHVybiB7XG4gICAgICBob3N0bmFtZTogJzEyNy4wLjAuMScsXG4gICAgICBwb3J0OiA1OTAwXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBvcGVuVk5DRW5kcG9pbnRNb2RhbChcbiAgICBjdXJyZW50Q29uZmlndXJhdGlvbjogUGFydGlhbDxSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uPlxuICApOiBQcm9taXNlPFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24gfCBudWxsPiB7XG4gICAgY29uc3QgeyBSZW1vdGVBY2Nlc3NWbmNFbmRwb2ludE1vZGFsQ29tcG9uZW50IH0gPSBhd2FpdCBpbXBvcnQoXG4gICAgICAnQGM4eS9uZ3gtY29tcG9uZW50cy9yZW1vdGUtYWNjZXNzL3ZuYy9yZW1vdGUtYWNjZXNzLXZuYy1lbmRwb2ludC1tb2RhbCdcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhSZW1vdGVBY2Nlc3NWbmNFbmRwb2ludE1vZGFsQ29tcG9uZW50LCB7XG4gICAgICAgIGluaXRpYWxTdGF0ZTogeyBjdXJyZW50VmFsdWU6IGN1cnJlbnRDb25maWd1cmF0aW9uIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIChhd2FpdCBtb2RhbFJlZi5jb250ZW50LnJlc3VsdCkgYXMgUmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBtb2RhbCBjbG9zZWRcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgcmVtb3RlQWNjZXNzVk5DUHJvdmlkZXJzID0gW1xuICBob29rUm91dGUoe1xuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+XG4gICAgICBpbXBvcnQoJ0BjOHkvbmd4LWNvbXBvbmVudHMvcmVtb3RlLWFjY2Vzcy92bmMvdm5jLXZpZXdlcicpLnRoZW4obSA9PiBtLlZuY1ZpZXdlckNvbXBvbmVudCksXG4gICAgcGF0aDogJ3ZuYy86Y29uZmlndXJhdGlvbklkJyxcbiAgICBjb250ZXh0OiBWaWV3Q29udGV4dC5EZXZpY2UsXG4gICAgdGFiczogW10sXG4gICAgY2FuQWN0aXZhdGU6IFtjYW5BY3RpdmF0ZVJlbW90ZUFjY2Vzc11cbiAgfSksXG4gIGhvb2tTZXJ2aWNlKCdyZW1vdGVBY2Nlc3NQcm90b2NvbEhvb2snLCBWTkNSZW1vdGVBY2Nlc3NQcm90b2NvbFByb3ZpZGVyU2VydmljZSlcbl07XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzh5LW5neC1jb21wb25lbnRzLXJlbW90ZS1hY2Nlc3Mtdm5jLXJlbW90ZS1hY2Nlc3Mtdm5jLWVuZHBvaW50LW1vZGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcmVtb3RlLWFjY2Vzcy92bmMvcmVtb3RlLWFjY2Vzcy12bmMtZW5kcG9pbnQtbW9kYWwvYzh5LW5neC1jb21wb25lbnRzLXJlbW90ZS1hY2Nlc3Mtdm5jLXJlbW90ZS1hY2Nlc3Mtdm5jLWVuZHBvaW50LW1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './remote-access-vnc-endpoint-modal.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3ZuYy9yZW1vdGUtYWNjZXNzLXZuYy1lbmRwb2ludC1tb2RhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhDQUE4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZW1vdGUtYWNjZXNzLXZuYy1lbmRwb2ludC1tb2RhbC5jb21wb25lbnQnO1xuIl19
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { NgForOf } from '@angular/common';
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import { FormBuilder, Validators } from '@angular/forms';
|
|
4
|
+
import { CoreModule } from '@c8y/ngx-components';
|
|
5
|
+
import { gettext } from '@c8y/ngx-components/gettext';
|
|
6
|
+
import { CREDENTIALS_TYPES } from '@c8y/ngx-components/remote-access/data';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/forms";
|
|
9
|
+
import * as i2 from "@c8y/ngx-components";
|
|
10
|
+
import * as i3 from "@angular/common";
|
|
11
|
+
export class RemoteAccessVncEndpointModalComponent {
|
|
12
|
+
constructor(formBuilder) {
|
|
13
|
+
this.formBuilder = formBuilder;
|
|
14
|
+
this.credentialTypes = [CREDENTIALS_TYPES.NONE, CREDENTIALS_TYPES.PASS_ONLY];
|
|
15
|
+
this.title = gettext('Remote access endpoint');
|
|
16
|
+
this.result = new Promise((resolve, reject) => {
|
|
17
|
+
this._resolve = resolve;
|
|
18
|
+
this._reject = reject;
|
|
19
|
+
});
|
|
20
|
+
this.form = this.initForm();
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
if (this.currentValue) {
|
|
24
|
+
const { credentials, ...rest } = this.currentValue;
|
|
25
|
+
const credentialsType = credentials?.type || 'NONE';
|
|
26
|
+
const attributesToAdd = { credentialsType };
|
|
27
|
+
if (credentials) {
|
|
28
|
+
const { username, password } = credentials;
|
|
29
|
+
Object.assign(attributesToAdd, { username, password });
|
|
30
|
+
}
|
|
31
|
+
const patchedValue = { ...rest, ...attributesToAdd };
|
|
32
|
+
this.form.patchValue(patchedValue);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
initForm() {
|
|
36
|
+
return this.formBuilder.group({
|
|
37
|
+
id: ['', []],
|
|
38
|
+
name: ['', [Validators.required, Validators.minLength(1)]],
|
|
39
|
+
hostname: ['127.0.0.1', [Validators.required, Validators.minLength(1)]],
|
|
40
|
+
port: [5900, [Validators.required, Validators.min(1), Validators.max(65535)]],
|
|
41
|
+
protocol: ['VNC', [Validators.required, Validators.minLength(1)]],
|
|
42
|
+
password: [undefined, []],
|
|
43
|
+
credentialsType: ['NONE', [Validators.required]]
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
cancel() {
|
|
47
|
+
this._reject();
|
|
48
|
+
}
|
|
49
|
+
save() {
|
|
50
|
+
this._resolve(this.form.value);
|
|
51
|
+
}
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RemoteAccessVncEndpointModalComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: RemoteAccessVncEndpointModalComponent, isStandalone: true, selector: "c8y-remote-access-vnc-endpoint-modal", ngImport: i0, template: "<c8y-modal\n [title]=\"title\"\n [headerClasses]=\"'dialog-header'\"\n (onDismiss)=\"cancel()\"\n (onClose)=\"save()\"\n [disabled]=\"form.invalid\"\n [labels]=\"{ cancel: 'Cancel', ok: 'Save' }\"\n>\n <ng-container c8y-modal-title>\n <span [c8yIcon]=\"'laptop'\"></span>\n </ng-container>\n <div\n class=\"p-24\"\n [formGroup]=\"form\"\n >\n <c8y-form-group>\n <label\n for=\"name\"\n translate\n >\n Name\n </label>\n <input\n class=\"form-control\"\n id=\"name\"\n name=\"name\"\n type=\"text\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'My remote access endpoint' }\"\n formControlName=\"name\"\n [attr.data-cy]=\"'remoteAccessEndpointModal--name'\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label\n for=\"protocol\"\n translate\n >\n Protocol\n </label>\n <input\n class=\"form-control\"\n id=\"protocol\"\n name=\"protocol\"\n type=\"text\"\n readonly\n formControlName=\"protocol\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label\n for=\"hostname\"\n translate\n >\n Host\n </label>\n <input\n class=\"form-control\"\n id=\"hostname\"\n placeholder=\"{{'e.g. {{ example }}' | translate : { example: '127.0.0.1' } }}\"\n name=\"hostname\"\n type=\"text\"\n formControlName=\"hostname\"\n [attr.data-cy]=\"'remoteAccessEndpointModal--hostname'\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label\n for=\"port\"\n translate\n >\n Port\n </label>\n <input\n class=\"form-control\"\n id=\"port\"\n placeholder=\"{{'e.g. {{ example }}' | translate : { example: '5900' } }}\"\n name=\"port\"\n type=\"number\"\n formControlName=\"port\"\n [attr.data-cy]=\"'remoteAccessEndpointModal--port'\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <div>\n <c8y-form-group>\n <label\n for=\"credentialsType\"\n translate\n >\n Sign-in method\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n id=\"credentialsType\"\n formControlName=\"credentialsType\"\n [attr.data-cy]=\"'remoteAccessEndpointModal--credentials-type'\"\n >\n <option\n *ngFor=\"let type of credentialTypes\"\n [value]=\"type.value\"\n >\n {{ type.label | translate }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n\n <c8y-form-group *ngIf=\"form.value.credentialsType === 'PASS_ONLY'\">\n <label\n for=\"password\"\n translate\n >\n Password\n </label>\n <input\n class=\"form-control\"\n id=\"password\"\n placeholder=\"{{'e.g. {{ example }}' | translate : { example: 'my_password' } }}\"\n name=\"password\"\n type=\"password\"\n autocomplete=\"off\"\n formControlName=\"password\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n</c8y-modal>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i2.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RemoteAccessVncEndpointModalComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{ selector: 'c8y-remote-access-vnc-endpoint-modal', standalone: true, imports: [CoreModule, NgForOf], template: "<c8y-modal\n [title]=\"title\"\n [headerClasses]=\"'dialog-header'\"\n (onDismiss)=\"cancel()\"\n (onClose)=\"save()\"\n [disabled]=\"form.invalid\"\n [labels]=\"{ cancel: 'Cancel', ok: 'Save' }\"\n>\n <ng-container c8y-modal-title>\n <span [c8yIcon]=\"'laptop'\"></span>\n </ng-container>\n <div\n class=\"p-24\"\n [formGroup]=\"form\"\n >\n <c8y-form-group>\n <label\n for=\"name\"\n translate\n >\n Name\n </label>\n <input\n class=\"form-control\"\n id=\"name\"\n name=\"name\"\n type=\"text\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'My remote access endpoint' }\"\n formControlName=\"name\"\n [attr.data-cy]=\"'remoteAccessEndpointModal--name'\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label\n for=\"protocol\"\n translate\n >\n Protocol\n </label>\n <input\n class=\"form-control\"\n id=\"protocol\"\n name=\"protocol\"\n type=\"text\"\n readonly\n formControlName=\"protocol\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label\n for=\"hostname\"\n translate\n >\n Host\n </label>\n <input\n class=\"form-control\"\n id=\"hostname\"\n placeholder=\"{{'e.g. {{ example }}' | translate : { example: '127.0.0.1' } }}\"\n name=\"hostname\"\n type=\"text\"\n formControlName=\"hostname\"\n [attr.data-cy]=\"'remoteAccessEndpointModal--hostname'\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label\n for=\"port\"\n translate\n >\n Port\n </label>\n <input\n class=\"form-control\"\n id=\"port\"\n placeholder=\"{{'e.g. {{ example }}' | translate : { example: '5900' } }}\"\n name=\"port\"\n type=\"number\"\n formControlName=\"port\"\n [attr.data-cy]=\"'remoteAccessEndpointModal--port'\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <div>\n <c8y-form-group>\n <label\n for=\"credentialsType\"\n translate\n >\n Sign-in method\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n id=\"credentialsType\"\n formControlName=\"credentialsType\"\n [attr.data-cy]=\"'remoteAccessEndpointModal--credentials-type'\"\n >\n <option\n *ngFor=\"let type of credentialTypes\"\n [value]=\"type.value\"\n >\n {{ type.label | translate }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n\n <c8y-form-group *ngIf=\"form.value.credentialsType === 'PASS_ONLY'\">\n <label\n for=\"password\"\n translate\n >\n Password\n </label>\n <input\n class=\"form-control\"\n id=\"password\"\n placeholder=\"{{'e.g. {{ example }}' | translate : { example: 'my_password' } }}\"\n name=\"password\"\n type=\"password\"\n autocomplete=\"off\"\n formControlName=\"password\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n</c8y-modal>\n" }]
|
|
58
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }] });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWFjY2Vzcy12bmMtZW5kcG9pbnQtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcmVtb3RlLWFjY2Vzcy92bmMvcmVtb3RlLWFjY2Vzcy12bmMtZW5kcG9pbnQtbW9kYWwvcmVtb3RlLWFjY2Vzcy12bmMtZW5kcG9pbnQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcmVtb3RlLWFjY2Vzcy92bmMvcmVtb3RlLWFjY2Vzcy12bmMtZW5kcG9pbnQtbW9kYWwvcmVtb3RlLWFjY2Vzcy12bmMtZW5kcG9pbnQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RELE9BQU8sRUFDTCxpQkFBaUIsRUFFbEIsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7QUFRaEQsTUFBTSxPQUFPLHFDQUFxQztJQWVoRCxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWQ1QyxvQkFBZSxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hFLFVBQUssR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUsxQyxXQUFNLEdBQUcsSUFBSSxPQUFPLENBQTRDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ2xGLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBTUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUNuRCxNQUFNLGVBQWUsR0FBRyxXQUFXLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQztZQUNwRCxNQUFNLGVBQWUsR0FBRyxFQUFFLGVBQWUsRUFBRSxDQUFDO1lBQzVDLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsV0FBVyxDQUFDO2dCQUMzQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELENBQUM7WUFDRCxNQUFNLFlBQVksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsZUFBZSxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUM1QixFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ1osSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUQsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM3RSxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRSxRQUFRLEVBQUUsQ0FBQyxTQUFtQixFQUFFLEVBQUUsQ0FBQztZQUNuQyxlQUFlLEVBQUUsQ0FBQyxNQUE4QixFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3pFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OEdBbkRVLHFDQUFxQztrR0FBckMscUNBQXFDLGdHQ2hCbEQsczhHQXdJQSwyQ0QxSFksVUFBVTs7MkZBRVQscUNBQXFDO2tCQU5qRCxTQUFTOytCQUNFLHNDQUFzQyxjQUVwQyxJQUFJLFdBQ1AsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3JPZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9nZXR0ZXh0JztcbmltcG9ydCB7XG4gIENSRURFTlRJQUxTX1RZUEVTLFxuICBSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcmVtb3RlLWFjY2Vzcy9kYXRhJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXJlbW90ZS1hY2Nlc3Mtdm5jLWVuZHBvaW50LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlbW90ZS1hY2Nlc3Mtdm5jLWVuZHBvaW50LW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIE5nRm9yT2ZdXG59KVxuZXhwb3J0IGNsYXNzIFJlbW90ZUFjY2Vzc1ZuY0VuZHBvaW50TW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjcmVkZW50aWFsVHlwZXMgPSBbQ1JFREVOVElBTFNfVFlQRVMuTk9ORSwgQ1JFREVOVElBTFNfVFlQRVMuUEFTU19PTkxZXTtcbiAgdGl0bGUgPSBnZXR0ZXh0KCdSZW1vdGUgYWNjZXNzIGVuZHBvaW50Jyk7XG4gIGZvcm06IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuaW5pdEZvcm0+O1xuXG4gIGN1cnJlbnRWYWx1ZTogUGFydGlhbDxSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uPjtcblxuICByZXN1bHQgPSBuZXcgUHJvbWlzZTxSZXR1cm5UeXBlPHR5cGVvZiB0aGlzLmluaXRGb3JtPlsndmFsdWUnXT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHRoaXMuX3Jlc29sdmUgPSByZXNvbHZlO1xuICAgIHRoaXMuX3JlamVjdCA9IHJlamVjdDtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfcmVzb2x2ZTogKHZhbHVlOiBSZXR1cm5UeXBlPHR5cGVvZiB0aGlzLmluaXRGb3JtPlsndmFsdWUnXSkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBfcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFZhbHVlKSB7XG4gICAgICBjb25zdCB7IGNyZWRlbnRpYWxzLCAuLi5yZXN0IH0gPSB0aGlzLmN1cnJlbnRWYWx1ZTtcbiAgICAgIGNvbnN0IGNyZWRlbnRpYWxzVHlwZSA9IGNyZWRlbnRpYWxzPy50eXBlIHx8ICdOT05FJztcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXNUb0FkZCA9IHsgY3JlZGVudGlhbHNUeXBlIH07XG4gICAgICBpZiAoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgY29uc3QgeyB1c2VybmFtZSwgcGFzc3dvcmQgfSA9IGNyZWRlbnRpYWxzO1xuICAgICAgICBPYmplY3QuYXNzaWduKGF0dHJpYnV0ZXNUb0FkZCwgeyB1c2VybmFtZSwgcGFzc3dvcmQgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCBwYXRjaGVkVmFsdWUgPSB7IC4uLnJlc3QsIC4uLmF0dHJpYnV0ZXNUb0FkZCB9O1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUocGF0Y2hlZFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBpbml0Rm9ybSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBpZDogWycnLCBbXV0sXG4gICAgICBuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxKV1dLFxuICAgICAgaG9zdG5hbWU6IFsnMTI3LjAuMC4xJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDEpXV0sXG4gICAgICBwb3J0OiBbNTkwMCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKDEpLCBWYWxpZGF0b3JzLm1heCg2NTUzNSldXSxcbiAgICAgIHByb3RvY29sOiBbJ1ZOQycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxKV1dLFxuICAgICAgcGFzc3dvcmQ6IFt1bmRlZmluZWQgYXMgc3RyaW5nLCBbXV0sXG4gICAgICBjcmVkZW50aWFsc1R5cGU6IFsnTk9ORScgYXMgJ05PTkUnIHwgJ1BBU1NfT05MWScsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLl9yZWplY3QoKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5fcmVzb2x2ZSh0aGlzLmZvcm0udmFsdWUpO1xuICB9XG59XG4iLCI8Yzh5LW1vZGFsXG4gIFt0aXRsZV09XCJ0aXRsZVwiXG4gIFtoZWFkZXJDbGFzc2VzXT1cIidkaWFsb2ctaGVhZGVyJ1wiXG4gIChvbkRpc21pc3MpPVwiY2FuY2VsKClcIlxuICAob25DbG9zZSk9XCJzYXZlKClcIlxuICBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCJcbiAgW2xhYmVsc109XCJ7IGNhbmNlbDogJ0NhbmNlbCcsIG9rOiAnU2F2ZScgfVwiXG4+XG4gIDxuZy1jb250YWluZXIgYzh5LW1vZGFsLXRpdGxlPlxuICAgIDxzcGFuIFtjOHlJY29uXT1cIidsYXB0b3AnXCI+PC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicC0yNFwiXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgPlxuICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgIDxsYWJlbFxuICAgICAgICBmb3I9XCJuYW1lXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIE5hbWVcbiAgICAgIDwvbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBpZD1cIm5hbWVcIlxuICAgICAgICBuYW1lPVwibmFtZVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6ICdNeSByZW1vdGUgYWNjZXNzIGVuZHBvaW50JyB9XCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ3JlbW90ZUFjY2Vzc0VuZHBvaW50TW9kYWwtLW5hbWUnXCJcbiAgICAgIC8+XG4gICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICA8bGFiZWxcbiAgICAgICAgZm9yPVwicHJvdG9jb2xcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgUHJvdG9jb2xcbiAgICAgIDwvbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBpZD1cInByb3RvY29sXCJcbiAgICAgICAgbmFtZT1cInByb3RvY29sXCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICByZWFkb25seVxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcm90b2NvbFwiXG4gICAgICAvPlxuICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICA8L2M4eS1mb3JtLWdyb3VwPlxuXG4gICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgPGxhYmVsXG4gICAgICAgIGZvcj1cImhvc3RuYW1lXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIEhvc3RcbiAgICAgIDwvbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBpZD1cImhvc3RuYW1lXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eydlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlIDogeyBleGFtcGxlOiAnMTI3LjAuMC4xJyB9IH19XCJcbiAgICAgICAgbmFtZT1cImhvc3RuYW1lXCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJob3N0bmFtZVwiXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ3JlbW90ZUFjY2Vzc0VuZHBvaW50TW9kYWwtLWhvc3RuYW1lJ1wiXG4gICAgICAvPlxuICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICA8L2M4eS1mb3JtLWdyb3VwPlxuXG4gICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgPGxhYmVsXG4gICAgICAgIGZvcj1cInBvcnRcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgUG9ydFxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIGlkPVwicG9ydFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3snZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZSA6IHsgZXhhbXBsZTogJzU5MDAnIH0gfX1cIlxuICAgICAgICBuYW1lPVwicG9ydFwiXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwb3J0XCJcbiAgICAgICAgW2F0dHIuZGF0YS1jeV09XCIncmVtb3RlQWNjZXNzRW5kcG9pbnRNb2RhbC0tcG9ydCdcIlxuICAgICAgLz5cbiAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgPC9jOHktZm9ybS1ncm91cD5cblxuICAgIDxkaXY+XG4gICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIGZvcj1cImNyZWRlbnRpYWxzVHlwZVwiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5cbiAgICAgICAgICBTaWduLWluIG1ldGhvZFxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYzh5LXNlbGVjdC13cmFwcGVyXCI+XG4gICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgaWQ9XCJjcmVkZW50aWFsc1R5cGVcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3JlZGVudGlhbHNUeXBlXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ3JlbW90ZUFjY2Vzc0VuZHBvaW50TW9kYWwtLWNyZWRlbnRpYWxzLXR5cGUnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0eXBlIG9mIGNyZWRlbnRpYWxUeXBlc1wiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJ0eXBlLnZhbHVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgdHlwZS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jOHktZm9ybS1ncm91cD5cblxuICAgICAgPGM4eS1mb3JtLWdyb3VwICpuZ0lmPVwiZm9ybS52YWx1ZS5jcmVkZW50aWFsc1R5cGUgPT09ICdQQVNTX09OTFknXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIGZvcj1cInBhc3N3b3JkXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPlxuICAgICAgICAgIFBhc3N3b3JkXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBpZD1cInBhc3N3b3JkXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7J2UuZy4ge3sgZXhhbXBsZSB9fScgfCB0cmFuc2xhdGUgOiB7IGV4YW1wbGU6ICdteV9wYXNzd29yZCcgfSB9fVwiXG4gICAgICAgICAgbmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIlxuICAgICAgICAvPlxuICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2M4eS1tb2RhbD5cbiJdfQ==
|
package/esm2022/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzh5LW5neC1jb21wb25lbnRzLXJlbW90ZS1hY2Nlc3Mtdm5jLXZuYy12aWV3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3ZuYy92bmMtdmlld2VyL2M4eS1uZ3gtY29tcG9uZW50cy1yZW1vdGUtYWNjZXNzLXZuYy12bmMtdmlld2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './vnc-viewer.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3ZuYy92bmMtdmlld2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3ZuYy12aWV3ZXIuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { NgIf } from '@angular/common';
|
|
2
|
+
import { Component, Input } from '@angular/core';
|
|
3
|
+
import { FormBuilder, Validators } from '@angular/forms';
|
|
4
|
+
import { CoreModule } from '@c8y/ngx-components';
|
|
5
|
+
import { gettext } from '@c8y/ngx-components/gettext';
|
|
6
|
+
import { BsModalRef } from 'ngx-bootstrap/modal';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/forms";
|
|
9
|
+
import * as i2 from "ngx-bootstrap/modal";
|
|
10
|
+
import * as i3 from "@c8y/ngx-components";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
12
|
+
export class VncCredentialsPromptComponent {
|
|
13
|
+
constructor(formBuilder, modalRef) {
|
|
14
|
+
this.formBuilder = formBuilder;
|
|
15
|
+
this.modalRef = modalRef;
|
|
16
|
+
this.title = gettext('VNC credentials');
|
|
17
|
+
this.types = [];
|
|
18
|
+
this.result = new Promise((resolve, reject) => {
|
|
19
|
+
this._resolve = resolve;
|
|
20
|
+
this._reject = reject;
|
|
21
|
+
});
|
|
22
|
+
this.showUsername = false;
|
|
23
|
+
this.form = this.initForm();
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
this.showUsername = this.types.includes('username');
|
|
27
|
+
this.form = this.initForm();
|
|
28
|
+
}
|
|
29
|
+
initForm() {
|
|
30
|
+
return this.formBuilder.group({
|
|
31
|
+
username: [undefined, this.showUsername ? [Validators.required] : []],
|
|
32
|
+
password: [undefined, [Validators.required]]
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
cancel() {
|
|
36
|
+
this._reject();
|
|
37
|
+
}
|
|
38
|
+
save() {
|
|
39
|
+
this._resolve(this.form.value);
|
|
40
|
+
}
|
|
41
|
+
submit() {
|
|
42
|
+
if (!this.form.valid) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
this.modalRef.hide();
|
|
46
|
+
this.save();
|
|
47
|
+
}
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: VncCredentialsPromptComponent, deps: [{ token: i1.FormBuilder }, { token: i2.BsModalRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: VncCredentialsPromptComponent, isStandalone: true, selector: "c8y-vnc-credentials-prompt", inputs: { types: "types" }, ngImport: i0, template: "<c8y-modal\n [title]=\"title\"\n [headerClasses]=\"'dialog-header'\"\n (onDismiss)=\"cancel()\"\n (onClose)=\"save()\"\n [disabled]=\"form.invalid\"\n [labels]=\"{ cancel: 'Cancel', ok: 'Save' }\"\n>\n <ng-container c8y-modal-title>\n <span [c8yIcon]=\"'key'\"></span>\n </ng-container>\n <form\n class=\"p-24\"\n [formGroup]=\"form\"\n (submit)=\"submit()\"\n >\n <c8y-form-group *ngIf=\"showUsername\">\n <label\n for=\"username\"\n translate\n >\n Username\n </label>\n <input\n class=\"form-control\"\n id=\"username\"\n name=\"username\"\n type=\"text\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'admin' }\"\n formControlName=\"username\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label\n for=\"password\"\n translate\n >\n Password\n </label>\n <input\n class=\"form-control\"\n id=\"password\"\n name=\"password\"\n type=\"password\"\n formControlName=\"password\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <button type=\"submit\" class=\"hidden\">hidden submit</button>\n </form>\n</c8y-modal>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i3.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i3.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: i3.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
50
|
+
}
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: VncCredentialsPromptComponent, decorators: [{
|
|
52
|
+
type: Component,
|
|
53
|
+
args: [{ selector: 'c8y-vnc-credentials-prompt', standalone: true, imports: [CoreModule, NgIf], template: "<c8y-modal\n [title]=\"title\"\n [headerClasses]=\"'dialog-header'\"\n (onDismiss)=\"cancel()\"\n (onClose)=\"save()\"\n [disabled]=\"form.invalid\"\n [labels]=\"{ cancel: 'Cancel', ok: 'Save' }\"\n>\n <ng-container c8y-modal-title>\n <span [c8yIcon]=\"'key'\"></span>\n </ng-container>\n <form\n class=\"p-24\"\n [formGroup]=\"form\"\n (submit)=\"submit()\"\n >\n <c8y-form-group *ngIf=\"showUsername\">\n <label\n for=\"username\"\n translate\n >\n Username\n </label>\n <input\n class=\"form-control\"\n id=\"username\"\n name=\"username\"\n type=\"text\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'admin' }\"\n formControlName=\"username\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label\n for=\"password\"\n translate\n >\n Password\n </label>\n <input\n class=\"form-control\"\n id=\"password\"\n name=\"password\"\n type=\"password\"\n formControlName=\"password\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <button type=\"submit\" class=\"hidden\">hidden submit</button>\n </form>\n</c8y-modal>\n" }]
|
|
54
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.BsModalRef }], propDecorators: { types: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}] } });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm5jLWNyZWRlbnRpYWxzLXByb21wdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3ZuYy92bmMtdmlld2VyL3ZuYy1jcmVkZW50aWFscy1wcm9tcHQvdm5jLWNyZWRlbnRpYWxzLXByb21wdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3ZuYy92bmMtdmlld2VyL3ZuYy1jcmVkZW50aWFscy1wcm9tcHQvdm5jLWNyZWRlbnRpYWxzLXByb21wdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBUWpELE1BQU0sT0FBTyw2QkFBNkI7SUFleEMsWUFDVSxXQUF3QixFQUN4QixRQUFvQjtRQURwQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBaEI5QixVQUFLLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUIsVUFBSyxHQUFrQyxFQUFFLENBQUM7UUFDbkQsV0FBTSxHQUFHLElBQUksT0FBTyxDQUE0QyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNsRixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUVILGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBV25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDNUIsUUFBUSxFQUFFLENBQUMsU0FBbUIsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQy9FLFFBQVEsRUFBRSxDQUFDLFNBQW1CLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQzs4R0FoRFUsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsa0hDZDFDLHF4Q0FzREEsMkNEMUNZLFVBQVU7OzJGQUVULDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDRSw0QkFBNEIsY0FFMUIsSUFBSSxXQUNQLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQzt5R0FJbEIsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZ2V0dGV4dCc7XG5pbXBvcnQgdHlwZSB7IE5vVm5jQ3JlZGVudGlhbHMgfSBmcm9tICdAbm92bmMvbm92bmMvbGliL3JmYic7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS12bmMtY3JlZGVudGlhbHMtcHJvbXB0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZuYy1jcmVkZW50aWFscy1wcm9tcHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgTmdJZl1cbn0pXG5leHBvcnQgY2xhc3MgVm5jQ3JlZGVudGlhbHNQcm9tcHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICB0aXRsZSA9IGdldHRleHQoJ1ZOQyBjcmVkZW50aWFscycpO1xuICBASW5wdXQoKSB0eXBlczogQXJyYXk8a2V5b2YgTm9WbmNDcmVkZW50aWFscz4gPSBbXTtcbiAgcmVzdWx0ID0gbmV3IFByb21pc2U8UmV0dXJuVHlwZTx0eXBlb2YgdGhpcy5pbml0Rm9ybT5bJ3ZhbHVlJ10+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB0aGlzLl9yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICB0aGlzLl9yZWplY3QgPSByZWplY3Q7XG4gIH0pO1xuICBzZWxlY3RlZFR5cGU6IHN0cmluZztcbiAgc2hvd1VzZXJuYW1lID0gZmFsc2U7XG5cbiAgZm9ybTogUmV0dXJuVHlwZTx0eXBlb2YgdGhpcy5pbml0Rm9ybT47XG5cbiAgcHJpdmF0ZSBfcmVzb2x2ZTogKHZhbHVlOiBSZXR1cm5UeXBlPHR5cGVvZiB0aGlzLmluaXRGb3JtPlsndmFsdWUnXSkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBfcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgbW9kYWxSZWY6IEJzTW9kYWxSZWZcbiAgKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zaG93VXNlcm5hbWUgPSB0aGlzLnR5cGVzLmluY2x1ZGVzKCd1c2VybmFtZScpO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuaW5pdEZvcm0oKTtcbiAgfVxuXG4gIGluaXRGb3JtKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHVzZXJuYW1lOiBbdW5kZWZpbmVkIGFzIHN0cmluZywgdGhpcy5zaG93VXNlcm5hbWUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXV0sXG4gICAgICBwYXNzd29yZDogW3VuZGVmaW5lZCBhcyBzdHJpbmcsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLl9yZWplY3QoKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5fcmVzb2x2ZSh0aGlzLmZvcm0udmFsdWUpO1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubW9kYWxSZWYuaGlkZSgpO1xuICAgIHRoaXMuc2F2ZSgpO1xuICB9XG59XG4iLCI8Yzh5LW1vZGFsXG4gIFt0aXRsZV09XCJ0aXRsZVwiXG4gIFtoZWFkZXJDbGFzc2VzXT1cIidkaWFsb2ctaGVhZGVyJ1wiXG4gIChvbkRpc21pc3MpPVwiY2FuY2VsKClcIlxuICAob25DbG9zZSk9XCJzYXZlKClcIlxuICBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCJcbiAgW2xhYmVsc109XCJ7IGNhbmNlbDogJ0NhbmNlbCcsIG9rOiAnU2F2ZScgfVwiXG4+XG4gIDxuZy1jb250YWluZXIgYzh5LW1vZGFsLXRpdGxlPlxuICAgIDxzcGFuIFtjOHlJY29uXT1cIidrZXknXCI+PC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGZvcm1cbiAgICBjbGFzcz1cInAtMjRcIlxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgKHN1Ym1pdCk9XCJzdWJtaXQoKVwiXG4gID5cbiAgICA8Yzh5LWZvcm0tZ3JvdXAgKm5nSWY9XCJzaG93VXNlcm5hbWVcIj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBmb3I9XCJ1c2VybmFtZVwiXG4gICAgICAgIHRyYW5zbGF0ZVxuICAgICAgPlxuICAgICAgICBVc2VybmFtZVxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIGlkPVwidXNlcm5hbWVcIlxuICAgICAgICBuYW1lPVwidXNlcm5hbWVcIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAnYWRtaW4nIH1cIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2VybmFtZVwiXG4gICAgICAvPlxuICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICA8L2M4eS1mb3JtLWdyb3VwPlxuXG4gICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgPGxhYmVsXG4gICAgICAgIGZvcj1cInBhc3N3b3JkXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIFBhc3N3b3JkXG4gICAgICA8L2xhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgaWQ9XCJwYXNzd29yZFwiXG4gICAgICAgIG5hbWU9XCJwYXNzd29yZFwiXG4gICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcbiAgICAgIC8+XG4gICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImhpZGRlblwiPmhpZGRlbiBzdWJtaXQ8L2J1dHRvbj5cbiAgPC9mb3JtPlxuPC9jOHktbW9kYWw+XG4iXX0=
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { ActionBarItemComponent, C8yTranslateDirective, C8yTranslatePipe, IconDirective, LoadingComponent, TitleComponent } from '@c8y/ngx-components';
|
|
3
|
+
import { gettext } from '@c8y/ngx-components';
|
|
4
|
+
import { RemoteAccessService } from '@c8y/ngx-components/remote-access/data';
|
|
5
|
+
import { ActivatedRoute } from '@angular/router';
|
|
6
|
+
import { NgClass, NgIf } from '@angular/common';
|
|
7
|
+
import { saveAs } from 'file-saver';
|
|
8
|
+
import { BsModalService } from 'ngx-bootstrap/modal';
|
|
9
|
+
import { VncCredentialsPromptComponent } from './vnc-credentials-prompt/vnc-credentials-prompt.component';
|
|
10
|
+
import { BehaviorSubject, combineLatest, defer } from 'rxjs';
|
|
11
|
+
import { distinctUntilChanged, filter, map } from 'rxjs/operators';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@c8y/ngx-components/remote-access/data";
|
|
14
|
+
import * as i2 from "@angular/router";
|
|
15
|
+
import * as i3 from "ngx-bootstrap/modal";
|
|
16
|
+
export class VncViewerComponent {
|
|
17
|
+
constructor(remoteAccess, activatedRoute, modalService) {
|
|
18
|
+
this.remoteAccess = remoteAccess;
|
|
19
|
+
this.activatedRoute = activatedRoute;
|
|
20
|
+
this.modalService = modalService;
|
|
21
|
+
this.titlePrefix = gettext('VNC viewer');
|
|
22
|
+
this.title = '';
|
|
23
|
+
this.container = null;
|
|
24
|
+
this.powerCapability = false;
|
|
25
|
+
this.status = 'connecting';
|
|
26
|
+
this.container$ = new BehaviorSubject(null);
|
|
27
|
+
const container$ = this.container$.pipe(filter(Boolean));
|
|
28
|
+
const configurationId$ = this.activatedRoute.params.pipe(map(params => params.configurationId), filter(Boolean), distinctUntilChanged());
|
|
29
|
+
const deviceId$ = this.activatedRoute.parent.params.pipe(map(params => params.id), filter(Boolean), distinctUntilChanged());
|
|
30
|
+
this.connectionSubscription = combineLatest([
|
|
31
|
+
container$,
|
|
32
|
+
deviceId$,
|
|
33
|
+
configurationId$,
|
|
34
|
+
defer(() => this.getNoVNCClient())
|
|
35
|
+
]).subscribe(([container, deviceId, configurationId, noVNC]) => {
|
|
36
|
+
this.disconnectFromOldSession();
|
|
37
|
+
this.connect(container, deviceId, configurationId, noVNC);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
ngOnDestroy() {
|
|
41
|
+
this.connectionSubscription?.unsubscribe();
|
|
42
|
+
this.disconnectFromOldSession();
|
|
43
|
+
}
|
|
44
|
+
ngAfterViewInit() {
|
|
45
|
+
this.container$.next(document.getElementById('vnc-screen'));
|
|
46
|
+
}
|
|
47
|
+
disconnectFromOldSession() {
|
|
48
|
+
this.powerCapability = false;
|
|
49
|
+
this.title = '';
|
|
50
|
+
if (!this.noVNCClient) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.noVNCClient.disconnect();
|
|
54
|
+
delete this.noVNCClient;
|
|
55
|
+
}
|
|
56
|
+
connect(container, deviceId, configId, noVNC) {
|
|
57
|
+
this.container = container;
|
|
58
|
+
this.changeStatus('connecting');
|
|
59
|
+
const options = {
|
|
60
|
+
wsProtocols: ['binary']
|
|
61
|
+
};
|
|
62
|
+
const uri = this.remoteAccess.getWebSocketUri(deviceId, configId);
|
|
63
|
+
this.noVNCClient = new noVNC(container, uri, options);
|
|
64
|
+
this.noVNCClient.resizeSession = true;
|
|
65
|
+
this.noVNCClient.scaleViewport = true;
|
|
66
|
+
this.noVNCClient.showDotCursor = true;
|
|
67
|
+
this.noVNCClient.viewOnly = false;
|
|
68
|
+
this.noVNCClient.qualityLevel = 6;
|
|
69
|
+
// need to set compressionLevel to something different than the default 2 as 2 seems to be causing issues..
|
|
70
|
+
this.noVNCClient.compressionLevel = 9;
|
|
71
|
+
this.noVNCClient.addEventListener('connect', _e => {
|
|
72
|
+
this.changeStatus('connected');
|
|
73
|
+
this.noVNCClient.focus();
|
|
74
|
+
});
|
|
75
|
+
this.noVNCClient.addEventListener('credentialsrequired', e => {
|
|
76
|
+
this.requestCredentials(e.detail.types);
|
|
77
|
+
});
|
|
78
|
+
this.noVNCClient.addEventListener('desktopname', e => {
|
|
79
|
+
this.title = e.detail.name;
|
|
80
|
+
});
|
|
81
|
+
this.noVNCClient.addEventListener('disconnect', () => {
|
|
82
|
+
this.changeStatus('disconnected');
|
|
83
|
+
});
|
|
84
|
+
this.noVNCClient.addEventListener('capabilities', e => {
|
|
85
|
+
this.powerCapability = e.detail.capabilities.power;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
downloadScreenshot() {
|
|
89
|
+
this.noVNCClient.toBlob(blob => {
|
|
90
|
+
const date = new Date().toISOString();
|
|
91
|
+
saveAs(blob, `screenshot-${this.title}-${date}.png`);
|
|
92
|
+
}, 'image/png', 1);
|
|
93
|
+
}
|
|
94
|
+
changeStatus(status) {
|
|
95
|
+
this.status = status;
|
|
96
|
+
}
|
|
97
|
+
toggleFullscreen() {
|
|
98
|
+
if (document.fullscreenElement) {
|
|
99
|
+
document.exitFullscreen();
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
this.container.requestFullscreen();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
sendCtrlAltDel() {
|
|
106
|
+
this.noVNCClient.sendCtrlAltDel();
|
|
107
|
+
}
|
|
108
|
+
sendShutDown() {
|
|
109
|
+
this.noVNCClient.machineShutdown();
|
|
110
|
+
}
|
|
111
|
+
sendReset() {
|
|
112
|
+
this.noVNCClient.machineReset();
|
|
113
|
+
}
|
|
114
|
+
sendReboot() {
|
|
115
|
+
this.noVNCClient.machineReboot();
|
|
116
|
+
}
|
|
117
|
+
async getNoVNCClient() {
|
|
118
|
+
const lib = await import('@novnc/novnc/lib/rfb');
|
|
119
|
+
if (typeof lib.default === 'function') {
|
|
120
|
+
return lib.default;
|
|
121
|
+
}
|
|
122
|
+
const libDefault = lib.default;
|
|
123
|
+
if (typeof libDefault.default === 'function') {
|
|
124
|
+
return libDefault.default;
|
|
125
|
+
}
|
|
126
|
+
throw new Error('NoVNC library not found');
|
|
127
|
+
}
|
|
128
|
+
async requestCredentials(types) {
|
|
129
|
+
const modalRef = this.modalService.show(VncCredentialsPromptComponent, {
|
|
130
|
+
ignoreBackdropClick: true,
|
|
131
|
+
keyboard: false,
|
|
132
|
+
initialState: { types: types }
|
|
133
|
+
});
|
|
134
|
+
try {
|
|
135
|
+
const { username, password } = await modalRef.content.result;
|
|
136
|
+
this.noVNCClient.sendCredentials({ username, password, target: undefined });
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
this.noVNCClient.disconnect();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: VncViewerComponent, deps: [{ token: i1.RemoteAccessService }, { token: i2.ActivatedRoute }, { token: i3.BsModalService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
143
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: VncViewerComponent, isStandalone: true, selector: "c8y-vnc-viewer", ngImport: i0, template: "<c8y-title>{{ titlePrefix | translate }}: {{ title | translate }}</c8y-title>\n\n<ng-container *ngIf=\"status === 'connected'\">\n <c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n (click)=\"toggleFullscreen()\"\n >\n <i [c8yIcon]=\"'expand'\"></i>\n <span translate>Fullscreen</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n (click)=\"downloadScreenshot()\"\n >\n <i [c8yIcon]=\"'download'\"></i>\n <span translate>Screenshot</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item [placement]=\"'more'\">\n <button\n class=\"btn btn-link\"\n (click)=\"sendCtrlAltDel()\"\n >\n <i [c8yIcon]=\"'keyboard'\"></i>\n <span translate>Send Ctrl+Alt+Del</span>\n </button>\n </c8y-action-bar-item>\n</ng-container>\n\n<ng-container *ngIf=\"powerCapability && status === 'connected'\">\n <c8y-action-bar-item [placement]=\"'more'\">\n <button\n class=\"btn btn-link\"\n (click)=\"sendShutDown()\"\n >\n <i [c8yIcon]=\"'shutdown'\"></i>\n <span translate>Shutdown</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item [placement]=\"'more'\">\n <button\n class=\"btn btn-link\"\n (click)=\"sendReboot()\"\n >\n <i [c8yIcon]=\"'reset'\"></i>\n <span translate>Reboot</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item [placement]=\"'more'\">\n <button\n class=\"btn btn-link\"\n (click)=\"sendReset()\"\n >\n <i [c8yIcon]=\"'reset'\"></i>\n <span translate>Reset</span>\n </button>\n </c8y-action-bar-item>\n</ng-container>\n\n<c8y-loading *ngIf=\"status === 'connecting'\"></c8y-loading>\n\n<div\n class=\"content-fullpage\"\n [ngClass]=\"{ hidden: status !== 'connected' }\"\n>\n <div\n class=\"inner-scroll\"\n id=\"vnc-screen\"\n ></div>\n</div>\n", dependencies: [{ kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }] }); }
|
|
144
|
+
}
|
|
145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: VncViewerComponent, decorators: [{
|
|
146
|
+
type: Component,
|
|
147
|
+
args: [{ selector: 'c8y-vnc-viewer', standalone: true, imports: [
|
|
148
|
+
C8yTranslatePipe,
|
|
149
|
+
TitleComponent,
|
|
150
|
+
ActionBarItemComponent,
|
|
151
|
+
C8yTranslateDirective,
|
|
152
|
+
IconDirective,
|
|
153
|
+
NgIf,
|
|
154
|
+
NgClass,
|
|
155
|
+
LoadingComponent
|
|
156
|
+
], template: "<c8y-title>{{ titlePrefix | translate }}: {{ title | translate }}</c8y-title>\n\n<ng-container *ngIf=\"status === 'connected'\">\n <c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n (click)=\"toggleFullscreen()\"\n >\n <i [c8yIcon]=\"'expand'\"></i>\n <span translate>Fullscreen</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n (click)=\"downloadScreenshot()\"\n >\n <i [c8yIcon]=\"'download'\"></i>\n <span translate>Screenshot</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item [placement]=\"'more'\">\n <button\n class=\"btn btn-link\"\n (click)=\"sendCtrlAltDel()\"\n >\n <i [c8yIcon]=\"'keyboard'\"></i>\n <span translate>Send Ctrl+Alt+Del</span>\n </button>\n </c8y-action-bar-item>\n</ng-container>\n\n<ng-container *ngIf=\"powerCapability && status === 'connected'\">\n <c8y-action-bar-item [placement]=\"'more'\">\n <button\n class=\"btn btn-link\"\n (click)=\"sendShutDown()\"\n >\n <i [c8yIcon]=\"'shutdown'\"></i>\n <span translate>Shutdown</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item [placement]=\"'more'\">\n <button\n class=\"btn btn-link\"\n (click)=\"sendReboot()\"\n >\n <i [c8yIcon]=\"'reset'\"></i>\n <span translate>Reboot</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item [placement]=\"'more'\">\n <button\n class=\"btn btn-link\"\n (click)=\"sendReset()\"\n >\n <i [c8yIcon]=\"'reset'\"></i>\n <span translate>Reset</span>\n </button>\n </c8y-action-bar-item>\n</ng-container>\n\n<c8y-loading *ngIf=\"status === 'connecting'\"></c8y-loading>\n\n<div\n class=\"content-fullpage\"\n [ngClass]=\"{ hidden: status !== 'connected' }\"\n>\n <div\n class=\"inner-scroll\"\n id=\"vnc-screen\"\n ></div>\n</div>\n" }]
|
|
157
|
+
}], ctorParameters: () => [{ type: i1.RemoteAccessService }, { type: i2.ActivatedRoute }, { type: i3.BsModalService }] });
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm5jLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3ZuYy92bmMtdmlld2VyL3ZuYy12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcmVtb3RlLWFjY2Vzcy92bmMvdm5jLXZpZXdlci92bmMtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBaUJuRSxNQUFNLE9BQU8sa0JBQWtCO0lBWTdCLFlBQ1UsWUFBaUMsRUFDakMsY0FBOEIsRUFDOUIsWUFBNEI7UUFGNUIs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SixPQUFPLG9GQUNQLGdCQUFnQjs7MkZBR1Asa0JBQWtCO2tCQWY5QixTQUFTOytCQUNFLGdCQUFnQixjQUVkLElBQUksV0FDUDt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2Qsc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IsSUFBSTt3QkFDSixPQUFPO3dCQUNQLGdCQUFnQjtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQmFySXRlbUNvbXBvbmVudCxcbiAgQzh5VHJhbnNsYXRlRGlyZWN0aXZlLFxuICBDOHlUcmFuc2xhdGVQaXBlLFxuICBJY29uRGlyZWN0aXZlLFxuICBMb2FkaW5nQ29tcG9uZW50LFxuICBUaXRsZUNvbXBvbmVudFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTm9WbmNDcmVkZW50aWFscywgTm9WbmNPcHRpb25zLCBkZWZhdWx0IGFzIE5vVm5jQ2xpZW50IH0gZnJvbSAnQG5vdm5jL25vdm5jL2xpYi9yZmInO1xuaW1wb3J0IHsgUmVtb3RlQWNjZXNzU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcmVtb3RlLWFjY2Vzcy9kYXRhJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgVm5jQ3JlZGVudGlhbHNQcm9tcHRDb21wb25lbnQgfSBmcm9tICcuL3ZuYy1jcmVkZW50aWFscy1wcm9tcHQvdm5jLWNyZWRlbnRpYWxzLXByb21wdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBkZWZlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS12bmMtdmlld2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZuYy12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQzh5VHJhbnNsYXRlUGlwZSxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBBY3Rpb25CYXJJdGVtQ29tcG9uZW50LFxuICAgIEM4eVRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgICBJY29uRGlyZWN0aXZlLFxuICAgIE5nSWYsXG4gICAgTmdDbGFzcyxcbiAgICBMb2FkaW5nQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVm5jVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgdGl0bGVQcmVmaXggPSBnZXR0ZXh0KCdWTkMgdmlld2VyJyk7XG4gIHRpdGxlID0gJyc7XG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgbm9WTkNDbGllbnQ6IE5vVm5jQ2xpZW50O1xuICBwb3dlckNhcGFiaWxpdHkgPSBmYWxzZTtcblxuICBzdGF0dXM6ICdjb25uZWN0aW5nJyB8ICdjb25uZWN0ZWQnIHwgJ2Rpc2Nvbm5lY3RlZCcgPSAnY29ubmVjdGluZyc7XG4gIGNvbnRhaW5lciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgY29ubmVjdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVtb3RlQWNjZXNzOiBSZW1vdGVBY2Nlc3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZVxuICApIHtcbiAgICBjb25zdCBjb250YWluZXIkID0gdGhpcy5jb250YWluZXIkLnBpcGUoZmlsdGVyKEJvb2xlYW4pKTtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uSWQkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbXMucGlwZShcbiAgICAgIG1hcChwYXJhbXMgPT4gcGFyYW1zLmNvbmZpZ3VyYXRpb25JZCksXG4gICAgICBmaWx0ZXIoQm9vbGVhbiksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcbiAgICBjb25zdCBkZXZpY2VJZCQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmVudC5wYXJhbXMucGlwZShcbiAgICAgIG1hcChwYXJhbXMgPT4gcGFyYW1zLmlkKSxcbiAgICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuXG4gICAgdGhpcy5jb25uZWN0aW9uU3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXG4gICAgICBjb250YWluZXIkLFxuICAgICAgZGV2aWNlSWQkLFxuICAgICAgY29uZmlndXJhdGlvbklkJCxcbiAgICAgIGRlZmVyKCgpID0+IHRoaXMuZ2V0Tm9WTkNDbGllbnQoKSlcbiAgICBdKS5zdWJzY3JpYmUoKFtjb250YWluZXIsIGRldmljZUlkLCBjb25maWd1cmF0aW9uSWQsIG5vVk5DXSkgPT4ge1xuICAgICAgdGhpcy5kaXNjb25uZWN0RnJvbU9sZFNlc3Npb24oKTtcbiAgICAgIHRoaXMuY29ubmVjdChjb250YWluZXIsIGRldmljZUlkLCBjb25maWd1cmF0aW9uSWQsIG5vVk5DKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29ubmVjdGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmRpc2Nvbm5lY3RGcm9tT2xkU2Vzc2lvbigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGFpbmVyJC5uZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2bmMtc2NyZWVuJykpO1xuICB9XG5cbiAgZGlzY29ubmVjdEZyb21PbGRTZXNzaW9uKCkge1xuICAgIHRoaXMucG93ZXJDYXBhYmlsaXR5ID0gZmFsc2U7XG4gICAgdGhpcy50aXRsZSA9ICcnO1xuICAgIGlmICghdGhpcy5ub1ZOQ0NsaWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubm9WTkNDbGllbnQuZGlzY29ubmVjdCgpO1xuICAgIGRlbGV0ZSB0aGlzLm5vVk5DQ2xpZW50O1xuICB9XG5cbiAgY29ubmVjdChjb250YWluZXI6IEhUTUxFbGVtZW50LCBkZXZpY2VJZDogc3RyaW5nLCBjb25maWdJZDogc3RyaW5nLCBub1ZOQzogdHlwZW9mIE5vVm5jQ2xpZW50KSB7XG4gICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgdGhpcy5jaGFuZ2VTdGF0dXMoJ2Nvbm5lY3RpbmcnKTtcbiAgICBjb25zdCBvcHRpb25zOiBOb1ZuY09wdGlvbnMgPSB7XG4gICAgICB3c1Byb3RvY29sczogWydiaW5hcnknXVxuICAgIH07XG4gICAgY29uc3QgdXJpID0gdGhpcy5yZW1vdGVBY2Nlc3MuZ2V0V2ViU29ja2V0VXJpKGRldmljZUlkLCBjb25maWdJZCk7XG4gICAgdGhpcy5ub1ZOQ0NsaWVudCA9IG5ldyBub1ZOQyhjb250YWluZXIsIHVyaSwgb3B0aW9ucyk7XG4gICAgdGhpcy5ub1ZOQ0NsaWVudC5yZXNpemVTZXNzaW9uID0gdHJ1ZTtcbiAgICB0aGlzLm5vVk5DQ2xpZW50LnNjYWxlVmlld3BvcnQgPSB0cnVlO1xuICAgIHRoaXMubm9WTkNDbGllbnQuc2hvd0RvdEN1cnNvciA9IHRydWU7XG4gICAgdGhpcy5ub1ZOQ0NsaWVudC52aWV3T25seSA9IGZhbHNlO1xuICAgIHRoaXMubm9WTkNDbGllbnQucXVhbGl0eUxldmVsID0gNjtcbiAgICAvLyBuZWVkIHRvIHNldCBjb21wcmVzc2lvbkxldmVsIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgdGhhbiB0aGUgZGVmYXVsdCAyIGFzIDIgc2VlbXMgdG8gYmUgY2F1c2luZyBpc3N1ZXMuLlxuICAgIHRoaXMubm9WTkNDbGllbnQuY29tcHJlc3Npb25MZXZlbCA9IDk7XG4gICAgdGhpcy5ub1ZOQ0NsaWVudC5hZGRFdmVudExpc3RlbmVyKCdjb25uZWN0JywgX2UgPT4ge1xuICAgICAgdGhpcy5jaGFuZ2VTdGF0dXMoJ2Nvbm5lY3RlZCcpO1xuICAgICAgdGhpcy5ub1ZOQ0NsaWVudC5mb2N1cygpO1xuICAgIH0pO1xuICAgIHRoaXMubm9WTkNDbGllbnQuYWRkRXZlbnRMaXN0ZW5lcignY3JlZGVudGlhbHNyZXF1aXJlZCcsIGUgPT4ge1xuICAgICAgdGhpcy5yZXF1ZXN0Q3JlZGVudGlhbHMoZS5kZXRhaWwudHlwZXMpO1xuICAgIH0pO1xuICAgIHRoaXMubm9WTkNDbGllbnQuYWRkRXZlbnRMaXN0ZW5lcignZGVza3RvcG5hbWUnLCBlID0+IHtcbiAgICAgIHRoaXMudGl0bGUgPSBlLmRldGFpbC5uYW1lO1xuICAgIH0pO1xuICAgIHRoaXMubm9WTkNDbGllbnQuYWRkRXZlbnRMaXN0ZW5lcignZGlzY29ubmVjdCcsICgpID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKCdkaXNjb25uZWN0ZWQnKTtcbiAgICB9KTtcbiAgICB0aGlzLm5vVk5DQ2xpZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NhcGFiaWxpdGllcycsIGUgPT4ge1xuICAgICAgdGhpcy5wb3dlckNhcGFiaWxpdHkgPSBlLmRldGFpbC5jYXBhYmlsaXRpZXMucG93ZXI7XG4gICAgfSk7XG4gIH1cblxuICBkb3dubG9hZFNjcmVlbnNob3QoKSB7XG4gICAgdGhpcy5ub1ZOQ0NsaWVudC50b0Jsb2IoXG4gICAgICBibG9iID0+IHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgc2F2ZUFzKGJsb2IsIGBzY3JlZW5zaG90LSR7dGhpcy50aXRsZX0tJHtkYXRlfS5wbmdgKTtcbiAgICAgIH0sXG4gICAgICAnaW1hZ2UvcG5nJyxcbiAgICAgIDFcbiAgICApO1xuICB9XG5cbiAgY2hhbmdlU3RhdHVzKHN0YXR1czogJ2Nvbm5lY3RpbmcnIHwgJ2Nvbm5lY3RlZCcgfCAnZGlzY29ubmVjdGVkJykge1xuICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xuICB9XG5cbiAgdG9nZ2xlRnVsbHNjcmVlbigpIHtcbiAgICBpZiAoZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQpIHtcbiAgICAgIGRvY3VtZW50LmV4aXRGdWxsc2NyZWVuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udGFpbmVyLnJlcXVlc3RGdWxsc2NyZWVuKCk7XG4gICAgfVxuICB9XG5cbiAgc2VuZEN0cmxBbHREZWwoKSB7XG4gICAgdGhpcy5ub1ZOQ0NsaWVudC5zZW5kQ3RybEFsdERlbCgpO1xuICB9XG5cbiAgc2VuZFNodXREb3duKCkge1xuICAgIHRoaXMubm9WTkNDbGllbnQubWFjaGluZVNodXRkb3duKCk7XG4gIH1cblxuICBzZW5kUmVzZXQoKSB7XG4gICAgdGhpcy5ub1ZOQ0NsaWVudC5tYWNoaW5lUmVzZXQoKTtcbiAgfVxuXG4gIHNlbmRSZWJvb3QoKSB7XG4gICAgdGhpcy5ub1ZOQ0NsaWVudC5tYWNoaW5lUmVib290KCk7XG4gIH1cblxuICBhc3luYyBnZXROb1ZOQ0NsaWVudCgpOiBQcm9taXNlPHR5cGVvZiBOb1ZuY0NsaWVudD4ge1xuICAgIGNvbnN0IGxpYiA9IGF3YWl0IGltcG9ydCgnQG5vdm5jL25vdm5jL2xpYi9yZmInKTtcbiAgICBpZiAodHlwZW9mIGxpYi5kZWZhdWx0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gbGliLmRlZmF1bHQ7XG4gICAgfVxuICAgIGNvbnN0IGxpYkRlZmF1bHQgPSBsaWIuZGVmYXVsdCBhcyB1bmtub3duIGFzIHsgZGVmYXVsdDogdHlwZW9mIE5vVm5jQ2xpZW50IH07XG4gICAgaWYgKHR5cGVvZiBsaWJEZWZhdWx0LmRlZmF1bHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBsaWJEZWZhdWx0LmRlZmF1bHQ7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb1ZOQyBsaWJyYXJ5IG5vdCBmb3VuZCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlcXVlc3RDcmVkZW50aWFscyh0eXBlczogQXJyYXk8a2V5b2YgTm9WbmNDcmVkZW50aWFscz4pIHtcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3coVm5jQ3JlZGVudGlhbHNQcm9tcHRDb21wb25lbnQsIHtcbiAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICBrZXlib2FyZDogZmFsc2UsXG4gICAgICBpbml0aWFsU3RhdGU6IHsgdHlwZXM6IHR5cGVzIH1cbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IHVzZXJuYW1lLCBwYXNzd29yZCB9ID0gYXdhaXQgbW9kYWxSZWYuY29udGVudC5yZXN1bHQ7XG4gICAgICB0aGlzLm5vVk5DQ2xpZW50LnNlbmRDcmVkZW50aWFscyh7IHVzZXJuYW1lLCBwYXNzd29yZCwgdGFyZ2V0OiB1bmRlZmluZWQgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5ub1ZOQ0NsaWVudC5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LXRpdGxlPnt7IHRpdGxlUHJlZml4IHwgdHJhbnNsYXRlIH19OiB7eyB0aXRsZSB8IHRyYW5zbGF0ZSB9fTwvYzh5LXRpdGxlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwic3RhdHVzID09PSAnY29ubmVjdGVkJ1wiPlxuICA8Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlRnVsbHNjcmVlbigpXCJcbiAgICA+XG4gICAgICA8aSBbYzh5SWNvbl09XCInZXhwYW5kJ1wiPjwvaT5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5GdWxsc2NyZWVuPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbiAgPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgICAgKGNsaWNrKT1cImRvd25sb2FkU2NyZWVuc2hvdCgpXCJcbiAgICA+XG4gICAgICA8aSBbYzh5SWNvbl09XCInZG93bmxvYWQnXCI+PC9pPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPlNjcmVlbnNob3Q8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuICA8Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidtb3JlJ1wiPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICAgIChjbGljayk9XCJzZW5kQ3RybEFsdERlbCgpXCJcbiAgICA+XG4gICAgICA8aSBbYzh5SWNvbl09XCIna2V5Ym9hcmQnXCI+PC9pPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPlNlbmQgQ3RybCtBbHQrRGVsPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInBvd2VyQ2FwYWJpbGl0eSAmJiBzdGF0dXMgPT09ICdjb25uZWN0ZWQnXCI+XG4gIDxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ21vcmUnXCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgICAgKGNsaWNrKT1cInNlbmRTaHV0RG93bigpXCJcbiAgICA+XG4gICAgICA8aSBbYzh5SWNvbl09XCInc2h1dGRvd24nXCI+PC9pPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPlNodXRkb3duPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbiAgPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCInbW9yZSdcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgICAoY2xpY2spPVwic2VuZFJlYm9vdCgpXCJcbiAgICA+XG4gICAgICA8aSBbYzh5SWNvbl09XCIncmVzZXQnXCI+PC9pPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPlJlYm9vdDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG4gIDxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ21vcmUnXCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgICAgKGNsaWNrKT1cInNlbmRSZXNldCgpXCJcbiAgICA+XG4gICAgICA8aSBbYzh5SWNvbl09XCIncmVzZXQnXCI+PC9pPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPlJlc2V0PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG48L25nLWNvbnRhaW5lcj5cblxuPGM4eS1sb2FkaW5nICpuZ0lmPVwic3RhdHVzID09PSAnY29ubmVjdGluZydcIj48L2M4eS1sb2FkaW5nPlxuXG48ZGl2XG4gIGNsYXNzPVwiY29udGVudC1mdWxscGFnZVwiXG4gIFtuZ0NsYXNzXT1cInsgaGlkZGVuOiBzdGF0dXMgIT09ICdjb25uZWN0ZWQnIH1cIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJpbm5lci1zY3JvbGxcIlxuICAgIGlkPVwidm5jLXNjcmVlblwiXG4gID48L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -38,4 +38,4 @@ export const REPLACE_DEVICE_STEP_STATES_MAP = {
|
|
|
38
38
|
styleClass: 'text-success'
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS1kZXZpY2Utd2l6YXJkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcmVwbGFjZS1kZXZpY2UvcmVwbGFjZS1kZXZpY2Utd2l6YXJkL3JlcGxhY2UtZGV2aWNlLXdpemFyZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUE4RTlDLE1BQU0sMEJBQTBCLEdBQVU7SUFDeEMsU0FBUztJQUNULFdBQVc7SUFDWCxTQUFTO0lBQ1QsUUFBUTtJQUNSLFlBQVk7Q0FDYixDQUFDO0FBR0YsTUFBTSxVQUFVLDZCQUE2QixDQUFDLEtBQWM7SUFDMUQsT0FBTywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsS0FBK0IsQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBOEM7SUFDbEYsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDM0IsU0FBUyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDL0IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDM0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDekIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUM7Q0FDbEMsQ0FBQztBQVdGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUErQjtJQUN4RSxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsU0FBUztRQUNmLFVBQVUsRUFBRSxXQUFXO0tBQ3hCO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLFNBQVM7UUFDZixVQUFVLEVBQUUsV0FBVztLQUN4QjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxNQUFNO1FBQ1osVUFBVSxFQUFFLFdBQVc7S0FDeEI7SUFDRCxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFVBQVUsRUFBRSxhQUFhO0tBQzFCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLGNBQWM7UUFDcEIsVUFBVSxFQUFFLGNBQWM7S0FDM0I7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUV4dGVybmFsSWRlbnRpdHksIElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgU3VwcG9ydGVkSWNvbnNTdWdnZXN0aW9ucyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvaWNvbi1zZWxlY3Rvci9pY29ucyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwbGFjZURldmljZUNvbnRleHQge1xuICBkZXZpY2VUb1JlcGxhY2U6IElNYW5hZ2VkT2JqZWN0O1xuICByZXBsYWNlbWVudERldmljZTogSU1hbmFnZWRPYmplY3Q7XG4gIHJlcGxhY2VtZW50RGV2aWNlSWQ6IHN0cmluZztcbiAgbmV3RXh0ZXJuYWxJZHM6IElFeHRlcm5hbElkZW50aXR5W107XG4gIG9sZEV4dGVybmFsSWRzOiBJRXh0ZXJuYWxJZGVudGl0eVtdO1xuICBkZWxldGVSZXBsYWNlZERldmljZU93bmVyOiBib29sZWFuO1xuICB0aW1lOiBzdHJpbmc7XG4gIHNraXA/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yIHtcbiAgdGV4dDogc3RyaW5nO1xuICBkZXRhaWxlZERhdGE/OlxuICAgIHwgc3RyaW5nXG4gICAgfCB7XG4gICAgICAgIHN0YXR1czogc3RyaW5nO1xuICAgICAgICBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gICAgICB9O1xufVxuXG4vKipcbiAqIERlY2xhcmVzIGFuIGV4ZWN1dGlvbiBzdGVwIGluIHRoZSBkZXZpY2UgcmVwbGFjZW1lbnQgZmxvdy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBsYWNlRGV2aWNlU3RlcCB7XG4gIC8qKlxuICAgKiBMYWJlbCB0byBiZSB1c2VkIGluIHRoZSByZXBsYWNlIGRldmljZSB3aXphcmQgVUkuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogU3RlcCBpbXBsZW1lbnRhdGlvbi5cbiAgICovXG4gIGFjdGlvbjogKGNvbnRleHQ6IFJlcGxhY2VEZXZpY2VDb250ZXh0KSA9PiBPYnNlcnZhYmxlPHVua25vd24+IHwgUHJvbWlzZTx1bmtub3duPjtcbiAgLyoqXG4gICAqIERlZmluZXMgaWYgdGhlIHJlc3VsdCBmcm9tIHN0ZXAgZXhlY3V0aW9uIHNob3VsZCBiZSBwYXNzZWQgdG8gdGhlIG5leHQgc3RlcCBpbiB0aGUgZmxvdy5cbiAgICovXG4gIG92ZXJyaWRlQ29udGV4dD86IGJvb2xlYW47XG4gIGluZm8/OiBTdGVwSW5mbztcbiAgLyoqXG4gICAqIEN1cnJlbnQgZXhlY3V0aW9uIHN0YXRlIG9mIHRoZSBzdGVwLlxuICAgKi9cbiAgc3RhdGU/OiBSZXBsYWNlRGV2aWNlU3RlcFN0YXRlO1xuICAvKipcbiAgICogRXJyb3Igb2NjdXJlZCBkdXJpbmcgc3RlcCBleGVjdXRpb24uXG4gICAqL1xuICBlcnJvcj86IEVycm9yO1xuICAvKipcbiAgICogIUludGVybmFsIHVzZSBvbmx5ISBGbGFnIHRvIHNraXAgc3RlcCBleGVjdXRpb24sIHVzZWQgdG8gY29udHJvbCByZXRyaWFsLlxuICAgKi9cbiAgc2tpcD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAhSW50ZXJuYWwgdXNlIG9ubHkhIFN0b3JlcyB0aGUgY29udGV4dCB0aGUgc3RlcCB3YXMgaW5pdGlhbGx5IGV4ZWN1dGVkIHdpdGguXG4gICAqL1xuICBjb250ZXh0PzogUmVwbGFjZURldmljZUNvbnRleHQ7XG4gIC8qKlxuICAgKiAhSW50ZXJuYWwgdXNlIG9ubHkhIENvbnRleHQgdG8gYmUgdXNlZCBmb3Igc3RlcCByZS10cmlhbC5cbiAgICovXG4gIHNlZWQ/OiBSZXBsYWNlRGV2aWNlQ29udGV4dDtcbn1cblxuLyoqXG4gKiBBbGxvd3MgdG8gZGlzcGxheSBhbiBpbmZvIHBvcG92ZXIgZm9yIGEgcGFydGljdWxhciBzdGVwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBJbmZvIHtcbiAgLyoqXG4gICAqIE1lc3NhZ2UgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBhcyBhIHBvcG92ZXIgZm9yIHRoZSBnaXZlbiBzdGVwLlxuICAgKi9cbiAgbXNnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgZXhlY3V0ZWRcbiAgICovXG4gIGdldE1lc3NhZ2U/OiAoY29udGV4dDogUmVwbGFjZURldmljZUNvbnRleHQsIHN0ZXA6IFJlcGxhY2VEZXZpY2VTdGVwKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IFJFUExBQ0VfREVWSUNFX1NURVBfU1RBVEVTID0gPGNvbnN0PltcbiAgJ1BlbmRpbmcnLFxuICAnRXhlY3V0aW5nJyxcbiAgJ1NraXBwZWQnLFxuICAnRmFpbGVkJyxcbiAgJ1N1Y2Nlc3NmdWwnXG5dO1xuZXhwb3J0IHR5cGUgUmVwbGFjZURldmljZVN0ZXBTdGF0ZSA9ICh0eXBlb2YgUkVQTEFDRV9ERVZJQ0VfU1RFUF9TVEFURVMpW251bWJlcl07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUmVwbGFjZURldmljZVN0ZXBTdGF0ZShzdGF0ZTogdW5rbm93bik6IHN0YXRlIGlzIFJlcGxhY2VEZXZpY2VTdGVwU3RhdGUge1xuICByZXR1cm4gUkVQTEFDRV9ERVZJQ0VfU1RFUF9TVEFURVMuaW5jbHVkZXMoc3RhdGUgYXMgUmVwbGFjZURldmljZVN0ZXBTdGF0ZSk7XG59XG5cbmV4cG9ydCBjb25zdCBSRVBMQUNFX0RFVklDRV9TVEVQX1NUQVRFOiB7IFtrZXk6IHN0cmluZ106IFJlcGxhY2VEZXZpY2VTdGVwU3RhdGUgfSA9IHtcbiAgUEVORElORzogZ2V0dGV4dCgnUGVuZGluZycpLFxuICBFWEVDVVRJTkc6IGdldHRleHQoJ0V4ZWN1dGluZycpLFxuICBTS0lQUEVEOiBnZXR0ZXh0KCdTa2lwcGVkJyksXG4gIEZBSUxFRDogZ2V0dGV4dCgnRmFpbGVkJyksXG4gIFNVQ0NFU1NGVUw6IGdldHRleHQoJ1N1Y2Nlc3NmdWwnKVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gIGljb24/OiBTdXBwb3J0ZWRJY29uc1N1Z2dlc3Rpb25zO1xuICBzdHlsZUNsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBSZXBsYWNlRGV2aWNlU3RlcFN0YXRlc01hcCA9IHtcbiAgW2tleSBpbiBSZXBsYWNlRGV2aWNlU3RlcFN0YXRlXT86IFN0YXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IFJFUExBQ0VfREVWSUNFX1NURVBfU1RBVEVTX01BUDogUmVwbGFjZURldmljZVN0ZXBTdGF0ZXNNYXAgPSB7XG4gIFBlbmRpbmc6IHtcbiAgICBpY29uOiAnY2xvY2stbycsXG4gICAgc3R5bGVDbGFzczogJ3RleHQtaW5mbydcbiAgfSxcbiAgRXhlY3V0aW5nOiB7XG4gICAgaWNvbjogJ3JlZnJlc2gnLFxuICAgIHN0eWxlQ2xhc3M6ICd0ZXh0LWluZm8nXG4gIH0sXG4gIFNraXBwZWQ6IHtcbiAgICBpY29uOiAnc2tpcCcsXG4gICAgc3R5bGVDbGFzczogJ3RleHQtaW5mbydcbiAgfSxcbiAgRmFpbGVkOiB7XG4gICAgaWNvbjogJ2V4Y2xhbWF0aW9uLWNpcmNsZScsXG4gICAgc3R5bGVDbGFzczogJ3RleHQtZGFuZ2VyJ1xuICB9LFxuICBTdWNjZXNzZnVsOiB7XG4gICAgaWNvbjogJ2NoZWNrLWNpcmNsZScsXG4gICAgc3R5bGVDbGFzczogJ3RleHQtc3VjY2VzcydcbiAgfVxufTtcbiJdfQ==
|