@alauda-fe/common 1.0.0-next.0 → 1.0.1-beta.0
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/a-chart/chart.component.d.ts +1 -1
- package/a-chart/components/{index.d.ts → public-api.d.ts} +1 -1
- package/a-chart/public-api.d.ts +1 -1
- package/a-metric-chart/public-api.d.ts +1 -0
- package/a-metric-chart/types.d.ts +4 -2
- package/a-metric-chart/utils/util.d.ts +6 -4
- package/api/api-compatible.interceptor.d.ts +46 -0
- package/api/helpers.d.ts +1 -1
- package/api/k8s-api-resource.service.d.ts +1 -1
- package/api/k8s-api.service.d.ts +1 -1
- package/api/monitor-api.service.d.ts +2 -1
- package/api/platform-ui.service.d.ts +1 -1
- package/api/product.service.d.ts +1 -1
- package/api/project-api.service.d.ts +1 -1
- package/api/public-api.d.ts +1 -0
- package/api/resource-update.service.d.ts +1 -1
- package/api/types.d.ts +1 -1
- package/array-form-table/base-string-map-form.component.d.ts +1 -1
- package/array-form-table/form/component.d.ts +12 -1
- package/array-form-table/form/module.d.ts +1 -1
- package/array-form-table/key-value-form/component.d.ts +1 -1
- package/array-form-table/public-api.d.ts +1 -0
- package/array-form-table/string-array-form/component.d.ts +39 -0
- package/assets/icons/prod-icons.js +1 -1
- package/async-data/async-data-loader.d.ts +1 -1
- package/async-data/types.d.ts +1 -1
- package/authorization/guard.service.d.ts +1 -1
- package/authorization/state.service.d.ts +1 -1
- package/business/module-info/api.service.d.ts +2 -2
- package/business/notification-disabled-container/component.d.ts +14 -0
- package/business/notification-disabled-container/public-api.d.ts +1 -0
- package/business/public-api.d.ts +1 -0
- package/business/resource-select/base-list.d.ts +2 -2
- package/business/resource-select/context.service.d.ts +2 -2
- package/business/resource-select/exports/namespace-page/component.d.ts +1 -1
- package/business/resource-select/exports/namespace-selector/component.d.ts +1 -1
- package/business/resource-select/internals/cluster-list/component.d.ts +1 -2
- package/business/resource-select/internals/namespace-list/component.d.ts +2 -3
- package/business/resource-select/internals/project-list/component.d.ts +1 -1
- package/business/resource-select/project.service.d.ts +3 -2
- package/business/resource-select/types.d.ts +1 -1
- package/business/resource-select/utils.d.ts +1 -1
- package/chart/common/chart/chart.component.d.ts +2 -3
- package/chart/common/{index.d.ts → public-api.d.ts} +0 -1
- package/chart/public-api.d.ts +2 -1
- package/chart/utils.d.ts +1 -1
- package/code/code-editor-configs.d.ts +2 -1
- package/code/code.module.d.ts +8 -8
- package/code/k8s-yaml-display-dialog/component.d.ts +1 -1
- package/code/resource-yaml-display/component.d.ts +2 -4
- package/core/abstract/base-form-container.d.ts +1 -1
- package/core/components/public-api.d.ts +6 -0
- package/core/constants/constants.d.ts +1 -0
- package/core/constants/patterns.d.ts +83 -1
- package/core/constants/status-icons.d.ts +3 -0
- package/core/guards/leave-edit-page.guard.d.ts +1 -1
- package/core/module.d.ts +19 -19
- package/core/pipes/duration.pipe.d.ts +10 -0
- package/core/pipes/img-theme.pipe.d.ts +1 -1
- package/core/pipes/k8s-util.pipe.d.ts +2 -2
- package/core/pipes/page-env.pipe.d.ts +1 -1
- package/core/pipes/{index.d.ts → public-api.d.ts} +2 -1
- package/core/pipes/sanitize.pipe.d.ts +10 -0
- package/core/pipes/time.pipe.d.ts +2 -2
- package/core/public-api.d.ts +9 -9
- package/core/services/aui-paginator-intl.service.d.ts +1 -1
- package/core/services/aui-tooltip-copy-intl.service.d.ts +1 -1
- package/core/services/custom-code-editor-intl.service.d.ts +1 -1
- package/core/services/intercept-deactivate.service.d.ts +1 -1
- package/core/services/k8s-util.service.d.ts +2 -2
- package/core/services/workspace-helper.service.d.ts +1 -1
- package/core/services/yaml-util.service.d.ts +1 -1
- package/core/types/k8s/core.d.ts +11 -1
- package/core/types/k8s/crd.d.ts +98 -3
- package/core/types/k8s/raw.d.ts +9 -12
- package/core/types/{index.d.ts → public-api.d.ts} +1 -1
- package/core/types/resource-definitions.d.ts +27 -2
- package/core/utils/browser.d.ts +1 -0
- package/core/utils/common.d.ts +12 -1
- package/core/utils/decorators.d.ts +3 -1
- package/core/utils/k8s-util.d.ts +3 -1
- package/core/utils/node.d.ts +1 -1
- package/core/utils/observable.d.ts +1 -0
- package/core/utils/{index.d.ts → public-api.d.ts} +1 -1
- package/core/utils/sort-fn.d.ts +2 -0
- package/core/utils/unit.d.ts +0 -3
- package/core/utils/version.d.ts +1 -1
- package/core/utils/workspace.d.ts +1 -1
- package/core/utils/yaml.d.ts +2 -1
- package/custom-columns-setting/component.d.ts +1 -1
- package/esm2022/a-chart/a-chart.module.mjs +2 -2
- package/esm2022/a-chart/chart-status.component.mjs +2 -2
- package/esm2022/a-chart/chart.component.mjs +5 -4
- package/esm2022/a-chart/components/base-component.mjs +2 -2
- package/esm2022/a-chart/components/legend/public-api.mjs +4 -0
- package/esm2022/a-chart/components/public-api.mjs +4 -0
- package/esm2022/a-chart/components/title.component.mjs +4 -4
- package/esm2022/a-chart/public-api.mjs +2 -2
- package/esm2022/a-chart/utils.mjs +2 -2
- package/esm2022/a-metric-chart/a-metric-chart.component.mjs +57 -32
- package/esm2022/a-metric-chart/a-metric-chart.module.mjs +4 -4
- package/esm2022/a-metric-chart/bar-gauge/bar-gauge.component.mjs +2 -2
- package/esm2022/a-metric-chart/base-chart.component.mjs +2 -2
- package/esm2022/a-metric-chart/public-api.mjs +2 -1
- package/esm2022/a-metric-chart/table-chart/table-chart.component.mjs +2 -2
- package/esm2022/a-metric-chart/types.mjs +2 -1
- package/esm2022/a-metric-chart/utils/public-api.mjs +4 -0
- package/esm2022/a-metric-chart/utils/unit.mjs +2 -2
- package/esm2022/a-metric-chart/utils/util.mjs +28 -23
- package/esm2022/api/api-compatible.interceptor.mjs +101 -0
- package/esm2022/api/cluster-version.service.mjs +2 -2
- package/esm2022/api/crypto.interceptor.mjs +2 -2
- package/esm2022/api/helpers.mjs +2 -2
- package/esm2022/api/k8s-api-resource.service.mjs +2 -2
- package/esm2022/api/k8s-api.service.mjs +4 -4
- package/esm2022/api/monitor-api.service.mjs +2 -2
- package/esm2022/api/platform-ui.service.mjs +2 -2
- package/esm2022/api/product.service.mjs +2 -2
- package/esm2022/api/project-api.service.mjs +2 -2
- package/esm2022/api/public-api.mjs +2 -1
- package/esm2022/api/resource-update.service.mjs +1 -1
- package/esm2022/api/types.mjs +1 -1
- package/esm2022/array-form-table/base-string-map-form.component.mjs +1 -1
- package/esm2022/array-form-table/form/component.mjs +93 -50
- package/esm2022/array-form-table/form/module.mjs +7 -4
- package/esm2022/array-form-table/key-value-form/component.mjs +4 -4
- package/esm2022/array-form-table/key-value-table/component.mjs +3 -3
- package/esm2022/array-form-table/public-api.mjs +2 -1
- package/esm2022/array-form-table/string-array-form/component.mjs +267 -0
- package/esm2022/async-data/async-data-loader.mjs +1 -1
- package/esm2022/async-data/error-page/component.mjs +2 -2
- package/esm2022/async-data/types.mjs +1 -1
- package/esm2022/authorization/guard.service.mjs +3 -3
- package/esm2022/authorization/interceptor.service.mjs +2 -2
- package/esm2022/authorization/state.service.mjs +3 -3
- package/esm2022/business/module-info/api.service.mjs +5 -5
- package/esm2022/business/notification-disabled-container/component.mjs +87 -0
- package/esm2022/business/notification-disabled-container/public-api.mjs +2 -0
- package/esm2022/business/public-api.mjs +2 -1
- package/esm2022/business/resource-select/base-list.mjs +4 -4
- package/esm2022/business/resource-select/context.service.mjs +3 -3
- package/esm2022/business/resource-select/exports/namespace-page/component.mjs +3 -3
- package/esm2022/business/resource-select/exports/namespace-selector/component.mjs +3 -3
- package/esm2022/business/resource-select/internals/cluster-list/component.mjs +1 -1
- package/esm2022/business/resource-select/internals/data-grid/component.mjs +2 -2
- package/esm2022/business/resource-select/internals/meshgroup-list/component.mjs +2 -3
- package/esm2022/business/resource-select/internals/namespace-list/component.mjs +7 -7
- package/esm2022/business/resource-select/internals/no-data/component.mjs +3 -3
- package/esm2022/business/resource-select/internals/project-list/component.mjs +3 -3
- package/esm2022/business/resource-select/internals/resource-dashboard/component.mjs +3 -3
- package/esm2022/business/resource-select/internals/selector-popup/component.mjs +2 -2
- package/esm2022/business/resource-select/module.mjs +3 -3
- package/esm2022/business/resource-select/project.service.mjs +4 -4
- package/esm2022/business/resource-select/types.mjs +1 -1
- package/esm2022/business/resource-select/utils.mjs +1 -1
- package/esm2022/chart/chart.module.mjs +2 -2
- package/esm2022/chart/chart.service.mjs +2 -2
- package/esm2022/chart/common/chart/chart.component.mjs +2 -2
- package/esm2022/chart/common/{index.mjs → public-api.mjs} +1 -2
- package/esm2022/chart/common/tooltip/tooltip.component.mjs +2 -2
- package/esm2022/chart/public-api.mjs +3 -2
- package/esm2022/chart/utils.mjs +1 -1
- package/esm2022/code/code-editor-configs.mjs +5 -1
- package/esm2022/code/code.module.mjs +12 -11
- package/esm2022/code/k8s-yaml-display-dialog/component.mjs +1 -1
- package/esm2022/code/resource-yaml-display/component.mjs +26 -7
- package/esm2022/core/abstract/base-form-container.mjs +3 -3
- package/esm2022/core/abstract/public-api.mjs +3 -0
- package/esm2022/core/components/public-api.mjs +7 -0
- package/esm2022/core/constants/constants.mjs +2 -1
- package/esm2022/core/constants/patterns.mjs +102 -4
- package/esm2022/core/constants/public-api.mjs +6 -0
- package/esm2022/core/constants/status-icons.mjs +30 -1
- package/esm2022/core/constants/tokens.mjs +2 -2
- package/esm2022/core/directives/public-api.mjs +11 -0
- package/esm2022/core/guards/leave-edit-page.guard.mjs +5 -5
- package/esm2022/core/guards/public-api.mjs +5 -0
- package/esm2022/core/module.mjs +11 -11
- package/esm2022/core/pipes/duration.pipe.mjs +51 -0
- package/esm2022/core/pipes/img-header.pipe.mjs +2 -2
- package/esm2022/core/pipes/img-theme.pipe.mjs +3 -2
- package/esm2022/core/pipes/k8s-util.pipe.mjs +4 -4
- package/esm2022/core/pipes/page-env.pipe.mjs +3 -3
- package/esm2022/core/pipes/public-api.mjs +19 -0
- package/esm2022/core/pipes/safe.pipe.mjs +7 -2
- package/esm2022/core/pipes/sanitize.pipe.mjs +31 -0
- package/esm2022/core/pipes/time.pipe.mjs +8 -8
- package/esm2022/core/public-api.mjs +10 -10
- package/esm2022/core/services/aui-paginator-intl.service.mjs +3 -3
- package/esm2022/core/services/aui-tooltip-copy-intl.service.mjs +3 -3
- package/esm2022/core/services/context.service.mjs +2 -2
- package/esm2022/core/services/custom-code-editor-intl.service.mjs +4 -4
- package/esm2022/core/services/feature-gate.service.mjs +3 -3
- package/esm2022/core/services/intercept-deactivate.service.mjs +3 -3
- package/esm2022/core/services/k8s-util.service.mjs +4 -6
- package/esm2022/core/services/public-api.mjs +15 -0
- package/esm2022/core/services/time.service.mjs +2 -2
- package/esm2022/core/services/workspace-helper.service.mjs +1 -1
- package/esm2022/core/services/yaml-util.service.mjs +5 -4
- package/esm2022/core/types/k8s/core.mjs +1 -1
- package/esm2022/core/types/k8s/crd.mjs +16 -1
- package/esm2022/core/types/k8s/public-api.mjs +4 -0
- package/esm2022/core/types/k8s/raw.mjs +3 -2
- package/esm2022/core/types/public-api.mjs +11 -0
- package/esm2022/core/types/resource-definitions.mjs +19 -4
- package/esm2022/core/utils/browser.mjs +5 -1
- package/esm2022/core/utils/cache-store.mjs +2 -2
- package/esm2022/core/utils/common.mjs +55 -3
- package/esm2022/core/utils/decorators.mjs +22 -1
- package/esm2022/core/utils/k8s-util.mjs +5 -3
- package/esm2022/core/utils/node.mjs +2 -2
- package/esm2022/core/utils/observable.mjs +11 -2
- package/esm2022/core/utils/public-api.mjs +23 -0
- package/esm2022/core/utils/sort-fn.mjs +7 -0
- package/esm2022/core/utils/unit.mjs +1 -13
- package/esm2022/core/utils/workspace.mjs +1 -1
- package/esm2022/core/utils/yaml.mjs +9 -1
- package/esm2022/custom-columns-setting/component.mjs +1 -1
- package/esm2022/editable-text/public-api.mjs +3 -0
- package/esm2022/effect-directive/event.directive.mjs +2 -2
- package/esm2022/exec/public-api.mjs +8 -0
- package/esm2022/exec/service.mjs +2 -3
- package/esm2022/exec/terminal/component.mjs +13 -17
- package/esm2022/exec/terminal-group/component.mjs +2 -2
- package/esm2022/feature-gate-forbidden/public-api.mjs +3 -0
- package/esm2022/form/errors-mapper/base-errors-mapper.mjs +42 -0
- package/esm2022/form/errors-mapper/default-errors-mapper.service.mjs +65 -0
- package/esm2022/form/errors-mapper/errors-mapper-component/component.mjs +71 -0
- package/esm2022/form/errors-mapper/errors-mapper.directive.mjs +115 -0
- package/esm2022/{errors-mapper → form/errors-mapper}/errors-mapper.module.mjs +1 -1
- package/esm2022/form/errors-mapper/public-api.mjs +5 -0
- package/esm2022/form/errors-mapper/types.mjs +2 -0
- package/esm2022/form/labels-editor/component.mjs +5 -6
- package/esm2022/form/public-api.mjs +7 -0
- package/esm2022/form/taints-editor/component.mjs +5 -5
- package/esm2022/form/upload-file/component.mjs +114 -0
- package/esm2022/form/validators/module.mjs +2 -2
- package/esm2022/form/validators/public-api.mjs +2 -2
- package/esm2022/form/validators/resource-limit.mjs +2 -2
- package/esm2022/form/validators/strong-password/public-api.mjs +4 -0
- package/esm2022/form/validators/strong-password/strong-password-tooltip/component.mjs +2 -2
- package/esm2022/form/validators/utils.mjs +3 -3
- package/esm2022/graph-canvas/components/graph-canvas.component.mjs +6 -3
- package/esm2022/graph-canvas/components/graph-link.component.mjs +8 -2
- package/esm2022/graph-canvas/components/graph-node.directive.mjs +2 -2
- package/esm2022/graph-canvas/graph-store.service.mjs +13 -2
- package/esm2022/graph-canvas/types.mjs +1 -1
- package/esm2022/grid-layout/grid-layout.service.mjs +1 -1
- package/esm2022/grid-layout/grid-placeholder.service.mjs +1 -1
- package/esm2022/grid-layout/public-api.mjs +11 -0
- package/esm2022/grid-layout/utils/client-rect.utils.mjs +1 -1
- package/esm2022/grid-layout/utils/scroll.utils.mjs +1 -1
- package/esm2022/help-document/component.mjs +14 -16
- package/esm2022/help-document/directive.mjs +17 -4
- package/esm2022/help-document/module.mjs +5 -6
- package/esm2022/help-document/service.mjs +7 -4
- package/esm2022/k8s-resource-list/footer/component.mjs +2 -2
- package/esm2022/k8s-resource-list/k8s-resource-list.mjs +2 -2
- package/esm2022/k8s-resource-list/k8s-resource-paged-list.mjs +2 -3
- package/esm2022/k8s-resource-list/types.mjs +1 -1
- package/esm2022/k8s-resource-list/utils.mjs +1 -1
- package/esm2022/k8s-shared/k8s-shared-util.service.mjs +152 -0
- package/esm2022/k8s-shared/public-api.mjs +10 -0
- package/esm2022/k8s-shared/update-description-dialog/component.mjs +112 -0
- package/esm2022/k8s-shared/update-display-name-dialog/component.mjs +133 -0
- package/esm2022/k8s-shared/update-key-value-dialog/component.mjs +111 -0
- package/esm2022/license/license-api.mjs +1 -1
- package/esm2022/license/license-error/module.mjs +2 -2
- package/esm2022/license/license.guard.mjs +3 -3
- package/esm2022/license/license.service.mjs +1 -1
- package/esm2022/metric-chart/helpers.mjs +3 -3
- package/esm2022/metric-chart/metric-chart.component.mjs +6 -4
- package/esm2022/metric-chart/public-api.mjs +1 -2
- package/esm2022/metric-chart/types.mjs +1 -1
- package/esm2022/metric-chart/utils.mjs +2 -2
- package/esm2022/multi-search/action-input/component.mjs +4 -4
- package/esm2022/multi-search/form/component.mjs +3 -3
- package/esm2022/multi-search/multi-search-tags/component.mjs +2 -2
- package/esm2022/multi-search/public-api.mjs +5 -0
- package/esm2022/mutable/mosaic/mosaic.component.mjs +2 -2
- package/esm2022/notification/errors-mapper.mjs +1 -1
- package/esm2022/notification/helpers.mjs +1 -1
- package/esm2022/notification/notification-util.service.mjs +4 -4
- package/esm2022/notification/resource-error.interceptor.mjs +2 -2
- package/esm2022/page-guard/component/component.mjs +3 -3
- package/esm2022/page-guard/module.mjs +4 -4
- package/esm2022/page-scaffold/module.mjs +5 -5
- package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.component.mjs +1 -1
- package/esm2022/page-scaffold/navigation/breadcrumb/module.mjs +2 -2
- package/esm2022/page-scaffold/navigation/breadcrumb/public-api.mjs +5 -0
- package/esm2022/page-scaffold/navigation/lottie-icons/public-api.mjs +3 -0
- package/esm2022/page-scaffold/navigation/module.mjs +2 -2
- package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.component.mjs +5 -5
- package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.module.mjs +2 -2
- package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.types.mjs +1 -1
- package/esm2022/page-scaffold/navigation/nav-menu/public-api.mjs +4 -0
- package/esm2022/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.mjs +2 -2
- package/esm2022/page-scaffold/navigation/navconfig-loader/public-api.mjs +8 -0
- package/esm2022/page-scaffold/navigation/public-api.mjs +7 -0
- package/esm2022/page-scaffold/page/notices/maintenance.component.mjs +32 -26
- package/esm2022/page-scaffold/page/page.component.mjs +20 -12
- package/esm2022/page-scaffold/page/page.module.mjs +2 -2
- package/esm2022/page-scaffold/page/public-api.mjs +5 -0
- package/esm2022/page-scaffold/page-header/account-menu/component/component.mjs +2 -2
- package/esm2022/page-scaffold/page-header/common-layout/common-layout.module.mjs +3 -3
- package/esm2022/page-scaffold/page-header/common-layout/context.service.mjs +2 -2
- package/esm2022/page-scaffold/page-header/common-layout/namespace-select/component.mjs +3 -4
- package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +7 -7
- package/esm2022/page-scaffold/page-header/common-layout/project-select/base-selection.mjs +2 -2
- package/esm2022/page-scaffold/page-header/common-layout/store.service.mjs +3 -3
- package/esm2022/page-scaffold/page-header/enterprise-support-status/component.mjs +2 -2
- package/esm2022/page-scaffold/page-header/header-notify/notify.service.mjs +3 -3
- package/esm2022/page-scaffold/page-header/header-notify/utils.mjs +1 -1
- package/esm2022/page-scaffold/page-header/help-menu/component/component.mjs +3 -3
- package/esm2022/page-scaffold/page-header/public-api.mjs +14 -0
- package/esm2022/page-scaffold/public-api.mjs +5 -0
- package/esm2022/permission/helpers.mjs +2 -5
- package/esm2022/permission/k8s-permission.service.mjs +2 -3
- package/esm2022/permission/permission.guard.mjs +3 -3
- package/esm2022/permission/public-api.mjs +1 -2
- package/esm2022/permission/types.mjs +2 -2
- package/esm2022/pie-derivative-chart/donut-status/component.mjs +1 -1
- package/esm2022/public-api.mjs +11 -11
- package/esm2022/scm/declare.directive.mjs +27 -0
- package/esm2022/scm/password-input/component.mjs +104 -67
- package/esm2022/scm/password-input/module.mjs +16 -13
- package/esm2022/scm/password-input/public-api.mjs +3 -0
- package/esm2022/scm/public-api.mjs +10 -0
- package/esm2022/scm/pure-pipe/calc.pipe.mjs +3 -2
- package/esm2022/scm/pure-pipe/module.mjs +3 -4
- package/esm2022/scm/pure-pipe/public-api.mjs +4 -0
- package/esm2022/scm/pure-pipe/pure.pipe.mjs +1 -1
- package/esm2022/scm/resource-multi-select/component.mjs +7 -9
- package/esm2022/scm/resource-multi-select/util.mjs +1 -1
- package/esm2022/scm/search-panel/component.mjs +2 -2
- package/esm2022/searchable-selector/component.mjs +4 -2
- package/esm2022/skeleton/item/component.mjs +1 -1
- package/esm2022/skeleton/module.mjs +2 -2
- package/esm2022/table/component.mjs +4 -4
- package/esm2022/table/helper.mjs +2 -2
- package/esm2022/table/module.mjs +1 -1
- package/esm2022/table/types.mjs +1 -1
- package/esm2022/table/util.service.mjs +3 -3
- package/esm2022/translate/constants.mjs +1 -1
- package/esm2022/translate/en.json +30 -4
- package/esm2022/translate/helpers.mjs +15 -1
- package/esm2022/translate/public-api.mjs +1 -2
- package/esm2022/translate/translate.module.mjs +3 -7
- package/esm2022/translate/types.mjs +1 -1
- package/esm2022/translate/zh.json +28 -2
- package/esm2022/view-chart/custom-template/dropdown-legend.mjs +1 -1
- package/esm2022/view-chart/legend/legend.component.mjs +1 -1
- package/esm2022/view-chart/view-chart.module.mjs +2 -2
- package/esm2022/view-zchart/custom-template/dropdown-legend.mjs +1 -1
- package/esm2022/view-zchart/legend/legend.component.mjs +1 -1
- package/esm2022/view-zchart/types.mjs +2 -0
- package/esm2022/view-zchart/units.mjs +2 -2
- package/esm2022/view-zchart/view-zchart.component.mjs +10 -5
- package/esm2022/widget/confirm-delete/confirm-delete.component.mjs +2 -2
- package/esm2022/widget/confirm-delete/utils.mjs +1 -1
- package/esm2022/widget/current-time/component.mjs +4 -4
- package/esm2022/widget/date-range-picker/component.mjs +10 -11
- package/esm2022/widget/field-set/index.mjs +14 -0
- package/esm2022/widget/field-set/item/component.mjs +2 -2
- package/esm2022/widget/foldable-block/component.mjs +2 -2
- package/esm2022/widget/foldable-item-in-table/component.mjs +3 -3
- package/esm2022/widget/loading-mask/loading-mask.component.mjs +2 -2
- package/esm2022/widget/public-api.mjs +3 -4
- package/esm2022/widget/relative-time/component.mjs +4 -4
- package/esm2022/widget/status-icon/status-icon.component.mjs +102 -0
- package/esm2022/widget/tags-label/component.mjs +3 -3
- package/esm2022/widget/terminating-tag/component.mjs +1 -1
- package/esm2022/widget/zero-state/zero-state.component.mjs +3 -3
- package/esm2022/window-channel/base-window-channel.mjs +1 -1
- package/esm2022/window-channel/host-window-channel.service.mjs +15 -15
- package/esm2022/window-channel/public-api.mjs +5 -0
- package/esm2022/window-channel/utils.mjs +1 -1
- package/esm2022/xterm/xterm-terminal/xterm-terminal.component.mjs +4 -4
- package/esm2022/xterm/xterm.component.mjs +5 -2
- package/exec/service.d.ts +1 -1
- package/exec/terminal/component.d.ts +1 -1
- package/{errors-mapper → form/errors-mapper}/base-errors-mapper.d.ts +2 -2
- package/{errors-mapper → form/errors-mapper}/default-errors-mapper.service.d.ts +1 -1
- package/{errors-mapper → form/errors-mapper}/errors-mapper-component/component.d.ts +1 -1
- package/{errors-mapper → form/errors-mapper}/errors-mapper.directive.d.ts +1 -1
- package/{errors-mapper → form/errors-mapper}/types.d.ts +1 -1
- package/form/labels-editor/component.d.ts +1 -1
- package/form/{index.d.ts → public-api.d.ts} +2 -0
- package/form/taints-editor/component.d.ts +2 -2
- package/form/upload-file/component.d.ts +32 -0
- package/form/validators/public-api.d.ts +1 -1
- package/form/validators/resource-limit.d.ts +1 -1
- package/form/validators/strong-password/{index.d.ts → public-api.d.ts} +1 -1
- package/form/validators/utils.d.ts +1 -1
- package/graph-canvas/components/graph-canvas.component.d.ts +3 -2
- package/graph-canvas/graph-store.service.d.ts +3 -1
- package/graph-canvas/types.d.ts +2 -0
- package/grid-layout/grid-layout.service.d.ts +2 -2
- package/grid-layout/grid-placeholder.service.d.ts +1 -1
- package/grid-layout/utils/client-rect.utils.d.ts +1 -1
- package/help-document/component.d.ts +0 -1
- package/help-document/directive.d.ts +10 -1
- package/k8s-resource-list/footer/component.d.ts +1 -1
- package/k8s-resource-list/k8s-resource-list.d.ts +1 -1
- package/k8s-resource-list/k8s-resource-paged-list.d.ts +1 -1
- package/k8s-resource-list/types.d.ts +1 -1
- package/k8s-resource-list/utils.d.ts +1 -1
- package/k8s-shared/k8s-shared-util.service.d.ts +40 -0
- package/k8s-shared/public-api.d.ts +9 -0
- package/k8s-shared/update-description-dialog/component.d.ts +25 -0
- package/k8s-shared/update-display-name-dialog/component.d.ts +27 -0
- package/k8s-shared/update-key-value-dialog/component.d.ts +39 -0
- package/license/license-api.d.ts +1 -1
- package/license/license.guard.d.ts +1 -1
- package/metric-chart/metric-chart.component.d.ts +3 -2
- package/metric-chart/public-api.d.ts +0 -1
- package/metric-chart/types.d.ts +1 -1
- package/metric-chart/utils.d.ts +1 -1
- package/notification/errors-mapper.d.ts +1 -1
- package/notification/helpers.d.ts +1 -1
- package/notification/notification-util.service.d.ts +2 -2
- package/notification/resource-error.interceptor.d.ts +1 -1
- package/package.json +1 -1
- package/page-guard/module.d.ts +3 -0
- package/page-scaffold/navigation/breadcrumb/breadcrumb.component.d.ts +2 -2
- package/page-scaffold/navigation/nav-menu/nav-menu.component.d.ts +1 -1
- package/page-scaffold/navigation/nav-menu/nav-menu.types.d.ts +1 -1
- package/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.d.ts +2 -2
- package/page-scaffold/navigation/public-api.d.ts +6 -0
- package/page-scaffold/page/notices/maintenance.component.d.ts +7 -7
- package/page-scaffold/page/page.component.d.ts +2 -1
- package/page-scaffold/page-header/common-layout/context.service.d.ts +1 -1
- package/page-scaffold/page-header/common-layout/namespace-select/component.d.ts +1 -1
- package/page-scaffold/page-header/common-layout/product-select/component.d.ts +2 -2
- package/page-scaffold/page-header/common-layout/store.service.d.ts +1 -1
- package/page-scaffold/page-header/header-notify/notify.service.d.ts +1 -1
- package/page-scaffold/page-header/header-notify/utils.d.ts +1 -1
- package/page-scaffold/page-header/help-menu/component/component.d.ts +1 -1
- package/page-scaffold/public-api.d.ts +4 -0
- package/permission/helpers.d.ts +1 -10
- package/permission/k8s-permission.service.d.ts +1 -1
- package/permission/permission.guard.d.ts +1 -1
- package/permission/public-api.d.ts +0 -1
- package/permission/types.d.ts +1 -1
- package/pie-derivative-chart/donut-status/component.d.ts +1 -1
- package/public-api.d.ts +10 -10
- package/scm/declare.directive.d.ts +8 -0
- package/scm/password-input/component.d.ts +5 -1
- package/scm/password-input/module.d.ts +2 -2
- package/scm/{index.d.ts → public-api.d.ts} +3 -2
- package/scm/pure-pipe/calc.pipe.d.ts +1 -1
- package/scm/pure-pipe/module.d.ts +3 -3
- package/scm/pure-pipe/pure.pipe.d.ts +1 -1
- package/scm/resource-multi-select/component.d.ts +4 -3
- package/scm/resource-multi-select/util.d.ts +1 -1
- package/skeleton/item/component.d.ts +1 -1
- package/styles/global.scss +1 -2
- package/styles/mixins.scss +39 -0
- package/styles/tailwind-preset.scss +1 -1
- package/table/component.d.ts +1 -1
- package/table/helper.d.ts +1 -1
- package/table/types.d.ts +1 -1
- package/table/util.service.d.ts +1 -1
- package/translate/constants.d.ts +1 -1
- package/translate/helpers.d.ts +3 -0
- package/translate/public-api.d.ts +0 -1
- package/translate/translate.module.d.ts +54 -3
- package/translate/types.d.ts +1 -1
- package/view-chart/custom-template/dropdown-legend.d.ts +1 -1
- package/view-chart/legend/legend.component.d.ts +1 -1
- package/view-zchart/custom-template/dropdown-legend.d.ts +1 -1
- package/view-zchart/legend/legend.component.d.ts +1 -1
- package/view-zchart/types.d.ts +22 -0
- package/view-zchart/units.d.ts +1 -1
- package/view-zchart/view-zchart.component.d.ts +7 -2
- package/widget/confirm-delete/utils.d.ts +1 -1
- package/widget/current-time/component.d.ts +1 -1
- package/widget/date-range-picker/component.d.ts +1 -1
- package/widget/field-set/index.d.ts +7 -0
- package/widget/foldable-item-in-table/component.d.ts +1 -1
- package/widget/public-api.d.ts +2 -3
- package/widget/relative-time/component.d.ts +1 -1
- package/widget/status-icon/status-icon.component.d.ts +16 -0
- package/widget/tags-label/component.d.ts +1 -1
- package/widget/terminating-tag/component.d.ts +1 -1
- package/window-channel/base-window-channel.d.ts +1 -1
- package/window-channel/utils.d.ts +0 -1
- package/core/components/index.d.ts +0 -1
- package/core/components/tree/index.d.ts +0 -1
- package/core/components/tree/public-api.d.ts +0 -6
- package/core/index.d.ts +0 -1
- package/core/pipes/trust-url.pipe.d.ts +0 -19
- package/core/utils/k8s-pattern.d.ts +0 -12
- package/esm2022/a-chart/components/index.mjs +0 -4
- package/esm2022/a-chart/components/legend/index.mjs +0 -4
- package/esm2022/a-metric-chart/utils/index.mjs +0 -4
- package/esm2022/core/abstract/index.mjs +0 -3
- package/esm2022/core/components/index.mjs +0 -2
- package/esm2022/core/components/tree/index.mjs +0 -2
- package/esm2022/core/components/tree/public-api.mjs +0 -7
- package/esm2022/core/constants/index.mjs +0 -6
- package/esm2022/core/directives/index.mjs +0 -11
- package/esm2022/core/guards/index.mjs +0 -5
- package/esm2022/core/index.mjs +0 -2
- package/esm2022/core/pipes/index.mjs +0 -18
- package/esm2022/core/pipes/trust-url.pipe.mjs +0 -28
- package/esm2022/core/services/index.mjs +0 -15
- package/esm2022/core/types/index.mjs +0 -11
- package/esm2022/core/types/k8s/index.mjs +0 -4
- package/esm2022/core/utils/index.mjs +0 -23
- package/esm2022/core/utils/k8s-pattern.mjs +0 -13
- package/esm2022/editable-text/index.mjs +0 -3
- package/esm2022/errors-mapper/base-errors-mapper.mjs +0 -42
- package/esm2022/errors-mapper/default-errors-mapper.service.mjs +0 -65
- package/esm2022/errors-mapper/errors-mapper-component/component.mjs +0 -71
- package/esm2022/errors-mapper/errors-mapper.directive.mjs +0 -115
- package/esm2022/errors-mapper/public-api.mjs +0 -5
- package/esm2022/errors-mapper/types.mjs +0 -2
- package/esm2022/exec/index.mjs +0 -8
- package/esm2022/feature-gate-forbidden/index.mjs +0 -3
- package/esm2022/form/index.mjs +0 -5
- package/esm2022/form/validators/strong-password/index.mjs +0 -4
- package/esm2022/form/validators/strong-password/strong-password-tooltip/index.mjs +0 -2
- package/esm2022/grid-layout/index.mjs +0 -11
- package/esm2022/metric-chart/range-util.mjs +0 -35
- package/esm2022/multi-search/index.mjs +0 -5
- package/esm2022/page-scaffold/index.mjs +0 -5
- package/esm2022/page-scaffold/navigation/breadcrumb/index.mjs +0 -5
- package/esm2022/page-scaffold/navigation/index.mjs +0 -7
- package/esm2022/page-scaffold/navigation/lottie-icons/index.mjs +0 -3
- package/esm2022/page-scaffold/navigation/nav-menu/index.mjs +0 -4
- package/esm2022/page-scaffold/navigation/navconfig-loader/index.mjs +0 -8
- package/esm2022/page-scaffold/page/index.mjs +0 -5
- package/esm2022/page-scaffold/page-header/index.mjs +0 -14
- package/esm2022/permission/admin.guard.mjs +0 -43
- package/esm2022/scm/index.mjs +0 -9
- package/esm2022/scm/password-input/index.mjs +0 -3
- package/esm2022/scm/pure-pipe/index.mjs +0 -4
- package/esm2022/translate/pick-locale.pipe.mjs +0 -34
- package/esm2022/window-channel/index.mjs +0 -5
- package/form/validators/strong-password/strong-password-tooltip/index.d.ts +0 -1
- package/metric-chart/range-util.d.ts +0 -1
- package/page-scaffold/index.d.ts +0 -4
- package/page-scaffold/navigation/index.d.ts +0 -6
- package/permission/admin.guard.d.ts +0 -14
- package/translate/pick-locale.pipe.d.ts +0 -12
- /package/a-chart/components/legend/{index.d.ts → public-api.d.ts} +0 -0
- /package/a-metric-chart/utils/{index.d.ts → public-api.d.ts} +0 -0
- /package/core/abstract/{index.d.ts → public-api.d.ts} +0 -0
- /package/core/constants/{index.d.ts → public-api.d.ts} +0 -0
- /package/core/directives/{index.d.ts → public-api.d.ts} +0 -0
- /package/core/guards/{index.d.ts → public-api.d.ts} +0 -0
- /package/core/services/{index.d.ts → public-api.d.ts} +0 -0
- /package/core/types/k8s/{index.d.ts → public-api.d.ts} +0 -0
- /package/editable-text/{index.d.ts → public-api.d.ts} +0 -0
- /package/exec/{index.d.ts → public-api.d.ts} +0 -0
- /package/feature-gate-forbidden/{index.d.ts → public-api.d.ts} +0 -0
- /package/{errors-mapper → form/errors-mapper}/errors-mapper.module.d.ts +0 -0
- /package/{errors-mapper → form/errors-mapper}/public-api.d.ts +0 -0
- /package/grid-layout/{index.d.ts → public-api.d.ts} +0 -0
- /package/multi-search/{index.d.ts → public-api.d.ts} +0 -0
- /package/page-scaffold/navigation/breadcrumb/{index.d.ts → public-api.d.ts} +0 -0
- /package/page-scaffold/navigation/lottie-icons/{index.d.ts → public-api.d.ts} +0 -0
- /package/page-scaffold/navigation/nav-menu/{index.d.ts → public-api.d.ts} +0 -0
- /package/page-scaffold/navigation/navconfig-loader/{index.d.ts → public-api.d.ts} +0 -0
- /package/page-scaffold/page/{index.d.ts → public-api.d.ts} +0 -0
- /package/page-scaffold/page-header/{index.d.ts → public-api.d.ts} +0 -0
- /package/scm/password-input/{index.d.ts → public-api.d.ts} +0 -0
- /package/scm/pure-pipe/{index.d.ts → public-api.d.ts} +0 -0
- /package/window-channel/{index.d.ts → public-api.d.ts} +0 -0
|
@@ -546,7 +546,7 @@ export class ResourceDataGridComponent {
|
|
|
546
546
|
i0.ɵɵproperty("ngIf", !ctx.loading && i0.ɵɵpipeBind3(15, 21, i0.ɵɵpipeBind2(16, 25, i0.ɵɵpipeBind1(17, 28, ctx.displayData$), ctx.sortWithoutIstio), ctx.filterDisabledData, ctx.context));
|
|
547
547
|
i0.ɵɵadvance(4);
|
|
548
548
|
i0.ɵɵproperty("ngIf", ctx.loading);
|
|
549
|
-
} }, styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;box-shadow:0 0 4px 0 rgba(var(--aui-color-n-1),.16);padding:22px 20px 20px;background-color:rgb(var(--aui-color-n-10));border-radius:4px}.header[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:20px;height:28px}.header[_ngcontent-%COMP%] aui-search[_ngcontent-%COMP%]{width:260px}.header__title[_ngcontent-%COMP%]{font-size:18px;font-weight:500;line-height:28px;color:rgb(var(--aui-color-n-1))}.header__title--lite[_ngcontent-%COMP%]{font-size:16px;font-weight:700;line-height:22px}.header__desc[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-4))}.header__custom[_ngcontent-%COMP%]{flex:1;padding:0 36px}.header__display-mode[_ngcontent-%COMP%]{display:flex;border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-m);margin-left:16px;padding:1px}.switch-btn[_ngcontent-%COMP%]{cursor:pointer;width:24px;height:24px;border-radius:var(--aui-border-radius-m);display:inline-flex;align-items:center;justify-content:center}.switch-btn[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:12px;height:12px}.switch-btn--selected[_ngcontent-%COMP%]{background-color:rgb(var(--aui-color-n-10));color:rgb(var(--aui-color-primary))}.grid[_ngcontent-%COMP%]{overflow-y:auto;padding:20px;background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.grid[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}.grid[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.grid[_ngcontent-%COMP%]::-webkit-scrollbar-corner{background-color:transparent}.grid__item[_ngcontent-%COMP%]{display:flex;position:relative;flex-direction:row;border-radius:var(--aui-border-radius-l);padding:9px 20px;min-height:60px;color:rgb(var(--aui-color-n-1));align-items:center;cursor:pointer;background-color:rgb(var(--aui-color-n-10))}.grid__item[_ngcontent-%COMP%]:not(:last-child){margin-bottom:8px}.grid__item[_ngcontent-%COMP%]:not(.grid__item--disabled):hover{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 8px 0 rgba(var(--aui-color-primary),.5)}.grid__item--disabled[_ngcontent-%COMP%]{cursor:default}.grid__item--disabled[_ngcontent-%COMP%], .grid__item--disabled[_ngcontent-%COMP%]:hover{background-color:rgb(var(--aui-color-n-9))}.grid__item--disabled[_ngcontent-%COMP%] .grid__field[_ngcontent-%COMP%]{opacity:.3}.grid__item--disabled[_ngcontent-%COMP%] .grid__field-servicemesh[_ngcontent-%COMP%], .grid__item--disabled[_ngcontent-%COMP%] .grid__field-action[_ngcontent-%COMP%]{opacity:1}.grid__field[_ngcontent-%COMP%]{flex:2;line-height:20px}.grid__field[_ngcontent-%COMP%]:not(.grid__field-status){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.grid__field[_ngcontent-%COMP%]:not(:last-child){margin-right:20px}.grid__field-servicemesh[_ngcontent-%COMP%]{flex:2;align-items:stretch;max-width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-servicemesh[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-servicemesh[_ngcontent-%COMP%] aui-tag[_ngcontent-%COMP%]{margin-left:8px}.grid__field-status[_ngcontent-%COMP%]{display:flex;align-items:center}.grid__field-status[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{font-size:16px;display:inline-flex;margin-right:4px}.grid__field-status[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{display:none}.grid__field-icon[_ngcontent-%COMP%]{max-width:30px;display:inline-flex}.grid__field-name[_ngcontent-%COMP%]{flex:2;flex-direction:column;max-width:280px}.grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%], .grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:14px;font-weight:500;line-height:20px}.grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{margin-left:4px}.grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-action[_ngcontent-%COMP%]{max-width:30px}.grid--popup[_ngcontent-%COMP%]{max-height:382px;padding:12px}.grid--popup[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-normal)}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]{padding:10px 20px;min-height:60px;font-size:14px;background-color:rgb(var(--aui-color-n-10))}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%]{border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-primary));border-color:rgb(var(--aui-color-primary));color:#fff;cursor:default}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%]:hover{box-shadow:none}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{font-weight:500}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{color:#fff}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite[_ngcontent-%COMP%]{background-color:rgb(var(--aui-color-n-10));padding:0}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%]{padding:10px 14px;min-height:44px;border:1px solid rgb(var(--aui-color-n-7))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__field[_ngcontent-%COMP%]:not(:last-child){margin-right:12px}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:14px;line-height:25px;font-weight:400}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__field-icon[_ngcontent-%COMP%]{max-width:24px}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__item-selected-icon[_ngcontent-%COMP%]{display:inline-flex}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{font-weight:500}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{color:#fff}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item--selected[_ngcontent-%COMP%]{background-color:rgb(var(--aui-color-b-7));border:1px solid rgb(var(--aui-color-primary))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%]:hover{border:1px solid rgb(var(--aui-color-primary));box-shadow:none}.grid--card[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(208px,1fr));gap:20px 20px}.grid--card[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%]{margin-bottom:0;height:290px;display:block;text-align:center;padding:40px 20px;border-radius:var(--aui-border-radius-l);position:relative}.grid--card[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .belonged-cluster[_ngcontent-%COMP%]{position:static;padding-right:0}.grid--card[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] aui-tag[_ngcontent-%COMP%]{position:absolute;top:8px;right:8px}.grid--card[_ngcontent-%COMP%] .grid__field[_ngcontent-%COMP%]{margin-right:0;justify-content:center}.grid--card[_ngcontent-%COMP%] .grid__field-icon[_ngcontent-%COMP%]{max-width:100%;vertical-align:middle}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%]{margin:20px 0 24px}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%], .grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{justify-content:center}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:20px;font-weight:500;line-height:28px;margin-bottom:2px}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{font-size:14px;height:20px}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] ~ .grid__field[_ngcontent-%COMP%]:not(.grid__field-status){line-height:20px;font-size:14px;text-align:center}.grid--card[_ngcontent-%COMP%] .grid__field-status[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{display:inline}.grid--card[_ngcontent-%COMP%] .grid__field-servicemesh[_ngcontent-%COMP%]:not(:last-of-type){margin-bottom:4px}.grid--card[_ngcontent-%COMP%] .grid__field-cluster[_ngcontent-%COMP%]{margin-bottom:4px}.grid--card[_ngcontent-%COMP%] .grid__field-action[_ngcontent-%COMP%]{position:absolute;right:10px;top:10px}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected){position:relative}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected):after{position:absolute;content:\"\";top:0;right:0;bottom:0;left:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:4px;pointer-events:none;transition:all .2s ease-in-out}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected).disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected):not(.disabled):hover:after{top:-4px;right:-4px;bottom:-4px;left:-4px;border-color:rgb(var(--aui-color-primary));box-shadow:inset 0 0 0 4px rgb(var(--aui-color-n-10)),0 0 8px 0 rgba(var(--aui-color-primary),.5)}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected):not(.disabled):active:after{top:0;right:0;bottom:0;left:0;box-shadow:0 0 4px 0 rgba(var(--aui-color-primary),.5)}.flex[_ngcontent-%COMP%]{display:flex}.highlighted[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-8))}.with-colon[_ngcontent-%COMP%]{font-weight:500}.with-colon[_ngcontent-%COMP%]:after{content:\":\";margin-right:8px}.icon-normal[_ngcontent-%COMP%], .icon-enabled[_ngcontent-%COMP%]{color:rgb(var(--aui-color-green))}.icon-abnormal[_ngcontent-%COMP%]{color:rgb(var(--aui-color-red))}.icon-disabled[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-6))}.belonged-cluster[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;padding-right:44px}.belonged-cluster[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%] + span[_ngcontent-%COMP%]{margin-right:8px}.belonged-cluster[_ngcontent-%COMP%] aui-tag[_ngcontent-%COMP%]{position:absolute;display:inline-flex}.loading[_ngcontent-%COMP%]{display:flex;height:60px;align-items:center;justify-content:center}acl-resource-no-data[_ngcontent-%COMP%]{flex:1;margin:40px 0 80px}acl-zero-state[_ngcontent-%COMP%] .zero-placeholder{min-height:44px;padding:12px 10px}"], changeDetection: 0 }); }
|
|
549
|
+
} }, styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);padding:22px 20px 20px;background-color:rgb(var(--aui-color-n-10));border-radius:4px}.header[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:20px;height:28px}.header[_ngcontent-%COMP%] aui-search[_ngcontent-%COMP%]{width:260px}.header__title[_ngcontent-%COMP%]{font-size:18px;font-weight:500;line-height:28px;color:rgb(var(--aui-color-n-1))}.header__title--lite[_ngcontent-%COMP%]{font-size:16px;font-weight:700;line-height:22px}.header__desc[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-4))}.header__custom[_ngcontent-%COMP%]{flex:1;padding:0 36px}.header__display-mode[_ngcontent-%COMP%]{display:flex;border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-m);margin-left:16px;padding:1px}.switch-btn[_ngcontent-%COMP%]{cursor:pointer;width:24px;height:24px;border-radius:var(--aui-border-radius-m);display:inline-flex;align-items:center;justify-content:center}.switch-btn[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:12px;height:12px}.switch-btn--selected[_ngcontent-%COMP%]{background-color:rgb(var(--aui-color-n-10));color:rgb(var(--aui-color-primary))}.grid[_ngcontent-%COMP%]{overflow-y:auto;padding:20px;background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.grid[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}.grid[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.grid[_ngcontent-%COMP%]::-webkit-scrollbar-corner{background-color:transparent}.grid__item[_ngcontent-%COMP%]{display:flex;position:relative;flex-direction:row;border-radius:var(--aui-border-radius-l);padding:9px 20px;min-height:60px;color:rgb(var(--aui-color-n-1));align-items:center;cursor:pointer;background-color:rgb(var(--aui-color-n-10))}.grid__item[_ngcontent-%COMP%]:not(:last-child){margin-bottom:8px}.grid__item[_ngcontent-%COMP%]:not(.grid__item--disabled):hover{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 8px rgba(var(--aui-color-primary),.5)}.grid__item--disabled[_ngcontent-%COMP%]{cursor:default}.grid__item--disabled[_ngcontent-%COMP%], .grid__item--disabled[_ngcontent-%COMP%]:hover{background-color:rgb(var(--aui-color-n-9))}.grid__item--disabled[_ngcontent-%COMP%] .grid__field[_ngcontent-%COMP%]{opacity:.3}.grid__item--disabled[_ngcontent-%COMP%] .grid__field-servicemesh[_ngcontent-%COMP%], .grid__item--disabled[_ngcontent-%COMP%] .grid__field-action[_ngcontent-%COMP%]{opacity:1}.grid__field[_ngcontent-%COMP%]{flex:2;line-height:20px}.grid__field[_ngcontent-%COMP%]:not(.grid__field-status){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.grid__field[_ngcontent-%COMP%]:not(:last-child){margin-right:20px}.grid__field-servicemesh[_ngcontent-%COMP%]{flex:2;align-items:stretch;max-width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-servicemesh[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-servicemesh[_ngcontent-%COMP%] aui-tag[_ngcontent-%COMP%]{margin-left:8px}.grid__field-status[_ngcontent-%COMP%]{display:flex;align-items:center}.grid__field-status[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{font-size:16px;display:inline-flex;margin-right:4px}.grid__field-status[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{display:none}.grid__field-icon[_ngcontent-%COMP%]{max-width:30px;display:inline-flex}.grid__field-name[_ngcontent-%COMP%]{flex:2;flex-direction:column;max-width:280px}.grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%], .grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:14px;font-weight:500;line-height:20px}.grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{margin-left:4px}.grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-action[_ngcontent-%COMP%]{max-width:30px}.grid--popup[_ngcontent-%COMP%]{max-height:382px;padding:12px}.grid--popup[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-normal)}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]{padding:10px 20px;min-height:60px;font-size:14px;background-color:rgb(var(--aui-color-n-10))}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%]{border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-primary));border-color:rgb(var(--aui-color-primary));color:#fff;cursor:default}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%]:hover{box-shadow:none}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{font-weight:500}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{color:#fff}.grid--popup[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item--selected[_ngcontent-%COMP%] .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite[_ngcontent-%COMP%]{background-color:rgb(var(--aui-color-n-10));padding:0}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%]{padding:10px 14px;min-height:44px;border:1px solid rgb(var(--aui-color-n-7))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__field[_ngcontent-%COMP%]:not(:last-child){margin-right:12px}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:14px;line-height:25px;font-weight:400}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__field-icon[_ngcontent-%COMP%]{max-width:24px}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .grid__item-selected-icon[_ngcontent-%COMP%]{display:inline-flex}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{font-weight:500}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{color:#fff}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item--selected[_ngcontent-%COMP%]{background-color:rgb(var(--aui-color-b-7));border:1px solid rgb(var(--aui-color-primary))}.grid--popup--lite[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%]:hover{border:1px solid rgb(var(--aui-color-primary));box-shadow:none}.grid--card[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(208px,1fr));gap:20px 20px}.grid--card[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%]{margin-bottom:0;height:290px;display:block;text-align:center;padding:40px 20px;border-radius:var(--aui-border-radius-l);position:relative}.grid--card[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] .belonged-cluster[_ngcontent-%COMP%]{position:static;padding-right:0}.grid--card[_ngcontent-%COMP%] .grid__item[_ngcontent-%COMP%] aui-tag[_ngcontent-%COMP%]{position:absolute;top:8px;right:8px}.grid--card[_ngcontent-%COMP%] .grid__field[_ngcontent-%COMP%]{margin-right:0;justify-content:center}.grid--card[_ngcontent-%COMP%] .grid__field-icon[_ngcontent-%COMP%]{max-width:100%;vertical-align:middle}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%]{margin:20px 0 24px}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%], .grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{justify-content:center}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:20px;font-weight:500;line-height:28px;margin-bottom:2px}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] .des[_ngcontent-%COMP%]{font-size:14px;height:20px}.grid--card[_ngcontent-%COMP%] .grid__field-name[_ngcontent-%COMP%] ~ .grid__field[_ngcontent-%COMP%]:not(.grid__field-status){line-height:20px;font-size:14px;text-align:center}.grid--card[_ngcontent-%COMP%] .grid__field-status[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%]{display:inline}.grid--card[_ngcontent-%COMP%] .grid__field-servicemesh[_ngcontent-%COMP%]:not(:last-of-type){margin-bottom:4px}.grid--card[_ngcontent-%COMP%] .grid__field-cluster[_ngcontent-%COMP%]{margin-bottom:4px}.grid--card[_ngcontent-%COMP%] .grid__field-action[_ngcontent-%COMP%]{position:absolute;right:10px;top:10px}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected){position:relative}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected):after{position:absolute;content:\"\";top:0;right:0;bottom:0;left:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:4px;pointer-events:none;transition:all .2s ease-in-out}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected).disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected):not(.disabled):hover:after{top:-4px;right:-4px;bottom:-4px;left:-4px;border-color:rgb(var(--aui-color-primary));box-shadow:inset 0 0 0 4px rgb(var(--aui-color-n-10)),0 0 8px rgba(var(--aui-color-primary),.5)}.grid[_ngcontent-%COMP%]:not(.grid--popup--lite) .grid__item[_ngcontent-%COMP%]:not(.grid__item--selected):not(.disabled):active:after{top:0;right:0;bottom:0;left:0;box-shadow:0 0 4px rgba(var(--aui-color-primary),.5)}.flex[_ngcontent-%COMP%]{display:flex}.highlighted[_ngcontent-%COMP%]{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-8))}.with-colon[_ngcontent-%COMP%]{font-weight:500}.with-colon[_ngcontent-%COMP%]:after{content:\":\";margin-right:8px}.icon-normal[_ngcontent-%COMP%], .icon-enabled[_ngcontent-%COMP%]{color:rgb(var(--aui-color-green))}.icon-abnormal[_ngcontent-%COMP%]{color:rgb(var(--aui-color-red))}.icon-disabled[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-6))}.belonged-cluster[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;padding-right:44px}.belonged-cluster[_ngcontent-%COMP%] .with-colon[_ngcontent-%COMP%] + span[_ngcontent-%COMP%]{margin-right:8px}.belonged-cluster[_ngcontent-%COMP%] aui-tag[_ngcontent-%COMP%]{position:absolute;display:inline-flex}.loading[_ngcontent-%COMP%]{display:flex;height:60px;align-items:center;justify-content:center}acl-resource-no-data[_ngcontent-%COMP%]{flex:1;margin:40px 0 80px}acl-zero-state[_ngcontent-%COMP%] .zero-placeholder{min-height:44px;padding:12px 10px}"], changeDetection: 0 }); }
|
|
550
550
|
}
|
|
551
551
|
__decorate([
|
|
552
552
|
ObservableInput(),
|
|
@@ -554,7 +554,7 @@ __decorate([
|
|
|
554
554
|
], ResourceDataGridComponent.prototype, "data$", void 0);
|
|
555
555
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResourceDataGridComponent, [{
|
|
556
556
|
type: Component,
|
|
557
|
-
args: [{ selector: 'acl-resource-data-grid', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"header\">\n <span\n class=\"header__title\"\n [ngClass]=\"{ 'header__title--lite': popupLite }\"\n >\n <span>{{ type | pure: pluralForm | translate }}</span\n ><span class=\"header__desc\"\n >\uFF08{{ (displayData$ | async)?.length || 0 }}\uFF09</span\n >\n </span>\n <div\n class=\"header__custom\"\n *ngIf=\"!popupLite\"\n >\n <ng-content select=\"[aclResourceGridHeader]\"></ng-content>\n </div>\n <div\n class=\"tw-flex-1\"\n *ngIf=\"popupLite\"\n ></div>\n <aui-search\n [searchButton]=\"false\"\n [placeholder]=\"'filter_by_name' | translate\"\n [keyword]=\"keyword\"\n (keywordChange)=\"keywordChange($event)\"\n [clearable]=\"true\"\n size=\"small\"\n ></aui-search>\n <span\n class=\"header__display-mode\"\n *ngIf=\"context === 'page'\"\n >\n <span\n class=\"switch-btn\"\n [ngClass]=\"{ 'switch-btn--selected': displayMode !== 'card' }\"\n (click)=\"setDisplayMode('row')\"\n >\n <aui-icon icon=\"list\"></aui-icon>\n </span>\n <span\n class=\"switch-btn\"\n [ngClass]=\"{ 'switch-btn--selected': displayMode === 'card' }\"\n (click)=\"setDisplayMode('card')\"\n >\n <aui-icon icon=\"grid\"></aui-icon>\n </span>\n </span>\n</div>\n<ng-container\n *ngIf=\"\n !loading &&\n (displayData$\n | async\n | pure: sortWithoutIstio\n | pure: filterDisabledData:context) as displayData\n \"\n>\n <div\n class=\"grid\"\n *ngIf=\"displayData.length\"\n #grid\n [ngClass]=\"{\n 'grid--card': displayMode === 'card' && context !== 'popup',\n 'grid--popup': context === 'popup',\n 'grid--popup--lite': context === 'popup' && popupLite\n }\"\n >\n <div\n class=\"grid__item\"\n *ngFor=\"let item of displayData\"\n [ngClass]=\"{\n 'grid__item--selected':\n context === 'popup' && selectedUid === item.__origin.metadata.uid,\n 'grid__item--disabled': item.state?.disabled\n }\"\n (click)=\"onSelect(item)\"\n [attr.data-test]=\"item.name + '/' + item.cluster\"\n [auiTooltip]=\"item.state?.tooltip\"\n [auiTooltipDisabled]=\"!item.state?.disabled || !item.state?.tooltip\"\n >\n <aui-icon\n *ngIf=\"selectedUid === item.__origin.metadata.uid\"\n class=\"check-triangle-badge\"\n icon=\"check\"\n ></aui-icon>\n <!-- icon -->\n <div class=\"grid__field grid__field-icon\">\n <acl-resource-icon\n [type]=\"type\"\n [color]=\"\n context === 'popup' &&\n !popupLite &&\n selectedUid === item.__origin.metadata.uid\n ? 'white'\n : 'blue'\n \"\n [displayMode]=\"displayMode\"\n ></acl-resource-icon>\n </div>\n <!-- name -->\n <div class=\"grid__field grid__field-name\">\n <div class=\"name\">\n <ng-container *ngFor=\"let str of getHighlightedNameStrs(item)\">\n <span [ngClass]=\"{ highlighted: str.isHighlighted }\">{{\n str.text\n }}</span>\n </ng-container>\n </div>\n <div\n class=\"des\"\n *ngIf=\"!popupLite\"\n >\n <ng-container *ngIf=\"item.displayName\">{{\n item.displayName\n }}</ng-container>\n </div>\n </div>\n <!-- ns: cluster -->\n <div\n class=\"grid__field flex grid__field-cluster\"\n *ngIf=\"fields.includes(fieldsDef.Cluster)\"\n >\n <span\n class=\"belonged-cluster\"\n auiTooltip=\"{{\n ('belonged_cluster' | translate) + ': ' + item.cluster\n }}\"\n >\n <span class=\"with-colon\">{{ 'belonged_cluster' | translate }}</span>\n <span\n >{{ item.cluster\n }}<ng-container *ngIf=\"item.clusterDisplayName\"\n >({{ item.clusterDisplayName }})</ng-container\n >\n </span>\n <aui-tag\n type=\"primary\"\n size=\"mini\"\n *ngIf=\"item.clusterArch\"\n >\n {{ item.clusterArch }}\n </aui-tag>\n </span>\n </div>\n <!-- project: status -->\n <div\n class=\"grid__field grid__field-status {{\n 'grid__field-status--' + item.status\n }}\"\n *ngIf=\"fields.includes(fieldsDef.Status)\"\n >\n <label\n *ngIf=\"popupLite\"\n class=\"tw-text-help-text tw-mr-8\"\n >{{ 'status' | translate }}:</label\n >\n <span class=\"with-colon\">{{ 'status' | translate }}</span>\n <aui-icon\n [icon]=\"statusIcon[item.status]\"\n [background]=\"\n statusIcon[item.status].endsWith('_triangle_s')\n ? 'triangle'\n : 'circle'\n \"\n class=\"{{ 'icon-' + item.status }}\"\n ></aui-icon>\n {{ item.status | translate }}\n </div>\n <!-- asm: service mesh -->\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMesh)\"\n >\n <span class=\"with-colon\">{{ 'belonged_servicemesh' | translate }}</span>\n <span> {{ item.serviceMeshName }} </span>\n <div class=\"des\">\n <ng-container *ngIf=\"item.serviceMeshIstioVersion\"\n >(Istio {{ item.serviceMeshIstioVersion }})</ng-container\n >\n </div>\n </div>\n\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMesh)\"\n >\n <span class=\"with-colon\">{{ 'cluster' | translate }}</span>\n <span\n >{{ item.cluster\n }}<ng-container *ngIf=\"item.clusterDisplayName\"\n >({{ item.clusterDisplayName }})</ng-container\n >\n </span>\n <aui-tag\n type=\"primary\"\n size=\"mini\"\n *ngIf=\"item.clusterArch\"\n >\n {{ item.clusterArch }}\n </aui-tag>\n </div>\n\n <!-- mesh group -->\n\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMeshGroup)\"\n >\n <span class=\"with-colon\">{{ 'cluster' | translate }}</span>\n <span>{{ item.cluster }} </span>\n </div>\n <!-- asm: istio -->\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMeshGroup)\"\n >\n <span class=\"with-colon\">{{ 'Istio' }}</span>\n <span\n >{{ item.serviceMeshIstioVersion || ('not_deployed' | translate) }}\n </span>\n </div>\n\n <!-- time -->\n <div\n class=\"grid__field grid__field-time\"\n *ngIf=\"fields.includes(fieldsDef.Time) && !popupLite\"\n >\n <span class=\"with-colon\">{{ 'created_at' | translate }}</span>\n <span>{{ item.timestamp | aclRelativeTime }}</span>\n </div>\n <!-- action -->\n <div\n class=\"grid__field grid__field-action\"\n (click)=\"$event.stopPropagation()\"\n *ngIf=\"\n fields.includes(fieldsDef.Action) &&\n actionTemplateRef &&\n context !== 'popup'\n \"\n >\n <ng-container\n [ngTemplateOutlet]=\"actionTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.__origin\n }\"\n ></ng-container>\n </div>\n </div>\n </div>\n <acl-resource-no-data\n *ngIf=\"!popupLite && !(displayData$ | async)?.length\"\n [isFiltered]=\"!!keyword\"\n [type]=\"type\"\n (refresh)=\"reload.emit()\"\n (clear)=\"keywordChange('')\"\n ></acl-resource-no-data>\n <acl-zero-state\n *ngIf=\"popupLite && !(displayData$ | async)?.length\"\n context=\"table\"\n ></acl-zero-state>\n</ng-container>\n<div\n class=\"loading\"\n *ngIf=\"loading\"\n>\n <acl-loading-mask\n [loading]=\"loading\"\n type=\"content\"\n ></acl-loading-mask>\n</div>\n", styles: [":host{display:flex;flex-direction:column;box-shadow:0 0 4px 0 rgba(var(--aui-color-n-1),.16);padding:22px 20px 20px;background-color:rgb(var(--aui-color-n-10));border-radius:4px}.header{display:flex;align-items:center;margin-bottom:20px;height:28px}.header aui-search{width:260px}.header__title{font-size:18px;font-weight:500;line-height:28px;color:rgb(var(--aui-color-n-1))}.header__title--lite{font-size:16px;font-weight:700;line-height:22px}.header__desc{color:rgb(var(--aui-color-n-4))}.header__custom{flex:1;padding:0 36px}.header__display-mode{display:flex;border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-m);margin-left:16px;padding:1px}.switch-btn{cursor:pointer;width:24px;height:24px;border-radius:var(--aui-border-radius-m);display:inline-flex;align-items:center;justify-content:center}.switch-btn img{width:12px;height:12px}.switch-btn--selected{background-color:rgb(var(--aui-color-n-10));color:rgb(var(--aui-color-primary))}.grid{overflow-y:auto;padding:20px;background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.grid::-webkit-scrollbar{width:4px;height:4px}.grid::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.grid::-webkit-scrollbar-corner{background-color:transparent}.grid__item{display:flex;position:relative;flex-direction:row;border-radius:var(--aui-border-radius-l);padding:9px 20px;min-height:60px;color:rgb(var(--aui-color-n-1));align-items:center;cursor:pointer;background-color:rgb(var(--aui-color-n-10))}.grid__item:not(:last-child){margin-bottom:8px}.grid__item:not(.grid__item--disabled):hover{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 8px 0 rgba(var(--aui-color-primary),.5)}.grid__item--disabled{cursor:default}.grid__item--disabled,.grid__item--disabled:hover{background-color:rgb(var(--aui-color-n-9))}.grid__item--disabled .grid__field{opacity:.3}.grid__item--disabled .grid__field-servicemesh,.grid__item--disabled .grid__field-action{opacity:1}.grid__field{flex:2;line-height:20px}.grid__field:not(.grid__field-status){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.grid__field:not(:last-child){margin-right:20px}.grid__field-servicemesh{flex:2;align-items:stretch;max-width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-servicemesh .des{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-servicemesh aui-tag{margin-left:8px}.grid__field-status{display:flex;align-items:center}.grid__field-status aui-icon{font-size:16px;display:inline-flex;margin-right:4px}.grid__field-status .with-colon{display:none}.grid__field-icon{max-width:30px;display:inline-flex}.grid__field-name{flex:2;flex-direction:column;max-width:280px}.grid__field-name .name,.grid__field-name .des{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-name .name{font-size:14px;font-weight:500;line-height:20px}.grid__field-name .name aui-icon{margin-left:4px}.grid__field-name .des{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-action{max-width:30px}.grid--popup{max-height:382px;padding:12px}.grid--popup .grid__field-name .name{font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-normal)}.grid--popup:not(.grid--popup--lite) .grid__item{padding:10px 20px;min-height:60px;font-size:14px;background-color:rgb(var(--aui-color-n-10))}.grid--popup:not(.grid--popup--lite) .grid__item--selected{border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-primary));border-color:rgb(var(--aui-color-primary));color:#fff;cursor:default}.grid--popup:not(.grid--popup--lite) .grid__item--selected:hover{box-shadow:none}.grid--popup:not(.grid--popup--lite) .grid__item--selected .highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup:not(.grid--popup--lite) .grid__item--selected .with-colon{font-weight:500}.grid--popup:not(.grid--popup--lite) .grid__item--selected .des{color:#fff}.grid--popup:not(.grid--popup--lite) .grid__item--selected ::ng-deep .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite{background-color:rgb(var(--aui-color-n-10));padding:0}.grid--popup--lite .grid__item{padding:10px 14px;min-height:44px;border:1px solid rgb(var(--aui-color-n-7))}.grid--popup--lite .grid__item .grid__field:not(:last-child){margin-right:12px}.grid--popup--lite .grid__item .grid__field-name .name{font-size:14px;line-height:25px;font-weight:400}.grid--popup--lite .grid__item .grid__field-icon{max-width:24px}.grid--popup--lite .grid__item .grid__item-selected-icon{display:inline-flex}.grid--popup--lite .grid__item .highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup--lite .grid__item .with-colon{font-weight:500}.grid--popup--lite .grid__item .des{color:#fff}.grid--popup--lite .grid__item ::ng-deep .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite .grid__item--selected{background-color:rgb(var(--aui-color-b-7));border:1px solid rgb(var(--aui-color-primary))}.grid--popup--lite .grid__item:hover{border:1px solid rgb(var(--aui-color-primary));box-shadow:none}.grid--card{display:grid;grid-template-columns:repeat(auto-fill,minmax(208px,1fr));gap:20px 20px}.grid--card .grid__item{margin-bottom:0;height:290px;display:block;text-align:center;padding:40px 20px;border-radius:var(--aui-border-radius-l);position:relative}.grid--card .grid__item .belonged-cluster{position:static;padding-right:0}.grid--card .grid__item aui-tag{position:absolute;top:8px;right:8px}.grid--card .grid__field{margin-right:0;justify-content:center}.grid--card .grid__field-icon{max-width:100%;vertical-align:middle}.grid--card .grid__field-name{margin:20px 0 24px}.grid--card .grid__field-name .name,.grid--card .grid__field-name .des{justify-content:center}.grid--card .grid__field-name .name{font-size:20px;font-weight:500;line-height:28px;margin-bottom:2px}.grid--card .grid__field-name .des{font-size:14px;height:20px}.grid--card .grid__field-name~.grid__field:not(.grid__field-status){line-height:20px;font-size:14px;text-align:center}.grid--card .grid__field-status .with-colon{display:inline}.grid--card .grid__field-servicemesh:not(:last-of-type){margin-bottom:4px}.grid--card .grid__field-cluster{margin-bottom:4px}.grid--card .grid__field-action{position:absolute;right:10px;top:10px}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected){position:relative}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):after{position:absolute;content:\"\";top:0;right:0;bottom:0;left:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:4px;pointer-events:none;transition:all .2s ease-in-out}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected).disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):not(.disabled):hover:after{top:-4px;right:-4px;bottom:-4px;left:-4px;border-color:rgb(var(--aui-color-primary));box-shadow:inset 0 0 0 4px rgb(var(--aui-color-n-10)),0 0 8px 0 rgba(var(--aui-color-primary),.5)}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):not(.disabled):active:after{top:0;right:0;bottom:0;left:0;box-shadow:0 0 4px 0 rgba(var(--aui-color-primary),.5)}.flex{display:flex}.highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-8))}.with-colon{font-weight:500}.with-colon:after{content:\":\";margin-right:8px}.icon-normal,.icon-enabled{color:rgb(var(--aui-color-green))}.icon-abnormal{color:rgb(var(--aui-color-red))}.icon-disabled{color:rgb(var(--aui-color-n-6))}.belonged-cluster{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;padding-right:44px}.belonged-cluster .with-colon+span{margin-right:8px}.belonged-cluster aui-tag{position:absolute;display:inline-flex}.loading{display:flex;height:60px;align-items:center;justify-content:center}acl-resource-no-data{flex:1;margin:40px 0 80px}acl-zero-state ::ng-deep .zero-placeholder{min-height:44px;padding:12px 10px}\n"] }]
|
|
557
|
+
args: [{ selector: 'acl-resource-data-grid', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"header\">\n <span\n class=\"header__title\"\n [ngClass]=\"{ 'header__title--lite': popupLite }\"\n >\n <span>{{ type | pure: pluralForm | translate }}</span\n ><span class=\"header__desc\"\n >\uFF08{{ (displayData$ | async)?.length || 0 }}\uFF09</span\n >\n </span>\n <div\n class=\"header__custom\"\n *ngIf=\"!popupLite\"\n >\n <ng-content select=\"[aclResourceGridHeader]\"></ng-content>\n </div>\n <div\n class=\"tw-flex-1\"\n *ngIf=\"popupLite\"\n ></div>\n <aui-search\n [searchButton]=\"false\"\n [placeholder]=\"'filter_by_name' | translate\"\n [keyword]=\"keyword\"\n (keywordChange)=\"keywordChange($event)\"\n [clearable]=\"true\"\n size=\"small\"\n ></aui-search>\n <span\n class=\"header__display-mode\"\n *ngIf=\"context === 'page'\"\n >\n <span\n class=\"switch-btn\"\n [ngClass]=\"{ 'switch-btn--selected': displayMode !== 'card' }\"\n (click)=\"setDisplayMode('row')\"\n >\n <aui-icon icon=\"list\"></aui-icon>\n </span>\n <span\n class=\"switch-btn\"\n [ngClass]=\"{ 'switch-btn--selected': displayMode === 'card' }\"\n (click)=\"setDisplayMode('card')\"\n >\n <aui-icon icon=\"grid\"></aui-icon>\n </span>\n </span>\n</div>\n<ng-container\n *ngIf=\"\n !loading &&\n (displayData$\n | async\n | pure: sortWithoutIstio\n | pure: filterDisabledData:context) as displayData\n \"\n>\n <div\n class=\"grid\"\n *ngIf=\"displayData.length\"\n #grid\n [ngClass]=\"{\n 'grid--card': displayMode === 'card' && context !== 'popup',\n 'grid--popup': context === 'popup',\n 'grid--popup--lite': context === 'popup' && popupLite\n }\"\n >\n <div\n class=\"grid__item\"\n *ngFor=\"let item of displayData\"\n [ngClass]=\"{\n 'grid__item--selected':\n context === 'popup' && selectedUid === item.__origin.metadata.uid,\n 'grid__item--disabled': item.state?.disabled\n }\"\n (click)=\"onSelect(item)\"\n [attr.data-test]=\"item.name + '/' + item.cluster\"\n [auiTooltip]=\"item.state?.tooltip\"\n [auiTooltipDisabled]=\"!item.state?.disabled || !item.state?.tooltip\"\n >\n <aui-icon\n *ngIf=\"selectedUid === item.__origin.metadata.uid\"\n class=\"check-triangle-badge\"\n icon=\"check\"\n ></aui-icon>\n <!-- icon -->\n <div class=\"grid__field grid__field-icon\">\n <acl-resource-icon\n [type]=\"type\"\n [color]=\"\n context === 'popup' &&\n !popupLite &&\n selectedUid === item.__origin.metadata.uid\n ? 'white'\n : 'blue'\n \"\n [displayMode]=\"displayMode\"\n ></acl-resource-icon>\n </div>\n <!-- name -->\n <div class=\"grid__field grid__field-name\">\n <div class=\"name\">\n <ng-container *ngFor=\"let str of getHighlightedNameStrs(item)\">\n <span [ngClass]=\"{ highlighted: str.isHighlighted }\">{{\n str.text\n }}</span>\n </ng-container>\n </div>\n <div\n class=\"des\"\n *ngIf=\"!popupLite\"\n >\n <ng-container *ngIf=\"item.displayName\">{{\n item.displayName\n }}</ng-container>\n </div>\n </div>\n <!-- ns: cluster -->\n <div\n class=\"grid__field flex grid__field-cluster\"\n *ngIf=\"fields.includes(fieldsDef.Cluster)\"\n >\n <span\n class=\"belonged-cluster\"\n auiTooltip=\"{{\n ('belonged_cluster' | translate) + ': ' + item.cluster\n }}\"\n >\n <span class=\"with-colon\">{{ 'belonged_cluster' | translate }}</span>\n <span\n >{{ item.cluster\n }}<ng-container *ngIf=\"item.clusterDisplayName\"\n >({{ item.clusterDisplayName }})</ng-container\n >\n </span>\n <aui-tag\n type=\"primary\"\n size=\"mini\"\n *ngIf=\"item.clusterArch\"\n >\n {{ item.clusterArch }}\n </aui-tag>\n </span>\n </div>\n <!-- project: status -->\n <div\n class=\"grid__field grid__field-status {{\n 'grid__field-status--' + item.status\n }}\"\n *ngIf=\"fields.includes(fieldsDef.Status)\"\n >\n <label\n *ngIf=\"popupLite\"\n class=\"tw-text-help-text tw-mr-8\"\n >{{ 'status' | translate }}:</label\n >\n <span class=\"with-colon\">{{ 'status' | translate }}</span>\n <aui-icon\n [icon]=\"statusIcon[item.status]\"\n [background]=\"\n statusIcon[item.status].endsWith('_triangle_s')\n ? 'triangle'\n : 'circle'\n \"\n class=\"{{ 'icon-' + item.status }}\"\n ></aui-icon>\n {{ item.status | translate }}\n </div>\n <!-- asm: service mesh -->\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMesh)\"\n >\n <span class=\"with-colon\">{{ 'belonged_servicemesh' | translate }}</span>\n <span> {{ item.serviceMeshName }} </span>\n <div class=\"des\">\n <ng-container *ngIf=\"item.serviceMeshIstioVersion\"\n >(Istio {{ item.serviceMeshIstioVersion }})</ng-container\n >\n </div>\n </div>\n\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMesh)\"\n >\n <span class=\"with-colon\">{{ 'cluster' | translate }}</span>\n <span\n >{{ item.cluster\n }}<ng-container *ngIf=\"item.clusterDisplayName\"\n >({{ item.clusterDisplayName }})</ng-container\n >\n </span>\n <aui-tag\n type=\"primary\"\n size=\"mini\"\n *ngIf=\"item.clusterArch\"\n >\n {{ item.clusterArch }}\n </aui-tag>\n </div>\n\n <!-- mesh group -->\n\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMeshGroup)\"\n >\n <span class=\"with-colon\">{{ 'cluster' | translate }}</span>\n <span>{{ item.cluster }} </span>\n </div>\n <!-- asm: istio -->\n <div\n class=\"grid__field grid__field-servicemesh\"\n *ngIf=\"fields.includes(fieldsDef.ServiceMeshGroup)\"\n >\n <span class=\"with-colon\">{{ 'Istio' }}</span>\n <span\n >{{ item.serviceMeshIstioVersion || ('not_deployed' | translate) }}\n </span>\n </div>\n\n <!-- time -->\n <div\n class=\"grid__field grid__field-time\"\n *ngIf=\"fields.includes(fieldsDef.Time) && !popupLite\"\n >\n <span class=\"with-colon\">{{ 'created_at' | translate }}</span>\n <span>{{ item.timestamp | aclRelativeTime }}</span>\n </div>\n <!-- action -->\n <div\n class=\"grid__field grid__field-action\"\n (click)=\"$event.stopPropagation()\"\n *ngIf=\"\n fields.includes(fieldsDef.Action) &&\n actionTemplateRef &&\n context !== 'popup'\n \"\n >\n <ng-container\n [ngTemplateOutlet]=\"actionTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.__origin\n }\"\n ></ng-container>\n </div>\n </div>\n </div>\n <acl-resource-no-data\n *ngIf=\"!popupLite && !(displayData$ | async)?.length\"\n [isFiltered]=\"!!keyword\"\n [type]=\"type\"\n (refresh)=\"reload.emit()\"\n (clear)=\"keywordChange('')\"\n ></acl-resource-no-data>\n <acl-zero-state\n *ngIf=\"popupLite && !(displayData$ | async)?.length\"\n context=\"table\"\n ></acl-zero-state>\n</ng-container>\n<div\n class=\"loading\"\n *ngIf=\"loading\"\n>\n <acl-loading-mask\n [loading]=\"loading\"\n type=\"content\"\n ></acl-loading-mask>\n</div>\n", styles: [":host{display:flex;flex-direction:column;box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);padding:22px 20px 20px;background-color:rgb(var(--aui-color-n-10));border-radius:4px}.header{display:flex;align-items:center;margin-bottom:20px;height:28px}.header aui-search{width:260px}.header__title{font-size:18px;font-weight:500;line-height:28px;color:rgb(var(--aui-color-n-1))}.header__title--lite{font-size:16px;font-weight:700;line-height:22px}.header__desc{color:rgb(var(--aui-color-n-4))}.header__custom{flex:1;padding:0 36px}.header__display-mode{display:flex;border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-m);margin-left:16px;padding:1px}.switch-btn{cursor:pointer;width:24px;height:24px;border-radius:var(--aui-border-radius-m);display:inline-flex;align-items:center;justify-content:center}.switch-btn img{width:12px;height:12px}.switch-btn--selected{background-color:rgb(var(--aui-color-n-10));color:rgb(var(--aui-color-primary))}.grid{overflow-y:auto;padding:20px;background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.grid::-webkit-scrollbar{width:4px;height:4px}.grid::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.grid::-webkit-scrollbar-corner{background-color:transparent}.grid__item{display:flex;position:relative;flex-direction:row;border-radius:var(--aui-border-radius-l);padding:9px 20px;min-height:60px;color:rgb(var(--aui-color-n-1));align-items:center;cursor:pointer;background-color:rgb(var(--aui-color-n-10))}.grid__item:not(:last-child){margin-bottom:8px}.grid__item:not(.grid__item--disabled):hover{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 8px rgba(var(--aui-color-primary),.5)}.grid__item--disabled{cursor:default}.grid__item--disabled,.grid__item--disabled:hover{background-color:rgb(var(--aui-color-n-9))}.grid__item--disabled .grid__field{opacity:.3}.grid__item--disabled .grid__field-servicemesh,.grid__item--disabled .grid__field-action{opacity:1}.grid__field{flex:2;line-height:20px}.grid__field:not(.grid__field-status){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.grid__field:not(:last-child){margin-right:20px}.grid__field-servicemesh{flex:2;align-items:stretch;max-width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-servicemesh .des{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-servicemesh aui-tag{margin-left:8px}.grid__field-status{display:flex;align-items:center}.grid__field-status aui-icon{font-size:16px;display:inline-flex;margin-right:4px}.grid__field-status .with-colon{display:none}.grid__field-icon{max-width:30px;display:inline-flex}.grid__field-name{flex:2;flex-direction:column;max-width:280px}.grid__field-name .name,.grid__field-name .des{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid__field-name .name{font-size:14px;font-weight:500;line-height:20px}.grid__field-name .name aui-icon{margin-left:4px}.grid__field-name .des{font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.grid__field-action{max-width:30px}.grid--popup{max-height:382px;padding:12px}.grid--popup .grid__field-name .name{font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-normal)}.grid--popup:not(.grid--popup--lite) .grid__item{padding:10px 20px;min-height:60px;font-size:14px;background-color:rgb(var(--aui-color-n-10))}.grid--popup:not(.grid--popup--lite) .grid__item--selected{border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-primary));border-color:rgb(var(--aui-color-primary));color:#fff;cursor:default}.grid--popup:not(.grid--popup--lite) .grid__item--selected:hover{box-shadow:none}.grid--popup:not(.grid--popup--lite) .grid__item--selected .highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup:not(.grid--popup--lite) .grid__item--selected .with-colon{font-weight:500}.grid--popup:not(.grid--popup--lite) .grid__item--selected .des{color:#fff}.grid--popup:not(.grid--popup--lite) .grid__item--selected ::ng-deep .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite{background-color:rgb(var(--aui-color-n-10));padding:0}.grid--popup--lite .grid__item{padding:10px 14px;min-height:44px;border:1px solid rgb(var(--aui-color-n-7))}.grid--popup--lite .grid__item .grid__field:not(:last-child){margin-right:12px}.grid--popup--lite .grid__item .grid__field-name .name{font-size:14px;line-height:25px;font-weight:400}.grid--popup--lite .grid__item .grid__field-icon{max-width:24px}.grid--popup--lite .grid__item .grid__item-selected-icon{display:inline-flex}.grid--popup--lite .grid__item .highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-10))}.grid--popup--lite .grid__item .with-colon{font-weight:500}.grid--popup--lite .grid__item .des{color:#fff}.grid--popup--lite .grid__item ::ng-deep .aui-tag--primary{background-color:#fff;color:rgb(var(--aui-color-primary))}.grid--popup--lite .grid__item--selected{background-color:rgb(var(--aui-color-b-7));border:1px solid rgb(var(--aui-color-primary))}.grid--popup--lite .grid__item:hover{border:1px solid rgb(var(--aui-color-primary));box-shadow:none}.grid--card{display:grid;grid-template-columns:repeat(auto-fill,minmax(208px,1fr));gap:20px 20px}.grid--card .grid__item{margin-bottom:0;height:290px;display:block;text-align:center;padding:40px 20px;border-radius:var(--aui-border-radius-l);position:relative}.grid--card .grid__item .belonged-cluster{position:static;padding-right:0}.grid--card .grid__item aui-tag{position:absolute;top:8px;right:8px}.grid--card .grid__field{margin-right:0;justify-content:center}.grid--card .grid__field-icon{max-width:100%;vertical-align:middle}.grid--card .grid__field-name{margin:20px 0 24px}.grid--card .grid__field-name .name,.grid--card .grid__field-name .des{justify-content:center}.grid--card .grid__field-name .name{font-size:20px;font-weight:500;line-height:28px;margin-bottom:2px}.grid--card .grid__field-name .des{font-size:14px;height:20px}.grid--card .grid__field-name~.grid__field:not(.grid__field-status){line-height:20px;font-size:14px;text-align:center}.grid--card .grid__field-status .with-colon{display:inline}.grid--card .grid__field-servicemesh:not(:last-of-type){margin-bottom:4px}.grid--card .grid__field-cluster{margin-bottom:4px}.grid--card .grid__field-action{position:absolute;right:10px;top:10px}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected){position:relative}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):after{position:absolute;content:\"\";top:0;right:0;bottom:0;left:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:4px;pointer-events:none;transition:all .2s ease-in-out}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected).disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):not(.disabled):hover:after{top:-4px;right:-4px;bottom:-4px;left:-4px;border-color:rgb(var(--aui-color-primary));box-shadow:inset 0 0 0 4px rgb(var(--aui-color-n-10)),0 0 8px rgba(var(--aui-color-primary),.5)}.grid:not(.grid--popup--lite) .grid__item:not(.grid__item--selected):not(.disabled):active:after{top:0;right:0;bottom:0;left:0;box-shadow:0 0 4px rgba(var(--aui-color-primary),.5)}.flex{display:flex}.highlighted{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-n-8))}.with-colon{font-weight:500}.with-colon:after{content:\":\";margin-right:8px}.icon-normal,.icon-enabled{color:rgb(var(--aui-color-green))}.icon-abnormal{color:rgb(var(--aui-color-red))}.icon-disabled{color:rgb(var(--aui-color-n-6))}.belonged-cluster{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;padding-right:44px}.belonged-cluster .with-colon+span{margin-right:8px}.belonged-cluster aui-tag{position:absolute;display:inline-flex}.loading{display:flex;height:60px;align-items:center;justify-content:center}acl-resource-no-data{flex:1;margin:40px 0 80px}acl-zero-state ::ng-deep .zero-placeholder{min-height:44px;padding:12px 10px}\n"] }]
|
|
558
558
|
}], null, { grid: [{
|
|
559
559
|
type: ViewChild,
|
|
560
560
|
args: ['grid']
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
|
|
2
2
|
import { of, catchError, map, startWith, switchMap, takeUntil } from 'rxjs';
|
|
3
3
|
import { K8sApiService } from '../../../../api/public-api';
|
|
4
|
-
import { RESOURCE_TYPES } from '../../../../core';
|
|
5
|
-
import { K8sUtilService, publishRef, } from '../../../../core/public-api';
|
|
4
|
+
import { RESOURCE_TYPES, K8sUtilService, publishRef, } from '../../../../core/public-api';
|
|
6
5
|
import { ResourceListBase } from '../../base-list';
|
|
7
6
|
import { ResourceSelectContextService } from '../../context.service';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
@@ -62,4 +61,4 @@ export class ServiceMeshGroupListComponent extends ResourceListBase {
|
|
|
62
61
|
}], function () { return [{ type: i1.K8sApiService }, { type: i2.ResourceSelectContextService }, { type: i0.ChangeDetectorRef }, { type: i3.K8sUtilService }]; }, { value: [{
|
|
63
62
|
type: Input
|
|
64
63
|
}] }); })();
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9pbnRlcm5hbHMvbWVzaGdyb3VwLWxpc3QvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9pbnRlcm5hbHMvbWVzaGdyb3VwLWxpc3QvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUNMLGNBQWMsRUFDZCxjQUFjLEVBQ2QsVUFBVSxHQUVYLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBU3JFLE1BQU0sT0FBTyw2QkFDWCxTQUFRLGdCQUFnQjtJQXlCeEIsWUFDbUIsTUFBcUIsRUFDdEMsY0FBNEMsRUFDNUMsR0FBc0IsRUFDdEIsT0FBdUI7UUFFdkIsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFMbkIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQXBCeEMsU0FBSSxHQUFHLGNBQXVCLENBQUM7UUFJL0Isa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBRW5DLG1CQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2pDLFNBQVMsQ0FBQyxJQUFZLENBQUMsRUFDdkIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNiLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQW1CO1lBQ2xELElBQUksRUFBRSxjQUFjLENBQUMsaUJBQWlCO1NBQ3ZDLENBQUMsQ0FDSCxFQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFDckIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUF3QixDQUFDLENBQUMsRUFDOUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFDekIsVUFBVSxFQUFFLENBQ2IsQ0FBQztJQVNGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDaEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQzNCLENBQUM7SUFDSixDQUFDO0lBRVEsV0FBVztRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUF3QjtRQUNsQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hELHVCQUF1QixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUMvQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUM7WUFDcEUsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCO1lBQzFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ3JDLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDOzhGQW5FVSw2QkFBNkI7b0VBQTdCLDZCQUE2QjtZQzNCMUMsaURBU0M7WUFMQywwSUFBYyxvQkFBZ0IsSUFBQywrR0FJckIsWUFBUSxJQUphO1lBS2hDLGlCQUF5Qjs7WUFSeEIsd0NBQXNCLHNCQUFBLHdCQUFBLHVHQUFBLGtCQUFBLDhHQUFBOzs7dUZEMEJYLDZCQUE2QjtjQU56QyxTQUFTOzJCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNO3dLQU8vQyxLQUFLO2tCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG9mLCBjYXRjaEVycm9yLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSzhzQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2FwaS9wdWJsaWMtYXBpJztcbmltcG9ydCB7XG4gIFJFU09VUkNFX1RZUEVTLFxuICBLOHNVdGlsU2VydmljZSxcbiAgcHVibGlzaFJlZixcbiAgU2VydmljZU1lc2hHcm91cCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFJlc291cmNlTGlzdEJhc2UgfSBmcm9tICcuLi8uLi9iYXNlLWxpc3QnO1xuaW1wb3J0IHsgUmVzb3VyY2VTZWxlY3RDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhSXRlbUJhc2UgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1tZXNoLWdyb3VwLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNlcnZpY2VNZXNoR3JvdXBMaXN0Q29tcG9uZW50XG4gIGV4dGVuZHMgUmVzb3VyY2VMaXN0QmFzZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIHZhbHVlOiBzdHJpbmc7XG5cbiAgdHlwZSA9ICdzZXJ2aWNlX21lc2gnIGFzIGNvbnN0O1xuXG4gIHNlbGVjdGVkU2VydmljZU1lc2g6IERhdGFJdGVtQmFzZTtcblxuICBzZXJ2aWNlTWVzaGVzOiBEYXRhSXRlbUJhc2VbXSA9IFtdO1xuXG4gIHNlcnZpY2VNZXNoZXMkID0gdGhpcy5yZWxvYWQkJC5waXBlKFxuICAgIHN0YXJ0V2l0aChudWxsIGFzIHZvaWQpLFxuICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgdGhpcy5rOHNBcGkuZ2V0R2xvYmFsUmVzb3VyY2VMaXN0PFNlcnZpY2VNZXNoR3JvdXA+KHtcbiAgICAgICAgdHlwZTogUkVTT1VSQ0VfVFlQRVMuU0VSVklDRU1FU0hfR1JPVVAsXG4gICAgICB9KSxcbiAgICApLFxuICAgIG1hcChyZXMgPT4gcmVzLml0ZW1zKSxcbiAgICBjYXRjaEVycm9yKCgpID0+IG9mKFtdIGFzIFNlcnZpY2VNZXNoR3JvdXBbXSkpLFxuICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzQXBpOiBLOHNBcGlTZXJ2aWNlLFxuICAgIGNvbnRleHRTZXJ2aWNlOiBSZXNvdXJjZVNlbGVjdENvbnRleHRTZXJ2aWNlLFxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgazhzVXRpbDogSzhzVXRpbFNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKGNkciwgazhzVXRpbCwgY29udGV4dFNlcnZpY2UpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXRTZWxlY3RlZCgpO1xuICAgIHRoaXMuc2VydmljZU1lc2hlcyQuc3Vic2NyaWJlKG1lc2hHcm91cHMgPT4ge1xuICAgICAgdGhpcy5zZXJ2aWNlTWVzaGVzID0gdGhpcy5tYXBSZXNvdXJjZShtZXNoR3JvdXBzKTtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWQoKTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5mb3JjZUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZWxlY3RlZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkU2VydmljZU1lc2ggPSB0aGlzLnNlcnZpY2VNZXNoZXMuZmluZChcbiAgICAgIGMgPT4gYy5uYW1lID09PSB0aGlzLnZhbHVlLFxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG1hcFJlc291cmNlKGxpc3Q6IFNlcnZpY2VNZXNoR3JvdXBbXSk6IERhdGFJdGVtQmFzZVtdIHtcbiAgICByZXR1cm4gbGlzdC5tYXAoaXRlbSA9PiAoe1xuICAgICAgbmFtZTogdGhpcy5rOHNVdGlsLmdldE5hbWUoaXRlbSksXG4gICAgICBzZXJ2aWNlTWVzaEdyb3VwTmFtZTogdGhpcy5rOHNVdGlsLmdldE5hbWUoaXRlbSksXG4gICAgICBzZXJ2aWNlTWVzaElzdGlvVmVyc2lvbjogaXRlbS5zcGVjLmlzdGlvVmVyc2lvbixcbiAgICAgIGRpc3BsYXlOYW1lOiB0aGlzLms4c1V0aWwuZ2V0QW5ub3RhdGlvbihpdGVtLCAnZGlzcGxheS1uYW1lJywgJ2FzbScpLFxuICAgICAgdGltZXN0YW1wOiBpdGVtLm1ldGFkYXRhLmNyZWF0aW9uVGltZXN0YW1wLFxuICAgICAgY2x1c3RlcjogaXRlbS5zcGVjLmNsdXN0ZXJzLmpvaW4oJywnKSxcbiAgICAgIF9fb3JpZ2luOiBpdGVtLFxuICAgIH0pKTtcbiAgfVxufVxuIiwiPGFjbC1yZXNvdXJjZS1kYXRhLWdyaWRcbiAgW2RhdGFdPVwic2VydmljZU1lc2hlc1wiXG4gIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gIChzZWxlY3RJdGVtKT1cIm9uU2VsZWN0KCRldmVudClcIlxuICBbc2VsZWN0ZWRVaWRdPVwic2VsZWN0ZWRTZXJ2aWNlTWVzaD8uX19vcmlnaW4ubWV0YWRhdGEudWlkXCJcbiAgW3R5cGVdPVwidHlwZVwiXG4gIFtsb2FkaW5nXT1cImZvcmNlTG9hZGluZyB8fCAoIXNlcnZpY2VNZXNoZXM/Lmxlbmd0aCAmJiBsb2FkaW5nKVwiXG4gIChyZWxvYWQpPVwicmVsb2FkKClcIlxuPjwvYWNsLXJlc291cmNlLWRhdGEtZ3JpZD5cbiJdfQ==
|
|
@@ -3,13 +3,13 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, In
|
|
|
3
3
|
import { memoize, partition, uniq } from 'lodash-es';
|
|
4
4
|
import { ReplaySubject, combineLatest, forkJoin, of, catchError, finalize, map, startWith, switchMap, takeUntil, tap, } from 'rxjs';
|
|
5
5
|
import { API_GATEWAY, K8sUtilService, publishRef, } from '../../../../core/public-api';
|
|
6
|
-
import { CommonLayoutContextService } from '../../../../page-scaffold';
|
|
6
|
+
import { CommonLayoutContextService } from '../../../../page-scaffold/public-api';
|
|
7
7
|
import { ResourceListBase } from '../../base-list';
|
|
8
8
|
import { ResourceSelectContextService } from '../../context.service';
|
|
9
9
|
import { getDisplayArch, getWorkspaceParams } from '../../utils';
|
|
10
10
|
import { K8sApiService } from './../../../../api/public-api';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "../../../../page-scaffold";
|
|
12
|
+
import * as i1 from "../../../../page-scaffold/public-api";
|
|
13
13
|
import * as i2 from "./../../../../api/public-api";
|
|
14
14
|
import * as i3 from "@angular/common/http";
|
|
15
15
|
import * as i4 from "../../context.service";
|
|
@@ -180,8 +180,8 @@ export class NamespaceListComponent extends ResourceListBase {
|
|
|
180
180
|
.includes(searchText.toLowerCase()) ||
|
|
181
181
|
this.k8sUtil
|
|
182
182
|
.getDisplayName(option.value)
|
|
183
|
-
|
|
184
|
-
|
|
183
|
+
?.toLowerCase()
|
|
184
|
+
?.includes(searchText.toLowerCase());
|
|
185
185
|
this.projectTrackFn = (project) => project?.metadata.name;
|
|
186
186
|
this.serviceMeshTrackFn = (mesh) => mesh?.metadata.name;
|
|
187
187
|
this.mapResource = (list, { isMultiArch, clusters, }) => list.map(item => {
|
|
@@ -411,11 +411,11 @@ export class NamespaceListComponent extends ResourceListBase {
|
|
|
411
411
|
i0.ɵɵproperty("ngForOf", ctx.clusters);
|
|
412
412
|
i0.ɵɵadvance(3);
|
|
413
413
|
i0.ɵɵproperty("data", ctx.displayedData || i0.ɵɵpureFunction0(30, _c1))("fields", ctx.fields)("context", ctx.context)("actionTemplateRef", ctx.actionTemplateRef)("selectedUid", ctx.selectedUid)("loading", ctx.forceLoading || !(ctx.displayedData == null ? null : ctx.displayedData.length) && ctx.loading);
|
|
414
|
-
} }, styles: ["[_nghost-%COMP%]{display:flex;flex:1;flex-direction:column}.filter[_ngcontent-%COMP%]{display:flex;padding:20px;margin-bottom:20px;box-shadow:0 0 4px
|
|
414
|
+
} }, styles: ["[_nghost-%COMP%]{display:flex;flex:1;flex-direction:column}.filter[_ngcontent-%COMP%]{display:flex;padding:20px;margin-bottom:20px;box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);background-color:rgb(var(--aui-color-n-10));border-radius:4px}.filter[_ngcontent-%COMP%] aui-form-item[_ngcontent-%COMP%]{margin-right:20px}.filter[_ngcontent-%COMP%] aui-form-item[_ngcontent-%COMP%] .aui-form-item{margin-bottom:0}.filter[_ngcontent-%COMP%] aui-form-item[_ngcontent-%COMP%] .aui-form-item__label-wrapper{width:auto!important}.filter[_ngcontent-%COMP%] aui-form-item[_ngcontent-%COMP%] .aui-input{color:rgb(var(--aui-color-n-2))}.filter[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{font-weight:500}.filter[_ngcontent-%COMP%] aui-select[_ngcontent-%COMP%]{width:260px}"], changeDetection: 0 }); }
|
|
415
415
|
}
|
|
416
416
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NamespaceListComponent, [{
|
|
417
417
|
type: Component,
|
|
418
|
-
args: [{ selector: 'acl-namespace-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"filter\">\n <aui-form-item>\n <label auiFormItemLabel>{{ 'project' | translate }}</label>\n <aui-select\n [ngClass]=\"displayServiceMesh ? 'lang-en:!tw-w-[230px]' : ''\"\n auiFormItemControl\n name=\"project\"\n [(ngModel)]=\"selectedProject\"\n [filterFn]=\"projectFilterFn\"\n [trackFn]=\"projectTrackFn\"\n (valueChange)=\"selectProject($event)\"\n [loading]=\"!projects.length && projectsLoading\"\n >\n <aui-option\n *ngFor=\"let project of projects\"\n [value]=\"project\"\n [label]=\"project | aclUnionDisplayName\"\n >\n {{ project | aclUnionDisplayName }}\n </aui-option>\n </aui-select>\n </aui-form-item>\n <!-- ASM \u9009\u62E9\u7F51\u683C\u8FC7\u6EE4\u96C6\u7FA4\u9009\u9879 -->\n <aui-form-item *ngIf=\"displayServiceMesh\">\n <label auiFormItemLabel>{{ 'service_mesh' | translate }}</label>\n <aui-select\n class=\"lang-en:!tw-w-[230px]\"\n auiFormItemControl\n name=\"serviceMeshProject\"\n [(ngModel)]=\"selectedServiceMesh\"\n [trackFn]=\"serviceMeshTrackFn\"\n (valueChange)=\"selectServiceMesh($event)\"\n [loading]=\"!projects.length && projectsLoading\"\n >\n <aui-option\n *ngFor=\"let mesh of projectServiceMeshes\"\n [value]=\"mesh\"\n [label]=\"\n (mesh | aclName) +\n (mesh.spec?.istioVersion\n ? '(Istio ' + mesh.spec.istioVersion + ')'\n : '')\n \"\n >\n {{ mesh | aclName\n }}<ng-container *ngIf=\"mesh.spec?.istioVersion\"\n >(Istio {{ mesh.spec.istioVersion }})</ng-container\n >\n </aui-option>\n <aui-option-placeholder>\n {{ 'no_data' | translate }}\n </aui-option-placeholder>\n </aui-select>\n </aui-form-item>\n <aui-form-item>\n <label auiFormItemLabel>{{ 'cluster' | translate }}</label>\n <aui-select\n [ngClass]=\"displayServiceMesh ? 'lang-en:!tw-w-[230px]' : ''\"\n auiFormItemControl\n name=\"project\"\n [(ngModel)]=\"selectedCluster\"\n (valueChange)=\"selectCluster($event)\"\n [loading]=\"!projects.length && projectsLoading\"\n >\n <aui-option\n [value]=\"'__all'\"\n [label]=\"'all' | translate\"\n >\n {{ 'all_clusters' | translate }}\n </aui-option>\n <aui-option\n *ngFor=\"let cluster of clusters\"\n [value]=\"cluster\"\n [label]=\"clusterLabel\"\n [disabled]=\"cluster | pure: checkClusterError$ | async\"\n [auiTooltip]=\"'current_cluster_status_abnormal' | translate\"\n [auiTooltipDisabled]=\"!(cluster | pure: checkClusterError$ | async)\"\n [labelContext]=\"{ cluster: cluster }\"\n >\n <ng-container\n *ngTemplateOutlet=\"clusterLabel; context: { cluster: cluster }\"\n ></ng-container>\n </aui-option>\n </aui-select>\n <ng-template\n #clusterLabel\n let-cluster=\"cluster\"\n >\n {{ cluster }}\n <ng-container\n *ngIf=\"cluster | pure: getClusterDisplayName$ | async as displayName\"\n >\n ({{ displayName }})\n </ng-container>\n </ng-template>\n </aui-form-item>\n</div>\n<acl-resource-data-grid\n [data]=\"displayedData || []\"\n [fields]=\"fields\"\n [context]=\"context\"\n (selectItem)=\"onSelect($event)\"\n [actionTemplateRef]=\"actionTemplateRef\"\n [selectedUid]=\"selectedUid\"\n [loading]=\"forceLoading || (!displayedData?.length && loading)\"\n (reload)=\"reload()\"\n>\n <ng-container aclResourceGridHeader>\n <ng-content></ng-content>\n </ng-container>\n</acl-resource-data-grid>\n", styles: [":host{display:flex;flex:1;flex-direction:column}.filter{display:flex;padding:20px;margin-bottom:20px;box-shadow:0 0 4px
|
|
418
|
+
args: [{ selector: 'acl-namespace-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"filter\">\n <aui-form-item>\n <label auiFormItemLabel>{{ 'project' | translate }}</label>\n <aui-select\n [ngClass]=\"displayServiceMesh ? 'lang-en:!tw-w-[230px]' : ''\"\n auiFormItemControl\n name=\"project\"\n [(ngModel)]=\"selectedProject\"\n [filterFn]=\"projectFilterFn\"\n [trackFn]=\"projectTrackFn\"\n (valueChange)=\"selectProject($event)\"\n [loading]=\"!projects.length && projectsLoading\"\n >\n <aui-option\n *ngFor=\"let project of projects\"\n [value]=\"project\"\n [label]=\"project | aclUnionDisplayName\"\n >\n {{ project | aclUnionDisplayName }}\n </aui-option>\n </aui-select>\n </aui-form-item>\n <!-- ASM \u9009\u62E9\u7F51\u683C\u8FC7\u6EE4\u96C6\u7FA4\u9009\u9879 -->\n <aui-form-item *ngIf=\"displayServiceMesh\">\n <label auiFormItemLabel>{{ 'service_mesh' | translate }}</label>\n <aui-select\n class=\"lang-en:!tw-w-[230px]\"\n auiFormItemControl\n name=\"serviceMeshProject\"\n [(ngModel)]=\"selectedServiceMesh\"\n [trackFn]=\"serviceMeshTrackFn\"\n (valueChange)=\"selectServiceMesh($event)\"\n [loading]=\"!projects.length && projectsLoading\"\n >\n <aui-option\n *ngFor=\"let mesh of projectServiceMeshes\"\n [value]=\"mesh\"\n [label]=\"\n (mesh | aclName) +\n (mesh.spec?.istioVersion\n ? '(Istio ' + mesh.spec.istioVersion + ')'\n : '')\n \"\n >\n {{ mesh | aclName\n }}<ng-container *ngIf=\"mesh.spec?.istioVersion\"\n >(Istio {{ mesh.spec.istioVersion }})</ng-container\n >\n </aui-option>\n <aui-option-placeholder>\n {{ 'no_data' | translate }}\n </aui-option-placeholder>\n </aui-select>\n </aui-form-item>\n <aui-form-item>\n <label auiFormItemLabel>{{ 'cluster' | translate }}</label>\n <aui-select\n [ngClass]=\"displayServiceMesh ? 'lang-en:!tw-w-[230px]' : ''\"\n auiFormItemControl\n name=\"project\"\n [(ngModel)]=\"selectedCluster\"\n (valueChange)=\"selectCluster($event)\"\n [loading]=\"!projects.length && projectsLoading\"\n >\n <aui-option\n [value]=\"'__all'\"\n [label]=\"'all' | translate\"\n >\n {{ 'all_clusters' | translate }}\n </aui-option>\n <aui-option\n *ngFor=\"let cluster of clusters\"\n [value]=\"cluster\"\n [label]=\"clusterLabel\"\n [disabled]=\"cluster | pure: checkClusterError$ | async\"\n [auiTooltip]=\"'current_cluster_status_abnormal' | translate\"\n [auiTooltipDisabled]=\"!(cluster | pure: checkClusterError$ | async)\"\n [labelContext]=\"{ cluster: cluster }\"\n >\n <ng-container\n *ngTemplateOutlet=\"clusterLabel; context: { cluster: cluster }\"\n ></ng-container>\n </aui-option>\n </aui-select>\n <ng-template\n #clusterLabel\n let-cluster=\"cluster\"\n >\n {{ cluster }}\n <ng-container\n *ngIf=\"cluster | pure: getClusterDisplayName$ | async as displayName\"\n >\n ({{ displayName }})\n </ng-container>\n </ng-template>\n </aui-form-item>\n</div>\n<acl-resource-data-grid\n [data]=\"displayedData || []\"\n [fields]=\"fields\"\n [context]=\"context\"\n (selectItem)=\"onSelect($event)\"\n [actionTemplateRef]=\"actionTemplateRef\"\n [selectedUid]=\"selectedUid\"\n [loading]=\"forceLoading || (!displayedData?.length && loading)\"\n (reload)=\"reload()\"\n>\n <ng-container aclResourceGridHeader>\n <ng-content></ng-content>\n </ng-container>\n</acl-resource-data-grid>\n", styles: [":host{display:flex;flex:1;flex-direction:column}.filter{display:flex;padding:20px;margin-bottom:20px;box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);background-color:rgb(var(--aui-color-n-10));border-radius:4px}.filter aui-form-item{margin-right:20px}.filter aui-form-item ::ng-deep .aui-form-item{margin-bottom:0}.filter aui-form-item ::ng-deep .aui-form-item__label-wrapper{width:auto!important}.filter aui-form-item ::ng-deep .aui-input{color:rgb(var(--aui-color-n-2))}.filter label{font-weight:500}.filter aui-select{width:260px}\n"] }]
|
|
419
419
|
}], function () { return [{ type: i1.CommonLayoutContextService }, { type: i2.K8sApiService }, { type: i3.HttpClient }, { type: i4.ResourceSelectContextService }, { type: i0.ChangeDetectorRef }, { type: i5.K8sUtilService }]; }, { actionTemplateRef: [{
|
|
420
420
|
type: Input
|
|
421
421
|
}], disableFn: [{
|
|
@@ -429,4 +429,4 @@ export class NamespaceListComponent extends ResourceListBase {
|
|
|
429
429
|
}], projectChange: [{
|
|
430
430
|
type: Output
|
|
431
431
|
}] }); })();
|
|
432
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9pbnRlcm5hbHMvbmFtZXNwYWNlLWxpc3QvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9pbnRlcm5hbHMvbmFtZXNwYWNlLWxpc3QvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEVBQ2IsUUFBUSxFQUNSLEVBQUUsRUFDRixVQUFVLEVBQ1YsUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsV0FBVyxFQUVYLGNBQWMsRUFFZCxVQUFVLEdBRVgsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FB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QUlyQixZQUFRLElBSmE7WUFNL0Isa0NBQW9DO1lBQ2xDLG1CQUF5QjtZQUMzQiwwQkFBZTtZQUNqQixpQkFBeUI7O1lBNUdHLGVBQTJCO1lBQTNCLHNEQUEyQjtZQUVqRCxlQUE2RDtZQUE3RCwrRUFBNkQsZ0NBQUEsaUNBQUEsK0JBQUEsd0RBQUE7WUFVdkMsZUFBVztZQUFYLHNDQUFXO1lBU3JCLGVBQXdCO1lBQXhCLDZDQUF3QjtZQWdDZCxlQUEyQjtZQUEzQix1REFBMkI7WUFFakQsZUFBNkQ7WUFBN0QsK0VBQTZELGdDQUFBLHdEQUFBO1lBUTNELGVBQWlCO1lBQWpCLCtCQUFpQix3Q0FBQTtZQUdqQixlQUNGO1lBREUsdUVBQ0Y7WUFFc0IsZUFBVztZQUFYLHNDQUFXO1lBMkJyQyxlQUE0QjtZQUE1Qix1RUFBNEIsc0JBQUEsd0JBQUEsNENBQUEsZ0NBQUEsOEdBQUE7Ozt1RkQxQ2pCLHNCQUFzQjtjQU5sQyxTQUFTOzJCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNOzBPQU8vQyxpQkFBaUI7a0JBRGhCLEtBQUs7WUFJTixTQUFTO2tCQURSLEtBQUs7WUFJTixLQUFLO2tCQURKLEtBQUs7WUFJTixrQkFBa0I7a0JBRGpCLEtBQUs7WUFJTixhQUFhO2tCQURaLE1BQU07WUFJUCxhQUFhO2tCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3RGaWx0ZXJPcHRpb24gfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVtb2l6ZSwgcGFydGl0aW9uLCB1bmlxIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7XG4gIFJlcGxheVN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZvcmtKb2luLFxuICBvZixcbiAgY2F0Y2hFcnJvcixcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgQVBJX0dBVEVXQVksXG4gIENsdXN0ZXIsXG4gIEs4c1V0aWxTZXJ2aWNlLFxuICBQcm9qZWN0LFxuICBwdWJsaXNoUmVmLFxuICBTZXJ2aWNlTWVzaEdyb3VwLFxufSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQ29tbW9uTGF5b3V0Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9wYWdlLXNjYWZmb2xkJztcbmltcG9ydCB7IFJlc291cmNlTGlzdEJhc2UgfSBmcm9tICcuLi8uLi9iYXNlLWxpc3QnO1xuaW1wb3J0IHsgUmVzb3VyY2VTZWxlY3RDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBnZXREaXNwbGF5QXJjaCwgZ2V0V29ya3NwYWNlUGFyYW1zIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBLOHNBcGlTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi9hcGkvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBLdWJlcm5ldGVzUmVzb3VyY2UsIEt1YmVybmV0ZXNSZXNvdXJjZUxpc3QgfSBmcm9tICcuLy4uLy4uLy4uLy4uL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2x1c3RlckFyY2gsXG4gIERpc2FibGVGbixcbiAgTmFtZXNwYWNlRGF0YUl0ZW0sXG4gIFNlbGVjdGVkTmFtZXNwYWNlVmFsdWUsXG59IGZyb20gJy4vLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtbmFtZXNwYWNlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5hbWVzcGFjZUxpc3RDb21wb25lbnRcbiAgZXh0ZW5kcyBSZXNvdXJjZUxpc3RCYXNlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KClcbiAgYWN0aW9uVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZUZuOiBEaXNhYmxlRm47XG5cbiAgQElucHV0KClcbiAgdmFsdWU6IFNlbGVjdGVkTmFtZXNwYWNlVmFsdWU7XG5cbiAgQElucHV0KClcbiAgZGlzcGxheVNlcnZpY2VNZXNoID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIGNsdXN0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgcHJvamVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHByb2plY3RzOiBQcm9qZWN0W10gPSBbXTtcblxuICBzZWxlY3RlZFByb2plY3Q6IFByb2plY3Q7XG4gIHNlbGVjdGVkQ2x1c3Rlcjogc3RyaW5nO1xuICBjbHVzdGVyczogc3RyaW5nW10gPSBbXTtcbiAgcHJvamVjdHNMb2FkaW5nID0gdHJ1ZTtcblxuICBzZXJ2aWNlTWVzaGVzOiBTZXJ2aWNlTWVzaEdyb3VwW10gPSBbXTtcbiAgcHJvamVjdFNlcnZpY2VNZXNoZXM6IFNlcnZpY2VNZXNoR3JvdXBbXSA9IFtdO1xuICBzZWxlY3RlZFNlcnZpY2VNZXNoOiBTZXJ2aWNlTWVzaEdyb3VwO1xuXG4gIHR5cGUgPSAnbmFtZXNwYWNlJztcblxuICBkaXNwbGF5ZWREYXRhOiBOYW1lc3BhY2VEYXRhSXRlbVtdID0gW107XG5cbiAgbmFtZXNwYWNlQ2x1c3Rlck1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIGdyaWRTdGF0ZU1hcDogUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTxEaXNhYmxlRm4+PiA9IHt9O1xuXG4gIHNlbGVjdGVkVWlkOiBzdHJpbmc7XG5cbiAgbG9hZCQkID0gbmV3IFJlcGxheVN1YmplY3Q8eyBwcm9qZWN0OiBQcm9qZWN0OyBjbHVzdGVyOiBzdHJpbmcgfT4oMSk7XG5cbiAgc2VydmljZU1lc2hlcyQgPSB0aGlzLms4c1NlcnZpY2VcbiAgICAuZ2V0R2xvYmFsUmVzb3VyY2VMaXN0PFNlcnZpY2VNZXNoR3JvdXA+KHtcbiAgICAgIGRlZmluaXRpb246IHtcbiAgICAgICAgYXBpR3JvdXA6ICdhc20uYWxhdWRhLmlvJyxcbiAgICAgICAgYXBpVmVyc2lvbjogJ3YxYWxwaGExJyxcbiAgICAgICAgdHlwZTogJ3NlcnZpY2VtZXNoZ3JvdXBzJyxcbiAgICAgIH0sXG4gICAgICBuYW1lc3BhY2VkOiB0cnVlLFxuICAgIH0pXG4gICAgLnBpcGUobWFwKHJlcyA9PiByZXMuaXRlbXMpKTtcblxuICBjbHVzdGVycyQgPSB0aGlzLmh0dHBcbiAgICAuZ2V0PEt1YmVybmV0ZXNSZXNvdXJjZUxpc3Q8Q2x1c3Rlcj4+KFxuICAgICAgYCR7QVBJX0dBVEVXQVl9L2F1dGgvdjEvY2x1c3RlcnM/YXZhaWxhYmxlQ2x1c3RlcnM9ZmFsc2VgLFxuICAgIClcbiAgICAucGlwZShcbiAgICAgIG1hcChyZXMgPT4gcmVzPy5pdGVtcyksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKFtdIGFzIENsdXN0ZXJbXSkpLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG5cbiAgZ2V0Q2x1c3RlckRpc3BsYXlOYW1lJCA9IG1lbW9pemUoKGNsdXN0ZXI6IHN0cmluZykgPT5cbiAgICB0aGlzLmNsdXN0ZXJzJC5waXBlKFxuICAgICAgbWFwKGNsdXN0ZXJzID0+XG4gICAgICAgIHRoaXMuazhzVXRpbC5nZXREaXNwbGF5TmFtZShcbiAgICAgICAgICBjbHVzdGVycy5maW5kKGkgPT4gdGhpcy5rOHNVdGlsLmdldE5hbWUoaSkgPT09IGNsdXN0ZXIpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApLFxuICApO1xuXG4gIGNoZWNrQ2x1c3RlckVycm9yJCA9IG1lbW9pemUoKGNsdXN0ZXI6IHN0cmluZykgPT5cbiAgICB0aGlzLmNsdXN0ZXJzJC5waXBlKFxuICAgICAgbWFwKGNsdXN0ZXJzID0+IHRoaXMuY2hlY2tDbHVzdGVyRXJyb3IoY2x1c3RlcnMsIGNsdXN0ZXIpKSxcbiAgICApLFxuICApO1xuXG4gIG5hbWVzcGFjZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5sb2FkJCQsXG4gICAgdGhpcy5yZWxvYWQkJC5waXBlKHN0YXJ0V2l0aChudWxsIGFzIHZvaWQpKSxcbiAgXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFt7IHByb2plY3QsIGNsdXN0ZXIgfV0pID0+IHtcbiAgICAgIGlmICghcHJvamVjdCB8fCAhY2x1c3Rlcikge1xuICAgICAgICByZXR1cm4gb2YoW10gYXMgS3ViZXJuZXRlc1Jlc291cmNlW10pO1xuICAgICAgfVxuICAgICAgY29uc3QgY2x1c3RlcnMgPSBjbHVzdGVyID09PSAnX19hbGwnID8gdGhpcy5jbHVzdGVycyA6IFtjbHVzdGVyXTtcbiAgICAgIHJldHVybiBjbHVzdGVycy5sZW5ndGhcbiAgICAgICAgPyBmb3JrSm9pbihcbiAgICAgICAgICAgIGNsdXN0ZXJzLm1hcChjbHVzdGVyID0+XG4gICAgICAgICAgICAgIHRoaXMuY29tbW9uTGF5b3V0U2VydmljZVxuICAgICAgICAgICAgICAgIC5nZXRDbHVzdGVyTmFtZXNwYWNlcyhwcm9qZWN0Lm1ldGFkYXRhLm5hbWUsIGNsdXN0ZXIpXG4gICAgICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZihbXSkpKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgdGFwKGxpc3RzID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5uYW1lc3BhY2VDbHVzdGVyTWFwID0gbGlzdHMucmVkdWNlKFxuICAgICAgICAgICAgICAgIChhY2MsIGN1ciwgaSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgICAgICAgIC4uLmN1ci5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgIChzdWJBY2MsIHN1YkN1cnIpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgLi4uc3ViQWNjLFxuICAgICAgICAgICAgICAgICAgICAgIFtzdWJDdXJyLm1ldGFkYXRhLnVpZF06IGNsdXN0ZXJzW2ldLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAoKGxpc3RzOiBLdWJlcm5ldGVzUmVzb3VyY2VbXVtdKSA9PiBsaXN0cy5mbGF0KCkpLFxuICAgICAgICAgIClcbiAgICAgICAgOiBvZihbXSBhcyBLdWJlcm5ldGVzUmVzb3VyY2VbXSk7XG4gICAgfSksXG4gICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25MYXlvdXRTZXJ2aWNlOiBDb21tb25MYXlvdXRDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGs4c1NlcnZpY2U6IEs4c0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIGNvbnRleHRTZXJ2aWNlOiBSZXNvdXJjZVNlbGVjdENvbnRleHRTZXJ2aWNlLFxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgazhzVXRpbDogSzhzVXRpbFNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKGNkciwgazhzVXRpbCwgY29udGV4dFNlcnZpY2UpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gRnJvbSBjYWNoZVxuICAgIHRoaXMucHJvamVjdHMgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmNhY2hlZFByb2plY3RSZXNvdXJjZXM7XG4gICAgdGhpcy5zZXJ2aWNlTWVzaGVzID0gdGhpcy5jb250ZXh0U2VydmljZS5jYWNoZWRTZXJ2aWNlTWVzaEdyb3VwUmVzb3VyY2VzO1xuICAgIGlmICh0aGlzLnByb2plY3RzLmxlbmd0aCkge1xuICAgICAgdGhpcy5pbml0UHJvamVjdCh0aGlzLnByb2plY3RzKTtcbiAgICB9XG5cbiAgICAvLyBHZXQgbGF0ZXN0IGRhdGEgaW4gdGhlIGJhY2tncm91bmRcbiAgICBmb3JrSm9pbihbXG4gICAgICB0aGlzLmNvbW1vbkxheW91dFNlcnZpY2VcbiAgICAgICAgLmdldFByb2plY3RzKClcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZihbXSBhcyBQcm9qZWN0W10pKSksXG4gICAgICB0aGlzLmRpc3BsYXlTZXJ2aWNlTWVzaFxuICAgICAgICA/IHRoaXMuc2VydmljZU1lc2hlcyRcbiAgICAgICAgOiBvZihbXSBhcyBTZXJ2aWNlTWVzaEdyb3VwW10pLFxuICAgIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucHJvamVjdHNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW3Byb2plY3RzLCBzZXJ2aWNlTWVzaGVzXSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5U2VydmljZU1lc2gpIHtcbiAgICAgICAgICB0aGlzLnNlcnZpY2VNZXNoZXMgPSBzZXJ2aWNlTWVzaGVzO1xuICAgICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UuY2FjaGVkU2VydmljZU1lc2hHcm91cFJlc291cmNlcyA9IHNlcnZpY2VNZXNoZXM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcm9qZWN0cyA9IHByb2plY3RzO1xuICAgICAgICBpZiAoIXRoaXMuY29udGV4dFNlcnZpY2UuY2FjaGVkUHJvamVjdFJlc291cmNlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5pbml0UHJvamVjdChwcm9qZWN0cyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5jYWNoZWRQcm9qZWN0UmVzb3VyY2VzID0gdGhpcy5wcm9qZWN0cztcbiAgICAgIH0pO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5jbHVzdGVycyQsIHRoaXMubmFtZXNwYWNlcyRdKS5zdWJzY3JpYmUoXG4gICAgICAoW2NsdXN0ZXJzLCBkYXRhXSkgPT4ge1xuICAgICAgICBjb25zdCBpc011bHRpQXJjaCA9XG4gICAgICAgICAgdW5pcShjbHVzdGVycy5tYXAoYyA9PiB0aGlzLms4c1V0aWwuZ2V0TGFiZWwoYywgJ2FyY2gnKSkpLmxlbmd0aCA+IDE7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkRGF0YSA9IHRoaXMubWFwUmVzb3VyY2UoZGF0YSwge1xuICAgICAgICAgIGNsdXN0ZXJzLFxuICAgICAgICAgIGlzTXVsdGlBcmNoLFxuICAgICAgICB9KS5maWx0ZXIobnMgPT4gdGhpcy5jb250ZXh0ID09PSAncGFnZScgfHwgIW5zLnN0YXRlPy5kaXNhYmxlZCk7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWROYW1lc3BhY2UodGhpcy5kaXNwbGF5ZWREYXRhKTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRVaWQpIHtcbiAgICAgICAgICB0aGlzLmRpc3BsYXllZERhdGEgPSB0aGlzLmdldFNvcnRlZE5hbWVzcGFjZShcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheWVkRGF0YSxcbiAgICAgICAgICAgIHRoaXMudmFsdWUubmFtZSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZvcmNlTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0b3JlTmFtZXNwYWNlcygpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIGdldFNvcnRlZE5hbWVzcGFjZShyYXdEYXRhOiBOYW1lc3BhY2VEYXRhSXRlbVtdLCBuYW1lc3BhY2U/OiBzdHJpbmcpIHtcbiAgICBpZiAoIW5hbWVzcGFjZSkge1xuICAgICAgcmV0dXJuIHJhd0RhdGE7XG4gICAgfVxuICAgIGNvbnN0IFtzZWxlY3RlZCwgb3RoZXJzXSA9IHBhcnRpdGlvbihcbiAgICAgIHRoaXMuZGlzcGxheWVkRGF0YSxcbiAgICAgIGl0ZW0gPT4gaXRlbS5uYW1lID09PSBuYW1lc3BhY2UsXG4gICAgKTtcbiAgICByZXR1cm4gWy4uLnNlbGVjdGVkLCAuLi5vdGhlcnNdO1xuICB9XG5cbiAgc3RvcmVOYW1lc3BhY2VzKCkge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZFByb2plY3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDbHVzdGVyID09PSAnX19hbGwnKSB7XG4gICAgICBmb3IgKGNvbnN0IGNsdXN0ZXIgb2YgdGhpcy5jbHVzdGVycykge1xuICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnN0b3JlTmFtZXNwYWNlcyhcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvamVjdC5tZXRhZGF0YS5uYW1lLFxuICAgICAgICAgIGNsdXN0ZXIsXG4gICAgICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhLmZpbHRlcihpdGVtID0+IGl0ZW0uY2x1c3RlciA9PT0gY2x1c3RlciksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY29udGV4dFNlcnZpY2Uuc3RvcmVOYW1lc3BhY2VzKFxuICAgICAgdGhpcy5zZWxlY3RlZFByb2plY3QubWV0YWRhdGEubmFtZSxcbiAgICAgIHRoaXMuc2VsZWN0ZWRDbHVzdGVyLFxuICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhLFxuICAgICk7XG4gIH1cblxuICBwcm9qZWN0RmlsdGVyRm4gPSAoXG4gICAgc2VhcmNoVGV4dCA9ICcnLFxuICAgIG9wdGlvbjogU2VsZWN0RmlsdGVyT3B0aW9uPFByb2plY3Q+LFxuICApOiBib29sZWFuID0+XG4gICAgdGhpcy5rOHNVdGlsXG4gICAgICAuZ2V0TmFtZShvcHRpb24udmFsdWUpXG4gICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSkgfHxcbiAgICB0aGlzLms4c1V0aWxcbiAgICAgIC5nZXREaXNwbGF5TmFtZShvcHRpb24udmFsdWUpXG4gICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSk7XG5cbiAgcHJvamVjdFRyYWNrRm4gPSAocHJvamVjdDogUHJvamVjdCkgPT4gcHJvamVjdD8ubWV0YWRhdGEubmFtZTtcbiAgc2VydmljZU1lc2hUcmFja0ZuID0gKG1lc2g6IFNlcnZpY2VNZXNoR3JvdXApID0+IG1lc2g/Lm1ldGFkYXRhLm5hbWU7XG5cbiAgcHJpdmF0ZSBpbml0UHJvamVjdChwcm9qZWN0czogUHJvamVjdFtdKSB7XG4gICAgdGhpcy5zZWxlY3RQcm9qZWN0KFxuICAgICAgKHByb2plY3RzIHx8IFtdKS5sZW5ndGhcbiAgICAgICAgPyBwcm9qZWN0cy5maW5kKGl0ZW0gPT4gaXRlbS5tZXRhZGF0YS5uYW1lID09PSB0aGlzLnZhbHVlPy5wcm9qZWN0KSB8fFxuICAgICAgICAgICAgcHJvamVjdHNbMF1cbiAgICAgICAgOiBudWxsLFxuICAgICAgdHJ1ZSxcbiAgICApO1xuICAgIHRoaXMubG9hZC5lbWl0KHtcbiAgICAgIHByb2plY3Q6IHByb2plY3RzLmxlbmd0aCxcbiAgICAgIGNsdXN0ZXI6IHVuaXEoXG4gICAgICAgIHByb2plY3RzLnJlZHVjZShcbiAgICAgICAgICAoYWNjLCBjdXIpID0+IFsuLi5hY2MsIC4uLihjdXIuc3BlYy5jbHVzdGVycyB8fCBbXSkubWFwKGMgPT4gYy5uYW1lKV0sXG4gICAgICAgICAgW10sXG4gICAgICAgICksXG4gICAgICApLmxlbmd0aCxcbiAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdFNlcnZpY2VNZXNoKHNlcnZpY2VNZXNoOiBTZXJ2aWNlTWVzaEdyb3VwKSB7XG4gICAgdGhpcy5zZWxlY3RlZFNlcnZpY2VNZXNoID0gc2VydmljZU1lc2g7XG4gICAgdGhpcy5jbHVzdGVycyA9ICh0aGlzLnNlbGVjdGVkUHJvamVjdC5zcGVjLmNsdXN0ZXJzIHx8IFtdKVxuICAgICAgLm1hcChjID0+IGMubmFtZSlcbiAgICAgIC5maWx0ZXIoY2x1c3RlciA9PlxuICAgICAgICB0aGlzLnNlcnZpY2VNZXNoZXNcbiAgICAgICAgICAuZmluZChcbiAgICAgICAgICAgIG1lc2ggPT5cbiAgICAgICAgICAgICAgdGhpcy5rOHNVdGlsLmdldE5hbWUobWVzaCkgPT09IHRoaXMuazhzVXRpbC5nZXROYW1lKHNlcnZpY2VNZXNoKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLnNwZWMuY2x1c3RlcnMuaW5jbHVkZXMoY2x1c3RlciksXG4gICAgICApO1xuICAgIHRoaXMuc2VsZWN0Q2x1c3RlcignX19hbGwnKTtcbiAgfVxuXG4gIHNlbGVjdFByb2plY3QocHJvamVjdDogUHJvamVjdCwgaW5pdGlhbCA9IGZhbHNlKSB7XG4gICAgdGhpcy5wcm9qZWN0Q2hhbmdlLmVtaXQocHJvamVjdD8ubWV0YWRhdGEubmFtZSk7XG4gICAgdGhpcy5zZWxlY3RlZFByb2plY3QgPSBwcm9qZWN0O1xuICAgIHRoaXMuY2x1c3RlcnMgPSBwcm9qZWN0XG4gICAgICA/IChwcm9qZWN0LnNwZWMuY2x1c3RlcnMgfHwgW10pLm1hcChjID0+IGMubmFtZSlcbiAgICAgIDogW107XG4gICAgaWYgKHRoaXMuZGlzcGxheVNlcnZpY2VNZXNoKSB7XG4gICAgICB0aGlzLnByb2plY3RTZXJ2aWNlTWVzaGVzID0gdGhpcy5zZXJ2aWNlTWVzaGVzLmZpbHRlcihtZXNoID0+XG4gICAgICAgIG1lc2guc3BlYy5jbHVzdGVycy5zb21lKGNsdXN0ZXIgPT4gdGhpcy5jbHVzdGVycy5pbmNsdWRlcyhjbHVzdGVyKSksXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMucHJvamVjdFNlcnZpY2VNZXNoZXM/Lmxlbmd0aCkge1xuICAgICAgICBsZXQgbWVzaE5hbWUgPSB0aGlzLnZhbHVlPy5zZXJ2aWNlbWVzaDtcblxuICAgICAgICBpZiAoIW1lc2hOYW1lKSB7XG4gICAgICAgICAgdGhpcy5hdXRoLmdldEFjY291bnRJbmZvKCkuc3Vic2NyaWJlKCh7IGVtYWlsIH0pID0+IHtcbiAgICAgICAgICAgIG1lc2hOYW1lID0gZ2V0V29ya3NwYWNlUGFyYW1zKGVtYWlsKT8uc2VydmljZW1lc2g7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZWxlY3RlZFNlcnZpY2VNZXNoID1cbiAgICAgICAgICB0aGlzLnByb2plY3RTZXJ2aWNlTWVzaGVzLmZpbmQoXG4gICAgICAgICAgICBtZXNoID0+IHRoaXMuazhzVXRpbC5nZXROYW1lKG1lc2gpID09PSBtZXNoTmFtZSxcbiAgICAgICAgICApIHx8IHRoaXMucHJvamVjdFNlcnZpY2VNZXNoZXNbMF07XG4gICAgICAgIHRoaXMuc2VsZWN0U2VydmljZU1lc2goc2VsZWN0ZWRTZXJ2aWNlTWVzaCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkU2VydmljZU1lc2ggPSBudWxsO1xuICAgICAgICB0aGlzLmNsdXN0ZXJzID0gW107XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0Q2x1c3RlcignX19hbGwnLCBpbml0aWFsKTtcbiAgfVxuXG4gIHNlbGVjdENsdXN0ZXIoY2x1c3Rlck5hbWU6IHN0cmluZywgaW5pdGlhbCA9IGZhbHNlKSB7XG4gICAgdGhpcy5zZWxlY3RlZENsdXN0ZXIgPSBjbHVzdGVyTmFtZTtcbiAgICBjb25zdCBkaXNwbGF5ZWREYXRhID1cbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UuZ2V0Q2FjaGVkTmFtZXNwYWNlcyhcbiAgICAgICAgdGhpcy5zZWxlY3RlZFByb2plY3Q/Lm1ldGFkYXRhLm5hbWUsXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDbHVzdGVyLFxuICAgICAgKSB8fCBbXTtcbiAgICB0aGlzLmRpc3BsYXllZERhdGEgPSB0aGlzLmdldFNvcnRlZE5hbWVzcGFjZShcbiAgICAgIGRpc3BsYXllZERhdGEsXG4gICAgICBpbml0aWFsID8gdGhpcy52YWx1ZT8ubmFtZSA6IG51bGwsXG4gICAgKTtcbiAgICB0aGlzLnNldFNlbGVjdGVkTmFtZXNwYWNlKHRoaXMuZGlzcGxheWVkRGF0YSk7XG5cbiAgICB0aGlzLmNsdXN0ZXJDaGFuZ2UuZW1pdChcbiAgICAgIHRoaXMuc2VsZWN0ZWRDbHVzdGVyID09PSAnX19hbGwnID8gbnVsbCA6IGNsdXN0ZXJOYW1lLFxuICAgICk7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWQkJC5uZXh0KHtcbiAgICAgIHByb2plY3Q6IHRoaXMuc2VsZWN0ZWRQcm9qZWN0LFxuICAgICAgY2x1c3RlcjogY2x1c3Rlck5hbWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFNlbGVjdGVkTmFtZXNwYWNlKGRhdGE6IE5hbWVzcGFjZURhdGFJdGVtW10pIHtcbiAgICBjb25zdCBzZWxlY3RlZE5hbWVzcGFjZSA9IHRoaXMudmFsdWVcbiAgICAgID8gZGF0YS5maW5kKFxuICAgICAgICAgIGl0ZW0gPT5cbiAgICAgICAgICAgIGl0ZW0ubmFtZSA9PT0gdGhpcy52YWx1ZS5uYW1lICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlLmNsdXN0ZXIgPT09IGl0ZW0uY2x1c3RlcixcbiAgICAgICAgKVxuICAgICAgOiBudWxsO1xuICAgIHRoaXMuc2VsZWN0ZWRVaWQgPSBzZWxlY3RlZE5hbWVzcGFjZVxuICAgICAgPyBzZWxlY3RlZE5hbWVzcGFjZS5fX29yaWdpbi5tZXRhZGF0YS51aWRcbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIG1hcFJlc291cmNlID0gKFxuICAgIGxpc3Q6IEt1YmVybmV0ZXNSZXNvdXJjZVtdLFxuICAgIHtcbiAgICAgIGlzTXVsdGlBcmNoLFxuICAgICAgY2x1c3RlcnMsXG4gICAgfToge1xuICAgICAgaXNNdWx0aUFyY2g6IGJvb2xlYW47XG4gICAgICBjbHVzdGVyczogQ2x1c3RlcltdO1xuICAgIH0sXG4gICk6IE5hbWVzcGFjZURhdGFJdGVtW10gPT5cbiAgICBsaXN0Lm1hcChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGNsdXN0ZXIgPSB0aGlzLm5hbWVzcGFjZUNsdXN0ZXJNYXBbaXRlbS5tZXRhZGF0YS51aWRdO1xuICAgICAgY29uc3QgaXRlbURpc2FibGVkID0gdGhpcy5kaXNhYmxlRm4gPyB0aGlzLmRpc2FibGVGbihpdGVtKSA6IG51bGw7XG4gICAgICBjb25zdCBjYWNoZWRJdGVtID0gdGhpcy5kaXNwbGF5ZWREYXRhLmZpbmQoXG4gICAgICAgIG5zID0+IG5zLl9fb3JpZ2luLm1ldGFkYXRhLnVpZCA9PT0gaXRlbS5tZXRhZGF0YS51aWQsXG4gICAgICApO1xuICAgICAgY29uc3Qgc2VydmljZW1lc2ggPSB0aGlzLnNlcnZpY2VNZXNoZXMuZmluZChpdGVtID0+XG4gICAgICAgIGl0ZW0uc3BlYy5jbHVzdGVycy5pbmNsdWRlcyhjYWNoZWRJdGVtPy5jbHVzdGVyIHx8IGNsdXN0ZXIpLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHRoaXMuazhzVXRpbC5nZXROYW1lKGl0ZW0pLFxuICAgICAgICBkaXNwbGF5TmFtZTogdGhpcy5rOHNVdGlsLmdldERpc3BsYXlOYW1lKGl0ZW0pLFxuICAgICAgICBjbHVzdGVyOiBjYWNoZWRJdGVtPy5jbHVzdGVyIHx8IGNsdXN0ZXIsXG4gICAgICAgIGNsdXN0ZXJEaXNwbGF5TmFtZTpcbiAgICAgICAgICBjYWNoZWRJdGVtPy5jbHVzdGVyRGlzcGxheU5hbWUgfHxcbiAgICAgICAgICB0aGlzLms4c1V0aWwuZ2V0RGlzcGxheU5hbWUoXG4gICAgICAgICAgICBjbHVzdGVycy5maW5kKGMgPT4gYy5tZXRhZGF0YS5uYW1lID09PSBjbHVzdGVyKSxcbiAgICAgICAgICApLFxuICAgICAgICBjbHVzdGVyQXJjaDpcbiAgICAgICAgICBjYWNoZWRJdGVtPy5jbHVzdGVyQXJjaCB8fCBpc011bHRpQXJjaFxuICAgICAgICAgICAgPyB0aGlzLmdldENsdXN0ZXJBcmNoKFxuICAgICAgICAgICAgICAgIGNsdXN0ZXJzLmZpbmQoYyA9PiBjLm1ldGFkYXRhLm5hbWUgPT09IGNsdXN0ZXIpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgIHNlcnZpY2VNZXNoTmFtZTogc2VydmljZW1lc2ggPyB0aGlzLms4c1V0aWwuZ2V0TmFtZShzZXJ2aWNlbWVzaCkgOiAnJyxcbiAgICAgICAgc2VydmljZU1lc2hDbHVzdGVyczogc2VydmljZW1lc2ggPyBzZXJ2aWNlbWVzaC5zcGVjLmNsdXN0ZXJzIDogW10sXG4gICAgICAgIHNlcnZpY2VNZXNoSXN0aW9WZXJzaW9uOiBzZXJ2aWNlbWVzaFxuICAgICAgICAgID8gc2VydmljZW1lc2guc3BlYy5pc3Rpb1ZlcnNpb25cbiAgICAgICAgICA6ICcnLFxuICAgICAgICBhZG1pbjogY2FjaGVkSXRlbT8uYWRtaW4gfHwgJy0nLFxuICAgICAgICB0aW1lc3RhbXA6IHRoaXMuazhzVXRpbC5nZXRDcmVhdGlvblRpbWVzdGFtcChpdGVtKSxcbiAgICAgICAgc3RhdGU6IHtcbiAgICAgICAgICBkaXNhYmxlZDpcbiAgICAgICAgICAgIHRoaXMuZ3JpZFN0YXRlTWFwW2NsdXN0ZXJdPy5kaXNhYmxlZCB8fFxuICAgICAgICAgICAgaXRlbURpc2FibGVkPy5kaXNhYmxlZCB8fFxuICAgICAgICAgICAgdGhpcy5jaGVja0NsdXN0ZXJFcnJvcihjbHVzdGVycywgY2FjaGVkSXRlbT8uY2x1c3RlciB8fCBjbHVzdGVyKSB8fFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgdG9vbHRpcDogdGhpcy5ncmlkU3RhdGVNYXBbY2x1c3Rlcl0/LmRpc2FibGVkXG4gICAgICAgICAgICA/IHRoaXMuZ3JpZFN0YXRlTWFwW2NsdXN0ZXJdPy50b29sdGlwIHx8ICcnXG4gICAgICAgICAgICA6IGl0ZW1EaXNhYmxlZD8udG9vbHRpcCxcbiAgICAgICAgfSxcbiAgICAgICAgX19vcmlnaW46IGl0ZW0sXG4gICAgICB9O1xuICAgIH0pO1xuXG4gIHByaXZhdGUgZ2V0Q2x1c3RlckFyY2goY2x1c3RlcjogQ2x1c3Rlcikge1xuICAgIHJldHVybiBnZXREaXNwbGF5QXJjaChcbiAgICAgIHRoaXMuazhzVXRpbC5nZXRMYWJlbChjbHVzdGVyLCAnYXJjaCcpLFxuICAgICkgYXMgQ2x1c3RlckFyY2g7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQ2x1c3RlckVycm9yKGNsdXN0ZXJzOiBDbHVzdGVyW10sIGNsdXN0ZXI6IHN0cmluZykge1xuICAgIHJldHVybiAoXG4gICAgICBjbHVzdGVyc1xuICAgICAgICAuZmluZChpID0+IHRoaXMuazhzVXRpbC5nZXROYW1lKGkpID09PSBjbHVzdGVyKVxuICAgICAgICA/LnN0YXR1cy5jb25kaXRpb25zLmZpbmQoYyA9PiBjLnR5cGUgPT09ICdOb2RlTm90UmVhZHknKT8uc3RhdHVzICE9PVxuICAgICAgJ0ZhbHNlJ1xuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmaWx0ZXJcIj5cbiAgPGF1aS1mb3JtLWl0ZW0+XG4gICAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3sgJ3Byb2plY3QnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8YXVpLXNlbGVjdFxuICAgICAgW25nQ2xhc3NdPVwiZGlzcGxheVNlcnZpY2VNZXNoID8gJ2xhbmctZW46IXR3LXctWzIzMHB4XScgOiAnJ1wiXG4gICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgIG5hbWU9XCJwcm9qZWN0XCJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRQcm9qZWN0XCJcbiAgICAgIFtmaWx0ZXJGbl09XCJwcm9qZWN0RmlsdGVyRm5cIlxuICAgICAgW3RyYWNrRm5dPVwicHJvamVjdFRyYWNrRm5cIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cInNlbGVjdFByb2plY3QoJGV2ZW50KVwiXG4gICAgICBbbG9hZGluZ109XCIhcHJvamVjdHMubGVuZ3RoICYmIHByb2plY3RzTG9hZGluZ1wiXG4gICAgPlxuICAgICAgPGF1aS1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IHByb2plY3Qgb2YgcHJvamVjdHNcIlxuICAgICAgICBbdmFsdWVdPVwicHJvamVjdFwiXG4gICAgICAgIFtsYWJlbF09XCJwcm9qZWN0IHwgYWNsVW5pb25EaXNwbGF5TmFtZVwiXG4gICAgICA+XG4gICAgICAgIHt7IHByb2plY3QgfCBhY2xVbmlvbkRpc3BsYXlOYW1lIH19XG4gICAgICA8L2F1aS1vcHRpb24+XG4gICAgPC9hdWktc2VsZWN0PlxuICA8L2F1aS1mb3JtLWl0ZW0+XG4gIDwhLS0gQVNNIOmAieaLqee9keagvOi/h+a7pOmbhue+pOmAiemhuSAtLT5cbiAgPGF1aS1mb3JtLWl0ZW0gKm5nSWY9XCJkaXNwbGF5U2VydmljZU1lc2hcIj5cbiAgICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAnc2VydmljZV9tZXNoJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGF1aS1zZWxlY3RcbiAgICAgIGNsYXNzPVwibGFuZy1lbjohdHctdy1bMjMwcHhdXCJcbiAgICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgICAgbmFtZT1cInNlcnZpY2VNZXNoUHJvamVjdFwiXG4gICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkU2VydmljZU1lc2hcIlxuICAgICAgW3RyYWNrRm5dPVwic2VydmljZU1lc2hUcmFja0ZuXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJzZWxlY3RTZXJ2aWNlTWVzaCgkZXZlbnQpXCJcbiAgICAgIFtsb2FkaW5nXT1cIiFwcm9qZWN0cy5sZW5ndGggJiYgcHJvamVjdHNMb2FkaW5nXCJcbiAgICA+XG4gICAgICA8YXVpLW9wdGlvblxuICAgICAgICAqbmdGb3I9XCJsZXQgbWVzaCBvZiBwcm9qZWN0U2VydmljZU1lc2hlc1wiXG4gICAgICAgIFt2YWx1ZV09XCJtZXNoXCJcbiAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgIChtZXNoIHwgYWNsTmFtZSkgK1xuICAgICAgICAgIChtZXNoLnNwZWM/LmlzdGlvVmVyc2lvblxuICAgICAgICAgICAgPyAnKElzdGlvICcgKyBtZXNoLnNwZWMuaXN0aW9WZXJzaW9uICsgJyknXG4gICAgICAgICAgICA6ICcnKVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICB7eyBtZXNoIHwgYWNsTmFtZVxuICAgICAgICB9fTxuZy1jb250YWluZXIgKm5nSWY9XCJtZXNoLnNwZWM/LmlzdGlvVmVyc2lvblwiXG4gICAgICAgICAgPihJc3RpbyB7eyBtZXNoLnNwZWMuaXN0aW9WZXJzaW9uIH19KTwvbmctY29udGFpbmVyXG4gICAgICAgID5cbiAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDxhdWktb3B0aW9uLXBsYWNlaG9sZGVyPlxuICAgICAgICB7eyAnbm9fZGF0YScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYXVpLW9wdGlvbi1wbGFjZWhvbGRlcj5cbiAgICA8L2F1aS1zZWxlY3Q+XG4gIDwvYXVpLWZvcm0taXRlbT5cbiAgPGF1aS1mb3JtLWl0ZW0+XG4gICAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3sgJ2NsdXN0ZXInIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8YXVpLXNlbGVjdFxuICAgICAgW25nQ2xhc3NdPVwiZGlzcGxheVNlcnZpY2VNZXNoID8gJ2xhbmctZW46IXR3LXctWzIzMHB4XScgOiAnJ1wiXG4gICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgIG5hbWU9XCJwcm9qZWN0XCJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDbHVzdGVyXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJzZWxlY3RDbHVzdGVyKCRldmVudClcIlxuICAgICAgW2xvYWRpbmddPVwiIXByb2plY3RzLmxlbmd0aCAmJiBwcm9qZWN0c0xvYWRpbmdcIlxuICAgID5cbiAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgIFt2YWx1ZV09XCInX19hbGwnXCJcbiAgICAgICAgW2xhYmVsXT1cIidhbGwnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2FsbF9jbHVzdGVycycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBjbHVzdGVyIG9mIGNsdXN0ZXJzXCJcbiAgICAgICAgW3ZhbHVlXT1cImNsdXN0ZXJcIlxuICAgICAgICBbbGFiZWxdPVwiY2x1c3RlckxhYmVsXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNsdXN0ZXIgfCBwdXJlOiBjaGVja0NsdXN0ZXJFcnJvciQgfCBhc3luY1wiXG4gICAgICAgIFthdWlUb29sdGlwXT1cIidjdXJyZW50X2NsdXN0ZXJfc3RhdHVzX2Fibm9ybWFsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFthdWlUb29sdGlwRGlzYWJsZWRdPVwiIShjbHVzdGVyIHwgcHVyZTogY2hlY2tDbHVzdGVyRXJyb3IkIHwgYXN5bmMpXCJcbiAgICAgICAgW2xhYmVsQ29udGV4dF09XCJ7IGNsdXN0ZXI6IGNsdXN0ZXIgfVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNsdXN0ZXJMYWJlbDsgY29udGV4dDogeyBjbHVzdGVyOiBjbHVzdGVyIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2F1aS1vcHRpb24+XG4gICAgPC9hdWktc2VsZWN0PlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgI2NsdXN0ZXJMYWJlbFxuICAgICAgbGV0LWNsdXN0ZXI9XCJjbHVzdGVyXCJcbiAgICA+XG4gICAgICB7eyBjbHVzdGVyIH19XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiY2x1c3RlciB8IHB1cmU6IGdldENsdXN0ZXJEaXNwbGF5TmFtZSQgfCBhc3luYyBhcyBkaXNwbGF5TmFtZVwiXG4gICAgICA+XG4gICAgICAgICh7eyBkaXNwbGF5TmFtZSB9fSlcbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvYXVpLWZvcm0taXRlbT5cbjwvZGl2PlxuPGFjbC1yZXNvdXJjZS1kYXRhLWdyaWRcbiAgW2RhdGFdPVwiZGlzcGxheWVkRGF0YSB8fCBbXVwiXG4gIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gIChzZWxlY3RJdGVtKT1cIm9uU2VsZWN0KCRldmVudClcIlxuICBbYWN0aW9uVGVtcGxhdGVSZWZdPVwiYWN0aW9uVGVtcGxhdGVSZWZcIlxuICBbc2VsZWN0ZWRVaWRdPVwic2VsZWN0ZWRVaWRcIlxuICBbbG9hZGluZ109XCJmb3JjZUxvYWRpbmcgfHwgKCFkaXNwbGF5ZWREYXRhPy5sZW5ndGggJiYgbG9hZGluZylcIlxuICAocmVsb2FkKT1cInJlbG9hZCgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBhY2xSZXNvdXJjZUdyaWRIZWFkZXI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvYWNsLXJlc291cmNlLWRhdGEtZ3JpZD5cbiJdfQ==
|
|
432
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9pbnRlcm5hbHMvbmFtZXNwYWNlLWxpc3QvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9pbnRlcm5hbHMvbmFtZXNwYWNlLWxpc3QvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEVBQ2IsUUFBUSxFQUNSLEVBQUUsRUFDRixVQUFVLEVBQ1YsUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsV0FBVyxFQUVYLGNBQWMsRUFFZCxVQUFVLEdBSVgsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FB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Z0IsSUFBQyx5R0FJckIsWUFBUSxJQUphO1lBTS9CLGtDQUFvQztZQUNsQyxtQkFBeUI7WUFDM0IsMEJBQWU7WUFDakIsaUJBQXlCOztZQTVHRyxlQUEyQjtZQUEzQixzREFBMkI7WUFFakQsZUFBNkQ7WUFBN0QsK0VBQTZELGdDQUFBLGlDQUFBLCtCQUFBLHdEQUFBO1lBVXZDLGVBQVc7WUFBWCxzQ0FBVztZQVNyQixlQUF3QjtZQUF4Qiw2Q0FBd0I7WUFnQ2QsZUFBMkI7WUFBM0IsdURBQTJCO1lBRWpELGVBQTZEO1lBQTdELCtFQUE2RCxnQ0FBQSx3REFBQTtZQVEzRCxlQUFpQjtZQUFqQiwrQkFBaUIsd0NBQUE7WUFHakIsZUFDRjtZQURFLHVFQUNGO1lBRXNCLGVBQVc7WUFBWCxzQ0FBVztZQTJCckMsZUFBNEI7WUFBNUIsdUVBQTRCLHNCQUFBLHdCQUFBLDRDQUFBLGdDQUFBLDhHQUFBOzs7dUZEekNqQixzQkFBc0I7Y0FObEMsU0FBUzsyQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTswT0FPL0MsaUJBQWlCO2tCQURoQixLQUFLO1lBSU4sU0FBUztrQkFEUixLQUFLO1lBSU4sS0FBSztrQkFESixLQUFLO1lBSU4sa0JBQWtCO2tCQURqQixLQUFLO1lBSU4sYUFBYTtrQkFEWixNQUFNO1lBSVAsYUFBYTtrQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0RmlsdGVyT3B0aW9uIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lbW9pemUsIHBhcnRpdGlvbiwgdW5pcSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBSZXBsYXlTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBmb3JrSm9pbixcbiAgb2YsXG4gIGNhdGNoRXJyb3IsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIEFQSV9HQVRFV0FZLFxuICBDbHVzdGVyLFxuICBLOHNVdGlsU2VydmljZSxcbiAgUHJvamVjdCxcbiAgcHVibGlzaFJlZixcbiAgU2VydmljZU1lc2hHcm91cCxcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBLdWJlcm5ldGVzUmVzb3VyY2VMaXN0LFxufSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQ29tbW9uTGF5b3V0Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9wYWdlLXNjYWZmb2xkL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgUmVzb3VyY2VMaXN0QmFzZSB9IGZyb20gJy4uLy4uL2Jhc2UtbGlzdCc7XG5pbXBvcnQgeyBSZXNvdXJjZVNlbGVjdENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IGdldERpc3BsYXlBcmNoLCBnZXRXb3Jrc3BhY2VQYXJhbXMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmltcG9ydCB7IEs4c0FwaVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uLy4uL2FwaS9wdWJsaWMtYXBpJztcbmltcG9ydCB7XG4gIENsdXN0ZXJBcmNoLFxuICBEaXNhYmxlRm4sXG4gIE5hbWVzcGFjZURhdGFJdGVtLFxuICBTZWxlY3RlZE5hbWVzcGFjZVZhbHVlLFxufSBmcm9tICcuLy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLW5hbWVzcGFjZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOYW1lc3BhY2VMaXN0Q29tcG9uZW50XG4gIGV4dGVuZHMgUmVzb3VyY2VMaXN0QmFzZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIGFjdGlvblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVGbjogRGlzYWJsZUZuO1xuXG4gIEBJbnB1dCgpXG4gIHZhbHVlOiBTZWxlY3RlZE5hbWVzcGFjZVZhbHVlO1xuXG4gIEBJbnB1dCgpXG4gIGRpc3BsYXlTZXJ2aWNlTWVzaCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBjbHVzdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHByb2plY3RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwcm9qZWN0czogUHJvamVjdFtdID0gW107XG5cbiAgc2VsZWN0ZWRQcm9qZWN0OiBQcm9qZWN0O1xuICBzZWxlY3RlZENsdXN0ZXI6IHN0cmluZztcbiAgY2x1c3RlcnM6IHN0cmluZ1tdID0gW107XG4gIHByb2plY3RzTG9hZGluZyA9IHRydWU7XG5cbiAgc2VydmljZU1lc2hlczogU2VydmljZU1lc2hHcm91cFtdID0gW107XG4gIHByb2plY3RTZXJ2aWNlTWVzaGVzOiBTZXJ2aWNlTWVzaEdyb3VwW10gPSBbXTtcbiAgc2VsZWN0ZWRTZXJ2aWNlTWVzaDogU2VydmljZU1lc2hHcm91cDtcblxuICB0eXBlID0gJ25hbWVzcGFjZSc7XG5cbiAgZGlzcGxheWVkRGF0YTogTmFtZXNwYWNlRGF0YUl0ZW1bXSA9IFtdO1xuXG4gIG5hbWVzcGFjZUNsdXN0ZXJNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBncmlkU3RhdGVNYXA6IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8RGlzYWJsZUZuPj4gPSB7fTtcblxuICBzZWxlY3RlZFVpZDogc3RyaW5nO1xuXG4gIGxvYWQkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHsgcHJvamVjdDogUHJvamVjdDsgY2x1c3Rlcjogc3RyaW5nIH0+KDEpO1xuXG4gIHNlcnZpY2VNZXNoZXMkID0gdGhpcy5rOHNTZXJ2aWNlXG4gICAgLmdldEdsb2JhbFJlc291cmNlTGlzdDxTZXJ2aWNlTWVzaEdyb3VwPih7XG4gICAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGFwaUdyb3VwOiAnYXNtLmFsYXVkYS5pbycsXG4gICAgICAgIGFwaVZlcnNpb246ICd2MWFscGhhMScsXG4gICAgICAgIHR5cGU6ICdzZXJ2aWNlbWVzaGdyb3VwcycsXG4gICAgICB9LFxuICAgICAgbmFtZXNwYWNlZDogdHJ1ZSxcbiAgICB9KVxuICAgIC5waXBlKG1hcChyZXMgPT4gcmVzLml0ZW1zKSk7XG5cbiAgY2x1c3RlcnMkID0gdGhpcy5odHRwXG4gICAgLmdldDxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PENsdXN0ZXI+PihcbiAgICAgIGAke0FQSV9HQVRFV0FZfS9hdXRoL3YxL2NsdXN0ZXJzP2F2YWlsYWJsZUNsdXN0ZXJzPWZhbHNlYCxcbiAgICApXG4gICAgLnBpcGUoXG4gICAgICBtYXAocmVzID0+IHJlcz8uaXRlbXMpLFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihbXSBhcyBDbHVzdGVyW10pKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuXG4gIGdldENsdXN0ZXJEaXNwbGF5TmFtZSQgPSBtZW1vaXplKChjbHVzdGVyOiBzdHJpbmcpID0+XG4gICAgdGhpcy5jbHVzdGVycyQucGlwZShcbiAgICAgIG1hcChjbHVzdGVycyA9PlxuICAgICAgICB0aGlzLms4c1V0aWwuZ2V0RGlzcGxheU5hbWUoXG4gICAgICAgICAgY2x1c3RlcnMuZmluZChpID0+IHRoaXMuazhzVXRpbC5nZXROYW1lKGkpID09PSBjbHVzdGVyKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKSxcbiAgKTtcblxuICBjaGVja0NsdXN0ZXJFcnJvciQgPSBtZW1vaXplKChjbHVzdGVyOiBzdHJpbmcpID0+XG4gICAgdGhpcy5jbHVzdGVycyQucGlwZShcbiAgICAgIG1hcChjbHVzdGVycyA9PiB0aGlzLmNoZWNrQ2x1c3RlckVycm9yKGNsdXN0ZXJzLCBjbHVzdGVyKSksXG4gICAgKSxcbiAgKTtcblxuICBuYW1lc3BhY2VzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMubG9hZCQkLFxuICAgIHRoaXMucmVsb2FkJCQucGlwZShzdGFydFdpdGgobnVsbCBhcyB2b2lkKSksXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbeyBwcm9qZWN0LCBjbHVzdGVyIH1dKSA9PiB7XG4gICAgICBpZiAoIXByb2plY3QgfHwgIWNsdXN0ZXIpIHtcbiAgICAgICAgcmV0dXJuIG9mKFtdIGFzIEt1YmVybmV0ZXNSZXNvdXJjZVtdKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNsdXN0ZXJzID0gY2x1c3RlciA9PT0gJ19fYWxsJyA/IHRoaXMuY2x1c3RlcnMgOiBbY2x1c3Rlcl07XG4gICAgICByZXR1cm4gY2x1c3RlcnMubGVuZ3RoXG4gICAgICAgID8gZm9ya0pvaW4oXG4gICAgICAgICAgICBjbHVzdGVycy5tYXAoY2x1c3RlciA9PlxuICAgICAgICAgICAgICB0aGlzLmNvbW1vbkxheW91dFNlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0Q2x1c3Rlck5hbWVzcGFjZXMocHJvamVjdC5tZXRhZGF0YS5uYW1lLCBjbHVzdGVyKVxuICAgICAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YoW10pKSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgIHRhcChsaXN0cyA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubmFtZXNwYWNlQ2x1c3Rlck1hcCA9IGxpc3RzLnJlZHVjZShcbiAgICAgICAgICAgICAgICAoYWNjLCBjdXIsIGkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICAgICAgICAuLi5jdXIucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgICAoc3ViQWNjLCBzdWJDdXJyKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgIC4uLnN1YkFjYyxcbiAgICAgICAgICAgICAgICAgICAgICBbc3ViQ3Vyci5tZXRhZGF0YS51aWRdOiBjbHVzdGVyc1tpXSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKChsaXN0czogS3ViZXJuZXRlc1Jlc291cmNlW11bXSkgPT4gbGlzdHMuZmxhdCgpKSxcbiAgICAgICAgICApXG4gICAgICAgIDogb2YoW10gYXMgS3ViZXJuZXRlc1Jlc291cmNlW10pO1xuICAgIH0pLFxuICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbW9uTGF5b3V0U2VydmljZTogQ29tbW9uTGF5b3V0Q29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBrOHNTZXJ2aWNlOiBLOHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICBjb250ZXh0U2VydmljZTogUmVzb3VyY2VTZWxlY3RDb250ZXh0U2VydmljZSxcbiAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGs4c1V0aWw6IEs4c1V0aWxTZXJ2aWNlLFxuICApIHtcbiAgICBzdXBlcihjZHIsIGs4c1V0aWwsIGNvbnRleHRTZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIEZyb20gY2FjaGVcbiAgICB0aGlzLnByb2plY3RzID0gdGhpcy5jb250ZXh0U2VydmljZS5jYWNoZWRQcm9qZWN0UmVzb3VyY2VzO1xuICAgIHRoaXMuc2VydmljZU1lc2hlcyA9IHRoaXMuY29udGV4dFNlcnZpY2UuY2FjaGVkU2VydmljZU1lc2hHcm91cFJlc291cmNlcztcbiAgICBpZiAodGhpcy5wcm9qZWN0cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuaW5pdFByb2plY3QodGhpcy5wcm9qZWN0cyk7XG4gICAgfVxuXG4gICAgLy8gR2V0IGxhdGVzdCBkYXRhIGluIHRoZSBiYWNrZ3JvdW5kXG4gICAgZm9ya0pvaW4oW1xuICAgICAgdGhpcy5jb21tb25MYXlvdXRTZXJ2aWNlXG4gICAgICAgIC5nZXRQcm9qZWN0cygpXG4gICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YoW10gYXMgUHJvamVjdFtdKSkpLFxuICAgICAgdGhpcy5kaXNwbGF5U2VydmljZU1lc2hcbiAgICAgICAgPyB0aGlzLnNlcnZpY2VNZXNoZXMkXG4gICAgICAgIDogb2YoW10gYXMgU2VydmljZU1lc2hHcm91cFtdKSxcbiAgICBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnByb2plY3RzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtwcm9qZWN0cywgc2VydmljZU1lc2hlc10pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheVNlcnZpY2VNZXNoKSB7XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlTWVzaGVzID0gc2VydmljZU1lc2hlcztcbiAgICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmNhY2hlZFNlcnZpY2VNZXNoR3JvdXBSZXNvdXJjZXMgPSBzZXJ2aWNlTWVzaGVzO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJvamVjdHMgPSBwcm9qZWN0cztcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRleHRTZXJ2aWNlLmNhY2hlZFByb2plY3RSZXNvdXJjZXM/Lmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuaW5pdFByb2plY3QocHJvamVjdHMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UuY2FjaGVkUHJvamVjdFJlc291cmNlcyA9IHRoaXMucHJvamVjdHM7XG4gICAgICB9KTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuY2x1c3RlcnMkLCB0aGlzLm5hbWVzcGFjZXMkXSkuc3Vic2NyaWJlKFxuICAgICAgKFtjbHVzdGVycywgZGF0YV0pID0+IHtcbiAgICAgICAgY29uc3QgaXNNdWx0aUFyY2ggPVxuICAgICAgICAgIHVuaXEoY2x1c3RlcnMubWFwKGMgPT4gdGhpcy5rOHNVdGlsLmdldExhYmVsKGMsICdhcmNoJykpKS5sZW5ndGggPiAxO1xuICAgICAgICB0aGlzLmRpc3BsYXllZERhdGEgPSB0aGlzLm1hcFJlc291cmNlKGRhdGEsIHtcbiAgICAgICAgICBjbHVzdGVycyxcbiAgICAgICAgICBpc011bHRpQXJjaCxcbiAgICAgICAgfSkuZmlsdGVyKG5zID0+IHRoaXMuY29udGV4dCA9PT0gJ3BhZ2UnIHx8ICFucy5zdGF0ZT8uZGlzYWJsZWQpO1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkTmFtZXNwYWNlKHRoaXMuZGlzcGxheWVkRGF0YSk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVWlkKSB7XG4gICAgICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhID0gdGhpcy5nZXRTb3J0ZWROYW1lc3BhY2UoXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXllZERhdGEsXG4gICAgICAgICAgICB0aGlzLnZhbHVlLm5hbWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JjZUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdG9yZU5hbWVzcGFjZXMoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBnZXRTb3J0ZWROYW1lc3BhY2UocmF3RGF0YTogTmFtZXNwYWNlRGF0YUl0ZW1bXSwgbmFtZXNwYWNlPzogc3RyaW5nKSB7XG4gICAgaWYgKCFuYW1lc3BhY2UpIHtcbiAgICAgIHJldHVybiByYXdEYXRhO1xuICAgIH1cbiAgICBjb25zdCBbc2VsZWN0ZWQsIG90aGVyc10gPSBwYXJ0aXRpb24oXG4gICAgICB0aGlzLmRpc3BsYXllZERhdGEsXG4gICAgICBpdGVtID0+IGl0ZW0ubmFtZSA9PT0gbmFtZXNwYWNlLFxuICAgICk7XG4gICAgcmV0dXJuIFsuLi5zZWxlY3RlZCwgLi4ub3RoZXJzXTtcbiAgfVxuXG4gIHN0b3JlTmFtZXNwYWNlcygpIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRQcm9qZWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2x1c3RlciA9PT0gJ19fYWxsJykge1xuICAgICAgZm9yIChjb25zdCBjbHVzdGVyIG9mIHRoaXMuY2x1c3RlcnMpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5zdG9yZU5hbWVzcGFjZXMoXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFByb2plY3QubWV0YWRhdGEubmFtZSxcbiAgICAgICAgICBjbHVzdGVyLFxuICAgICAgICAgIHRoaXMuZGlzcGxheWVkRGF0YS5maWx0ZXIoaXRlbSA9PiBpdGVtLmNsdXN0ZXIgPT09IGNsdXN0ZXIpLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnN0b3JlTmFtZXNwYWNlcyhcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm9qZWN0Lm1ldGFkYXRhLm5hbWUsXG4gICAgICB0aGlzLnNlbGVjdGVkQ2x1c3RlcixcbiAgICAgIHRoaXMuZGlzcGxheWVkRGF0YSxcbiAgICApO1xuICB9XG5cbiAgcHJvamVjdEZpbHRlckZuID0gKFxuICAgIHNlYXJjaFRleHQgPSAnJyxcbiAgICBvcHRpb246IFNlbGVjdEZpbHRlck9wdGlvbjxQcm9qZWN0PixcbiAgKTogYm9vbGVhbiA9PlxuICAgIHRoaXMuazhzVXRpbFxuICAgICAgLmdldE5hbWUob3B0aW9uLnZhbHVlKVxuICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgIC5pbmNsdWRlcyhzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpIHx8XG4gICAgdGhpcy5rOHNVdGlsXG4gICAgICAuZ2V0RGlzcGxheU5hbWUob3B0aW9uLnZhbHVlKVxuICAgICAgPy50b0xvd2VyQ2FzZSgpXG4gICAgICA/LmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSk7XG5cbiAgcHJvamVjdFRyYWNrRm4gPSAocHJvamVjdDogUHJvamVjdCkgPT4gcHJvamVjdD8ubWV0YWRhdGEubmFtZTtcbiAgc2VydmljZU1lc2hUcmFja0ZuID0gKG1lc2g6IFNlcnZpY2VNZXNoR3JvdXApID0+IG1lc2g/Lm1ldGFkYXRhLm5hbWU7XG5cbiAgcHJpdmF0ZSBpbml0UHJvamVjdChwcm9qZWN0czogUHJvamVjdFtdKSB7XG4gICAgdGhpcy5zZWxlY3RQcm9qZWN0KFxuICAgICAgKHByb2plY3RzIHx8IFtdKS5sZW5ndGhcbiAgICAgICAgPyBwcm9qZWN0cy5maW5kKGl0ZW0gPT4gaXRlbS5tZXRhZGF0YS5uYW1lID09PSB0aGlzLnZhbHVlPy5wcm9qZWN0KSB8fFxuICAgICAgICAgICAgcHJvamVjdHNbMF1cbiAgICAgICAgOiBudWxsLFxuICAgICAgdHJ1ZSxcbiAgICApO1xuICAgIHRoaXMubG9hZC5lbWl0KHtcbiAgICAgIHByb2plY3Q6IHByb2plY3RzLmxlbmd0aCxcbiAgICAgIGNsdXN0ZXI6IHVuaXEoXG4gICAgICAgIHByb2plY3RzLnJlZHVjZShcbiAgICAgICAgICAoYWNjLCBjdXIpID0+IFsuLi5hY2MsIC4uLihjdXIuc3BlYy5jbHVzdGVycyB8fCBbXSkubWFwKGMgPT4gYy5uYW1lKV0sXG4gICAgICAgICAgW10sXG4gICAgICAgICksXG4gICAgICApLmxlbmd0aCxcbiAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdFNlcnZpY2VNZXNoKHNlcnZpY2VNZXNoOiBTZXJ2aWNlTWVzaEdyb3VwKSB7XG4gICAgdGhpcy5zZWxlY3RlZFNlcnZpY2VNZXNoID0gc2VydmljZU1lc2g7XG4gICAgdGhpcy5jbHVzdGVycyA9ICh0aGlzLnNlbGVjdGVkUHJvamVjdC5zcGVjLmNsdXN0ZXJzIHx8IFtdKVxuICAgICAgLm1hcChjID0+IGMubmFtZSlcbiAgICAgIC5maWx0ZXIoY2x1c3RlciA9PlxuICAgICAgICB0aGlzLnNlcnZpY2VNZXNoZXNcbiAgICAgICAgICAuZmluZChcbiAgICAgICAgICAgIG1lc2ggPT5cbiAgICAgICAgICAgICAgdGhpcy5rOHNVdGlsLmdldE5hbWUobWVzaCkgPT09IHRoaXMuazhzVXRpbC5nZXROYW1lKHNlcnZpY2VNZXNoKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLnNwZWMuY2x1c3RlcnMuaW5jbHVkZXMoY2x1c3RlciksXG4gICAgICApO1xuICAgIHRoaXMuc2VsZWN0Q2x1c3RlcignX19hbGwnKTtcbiAgfVxuXG4gIHNlbGVjdFByb2plY3QocHJvamVjdDogUHJvamVjdCwgaW5pdGlhbCA9IGZhbHNlKSB7XG4gICAgdGhpcy5wcm9qZWN0Q2hhbmdlLmVtaXQocHJvamVjdD8ubWV0YWRhdGEubmFtZSk7XG4gICAgdGhpcy5zZWxlY3RlZFByb2plY3QgPSBwcm9qZWN0O1xuICAgIHRoaXMuY2x1c3RlcnMgPSBwcm9qZWN0XG4gICAgICA/IChwcm9qZWN0LnNwZWMuY2x1c3RlcnMgfHwgW10pLm1hcChjID0+IGMubmFtZSlcbiAgICAgIDogW107XG4gICAgaWYgKHRoaXMuZGlzcGxheVNlcnZpY2VNZXNoKSB7XG4gICAgICB0aGlzLnByb2plY3RTZXJ2aWNlTWVzaGVzID0gdGhpcy5zZXJ2aWNlTWVzaGVzLmZpbHRlcihtZXNoID0+XG4gICAgICAgIG1lc2guc3BlYy5jbHVzdGVycy5zb21lKGNsdXN0ZXIgPT4gdGhpcy5jbHVzdGVycy5pbmNsdWRlcyhjbHVzdGVyKSksXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMucHJvamVjdFNlcnZpY2VNZXNoZXM/Lmxlbmd0aCkge1xuICAgICAgICBsZXQgbWVzaE5hbWUgPSB0aGlzLnZhbHVlPy5zZXJ2aWNlbWVzaDtcblxuICAgICAgICBpZiAoIW1lc2hOYW1lKSB7XG4gICAgICAgICAgdGhpcy5hdXRoLmdldEFjY291bnRJbmZvKCkuc3Vic2NyaWJlKCh7IGVtYWlsIH0pID0+IHtcbiAgICAgICAgICAgIG1lc2hOYW1lID0gZ2V0V29ya3NwYWNlUGFyYW1zKGVtYWlsKT8uc2VydmljZW1lc2g7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZWxlY3RlZFNlcnZpY2VNZXNoID1cbiAgICAgICAgICB0aGlzLnByb2plY3RTZXJ2aWNlTWVzaGVzLmZpbmQoXG4gICAgICAgICAgICBtZXNoID0+IHRoaXMuazhzVXRpbC5nZXROYW1lKG1lc2gpID09PSBtZXNoTmFtZSxcbiAgICAgICAgICApIHx8IHRoaXMucHJvamVjdFNlcnZpY2VNZXNoZXNbMF07XG4gICAgICAgIHRoaXMuc2VsZWN0U2VydmljZU1lc2goc2VsZWN0ZWRTZXJ2aWNlTWVzaCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkU2VydmljZU1lc2ggPSBudWxsO1xuICAgICAgICB0aGlzLmNsdXN0ZXJzID0gW107XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0Q2x1c3RlcignX19hbGwnLCBpbml0aWFsKTtcbiAgfVxuXG4gIHNlbGVjdENsdXN0ZXIoY2x1c3Rlck5hbWU6IHN0cmluZywgaW5pdGlhbCA9IGZhbHNlKSB7XG4gICAgdGhpcy5zZWxlY3RlZENsdXN0ZXIgPSBjbHVzdGVyTmFtZTtcbiAgICBjb25zdCBkaXNwbGF5ZWREYXRhID1cbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UuZ2V0Q2FjaGVkTmFtZXNwYWNlcyhcbiAgICAgICAgdGhpcy5zZWxlY3RlZFByb2plY3Q/Lm1ldGFkYXRhLm5hbWUsXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDbHVzdGVyLFxuICAgICAgKSB8fCBbXTtcbiAgICB0aGlzLmRpc3BsYXllZERhdGEgPSB0aGlzLmdldFNvcnRlZE5hbWVzcGFjZShcbiAgICAgIGRpc3BsYXllZERhdGEsXG4gICAgICBpbml0aWFsID8gdGhpcy52YWx1ZT8ubmFtZSA6IG51bGwsXG4gICAgKTtcbiAgICB0aGlzLnNldFNlbGVjdGVkTmFtZXNwYWNlKHRoaXMuZGlzcGxheWVkRGF0YSk7XG5cbiAgICB0aGlzLmNsdXN0ZXJDaGFuZ2UuZW1pdChcbiAgICAgIHRoaXMuc2VsZWN0ZWRDbHVzdGVyID09PSAnX19hbGwnID8gbnVsbCA6IGNsdXN0ZXJOYW1lLFxuICAgICk7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWQkJC5uZXh0KHtcbiAgICAgIHByb2plY3Q6IHRoaXMuc2VsZWN0ZWRQcm9qZWN0LFxuICAgICAgY2x1c3RlcjogY2x1c3Rlck5hbWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFNlbGVjdGVkTmFtZXNwYWNlKGRhdGE6IE5hbWVzcGFjZURhdGFJdGVtW10pIHtcbiAgICBjb25zdCBzZWxlY3RlZE5hbWVzcGFjZSA9IHRoaXMudmFsdWVcbiAgICAgID8gZGF0YS5maW5kKFxuICAgICAgICAgIGl0ZW0gPT5cbiAgICAgICAgICAgIGl0ZW0ubmFtZSA9PT0gdGhpcy52YWx1ZS5uYW1lICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlLmNsdXN0ZXIgPT09IGl0ZW0uY2x1c3RlcixcbiAgICAgICAgKVxuICAgICAgOiBudWxsO1xuICAgIHRoaXMuc2VsZWN0ZWRVaWQgPSBzZWxlY3RlZE5hbWVzcGFjZVxuICAgICAgPyBzZWxlY3RlZE5hbWVzcGFjZS5fX29yaWdpbi5tZXRhZGF0YS51aWRcbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIG1hcFJlc291cmNlID0gKFxuICAgIGxpc3Q6IEt1YmVybmV0ZXNSZXNvdXJjZVtdLFxuICAgIHtcbiAgICAgIGlzTXVsdGlBcmNoLFxuICAgICAgY2x1c3RlcnMsXG4gICAgfToge1xuICAgICAgaXNNdWx0aUFyY2g6IGJvb2xlYW47XG4gICAgICBjbHVzdGVyczogQ2x1c3RlcltdO1xuICAgIH0sXG4gICk6IE5hbWVzcGFjZURhdGFJdGVtW10gPT5cbiAgICBsaXN0Lm1hcChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGNsdXN0ZXIgPSB0aGlzLm5hbWVzcGFjZUNsdXN0ZXJNYXBbaXRlbS5tZXRhZGF0YS51aWRdO1xuICAgICAgY29uc3QgaXRlbURpc2FibGVkID0gdGhpcy5kaXNhYmxlRm4gPyB0aGlzLmRpc2FibGVGbihpdGVtKSA6IG51bGw7XG4gICAgICBjb25zdCBjYWNoZWRJdGVtID0gdGhpcy5kaXNwbGF5ZWREYXRhLmZpbmQoXG4gICAgICAgIG5zID0+IG5zLl9fb3JpZ2luLm1ldGFkYXRhLnVpZCA9PT0gaXRlbS5tZXRhZGF0YS51aWQsXG4gICAgICApO1xuICAgICAgY29uc3Qgc2VydmljZW1lc2ggPSB0aGlzLnNlcnZpY2VNZXNoZXMuZmluZChpdGVtID0+XG4gICAgICAgIGl0ZW0uc3BlYy5jbHVzdGVycy5pbmNsdWRlcyhjYWNoZWRJdGVtPy5jbHVzdGVyIHx8IGNsdXN0ZXIpLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHRoaXMuazhzVXRpbC5nZXROYW1lKGl0ZW0pLFxuICAgICAgICBkaXNwbGF5TmFtZTogdGhpcy5rOHNVdGlsLmdldERpc3BsYXlOYW1lKGl0ZW0pLFxuICAgICAgICBjbHVzdGVyOiBjYWNoZWRJdGVtPy5jbHVzdGVyIHx8IGNsdXN0ZXIsXG4gICAgICAgIGNsdXN0ZXJEaXNwbGF5TmFtZTpcbiAgICAgICAgICBjYWNoZWRJdGVtPy5jbHVzdGVyRGlzcGxheU5hbWUgfHxcbiAgICAgICAgICB0aGlzLms4c1V0aWwuZ2V0RGlzcGxheU5hbWUoXG4gICAgICAgICAgICBjbHVzdGVycy5maW5kKGMgPT4gYy5tZXRhZGF0YS5uYW1lID09PSBjbHVzdGVyKSxcbiAgICAgICAgICApLFxuICAgICAgICBjbHVzdGVyQXJjaDpcbiAgICAgICAgICBjYWNoZWRJdGVtPy5jbHVzdGVyQXJjaCB8fCBpc011bHRpQXJjaFxuICAgICAgICAgICAgPyB0aGlzLmdldENsdXN0ZXJBcmNoKFxuICAgICAgICAgICAgICAgIGNsdXN0ZXJzLmZpbmQoYyA9PiBjLm1ldGFkYXRhLm5hbWUgPT09IGNsdXN0ZXIpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgIHNlcnZpY2VNZXNoTmFtZTogc2VydmljZW1lc2ggPyB0aGlzLms4c1V0aWwuZ2V0TmFtZShzZXJ2aWNlbWVzaCkgOiAnJyxcbiAgICAgICAgc2VydmljZU1lc2hDbHVzdGVyczogc2VydmljZW1lc2ggPyBzZXJ2aWNlbWVzaC5zcGVjLmNsdXN0ZXJzIDogW10sXG4gICAgICAgIHNlcnZpY2VNZXNoSXN0aW9WZXJzaW9uOiBzZXJ2aWNlbWVzaFxuICAgICAgICAgID8gc2VydmljZW1lc2guc3BlYy5pc3Rpb1ZlcnNpb25cbiAgICAgICAgICA6ICcnLFxuICAgICAgICBhZG1pbjogY2FjaGVkSXRlbT8uYWRtaW4gfHwgJy0nLFxuICAgICAgICB0aW1lc3RhbXA6IHRoaXMuazhzVXRpbC5nZXRDcmVhdGlvblRpbWVzdGFtcChpdGVtKSxcbiAgICAgICAgc3RhdGU6IHtcbiAgICAgICAgICBkaXNhYmxlZDpcbiAgICAgICAgICAgIHRoaXMuZ3JpZFN0YXRlTWFwW2NsdXN0ZXJdPy5kaXNhYmxlZCB8fFxuICAgICAgICAgICAgaXRlbURpc2FibGVkPy5kaXNhYmxlZCB8fFxuICAgICAgICAgICAgdGhpcy5jaGVja0NsdXN0ZXJFcnJvcihjbHVzdGVycywgY2FjaGVkSXRlbT8uY2x1c3RlciB8fCBjbHVzdGVyKSB8fFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgdG9vbHRpcDogdGhpcy5ncmlkU3RhdGVNYXBbY2x1c3Rlcl0/LmRpc2FibGVkXG4gICAgICAgICAgICA/IHRoaXMuZ3JpZFN0YXRlTWFwW2NsdXN0ZXJdPy50b29sdGlwIHx8ICcnXG4gICAgICAgICAgICA6IGl0ZW1EaXNhYmxlZD8udG9vbHRpcCxcbiAgICAgICAgfSxcbiAgICAgICAgX19vcmlnaW46IGl0ZW0sXG4gICAgICB9O1xuICAgIH0pO1xuXG4gIHByaXZhdGUgZ2V0Q2x1c3RlckFyY2goY2x1c3RlcjogQ2x1c3Rlcikge1xuICAgIHJldHVybiBnZXREaXNwbGF5QXJjaChcbiAgICAgIHRoaXMuazhzVXRpbC5nZXRMYWJlbChjbHVzdGVyLCAnYXJjaCcpLFxuICAgICkgYXMgQ2x1c3RlckFyY2g7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQ2x1c3RlckVycm9yKGNsdXN0ZXJzOiBDbHVzdGVyW10sIGNsdXN0ZXI6IHN0cmluZykge1xuICAgIHJldHVybiAoXG4gICAgICBjbHVzdGVyc1xuICAgICAgICAuZmluZChpID0+IHRoaXMuazhzVXRpbC5nZXROYW1lKGkpID09PSBjbHVzdGVyKVxuICAgICAgICA/LnN0YXR1cy5jb25kaXRpb25zLmZpbmQoYyA9PiBjLnR5cGUgPT09ICdOb2RlTm90UmVhZHknKT8uc3RhdHVzICE9PVxuICAgICAgJ0ZhbHNlJ1xuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmaWx0ZXJcIj5cbiAgPGF1aS1mb3JtLWl0ZW0+XG4gICAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3sgJ3Byb2plY3QnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8YXVpLXNlbGVjdFxuICAgICAgW25nQ2xhc3NdPVwiZGlzcGxheVNlcnZpY2VNZXNoID8gJ2xhbmctZW46IXR3LXctWzIzMHB4XScgOiAnJ1wiXG4gICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgIG5hbWU9XCJwcm9qZWN0XCJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRQcm9qZWN0XCJcbiAgICAgIFtmaWx0ZXJGbl09XCJwcm9qZWN0RmlsdGVyRm5cIlxuICAgICAgW3RyYWNrRm5dPVwicHJvamVjdFRyYWNrRm5cIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cInNlbGVjdFByb2plY3QoJGV2ZW50KVwiXG4gICAgICBbbG9hZGluZ109XCIhcHJvamVjdHMubGVuZ3RoICYmIHByb2plY3RzTG9hZGluZ1wiXG4gICAgPlxuICAgICAgPGF1aS1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IHByb2plY3Qgb2YgcHJvamVjdHNcIlxuICAgICAgICBbdmFsdWVdPVwicHJvamVjdFwiXG4gICAgICAgIFtsYWJlbF09XCJwcm9qZWN0IHwgYWNsVW5pb25EaXNwbGF5TmFtZVwiXG4gICAgICA+XG4gICAgICAgIHt7IHByb2plY3QgfCBhY2xVbmlvbkRpc3BsYXlOYW1lIH19XG4gICAgICA8L2F1aS1vcHRpb24+XG4gICAgPC9hdWktc2VsZWN0PlxuICA8L2F1aS1mb3JtLWl0ZW0+XG4gIDwhLS0gQVNNIOmAieaLqee9keagvOi/h+a7pOmbhue+pOmAiemhuSAtLT5cbiAgPGF1aS1mb3JtLWl0ZW0gKm5nSWY9XCJkaXNwbGF5U2VydmljZU1lc2hcIj5cbiAgICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAnc2VydmljZV9tZXNoJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGF1aS1zZWxlY3RcbiAgICAgIGNsYXNzPVwibGFuZy1lbjohdHctdy1bMjMwcHhdXCJcbiAgICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgICAgbmFtZT1cInNlcnZpY2VNZXNoUHJvamVjdFwiXG4gICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkU2VydmljZU1lc2hcIlxuICAgICAgW3RyYWNrRm5dPVwic2VydmljZU1lc2hUcmFja0ZuXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJzZWxlY3RTZXJ2aWNlTWVzaCgkZXZlbnQpXCJcbiAgICAgIFtsb2FkaW5nXT1cIiFwcm9qZWN0cy5sZW5ndGggJiYgcHJvamVjdHNMb2FkaW5nXCJcbiAgICA+XG4gICAgICA8YXVpLW9wdGlvblxuICAgICAgICAqbmdGb3I9XCJsZXQgbWVzaCBvZiBwcm9qZWN0U2VydmljZU1lc2hlc1wiXG4gICAgICAgIFt2YWx1ZV09XCJtZXNoXCJcbiAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgIChtZXNoIHwgYWNsTmFtZSkgK1xuICAgICAgICAgIChtZXNoLnNwZWM/LmlzdGlvVmVyc2lvblxuICAgICAgICAgICAgPyAnKElzdGlvICcgKyBtZXNoLnNwZWMuaXN0aW9WZXJzaW9uICsgJyknXG4gICAgICAgICAgICA6ICcnKVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICB7eyBtZXNoIHwgYWNsTmFtZVxuICAgICAgICB9fTxuZy1jb250YWluZXIgKm5nSWY9XCJtZXNoLnNwZWM/LmlzdGlvVmVyc2lvblwiXG4gICAgICAgICAgPihJc3RpbyB7eyBtZXNoLnNwZWMuaXN0aW9WZXJzaW9uIH19KTwvbmctY29udGFpbmVyXG4gICAgICAgID5cbiAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDxhdWktb3B0aW9uLXBsYWNlaG9sZGVyPlxuICAgICAgICB7eyAnbm9fZGF0YScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYXVpLW9wdGlvbi1wbGFjZWhvbGRlcj5cbiAgICA8L2F1aS1zZWxlY3Q+XG4gIDwvYXVpLWZvcm0taXRlbT5cbiAgPGF1aS1mb3JtLWl0ZW0+XG4gICAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3sgJ2NsdXN0ZXInIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8YXVpLXNlbGVjdFxuICAgICAgW25nQ2xhc3NdPVwiZGlzcGxheVNlcnZpY2VNZXNoID8gJ2xhbmctZW46IXR3LXctWzIzMHB4XScgOiAnJ1wiXG4gICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgIG5hbWU9XCJwcm9qZWN0XCJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDbHVzdGVyXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJzZWxlY3RDbHVzdGVyKCRldmVudClcIlxuICAgICAgW2xvYWRpbmddPVwiIXByb2plY3RzLmxlbmd0aCAmJiBwcm9qZWN0c0xvYWRpbmdcIlxuICAgID5cbiAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgIFt2YWx1ZV09XCInX19hbGwnXCJcbiAgICAgICAgW2xhYmVsXT1cIidhbGwnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2FsbF9jbHVzdGVycycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBjbHVzdGVyIG9mIGNsdXN0ZXJzXCJcbiAgICAgICAgW3ZhbHVlXT1cImNsdXN0ZXJcIlxuICAgICAgICBbbGFiZWxdPVwiY2x1c3RlckxhYmVsXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNsdXN0ZXIgfCBwdXJlOiBjaGVja0NsdXN0ZXJFcnJvciQgfCBhc3luY1wiXG4gICAgICAgIFthdWlUb29sdGlwXT1cIidjdXJyZW50X2NsdXN0ZXJfc3RhdHVzX2Fibm9ybWFsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFthdWlUb29sdGlwRGlzYWJsZWRdPVwiIShjbHVzdGVyIHwgcHVyZTogY2hlY2tDbHVzdGVyRXJyb3IkIHwgYXN5bmMpXCJcbiAgICAgICAgW2xhYmVsQ29udGV4dF09XCJ7IGNsdXN0ZXI6IGNsdXN0ZXIgfVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNsdXN0ZXJMYWJlbDsgY29udGV4dDogeyBjbHVzdGVyOiBjbHVzdGVyIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2F1aS1vcHRpb24+XG4gICAgPC9hdWktc2VsZWN0PlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgI2NsdXN0ZXJMYWJlbFxuICAgICAgbGV0LWNsdXN0ZXI9XCJjbHVzdGVyXCJcbiAgICA+XG4gICAgICB7eyBjbHVzdGVyIH19XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiY2x1c3RlciB8IHB1cmU6IGdldENsdXN0ZXJEaXNwbGF5TmFtZSQgfCBhc3luYyBhcyBkaXNwbGF5TmFtZVwiXG4gICAgICA+XG4gICAgICAgICh7eyBkaXNwbGF5TmFtZSB9fSlcbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvYXVpLWZvcm0taXRlbT5cbjwvZGl2PlxuPGFjbC1yZXNvdXJjZS1kYXRhLWdyaWRcbiAgW2RhdGFdPVwiZGlzcGxheWVkRGF0YSB8fCBbXVwiXG4gIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gIChzZWxlY3RJdGVtKT1cIm9uU2VsZWN0KCRldmVudClcIlxuICBbYWN0aW9uVGVtcGxhdGVSZWZdPVwiYWN0aW9uVGVtcGxhdGVSZWZcIlxuICBbc2VsZWN0ZWRVaWRdPVwic2VsZWN0ZWRVaWRcIlxuICBbbG9hZGluZ109XCJmb3JjZUxvYWRpbmcgfHwgKCFkaXNwbGF5ZWREYXRhPy5sZW5ndGggJiYgbG9hZGluZylcIlxuICAocmVsb2FkKT1cInJlbG9hZCgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBhY2xSZXNvdXJjZUdyaWRIZWFkZXI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvYWNsLXJlc291cmNlLWRhdGEtZ3JpZD5cbiJdfQ==
|
|
@@ -109,7 +109,7 @@ export class ResourceNoDataComponent {
|
|
|
109
109
|
this.clear = new EventEmitter();
|
|
110
110
|
}
|
|
111
111
|
static { this.ɵfac = function ResourceNoDataComponent_Factory(t) { return new (t || ResourceNoDataComponent)(); }; }
|
|
112
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ResourceNoDataComponent, selectors: [["acl-resource-no-data"]], inputs: { isFiltered: "isFiltered", type: "type" }, outputs: { refresh: "refresh", clear: "clear" }, decls: 7, vars: 5, consts: [[1, "no-data"], [1, "no-data__figure"], [
|
|
112
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ResourceNoDataComponent, selectors: [["acl-resource-no-data"]], inputs: { isFiltered: "isFiltered", type: "type" }, outputs: { refresh: "refresh", clear: "clear" }, decls: 7, vars: 5, consts: [[1, "no-data"], [1, "no-data__figure"], [3, "src"], [1, "no-data__text"], [4, "ngIf"], [1, "no-data__title"], [1, "no-data__des"], ["href", "javascript:;", 3, "click"]], template: function ResourceNoDataComponent_Template(rf, ctx) { if (rf & 1) {
|
|
113
113
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
|
|
114
114
|
i0.ɵɵelement(2, "img", 2);
|
|
115
115
|
i0.ɵɵpipe(3, "aclImageTheme");
|
|
@@ -129,7 +129,7 @@ export class ResourceNoDataComponent {
|
|
|
129
129
|
}
|
|
130
130
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResourceNoDataComponent, [{
|
|
131
131
|
type: Component,
|
|
132
|
-
args: [{ selector: 'acl-resource-no-data', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"no-data\">\n <div class=\"no-data__figure\">\n <img
|
|
132
|
+
args: [{ selector: 'acl-resource-no-data', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"no-data\">\n <div class=\"no-data__figure\">\n <img [src]=\"'images/$theme/no-data.svg' | aclImageTheme\" />\n </div>\n <div class=\"no-data__text\">\n <ng-container *ngIf=\"isFiltered\">\n <div class=\"no-data__title\">\n {{ 'resource_not_found_title' | translate }}\n </div>\n <div class=\"no-data__des\">\n {{ 'resource_not_found_des_pre' | translate }}\n <a\n href=\"javascript:;\"\n (click)=\"refresh.emit()\"\n >{{ 'refresh' | translate }}</a\n >\n {{ 'or' | translate }}\n <a\n href=\"javascript:;\"\n (click)=\"clear.emit()\"\n >{{ 'clear_filter' | translate }}</a\n >\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isFiltered\">\n <ng-container *ngIf=\"type === 'namespace'\">\n <div class=\"no-data__title\">{{ 'no_namespace' | translate }}</div>\n <div class=\"no-data__des\">\n {{ 'no_namespace_tip' | translate }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"type === 'project'\"\n ><div class=\"no-data__title\">{{ 'no_project' | translate }}</div>\n <div class=\"no-data__des\">{{ 'no_project_tip' | translate }}</div>\n </ng-container>\n <ng-container *ngIf=\"type === 'cluster'\"\n ><div class=\"no-data__title\">{{ 'no_cluster' | translate }}</div>\n <div class=\"no-data__des\">{{ 'no_cluster_tip' | translate }}</div>\n </ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".no-data{display:flex;align-items:center;flex-direction:column;height:100%;justify-content:center;text-align:center}.no-data__figure,.no-data__figure img{height:160px}.no-data__title{color:rgb(var(--aui-color-n-1));font-size:18px;font-weight:500;margin:20px 0 12px}.no-data__des{font-size:14px;color:rgb(var(--aui-color-n-4))}\n"] }]
|
|
133
133
|
}], null, { isFiltered: [{
|
|
134
134
|
type: Input
|
|
135
135
|
}], type: [{
|
|
@@ -139,4 +139,4 @@ export class ResourceNoDataComponent {
|
|
|
139
139
|
}], clear: [{
|
|
140
140
|
type: Output
|
|
141
141
|
}] }); })();
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9pbnRlcm5hbHMvbm8tZGF0YS9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYnVzaW5lc3MvcmVzb3VyY2Utc2VsZWN0L2ludGVybmFscy9uby1kYXRhL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7Ozs7SUNEbkIsNkJBQWlDO0lBQy9CLDhCQUE0QjtJQUMxQixZQUNGOztJQUFBLGlCQUFNO0lBQ04sOEJBQTBCO0lBQ3hCLFlBQ0E7O0lBQUEsNEJBR0c7SUFERCx3S0FBUyxlQUFBLHFCQUFjLENBQUEsSUFBQztJQUN2QixZQUEyQjs7SUFBQSxpQkFDN0I7SUFDRCxhQUNBOztJQUFBLDZCQUdHO0lBREQseUtBQVMsZUFBQSxtQkFBWSxDQUFBLElBQUM7SUFDckIsYUFBZ0M7O0lBQUEsaUJBQ2xDLEVBQUE7SUFFTCwwQkFBZTs7SUFoQlgsZUFDRjtJQURFLGlGQUNGO0lBRUUsZUFDQTtJQURBLG1GQUNBO0lBR0csZUFBMkI7SUFBM0IscURBQTJCO0lBRTlCLGVBQ0E7SUFEQSw2REFDQTtJQUdHLGVBQWdDO0lBQWhDLDREQUFnQzs7O0lBS3JDLDZCQUEyQztJQUN6Qyw4QkFBNEI7SUFBQSxZQUFnQzs7SUFBQSxpQkFBTTtJQUNsRSw4QkFBMEI7SUFDeEIsWUFDRjs7SUFBQSxpQkFBTTtJQUNSLDBCQUFlOztJQUplLGVBQWdDO0lBQWhDLDBEQUFnQztJQUUxRCxlQUNGO0lBREUseUVBQ0Y7OztJQUVGLDZCQUNHO0lBQUEsOEJBQTRCO0lBQUEsWUFBOEI7O0lBQUEsaUJBQU07SUFDakUsOEJBQTBCO0lBQUEsWUFBa0M7O0lBQUEsaUJBQU07SUFDcEUsMEJBQWU7O0lBRmdCLGVBQThCO0lBQTlCLHdEQUE4QjtJQUNqQyxlQUFrQztJQUFsQyw0REFBa0M7OztJQUU5RCw2QkFDRztJQUFBLDhCQUE0QjtJQUFBLFlBQThCOztJQUFBLGlCQUFNO0lBQ2pFLDhCQUEwQjtJQUFBLFlBQWtDOztJQUFBLGlCQUFNO0lBQ3BFLDBCQUFlOztJQUZnQixlQUE4QjtJQUE5Qix3REFBOEI7SUFDakMsZUFBa0M7SUFBbEMsNERBQWtDOzs7SUFiaEUsNkJBQWtDO0lBQ2hDLHlHQUtlO0lBQ2YseUdBR2U7SUFDZix5R0FHZTtJQUNqQiwwQkFBZTs7O0lBZEUsZUFBMEI7SUFBMUIsa0RBQTBCO0lBTTFCLGVBQXdCO0lBQXhCLGdEQUF3QjtJQUl4QixlQUF3QjtJQUF4QixnREFBd0I7O0FEbkI3QyxNQUFNLE9BQU8sdUJBQXVCO0lBTnBDO1FBUUUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUduQixTQUFJLEdBQWEsV0FBVyxDQUFDO1FBRzdCLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBR25DLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBQ2xDO3dGQVpZLHVCQUF1QjtvRUFBdkIsdUJBQXVCO1lDaEJwQyw4QkFBcUIsYUFBQTtZQUVqQix5QkFBMkQ7O1lBQzdELGlCQUFNO1lBQ04sOEJBQTJCO1lBQ3pCLDRGQWtCZTtZQUNmLDBGQWVlO1lBQ2pCLGlCQUFNLEVBQUE7O1lBdENDLGVBQW1EO1lBQW5ELHlGQUFtRDtZQUd6QyxlQUFnQjtZQUFoQixxQ0FBZ0I7WUFtQmhCLGVBQWlCO1lBQWpCLHNDQUFpQjs7O3VGRFJ2Qix1QkFBdUI7Y0FObkMsU0FBUzsyQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTTtnQkFJL0MsVUFBVTtrQkFEVCxLQUFLO1lBSU4sSUFBSTtrQkFESCxLQUFLO1lBSU4sT0FBTztrQkFETixNQUFNO1lBSVAsS0FBSztrQkFESixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXJlc291cmNlLW5vLWRhdGEnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlTm9EYXRhQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgaXNGaWx0ZXJlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHR5cGU6IERhdGFUeXBlID0gJ25hbWVzcGFjZSc7XG5cbiAgQE91dHB1dCgpXG4gIHJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGNsZWFyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xufVxuIiwiPGRpdiBjbGFzcz1cIm5vLWRhdGFcIj5cbiAgPGRpdiBjbGFzcz1cIm5vLWRhdGFfX2ZpZ3VyZVwiPlxuICAgIDxpbWcgW3NyY109XCInaW1hZ2VzLyR0aGVtZS9uby1kYXRhLnN2ZycgfCBhY2xJbWFnZVRoZW1lXCIgLz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJuby1kYXRhX190ZXh0XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRmlsdGVyZWRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJuby1kYXRhX190aXRsZVwiPlxuICAgICAgICB7eyAncmVzb3VyY2Vfbm90X2ZvdW5kX3RpdGxlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibm8tZGF0YV9fZGVzXCI+XG4gICAgICAgIHt7ICdyZXNvdXJjZV9ub3RfZm91bmRfZGVzX3ByZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPGFcbiAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgICAgICAoY2xpY2spPVwicmVmcmVzaC5lbWl0KClcIlxuICAgICAgICAgID57eyAncmVmcmVzaCcgfCB0cmFuc2xhdGUgfX08L2FcbiAgICAgICAgPlxuICAgICAgICB7eyAnb3InIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDxhXG4gICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFyLmVtaXQoKVwiXG4gICAgICAgICAgPnt7ICdjbGVhcl9maWx0ZXInIHwgdHJhbnNsYXRlIH19PC9hXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNGaWx0ZXJlZFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICduYW1lc3BhY2UnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuby1kYXRhX190aXRsZVwiPnt7ICdub19uYW1lc3BhY2UnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuby1kYXRhX19kZXNcIj5cbiAgICAgICAgICB7eyAnbm9fbmFtZXNwYWNlX3RpcCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAncHJvamVjdCdcIlxuICAgICAgICA+PGRpdiBjbGFzcz1cIm5vLWRhdGFfX3RpdGxlXCI+e3sgJ25vX3Byb2plY3QnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuby1kYXRhX19kZXNcIj57eyAnbm9fcHJvamVjdF90aXAnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnY2x1c3RlcidcIlxuICAgICAgICA+PGRpdiBjbGFzcz1cIm5vLWRhdGFfX3RpdGxlXCI+e3sgJ25vX2NsdXN0ZXInIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuby1kYXRhX19kZXNcIj57eyAnbm9fY2x1c3Rlcl90aXAnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -2,11 +2,11 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@
|
|
|
2
2
|
import { uniq } from 'lodash-es';
|
|
3
3
|
import { startWith, switchMap, takeUntil } from 'rxjs';
|
|
4
4
|
import { K8sUtilService, publishRef, } from '../../../../core/public-api';
|
|
5
|
+
import { CommonLayoutContextService } from '../../../../page-scaffold/public-api';
|
|
5
6
|
import { ResourceListBase } from '../../base-list';
|
|
6
7
|
import { ResourceSelectContextService } from '../../context.service';
|
|
7
|
-
import { CommonLayoutContextService } from './../../../../page-scaffold';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "
|
|
9
|
+
import * as i1 from "../../../../page-scaffold/public-api";
|
|
10
10
|
import * as i2 from "../../context.service";
|
|
11
11
|
import * as i3 from "../../../../core/public-api";
|
|
12
12
|
export class ProjectListComponent extends ResourceListBase {
|
|
@@ -72,4 +72,4 @@ export class ProjectListComponent extends ResourceListBase {
|
|
|
72
72
|
}], function () { return [{ type: i1.CommonLayoutContextService }, { type: i2.ResourceSelectContextService }, { type: i0.ChangeDetectorRef }, { type: i3.K8sUtilService }]; }, { value: [{
|
|
73
73
|
type: Input
|
|
74
74
|
}] }); })();
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9pbnRlcm5hbHMvcHJvamVjdC1saXN0L2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9idXNpbmVzcy9yZXNvdXJjZS1zZWxlY3QvaW50ZXJuYWxzL3Byb2plY3QtbGlzdC90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkQsT0FBTyxFQUNMLGNBQWMsRUFFZCxVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFVckUsTUFBTSxPQUFPLG9CQUNYLFNBQVEsZ0JBQWdCO0lBcUJ4QixZQUNtQixtQkFBK0MsRUFDaEUsY0FBNEMsRUFDNUMsR0FBc0IsRUFDdEIsT0FBdUI7UUFFdkIsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFMbkIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUE0QjtRQWRsRSxTQUFJLEdBQUcsU0FBa0IsQ0FBQztRQUkxQixhQUFRLEdBQXNCLEVBQUUsQ0FBQztRQUVqQyxjQUFT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QyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RSxDQUFDO3FGQWpFVSxvQkFBb0I7b0VBQXBCLG9CQUFvQjtZQzVCakMsaURBVUM7WUFMQyxpSUFBYyxvQkFBZ0IsSUFBQyxzR0FJckIsWUFBUSxJQUphO1lBS2hDLGlCQUF5Qjs7WUFUeEIsbUNBQWlCLHNCQUFBLHdCQUFBLDRCQUFBLGtCQUFBLCtGQUFBLG9FQUFBOzs7dUZEMkJOLG9CQUFvQjtjQU5oQyxTQUFTOzJCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNO3FMQU8vQyxLQUFLO2tCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHVuaXEgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBLOHNVdGlsU2VydmljZSxcbiAgUHJvamVjdCxcbiAgcHVibGlzaFJlZixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENvbW1vbkxheW91dENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vcGFnZS1zY2FmZm9sZC9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFJlc291cmNlTGlzdEJhc2UgfSBmcm9tICcuLi8uLi9iYXNlLWxpc3QnO1xuaW1wb3J0IHsgUmVzb3VyY2VTZWxlY3RDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnRleHQuc2VydmljZSc7XG5cbmltcG9ydCB7IFByb2plY3REYXRhSXRlbSB9IGZyb20gJy4vLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtcHJvamVjdC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9qZWN0TGlzdENvbXBvbmVudFxuICBleHRlbmRzIFJlc291cmNlTGlzdEJhc2VcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKVxuICB2YWx1ZTogc3RyaW5nO1xuXG4gIHNlbGVjdGVkUHJvamVjdDogUHJvamVjdERhdGFJdGVtO1xuXG4gIHR5cGUgPSAncHJvamVjdCcgYXMgY29uc3Q7XG5cbiAgc2VsZWN0ZWRVaWQ6IHN0cmluZztcblxuICBwcm9qZWN0czogUHJvamVjdERhdGFJdGVtW10gPSBbXTtcblxuICBwcm9qZWN0cyQgPSB0aGlzLnJlbG9hZCQkLnBpcGUoXG4gICAgc3RhcnRXaXRoKG51bGwgYXMgdm9pZCksXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY29tbW9uTGF5b3V0U2VydmljZS5nZXRQcm9qZWN0cygpKSxcbiAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vbkxheW91dFNlcnZpY2U6IENvbW1vbkxheW91dENvbnRleHRTZXJ2aWNlLFxuICAgIGNvbnRleHRTZXJ2aWNlOiBSZXNvdXJjZVNlbGVjdENvbnRleHRTZXJ2aWNlLFxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgazhzVXRpbDogSzhzVXRpbFNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKGNkciwgazhzVXRpbCwgY29udGV4dFNlcnZpY2UpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5wcm9qZWN0cyA9IHRoaXMuY29udGV4dFNlcnZpY2UuY2FjaGVkUHJvamVjdHM7XG4gICAgdGhpcy5zZXRTZWxlY3RlZCgpO1xuICAgIHRoaXMucHJvamVjdHMkLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBwcm9qZWN0cyA9PiB7XG4gICAgICAgIHRoaXMubG9hZC5lbWl0KHtcbiAgICAgICAgICBwcm9qZWN0OiBwcm9qZWN0cy5sZW5ndGgsXG4gICAgICAgICAgY2x1c3RlcjogdW5pcShcbiAgICAgICAgICAgIHByb2plY3RzLnJlZHVjZShcbiAgICAgICAgICAgICAgKGFjYywgY3VyKSA9PiBbXG4gICAgICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgICAgIC4uLihjdXIuc3BlYy5jbHVzdGVycyB8fCBbXSkubWFwKGMgPT4gYy5uYW1lKSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICApLFxuICAgICAgICAgICkubGVuZ3RoLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcm9qZWN0cyA9IHRoaXMubWFwUmVzb3VyY2UocHJvamVjdHMpO1xuICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmNhY2hlZFByb2plY3RzID0gdGhpcy5wcm9qZWN0cztcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZCgpO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JjZUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9yY2VMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHNldFNlbGVjdGVkKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcm9qZWN0ID0gdGhpcy5wcm9qZWN0cy5maW5kKHAgPT4gcC5uYW1lID09PSB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG1hcFJlc291cmNlID0gKGxpc3Q6IFByb2plY3RbXSk6IFByb2plY3REYXRhSXRlbVtdID0+XG4gICAgbGlzdC5tYXAoaXRlbSA9PiB7XG4gICAgICBjb25zdCBjYWNoZWRJdGVtID0gdGhpcy5wcm9qZWN0cy5maW5kKFxuICAgICAgICBwcm9qZWN0ID0+IHByb2plY3QubmFtZSA9PT0gdGhpcy5rOHNVdGlsLmdldE5hbWUoaXRlbSksXG4gICAgICApO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogdGhpcy5rOHNVdGlsLmdldE5hbWUoaXRlbSksXG4gICAgICAgIGRpc3BsYXlOYW1lOiB0aGlzLms4c1V0aWwuZ2V0RGlzcGxheU5hbWUoaXRlbSksXG4gICAgICAgIHN0YXR1czogaXRlbS5zdGF0dXM/LnBoYXNlID09PSAnQWN0aXZlJyA/ICdub3JtYWwnIDogJ2Fibm9ybWFsJyxcbiAgICAgICAgYWRtaW46IGNhY2hlZEl0ZW0/LmFkbWluIHx8ICcnLFxuICAgICAgICB0aW1lc3RhbXA6IGl0ZW0ubWV0YWRhdGEuY3JlYXRpb25UaW1lc3RhbXAsXG4gICAgICAgIF9fb3JpZ2luOiBpdGVtLFxuICAgICAgfTtcbiAgICB9KTtcbn1cbiIsIjxhY2wtcmVzb3VyY2UtZGF0YS1ncmlkXG4gIFtkYXRhXT1cInByb2plY3RzXCJcbiAgW2ZpZWxkc109XCJmaWVsZHNcIlxuICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgW3BvcHVwTGl0ZV09XCJwb3B1cExpdGVcIlxuICAoc2VsZWN0SXRlbSk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgW3R5cGVdPVwidHlwZVwiXG4gIFtzZWxlY3RlZFVpZF09XCJzZWxlY3RlZFByb2plY3Q/Ll9fb3JpZ2luLm1ldGFkYXRhLnVpZFwiXG4gIFtsb2FkaW5nXT1cImZvcmNlTG9hZGluZyB8fCAoIXByb2plY3RzLmxlbmd0aCAmJiBsb2FkaW5nKVwiXG4gIChyZWxvYWQpPVwicmVsb2FkKClcIlxuPjwvYWNsLXJlc291cmNlLWRhdGEtZ3JpZD5cbiJdfQ==
|