@c8y/ngx-components 1021.38.1 → 1021.49.4
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/i18n/translate.service.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/branding/shared/lazy/branding-form/branding-form.component.mjs +3 -3
- 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/i18n/translate.service.mjs +7 -5
- package/esm2022/core/list-group/list-item-action.component.mjs +1 -1
- package/esm2022/core/list-group/list-item-icon.component.mjs +1 -1
- package/esm2022/core/login/credentials.component.mjs +2 -2
- package/esm2022/core/login/login.service.mjs +18 -7
- package/esm2022/core/navigator/navigator-node-data.mjs +1 -1
- package/esm2022/core/navigator/navigator-node.component.mjs +11 -2
- package/esm2022/core/navigator/navigator-node.mjs +1 -1
- package/esm2022/core/plugins/plugins.model.mjs +5 -1
- package/esm2022/core/plugins/plugins.service.mjs +6 -2
- package/esm2022/core/properties-list/properties-list.component.mjs +1 -1
- package/esm2022/core/provider-configuration/model/dynamic-provider-config.model.mjs +1 -1
- package/esm2022/core/router/context-route.service.mjs +4 -2
- package/esm2022/core/router/router.model.mjs +1 -1
- package/esm2022/core/router/scoped-context-route.service.mjs +4 -2
- package/esm2022/core/search/search.model.mjs +1 -1
- package/esm2022/core/select/select-keyboard.service.mjs +7 -3
- package/esm2022/core/select/select.component.mjs +36 -8
- package/esm2022/core/select-modal/select-modal.component.mjs +2 -2
- package/esm2022/core/shared/core.model.mjs +6 -2
- package/esm2022/core/tabs/conditional-tabs-outlet.component.mjs +4 -2
- package/esm2022/core/tabs/tab.component.mjs +1 -1
- package/esm2022/core/tabs/tab.model.mjs +1 -1
- package/esm2022/core/tabs/tabs-outlet.component.mjs +41 -12
- package/esm2022/core/user/user-menu-item.component.mjs +1 -1
- package/esm2022/core/user/user.model.mjs +1 -1
- package/esm2022/core/wizard/wizard.model.mjs +1 -1
- package/esm2022/data-grid-columns/asset-type/asset-type.cell-renderer.component.mjs +1 -1
- package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.mjs +47 -22
- package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.mjs +1 -1
- package/esm2022/datapoint-selector/datapoint-selection.model.mjs +1 -1
- package/esm2022/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.mjs +3 -3
- package/esm2022/datapoints-export-selector/datapoints-export-selector.model.mjs +1 -1
- package/esm2022/device-grid/columns/icon.cell-renderer.component.mjs +42 -0
- package/esm2022/device-grid/columns/index.mjs +2 -1
- package/esm2022/device-grid/device-grid.component.mjs +3 -3
- package/esm2022/device-grid/device-grid.service.mjs +7 -25
- package/esm2022/device-provisioned-certificates/c8y-ngx-components-device-provisioned-certificates.mjs +5 -0
- package/esm2022/device-provisioned-certificates/device-provisioned-certificates.guard.mjs +28 -0
- package/esm2022/device-provisioned-certificates/device-provisioned-certificates.module.mjs +51 -0
- package/esm2022/device-provisioned-certificates/device-provisioned-certificates.service.mjs +31 -0
- package/esm2022/device-provisioned-certificates/device-tab-provisioned-certificates.component.mjs +76 -0
- package/esm2022/device-provisioned-certificates/index.mjs +2 -0
- package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +41 -39
- package/esm2022/ecosystem/application-plugins/application-plugins.module.mjs +8 -6
- package/esm2022/ecosystem/application-plugins/apps-to-update-remotes-select.component.mjs +1 -1
- package/esm2022/ecosystem/application-plugins/index.mjs +2 -1
- package/esm2022/ecosystem/application-plugins/install-plugin.component.mjs +18 -21
- package/esm2022/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.mjs +26 -0
- package/esm2022/ecosystem/application-plugins/plugin-list-item.component.mjs +14 -6
- package/esm2022/ecosystem/application-plugins/plugin-list.component.mjs +14 -12
- package/esm2022/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.mjs +7 -1
- package/esm2022/ecosystem/applications/application-list/application-list.component.mjs +1 -1
- package/esm2022/ecosystem/applications/install-from-package/install-from-package.component.mjs +6 -1
- package/esm2022/ecosystem/archived-confirm/archived-confirm-modal.component.mjs +22 -0
- package/esm2022/ecosystem/archived-confirm/archived-confirm.module.mjs +32 -0
- package/esm2022/ecosystem/archived-confirm/c8y-ngx-components-ecosystem-archived-confirm.mjs +5 -0
- package/esm2022/ecosystem/archived-confirm/index.mjs +3 -0
- package/esm2022/ecosystem/ecosystem.module.mjs +20 -16
- package/esm2022/ecosystem/features/feature-list.component.mjs +1 -1
- package/esm2022/ecosystem/microservices/microservice-list.component.mjs +1 -1
- package/esm2022/ecosystem/packages/deploy-application/deploy-application.component.mjs +6 -1
- package/esm2022/ecosystem/packages/package-details/package-details.component.mjs +13 -8
- package/esm2022/ecosystem/packages/package-list/packages-list.component.mjs +4 -4
- package/esm2022/ecosystem/shared/add-application.component.mjs +1 -1
- package/esm2022/ecosystem/shared/application-card.component.mjs +3 -3
- package/esm2022/ecosystem/shared/archived-filter/archived-filter.component.mjs +27 -0
- package/esm2022/ecosystem/shared/ecosystem.constants.mjs +5 -1
- package/esm2022/ecosystem/shared/ecosystem.model.mjs +7 -3
- package/esm2022/ecosystem/shared/ecosystem.service.mjs +26 -1
- package/esm2022/ecosystem/shared/index.mjs +2 -1
- package/esm2022/ecosystem/shared/list-filters/list-filters.component.mjs +75 -13
- package/esm2022/ecosystem/shared/list-filters/list-filters.model.mjs +1 -1
- package/esm2022/ecosystem/shared/shared-ecosystem.module.mjs +10 -5
- package/esm2022/ecosystem/shared/translate-package-label.pipe.mjs +3 -3
- package/esm2022/files-repository/files-repository.component.mjs +2 -2
- package/esm2022/files-repository/files-repository.service.mjs +5 -16
- package/esm2022/icon-selector/icon-selector.component.mjs +1 -1
- package/esm2022/icon-selector/icons/index.mjs +1 -1
- package/esm2022/operations/shared/status-option.model.mjs +1 -1
- package/esm2022/protocol-lwm2m/components/configuration/lwm2m-configuration.component.mjs +2 -2
- package/esm2022/protocol-opcua/opcua-auto-apply-settings.component.mjs +1 -1
- package/esm2022/register-device/bulk/bulk-device-registration-modal.component.mjs +17 -9
- package/esm2022/register-device/general/general-device-registration-button.component.mjs +3 -3
- package/esm2022/register-device/general/general-device-registration.component.mjs +109 -33
- package/esm2022/remote-access/configurations/c8y-ngx-components-remote-access-configurations.mjs +5 -0
- package/esm2022/remote-access/configurations/index.mjs +16 -0
- package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.mjs +218 -0
- package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.mjs +60 -0
- package/esm2022/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.mjs +36 -0
- package/esm2022/remote-access/data/c8y-ngx-components-remote-access-data.mjs +5 -0
- package/esm2022/remote-access/data/index.mjs +3 -0
- package/esm2022/remote-access/data/remote-access-protocol-provider.mjs +2 -0
- package/esm2022/remote-access/data/remote-access.service.mjs +200 -0
- package/esm2022/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.mjs +5 -0
- package/esm2022/remote-access/passthrough/index.mjs +36 -0
- package/esm2022/remote-access/shared/c8y-ngx-components-remote-access-shared.mjs +5 -0
- package/esm2022/remote-access/shared/index.mjs +3 -0
- package/esm2022/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.mjs +49 -0
- package/esm2022/remote-access/shared/ssh-key-input/ssh-key-input.component.mjs +87 -0
- package/esm2022/remote-access/ssh/c8y-ngx-components-remote-access-ssh.mjs +5 -0
- package/esm2022/remote-access/ssh/index.mjs +73 -0
- package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +5 -0
- package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/index.mjs +2 -0
- package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.mjs +104 -0
- package/esm2022/remote-access/telnet/c8y-ngx-components-remote-access-telnet.mjs +5 -0
- package/esm2022/remote-access/telnet/index.mjs +43 -0
- package/esm2022/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.mjs +5 -0
- package/esm2022/remote-access/terminal-viewer/index.mjs +2 -0
- package/esm2022/remote-access/terminal-viewer/shell-adapter.mjs +36 -0
- package/esm2022/remote-access/terminal-viewer/telnet-negotiator.mjs +96 -0
- package/esm2022/remote-access/terminal-viewer/terminal-viewer.component.mjs +101 -0
- package/esm2022/remote-access/vnc/c8y-ngx-components-remote-access-vnc.mjs +5 -0
- package/esm2022/remote-access/vnc/index.mjs +73 -0
- package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +5 -0
- package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/index.mjs +2 -0
- package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.mjs +59 -0
- package/esm2022/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +5 -0
- package/esm2022/remote-access/vnc/vnc-viewer/index.mjs +2 -0
- package/esm2022/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.mjs +57 -0
- package/esm2022/remote-access/vnc/vnc-viewer/vnc-viewer.component.mjs +158 -0
- package/esm2022/replace-device/replace-device-wizard/replace-device-wizard.model.mjs +1 -1
- package/esm2022/report-dashboard/report-dashboard-list.component.mjs +4 -3
- package/esm2022/repository/configuration/device-tab/device-configuration-list.component.mjs +1 -1
- package/esm2022/repository/shared/repository.model.mjs +1 -1
- package/esm2022/repository/shared/repository.service.mjs +3 -3
- package/esm2022/services/status-options/status-options.model.mjs +1 -1
- package/esm2022/sub-assets/group-info.component.mjs +1 -1
- package/esm2022/translation-editor/data/translation-store.service.mjs +4 -3
- package/esm2022/trusted-certificates/list/trusted-certificate-list.component.mjs +35 -9
- package/esm2022/upgrade/bridge.service.mjs +16 -2
- package/esm2022/widgets/implementations/alarms/severity-icon.pipe.mjs +1 -1
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.mjs +3 -2
- package/esm2022/widgets/implementations/kpi/kpi-widget.model.mjs +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-api.mjs +3 -2
- package/fesm2022/c8y-ngx-components-api.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs +12 -7
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +2 -2
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +15 -20
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +48 -23
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-grid.mjs +48 -28
- package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +174 -0
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +125 -105
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +57 -0
- package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +147 -31
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +1452 -1414
- package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-files-repository.mjs +5 -16
- package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector-icons.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +1 -1
- package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-register-device.mjs +269 -188
- package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +314 -0
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-data.mjs +206 -0
- package/fesm2022/c8y-ngx-components-remote-access-data.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +42 -0
- package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +138 -0
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +111 -0
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +79 -0
- package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +50 -0
- package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +235 -0
- package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +66 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +211 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +79 -0
- package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-report-dashboard.mjs +3 -2
- package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-shared.mjs +2 -2
- package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -2
- package/fesm2022/c8y-ngx-components-translation-editor-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +43 -17
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs +16 -2
- package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +157 -42
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/files-repository/files-repository.component.d.ts.map +1 -1
- package/files-repository/files-repository.service.d.ts +0 -2
- package/files-repository/files-repository.service.d.ts.map +1 -1
- package/icon-selector/icon-selector.component.d.ts +3 -2
- package/icon-selector/icon-selector.component.d.ts.map +1 -1
- package/icon-selector/icons/index.d.ts +1 -0
- package/icon-selector/icons/index.d.ts.map +1 -1
- package/locales/de.po +157 -5
- package/locales/es.po +157 -5
- package/locales/fr.po +157 -5
- package/locales/ja_JP.po +156 -5
- package/locales/ko.po +156 -5
- package/locales/locales.pot +156 -4
- package/locales/nl.po +157 -5
- package/locales/pl.po +157 -5
- package/locales/pt_BR.po +157 -5
- package/locales/zh_CN.po +156 -5
- package/locales/zh_TW.po +156 -5
- package/operations/shared/status-option.model.d.ts +2 -1
- package/operations/shared/status-option.model.d.ts.map +1 -1
- package/package.json +1 -1
- package/register-device/bulk/bulk-device-registration-modal.component.d.ts +6 -2
- package/register-device/bulk/bulk-device-registration-modal.component.d.ts.map +1 -1
- package/register-device/general/general-device-registration-button.component.d.ts +1 -1
- package/register-device/general/general-device-registration-button.component.d.ts.map +1 -1
- package/register-device/general/general-device-registration.component.d.ts +21 -7
- package/register-device/general/general-device-registration.component.d.ts.map +1 -1
- package/remote-access/configurations/c8y-ngx-components-remote-access-configurations.d.ts.map +1 -0
- package/remote-access/configurations/index.d.ts +3 -0
- package/remote-access/configurations/index.d.ts.map +1 -0
- package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts +34 -0
- package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts.map +1 -0
- package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts +17 -0
- package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts.map +1 -0
- package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts +18 -0
- package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts.map +1 -0
- package/remote-access/data/c8y-ngx-components-remote-access-data.d.ts.map +1 -0
- package/remote-access/data/index.d.ts +3 -0
- package/remote-access/data/index.d.ts.map +1 -0
- package/remote-access/data/remote-access-protocol-provider.d.ts +21 -0
- package/remote-access/data/remote-access-protocol-provider.d.ts.map +1 -0
- package/remote-access/data/remote-access.service.d.ts +94 -0
- package/remote-access/data/remote-access.service.d.ts.map +1 -0
- package/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.d.ts.map +1 -0
- package/remote-access/passthrough/index.d.ts +17 -0
- package/remote-access/passthrough/index.d.ts.map +1 -0
- package/remote-access/shared/c8y-ngx-components-remote-access-shared.d.ts.map +1 -0
- package/remote-access/shared/index.d.ts +3 -0
- package/remote-access/shared/index.d.ts.map +1 -0
- package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts +37 -0
- package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts.map +1 -0
- package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts +38 -0
- package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts.map +1 -0
- package/remote-access/ssh/c8y-ngx-components-remote-access-ssh.d.ts.map +1 -0
- package/remote-access/ssh/index.d.ts +22 -0
- package/remote-access/ssh/index.d.ts.map +1 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.d.ts.map +1 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts +2 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts.map +1 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts +64 -0
- package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts.map +1 -0
- package/remote-access/telnet/c8y-ngx-components-remote-access-telnet.d.ts.map +1 -0
- package/remote-access/telnet/index.d.ts +17 -0
- package/remote-access/telnet/index.d.ts.map +1 -0
- package/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.d.ts.map +1 -0
- package/remote-access/terminal-viewer/index.d.ts +2 -0
- package/remote-access/terminal-viewer/index.d.ts.map +1 -0
- package/remote-access/terminal-viewer/shell-adapter.d.ts +14 -0
- package/remote-access/terminal-viewer/shell-adapter.d.ts.map +1 -0
- package/remote-access/terminal-viewer/telnet-negotiator.d.ts +13 -0
- package/remote-access/terminal-viewer/telnet-negotiator.d.ts.map +1 -0
- package/remote-access/terminal-viewer/terminal-viewer.component.d.ts +25 -0
- package/remote-access/terminal-viewer/terminal-viewer.component.d.ts.map +1 -0
- package/remote-access/vnc/c8y-ngx-components-remote-access-vnc.d.ts.map +1 -0
- package/remote-access/vnc/index.d.ts +22 -0
- package/remote-access/vnc/index.d.ts.map +1 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.d.ts.map +1 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts +2 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts.map +1 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts +46 -0
- package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts.map +1 -0
- package/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.d.ts.map +1 -0
- package/remote-access/vnc/vnc-viewer/index.d.ts +2 -0
- package/remote-access/vnc/vnc-viewer/index.d.ts.map +1 -0
- package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts +32 -0
- package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts.map +1 -0
- package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts +37 -0
- package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts.map +1 -0
- package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts +2 -1
- package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts.map +1 -1
- package/report-dashboard/report-dashboard-list.component.d.ts +29 -0
- package/report-dashboard/report-dashboard-list.component.d.ts.map +1 -1
- package/repository/shared/repository.model.d.ts +2 -1
- package/repository/shared/repository.model.d.ts.map +1 -1
- package/services/status-options/status-options.model.d.ts +2 -1
- package/services/status-options/status-options.model.d.ts.map +1 -1
- package/sub-assets/group-info.component.d.ts +2 -1
- package/sub-assets/group-info.component.d.ts.map +1 -1
- package/translation-editor/data/translation-store.service.d.ts.map +1 -1
- package/trusted-certificates/list/trusted-certificate-list.component.d.ts +7 -2
- package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
- package/upgrade/bridge.service.d.ts +5 -0
- package/upgrade/bridge.service.d.ts.map +1 -1
- package/widgets/implementations/alarms/severity-icon.pipe.d.ts.map +1 -1
- package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.d.ts.map +1 -1
- package/widgets/implementations/kpi/kpi-widget.model.d.ts +2 -1
- package/widgets/implementations/kpi/kpi-widget.model.d.ts.map +1 -1
- package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts +0 -10
- package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts.map +0 -1
- package/esm2022/ecosystem/application-plugins/only-latest-plugin-version.pipe.mjs +0 -20
|
@@ -7,12 +7,12 @@ import { gettext, PackageType, Status, DropAreaComponent, C8yStepper, internalAp
|
|
|
7
7
|
import * as i3 from '@ngx-translate/core';
|
|
8
8
|
import { saveAs } from 'file-saver';
|
|
9
9
|
import { groupBy, uniqBy, get, pick, omit, isUndefined, kebabCase, cloneDeep } from 'lodash-es';
|
|
10
|
-
import { BehaviorSubject, defer, merge, combineLatest, pipe } from 'rxjs';
|
|
11
|
-
import { map, shareReplay, debounceTime, take, filter, distinctUntilKeyChanged, tap, switchMap } from 'rxjs/operators';
|
|
10
|
+
import { BehaviorSubject, defer, merge, combineLatest, Subject, pipe } from 'rxjs';
|
|
11
|
+
import { map, shareReplay, debounceTime, take, filter, distinctUntilKeyChanged, tap, switchMap, takeUntil } from 'rxjs/operators';
|
|
12
12
|
import { satisfies, gt, coerce } from 'semver';
|
|
13
|
-
import * as
|
|
13
|
+
import * as i5 from '@angular/common';
|
|
14
14
|
import * as i1 from '@angular/forms';
|
|
15
|
-
import { Validators, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
15
|
+
import { Validators, NG_VALUE_ACCESSOR, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
16
16
|
import * as i8 from 'ngx-bootstrap/popover';
|
|
17
17
|
import { PopoverModule } from 'ngx-bootstrap/popover';
|
|
18
18
|
import * as i4 from '@angular/router';
|
|
@@ -22,10 +22,10 @@ import * as i7 from 'ngx-bootstrap/tooltip';
|
|
|
22
22
|
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
23
23
|
import * as i8$1 from '@angular/cdk/a11y';
|
|
24
24
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
25
|
-
import * as i3$
|
|
25
|
+
import * as i3$2 from '@c8y/ngx-components/icon-selector';
|
|
26
26
|
import { IconSelectorModule } from '@c8y/ngx-components/icon-selector';
|
|
27
27
|
import * as i1$1 from 'ngx-bootstrap/modal';
|
|
28
|
-
import * as i5 from '@angular/cdk/stepper';
|
|
28
|
+
import * as i5$1 from '@angular/cdk/stepper';
|
|
29
29
|
|
|
30
30
|
/** Wizard types */
|
|
31
31
|
var EcosystemWizards;
|
|
@@ -35,6 +35,7 @@ var EcosystemWizards;
|
|
|
35
35
|
EcosystemWizards["PACKAGE_UPLOAD"] = "ecosystemPackageUpload";
|
|
36
36
|
EcosystemWizards["BLUEPRINT_DEPLOYMENT"] = "ecosystemBlueprintDeployment";
|
|
37
37
|
EcosystemWizards["LICENSE_CONFIRM"] = "ecosystemLicenseConfirm";
|
|
38
|
+
EcosystemWizards["ARCHIVED_CONFIRM"] = "ecosystemArchivedConfirm";
|
|
38
39
|
})(EcosystemWizards || (EcosystemWizards = {}));
|
|
39
40
|
var ERROR_TYPE;
|
|
40
41
|
(function (ERROR_TYPE) {
|
|
@@ -72,7 +73,8 @@ const PRODUCT_EXPERIENCE_ECOSYSTEM = {
|
|
|
72
73
|
PLUGIN_LIST: 'plugin-list',
|
|
73
74
|
PACKAGE_VERSIONS: 'package-versions-list',
|
|
74
75
|
UPDATE_PLUGIN_OF_APP: 'update-plugin-of-app',
|
|
75
|
-
LIST_FILTERS: 'list-filters'
|
|
76
|
+
LIST_FILTERS: 'list-filters',
|
|
77
|
+
PACKAGE_DETAILS: 'package-details'
|
|
76
78
|
},
|
|
77
79
|
ACTIONS: {
|
|
78
80
|
AVAILABILITY_CHANGE: 'availabilityChange',
|
|
@@ -92,7 +94,9 @@ const PRODUCT_EXPERIENCE_ECOSYSTEM = {
|
|
|
92
94
|
UPLOAD: 'upload',
|
|
93
95
|
SET_FILTER_TERM: 'setFilterTerm',
|
|
94
96
|
SET_PREDEFINED_FILTERS: 'setPredefinedFilters',
|
|
95
|
-
RESET_FILTER: 'resetFilter'
|
|
97
|
+
RESET_FILTER: 'resetFilter',
|
|
98
|
+
INSTALL_PLUGINS_INITIATED: 'installPluginsInitiated',
|
|
99
|
+
DEPLOY_APPLICATION_INITIATED: 'deployApplicationInitiated'
|
|
96
100
|
},
|
|
97
101
|
RESULTS: {
|
|
98
102
|
DEPLOYED: 'deployed',
|
|
@@ -168,6 +172,10 @@ const PACKAGE_TYPE_LABELS = {
|
|
|
168
172
|
[PackageType.UNKNOWN]: {
|
|
169
173
|
label: gettext('CUSTOM`Package maintained by an unknown source.`'),
|
|
170
174
|
tooltip: gettext('Package maintainer unknown.')
|
|
175
|
+
},
|
|
176
|
+
[PackageType.ARCHIVED]: {
|
|
177
|
+
label: gettext('ARCHIVED`Package out of maintenance.`'),
|
|
178
|
+
tooltip: gettext('The package was marked by the author as archived.')
|
|
171
179
|
}
|
|
172
180
|
};
|
|
173
181
|
const packageProperties = [
|
|
@@ -327,6 +335,31 @@ class EcosystemService {
|
|
|
327
335
|
});
|
|
328
336
|
return result;
|
|
329
337
|
}
|
|
338
|
+
/**
|
|
339
|
+
* If the plugin is archived, a warning should be shown.
|
|
340
|
+
*
|
|
341
|
+
* @param pluginsToInstall The list of plugins to install.
|
|
342
|
+
* @returns true if the installation can continue.
|
|
343
|
+
*/
|
|
344
|
+
async verifyArchived(pluginsToInstall) {
|
|
345
|
+
let _resolve;
|
|
346
|
+
const result = new Promise(resolve => {
|
|
347
|
+
_resolve = resolve;
|
|
348
|
+
});
|
|
349
|
+
pluginsToInstall = pluginsToInstall.filter(plugin => plugin.type === PackageType.ARCHIVED);
|
|
350
|
+
if (pluginsToInstall.length === 0) {
|
|
351
|
+
return Promise.resolve(true);
|
|
352
|
+
}
|
|
353
|
+
const initialState = {
|
|
354
|
+
id: EcosystemWizards.ARCHIVED_CONFIRM
|
|
355
|
+
};
|
|
356
|
+
const modalOptions = { initialState };
|
|
357
|
+
const wizard = this.wizardModalService.show(modalOptions);
|
|
358
|
+
wizard.content.onClose.subscribe(confirmed => {
|
|
359
|
+
_resolve(confirmed);
|
|
360
|
+
});
|
|
361
|
+
return result;
|
|
362
|
+
}
|
|
330
363
|
/**
|
|
331
364
|
* @description
|
|
332
365
|
* Compares currently deployed application version with application version tagged as "latest"
|
|
@@ -1180,7 +1213,7 @@ class AddApplicationComponent {
|
|
|
1180
1213
|
this.createdApp = null;
|
|
1181
1214
|
}
|
|
1182
1215
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AddApplicationComponent, deps: [{ token: EcosystemService }, { token: i2.AlertService }, { token: i3$1.ApplicationService }, { token: i2.WizardComponent }, { token: i3.TranslateService }, { token: PackageAvailabilityService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1183
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AddApplicationComponent, selector: "c8y-add-application", inputs: { headerText: "headerText", headerIcon: "headerIcon", successText: "successText", createApplicationHandler: "createApplicationHandler", uploadApplicationHandler: "uploadApplicationHandler", canGoBack: "canGoBack", applicationType: "applicationType" }, viewQueries: [{ propertyName: "dropAreaComponent", first: true, predicate: DropAreaComponent, descendants: true }], ngImport: i0, template: "<c8y-wizard-header>\n <i [c8yIcon]=\"headerIcon\"></i>\n <h4 id=\"modal-title\">{{ headerText | translate }}</h4>\n</c8y-wizard-header>\n\n<c8y-wizard-body>\n <p class=\"p-16 text-center text-medium separator-bottom sticky-top bg-component\">\n {{ 'Upload a *.zip file' | translate }}\n </p>\n <c8y-form-group\n class=\"m-t-16 m-l-auto m-r-auto\"\n style=\"max-width: 265px\"\n id=\"modal-body\"\n *ngIf=\"!isAppCreated; else appCreated\"\n [hasError]=\"!!errorMessage\"\n >\n <c8y-drop-area\n class=\"drop-area\"\n (dropped)=\"onFileDroppedEvent($event)\"\n [accept]=\"'.zip'\"\n [loading]=\"isLoading\"\n [maxAllowedFiles]=\"1\"\n [progress]=\"progress | async\"\n ></c8y-drop-area>\n <c8y-messages>\n <c8y-message *ngIf=\"errorMessage\">\n {{ errorMessage | translate }}\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <div class=\"card-block\" *ngIf=\"applicationType === 'package'\">\n <c8y-form-group>\n <label\n class=\"m-r-8 d-inline-block\"\n id=\"availabilitySelectorLabel\"\n for=\"availabilitySelector\"\n >\n {{ 'Select extension availability' | translate }}\n </label>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"availabilityHelpPopover\"\n placement=\"top\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n id=\"availabilitySelector\"\n name=\"availabilitySelector\"\n [(ngModel)]=\"selectedAvailability\"\n >\n <option\n *ngFor=\"let availability of packageAvailability.availabilities\"\n [ngValue]=\"availability.value\"\n >\n {{ availability.label | translate }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n </div>\n <ng-template #appCreated>\n <div\n class=\"d-flex a-i-center j-c-center\"\n style=\"min-height: 285px\"\n >\n <c8y-operation-result\n class=\"lead\"\n type=\"success\"\n text=\"{{ successText | translate }}\"\n [vertical]=\"true\"\n [size]=\"84\"\n ></c8y-operation-result>\n </div>\n </ng-template>\n <ng-template #availabilityHelpPopover>\n <div [innerHtml]=\"availabilityHelpPopoverText | translate\"></div>\n </ng-template>\n</c8y-wizard-body>\n\n<c8y-wizard-footer>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Back' | translate }}\"\n type=\"button\"\n (click)=\"back()\"\n *ngIf=\"!isAppCreated && canGoBack\"\n translate\n >\n Back\n </button>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cancel()\"\n *ngIf=\"!isAppCreated\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Done' | translate }}\"\n type=\"button\"\n (click)=\"done()\"\n *ngIf=\"isAppCreated\"\n translate\n >\n Done\n </button>\n <a\n class=\"btn btn-primary\"\n title=\"{{ 'Open' | translate }}\"\n target=\"_blank\"\n (click)=\"$event.stopPropagation()\"\n *ngIf=\"isAppCreated && canOpenInBrowser\"\n [href]=\"getHref(createdApp)\"\n rel=\"noopener noreferrer\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"external-link\"\n ></i>\n {{ 'Open' | translate }}\n </a>\n</c8y-wizard-footer>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
1216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AddApplicationComponent, selector: "c8y-add-application", inputs: { headerText: "headerText", headerIcon: "headerIcon", successText: "successText", createApplicationHandler: "createApplicationHandler", uploadApplicationHandler: "uploadApplicationHandler", canGoBack: "canGoBack", applicationType: "applicationType" }, viewQueries: [{ propertyName: "dropAreaComponent", first: true, predicate: DropAreaComponent, descendants: true }], ngImport: i0, template: "<c8y-wizard-header>\n <i [c8yIcon]=\"headerIcon\"></i>\n <h4 id=\"modal-title\">{{ headerText | translate }}</h4>\n</c8y-wizard-header>\n\n<c8y-wizard-body>\n <p class=\"p-16 text-center text-medium separator-bottom sticky-top bg-component\">\n {{ 'Upload a *.zip file' | translate }}\n </p>\n <c8y-form-group\n class=\"m-t-16 m-l-auto m-r-auto\"\n style=\"max-width: 265px\"\n id=\"modal-body\"\n *ngIf=\"!isAppCreated; else appCreated\"\n [hasError]=\"!!errorMessage\"\n >\n <c8y-drop-area\n class=\"drop-area\"\n (dropped)=\"onFileDroppedEvent($event)\"\n [accept]=\"'.zip'\"\n [loading]=\"isLoading\"\n [maxAllowedFiles]=\"1\"\n [progress]=\"progress | async\"\n ></c8y-drop-area>\n <c8y-messages>\n <c8y-message *ngIf=\"errorMessage\">\n {{ errorMessage | translate }}\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <div class=\"card-block\" *ngIf=\"applicationType === 'package'\">\n <c8y-form-group>\n <label\n class=\"m-r-8 d-inline-block\"\n id=\"availabilitySelectorLabel\"\n for=\"availabilitySelector\"\n >\n {{ 'Select extension availability' | translate }}\n </label>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"availabilityHelpPopover\"\n placement=\"top\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n id=\"availabilitySelector\"\n name=\"availabilitySelector\"\n [(ngModel)]=\"selectedAvailability\"\n >\n <option\n *ngFor=\"let availability of packageAvailability.availabilities\"\n [ngValue]=\"availability.value\"\n >\n {{ availability.label | translate }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n </div>\n <ng-template #appCreated>\n <div\n class=\"d-flex a-i-center j-c-center\"\n style=\"min-height: 285px\"\n >\n <c8y-operation-result\n class=\"lead\"\n type=\"success\"\n text=\"{{ successText | translate }}\"\n [vertical]=\"true\"\n [size]=\"84\"\n ></c8y-operation-result>\n </div>\n </ng-template>\n <ng-template #availabilityHelpPopover>\n <div [innerHtml]=\"availabilityHelpPopoverText | translate\"></div>\n </ng-template>\n</c8y-wizard-body>\n\n<c8y-wizard-footer>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Back' | translate }}\"\n type=\"button\"\n (click)=\"back()\"\n *ngIf=\"!isAppCreated && canGoBack\"\n translate\n >\n Back\n </button>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cancel()\"\n *ngIf=\"!isAppCreated\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Done' | translate }}\"\n type=\"button\"\n (click)=\"done()\"\n *ngIf=\"isAppCreated\"\n translate\n >\n Done\n </button>\n <a\n class=\"btn btn-primary\"\n title=\"{{ 'Open' | translate }}\"\n target=\"_blank\"\n (click)=\"$event.stopPropagation()\"\n *ngIf=\"isAppCreated && canOpenInBrowser\"\n [href]=\"getHref(createdApp)\"\n rel=\"noopener noreferrer\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"external-link\"\n ></i>\n {{ 'Open' | translate }}\n </a>\n</c8y-wizard-footer>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.OperationResultComponent, selector: "c8y-operation-result", inputs: ["text", "vertical", "size", "type"] }, { kind: "component", type: i2.DropAreaComponent, selector: "c8y-drop-area", inputs: ["formControl", "title", "message", "icon", "loadingMessage", "forceHideList", "alwaysShow", "clickToOpen", "loading", "progress", "maxAllowedFiles", "files", "maxFileSizeInMegaBytes", "accept"], outputs: ["dropped"] }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: i2.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "component", type: i2.WizardHeaderComponent, selector: "c8y-wizard-header" }, { kind: "component", type: i2.WizardBodyComponent, selector: "c8y-wizard-body" }, { kind: "component", type: i2.WizardFooterComponent, selector: "c8y-wizard-footer" }, { kind: "directive", type: i8.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
|
|
1184
1217
|
}
|
|
1185
1218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AddApplicationComponent, decorators: [{
|
|
1186
1219
|
type: Component,
|
|
@@ -1209,9 +1242,9 @@ class TranslatePackageLabelPipe {
|
|
|
1209
1242
|
this.translate = translate;
|
|
1210
1243
|
}
|
|
1211
1244
|
transform(rawPackageLabel) {
|
|
1212
|
-
const isOneOfTheKnownOnes = !!PACKAGE_TYPE_LABELS[rawPackageLabel];
|
|
1245
|
+
const isOneOfTheKnownOnes = !!PACKAGE_TYPE_LABELS[rawPackageLabel?.toUpperCase()];
|
|
1213
1246
|
if (isOneOfTheKnownOnes) {
|
|
1214
|
-
return this.translate.instant(PACKAGE_TYPE_LABELS[rawPackageLabel].label);
|
|
1247
|
+
return this.translate.instant(PACKAGE_TYPE_LABELS[rawPackageLabel?.toUpperCase()].label);
|
|
1215
1248
|
}
|
|
1216
1249
|
return rawPackageLabel;
|
|
1217
1250
|
}
|
|
@@ -1352,11 +1385,11 @@ class ApplicationCardComponent {
|
|
|
1352
1385
|
}
|
|
1353
1386
|
}
|
|
1354
1387
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ApplicationCardComponent, deps: [{ token: i3$1.ApplicationService }, { token: EcosystemService }, { token: i2.AlertService }, { token: i4.Router }, { token: i2.WizardModalService }, { token: i2.AlertService }, { token: i2.PluginsService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1355
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ApplicationCardComponent, selector: "c8y-application-card", inputs: { app: "app", canEdit: "canEdit" }, outputs: { onAppDeleted: "onAppDeleted", onAppCloned: "onAppCloned" }, ngImport: i0, template: "<div\n class=\"card pointer card--d-col notFeature\"\n data-cy=\"application-card--extensions-list\"\n *ngIf=\"!isFeature\"\n>\n <div\n class=\"card-block text-center card-column-40\"\n data-cy=\"application-card--package-name\"\n (click)=\"detail()\"\n >\n <button\n class=\"card__ribbon btn-clean\"\n [attr.aria-label]=\"\n (app.label || app.manifest?.label | translatePackageLabel) +\n ': ' +\n (packageTypeLabels[packageType].tooltip | translate)\n \"\n tooltip=\"{{ packageTypeLabels[packageType].tooltip | translate }}\"\n placement=\"right\"\n type=\"button\"\n *ngIf=\"packageType !== PACKAGE_TYPE.CUSTOM\"\n [delay]=\"500\"\n >\n <span\n [ngClass]=\"{\n 'bg-info': packageType === PACKAGE_TYPE.COMMUNITY,\n 'bg-primary': packageType === PACKAGE_TYPE.OFFICIAL\n }\"\n >\n {{ app.label || app.manifest?.label | translatePackageLabel }}\n </span>\n </button>\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i\n c8yIcon=\"big-parcel\"\n *ngIf=\"isPackage\"\n ></i>\n <i\n c8yIcon=\"microchip\"\n *ngIf=\"isMicroservice\"\n ></i>\n <i\n c8yIcon=\"globe1\"\n *ngIf=\"isExternal\"\n ></i>\n </div>\n <div style=\"line-height: 1.3\">\n <p class=\"e2e-appCardName text-medium text-break-word\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <button\n class=\"btn-clean m-l-4\"\n [attr.aria-label]=\"'Update available' | translate\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n >\n <i\n class=\"text-warning icon-16\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n </p>\n </ng-container>\n <p\n class=\"small text-break-word\"\n *ngIf=\"app.manifest?.author\"\n >\n {{ app.manifest.author }}\n </p>\n </div>\n </div>\n <div\n class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\"\n (click)=\"detail()\"\n >\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0 text-break-word\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n {{ app.description || app.manifest?.description | translate }}\n </p>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0\"\n *ngIf=\"!app.description && !app.manifest?.description\"\n >\n <em class=\"text-muted\">{{ 'No description available.' | translate }}</em>\n </p>\n </div>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 d-flex card-column-20 text-center-grid flex-wrap gap-8\"\n >\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n ((isUnpacked ? UNPACKED_LABEL : appState?.label) | translate) +\n ': ' +\n (appState?.tooltip | translate)\n \"\n [tooltip]=\"appState?.tooltip | translate\"\n placement=\"top\"\n [delay]=\"500\"\n >\n <span\n class=\"label\"\n [ngClass]=\"appState?.class\"\n >\n {{ appState?.label | translate }}\n </span>\n </button>\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n (packageContentState?.label | translate) +\n ': ' +\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL) | translate\n \"\n [tooltip]=\"\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL\n ) | translate\n \"\n placement=\"top\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState?.class ? packageContentState?.class : 'label-danger'\"\n >\n {{\n packageContentState?.label || packageTypeLabels[PACKAGE_TYPE.UNKNOWN].label | translate\n }}\n </span>\n </button>\n </div>\n <div class=\"card-footer no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <div class=\"p-b-16 card-hidden-list\"></div>\n <button\n class=\"btn btn-sm btn-default\"\n [title]=\"openButtonTitle | translate\"\n type=\"button\"\n (click)=\"openApp(); $event.stopPropagation()\"\n *ngIf=\"canOpenInBrowser\"\n [disabled]=\"disableOpenInBrowser\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"external-link\"\n ></i>\n {{ 'Open' | translate }}\n </button>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n </div>\n <div class=\"p-r-40 card-hidden-grid\"></div>\n <div\n class=\"card-actions m-t-0\"\n *ngIf=\"canEdit || canOpenInBrowser || canDelete\"\n >\n <div\n class=\"dropdown\"\n #appCardDropdown=\"bs-dropdown\"\n dropdown\n [cdkTrapFocus]=\"appCardDropdown.isOpen\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n data-cy=\"application-card--settings-button\"\n type=\"button\"\n dropdownToggle\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n *dropdownMenu\n >\n <li *ngIf=\"canEdit\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n data-cy=\"application-card--edit-button\"\n (click)=\"detail()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"pencil\"\n ></i>\n {{ 'Edit' | translate }}\n </button>\n </li>\n <ng-container *c8yIfAllowed=\"['ROLE_APPLICATION_MANAGEMENT_ADMIN']\">\n <li>\n <button\n [title]=\"canDelete ? ('Delete' | translate) : (CANNOT_DELETE_HINT | translate)\"\n type=\"button\"\n data-cy=\"application-card--delete-button\"\n [disabled]=\"!canDelete\"\n (click)=\"delete()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"delete\"\n ></i>\n {{ 'Delete' | translate }}\n </button>\n </li>\n <li *ngIf=\"canClone\">\n <button\n [title]=\"'Clone`package,verb`' | translate\"\n type=\"button\"\n *ngIf=\"isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`package,verb`' | translate }}\n </button>\n <button\n [title]=\"'Clone`application,verb`' | translate\"\n type=\"button\"\n *ngIf=\"!isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`application,verb`' | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</div>\n\n<button\n class=\"card pointer card--d-col\"\n type=\"button\"\n (click)=\"detail()\"\n *ngIf=\"isFeature\"\n>\n <div class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i c8yIcon=\"tab\"></i>\n </div>\n <div>\n <p\n class=\"e2e-appCardName text-medium\"\n title=\"{{ app | humanizeAppName | async }}\"\n >\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div\n class=\"text-center-grid\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <span\n class=\"label\"\n [ngClass]=\"appState.class\"\n >\n {{ appState.label | translate }}\n </span>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState.class\"\n >\n {{ packageContentState.label | translate }}\n </span>\n </div>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n</button>\n", dependencies: [{ kind: "component", type: i2.AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.IfAllowedDirective, selector: "[c8yIfAllowed]", inputs: ["c8yIfAllowed", "c8yIfAllowedAllowAny"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i8$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.HumanizeAppNamePipe, name: "humanizeAppName" }, { kind: "pipe", type: TranslatePackageLabelPipe, name: "translatePackageLabel" }] }); }
|
|
1388
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ApplicationCardComponent, selector: "c8y-application-card", inputs: { app: "app", canEdit: "canEdit" }, outputs: { onAppDeleted: "onAppDeleted", onAppCloned: "onAppCloned" }, ngImport: i0, template: "<div\n class=\"card pointer card--d-col notFeature\"\n data-cy=\"application-card--extensions-list\"\n *ngIf=\"!isFeature\"\n>\n <div\n class=\"card-block text-center card-column-40\"\n data-cy=\"application-card--package-name\"\n (click)=\"detail()\"\n >\n <button\n class=\"card__ribbon btn-clean\"\n [attr.aria-label]=\"\n (app.label || app.manifest?.label | translatePackageLabel) +\n ': ' +\n (packageTypeLabels[packageType].tooltip | translate)\n \"\n tooltip=\"{{ packageTypeLabels[packageType].tooltip | translate }}\"\n placement=\"right\"\n type=\"button\"\n *ngIf=\"packageType !== PACKAGE_TYPE.CUSTOM\"\n [delay]=\"500\"\n >\n <span\n [ngClass]=\"{\n 'bg-info': packageType === PACKAGE_TYPE.COMMUNITY,\n 'bg-primary': packageType === PACKAGE_TYPE.OFFICIAL,\n 'bg-warning': packageType === PACKAGE_TYPE.ARCHIVED\n }\"\n >\n {{ app.label || app.manifest?.label | translatePackageLabel }}\n </span>\n </button>\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i\n c8yIcon=\"big-parcel\"\n *ngIf=\"isPackage\"\n ></i>\n <i\n c8yIcon=\"microchip\"\n *ngIf=\"isMicroservice\"\n ></i>\n <i\n c8yIcon=\"globe1\"\n *ngIf=\"isExternal\"\n ></i>\n </div>\n <div style=\"line-height: 1.3\">\n <p class=\"e2e-appCardName text-medium text-break-word\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <button\n class=\"btn-clean m-l-4\"\n [attr.aria-label]=\"'Update available' | translate\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n >\n <i\n class=\"text-warning icon-16\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n </p>\n </ng-container>\n <p\n class=\"small text-break-word\"\n *ngIf=\"app.manifest?.author\"\n >\n {{ app.manifest.author }}\n </p>\n </div>\n </div>\n <div\n class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\"\n (click)=\"detail()\"\n >\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0 text-break-word\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n {{ app.description || app.manifest?.description | translate }}\n </p>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0\"\n *ngIf=\"!app.description && !app.manifest?.description\"\n >\n <em class=\"text-muted\">{{ 'No description available.' | translate }}</em>\n </p>\n </div>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 d-flex card-column-20 text-center-grid flex-wrap gap-8\"\n >\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n ((isUnpacked ? UNPACKED_LABEL : appState?.label) | translate) +\n ': ' +\n (appState?.tooltip | translate)\n \"\n [tooltip]=\"appState?.tooltip | translate\"\n placement=\"top\"\n [delay]=\"500\"\n >\n <span\n class=\"label\"\n [ngClass]=\"appState?.class\"\n >\n {{ appState?.label | translate }}\n </span>\n </button>\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n (packageContentState?.label | translate) +\n ': ' +\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL) | translate\n \"\n [tooltip]=\"\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL\n ) | translate\n \"\n placement=\"top\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState?.class ? packageContentState?.class : 'label-danger'\"\n >\n {{\n packageContentState?.label || packageTypeLabels[PACKAGE_TYPE.UNKNOWN].label | translate\n }}\n </span>\n </button>\n </div>\n <div class=\"card-footer no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <div class=\"p-b-16 card-hidden-list\"></div>\n <button\n class=\"btn btn-sm btn-default\"\n [title]=\"openButtonTitle | translate\"\n type=\"button\"\n (click)=\"openApp(); $event.stopPropagation()\"\n *ngIf=\"canOpenInBrowser\"\n [disabled]=\"disableOpenInBrowser\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"external-link\"\n ></i>\n {{ 'Open' | translate }}\n </button>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n </div>\n <div class=\"p-r-40 card-hidden-grid\"></div>\n <div\n class=\"card-actions m-t-0\"\n *ngIf=\"canEdit || canOpenInBrowser || canDelete\"\n >\n <div\n class=\"dropdown\"\n #appCardDropdown=\"bs-dropdown\"\n dropdown\n [cdkTrapFocus]=\"appCardDropdown.isOpen\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n data-cy=\"application-card--settings-button\"\n type=\"button\"\n dropdownToggle\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n *dropdownMenu\n >\n <li *ngIf=\"canEdit\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n data-cy=\"application-card--edit-button\"\n (click)=\"detail()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"pencil\"\n ></i>\n {{ 'Edit' | translate }}\n </button>\n </li>\n <ng-container *c8yIfAllowed=\"['ROLE_APPLICATION_MANAGEMENT_ADMIN']\">\n <li>\n <button\n [title]=\"canDelete ? ('Delete' | translate) : (CANNOT_DELETE_HINT | translate)\"\n type=\"button\"\n data-cy=\"application-card--delete-button\"\n [disabled]=\"!canDelete\"\n (click)=\"delete()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"delete\"\n ></i>\n {{ 'Delete' | translate }}\n </button>\n </li>\n <li *ngIf=\"canClone\">\n <button\n [title]=\"'Clone`package,verb`' | translate\"\n type=\"button\"\n *ngIf=\"isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`package,verb`' | translate }}\n </button>\n <button\n [title]=\"'Clone`application,verb`' | translate\"\n type=\"button\"\n *ngIf=\"!isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`application,verb`' | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</div>\n\n<button\n class=\"card pointer card--d-col\"\n type=\"button\"\n (click)=\"detail()\"\n *ngIf=\"isFeature\"\n>\n <div class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i c8yIcon=\"tab\"></i>\n </div>\n <div>\n <p\n class=\"e2e-appCardName text-medium\"\n title=\"{{ app | humanizeAppName | async }}\"\n >\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div\n class=\"text-center-grid\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <span\n class=\"label\"\n [ngClass]=\"appState.class\"\n >\n {{ appState.label | translate }}\n </span>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState.class\"\n >\n {{ packageContentState.label | translate }}\n </span>\n </div>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n</button>\n", dependencies: [{ kind: "component", type: i2.AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.IfAllowedDirective, selector: "[c8yIfAllowed]", inputs: ["c8yIfAllowed", "c8yIfAllowedAllowAny"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i8$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.HumanizeAppNamePipe, name: "humanizeAppName" }, { kind: "pipe", type: TranslatePackageLabelPipe, name: "translatePackageLabel" }] }); }
|
|
1356
1389
|
}
|
|
1357
1390
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ApplicationCardComponent, decorators: [{
|
|
1358
1391
|
type: Component,
|
|
1359
|
-
args: [{ selector: 'c8y-application-card', template: "<div\n class=\"card pointer card--d-col notFeature\"\n data-cy=\"application-card--extensions-list\"\n *ngIf=\"!isFeature\"\n>\n <div\n class=\"card-block text-center card-column-40\"\n data-cy=\"application-card--package-name\"\n (click)=\"detail()\"\n >\n <button\n class=\"card__ribbon btn-clean\"\n [attr.aria-label]=\"\n (app.label || app.manifest?.label | translatePackageLabel) +\n ': ' +\n (packageTypeLabels[packageType].tooltip | translate)\n \"\n tooltip=\"{{ packageTypeLabels[packageType].tooltip | translate }}\"\n placement=\"right\"\n type=\"button\"\n *ngIf=\"packageType !== PACKAGE_TYPE.CUSTOM\"\n [delay]=\"500\"\n >\n <span\n [ngClass]=\"{\n 'bg-info': packageType === PACKAGE_TYPE.COMMUNITY,\n 'bg-primary': packageType === PACKAGE_TYPE.OFFICIAL\n }\"\n >\n {{ app.label || app.manifest?.label | translatePackageLabel }}\n </span>\n </button>\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i\n c8yIcon=\"big-parcel\"\n *ngIf=\"isPackage\"\n ></i>\n <i\n c8yIcon=\"microchip\"\n *ngIf=\"isMicroservice\"\n ></i>\n <i\n c8yIcon=\"globe1\"\n *ngIf=\"isExternal\"\n ></i>\n </div>\n <div style=\"line-height: 1.3\">\n <p class=\"e2e-appCardName text-medium text-break-word\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <button\n class=\"btn-clean m-l-4\"\n [attr.aria-label]=\"'Update available' | translate\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n >\n <i\n class=\"text-warning icon-16\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n </p>\n </ng-container>\n <p\n class=\"small text-break-word\"\n *ngIf=\"app.manifest?.author\"\n >\n {{ app.manifest.author }}\n </p>\n </div>\n </div>\n <div\n class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\"\n (click)=\"detail()\"\n >\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0 text-break-word\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n {{ app.description || app.manifest?.description | translate }}\n </p>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0\"\n *ngIf=\"!app.description && !app.manifest?.description\"\n >\n <em class=\"text-muted\">{{ 'No description available.' | translate }}</em>\n </p>\n </div>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 d-flex card-column-20 text-center-grid flex-wrap gap-8\"\n >\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n ((isUnpacked ? UNPACKED_LABEL : appState?.label) | translate) +\n ': ' +\n (appState?.tooltip | translate)\n \"\n [tooltip]=\"appState?.tooltip | translate\"\n placement=\"top\"\n [delay]=\"500\"\n >\n <span\n class=\"label\"\n [ngClass]=\"appState?.class\"\n >\n {{ appState?.label | translate }}\n </span>\n </button>\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n (packageContentState?.label | translate) +\n ': ' +\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL) | translate\n \"\n [tooltip]=\"\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL\n ) | translate\n \"\n placement=\"top\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState?.class ? packageContentState?.class : 'label-danger'\"\n >\n {{\n packageContentState?.label || packageTypeLabels[PACKAGE_TYPE.UNKNOWN].label | translate\n }}\n </span>\n </button>\n </div>\n <div class=\"card-footer no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <div class=\"p-b-16 card-hidden-list\"></div>\n <button\n class=\"btn btn-sm btn-default\"\n [title]=\"openButtonTitle | translate\"\n type=\"button\"\n (click)=\"openApp(); $event.stopPropagation()\"\n *ngIf=\"canOpenInBrowser\"\n [disabled]=\"disableOpenInBrowser\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"external-link\"\n ></i>\n {{ 'Open' | translate }}\n </button>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n </div>\n <div class=\"p-r-40 card-hidden-grid\"></div>\n <div\n class=\"card-actions m-t-0\"\n *ngIf=\"canEdit || canOpenInBrowser || canDelete\"\n >\n <div\n class=\"dropdown\"\n #appCardDropdown=\"bs-dropdown\"\n dropdown\n [cdkTrapFocus]=\"appCardDropdown.isOpen\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n data-cy=\"application-card--settings-button\"\n type=\"button\"\n dropdownToggle\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n *dropdownMenu\n >\n <li *ngIf=\"canEdit\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n data-cy=\"application-card--edit-button\"\n (click)=\"detail()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"pencil\"\n ></i>\n {{ 'Edit' | translate }}\n </button>\n </li>\n <ng-container *c8yIfAllowed=\"['ROLE_APPLICATION_MANAGEMENT_ADMIN']\">\n <li>\n <button\n [title]=\"canDelete ? ('Delete' | translate) : (CANNOT_DELETE_HINT | translate)\"\n type=\"button\"\n data-cy=\"application-card--delete-button\"\n [disabled]=\"!canDelete\"\n (click)=\"delete()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"delete\"\n ></i>\n {{ 'Delete' | translate }}\n </button>\n </li>\n <li *ngIf=\"canClone\">\n <button\n [title]=\"'Clone`package,verb`' | translate\"\n type=\"button\"\n *ngIf=\"isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`package,verb`' | translate }}\n </button>\n <button\n [title]=\"'Clone`application,verb`' | translate\"\n type=\"button\"\n *ngIf=\"!isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`application,verb`' | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</div>\n\n<button\n class=\"card pointer card--d-col\"\n type=\"button\"\n (click)=\"detail()\"\n *ngIf=\"isFeature\"\n>\n <div class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i c8yIcon=\"tab\"></i>\n </div>\n <div>\n <p\n class=\"e2e-appCardName text-medium\"\n title=\"{{ app | humanizeAppName | async }}\"\n >\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div\n class=\"text-center-grid\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <span\n class=\"label\"\n [ngClass]=\"appState.class\"\n >\n {{ appState.label | translate }}\n </span>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState.class\"\n >\n {{ packageContentState.label | translate }}\n </span>\n </div>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n</button>\n" }]
|
|
1392
|
+
args: [{ selector: 'c8y-application-card', template: "<div\n class=\"card pointer card--d-col notFeature\"\n data-cy=\"application-card--extensions-list\"\n *ngIf=\"!isFeature\"\n>\n <div\n class=\"card-block text-center card-column-40\"\n data-cy=\"application-card--package-name\"\n (click)=\"detail()\"\n >\n <button\n class=\"card__ribbon btn-clean\"\n [attr.aria-label]=\"\n (app.label || app.manifest?.label | translatePackageLabel) +\n ': ' +\n (packageTypeLabels[packageType].tooltip | translate)\n \"\n tooltip=\"{{ packageTypeLabels[packageType].tooltip | translate }}\"\n placement=\"right\"\n type=\"button\"\n *ngIf=\"packageType !== PACKAGE_TYPE.CUSTOM\"\n [delay]=\"500\"\n >\n <span\n [ngClass]=\"{\n 'bg-info': packageType === PACKAGE_TYPE.COMMUNITY,\n 'bg-primary': packageType === PACKAGE_TYPE.OFFICIAL,\n 'bg-warning': packageType === PACKAGE_TYPE.ARCHIVED\n }\"\n >\n {{ app.label || app.manifest?.label | translatePackageLabel }}\n </span>\n </button>\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i\n c8yIcon=\"big-parcel\"\n *ngIf=\"isPackage\"\n ></i>\n <i\n c8yIcon=\"microchip\"\n *ngIf=\"isMicroservice\"\n ></i>\n <i\n c8yIcon=\"globe1\"\n *ngIf=\"isExternal\"\n ></i>\n </div>\n <div style=\"line-height: 1.3\">\n <p class=\"e2e-appCardName text-medium text-break-word\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <button\n class=\"btn-clean m-l-4\"\n [attr.aria-label]=\"'Update available' | translate\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n >\n <i\n class=\"text-warning icon-16\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n </p>\n </ng-container>\n <p\n class=\"small text-break-word\"\n *ngIf=\"app.manifest?.author\"\n >\n {{ app.manifest.author }}\n </p>\n </div>\n </div>\n <div\n class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\"\n (click)=\"detail()\"\n >\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0 text-break-word\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n {{ app.description || app.manifest?.description | translate }}\n </p>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0\"\n *ngIf=\"!app.description && !app.manifest?.description\"\n >\n <em class=\"text-muted\">{{ 'No description available.' | translate }}</em>\n </p>\n </div>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 d-flex card-column-20 text-center-grid flex-wrap gap-8\"\n >\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n ((isUnpacked ? UNPACKED_LABEL : appState?.label) | translate) +\n ': ' +\n (appState?.tooltip | translate)\n \"\n [tooltip]=\"appState?.tooltip | translate\"\n placement=\"top\"\n [delay]=\"500\"\n >\n <span\n class=\"label\"\n [ngClass]=\"appState?.class\"\n >\n {{ appState?.label | translate }}\n </span>\n </button>\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n (packageContentState?.label | translate) +\n ': ' +\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL) | translate\n \"\n [tooltip]=\"\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL\n ) | translate\n \"\n placement=\"top\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState?.class ? packageContentState?.class : 'label-danger'\"\n >\n {{\n packageContentState?.label || packageTypeLabels[PACKAGE_TYPE.UNKNOWN].label | translate\n }}\n </span>\n </button>\n </div>\n <div class=\"card-footer no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <div class=\"p-b-16 card-hidden-list\"></div>\n <button\n class=\"btn btn-sm btn-default\"\n [title]=\"openButtonTitle | translate\"\n type=\"button\"\n (click)=\"openApp(); $event.stopPropagation()\"\n *ngIf=\"canOpenInBrowser\"\n [disabled]=\"disableOpenInBrowser\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"external-link\"\n ></i>\n {{ 'Open' | translate }}\n </button>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n </div>\n <div class=\"p-r-40 card-hidden-grid\"></div>\n <div\n class=\"card-actions m-t-0\"\n *ngIf=\"canEdit || canOpenInBrowser || canDelete\"\n >\n <div\n class=\"dropdown\"\n #appCardDropdown=\"bs-dropdown\"\n dropdown\n [cdkTrapFocus]=\"appCardDropdown.isOpen\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n data-cy=\"application-card--settings-button\"\n type=\"button\"\n dropdownToggle\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n *dropdownMenu\n >\n <li *ngIf=\"canEdit\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n data-cy=\"application-card--edit-button\"\n (click)=\"detail()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"pencil\"\n ></i>\n {{ 'Edit' | translate }}\n </button>\n </li>\n <ng-container *c8yIfAllowed=\"['ROLE_APPLICATION_MANAGEMENT_ADMIN']\">\n <li>\n <button\n [title]=\"canDelete ? ('Delete' | translate) : (CANNOT_DELETE_HINT | translate)\"\n type=\"button\"\n data-cy=\"application-card--delete-button\"\n [disabled]=\"!canDelete\"\n (click)=\"delete()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"delete\"\n ></i>\n {{ 'Delete' | translate }}\n </button>\n </li>\n <li *ngIf=\"canClone\">\n <button\n [title]=\"'Clone`package,verb`' | translate\"\n type=\"button\"\n *ngIf=\"isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`package,verb`' | translate }}\n </button>\n <button\n [title]=\"'Clone`application,verb`' | translate\"\n type=\"button\"\n *ngIf=\"!isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`application,verb`' | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</div>\n\n<button\n class=\"card pointer card--d-col\"\n type=\"button\"\n (click)=\"detail()\"\n *ngIf=\"isFeature\"\n>\n <div class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i c8yIcon=\"tab\"></i>\n </div>\n <div>\n <p\n class=\"e2e-appCardName text-medium\"\n title=\"{{ app | humanizeAppName | async }}\"\n >\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div\n class=\"text-center-grid\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <span\n class=\"label\"\n [ngClass]=\"appState.class\"\n >\n {{ appState.label | translate }}\n </span>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState.class\"\n >\n {{ packageContentState.label | translate }}\n </span>\n </div>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n</button>\n" }]
|
|
1360
1393
|
}], ctorParameters: () => [{ type: i3$1.ApplicationService }, { type: EcosystemService }, { type: i2.AlertService }, { type: i4.Router }, { type: i2.WizardModalService }, { type: i2.AlertService }, { type: i2.PluginsService }, { type: i2.GainsightService }], propDecorators: { app: [{
|
|
1361
1394
|
type: Input
|
|
1362
1395
|
}], canEdit: [{
|
|
@@ -1394,7 +1427,7 @@ class ApplicationPropertiesFormComponent {
|
|
|
1394
1427
|
this.formGroup.patchValue({ ...applicationConfig });
|
|
1395
1428
|
}
|
|
1396
1429
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ApplicationPropertiesFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1397
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ApplicationPropertiesFormComponent, selector: "c8y-application-properties-form", inputs: { application: "application", disabled: "disabled" }, usesOnChanges: true, ngImport: i0, template: "<form\n class=\"c8y-wizard-form text-left\"\n name=\"appDeployForm\"\n (ngSubmit)=\"(formGroup.valid)\"\n [formGroup]=\"formGroup\"\n novalidate\n>\n <c8y-form-group>\n <label\n for=\"name\"\n translate\n >\n Name\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. My application' | translate }}\"\n name=\"name\"\n type=\"text\"\n required\n formControlName=\"name\"\n />\n </c8y-form-group>\n <c8y-form-group>\n <label\n for=\"key\"\n translate\n >\n Application key\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application-key' | translate }}\"\n name=\"key\"\n type=\"text\"\n required\n formControlName=\"key\"\n />\n </c8y-form-group>\n <c8y-form-group>\n <label\n for=\"contextPath\"\n translate\n >\n Path\n </label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/apps/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n <c8y-form-group>\n <label>{{ 'Select icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n name=\"icon\"\n formControlName=\"icon\"\n ></c8y-icon-selector-wrapper>\n </c8y-form-group>\n</form>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { 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"] }, { kind: "component", type: i3$
|
|
1430
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ApplicationPropertiesFormComponent, selector: "c8y-application-properties-form", inputs: { application: "application", disabled: "disabled" }, usesOnChanges: true, ngImport: i0, template: "<form\n class=\"c8y-wizard-form text-left\"\n name=\"appDeployForm\"\n (ngSubmit)=\"(formGroup.valid)\"\n [formGroup]=\"formGroup\"\n novalidate\n>\n <c8y-form-group>\n <label\n for=\"name\"\n translate\n >\n Name\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. My application' | translate }}\"\n name=\"name\"\n type=\"text\"\n required\n formControlName=\"name\"\n />\n </c8y-form-group>\n <c8y-form-group>\n <label\n for=\"key\"\n translate\n >\n Application key\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application-key' | translate }}\"\n name=\"key\"\n type=\"text\"\n required\n formControlName=\"key\"\n />\n </c8y-form-group>\n <c8y-form-group>\n <label\n for=\"contextPath\"\n translate\n >\n Path\n </label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/apps/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n <c8y-form-group>\n <label>{{ 'Select icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n name=\"icon\"\n formControlName=\"icon\"\n ></c8y-icon-selector-wrapper>\n </c8y-form-group>\n</form>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { 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"] }, { kind: "component", type: i3$2.IconSelectorWrapperComponent, selector: "c8y-icon-selector-wrapper", inputs: ["canRemoveIcon", "selectedIcon", "iconSize"], outputs: ["onSelect"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
|
|
1398
1431
|
}
|
|
1399
1432
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ApplicationPropertiesFormComponent, decorators: [{
|
|
1400
1433
|
type: Component,
|
|
@@ -1422,7 +1455,7 @@ class DuplicateApplicationListComponent {
|
|
|
1422
1455
|
this.wizardComponent.reset();
|
|
1423
1456
|
}
|
|
1424
1457
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DuplicateApplicationListComponent, deps: [{ token: EcosystemService }, { token: i2.WizardComponent }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1425
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DuplicateApplicationListComponent, selector: "c8y-duplicate-application-list", inputs: { stepper: "stepper", existingApps: "existingApps" }, outputs: { onSelectedApp: "onSelectedApp" }, ngImport: i0, template: "<div class=\"c8y-wizard-list-nav\">\n <button\n (click)=\"select(app)\"\n *ngFor=\"let app of existingApps\"\n class=\"list-group-item text-truncate p-t-8 p-b-8 bg-level-0\"\n type=\"button\"\n >\n <c8y-app-icon\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n class=\"list-group-icon\"\n ></c8y-app-icon>\n <span [innerText]=\"app | humanizeAppName | async\" class=\"pointer\"></span>\n <span [ngClass]=\"ecosystemService.getAppState(app).class\" class=\"label m-l-16\">\n {{ ecosystemService.getAppState(app).label | translate }}\n </span>\n </button>\n</div>\n<c8y-wizard-footer>\n <button (click)=\"back()\" class=\"btn btn-default\" title=\"{{ 'Back' | translate }}\" type=\"button\">\n {{ 'Back' | translate }}\n </button>\n <button\n (click)=\"cancel()\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n >\n {{ 'Cancel' | translate }}\n </button>\n</c8y-wizard-footer>\n", dependencies: [{ kind: "component", type: i2.AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "directive", type:
|
|
1458
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DuplicateApplicationListComponent, selector: "c8y-duplicate-application-list", inputs: { stepper: "stepper", existingApps: "existingApps" }, outputs: { onSelectedApp: "onSelectedApp" }, ngImport: i0, template: "<div class=\"c8y-wizard-list-nav\">\n <button\n (click)=\"select(app)\"\n *ngFor=\"let app of existingApps\"\n class=\"list-group-item text-truncate p-t-8 p-b-8 bg-level-0\"\n type=\"button\"\n >\n <c8y-app-icon\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n class=\"list-group-icon\"\n ></c8y-app-icon>\n <span [innerText]=\"app | humanizeAppName | async\" class=\"pointer\"></span>\n <span [ngClass]=\"ecosystemService.getAppState(app).class\" class=\"label m-l-16\">\n {{ ecosystemService.getAppState(app).label | translate }}\n </span>\n </button>\n</div>\n<c8y-wizard-footer>\n <button (click)=\"back()\" class=\"btn btn-default\" title=\"{{ 'Back' | translate }}\" type=\"button\">\n {{ 'Back' | translate }}\n </button>\n <button\n (click)=\"cancel()\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n >\n {{ 'Cancel' | translate }}\n </button>\n</c8y-wizard-footer>\n", dependencies: [{ kind: "component", type: i2.AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.WizardFooterComponent, selector: "c8y-wizard-footer" }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.HumanizeAppNamePipe, name: "humanizeAppName" }] }); }
|
|
1426
1459
|
}
|
|
1427
1460
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DuplicateApplicationListComponent, decorators: [{
|
|
1428
1461
|
type: Component,
|
|
@@ -1534,7 +1567,7 @@ class DuplicateApplicationPropertiesComponent {
|
|
|
1534
1567
|
}
|
|
1535
1568
|
}
|
|
1536
1569
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DuplicateApplicationPropertiesComponent, deps: [{ token: i1$1.BsModalRef }, { token: EcosystemService }, { token: i3$1.ApplicationService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1537
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DuplicateApplicationPropertiesComponent, selector: "c8y-duplicate-application-properties", inputs: { stepper: "stepper", existingApps: "existingApps", selectedApp: "selectedApp", isFirstStep: "isFirstStep" }, outputs: { duplicatedApp: "duplicatedApp" }, viewQueries: [{ propertyName: "applicationPropertiesForm", first: true, predicate: ApplicationPropertiesFormComponent, descendants: true }], ngImport: i0, template: "<p\n class=\"p-16 text-center text-medium separator-bottom sticky-top bg-level-0 fit-w\"\n *ngIf=\"!inProgress\"\n>\n {{ 'Provide application details' | translate }}\n</p>\n\n<ng-container *ngIf=\"!inProgress\">\n <label class=\"c8y-switch\" *ngIf=\"isSubscribedApp$ | async\">\n <input type=\"checkbox\" [(ngModel)]=\"disableForm\" (change)=\"getAppConfig()\" />\n <span></span> {{ 'Overrule subscribed application' | translate }}\n </label>\n\n <c8y-application-properties-form\n [application]=\"newAppConfig\"\n class=\"d-block fit-w\"\n [disabled]=\"disableForm\"\n ></c8y-application-properties-form>\n</ng-container>\n<c8y-loading\n *ngIf=\"inProgress\"\n [message]=\"'Duplicating\u2026' | translate\"\n layout=\"application\"\n class=\"text-center d-block\"\n></c8y-loading>\n\n<c8y-wizard-footer>\n <button\n *ngIf=\"!isFirstStep\"\n (click)=\"back()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Back' | translate }}\"\n >\n {{ 'Back' | translate }}\n </button>\n <button (click)=\"cancel()\" class=\"btn btn-default\" title=\"{{ 'Cancel' | translate }}\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n (click)=\"duplicateApp()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-primary\"\n type=\"button\"\n title=\"{{ 'Duplicate' | translate }}\"\n >\n {{ 'Duplicate' | translate }}\n </button>\n</c8y-wizard-footer>\n", dependencies: [{ kind: "directive", type:
|
|
1570
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DuplicateApplicationPropertiesComponent, selector: "c8y-duplicate-application-properties", inputs: { stepper: "stepper", existingApps: "existingApps", selectedApp: "selectedApp", isFirstStep: "isFirstStep" }, outputs: { duplicatedApp: "duplicatedApp" }, viewQueries: [{ propertyName: "applicationPropertiesForm", first: true, predicate: ApplicationPropertiesFormComponent, descendants: true }], ngImport: i0, template: "<p\n class=\"p-16 text-center text-medium separator-bottom sticky-top bg-level-0 fit-w\"\n *ngIf=\"!inProgress\"\n>\n {{ 'Provide application details' | translate }}\n</p>\n\n<ng-container *ngIf=\"!inProgress\">\n <label class=\"c8y-switch\" *ngIf=\"isSubscribedApp$ | async\">\n <input type=\"checkbox\" [(ngModel)]=\"disableForm\" (change)=\"getAppConfig()\" />\n <span></span> {{ 'Overrule subscribed application' | translate }}\n </label>\n\n <c8y-application-properties-form\n [application]=\"newAppConfig\"\n class=\"d-block fit-w\"\n [disabled]=\"disableForm\"\n ></c8y-application-properties-form>\n</ng-container>\n<c8y-loading\n *ngIf=\"inProgress\"\n [message]=\"'Duplicating\u2026' | translate\"\n layout=\"application\"\n class=\"text-center d-block\"\n></c8y-loading>\n\n<c8y-wizard-footer>\n <button\n *ngIf=\"!isFirstStep\"\n (click)=\"back()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Back' | translate }}\"\n >\n {{ 'Back' | translate }}\n </button>\n <button (click)=\"cancel()\" class=\"btn btn-default\" title=\"{{ 'Cancel' | translate }}\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n (click)=\"duplicateApp()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-primary\"\n type=\"button\"\n title=\"{{ 'Duplicate' | translate }}\"\n >\n {{ 'Duplicate' | translate }}\n </button>\n</c8y-wizard-footer>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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"] }, { kind: "component", type: i2.WizardFooterComponent, selector: "c8y-wizard-footer" }, { kind: "component", type: ApplicationPropertiesFormComponent, selector: "c8y-application-properties-form", inputs: ["application", "disabled"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
|
|
1538
1571
|
}
|
|
1539
1572
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DuplicateApplicationPropertiesComponent, decorators: [{
|
|
1540
1573
|
type: Component,
|
|
@@ -1580,7 +1613,7 @@ class DuplicateApplicationComponent {
|
|
|
1580
1613
|
this.wizardComponent.close();
|
|
1581
1614
|
}
|
|
1582
1615
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DuplicateApplicationComponent, deps: [{ token: EcosystemService }, { token: i3$1.ApplicationService }, { token: i2.WizardComponent }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1583
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DuplicateApplicationComponent, selector: "c8y-duplicate-application", viewQueries: [{ propertyName: "stepper", first: true, predicate: C8yStepper, descendants: true, static: true }], ngImport: i0, template: "<c8y-wizard-header>\n <i [c8yIcon]=\"'copy'\"></i>\n <h4\n id=\"modal-title\"\n translate\n >\n Duplicate application\n </h4>\n</c8y-wizard-header>\n\n<c8y-wizard-body id=\"modal-body\">\n <c8y-stepper\n [disableDefaultIcons]=\"{ edit: true, done: false }\"\n [customClasses]=\"['hidden']\"\n linear\n >\n <!-- 1st step -->\n <cdk-step *ngIf=\"!directlyMoveToSecondStep\">\n <p class=\"p-16 text-center text-medium separator-bottom sticky-top bg-level-0\">\n {{ 'Select application to duplicate' | translate }}\n </p>\n <c8y-duplicate-application-list\n class=\"d-block\"\n style=\"min-height: 257px\"\n (onSelectedApp)=\"onSelectedApp($event)\"\n *ngIf=\"stepper.selectedIndex === 0\"\n [existingApps]=\"existingApps\"\n [stepper]=\"stepper\"\n ></c8y-duplicate-application-list>\n </cdk-step>\n <!-- 2nd step -->\n <cdk-step>\n <c8y-duplicate-application-properties\n class=\"d-flex d-col j-c-center a-i-center\"\n style=\"min-height: 257px\"\n (duplicatedApp)=\"duplicatedApp = $event\"\n *ngIf=\"\n stepper.selectedIndex === 1 || (stepper.selectedIndex === 0 && directlyMoveToSecondStep)\n \"\n [existingApps]=\"existingApps\"\n [selectedApp]=\"selectedApp\"\n [stepper]=\"stepper\"\n [isFirstStep]=\"directlyMoveToSecondStep\"\n ></c8y-duplicate-application-properties>\n </cdk-step>\n <!-- Final step -->\n <cdk-step>\n <ng-container\n *ngIf=\"\n stepper.selectedIndex === 2 || (stepper.selectedIndex === 1 && directlyMoveToSecondStep)\n \"\n >\n <div\n class=\"d-flex a-i-center j-c-center\"\n style=\"min-height: 257px\"\n *ngIf=\"duplicatedApp; else duplicateAppFailed\"\n >\n <c8y-operation-result\n type=\"success\"\n text=\"{{ 'Application created' | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n ></c8y-operation-result>\n </div>\n <ng-template #duplicateAppFailed>\n <div\n class=\"d-flex a-i-center j-c-center\"\n style=\"min-height: 257px\"\n >\n <c8y-operation-result\n type=\"error\"\n text=\"{{ 'Application creation failed' | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n ></c8y-operation-result>\n </div>\n </ng-template>\n </ng-container>\n </cdk-step>\n </c8y-stepper>\n</c8y-wizard-body>\n\n<c8y-wizard-footer *ngIf=\"stepper.selectedIndex === 0 && noBackButton\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"done()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n</c8y-wizard-footer>\n\n<c8y-wizard-footer\n *ngIf=\"stepper.selectedIndex === 2 || (stepper.selectedIndex === 1 && directlyMoveToSecondStep)\"\n>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Done' | translate }}\"\n type=\"button\"\n (click)=\"done()\"\n >\n {{ 'Done' | translate }}\n </button>\n <a\n class=\"btn btn-primary\"\n title=\"{{ 'Open' | translate }}\"\n target=\"_blank\"\n (click)=\"$event.stopPropagation()\"\n [href]=\"getHref(duplicatedApp)\"\n rel=\"noopener noreferrer\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"external-link\"\n ></i>\n {{ 'Open' | translate }}\n </a>\n</c8y-wizard-footer>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
1616
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DuplicateApplicationComponent, selector: "c8y-duplicate-application", viewQueries: [{ propertyName: "stepper", first: true, predicate: C8yStepper, descendants: true, static: true }], ngImport: i0, template: "<c8y-wizard-header>\n <i [c8yIcon]=\"'copy'\"></i>\n <h4\n id=\"modal-title\"\n translate\n >\n Duplicate application\n </h4>\n</c8y-wizard-header>\n\n<c8y-wizard-body id=\"modal-body\">\n <c8y-stepper\n [disableDefaultIcons]=\"{ edit: true, done: false }\"\n [customClasses]=\"['hidden']\"\n linear\n >\n <!-- 1st step -->\n <cdk-step *ngIf=\"!directlyMoveToSecondStep\">\n <p class=\"p-16 text-center text-medium separator-bottom sticky-top bg-level-0\">\n {{ 'Select application to duplicate' | translate }}\n </p>\n <c8y-duplicate-application-list\n class=\"d-block\"\n style=\"min-height: 257px\"\n (onSelectedApp)=\"onSelectedApp($event)\"\n *ngIf=\"stepper.selectedIndex === 0\"\n [existingApps]=\"existingApps\"\n [stepper]=\"stepper\"\n ></c8y-duplicate-application-list>\n </cdk-step>\n <!-- 2nd step -->\n <cdk-step>\n <c8y-duplicate-application-properties\n class=\"d-flex d-col j-c-center a-i-center\"\n style=\"min-height: 257px\"\n (duplicatedApp)=\"duplicatedApp = $event\"\n *ngIf=\"\n stepper.selectedIndex === 1 || (stepper.selectedIndex === 0 && directlyMoveToSecondStep)\n \"\n [existingApps]=\"existingApps\"\n [selectedApp]=\"selectedApp\"\n [stepper]=\"stepper\"\n [isFirstStep]=\"directlyMoveToSecondStep\"\n ></c8y-duplicate-application-properties>\n </cdk-step>\n <!-- Final step -->\n <cdk-step>\n <ng-container\n *ngIf=\"\n stepper.selectedIndex === 2 || (stepper.selectedIndex === 1 && directlyMoveToSecondStep)\n \"\n >\n <div\n class=\"d-flex a-i-center j-c-center\"\n style=\"min-height: 257px\"\n *ngIf=\"duplicatedApp; else duplicateAppFailed\"\n >\n <c8y-operation-result\n type=\"success\"\n text=\"{{ 'Application created' | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n ></c8y-operation-result>\n </div>\n <ng-template #duplicateAppFailed>\n <div\n class=\"d-flex a-i-center j-c-center\"\n style=\"min-height: 257px\"\n >\n <c8y-operation-result\n type=\"error\"\n text=\"{{ 'Application creation failed' | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n ></c8y-operation-result>\n </div>\n </ng-template>\n </ng-container>\n </cdk-step>\n </c8y-stepper>\n</c8y-wizard-body>\n\n<c8y-wizard-footer *ngIf=\"stepper.selectedIndex === 0 && noBackButton\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"done()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n</c8y-wizard-footer>\n\n<c8y-wizard-footer\n *ngIf=\"stepper.selectedIndex === 2 || (stepper.selectedIndex === 1 && directlyMoveToSecondStep)\"\n>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Done' | translate }}\"\n type=\"button\"\n (click)=\"done()\"\n >\n {{ 'Done' | translate }}\n </button>\n <a\n class=\"btn btn-primary\"\n title=\"{{ 'Open' | translate }}\"\n target=\"_blank\"\n (click)=\"$event.stopPropagation()\"\n [href]=\"getHref(duplicatedApp)\"\n rel=\"noopener noreferrer\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"external-link\"\n ></i>\n {{ 'Open' | translate }}\n </a>\n</c8y-wizard-footer>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.OperationResultComponent, selector: "c8y-operation-result", inputs: ["text", "vertical", "size", "type"] }, { kind: "component", type: i2.C8yStepper, selector: "c8y-stepper", inputs: ["disableDefaultIcons", "disableProgressButtons", "customClasses", "hideStepProgress", "useStepLabelsAsTitlesOnly"], outputs: ["onStepChange"] }, { kind: "component", type: i5$1.CdkStep, selector: "cdk-step", inputs: ["stepControl", "label", "errorMessage", "aria-label", "aria-labelledby", "state", "editable", "optional", "completed", "hasError"], outputs: ["interacted"], exportAs: ["cdkStep"] }, { kind: "component", type: i2.WizardHeaderComponent, selector: "c8y-wizard-header" }, { kind: "component", type: i2.WizardBodyComponent, selector: "c8y-wizard-body" }, { kind: "component", type: i2.WizardFooterComponent, selector: "c8y-wizard-footer" }, { kind: "component", type: DuplicateApplicationListComponent, selector: "c8y-duplicate-application-list", inputs: ["stepper", "existingApps"], outputs: ["onSelectedApp"] }, { kind: "component", type: DuplicateApplicationPropertiesComponent, selector: "c8y-duplicate-application-properties", inputs: ["stepper", "existingApps", "selectedApp", "isFirstStep"], outputs: ["duplicatedApp"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
|
|
1584
1617
|
}
|
|
1585
1618
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DuplicateApplicationComponent, decorators: [{
|
|
1586
1619
|
type: Component,
|
|
@@ -1672,7 +1705,7 @@ class PackageVersionSelectComponent {
|
|
|
1672
1705
|
multi: true,
|
|
1673
1706
|
useExisting: forwardRef(() => PackageVersionSelectComponent)
|
|
1674
1707
|
}
|
|
1675
|
-
], usesOnChanges: true, ngImport: i0, template: "<label for=\"packageVersion\">{{ label | translate }}</label>\n<c8y-form-group>\n <c8y-typeahead\n [(ngModel)]=\"selectedVersion\"\n name=\"packageVersion\"\n (onSearch)=\"onInput$.next($event)\"\n placeholder=\"{{ 'Select below or start typing' | translate }}\"\n [displayProperty]=\"'version'\"\n [required]=\"true\"\n [disabled]=\"isDisabled\"\n [hideNew]=\"true\"\n [container]=\"'body'\"\n >\n <c8y-li\n *c8yFor=\"let appVersion of versions$; loadMore: 'auto'; notFound: notFoundTemplate\"\n (click)=\"onVersionSelect(appVersion)\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n [active]=\"selectedVersion === appVersion\"\n >\n <c8y-li-icon icon=\"big-parcel\"></c8y-li-icon>\n <span\n [ngStyle]=\"{\n display: 'flex',\n 'flex-direction': 'row',\n 'align-content': 'center',\n 'justify-content': 'space-between',\n 'align-items': 'center'\n }\"\n >\n <c8y-highlight\n [text]=\"appVersion.version || '--'\"\n [pattern]=\"onInput$ | async\"\n ></c8y-highlight>\n <span>\n <span *ngFor=\"let tag of appVersion.tags\" class=\"label label-info m-l-4\">\n {{ tag }}\n </span>\n </span>\n </span>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li\n class=\"bg-gray-lighter p-8\"\n *ngIf=\"(onInput$ | async)?.length > 0 && (versions$ | async)?.data?.length === 0\"\n >\n <span translate>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n</c8y-form-group>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
1708
|
+
], usesOnChanges: true, ngImport: i0, template: "<label for=\"packageVersion\">{{ label | translate }}</label>\n<c8y-form-group>\n <c8y-typeahead\n [(ngModel)]=\"selectedVersion\"\n name=\"packageVersion\"\n (onSearch)=\"onInput$.next($event)\"\n placeholder=\"{{ 'Select below or start typing' | translate }}\"\n [displayProperty]=\"'version'\"\n [required]=\"true\"\n [disabled]=\"isDisabled\"\n [hideNew]=\"true\"\n [container]=\"'body'\"\n >\n <c8y-li\n *c8yFor=\"let appVersion of versions$; loadMore: 'auto'; notFound: notFoundTemplate\"\n (click)=\"onVersionSelect(appVersion)\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n [active]=\"selectedVersion === appVersion\"\n >\n <c8y-li-icon icon=\"big-parcel\"></c8y-li-icon>\n <span\n [ngStyle]=\"{\n display: 'flex',\n 'flex-direction': 'row',\n 'align-content': 'center',\n 'justify-content': 'space-between',\n 'align-items': 'center'\n }\"\n >\n <c8y-highlight\n [text]=\"appVersion.version || '--'\"\n [pattern]=\"onInput$ | async\"\n ></c8y-highlight>\n <span>\n <span *ngFor=\"let tag of appVersion.tags\" class=\"label label-info m-l-4\">\n {{ tag }}\n </span>\n </span>\n </span>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li\n class=\"bg-gray-lighter p-8\"\n *ngIf=\"(onInput$ | async)?.length > 0 && (versions$ | async)?.data?.length === 0\"\n >\n <span translate>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n</c8y-form-group>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i2.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i2.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
|
|
1676
1709
|
}
|
|
1677
1710
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PackageVersionSelectComponent, decorators: [{
|
|
1678
1711
|
type: Component,
|
|
@@ -1755,7 +1788,7 @@ class UploadArchiveComponent {
|
|
|
1755
1788
|
}
|
|
1756
1789
|
}
|
|
1757
1790
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UploadArchiveComponent, deps: [{ token: EcosystemService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1758
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: UploadArchiveComponent, selector: "c8y-upload-archive", inputs: { application: "application", uploadNewVersion: "uploadNewVersion", preUploadCallback: "preUploadCallback" }, outputs: { applicationChange: "applicationChange", refresh: "refresh" }, ngImport: i0, template: "<c8y-drop-area\n (dropped)=\"onFileDroppedEvent($event)\"\n [accept]=\"'.zip'\"\n [loading]=\"uploadInProgress\"\n [maxAllowedFiles]=\"1\"\n [message]=\"'Upload a *.zip file' | translate\"\n [progress]=\"uploadProgress | async\"\n [forceHideList]=\"true\"\n class=\"drop-area-sm\"\n>\n</c8y-drop-area>\n", dependencies: [{ kind: "component", type: i2.DropAreaComponent, selector: "c8y-drop-area", inputs: ["formControl", "title", "message", "icon", "loadingMessage", "forceHideList", "alwaysShow", "clickToOpen", "loading", "progress", "maxAllowedFiles", "files", "maxFileSizeInMegaBytes", "accept"], outputs: ["dropped"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type:
|
|
1791
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: UploadArchiveComponent, selector: "c8y-upload-archive", inputs: { application: "application", uploadNewVersion: "uploadNewVersion", preUploadCallback: "preUploadCallback" }, outputs: { applicationChange: "applicationChange", refresh: "refresh" }, ngImport: i0, template: "<c8y-drop-area\n (dropped)=\"onFileDroppedEvent($event)\"\n [accept]=\"'.zip'\"\n [loading]=\"uploadInProgress\"\n [maxAllowedFiles]=\"1\"\n [message]=\"'Upload a *.zip file' | translate\"\n [progress]=\"uploadProgress | async\"\n [forceHideList]=\"true\"\n class=\"drop-area-sm\"\n>\n</c8y-drop-area>\n", dependencies: [{ kind: "component", type: i2.DropAreaComponent, selector: "c8y-drop-area", inputs: ["formControl", "title", "message", "icon", "loadingMessage", "forceHideList", "alwaysShow", "clickToOpen", "loading", "progress", "maxAllowedFiles", "files", "maxFileSizeInMegaBytes", "accept"], outputs: ["dropped"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
|
|
1759
1792
|
}
|
|
1760
1793
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UploadArchiveComponent, decorators: [{
|
|
1761
1794
|
type: Component,
|
|
@@ -1773,17 +1806,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
1773
1806
|
}] } });
|
|
1774
1807
|
|
|
1775
1808
|
class ListFiltersComponent {
|
|
1776
|
-
constructor(formBuilder, ui, translateService, gainsightService) {
|
|
1809
|
+
constructor(formBuilder, ui, translateService, gainsightService, router, activatedRoute) {
|
|
1777
1810
|
this.formBuilder = formBuilder;
|
|
1778
1811
|
this.ui = ui;
|
|
1779
1812
|
this.translateService = translateService;
|
|
1780
1813
|
this.gainsightService = gainsightService;
|
|
1814
|
+
this.router = router;
|
|
1815
|
+
this.activatedRoute = activatedRoute;
|
|
1781
1816
|
this.packageTypes = [];
|
|
1782
1817
|
this.packageAvailabilities = [];
|
|
1783
1818
|
this.packageContents = [];
|
|
1784
1819
|
this.filterPipeChange = new EventEmitter();
|
|
1785
1820
|
this.chips = [];
|
|
1821
|
+
this.customFilters = new Map();
|
|
1786
1822
|
this.CURRENT_LOCATION = location.href;
|
|
1823
|
+
this.destroy$ = new Subject();
|
|
1787
1824
|
this.formGroup = this.initForm();
|
|
1788
1825
|
}
|
|
1789
1826
|
ngOnInit() {
|
|
@@ -1793,6 +1830,7 @@ class ListFiltersComponent {
|
|
|
1793
1830
|
this.packageAvailabilities?.length > 0 ||
|
|
1794
1831
|
this.packageContents?.length > 0;
|
|
1795
1832
|
this.currentLang = this.ui.state.lang;
|
|
1833
|
+
this.subscribeToQueryParams();
|
|
1796
1834
|
}
|
|
1797
1835
|
setFilterTerm(filterTerm) {
|
|
1798
1836
|
this.currentFilterTerm = filterTerm;
|
|
@@ -1836,6 +1874,55 @@ class ListFiltersComponent {
|
|
|
1836
1874
|
chip[1].setValue(false);
|
|
1837
1875
|
this.applyPredefinedFilters();
|
|
1838
1876
|
}
|
|
1877
|
+
ngOnDestroy() {
|
|
1878
|
+
this.destroy$.next();
|
|
1879
|
+
this.destroy$.complete();
|
|
1880
|
+
}
|
|
1881
|
+
subscribeToQueryParams() {
|
|
1882
|
+
this.activatedRoute.queryParams
|
|
1883
|
+
.pipe(takeUntil(this.destroy$))
|
|
1884
|
+
.subscribe((queryParams) => {
|
|
1885
|
+
const filters = this.parseQueryParams(queryParams);
|
|
1886
|
+
this.currentFilterTerm = queryParams.filterTerm || '';
|
|
1887
|
+
this.formGroup.patchValue(filters);
|
|
1888
|
+
this.applyPredefinedFilters();
|
|
1889
|
+
});
|
|
1890
|
+
}
|
|
1891
|
+
setQueryParams() {
|
|
1892
|
+
if (!this.currentFiltersState) {
|
|
1893
|
+
return;
|
|
1894
|
+
}
|
|
1895
|
+
this.router.navigate([], {
|
|
1896
|
+
queryParams: {
|
|
1897
|
+
...this.simplifyFilterObject(this.currentFiltersState),
|
|
1898
|
+
filterTerm: this.currentFilterTerm || null
|
|
1899
|
+
}
|
|
1900
|
+
});
|
|
1901
|
+
}
|
|
1902
|
+
parseQueryParams(queryParams) {
|
|
1903
|
+
const filter = {};
|
|
1904
|
+
for (const fullKey in queryParams) {
|
|
1905
|
+
const [key, subKey] = fullKey.split('.');
|
|
1906
|
+
if (!filter[key]) {
|
|
1907
|
+
filter[key] = {};
|
|
1908
|
+
}
|
|
1909
|
+
filter[key][subKey] = queryParams[fullKey] === 'true';
|
|
1910
|
+
}
|
|
1911
|
+
return filter;
|
|
1912
|
+
}
|
|
1913
|
+
simplifyFilterObject(currentFiltersState) {
|
|
1914
|
+
const keys = Object.keys(currentFiltersState);
|
|
1915
|
+
const result = {};
|
|
1916
|
+
for (const key of keys) {
|
|
1917
|
+
const subKeys = Object.keys(currentFiltersState[key]);
|
|
1918
|
+
for (const subKey of subKeys) {
|
|
1919
|
+
if (currentFiltersState[key][subKey]) {
|
|
1920
|
+
result[`${key}.${subKey}`] = currentFiltersState[key][subKey];
|
|
1921
|
+
}
|
|
1922
|
+
}
|
|
1923
|
+
}
|
|
1924
|
+
return result;
|
|
1925
|
+
}
|
|
1839
1926
|
initForm() {
|
|
1840
1927
|
return this.formBuilder.group({
|
|
1841
1928
|
type: this.formBuilder.group({
|
|
@@ -1851,10 +1938,12 @@ class ListFiltersComponent {
|
|
|
1851
1938
|
content: this.formBuilder.group({
|
|
1852
1939
|
[APP_STATE.PACKAGE_BLUEPRINT.label]: [false],
|
|
1853
1940
|
[APP_STATE.PACKAGE_PLUGIN.label]: [false]
|
|
1854
|
-
})
|
|
1941
|
+
}),
|
|
1942
|
+
custom: this.formBuilder.group({})
|
|
1855
1943
|
});
|
|
1856
1944
|
}
|
|
1857
1945
|
setPipe() {
|
|
1946
|
+
this.setQueryParams();
|
|
1858
1947
|
const filterPipe = pipe(map((data) => {
|
|
1859
1948
|
this.data = data.filter((app) => {
|
|
1860
1949
|
let matchesByString;
|
|
@@ -1871,7 +1960,8 @@ class ListFiltersComponent {
|
|
|
1871
1960
|
}
|
|
1872
1961
|
const matchesByPredefinedProperty = this.appMatchesByPredefinedProperty(app, 'type') &&
|
|
1873
1962
|
this.appMatchesByPredefinedProperty(app, 'availability') &&
|
|
1874
|
-
this.appMatchesByPredefinedProperty(app, 'content')
|
|
1963
|
+
this.appMatchesByPredefinedProperty(app, 'content') &&
|
|
1964
|
+
this.appMatchesByPredefinedProperty(app, 'custom');
|
|
1875
1965
|
return matchesByString && matchesByPredefinedProperty;
|
|
1876
1966
|
});
|
|
1877
1967
|
return this.data;
|
|
@@ -1883,6 +1973,9 @@ class ListFiltersComponent {
|
|
|
1883
1973
|
return name && name.toLowerCase().indexOf(term) > -1;
|
|
1884
1974
|
}
|
|
1885
1975
|
appMatchesByPredefinedProperty(app, property) {
|
|
1976
|
+
if (property === 'custom' && this.currentFiltersState) {
|
|
1977
|
+
return Object.entries(this.currentFiltersState[property]).every(([key, value]) => this.customFilters.get(key)(app, value));
|
|
1978
|
+
}
|
|
1886
1979
|
// if filter object does not contain property filters or all filters are false, filter is inactive
|
|
1887
1980
|
const filterForPropertyIsActive = this.currentFiltersState?.[property] &&
|
|
1888
1981
|
!Object.values(this.currentFiltersState[property]).every(v => !v);
|
|
@@ -1906,13 +1999,13 @@ class ListFiltersComponent {
|
|
|
1906
1999
|
});
|
|
1907
2000
|
});
|
|
1908
2001
|
}
|
|
1909
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ListFiltersComponent, deps: [{ token: i1.FormBuilder }, { token: i2.AppStateService }, { token: i3.TranslateService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1910
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ListFiltersComponent, selector: "c8y-list-filters", inputs: { packageTypes: "packageTypes", packageAvailabilities: "packageAvailabilities", packageContents: "packageContents" }, outputs: { filterPipeChange: "filterPipeChange" }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: FilterInputComponent, descendants: true }], ngImport: i0, template: "<form\n class=\"d-flex a-i-center\"\n [formGroup]=\"formGroup\"\n>\n <c8y-filter
|
|
2002
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ListFiltersComponent, deps: [{ token: i1.FormBuilder }, { token: i2.AppStateService }, { token: i3.TranslateService }, { token: i2.GainsightService }, { token: i4.Router }, { token: i4.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2003
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ListFiltersComponent, selector: "c8y-list-filters", inputs: { packageTypes: "packageTypes", packageAvailabilities: "packageAvailabilities", packageContents: "packageContents" }, outputs: { filterPipeChange: "filterPipeChange" }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: FilterInputComponent, descendants: true }], ngImport: i0, template: "<form\n class=\"d-flex a-i-center\"\n [formGroup]=\"formGroup\"\n>\n <c8y-filter\n [filterTerm]=\"currentFilterTerm\"\n (onSearch)=\"setFilterTerm($event)\"\n ></c8y-filter>\n\n <div\n class=\"dropdown m-l-8 m-r-4\"\n *ngIf=\"predefinedFiltersVisible\"\n dropdown\n (isOpenChange)=\"toggleDropdown($event)\"\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group d-inline-flex\">\n <button\n class=\"btn-clean form-control p-l-8 p-r-16 a-s-stretch d-flex a-i-center w-auto flex-no-shrink\"\n title=\"{{ 'Filters' | translate }}\"\n dropdownToggle\n >\n <span [ngPlural]=\"chips.length\">\n <ng-template ngPluralCase=\"=0\">\n {{ 'Filters' | translate }}\n </ng-template>\n <ng-template ngPluralCase=\"=1\">\n <span class=\"badge badge-info\">{{ chips.length }}</span>\n {{ 'Filter' | translate }}\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span class=\"badge badge-info\">{{ chips.length }}</span>\n {{ 'Filters' | translate }}\n </ng-template>\n </span>\n <span class=\"caret\"></span>\n </button>\n <div\n class=\"input-group-addon p-t-0 p-b-0 d-flex gap-4 a-i-center inner-scroll\"\n *ngIf=\"chips.length > 0\"\n >\n <ng-container *ngFor=\"let chip of chips\">\n <span\n class=\"tag tag--info chip\"\n *ngIf=\"chip[1].value\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"deselectChip(chip)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n {{ chip[0] | translate | titlecase }}\n </span>\n </ng-container>\n </div>\n </div>\n <div\n class=\"dropdown-menu\"\n *dropdownMenu\n >\n <div class=\"dropdown-form\">\n <c8y-form-group\n *ngIf=\"packageTypes.length\"\n formGroupName=\"type\"\n >\n <label class=\"m-b-16\">\n {{ 'Type' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"type | translate\"\n *ngFor=\"let type of packageTypes\"\n >\n <input\n type=\"checkbox\"\n [formControlName]=\"type\"\n [value]=\"type\"\n />\n <span></span>\n <span>{{ type | translate | titlecase }}</span>\n </label>\n </c8y-form-group>\n\n <c8y-form-group\n *ngIf=\"packageAvailabilities.length\"\n formGroupName=\"availability\"\n >\n <label class=\"m-b-16\">\n {{ 'Availability`of package based on app state`' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"availability | translate\"\n *ngFor=\"let availability of packageAvailabilities\"\n >\n <input\n type=\"checkbox\"\n [formControlName]=\"availability\"\n [value]=\"availability\"\n />\n <span></span>\n <span>{{ availability | translate }}</span>\n </label>\n </c8y-form-group>\n\n <c8y-form-group\n *ngIf=\"packageContents.length\"\n formGroupName=\"content\"\n >\n <label class=\"m-b-16\">\n {{ 'Content' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"content | translate\"\n *ngFor=\"let content of packageContents\"\n >\n <input\n type=\"checkbox\"\n [formControlName]=\"content\"\n [value]=\"content\"\n />\n <span></span>\n <span>{{ content | translate }}</span>\n </label>\n </c8y-form-group>\n <c8y-form-group formGroupName=\"custom\">\n <ng-content></ng-content>\n </c8y-form-group>\n </div>\n <div class=\"p-16 d-flex gap-8 separator-top\">\n <button\n class=\"btn btn-default btn-sm flex-grow\"\n title=\"{{ 'Reset' | translate }}\"\n type=\"button\"\n (click)=\"reset(); filtersDropdown.isOpen = false\"\n >\n {{ 'Reset' | translate }}\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n title=\"{{ 'Apply' | translate }}\"\n type=\"button\"\n (click)=\"applyPredefinedFilters(); filtersDropdown.isOpen = false\"\n [disabled]=\"formGroup.pristine && formGroup.untouched\"\n >\n {{ 'Apply' | translate }}\n </button>\n </div>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: i5.NgPluralCase, selector: "[ngPluralCase]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][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: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i2.FilterInputComponent, selector: "c8y-filter", inputs: ["icon", "filterTerm"], outputs: ["onSearch"] }, { 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"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i8$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }] }); }
|
|
1911
2004
|
}
|
|
1912
2005
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ListFiltersComponent, decorators: [{
|
|
1913
2006
|
type: Component,
|
|
1914
|
-
args: [{ selector: 'c8y-list-filters', template: "<form\n class=\"d-flex a-i-center\"\n [formGroup]=\"formGroup\"\n>\n <c8y-filter
|
|
1915
|
-
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.AppStateService }, { type: i3.TranslateService }, { type: i2.GainsightService }], propDecorators: { packageTypes: [{
|
|
2007
|
+
args: [{ selector: 'c8y-list-filters', template: "<form\n class=\"d-flex a-i-center\"\n [formGroup]=\"formGroup\"\n>\n <c8y-filter\n [filterTerm]=\"currentFilterTerm\"\n (onSearch)=\"setFilterTerm($event)\"\n ></c8y-filter>\n\n <div\n class=\"dropdown m-l-8 m-r-4\"\n *ngIf=\"predefinedFiltersVisible\"\n dropdown\n (isOpenChange)=\"toggleDropdown($event)\"\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group d-inline-flex\">\n <button\n class=\"btn-clean form-control p-l-8 p-r-16 a-s-stretch d-flex a-i-center w-auto flex-no-shrink\"\n title=\"{{ 'Filters' | translate }}\"\n dropdownToggle\n >\n <span [ngPlural]=\"chips.length\">\n <ng-template ngPluralCase=\"=0\">\n {{ 'Filters' | translate }}\n </ng-template>\n <ng-template ngPluralCase=\"=1\">\n <span class=\"badge badge-info\">{{ chips.length }}</span>\n {{ 'Filter' | translate }}\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span class=\"badge badge-info\">{{ chips.length }}</span>\n {{ 'Filters' | translate }}\n </ng-template>\n </span>\n <span class=\"caret\"></span>\n </button>\n <div\n class=\"input-group-addon p-t-0 p-b-0 d-flex gap-4 a-i-center inner-scroll\"\n *ngIf=\"chips.length > 0\"\n >\n <ng-container *ngFor=\"let chip of chips\">\n <span\n class=\"tag tag--info chip\"\n *ngIf=\"chip[1].value\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"deselectChip(chip)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n {{ chip[0] | translate | titlecase }}\n </span>\n </ng-container>\n </div>\n </div>\n <div\n class=\"dropdown-menu\"\n *dropdownMenu\n >\n <div class=\"dropdown-form\">\n <c8y-form-group\n *ngIf=\"packageTypes.length\"\n formGroupName=\"type\"\n >\n <label class=\"m-b-16\">\n {{ 'Type' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"type | translate\"\n *ngFor=\"let type of packageTypes\"\n >\n <input\n type=\"checkbox\"\n [formControlName]=\"type\"\n [value]=\"type\"\n />\n <span></span>\n <span>{{ type | translate | titlecase }}</span>\n </label>\n </c8y-form-group>\n\n <c8y-form-group\n *ngIf=\"packageAvailabilities.length\"\n formGroupName=\"availability\"\n >\n <label class=\"m-b-16\">\n {{ 'Availability`of package based on app state`' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"availability | translate\"\n *ngFor=\"let availability of packageAvailabilities\"\n >\n <input\n type=\"checkbox\"\n [formControlName]=\"availability\"\n [value]=\"availability\"\n />\n <span></span>\n <span>{{ availability | translate }}</span>\n </label>\n </c8y-form-group>\n\n <c8y-form-group\n *ngIf=\"packageContents.length\"\n formGroupName=\"content\"\n >\n <label class=\"m-b-16\">\n {{ 'Content' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n [title]=\"content | translate\"\n *ngFor=\"let content of packageContents\"\n >\n <input\n type=\"checkbox\"\n [formControlName]=\"content\"\n [value]=\"content\"\n />\n <span></span>\n <span>{{ content | translate }}</span>\n </label>\n </c8y-form-group>\n <c8y-form-group formGroupName=\"custom\">\n <ng-content></ng-content>\n </c8y-form-group>\n </div>\n <div class=\"p-16 d-flex gap-8 separator-top\">\n <button\n class=\"btn btn-default btn-sm flex-grow\"\n title=\"{{ 'Reset' | translate }}\"\n type=\"button\"\n (click)=\"reset(); filtersDropdown.isOpen = false\"\n >\n {{ 'Reset' | translate }}\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n title=\"{{ 'Apply' | translate }}\"\n type=\"button\"\n (click)=\"applyPredefinedFilters(); filtersDropdown.isOpen = false\"\n [disabled]=\"formGroup.pristine && formGroup.untouched\"\n >\n {{ 'Apply' | translate }}\n </button>\n </div>\n </div>\n </div>\n</form>\n" }]
|
|
2008
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.AppStateService }, { type: i3.TranslateService }, { type: i2.GainsightService }, { type: i4.Router }, { type: i4.ActivatedRoute }], propDecorators: { packageTypes: [{
|
|
1916
2009
|
type: Input
|
|
1917
2010
|
}], packageAvailabilities: [{
|
|
1918
2011
|
type: Input
|
|
@@ -1925,6 +2018,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
1925
2018
|
args: [FilterInputComponent]
|
|
1926
2019
|
}] } });
|
|
1927
2020
|
|
|
2021
|
+
class ArchivedFilterComponent {
|
|
2022
|
+
constructor(filterComponent) {
|
|
2023
|
+
this.filterComponent = filterComponent;
|
|
2024
|
+
this.filterLabel = gettext('Show archived packages');
|
|
2025
|
+
this.archivedFormControl = new FormControl();
|
|
2026
|
+
this.filterComponent.formGroup.controls.custom.addControl(this.filterLabel, this.archivedFormControl);
|
|
2027
|
+
filterComponent.customFilters.set(this.filterLabel, (appOrPlugin, enabled) => {
|
|
2028
|
+
return (appOrPlugin.filterProps.type !== PackageType.ARCHIVED ||
|
|
2029
|
+
(appOrPlugin.filterProps.type === PackageType.ARCHIVED && enabled));
|
|
2030
|
+
});
|
|
2031
|
+
}
|
|
2032
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ArchivedFilterComponent, deps: [{ token: ListFiltersComponent }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2033
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ArchivedFilterComponent, selector: "c8y-archived-filter", ngImport: i0, template: "<label class=\"c8y-switch\">\n <input\n type=\"checkbox\"\n checked=\"checked\"\n [formControl]=\"archivedFormControl\"\n />\n <span></span>\n {{ 'Show archived packages' | translate }}\n</label>\n", dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
|
|
2034
|
+
}
|
|
2035
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ArchivedFilterComponent, decorators: [{
|
|
2036
|
+
type: Component,
|
|
2037
|
+
args: [{ selector: 'c8y-archived-filter', template: "<label class=\"c8y-switch\">\n <input\n type=\"checkbox\"\n checked=\"checked\"\n [formControl]=\"archivedFormControl\"\n />\n <span></span>\n {{ 'Show archived packages' | translate }}\n</label>\n" }]
|
|
2038
|
+
}], ctorParameters: () => [{ type: ListFiltersComponent }] });
|
|
2039
|
+
|
|
1928
2040
|
class SharedEcosystemModule {
|
|
1929
2041
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SharedEcosystemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1930
2042
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: SharedEcosystemModule, declarations: [AddApplicationComponent,
|
|
@@ -1936,7 +2048,8 @@ class SharedEcosystemModule {
|
|
|
1936
2048
|
DuplicateApplicationComponent,
|
|
1937
2049
|
PackageVersionSelectComponent,
|
|
1938
2050
|
TranslatePackageLabelPipe,
|
|
1939
|
-
ListFiltersComponent
|
|
2051
|
+
ListFiltersComponent,
|
|
2052
|
+
ArchivedFilterComponent], imports: [CoreModule,
|
|
1940
2053
|
BsDropdownModule,
|
|
1941
2054
|
TooltipModule,
|
|
1942
2055
|
A11yModule,
|
|
@@ -1952,7 +2065,8 @@ class SharedEcosystemModule {
|
|
|
1952
2065
|
DuplicateApplicationComponent,
|
|
1953
2066
|
PackageVersionSelectComponent,
|
|
1954
2067
|
TranslatePackageLabelPipe,
|
|
1955
|
-
ListFiltersComponent
|
|
2068
|
+
ListFiltersComponent,
|
|
2069
|
+
ArchivedFilterComponent] }); }
|
|
1956
2070
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SharedEcosystemModule, providers: [
|
|
1957
2071
|
hookWizard({
|
|
1958
2072
|
wizardId: EcosystemWizards.APPLICATION_UPLOAD,
|
|
@@ -1998,7 +2112,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
1998
2112
|
DuplicateApplicationComponent,
|
|
1999
2113
|
PackageVersionSelectComponent,
|
|
2000
2114
|
TranslatePackageLabelPipe,
|
|
2001
|
-
ListFiltersComponent
|
|
2115
|
+
ListFiltersComponent,
|
|
2116
|
+
ArchivedFilterComponent
|
|
2002
2117
|
],
|
|
2003
2118
|
exports: [
|
|
2004
2119
|
AddApplicationComponent,
|
|
@@ -2010,7 +2125,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
2010
2125
|
DuplicateApplicationComponent,
|
|
2011
2126
|
PackageVersionSelectComponent,
|
|
2012
2127
|
TranslatePackageLabelPipe,
|
|
2013
|
-
ListFiltersComponent
|
|
2128
|
+
ListFiltersComponent,
|
|
2129
|
+
ArchivedFilterComponent
|
|
2014
2130
|
],
|
|
2015
2131
|
providers: [
|
|
2016
2132
|
hookWizard({
|
|
@@ -2048,5 +2164,5 @@ const defaultPackageContents = [
|
|
|
2048
2164
|
* Generated bundle index. Do not edit.
|
|
2049
2165
|
*/
|
|
2050
2166
|
|
|
2051
|
-
export { APP_STATE, AddApplicationComponent, ApplicationCardComponent, ApplicationPropertiesFormComponent, DuplicateApplicationComponent, DuplicateApplicationListComponent, DuplicateApplicationPropertiesComponent, ERROR_MESSAGES, ERROR_TYPE, EcosystemService, EcosystemWizards, ListFiltersComponent, PACKAGE_TYPE_LABELS, PRODUCT_EXPERIENCE_ECOSYSTEM, PackageAvailabilityService, PackageVersionSelectComponent, SharedEcosystemModule, TranslatePackageLabelPipe, UploadArchiveComponent, defaultPackageAvailabilities, defaultPackageContents, defaultPackageTypes, packageProperties };
|
|
2167
|
+
export { APP_STATE, AddApplicationComponent, ApplicationCardComponent, ApplicationPropertiesFormComponent, ArchivedFilterComponent, DuplicateApplicationComponent, DuplicateApplicationListComponent, DuplicateApplicationPropertiesComponent, ERROR_MESSAGES, ERROR_TYPE, EcosystemService, EcosystemWizards, ListFiltersComponent, PACKAGE_TYPE_LABELS, PRODUCT_EXPERIENCE_ECOSYSTEM, PackageAvailabilityService, PackageVersionSelectComponent, SharedEcosystemModule, TranslatePackageLabelPipe, UploadArchiveComponent, defaultPackageAvailabilities, defaultPackageContents, defaultPackageTypes, packageProperties };
|
|
2052
2168
|
//# sourceMappingURL=c8y-ngx-components-ecosystem-shared.mjs.map
|