@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,200 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { FetchClient } from '@c8y/client';
|
|
3
|
+
import { ContextRouteService, Permissions, ServiceRegistry, ViewContext } from '@c8y/ngx-components';
|
|
4
|
+
import { gettext } from '@c8y/ngx-components/gettext';
|
|
5
|
+
import { defer, shareReplay } from 'rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@c8y/client";
|
|
8
|
+
import * as i2 from "@c8y/ngx-components";
|
|
9
|
+
export const CREDENTIALS_TYPES = {
|
|
10
|
+
NONE: {
|
|
11
|
+
name: 'NONE',
|
|
12
|
+
value: 'NONE',
|
|
13
|
+
label: gettext('No password')
|
|
14
|
+
},
|
|
15
|
+
USER_PASS: {
|
|
16
|
+
name: 'USER_PASS',
|
|
17
|
+
value: 'USER_PASS',
|
|
18
|
+
label: gettext('Username and password')
|
|
19
|
+
},
|
|
20
|
+
PASS_ONLY: {
|
|
21
|
+
name: 'PASS_ONLY',
|
|
22
|
+
value: 'PASS_ONLY',
|
|
23
|
+
label: gettext('Password only')
|
|
24
|
+
},
|
|
25
|
+
KEY_PAIR: {
|
|
26
|
+
name: 'KEY_PAIR',
|
|
27
|
+
value: 'KEY_PAIR',
|
|
28
|
+
label: gettext('Public/private keys')
|
|
29
|
+
},
|
|
30
|
+
CERTIFICATE: {
|
|
31
|
+
name: 'CERTIFICATE',
|
|
32
|
+
value: 'CERTIFICATE',
|
|
33
|
+
label: gettext('Certificate')
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
export const canActivateRemoteAccess = (route) => {
|
|
37
|
+
const permissions = inject(Permissions);
|
|
38
|
+
const remoteAccessService = inject(RemoteAccessService);
|
|
39
|
+
const contextRouteService = inject(ContextRouteService);
|
|
40
|
+
if (!permissions.hasRole(Permissions.ROLE_REMOTE_ACCESS_ADMIN)) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
const contextDetails = contextRouteService.getContextData(route);
|
|
44
|
+
if (contextDetails.context !== ViewContext.Device) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
const device = contextDetails.contextData;
|
|
48
|
+
if (!device || !Array.isArray(device.c8y_SupportedOperations)) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
const supportedOperations = device.c8y_SupportedOperations;
|
|
52
|
+
if (!supportedOperations.includes('c8y_RemoteAccessConnect')) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
return remoteAccessService.isAvailable$();
|
|
56
|
+
};
|
|
57
|
+
export class RemoteAccessService {
|
|
58
|
+
constructor(fetchClient, serviceRegistry) {
|
|
59
|
+
this.fetchClient = fetchClient;
|
|
60
|
+
this.serviceRegistry = serviceRegistry;
|
|
61
|
+
this.baseUrl = '/service/remoteaccess';
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Verifies if the remote access service is available by sending a HEAD request to is's health endpoint.
|
|
65
|
+
* @returns cached Observable that emits true if the service is available, false otherwise.
|
|
66
|
+
*/
|
|
67
|
+
isAvailable$() {
|
|
68
|
+
if (!this.cachedIsAvailable$) {
|
|
69
|
+
this.cachedIsAvailable$ = defer(() => this.healthEndpointAvailable()).pipe(shareReplay(1));
|
|
70
|
+
}
|
|
71
|
+
return this.cachedIsAvailable$;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* misses the leading ? for the query params
|
|
75
|
+
*/
|
|
76
|
+
getAuthQueryParamsForWebsocketConnection() {
|
|
77
|
+
const { headers } = this.fetchClient.getFetchOptions();
|
|
78
|
+
const params = new URLSearchParams();
|
|
79
|
+
if (headers) {
|
|
80
|
+
const xsrfToken = headers['X-XSRF-TOKEN'];
|
|
81
|
+
const auth = headers['Authorization'];
|
|
82
|
+
if (xsrfToken) {
|
|
83
|
+
params.append('XSRF-TOKEN', xsrfToken);
|
|
84
|
+
}
|
|
85
|
+
if (auth) {
|
|
86
|
+
params.append('token', auth.replace('Bearer ', '').replace('Basic ', ''));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const paramsString = params.toString();
|
|
90
|
+
return paramsString;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Returns the URI for the websocket connection to the remote access service.
|
|
94
|
+
*/
|
|
95
|
+
getWebSocketUri(deviceId, configurationId) {
|
|
96
|
+
const authQueryParams = this.getAuthQueryParamsForWebsocketConnection();
|
|
97
|
+
const protocol = window.location.protocol === 'http:' ? 'ws' : 'wss';
|
|
98
|
+
const pathName = `${protocol}://${window.location.host}${this.baseUrl}/client/${deviceId}/configurations/${configurationId}`;
|
|
99
|
+
return authQueryParams ? `${pathName}?${authQueryParams}` : pathName;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Retrieves all configurations for a given device.
|
|
103
|
+
*/
|
|
104
|
+
async listConfigurations(deviceId) {
|
|
105
|
+
const response = await this.fetchClient.fetch(`${this.baseUrl}/devices/${deviceId}/configurations`);
|
|
106
|
+
if (response.ok) {
|
|
107
|
+
return response.json();
|
|
108
|
+
}
|
|
109
|
+
throw new Error(`Failed to fetch configurations for device ${deviceId}`);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Deletes a configuration for a given device.
|
|
113
|
+
*/
|
|
114
|
+
async deleteConfiguration(deviceId, configurationId) {
|
|
115
|
+
const response = await this.fetchClient.fetch(`${this.baseUrl}/devices/${deviceId}/configurations/${configurationId}`, { method: 'DELETE' });
|
|
116
|
+
if (response.ok) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
throw new Error(`Failed to delete configuration for device ${deviceId}`);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Retrieves all available remote access protocol providers.
|
|
123
|
+
*/
|
|
124
|
+
getProtocolProviders() {
|
|
125
|
+
return this.serviceRegistry.get('remoteAccessProtocolHook');
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Creates a new configuration for a given device.
|
|
129
|
+
*/
|
|
130
|
+
async addConfiguration(deviceId, configuration) {
|
|
131
|
+
const response = await this.fetchClient.fetch(`${this.baseUrl}/devices/${deviceId}/configurations`, {
|
|
132
|
+
method: 'POST',
|
|
133
|
+
headers: {
|
|
134
|
+
'Content-Type': 'application/json'
|
|
135
|
+
},
|
|
136
|
+
body: JSON.stringify(configuration)
|
|
137
|
+
});
|
|
138
|
+
if (response.ok) {
|
|
139
|
+
return response.json();
|
|
140
|
+
}
|
|
141
|
+
throw new Error(`Failed to add configuration for device ${configuration.attrs.deviceId}`);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Updates a configuration for a given device.
|
|
145
|
+
*/
|
|
146
|
+
async updateConfiguration(deviceId, configuration) {
|
|
147
|
+
const response = await this.fetchClient.fetch(`${this.baseUrl}/devices/${deviceId}/configurations/${configuration.id}`, {
|
|
148
|
+
method: 'PUT',
|
|
149
|
+
headers: {
|
|
150
|
+
'Content-Type': 'application/json'
|
|
151
|
+
},
|
|
152
|
+
body: JSON.stringify(configuration)
|
|
153
|
+
});
|
|
154
|
+
if (response.ok) {
|
|
155
|
+
return response.json();
|
|
156
|
+
}
|
|
157
|
+
throw new Error(`Failed to update configuration for device ${configuration.attrs.deviceId}`);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Generates a SSH key pair for a given hostname.
|
|
161
|
+
*/
|
|
162
|
+
async generateKeyPair(hostname) {
|
|
163
|
+
const response = await this.fetchClient.fetch(`${this.baseUrl}/keypair/generate`, {
|
|
164
|
+
method: 'POST',
|
|
165
|
+
headers: {
|
|
166
|
+
'Content-Type': 'application/json'
|
|
167
|
+
},
|
|
168
|
+
body: JSON.stringify({ hostname })
|
|
169
|
+
});
|
|
170
|
+
if (response.ok) {
|
|
171
|
+
return response.json();
|
|
172
|
+
}
|
|
173
|
+
throw new Error(`Failed to generate key pair for ${hostname}`);
|
|
174
|
+
}
|
|
175
|
+
async healthEndpointAvailable() {
|
|
176
|
+
try {
|
|
177
|
+
const response = await this.fetchClient.fetch(`${this.baseUrl}/health`, {
|
|
178
|
+
method: 'HEAD',
|
|
179
|
+
headers: {
|
|
180
|
+
'Content-Type': 'application/json'
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
if (response.ok) {
|
|
184
|
+
return !!response.ok;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (e) {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RemoteAccessService, deps: [{ token: i1.FetchClient }, { token: i2.ServiceRegistry }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
192
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RemoteAccessService, providedIn: 'root' }); }
|
|
193
|
+
}
|
|
194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RemoteAccessService, decorators: [{
|
|
195
|
+
type: Injectable,
|
|
196
|
+
args: [{
|
|
197
|
+
providedIn: 'root'
|
|
198
|
+
}]
|
|
199
|
+
}], ctorParameters: () => [{ type: i1.FetchClient }, { type: i2.ServiceRegistry }] });
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWFjY2Vzcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcmVtb3RlLWFjY2Vzcy9kYXRhL3JlbW90ZS1hY2Nlc3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsV0FBVyxFQUFrQixNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFdBQVcsRUFDWCxlQUFlLEVBQ2YsV0FBVyxFQUNaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RELE9BQU8sRUFBYyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBYXRELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLE1BQU07UUFDYixLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztLQUM5QjtJQUNELFNBQVMsRUFBRTtRQUNULElBQUksRUFBRSxXQUFXO1FBQ2pCLEtBQUssRUFBRSxXQUFXO1FBQ2xCLEtBQUssRUFBRSxPQUFPLENBQUMsdUJBQXVCLENBQUM7S0FDeEM7SUFDRCxTQUFTLEVBQUU7UUFDVCxJQUFJLEVBQUUsV0FBVztRQUNqQixLQUFLLEVBQUUsV0FBVztRQUNsQixLQUFLLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQztLQUNoQztJQUNELFFBQVEsRUFBRTtRQUNSLElBQUksRUFBRSxVQUFVO1FBQ2hCLEtBQUssRUFBRSxVQUFVO1FBQ2pCLEtBQUssRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUM7S0FDdEM7SUFDRCxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsYUFBYTtRQUNuQixLQUFLLEVBQUUs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LFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQzs4R0EvS1UsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGVGbiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGZXRjaENsaWVudCwgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBDb250ZXh0Um91dGVTZXJ2aWNlLFxuICBQZXJtaXNzaW9ucyxcbiAgU2VydmljZVJlZ2lzdHJ5LFxuICBWaWV3Q29udGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2dldHRleHQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGVmZXIsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgaG9zdG5hbWU6IHN0cmluZztcbiAgcG9ydDogbnVtYmVyO1xuICBwcm90b2NvbDogc3RyaW5nO1xuICBhdHRycz86IGFueTtcbiAgY3JlZGVudGlhbHM/OiBhbnk7XG4gIGNyZWRlbnRpYWxzVHlwZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IENSRURFTlRJQUxTX1RZUEVTID0ge1xuICBOT05FOiB7XG4gICAgbmFtZTogJ05PTkUnLFxuICAgIHZhbHVlOiAnTk9ORScsXG4gICAgbGFiZWw6IGdldHRleHQoJ05vIHBhc3N3b3JkJylcbiAgfSxcbiAgVVNFUl9QQVNTOiB7XG4gICAgbmFtZTogJ1VTRVJfUEFTUycsXG4gICAgdmFsdWU6ICdVU0VSX1BBU1MnLFxuICAgIGxhYmVsOiBnZXR0ZXh0KCdVc2VybmFtZSBhbmQgcGFzc3dvcmQnKVxuICB9LFxuICBQQVNTX09OTFk6IHtcbiAgICBuYW1lOiAnUEFTU19PTkxZJyxcbiAgICB2YWx1ZTogJ1BBU1NfT05MWScsXG4gICAgbGFiZWw6IGdldHRleHQoJ1Bhc3N3b3JkIG9ubHknKVxuICB9LFxuICBLRVlfUEFJUjoge1xuICAgIG5hbWU6ICdLRVlfUEFJUicsXG4gICAgdmFsdWU6ICdLRVlfUEFJUicsXG4gICAgbGFiZWw6IGdldHRleHQoJ1B1YmxpYy9wcml2YXRlIGtleXMnKVxuICB9LFxuICBDRVJUSUZJQ0FURToge1xuICAgIG5hbWU6ICdDRVJUSUZJQ0FURScsXG4gICAgdmFsdWU6ICdDRVJUSUZJQ0FURScsXG4gICAgbGFiZWw6IGdldHRleHQoJ0NlcnRpZmljYXRlJylcbiAgfVxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IGNhbkFjdGl2YXRlUmVtb3RlQWNjZXNzOiBDYW5BY3RpdmF0ZUZuID0gKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSA9PiB7XG4gIGNvbnN0IHBlcm1pc3Npb25zID0gaW5qZWN0KFBlcm1pc3Npb25zKTtcbiAgY29uc3QgcmVtb3RlQWNjZXNzU2VydmljZSA9IGluamVjdChSZW1vdGVBY2Nlc3NTZXJ2aWNlKTtcbiAgY29uc3QgY29udGV4dFJvdXRlU2VydmljZSA9IGluamVjdChDb250ZXh0Um91dGVTZXJ2aWNlKTtcbiAgaWYgKCFwZXJtaXNzaW9ucy5oYXNSb2xlKFBlcm1pc3Npb25zLlJPTEVfUkVNT1RFX0FDQ0VTU19BRE1JTikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjb250ZXh0RGV0YWlscyA9IGNvbnRleHRSb3V0ZVNlcnZpY2UuZ2V0Q29udGV4dERhdGEocm91dGUpO1xuICBpZiAoY29udGV4dERldGFpbHMuY29udGV4dCAhPT0gVmlld0NvbnRleHQuRGV2aWNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZGV2aWNlID0gY29udGV4dERldGFpbHMuY29udGV4dERhdGEgYXMgSU1hbmFnZWRPYmplY3Q7XG4gIGlmICghZGV2aWNlIHx8ICFBcnJheS5pc0FycmF5KGRldmljZS5jOHlfU3VwcG9ydGVkT3BlcmF0aW9ucykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3Qgc3VwcG9ydGVkT3BlcmF0aW9uczogc3RyaW5nW10gPSBkZXZpY2UuYzh5X1N1cHBvcnRlZE9wZXJhdGlvbnM7XG4gIGlmICghc3VwcG9ydGVkT3BlcmF0aW9ucy5pbmNsdWRlcygnYzh5X1JlbW90ZUFjY2Vzc0Nvbm5lY3QnKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gcmVtb3RlQWNjZXNzU2VydmljZS5pc0F2YWlsYWJsZSQoKTtcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlbW90ZUFjY2Vzc1NlcnZpY2Uge1xuICBwcml2YXRlIGNhY2hlZElzQXZhaWxhYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcmVhZG9ubHkgYmFzZVVybCA9ICcvc2VydmljZS9yZW1vdGVhY2Nlc3MnO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZldGNoQ2xpZW50OiBGZXRjaENsaWVudCxcbiAgICBwcml2YXRlIHNlcnZpY2VSZWdpc3RyeTogU2VydmljZVJlZ2lzdHJ5XG4gICkge31cblxuICAvKipcbiAgICogVmVyaWZpZXMgaWYgdGhlIHJlbW90ZSBhY2Nlc3Mgc2VydmljZSBpcyBhdmFpbGFibGUgYnkgc2VuZGluZyBhIEhFQUQgcmVxdWVzdCB0byBpcydzIGhlYWx0aCBlbmRwb2ludC5cbiAgICogQHJldHVybnMgY2FjaGVkIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0cnVlIGlmIHRoZSBzZXJ2aWNlIGlzIGF2YWlsYWJsZSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgaXNBdmFpbGFibGUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmICghdGhpcy5jYWNoZWRJc0F2YWlsYWJsZSQpIHtcbiAgICAgIHRoaXMuY2FjaGVkSXNBdmFpbGFibGUkID0gZGVmZXIoKCkgPT4gdGhpcy5oZWFsdGhFbmRwb2ludEF2YWlsYWJsZSgpKS5waXBlKHNoYXJlUmVwbGF5KDEpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZWRJc0F2YWlsYWJsZSQ7XG4gIH1cblxuICAvKipcbiAgICogbWlzc2VzIHRoZSBsZWFkaW5nID8gZm9yIHRoZSBxdWVyeSBwYXJhbXNcbiAgICovXG4gIGdldEF1dGhRdWVyeVBhcmFtc0ZvcldlYnNvY2tldENvbm5lY3Rpb24oKSB7XG4gICAgY29uc3QgeyBoZWFkZXJzIH0gPSB0aGlzLmZldGNoQ2xpZW50LmdldEZldGNoT3B0aW9ucygpO1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcblxuICAgIGlmIChoZWFkZXJzKSB7XG4gICAgICBjb25zdCB4c3JmVG9rZW4gPSBoZWFkZXJzWydYLVhTUkYtVE9LRU4nXTtcbiAgICAgIGNvbnN0IGF1dGggPSBoZWFkZXJzWydBdXRob3JpemF0aW9uJ107XG5cbiAgICAgIGlmICh4c3JmVG9rZW4pIHtcbiAgICAgICAgcGFyYW1zLmFwcGVuZCgnWFNSRi1UT0tFTicsIHhzcmZUb2tlbik7XG4gICAgICB9XG4gICAgICBpZiAoYXV0aCkge1xuICAgICAgICBwYXJhbXMuYXBwZW5kKCd0b2tlbicsIGF1dGgucmVwbGFjZSgnQmVhcmVyICcsICcnKS5yZXBsYWNlKCdCYXNpYyAnLCAnJykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtc1N0cmluZyA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiBwYXJhbXNTdHJpbmc7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgVVJJIGZvciB0aGUgd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8gdGhlIHJlbW90ZSBhY2Nlc3Mgc2VydmljZS5cbiAgICovXG4gIGdldFdlYlNvY2tldFVyaTxLIGV4dGVuZHMgc3RyaW5nLCBJIGV4dGVuZHMgc3RyaW5nPihkZXZpY2VJZDogSywgY29uZmlndXJhdGlvbklkOiBJKSB7XG4gICAgY29uc3QgYXV0aFF1ZXJ5UGFyYW1zID0gdGhpcy5nZXRBdXRoUXVlcnlQYXJhbXNGb3JXZWJzb2NrZXRDb25uZWN0aW9uKCk7XG4gICAgY29uc3QgcHJvdG9jb2wgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT09ICdodHRwOicgPyAnd3MnIDogJ3dzcyc7XG4gICAgY29uc3QgcGF0aE5hbWUgPVxuICAgICAgYCR7cHJvdG9jb2x9Oi8vJHt3aW5kb3cubG9jYXRpb24uaG9zdH0ke3RoaXMuYmFzZVVybH0vY2xpZW50LyR7ZGV2aWNlSWR9L2NvbmZpZ3VyYXRpb25zLyR7Y29uZmlndXJhdGlvbklkfWAgYXMgY29uc3Q7XG4gICAgcmV0dXJuIGF1dGhRdWVyeVBhcmFtcyA/IChgJHtwYXRoTmFtZX0/JHthdXRoUXVlcnlQYXJhbXN9YCBhcyBjb25zdCkgOiBwYXRoTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYWxsIGNvbmZpZ3VyYXRpb25zIGZvciBhIGdpdmVuIGRldmljZS5cbiAgICovXG4gIGFzeW5jIGxpc3RDb25maWd1cmF0aW9ucyhkZXZpY2VJZDogc3RyaW5nKTogUHJvbWlzZTxSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uW10+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZmV0Y2hDbGllbnQuZmV0Y2goXG4gICAgICBgJHt0aGlzLmJhc2VVcmx9L2RldmljZXMvJHtkZXZpY2VJZH0vY29uZmlndXJhdGlvbnNgXG4gICAgKTtcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggY29uZmlndXJhdGlvbnMgZm9yIGRldmljZSAke2RldmljZUlkfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgYSBjb25maWd1cmF0aW9uIGZvciBhIGdpdmVuIGRldmljZS5cbiAgICovXG4gIGFzeW5jIGRlbGV0ZUNvbmZpZ3VyYXRpb24oZGV2aWNlSWQ6IHN0cmluZywgY29uZmlndXJhdGlvbklkOiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZmV0Y2hDbGllbnQuZmV0Y2goXG4gICAgICBgJHt0aGlzLmJhc2VVcmx9L2RldmljZXMvJHtkZXZpY2VJZH0vY29uZmlndXJhdGlvbnMvJHtjb25maWd1cmF0aW9uSWR9YCxcbiAgICAgIHsgbWV0aG9kOiAnREVMRVRFJyB9XG4gICAgKTtcblxuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGRlbGV0ZSBjb25maWd1cmF0aW9uIGZvciBkZXZpY2UgJHtkZXZpY2VJZH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYWxsIGF2YWlsYWJsZSByZW1vdGUgYWNjZXNzIHByb3RvY29sIHByb3ZpZGVycy5cbiAgICovXG4gIGdldFByb3RvY29sUHJvdmlkZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2VSZWdpc3RyeS5nZXQoJ3JlbW90ZUFjY2Vzc1Byb3RvY29sSG9vaycpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgY29uZmlndXJhdGlvbiBmb3IgYSBnaXZlbiBkZXZpY2UuXG4gICAqL1xuICBhc3luYyBhZGRDb25maWd1cmF0aW9uKFxuICAgIGRldmljZUlkOiBzdHJpbmcsXG4gICAgY29uZmlndXJhdGlvbjogT21pdDxSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uLCAnaWQnPlxuICApOiBQcm9taXNlPFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZmV0Y2hDbGllbnQuZmV0Y2goXG4gICAgICBgJHt0aGlzLmJhc2VVcmx9L2RldmljZXMvJHtkZXZpY2VJZH0vY29uZmlndXJhdGlvbnNgLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoY29uZmlndXJhdGlvbilcbiAgICAgIH1cbiAgICApO1xuXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGFkZCBjb25maWd1cmF0aW9uIGZvciBkZXZpY2UgJHtjb25maWd1cmF0aW9uLmF0dHJzLmRldmljZUlkfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYSBjb25maWd1cmF0aW9uIGZvciBhIGdpdmVuIGRldmljZS5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZUNvbmZpZ3VyYXRpb24oXG4gICAgZGV2aWNlSWQ6IHN0cmluZyxcbiAgICBjb25maWd1cmF0aW9uOiBSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uXG4gICk6IFByb21pc2U8UmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbj4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5mZXRjaENsaWVudC5mZXRjaChcbiAgICAgIGAke3RoaXMuYmFzZVVybH0vZGV2aWNlcy8ke2RldmljZUlkfS9jb25maWd1cmF0aW9ucy8ke2NvbmZpZ3VyYXRpb24uaWR9YCxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoY29uZmlndXJhdGlvbilcbiAgICAgIH1cbiAgICApO1xuXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHVwZGF0ZSBjb25maWd1cmF0aW9uIGZvciBkZXZpY2UgJHtjb25maWd1cmF0aW9uLmF0dHJzLmRldmljZUlkfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIFNTSCBrZXkgcGFpciBmb3IgYSBnaXZlbiBob3N0bmFtZS5cbiAgICovXG4gIGFzeW5jIGdlbmVyYXRlS2V5UGFpcihob3N0bmFtZTogc3RyaW5nKTogUHJvbWlzZTx7IHB1YmxpY0tleTogc3RyaW5nOyBwcml2YXRlS2V5OiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5mZXRjaENsaWVudC5mZXRjaChgJHt0aGlzLmJhc2VVcmx9L2tleXBhaXIvZ2VuZXJhdGVgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgaG9zdG5hbWUgfSlcbiAgICB9KTtcblxuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZW5lcmF0ZSBrZXkgcGFpciBmb3IgJHtob3N0bmFtZX1gKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGVhbHRoRW5kcG9pbnRBdmFpbGFibGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5mZXRjaENsaWVudC5mZXRjaChgJHt0aGlzLmJhc2VVcmx9L2hlYWx0aGAsIHtcbiAgICAgICAgbWV0aG9kOiAnSEVBRCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgcmV0dXJuICEhcmVzcG9uc2Uub2s7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzh5LW5neC1jb21wb25lbnRzLXJlbW90ZS1hY2Nlc3MtcGFzc3Rocm91Z2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3Bhc3N0aHJvdWdoL2M4eS1uZ3gtY29tcG9uZW50cy1yZW1vdGUtYWNjZXNzLXBhc3N0aHJvdWdoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { gettext, hookService } from '@c8y/ngx-components';
|
|
3
|
+
import { RemoteAccessService } from '@c8y/ngx-components/remote-access/data';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@c8y/ngx-components/remote-access/data";
|
|
6
|
+
export class PassthroughRemoteAccessProtocolProviderService {
|
|
7
|
+
constructor(remoteAccess) {
|
|
8
|
+
this.remoteAccess = remoteAccess;
|
|
9
|
+
this.protocolName = 'PASSTHROUGH';
|
|
10
|
+
this.protocolLabel = gettext('Passthrough');
|
|
11
|
+
this.protocolDescription = gettext('Allows to passthrough a TCP connction.');
|
|
12
|
+
this.protocolIcon = 'globe';
|
|
13
|
+
}
|
|
14
|
+
removeEndpoint(deviceId, currentEndpointConfig) {
|
|
15
|
+
return this.remoteAccess.deleteConfiguration(deviceId, currentEndpointConfig.id);
|
|
16
|
+
}
|
|
17
|
+
async connectEndpointHref(_deviceId, _configuration) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
async getDefaultEndpointConfiguration() {
|
|
21
|
+
return {
|
|
22
|
+
hostname: '127.0.0.1',
|
|
23
|
+
port: 22
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PassthroughRemoteAccessProtocolProviderService, deps: [{ token: i1.RemoteAccessService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
27
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PassthroughRemoteAccessProtocolProviderService, providedIn: 'root' }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PassthroughRemoteAccessProtocolProviderService, decorators: [{
|
|
30
|
+
type: Injectable,
|
|
31
|
+
args: [{ providedIn: 'root' }]
|
|
32
|
+
}], ctorParameters: () => [{ type: i1.RemoteAccessService }] });
|
|
33
|
+
export const remoteAccessPassthroughProviders = [
|
|
34
|
+
hookService('remoteAccessProtocolHook', PassthroughRemoteAccessProtocolProviderService)
|
|
35
|
+
];
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3Bhc3N0aHJvdWdoL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBR0wsbUJBQW1CLEVBQ3BCLE1BQU0sd0NBQXdDLENBQUM7OztBQUdoRCxNQUFNLE9BQU8sOENBQThDO0lBUXpELFlBQW9CLFlBQWlDO1FBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUxyRCxpQkFBWSxHQUFHLGFBQWEsQ0FBQztRQUM3QixrQkFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2Qyx3QkFBbUIsR0FBRyxPQUFPLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUN4RSxpQkFBWSxHQUFHLE9BQWdCLENBQUM7SUFFd0IsQ0FBQztJQUV6RCxjQUFjLENBQ1osUUFBZ0IsRUFDaEIscUJBQWdEO1FBRWhELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsU0FBaUIsRUFDakIsY0FBeUM7UUFFekMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLCtCQUErQjtRQUNuQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLFdBQVc7WUFDckIsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUFDO0lBQ0osQ0FBQzs4R0E3QlUsOENBQThDO2tIQUE5Qyw4Q0FBOEMsY0FEakMsTUFBTTs7MkZBQ25CLDhDQUE4QztrQkFEMUQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBaUNsQyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRztJQUM5QyxXQUFXLENBQUMsMEJBQTBCLEVBQUUsOENBQThDLENBQUM7Q0FDeEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldHRleHQsIGhvb2tTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uLFxuICBSZW1vdGVBY2Nlc3NQcm90b2NvbFByb3ZpZGVyLFxuICBSZW1vdGVBY2Nlc3NTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcmVtb3RlLWFjY2Vzcy9kYXRhJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQYXNzdGhyb3VnaFJlbW90ZUFjY2Vzc1Byb3RvY29sUHJvdmlkZXJTZXJ2aWNlXG4gIGltcGxlbWVudHMgUmVtb3RlQWNjZXNzUHJvdG9jb2xQcm92aWRlclxue1xuICBwcm90b2NvbE5hbWUgPSAnUEFTU1RIUk9VR0gnO1xuICBwcm90b2NvbExhYmVsID0gZ2V0dGV4dCgnUGFzc3Rocm91Z2gnKTtcbiAgcHJvdG9jb2xEZXNjcmlwdGlvbiA9IGdldHRleHQoJ0FsbG93cyB0byBwYXNzdGhyb3VnaCBhIFRDUCBjb25uY3Rpb24uJyk7XG4gIHByb3RvY29sSWNvbiA9ICdnbG9iZScgYXMgY29uc3Q7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW1vdGVBY2Nlc3M6IFJlbW90ZUFjY2Vzc1NlcnZpY2UpIHt9XG5cbiAgcmVtb3ZlRW5kcG9pbnQoXG4gICAgZGV2aWNlSWQ6IHN0cmluZyxcbiAgICBjdXJyZW50RW5kcG9pbnRDb25maWc6IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb25cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMucmVtb3RlQWNjZXNzLmRlbGV0ZUNvbmZpZ3VyYXRpb24oZGV2aWNlSWQsIGN1cnJlbnRFbmRwb2ludENvbmZpZy5pZCk7XG4gIH1cblxuICBhc3luYyBjb25uZWN0RW5kcG9pbnRIcmVmKFxuICAgIF9kZXZpY2VJZDogc3RyaW5nLFxuICAgIF9jb25maWd1cmF0aW9uOiBSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uXG4gICk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgYXN5bmMgZ2V0RGVmYXVsdEVuZHBvaW50Q29uZmlndXJhdGlvbigpOiBQcm9taXNlPFBhcnRpYWw8UmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbj4+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaG9zdG5hbWU6ICcxMjcuMC4wLjEnLFxuICAgICAgcG9ydDogMjJcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCByZW1vdGVBY2Nlc3NQYXNzdGhyb3VnaFByb3ZpZGVycyA9IFtcbiAgaG9va1NlcnZpY2UoJ3JlbW90ZUFjY2Vzc1Byb3RvY29sSG9vaycsIFBhc3N0aHJvdWdoUmVtb3RlQWNjZXNzUHJvdG9jb2xQcm92aWRlclNlcnZpY2UpXG5dO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzh5LW5neC1jb21wb25lbnRzLXJlbW90ZS1hY2Nlc3Mtc2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcmVtb3RlLWFjY2Vzcy9zaGFyZWQvYzh5LW5neC1jb21wb25lbnRzLXJlbW90ZS1hY2Nlc3Mtc2hhcmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component';
|
|
2
|
+
export * from './ssh-key-input/ssh-key-input.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1GQUFtRixDQUFDO0FBQ2xHLGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JlbW90ZS1hY2Nlc3MtYmFzaWMtZW5kcG9pbnQtbW9kYWwvcmVtb3RlLWFjY2Vzcy1iYXNpYy1lbmRwb2ludC1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zc2gta2V5LWlucHV0L3NzaC1rZXktaW5wdXQuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { FormBuilder, Validators } from '@angular/forms';
|
|
3
|
+
import { CoreModule, gettext } from '@c8y/ngx-components';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/forms";
|
|
6
|
+
import * as i2 from "@c8y/ngx-components";
|
|
7
|
+
export class RemoteAccessBasicEndpointModalComponent {
|
|
8
|
+
constructor(formBuilder) {
|
|
9
|
+
this.formBuilder = formBuilder;
|
|
10
|
+
this.title = gettext('Remote access endpoint');
|
|
11
|
+
this.result = new Promise((resolve, reject) => {
|
|
12
|
+
this._resolve = resolve;
|
|
13
|
+
this._reject = reject;
|
|
14
|
+
});
|
|
15
|
+
this.form = this.initForm();
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
if (this.currentValue) {
|
|
19
|
+
const { credentials, ...rest } = this.currentValue;
|
|
20
|
+
const credentialsType = credentials?.type || 'NONE';
|
|
21
|
+
const patchedValue = { ...rest, credentialsType };
|
|
22
|
+
this.form.patchValue(patchedValue);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
initForm() {
|
|
26
|
+
return this.formBuilder.group({
|
|
27
|
+
id: ['', []],
|
|
28
|
+
name: ['', [Validators.required, Validators.minLength(1)]],
|
|
29
|
+
hostname: ['', [Validators.required, Validators.minLength(1)]],
|
|
30
|
+
port: [undefined, [Validators.required, Validators.min(1), Validators.max(65535)]],
|
|
31
|
+
protocol: ['', [Validators.required, Validators.minLength(1)]],
|
|
32
|
+
credentialsType: ['NONE', [Validators.required]],
|
|
33
|
+
attrs: [undefined]
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
cancel() {
|
|
37
|
+
this._reject();
|
|
38
|
+
}
|
|
39
|
+
save() {
|
|
40
|
+
this._resolve(this.form.value);
|
|
41
|
+
}
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RemoteAccessBasicEndpointModalComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: RemoteAccessBasicEndpointModalComponent, isStandalone: true, selector: "c8y-remote-access-basic-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 [placeholder]=\"'e.g. {{ example }}' | translate : { example: 'My remote access endpoint' }\"\n name=\"name\"\n type=\"text\"\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 readonly\n name=\"protocol\"\n type=\"text\"\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: '8080' } }}\"\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 </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: "component", type: i2.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { 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.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"] }] }); }
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RemoteAccessBasicEndpointModalComponent, decorators: [{
|
|
46
|
+
type: Component,
|
|
47
|
+
args: [{ selector: 'c8y-remote-access-basic-endpoint-modal', standalone: true, imports: [CoreModule], 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 [placeholder]=\"'e.g. {{ example }}' | translate : { example: 'My remote access endpoint' }\"\n name=\"name\"\n type=\"text\"\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 readonly\n name=\"protocol\"\n type=\"text\"\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: '8080' } }}\"\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 </div>\n</c8y-modal>\n" }]
|
|
48
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWFjY2Vzcy1iYXNpYy1lbmRwb2ludC1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3NoYXJlZC9yZW1vdGUtYWNjZXNzLWJhc2ljLWVuZHBvaW50LW1vZGFsL3JlbW90ZS1hY2Nlc3MtYmFzaWMtZW5kcG9pbnQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcmVtb3RlLWFjY2Vzcy9zaGFyZWQvcmVtb3RlLWFjY2Vzcy1iYXNpYy1lbmRwb2ludC1tb2RhbC9yZW1vdGUtYWNjZXNzLWJhc2ljLWVuZHBvaW50LW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBUzFELE1BQU0sT0FBTyx1Q0FBdUM7SUFjbEQsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFiNUMsVUFBSyxHQUFHLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBSzFDLFdBQU0sR0FBRyxJQUFJLE9BQU8sQ0FBNEMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFNRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ25ELE1BQU0sZUFBZSxHQUFHLFdBQVcsRUFBRSxJQUFJLElBQUksTUFBTSxDQUFDO1lBQ3BELE1BQU0sWUFBWSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUM1QixFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ1osSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUQsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsSUFBSSxFQUFFLENBQUMsU0FBbUIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUYsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsZUFBZSxFQUFFLENBQUMsTUFBOEIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4RSxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUM7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQzs4R0E3Q1UsdUNBQXVDO2tHQUF2Qyx1Q0FBdUMsa0dDWHBELHlzRUEyRkEsMkNEbEZZLFVBQVU7OzJGQUVULHVDQUF1QztrQkFObkQsU0FBUzsrQkFDRSx3Q0FBd0MsY0FFdEMsSUFBSSxXQUNQLENBQUMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbiB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcmVtb3RlLWFjY2Vzcy9kYXRhJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXJlbW90ZS1hY2Nlc3MtYmFzaWMtZW5kcG9pbnQtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVtb3RlLWFjY2Vzcy1iYXNpYy1lbmRwb2ludC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBSZW1vdGVBY2Nlc3NCYXNpY0VuZHBvaW50TW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICB0aXRsZSA9IGdldHRleHQoJ1JlbW90ZSBhY2Nlc3MgZW5kcG9pbnQnKTtcbiAgZm9ybTogUmV0dXJuVHlwZTx0eXBlb2YgdGhpcy5pbml0Rm9ybT47XG5cbiAgY3VycmVudFZhbHVlOiBQYXJ0aWFsPFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24+O1xuXG4gIHJlc3VsdCA9IG5ldyBQcm9taXNlPFJldHVyblR5cGU8dHlwZW9mIHRoaXMuaW5pdEZvcm0+Wyd2YWx1ZSddPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdGhpcy5fcmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgdGhpcy5fcmVqZWN0ID0gcmVqZWN0O1xuICB9KTtcblxuICBwcml2YXRlIF9yZXNvbHZlOiAodmFsdWU6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuaW5pdEZvcm0+Wyd2YWx1ZSddKSA9PiB2b2lkO1xuICBwcml2YXRlIF9yZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmluaXRGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIGNvbnN0IHsgY3JlZGVudGlhbHMsIC4uLnJlc3QgfSA9IHRoaXMuY3VycmVudFZhbHVlO1xuICAgICAgY29uc3QgY3JlZGVudGlhbHNUeXBlID0gY3JlZGVudGlhbHM/LnR5cGUgfHwgJ05PTkUnO1xuICAgICAgY29uc3QgcGF0Y2hlZFZhbHVlID0geyAuLi5yZXN0LCBjcmVkZW50aWFsc1R5cGUgfTtcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHBhdGNoZWRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgaWQ6IFsnJywgW11dLFxuICAgICAgbmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMSldXSxcbiAgICAgIGhvc3RuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxKV1dLFxuICAgICAgcG9ydDogW3VuZGVmaW5lZCBhcyBudW1iZXIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigxKSwgVmFsaWRhdG9ycy5tYXgoNjU1MzUpXV0sXG4gICAgICBwcm90b2NvbDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMSldXSxcbiAgICAgIGNyZWRlbnRpYWxzVHlwZTogWydOT05FJyBhcyAnTk9ORScgfCAnUEFTU19PTkxZJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGF0dHJzOiBbdW5kZWZpbmVkXVxuICAgIH0pO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuX3JlamVjdCgpO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLl9yZXNvbHZlKHRoaXMuZm9ybS52YWx1ZSk7XG4gIH1cbn1cbiIsIjxjOHktbW9kYWxcbiAgW3RpdGxlXT1cInRpdGxlXCJcbiAgW2hlYWRlckNsYXNzZXNdPVwiJ2RpYWxvZy1oZWFkZXInXCJcbiAgKG9uRGlzbWlzcyk9XCJjYW5jZWwoKVwiXG4gIChvbkNsb3NlKT1cInNhdmUoKVwiXG4gIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIlxuICBbbGFiZWxzXT1cInsgY2FuY2VsOiAnQ2FuY2VsJywgb2s6ICdTYXZlJyB9XCJcbj5cbiAgPG5nLWNvbnRhaW5lciBjOHktbW9kYWwtdGl0bGU+XG4gICAgPHNwYW4gW2M4eUljb25dPVwiJ2xhcHRvcCdcIj48L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJwLTI0XCJcbiAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICA+XG4gICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgPGxhYmVsXG4gICAgICAgIGZvcj1cIm5hbWVcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgTmFtZVxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIGlkPVwibmFtZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZSA6IHsgZXhhbXBsZTogJ015IHJlbW90ZSBhY2Nlc3MgZW5kcG9pbnQnIH1cIlxuICAgICAgICBuYW1lPVwibmFtZVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ3JlbW90ZUFjY2Vzc0VuZHBvaW50TW9kYWwtLW5hbWUnXCJcbiAgICAgIC8+XG4gICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICA8bGFiZWxcbiAgICAgICAgZm9yPVwicHJvdG9jb2xcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgUHJvdG9jb2xcbiAgICAgIDwvbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBpZD1cInByb3RvY29sXCJcbiAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgbmFtZT1cInByb3RvY29sXCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcm90b2NvbFwiXG4gICAgICAvPlxuICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICA8L2M4eS1mb3JtLWdyb3VwPlxuXG4gICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgPGxhYmVsXG4gICAgICAgIGZvcj1cImhvc3RuYW1lXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIEhvc3RcbiAgICAgIDwvbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBpZD1cImhvc3RuYW1lXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eydlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlIDogeyBleGFtcGxlOiAnMTI3LjAuMC4xJyB9IH19XCJcbiAgICAgICAgbmFtZT1cImhvc3RuYW1lXCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJob3N0bmFtZVwiXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ3JlbW90ZUFjY2Vzc0VuZHBvaW50TW9kYWwtLWhvc3RuYW1lJ1wiXG4gICAgICAvPlxuICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICA8L2M4eS1mb3JtLWdyb3VwPlxuXG4gICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgPGxhYmVsXG4gICAgICAgIGZvcj1cInBvcnRcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgUG9ydFxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIGlkPVwicG9ydFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3snZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZSA6IHsgZXhhbXBsZTogJzgwODAnIH0gfX1cIlxuICAgICAgICBuYW1lPVwicG9ydFwiXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwb3J0XCJcbiAgICAgICAgW2F0dHIuZGF0YS1jeV09XCIncmVtb3RlQWNjZXNzRW5kcG9pbnRNb2RhbC0tcG9ydCdcIlxuICAgICAgLz5cbiAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgPC9jOHktZm9ybS1ncm91cD5cbiAgPC9kaXY+XG48L2M4eS1tb2RhbD5cbiJdfQ==
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { NgIf } from '@angular/common';
|
|
2
|
+
import { Component, forwardRef, Input } from '@angular/core';
|
|
3
|
+
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import { C8yTranslatePipe, DropAreaComponent } from '@c8y/ngx-components';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
const types = [
|
|
8
|
+
{
|
|
9
|
+
name: 'PRIVATE',
|
|
10
|
+
value: 'private',
|
|
11
|
+
placeholder: '-----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAK...VQvopm2xw==----- END RSA PRIVATE KEY-----'
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'PUBLIC',
|
|
15
|
+
value: 'public',
|
|
16
|
+
placeholder: 'ssh-rsa AAAAB3NzaC...1kc3MAAACB== user@example.com'
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'CERTIFICATE',
|
|
20
|
+
value: 'certificate',
|
|
21
|
+
placeholder: 'ssh-rsa-cert-v01@openssh.com AAAAHHNz...Y9gBU= user@example.com'
|
|
22
|
+
}
|
|
23
|
+
];
|
|
24
|
+
export class SshKeyInputComponent {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.keyType = types[0].value;
|
|
27
|
+
this.readonly = false;
|
|
28
|
+
this.value = '';
|
|
29
|
+
}
|
|
30
|
+
writeValue(obj) {
|
|
31
|
+
this.value = obj;
|
|
32
|
+
}
|
|
33
|
+
registerOnChange(fn) {
|
|
34
|
+
this.onChange = fn;
|
|
35
|
+
}
|
|
36
|
+
registerOnTouched(fn) {
|
|
37
|
+
this.onTouch = fn;
|
|
38
|
+
}
|
|
39
|
+
setDisabledState(isDisabled) {
|
|
40
|
+
this.readonly = isDisabled;
|
|
41
|
+
}
|
|
42
|
+
ngOnChanges(changes) {
|
|
43
|
+
if (changes.keyType) {
|
|
44
|
+
this.reassignPlaceholder();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
ngOnInit() {
|
|
48
|
+
this.reassignPlaceholder();
|
|
49
|
+
}
|
|
50
|
+
async onKeyFileSelected(event) {
|
|
51
|
+
const file = event[0];
|
|
52
|
+
const content = await file.readAsText();
|
|
53
|
+
this.newValue(content);
|
|
54
|
+
}
|
|
55
|
+
newValue(value) {
|
|
56
|
+
this.value = value;
|
|
57
|
+
this.onChange(value);
|
|
58
|
+
this.onTouch();
|
|
59
|
+
}
|
|
60
|
+
reassignPlaceholder() {
|
|
61
|
+
const type = types.find(t => t.value === this.keyType);
|
|
62
|
+
if (type) {
|
|
63
|
+
this.placeholder = type.placeholder;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SshKeyInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: SshKeyInputComponent, isStandalone: true, selector: "c8y-ssh-key-input", inputs: { keyType: "keyType" }, providers: [
|
|
68
|
+
{
|
|
69
|
+
provide: NG_VALUE_ACCESSOR,
|
|
70
|
+
useExisting: forwardRef(() => SshKeyInputComponent),
|
|
71
|
+
multi: true
|
|
72
|
+
}
|
|
73
|
+
], usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <div class=\"tight-grid\">\n <div class=\"col-xs-8\">\n <input\n [placeholder]=\"'e.g. {{ example }}' | translate : { example: placeholder }\"\n type=\"text\"\n class=\"form-control\"\n [ngModel]=\"value\"\n (ngModelChange)=\"newValue($event)\"\n [readonly]=\"readonly\"\n [ngModelOptions]=\"{standalone: true}\"\n />\n </div>\n <div class=\"col-xs-4\" *ngIf=\"!readonly\">\n <c8y-drop-area class=\"drop-area-sm\" (dropped)=\"onKeyFileSelected($event)\" [maxAllowedFiles]=\"1\" [icon]=\"'upload'\"></c8y-drop-area>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropAreaComponent, selector: "c8y-drop-area", inputs: ["formControl", "title", "message", "icon", "loadingMessage", "forceHideList", "alwaysShow", "clickToOpen", "loading", "progress", "maxAllowedFiles", "files", "maxFileSizeInMegaBytes", "accept"], outputs: ["dropped"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
74
|
+
}
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SshKeyInputComponent, decorators: [{
|
|
76
|
+
type: Component,
|
|
77
|
+
args: [{ selector: 'c8y-ssh-key-input', standalone: true, imports: [C8yTranslatePipe, NgIf, DropAreaComponent, FormsModule], providers: [
|
|
78
|
+
{
|
|
79
|
+
provide: NG_VALUE_ACCESSOR,
|
|
80
|
+
useExisting: forwardRef(() => SshKeyInputComponent),
|
|
81
|
+
multi: true
|
|
82
|
+
}
|
|
83
|
+
], template: "<div class=\"form-group\">\n <div class=\"tight-grid\">\n <div class=\"col-xs-8\">\n <input\n [placeholder]=\"'e.g. {{ example }}' | translate : { example: placeholder }\"\n type=\"text\"\n class=\"form-control\"\n [ngModel]=\"value\"\n (ngModelChange)=\"newValue($event)\"\n [readonly]=\"readonly\"\n [ngModelOptions]=\"{standalone: true}\"\n />\n </div>\n <div class=\"col-xs-4\" *ngIf=\"!readonly\">\n <c8y-drop-area class=\"drop-area-sm\" (dropped)=\"onKeyFileSelected($event)\" [maxAllowedFiles]=\"1\" [icon]=\"'upload'\"></c8y-drop-area>\n </div>\n </div>\n</div>\n" }]
|
|
84
|
+
}], propDecorators: { keyType: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}] } });
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NoLWtleS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3NoYXJlZC9zc2gta2V5LWlucHV0L3NzaC1rZXktaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcmVtb3RlLWFjY2Vzcy9zaGFyZWQvc3NoLWtleS1pbnB1dC9zc2gta2V5LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFlLE1BQU0scUJBQXFCLENBQUM7OztBQUV2RixNQUFNLEtBQUssR0FBRztJQUNaO1FBQ0UsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsU0FBUztRQUNoQixXQUFXLEVBQ1QseUZBQXlGO0tBQzVGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssRUFBRSxRQUFRO1FBQ2YsV0FBVyxFQUFFLG9EQUFvRDtLQUNsRTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGFBQWE7UUFDbkIsS0FBSyxFQUFFLGFBQWE7UUFDcEIsV0FBVyxFQUFFLGlFQUFpRTtLQUMvRTtDQUNPLENBQUM7QUFlWCxNQUFNLE9BQU8sb0JBQW9CO0lBYmpDO1FBY1csWUFBTyxHQUFvQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ25FLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsVUFBSyxHQUFHLEVBQUUsQ0FBQztLQWlEWjtJQTVDQyxVQUFVLENBQUMsR0FBVztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNuQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQW9CO1FBQzFDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDOzhHQXREVSxvQkFBb0I7a0dBQXBCLG9CQUFvQixnR0FScEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsK0NDbkNILDJvQkFrQkEsdUNEVVksZ0JBQWdCLGtEQUFFLElBQUksNkZBQUUsaUJBQWlCLDJSQUFFLFdBQVc7OzJGQVNyRCxvQkFBb0I7a0JBYmhDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBRWpCLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxXQUFXLENBQUMsYUFDdEQ7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUdRLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDOHlUcmFuc2xhdGVQaXBlLCBEcm9wQXJlYUNvbXBvbmVudCwgRHJvcHBlZEZpbGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuY29uc3QgdHlwZXMgPSBbXG4gIHtcbiAgICBuYW1lOiAnUFJJVkFURScsXG4gICAgdmFsdWU6ICdwcml2YXRlJyxcbiAgICBwbGFjZWhvbGRlcjpcbiAgICAgICctLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tIE1JSUVwQUlCQUFLLi4uVlF2b3BtMnh3PT0tLS0tLSBFTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0nXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnUFVCTElDJyxcbiAgICB2YWx1ZTogJ3B1YmxpYycsXG4gICAgcGxhY2Vob2xkZXI6ICdzc2gtcnNhIEFBQUFCM056YUMuLi4xa2MzTUFBQUNCPT0gdXNlckBleGFtcGxlLmNvbSdcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdDRVJUSUZJQ0FURScsXG4gICAgdmFsdWU6ICdjZXJ0aWZpY2F0ZScsXG4gICAgcGxhY2Vob2xkZXI6ICdzc2gtcnNhLWNlcnQtdjAxQG9wZW5zc2guY29tIEFBQUFISE56Li4uWTlnQlU9IHVzZXJAZXhhbXBsZS5jb20nXG4gIH1cbl0gYXMgY29uc3Q7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zc2gta2V5LWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NzaC1rZXktaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQzh5VHJhbnNsYXRlUGlwZSwgTmdJZiwgRHJvcEFyZWFDb21wb25lbnQsIEZvcm1zTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTc2hLZXlJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTc2hLZXlJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGtleVR5cGU6ICh0eXBlb2YgdHlwZXMpW251bWJlcl1bJ3ZhbHVlJ10gPSB0eXBlc1swXS52YWx1ZTtcbiAgcmVhZG9ubHkgPSBmYWxzZTtcblxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIHZhbHVlID0gJyc7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICBvblRvdWNoOiAoKSA9PiB2b2lkO1xuXG4gIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucmVhZG9ubHkgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmtleVR5cGUpIHtcbiAgICAgIHRoaXMucmVhc3NpZ25QbGFjZWhvbGRlcigpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVhc3NpZ25QbGFjZWhvbGRlcigpO1xuICB9XG5cbiAgYXN5bmMgb25LZXlGaWxlU2VsZWN0ZWQoZXZlbnQ6IERyb3BwZWRGaWxlW10pIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnRbMF07XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IGZpbGUucmVhZEFzVGV4dCgpO1xuICAgIHRoaXMubmV3VmFsdWUoY29udGVudCk7XG4gIH1cblxuICBuZXdWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFzc2lnblBsYWNlaG9sZGVyKCkge1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlcy5maW5kKHQgPT4gdC52YWx1ZSA9PT0gdGhpcy5rZXlUeXBlKTtcbiAgICBpZiAodHlwZSkge1xuICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHR5cGUucGxhY2Vob2xkZXI7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICA8ZGl2IGNsYXNzPVwidGlnaHQtZ3JpZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtOFwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZSA6IHsgZXhhbXBsZTogcGxhY2Vob2xkZXIgfVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm5ld1ZhbHVlKCRldmVudClcIlxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy00XCIgKm5nSWY9XCIhcmVhZG9ubHlcIj5cbiAgICAgIDxjOHktZHJvcC1hcmVhIGNsYXNzPVwiZHJvcC1hcmVhLXNtXCIgKGRyb3BwZWQpPVwib25LZXlGaWxlU2VsZWN0ZWQoJGV2ZW50KVwiIFttYXhBbGxvd2VkRmlsZXNdPVwiMVwiIFtpY29uXT1cIid1cGxvYWQnXCI+PC9jOHktZHJvcC1hcmVhPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzh5LW5neC1jb21wb25lbnRzLXJlbW90ZS1hY2Nlc3Mtc3NoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcmVtb3RlLWFjY2Vzcy9zc2gvYzh5LW5neC1jb21wb25lbnRzLXJlbW90ZS1hY2Nlc3Mtc3NoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -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 SSHRemoteAccessProtocolProviderService {
|
|
9
|
+
constructor(remoteAccess, bsModalService) {
|
|
10
|
+
this.remoteAccess = remoteAccess;
|
|
11
|
+
this.bsModalService = bsModalService;
|
|
12
|
+
this.protocolName = 'SSH';
|
|
13
|
+
this.protocolLabel = gettext('SSH');
|
|
14
|
+
this.protocolDescription = gettext('Allows to connect to an SSH service.');
|
|
15
|
+
this.protocolIcon = 'laptop';
|
|
16
|
+
}
|
|
17
|
+
async addEndpoint(deviceId) {
|
|
18
|
+
const modalResult = await this.openSSHEndpointModal({});
|
|
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.openSSHEndpointModal(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}/ssh/${configuration.id}`;
|
|
36
|
+
}
|
|
37
|
+
async getDefaultEndpointConfiguration() {
|
|
38
|
+
return {
|
|
39
|
+
hostname: '127.0.0.1',
|
|
40
|
+
port: 22
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
async openSSHEndpointModal(currentConfiguration) {
|
|
44
|
+
const { RemoteAccessSshEndpointModalComponent } = await import('@c8y/ngx-components/remote-access/ssh/remote-access-ssh-endpoint-modal');
|
|
45
|
+
try {
|
|
46
|
+
const modalRef = this.bsModalService.show(RemoteAccessSshEndpointModalComponent, {
|
|
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: SSHRemoteAccessProtocolProviderService, 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: SSHRemoteAccessProtocolProviderService, providedIn: 'root' }); }
|
|
58
|
+
}
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SSHRemoteAccessProtocolProviderService, decorators: [{
|
|
60
|
+
type: Injectable,
|
|
61
|
+
args: [{ providedIn: 'root' }]
|
|
62
|
+
}], ctorParameters: () => [{ type: i1.RemoteAccessService }, { type: i2.BsModalService }] });
|
|
63
|
+
export const remoteAccessSSHProviders = [
|
|
64
|
+
hookRoute({
|
|
65
|
+
loadComponent: () => import('@c8y/ngx-components/remote-access/terminal-viewer').then(m => m.TerminalViewerComponent),
|
|
66
|
+
path: 'ssh/:configurationId',
|
|
67
|
+
context: ViewContext.Device,
|
|
68
|
+
tabs: [],
|
|
69
|
+
canActivate: [canActivateRemoteAccess]
|
|
70
|
+
}),
|
|
71
|
+
hookService('remoteAccessProtocolHook', SSHRemoteAccessProtocolProviderService)
|
|
72
|
+
];
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3NzaC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRixPQUFPLEVBQ0wsdUJBQXVCLEVBR3ZCLG1CQUFtQixFQUNwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUdyRCxNQUFNLE9BQU8sc0NBQXNDO0lBTWpELFlBQ1ksWUFBaUMsRUFDakMsY0FBOEI7UUFEOUIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVAxQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixrQkFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQix3QkFBbUIsR0FBRyxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUN0RSxpQkFBWSxHQUFHLFFBQWlCLENBQUM7SUFLOUIsQ0FBQztJQUVKLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBZ0I7UUFDaEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxjQUFjLENBQ1osUUFBZ0IsRUFDaEIscUJBQWdEO1FBRWhELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQ2hCLFFBQWdCLEVBQ2hCLHFCQUFnRDtRQUVoRCxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUN2QixRQUFnQixFQUNoQixhQUF3QztRQUV4QyxPQUFPLFdBQVcsUUFBUSxRQUFRLGFBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsS0FBSyxDQUFDLCtCQUErQjtRQUNuQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLFdBQVc7WUFDckIsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUFDO0lBQ0osQ0FBQztJQUVTLEtBQUssQ0FBQyxvQkFBb0IsQ0FDbEMsb0JBQXdEO1FBRXhELE1BQU0sRUFBRSxxQ0FBcUMsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUM1RCx3RUFBd0UsQ0FDekUsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxFQUFFO2dCQUMvRSxZQUFZLEVBQUUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUU7YUFDckQsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQThCLENBQUM7UUFDdEUsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxlQUFlO1lBQ2YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQzs4R0FwRVUsc0NBQXNDO2tIQUF0QyxzQ0FBc0MsY0FEekIsTUFBTTs7MkZBQ25CLHNDQUFzQztrQkFEbEQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBd0VsQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxTQUFTLENBQUM7UUFDUixhQUFhLEVBQUUsR0FBRyxFQUFFLENBQ2xCLE1BQU0sQ0FBQyxtREFBbUQsQ0FBQyxDQUFDLElBQUksQ0FDOUQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQy9CO1FBQ0gsSUFBSSxFQUFFLHNCQUFzQjtRQUM1QixPQUFPLEVBQUUsV0FBVyxDQUFDLE1BQU07UUFDM0IsSUFBSSxFQUFFLEVBQUU7UUFDUixXQUFXLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztLQUN2QyxDQUFDO0lBQ0YsV0FBVyxDQUFDLDBCQUEwQixFQUFFLHNDQUFzQyxDQUFDO0NBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXR0ZXh0LCBob29rUm91dGUsIGhvb2tTZXJ2aWNlLCBWaWV3Q29udGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgY2FuQWN0aXZhdGVSZW1vdGVBY2Nlc3MsXG4gIFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24sXG4gIFJlbW90ZUFjY2Vzc1Byb3RvY29sUHJvdmlkZXIsXG4gIFJlbW90ZUFjY2Vzc1NlcnZpY2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9yZW1vdGUtYWNjZXNzL2RhdGEnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTU0hSZW1vdGVBY2Nlc3NQcm90b2NvbFByb3ZpZGVyU2VydmljZSBpbXBsZW1lbnRzIFJlbW90ZUFjY2Vzc1Byb3RvY29sUHJvdmlkZXIge1xuICBwcm90b2NvbE5hbWUgPSAnU1NIJztcbiAgcHJvdG9jb2xMYWJlbCA9IGdldHRleHQoJ1NTSCcpO1xuICBwcm90b2NvbERlc2NyaXB0aW9uID0gZ2V0dGV4dCgnQWxsb3dzIHRvIGNvbm5lY3QgdG8gYW4gU1NIIHNlcnZpY2UuJyk7XG4gIHByb3RvY29sSWNvbiA9ICdsYXB0b3AnIGFzIGNvbnN0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCByZW1vdGVBY2Nlc3M6IFJlbW90ZUFjY2Vzc1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGJzTW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgYWRkRW5kcG9pbnQoZGV2aWNlSWQ6IHN0cmluZyk6IFByb21pc2U8UmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbj4ge1xuICAgIGNvbnN0IG1vZGFsUmVzdWx0ID0gYXdhaXQgdGhpcy5vcGVuU1NIRW5kcG9pbnRNb2RhbCh7fSk7XG4gICAgaWYgKCFtb2RhbFJlc3VsdCkge1xuICAgICAgcmV0dXJuIG1vZGFsUmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlbW90ZUFjY2Vzcy5hZGRDb25maWd1cmF0aW9uKGRldmljZUlkLCBtb2RhbFJlc3VsdCk7XG4gIH1cblxuICByZW1vdmVFbmRwb2ludChcbiAgICBkZXZpY2VJZDogc3RyaW5nLFxuICAgIGN1cnJlbnRFbmRwb2ludENvbmZpZzogUmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvblxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5yZW1vdGVBY2Nlc3MuZGVsZXRlQ29uZmlndXJhdGlvbihkZXZpY2VJZCwgY3VycmVudEVuZHBvaW50Q29uZmlnLmlkKTtcbiAgfVxuXG4gIGFzeW5jIGVkaXRFbmRwb2ludChcbiAgICBkZXZpY2VJZDogc3RyaW5nLFxuICAgIGN1cnJlbnRFbmRwb2ludENvbmZpZzogUmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvblxuICApOiBQcm9taXNlPFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24+IHtcbiAgICBjb25zdCBtb2RhbFJlc3VsdCA9IGF3YWl0IHRoaXMub3BlblNTSEVuZHBvaW50TW9kYWwoY3VycmVudEVuZHBvaW50Q29uZmlnKTtcbiAgICBpZiAoIW1vZGFsUmVzdWx0KSB7XG4gICAgICByZXR1cm4gbW9kYWxSZXN1bHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVtb3RlQWNjZXNzLnVwZGF0ZUNvbmZpZ3VyYXRpb24oZGV2aWNlSWQsIG1vZGFsUmVzdWx0KTtcbiAgfVxuXG4gIGFzeW5jIGNvbm5lY3RFbmRwb2ludEhyZWYoXG4gICAgZGV2aWNlSWQ6IHN0cmluZyxcbiAgICBjb25maWd1cmF0aW9uOiBSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAvZGV2aWNlLyR7ZGV2aWNlSWR9L3NzaC8ke2NvbmZpZ3VyYXRpb24uaWR9YDtcbiAgfVxuXG4gIGFzeW5jIGdldERlZmF1bHRFbmRwb2ludENvbmZpZ3VyYXRpb24oKTogUHJvbWlzZTxQYXJ0aWFsPFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24+PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhvc3RuYW1lOiAnMTI3LjAuMC4xJyxcbiAgICAgIHBvcnQ6IDIyXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBvcGVuU1NIRW5kcG9pbnRNb2RhbChcbiAgICBjdXJyZW50Q29uZmlndXJhdGlvbjogUGFydGlhbDxSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uPlxuICApOiBQcm9taXNlPFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24gfCBudWxsPiB7XG4gICAgY29uc3QgeyBSZW1vdGVBY2Nlc3NTc2hFbmRwb2ludE1vZGFsQ29tcG9uZW50IH0gPSBhd2FpdCBpbXBvcnQoXG4gICAgICAnQGM4eS9uZ3gtY29tcG9uZW50cy9yZW1vdGUtYWNjZXNzL3NzaC9yZW1vdGUtYWNjZXNzLXNzaC1lbmRwb2ludC1tb2RhbCdcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhSZW1vdGVBY2Nlc3NTc2hFbmRwb2ludE1vZGFsQ29tcG9uZW50LCB7XG4gICAgICAgIGluaXRpYWxTdGF0ZTogeyBjdXJyZW50VmFsdWU6IGN1cnJlbnRDb25maWd1cmF0aW9uIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIChhd2FpdCBtb2RhbFJlZi5jb250ZW50LnJlc3VsdCkgYXMgUmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBtb2RhbCBjbG9zZWRcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgcmVtb3RlQWNjZXNzU1NIUHJvdmlkZXJzID0gW1xuICBob29rUm91dGUoe1xuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+XG4gICAgICBpbXBvcnQoJ0BjOHkvbmd4LWNvbXBvbmVudHMvcmVtb3RlLWFjY2Vzcy90ZXJtaW5hbC12aWV3ZXInKS50aGVuKFxuICAgICAgICBtID0+IG0uVGVybWluYWxWaWV3ZXJDb21wb25lbnRcbiAgICAgICksXG4gICAgcGF0aDogJ3NzaC86Y29uZmlndXJhdGlvbklkJyxcbiAgICBjb250ZXh0OiBWaWV3Q29udGV4dC5EZXZpY2UsXG4gICAgdGFiczogW10sXG4gICAgY2FuQWN0aXZhdGU6IFtjYW5BY3RpdmF0ZVJlbW90ZUFjY2Vzc11cbiAgfSksXG4gIGhvb2tTZXJ2aWNlKCdyZW1vdGVBY2Nlc3NQcm90b2NvbEhvb2snLCBTU0hSZW1vdGVBY2Nlc3NQcm90b2NvbFByb3ZpZGVyU2VydmljZSlcbl07XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzh5LW5neC1jb21wb25lbnRzLXJlbW90ZS1hY2Nlc3Mtc3NoLXJlbW90ZS1hY2Nlc3Mtc3NoLWVuZHBvaW50LW1vZGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcmVtb3RlLWFjY2Vzcy9zc2gvcmVtb3RlLWFjY2Vzcy1zc2gtZW5kcG9pbnQtbW9kYWwvYzh5LW5neC1jb21wb25lbnRzLXJlbW90ZS1hY2Nlc3Mtc3NoLXJlbW90ZS1hY2Nlc3Mtc3NoLWVuZHBvaW50LW1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './remote-access-ssh-endpoint-modal.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3NzaC9yZW1vdGUtYWNjZXNzLXNzaC1lbmRwb2ludC1tb2RhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhDQUE4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZW1vdGUtYWNjZXNzLXNzaC1lbmRwb2ludC1tb2RhbC5jb21wb25lbnQnO1xuIl19
|