@alauda-fe/dynamic-plugin-shared 0.0.1-alpha.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/README.md +7 -0
- package/array-form-table/base-string-map-form.component.d.ts +22 -0
- package/array-form-table/form/component.d.ts +106 -0
- package/array-form-table/form/index.d.ts +2 -0
- package/array-form-table/index.d.ts +10 -0
- package/array-form-table/key-value-form/component.d.ts +38 -0
- package/array-form-table/key-value-table/component.d.ts +9 -0
- package/array-form-table/string-array-form/component.d.ts +41 -0
- package/assets/images/abnormal.svg +1 -0
- package/assets/images/dark/disconnected.svg +1 -0
- package/assets/images/dark/license-abnormal.svg +1 -0
- package/assets/images/dark/network-abnormal.svg +1 -0
- package/assets/images/dark/no-data.svg +1 -0
- package/assets/images/dark/no-message.svg +1 -0
- package/assets/images/dark/no-permission.svg +1 -0
- package/assets/images/dark/no_realtime_alarm.svg +1 -0
- package/assets/images/dark/not-deployed.svg +1 -0
- package/assets/images/dark/not-found.svg +1 -0
- package/assets/images/dark/not-supported.svg +1 -0
- package/assets/images/dark/system-abnormal.svg +1 -0
- package/assets/images/light/disconnected.svg +1 -0
- package/assets/images/light/license-abnormal.svg +1 -0
- package/assets/images/light/network-abnormal.svg +1 -0
- package/assets/images/light/no-data.svg +1 -0
- package/assets/images/light/no-message.svg +1 -0
- package/assets/images/light/no-permission.svg +1 -0
- package/assets/images/light/no_realtime_alarm.svg +1 -0
- package/assets/images/light/not-deployed.svg +1 -0
- package/assets/images/light/not-found.svg +1 -0
- package/assets/images/light/not-supported.svg +1 -0
- package/assets/images/light/system-abnormal.svg +1 -0
- package/assets/images/no-data.png +0 -0
- package/async-data/async-data-loader.d.ts +31 -0
- package/async-data/error-page/component.d.ts +30 -0
- package/async-data/index.d.ts +13 -0
- package/async-data/page-state/component.d.ts +21 -0
- package/async-data/types.d.ts +29 -0
- package/code-editor/code-display-dialog/component.d.ts +17 -0
- package/code-editor/code-editor-configs.d.ts +19 -0
- package/code-editor/index.d.ts +10 -0
- package/code-editor/k8s-yaml-display-dialog/component.d.ts +16 -0
- package/code-editor/resource-yaml-display/component.d.ts +21 -0
- package/components/card-section/card-section.component.d.ts +9 -0
- package/components/confirm-delete/confirm-delete.component.d.ts +57 -0
- package/components/confirm-delete/utils.d.ts +25 -0
- package/components/current-time/component.d.ts +14 -0
- package/components/custom-columns-setting/component.d.ts +16 -0
- package/components/custom-columns-setting/index.d.ts +1 -0
- package/components/date-range-picker/component.d.ts +55 -0
- package/components/date-range-picker/index.d.ts +3 -0
- package/components/date-range-picker/type.d.ts +36 -0
- package/components/date-range-picker/util.d.ts +11 -0
- package/components/disabled-container/disabled-container.component.d.ts +21 -0
- package/components/disabled-container/index.d.ts +7 -0
- package/components/field-set/column/component.d.ts +10 -0
- package/components/field-set/group/component.d.ts +6 -0
- package/components/field-set/index.d.ts +7 -0
- package/components/field-set/item/component.d.ts +13 -0
- package/components/foldable-block/component.d.ts +17 -0
- package/components/foldable-item-in-table/component.d.ts +21 -0
- package/components/help-document/component.d.ts +29 -0
- package/components/help-document/directive.d.ts +20 -0
- package/components/help-document/index.d.ts +8 -0
- package/components/help-document/service.d.ts +20 -0
- package/components/index.d.ts +31 -0
- package/components/loading-mask/loading-mask.component.d.ts +13 -0
- package/components/page-guard/component/component.d.ts +40 -0
- package/components/page-guard/component/helper-directives.d.ts +17 -0
- package/components/page-guard/component/page-guard.type.d.ts +86 -0
- package/components/page-guard/index.d.ts +12 -0
- package/components/password-input/component.d.ts +39 -0
- package/components/pod-status/component.d.ts +25 -0
- package/components/pod-status/index.d.ts +3 -0
- package/components/pod-status/status.d.ts +4 -0
- package/components/pod-status/typings.d.ts +16 -0
- package/components/relative-time/component.d.ts +15 -0
- package/components/resource-label/component.d.ts +25 -0
- package/components/resource-multi-select/component.d.ts +41 -0
- package/components/resource-multi-select/util.d.ts +10 -0
- package/components/search-panel/component.d.ts +16 -0
- package/components/search-panel/helper.directive.d.ts +5 -0
- package/components/search-panel/search-item/component.d.ts +7 -0
- package/components/select-prefix-label/directive.d.ts +17 -0
- package/components/status-icon/status-icon.component.d.ts +16 -0
- package/components/tags-label/component.d.ts +56 -0
- package/components/terminating-tag/component.d.ts +7 -0
- package/components/text-ellipsis/component.d.ts +9 -0
- package/components/text-tooltip/directive.d.ts +21 -0
- package/components/text-with-url/component.d.ts +12 -0
- package/components/upload-file/component.d.ts +32 -0
- package/components/zero-state/zero-state.component.d.ts +16 -0
- package/constants/common.d.ts +64 -0
- package/constants/index.d.ts +6 -0
- package/constants/k8s.d.ts +12 -0
- package/constants/patterns.d.ts +124 -0
- package/constants/resource-definitions.d.ts +414 -0
- package/constants/status-icons.d.ts +34 -0
- package/constants/timezones.d.ts +6 -0
- package/directives/aui-code-editor.directive.d.ts +13 -0
- package/directives/click-outside.directive.d.ts +12 -0
- package/directives/declare.directive.d.ts +8 -0
- package/directives/disabled.directive.d.ts +28 -0
- package/directives/effect-directive/coerce-number.directive.d.ts +8 -0
- package/directives/effect-directive/e2e-attribute-binding.directive.d.ts +10 -0
- package/directives/effect-directive/event.directive.d.ts +47 -0
- package/directives/effect-directive/index.d.ts +12 -0
- package/directives/effect-directive/min-max.directive.d.ts +30 -0
- package/directives/effect-directive/trim.directive.d.ts +7 -0
- package/directives/effect-directive/validators.directive.d.ts +12 -0
- package/directives/feature-gate.directive.d.ts +31 -0
- package/directives/index.d.ts +12 -0
- package/directives/last-form-item.directive.d.ts +8 -0
- package/directives/readonly-field.directive.d.ts +39 -0
- package/directives/resize.directive.d.ts +17 -0
- package/directives/scroll-border-observer.directive.d.ts +23 -0
- package/directives/scroll-to-first-invalid.directive.d.ts +24 -0
- package/directives/value-trace.directive.d.ts +27 -0
- package/esm2022/alauda-fe-dynamic-plugin-shared.mjs +5 -0
- package/esm2022/array-form-table/base-string-map-form.component.mjs +92 -0
- package/esm2022/array-form-table/form/component.mjs +266 -0
- package/esm2022/array-form-table/form/index.mjs +12 -0
- package/esm2022/array-form-table/index.mjs +11 -0
- package/esm2022/array-form-table/key-value-form/component.mjs +135 -0
- package/esm2022/array-form-table/key-value-table/component.mjs +24 -0
- package/esm2022/array-form-table/string-array-form/component.mjs +168 -0
- package/esm2022/async-data/async-data-loader.mjs +63 -0
- package/esm2022/async-data/error-page/component.mjs +54 -0
- package/esm2022/async-data/index.mjs +18 -0
- package/esm2022/async-data/page-state/component.mjs +62 -0
- package/esm2022/async-data/types.mjs +6 -0
- package/esm2022/code-editor/code-display-dialog/component.mjs +35 -0
- package/esm2022/code-editor/code-editor-configs.mjs +66 -0
- package/esm2022/code-editor/index.mjs +11 -0
- package/esm2022/code-editor/k8s-yaml-display-dialog/component.mjs +26 -0
- package/esm2022/code-editor/resource-yaml-display/component.mjs +67 -0
- package/esm2022/components/card-section/card-section.component.mjs +24 -0
- package/esm2022/components/confirm-delete/confirm-delete.component.mjs +192 -0
- package/esm2022/components/confirm-delete/utils.mjs +8 -0
- package/esm2022/components/current-time/component.mjs +39 -0
- package/esm2022/components/custom-columns-setting/component.mjs +75 -0
- package/esm2022/components/custom-columns-setting/index.mjs +2 -0
- package/esm2022/components/date-range-picker/component.mjs +215 -0
- package/esm2022/components/date-range-picker/index.mjs +4 -0
- package/esm2022/components/date-range-picker/type.mjs +2 -0
- package/esm2022/components/date-range-picker/util.mjs +57 -0
- package/esm2022/components/disabled-container/disabled-container.component.mjs +81 -0
- package/esm2022/components/disabled-container/index.mjs +8 -0
- package/esm2022/components/field-set/column/component.mjs +25 -0
- package/esm2022/components/field-set/group/component.mjs +16 -0
- package/esm2022/components/field-set/index.mjs +14 -0
- package/esm2022/components/field-set/item/component.mjs +41 -0
- package/esm2022/components/foldable-block/component.mjs +60 -0
- package/esm2022/components/foldable-item-in-table/component.mjs +56 -0
- package/esm2022/components/help-document/component.mjs +69 -0
- package/esm2022/components/help-document/directive.mjs +70 -0
- package/esm2022/components/help-document/index.mjs +9 -0
- package/esm2022/components/help-document/service.mjs +43 -0
- package/esm2022/components/index.mjs +32 -0
- package/esm2022/components/loading-mask/loading-mask.component.mjs +35 -0
- package/esm2022/components/page-guard/component/component.mjs +101 -0
- package/esm2022/components/page-guard/component/helper-directives.mjs +51 -0
- package/esm2022/components/page-guard/component/page-guard.type.mjs +82 -0
- package/esm2022/components/page-guard/index.mjs +19 -0
- package/esm2022/components/password-input/component.mjs +143 -0
- package/esm2022/components/pod-status/component.mjs +49 -0
- package/esm2022/components/pod-status/index.mjs +4 -0
- package/esm2022/components/pod-status/status.mjs +84 -0
- package/esm2022/components/pod-status/typings.mjs +19 -0
- package/esm2022/components/relative-time/component.mjs +58 -0
- package/esm2022/components/resource-label/component.mjs +100 -0
- package/esm2022/components/resource-multi-select/component.mjs +152 -0
- package/esm2022/components/resource-multi-select/util.mjs +24 -0
- package/esm2022/components/search-panel/component.mjs +51 -0
- package/esm2022/components/search-panel/helper.directive.mjs +14 -0
- package/esm2022/components/search-panel/search-item/component.mjs +15 -0
- package/esm2022/components/select-prefix-label/directive.mjs +89 -0
- package/esm2022/components/status-icon/status-icon.component.mjs +56 -0
- package/esm2022/components/tags-label/component.mjs +224 -0
- package/esm2022/components/terminating-tag/component.mjs +16 -0
- package/esm2022/components/text-ellipsis/component.mjs +28 -0
- package/esm2022/components/text-tooltip/directive.mjs +71 -0
- package/esm2022/components/text-with-url/component.mjs +40 -0
- package/esm2022/components/upload-file/component.mjs +95 -0
- package/esm2022/components/zero-state/zero-state.component.mjs +51 -0
- package/esm2022/constants/common.mjs +86 -0
- package/esm2022/constants/index.mjs +7 -0
- package/esm2022/constants/k8s.mjs +13 -0
- package/esm2022/constants/patterns.mjs +142 -0
- package/esm2022/constants/resource-definitions.mjs +424 -0
- package/esm2022/constants/status-icons.mjs +65 -0
- package/esm2022/constants/timezones.mjs +234 -0
- package/esm2022/directives/aui-code-editor.directive.mjs +30 -0
- package/esm2022/directives/click-outside.directive.mjs +49 -0
- package/esm2022/directives/declare.directive.mjs +27 -0
- package/esm2022/directives/disabled.directive.mjs +76 -0
- package/esm2022/directives/effect-directive/coerce-number.directive.mjs +54 -0
- package/esm2022/directives/effect-directive/e2e-attribute-binding.directive.mjs +57 -0
- package/esm2022/directives/effect-directive/event.directive.mjs +129 -0
- package/esm2022/directives/effect-directive/index.mjs +21 -0
- package/esm2022/directives/effect-directive/min-max.directive.mjs +107 -0
- package/esm2022/directives/effect-directive/trim.directive.mjs +40 -0
- package/esm2022/directives/effect-directive/validators.directive.mjs +43 -0
- package/esm2022/directives/feature-gate.directive.mjs +90 -0
- package/esm2022/directives/index.mjs +13 -0
- package/esm2022/directives/last-form-item.directive.mjs +18 -0
- package/esm2022/directives/readonly-field.directive.mjs +145 -0
- package/esm2022/directives/resize.directive.mjs +39 -0
- package/esm2022/directives/scroll-border-observer.directive.mjs +77 -0
- package/esm2022/directives/scroll-to-first-invalid.directive.mjs +126 -0
- package/esm2022/directives/value-trace.directive.mjs +61 -0
- package/esm2022/form/base-form-container.mjs +126 -0
- package/esm2022/form/base-nested-form-control.mjs +190 -0
- package/esm2022/form/errors-mapper/base-errors-mapper.mjs +41 -0
- package/esm2022/form/errors-mapper/default-errors-mapper.service.mjs +65 -0
- package/esm2022/form/errors-mapper/errors-mapper-component/component.mjs +53 -0
- package/esm2022/form/errors-mapper/errors-mapper.directive.mjs +109 -0
- package/esm2022/form/errors-mapper/index.mjs +10 -0
- package/esm2022/form/errors-mapper/types.mjs +2 -0
- package/esm2022/form/index.mjs +6 -0
- package/esm2022/form/utils.mjs +61 -0
- package/esm2022/form/validators/async-function-validator.directive.mjs +49 -0
- package/esm2022/form/validators/dns1123-subdomain.mjs +42 -0
- package/esm2022/form/validators/function-validator.directive.mjs +49 -0
- package/esm2022/form/validators/index.mjs +10 -0
- package/esm2022/form/validators/maxlength-minlength-validator.directive.mjs +71 -0
- package/esm2022/form/validators/not-be-validator.directive.mjs +56 -0
- package/esm2022/form/validators/one-of-validator.directive.mjs +57 -0
- package/esm2022/form/validators/resource-limit.mjs +79 -0
- package/esm2022/form/validators/strong-password/index.mjs +4 -0
- package/esm2022/form/validators/strong-password/strong-password-tooltip/component.mjs +15 -0
- package/esm2022/form/validators/strong-password/strong-password-validator.directive.mjs +171 -0
- package/esm2022/form/validators/strong-password/strong-password-validator.module.mjs +36 -0
- package/esm2022/form/validators/utils.mjs +155 -0
- package/esm2022/index.mjs +15 -0
- package/esm2022/k8s-resource-list/footer/component.mjs +156 -0
- package/esm2022/k8s-resource-list/index.mjs +18 -0
- package/esm2022/k8s-resource-list/k8s-resource-list.mjs +224 -0
- package/esm2022/k8s-resource-list/k8s-resource-paged-list.mjs +174 -0
- package/esm2022/k8s-resource-list/types.mjs +11 -0
- package/esm2022/k8s-resource-list/utils.mjs +84 -0
- package/esm2022/k8s-shared/constants.mjs +53 -0
- package/esm2022/k8s-shared/index.mjs +12 -0
- package/esm2022/k8s-shared/k8s-resource-translate-key.pipe.mjs +31 -0
- package/esm2022/k8s-shared/k8s-shared-util.service.mjs +152 -0
- package/esm2022/k8s-shared/resource-mark/component.mjs +54 -0
- package/esm2022/k8s-shared/resource-mark/util.mjs +137 -0
- package/esm2022/k8s-shared/update-description-dialog/component.mjs +66 -0
- package/esm2022/k8s-shared/update-display-name-dialog/component.mjs +59 -0
- package/esm2022/k8s-shared/update-key-value-dialog/component.mjs +76 -0
- package/esm2022/page-deactivate/deactivate.directive.mjs +50 -0
- package/esm2022/page-deactivate/deactivate.guard.mjs +41 -0
- package/esm2022/page-deactivate/deactivate.service.mjs +78 -0
- package/esm2022/page-deactivate/index.mjs +4 -0
- package/esm2022/pipes/calc.pipe.mjs +21 -0
- package/esm2022/pipes/cron-human-readable.pipe.mjs +30 -0
- package/esm2022/pipes/crontab-next.pipe.mjs +67 -0
- package/esm2022/pipes/duration.pipe.mjs +51 -0
- package/esm2022/pipes/field-not-available.pipe.mjs +25 -0
- package/esm2022/pipes/img-header.pipe.mjs +18 -0
- package/esm2022/pipes/img-theme.pipe.mjs +38 -0
- package/esm2022/pipes/index.mjs +19 -0
- package/esm2022/pipes/keyvalue.pipe.mjs +20 -0
- package/esm2022/pipes/marked.pipe.mjs +18 -0
- package/esm2022/pipes/minimum-format.pipe.mjs +25 -0
- package/esm2022/pipes/page-env.pipe.mjs +69 -0
- package/esm2022/pipes/parse-json-translate.pipe.mjs +28 -0
- package/esm2022/pipes/parse-json.pipe.mjs +22 -0
- package/esm2022/pipes/pure.pipe.mjs +26 -0
- package/esm2022/pipes/safe.pipe.mjs +49 -0
- package/esm2022/pipes/sanitize.pipe.mjs +31 -0
- package/esm2022/pipes/time.pipe.mjs +113 -0
- package/esm2022/pipes/timezone-display.pipe.mjs +21 -0
- package/esm2022/services/form-row-duplicate/form-row-duplicate.service.mjs +280 -0
- package/esm2022/services/index.mjs +4 -0
- package/esm2022/services/on-resize.service.mjs +52 -0
- package/esm2022/services/yaml-util.service.mjs +99 -0
- package/esm2022/types/common.mjs +6 -0
- package/esm2022/types/helpers.mjs +12 -0
- package/esm2022/types/index.mjs +9 -0
- package/esm2022/types/k8s/core.mjs +2 -0
- package/esm2022/types/k8s/crd.mjs +57 -0
- package/esm2022/types/k8s/index.mjs +4 -0
- package/esm2022/types/k8s/raw.mjs +77 -0
- package/esm2022/types/schema.mjs +2 -0
- package/esm2022/utils/browser.mjs +21 -0
- package/esm2022/utils/cache-store.mjs +83 -0
- package/esm2022/utils/color-helpers.mjs +6 -0
- package/esm2022/utils/common.mjs +315 -0
- package/esm2022/utils/cron-util.mjs +44 -0
- package/esm2022/utils/decorators.mjs +137 -0
- package/esm2022/utils/disabled-state.mjs +47 -0
- package/esm2022/utils/format-number.mjs +227 -0
- package/esm2022/utils/index.mjs +24 -0
- package/esm2022/utils/local-storage-constants.mjs +2 -0
- package/esm2022/utils/node.mjs +18 -0
- package/esm2022/utils/observable.mjs +32 -0
- package/esm2022/utils/operators.mjs +38 -0
- package/esm2022/utils/request-pool.mjs +37 -0
- package/esm2022/utils/resources.mjs +66 -0
- package/esm2022/utils/router.mjs +20 -0
- package/esm2022/utils/sort-fn.mjs +7 -0
- package/esm2022/utils/tree.mjs +79 -0
- package/esm2022/utils/unit.mjs +191 -0
- package/esm2022/utils/version.mjs +76 -0
- package/esm2022/utils/with-load-state.mjs +21 -0
- package/esm2022/utils/workload.mjs +183 -0
- package/esm2022/utils/workspace.mjs +59 -0
- package/esm2022/utils/yaml.mjs +54 -0
- package/fesm2022/alauda-fe-dynamic-plugin-shared.mjs +11151 -0
- package/fesm2022/alauda-fe-dynamic-plugin-shared.mjs.map +1 -0
- package/form/base-form-container.d.ts +41 -0
- package/form/base-nested-form-control.d.ts +58 -0
- package/form/errors-mapper/base-errors-mapper.d.ts +13 -0
- package/form/errors-mapper/default-errors-mapper.service.d.ts +10 -0
- package/form/errors-mapper/errors-mapper-component/component.d.ts +19 -0
- package/form/errors-mapper/errors-mapper.directive.d.ts +39 -0
- package/form/errors-mapper/index.d.ts +6 -0
- package/form/errors-mapper/types.d.ts +16 -0
- package/form/index.d.ts +5 -0
- package/form/utils.d.ts +40 -0
- package/form/validators/async-function-validator.directive.d.ts +11 -0
- package/form/validators/dns1123-subdomain.d.ts +28 -0
- package/form/validators/function-validator.directive.d.ts +11 -0
- package/form/validators/index.d.ts +9 -0
- package/form/validators/maxlength-minlength-validator.directive.d.ts +20 -0
- package/form/validators/not-be-validator.directive.d.ts +12 -0
- package/form/validators/one-of-validator.directive.d.ts +12 -0
- package/form/validators/resource-limit.d.ts +17 -0
- package/form/validators/strong-password/index.d.ts +3 -0
- package/form/validators/strong-password/strong-password-tooltip/component.d.ts +6 -0
- package/form/validators/strong-password/strong-password-validator.directive.d.ts +34 -0
- package/form/validators/strong-password/strong-password-validator.module.d.ts +12 -0
- package/form/validators/utils.d.ts +67 -0
- package/index.d.ts +14 -0
- package/k8s-resource-list/footer/component.d.ts +42 -0
- package/k8s-resource-list/index.d.ts +13 -0
- package/k8s-resource-list/k8s-resource-list.d.ts +42 -0
- package/k8s-resource-list/k8s-resource-paged-list.d.ts +61 -0
- package/k8s-resource-list/types.d.ts +70 -0
- package/k8s-resource-list/utils.d.ts +19 -0
- package/k8s-shared/constants.d.ts +7 -0
- package/k8s-shared/index.d.ts +11 -0
- package/k8s-shared/k8s-resource-translate-key.pipe.d.ts +9 -0
- package/k8s-shared/k8s-shared-util.service.d.ts +48 -0
- package/k8s-shared/resource-mark/component.d.ts +16 -0
- package/k8s-shared/resource-mark/util.d.ts +2 -0
- package/k8s-shared/update-description-dialog/component.d.ts +33 -0
- package/k8s-shared/update-display-name-dialog/component.d.ts +27 -0
- package/k8s-shared/update-key-value-dialog/component.d.ts +38 -0
- package/package.json +56 -0
- package/page-deactivate/deactivate.directive.d.ts +18 -0
- package/page-deactivate/deactivate.guard.d.ts +13 -0
- package/page-deactivate/deactivate.service.d.ts +28 -0
- package/page-deactivate/index.d.ts +3 -0
- package/pipes/calc.pipe.d.ts +11 -0
- package/pipes/cron-human-readable.pipe.d.ts +9 -0
- package/pipes/crontab-next.pipe.d.ts +18 -0
- package/pipes/duration.pipe.d.ts +10 -0
- package/pipes/field-not-available.pipe.d.ts +13 -0
- package/pipes/img-header.pipe.d.ts +7 -0
- package/pipes/img-theme.pipe.d.ts +13 -0
- package/pipes/index.d.ts +18 -0
- package/pipes/keyvalue.pipe.d.ts +9 -0
- package/pipes/marked.pipe.d.ts +8 -0
- package/pipes/minimum-format.pipe.d.ts +10 -0
- package/pipes/page-env.pipe.d.ts +34 -0
- package/pipes/parse-json-translate.pipe.d.ts +8 -0
- package/pipes/parse-json.pipe.d.ts +7 -0
- package/pipes/pure.pipe.d.ts +17 -0
- package/pipes/safe.pipe.d.ts +10 -0
- package/pipes/sanitize.pipe.d.ts +10 -0
- package/pipes/time.pipe.d.ts +40 -0
- package/pipes/timezone-display.pipe.d.ts +10 -0
- package/services/form-row-duplicate/form-row-duplicate.service.d.ts +45 -0
- package/services/index.d.ts +3 -0
- package/services/on-resize.service.d.ts +20 -0
- package/services/yaml-util.service.d.ts +20 -0
- package/styles/ansi-color.scss +131 -0
- package/styles/global.scss +904 -0
- package/styles/lib.scss +1 -0
- package/styles/markdown-body.scss +107 -0
- package/styles/mixins.scss +710 -0
- package/styles/var.scss +30 -0
- package/types/common.d.ts +42 -0
- package/types/helpers.d.ts +35 -0
- package/types/index.d.ts +8 -0
- package/types/k8s/core.d.ts +100 -0
- package/types/k8s/crd.d.ts +497 -0
- package/types/k8s/index.d.ts +3 -0
- package/types/k8s/raw.d.ts +860 -0
- package/types/schema.d.ts +14 -0
- package/utils/browser.d.ts +4 -0
- package/utils/cache-store.d.ts +35 -0
- package/utils/color-helpers.d.ts +4 -0
- package/utils/common.d.ts +64 -0
- package/utils/cron-util.d.ts +8 -0
- package/utils/decorators.d.ts +14 -0
- package/utils/disabled-state.d.ts +20 -0
- package/utils/format-number.d.ts +11 -0
- package/utils/index.d.ts +23 -0
- package/utils/local-storage-constants.d.ts +1 -0
- package/utils/node.d.ts +8 -0
- package/utils/observable.d.ts +5 -0
- package/utils/operators.d.ts +22 -0
- package/utils/request-pool.d.ts +12 -0
- package/utils/resources.d.ts +19 -0
- package/utils/router.d.ts +3 -0
- package/utils/sort-fn.d.ts +2 -0
- package/utils/tree.d.ts +16 -0
- package/utils/unit.d.ts +21 -0
- package/utils/version.d.ts +39 -0
- package/utils/with-load-state.d.ts +11 -0
- package/utils/workload.d.ts +66 -0
- package/utils/workspace.d.ts +28 -0
- package/utils/yaml.d.ts +11 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, } from '@angular/core';
|
|
2
|
+
import { SearchItemLabelDirective } from '../helper.directive';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class SearchItemComponent {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SearchItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: SearchItemComponent, isStandalone: true, selector: "acl-search-item", queries: [{ propertyName: "itemLabel", first: true, predicate: SearchItemLabelDirective, descendants: true }], ngImport: i0, template: "<div class=\"search-panel__item\">\n <ng-content select=\"label[aclSearchItemLabel]\"></ng-content>\n <ng-content></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SearchItemComponent, decorators: [{
|
|
9
|
+
type: Component,
|
|
10
|
+
args: [{ selector: 'acl-search-item', changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, standalone: true, template: "<div class=\"search-panel__item\">\n <ng-content select=\"label[aclSearchItemLabel]\"></ng-content>\n <ng-content></ng-content>\n</div>\n" }]
|
|
11
|
+
}], propDecorators: { itemLabel: [{
|
|
12
|
+
type: ContentChild,
|
|
13
|
+
args: [SearchItemLabelDirective, { static: false }]
|
|
14
|
+
}] } });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvc2VhcmNoLXBhbmVsL3NlYXJjaC1pdGVtL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy9jb21wb25lbnRzL3NlYXJjaC1wYW5lbC9zZWFyY2gtaXRlbS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFTL0QsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1CO2tHQUFuQixtQkFBbUIsa0hBQ2hCLHdCQUF3QixnRENoQnhDLDZJQUlBOzsyRkRXYSxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUVWLHVCQUF1QixDQUFDLE1BQU0sdUJBQzFCLEtBQUssY0FDZCxJQUFJOzhCQUloQixTQUFTO3NCQURSLFlBQVk7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2VhcmNoSXRlbUxhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi4vaGVscGVyLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1zZWFyY2gtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hJdGVtQ29tcG9uZW50IHtcbiAgQENvbnRlbnRDaGlsZChTZWFyY2hJdGVtTGFiZWxEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBpdGVtTGFiZWw6IFNlYXJjaEl0ZW1MYWJlbERpcmVjdGl2ZTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJzZWFyY2gtcGFuZWxfX2l0ZW1cIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibGFiZWxbYWNsU2VhcmNoSXRlbUxhYmVsXVwiPjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { MultiSelectComponent } from '@alauda/ui';
|
|
3
|
+
import { ChangeDetectorRef, Directive, ElementRef, Input, Optional, Renderer2, ViewContainerRef, } from '@angular/core';
|
|
4
|
+
import { ValueHook } from '../../utils';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@alauda/ui";
|
|
7
|
+
export const PREFIX_LABEL_CLASS = 'acl-select-prefix__label';
|
|
8
|
+
const PREFIX_LABEL_WRAPPER_CLASS = 'acl-select-prefix__wrapper';
|
|
9
|
+
// 补全父级div的padding-left: 7px和prefixLabel的margin-right: 8px;
|
|
10
|
+
const PREFIX_LABEL_PLACEHOLDER_PADDING_LEFT_FIX = 7 + 8;
|
|
11
|
+
const AUI_SELECT_CLASS = 'aui-select';
|
|
12
|
+
const AUI_MULTI_SELECT_CLASS = 'aui-multi-select';
|
|
13
|
+
const AUI_MULTI_SELECT_SUFFIX_CLASS = 'aui-multi-select__suffix';
|
|
14
|
+
const AUI_MULTI_SELECT_PLACEHOLDER_CLASS = 'aui-multi-select__placeholder';
|
|
15
|
+
// NOTE: 提供此指令,是由于个人不支持此组件行为,不建议直接引入aui,希望作为业务上的尝试,因此提供指令以供删改
|
|
16
|
+
// 纯css无法提供本问题的完整解决方案,若有更优方案,请删除此部分代码,以及 acl-select-prefix mixin
|
|
17
|
+
export class SelectPrefixLabelDirective {
|
|
18
|
+
queryElementByClassName(className) {
|
|
19
|
+
return this.elementRef.nativeElement?.querySelector(`.${className}`);
|
|
20
|
+
}
|
|
21
|
+
createInlineLabel(value, className = PREFIX_LABEL_CLASS) {
|
|
22
|
+
const label = this.renderer.createElement('span');
|
|
23
|
+
this.renderer.addClass(label, className);
|
|
24
|
+
if (typeof value === 'string') {
|
|
25
|
+
// 此处加上 ':' 是由于 template 时无需分隔符,不希望再加入额外的class进行控制
|
|
26
|
+
label.textContent = `${value} :`;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const view = this.viewContainerRef.createEmbeddedView(value);
|
|
30
|
+
const templateElement = view.rootNodes[0];
|
|
31
|
+
label.append(templateElement);
|
|
32
|
+
}
|
|
33
|
+
return label;
|
|
34
|
+
}
|
|
35
|
+
insertNode(container, value, refChild) {
|
|
36
|
+
let inlineLabel = this.queryElementByClassName(PREFIX_LABEL_CLASS);
|
|
37
|
+
if (inlineLabel) {
|
|
38
|
+
inlineLabel.remove();
|
|
39
|
+
}
|
|
40
|
+
inlineLabel = this.createInlineLabel(value);
|
|
41
|
+
this.renderer.insertBefore(container, inlineLabel, refChild, false);
|
|
42
|
+
const placeholder = this.queryElementByClassName(AUI_MULTI_SELECT_PLACEHOLDER_CLASS);
|
|
43
|
+
if (placeholder) {
|
|
44
|
+
placeholder.style.paddingLeft = `${inlineLabel.offsetWidth + PREFIX_LABEL_PLACEHOLDER_PADDING_LEFT_FIX}px`;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
constructor(elementRef, renderer, viewContainerRef, multiSelectComponent) {
|
|
48
|
+
this.elementRef = elementRef;
|
|
49
|
+
this.renderer = renderer;
|
|
50
|
+
this.viewContainerRef = viewContainerRef;
|
|
51
|
+
this.multiSelectComponent = multiSelectComponent;
|
|
52
|
+
}
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SelectPrefixLabelDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i1.MultiSelectComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
54
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: SelectPrefixLabelDirective, isStandalone: true, selector: "aui-select[aclPrefixLabel],aui-multi-select[aclPrefixLabel]", inputs: { aclPrefixLabel: "aclPrefixLabel" }, ngImport: i0 }); }
|
|
55
|
+
}
|
|
56
|
+
__decorate([
|
|
57
|
+
ValueHook(function (value) {
|
|
58
|
+
requestAnimationFrame(() => {
|
|
59
|
+
if (!value) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
// 适配 multi select
|
|
63
|
+
if (this.multiSelectComponent) {
|
|
64
|
+
const container = this.queryElementByClassName(AUI_MULTI_SELECT_CLASS);
|
|
65
|
+
const childRef = this.queryElementByClassName(AUI_MULTI_SELECT_SUFFIX_CLASS);
|
|
66
|
+
this.insertNode(container, value, childRef);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const container = this.queryElementByClassName(AUI_SELECT_CLASS);
|
|
70
|
+
this.renderer.addClass(container, PREFIX_LABEL_WRAPPER_CLASS);
|
|
71
|
+
this.insertNode(container, value);
|
|
72
|
+
}
|
|
73
|
+
this.viewContainerRef.injector.get(ChangeDetectorRef).markForCheck();
|
|
74
|
+
});
|
|
75
|
+
}),
|
|
76
|
+
__metadata("design:type", Object)
|
|
77
|
+
], SelectPrefixLabelDirective.prototype, "aclPrefixLabel", void 0);
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SelectPrefixLabelDirective, decorators: [{
|
|
79
|
+
type: Directive,
|
|
80
|
+
args: [{
|
|
81
|
+
selector: 'aui-select[aclPrefixLabel],aui-multi-select[aclPrefixLabel]',
|
|
82
|
+
standalone: true,
|
|
83
|
+
}]
|
|
84
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i1.MultiSelectComponent, decorators: [{
|
|
85
|
+
type: Optional
|
|
86
|
+
}] }], propDecorators: { aclPrefixLabel: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}] } });
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvc2VsZWN0LXByZWZpeC1sYWJlbC9kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBRVQsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUV4QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCxNQUFNLDBCQUEwQixHQUFHLDRCQUE0QixDQUFDO0FBQ2hFLDJEQUEyRDtBQUMzRCxNQUFNLHlDQUF5QyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEQsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUM7QUFDdEMsTUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQztBQUNsRCxNQUFNLDZCQUE2QixHQUFHLDBCQUEwQixDQUFDO0FBQ2pFLE1BQU0sa0NBQWtDLEdBQUcsK0JBQStCLENBQUM7QUFFM0UsNkRBQTZEO0FBQzdELGdFQUFnRTtBQUtoRSxNQUFNLE9BQU8sMEJBQTBCO0lBMkJyQyx1QkFBdUIsQ0FBQyxTQUFpQjtRQUN2QyxPQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBNkIsRUFBRSxhQUFhLENBQ2xFLElBQUksU0FBUyxFQUFFLENBQ2hCLENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCLENBQ2YsS0FBZ0MsRUFDaEMsU0FBUyxHQUFHLGtCQUFrQjtRQUU5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFB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MkZBekIvQiwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZEQUE2RDtvQkFDdkUsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFpRkksUUFBUTt5Q0F2RFgsY0FBYztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTXVsdGlTZWxlY3RDb21wb25lbnQgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFZhbHVlSG9vayB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IFBSRUZJWF9MQUJFTF9DTEFTUyA9ICdhY2wtc2VsZWN0LXByZWZpeF9fbGFiZWwnO1xuY29uc3QgUFJFRklYX0xBQkVMX1dSQVBQRVJfQ0xBU1MgPSAnYWNsLXNlbGVjdC1wcmVmaXhfX3dyYXBwZXInO1xuLy8g6KGl5YWo54i257qnZGl255qEcGFkZGluZy1sZWZ0OiA3cHjlkoxwcmVmaXhMYWJlbOeahG1hcmdpbi1yaWdodDogOHB4O1xuY29uc3QgUFJFRklYX0xBQkVMX1BMQUNFSE9MREVSX1BBRERJTkdfTEVGVF9GSVggPSA3ICsgODtcbmNvbnN0IEFVSV9TRUxFQ1RfQ0xBU1MgPSAnYXVpLXNlbGVjdCc7XG5jb25zdCBBVUlfTVVMVElfU0VMRUNUX0NMQVNTID0gJ2F1aS1tdWx0aS1zZWxlY3QnO1xuY29uc3QgQVVJX01VTFRJX1NFTEVDVF9TVUZGSVhfQ0xBU1MgPSAnYXVpLW11bHRpLXNlbGVjdF9fc3VmZml4JztcbmNvbnN0IEFVSV9NVUxUSV9TRUxFQ1RfUExBQ0VIT0xERVJfQ0xBU1MgPSAnYXVpLW11bHRpLXNlbGVjdF9fcGxhY2Vob2xkZXInO1xuXG4vLyBOT1RFOiDmj5DkvpvmraTmjIfku6TvvIzmmK/nlLHkuo7kuKrkurrkuI3mlK/mjIHmraTnu4Tku7booYzkuLrvvIzkuI3lu7rorq7nm7TmjqXlvJXlhaVhdWnvvIzluIzmnJvkvZzkuLrkuJrliqHkuIrnmoTlsJ3or5XvvIzlm6DmraTmj5DkvpvmjIfku6Tku6XkvpvliKDmlLlcbi8vIOe6r2Nzc+aXoOazleaPkOS+m+acrOmXrumimOeahOWujOaVtOino+WGs+aWueahiCzoi6XmnInmm7TkvJjmlrnmoYjvvIzor7fliKDpmaTmraTpg6jliIbku6PnoIHvvIzku6Xlj4ogYWNsLXNlbGVjdC1wcmVmaXggbWl4aW5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2F1aS1zZWxlY3RbYWNsUHJlZml4TGFiZWxdLGF1aS1tdWx0aS1zZWxlY3RbYWNsUHJlZml4TGFiZWxdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0UHJlZml4TGFiZWxEaXJlY3RpdmUge1xuICBAVmFsdWVIb29rKGZ1bmN0aW9uIChcbiAgICB0aGlzOiBTZWxlY3RQcmVmaXhMYWJlbERpcmVjdGl2ZSxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PixcbiAgKSB7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8g6YCC6YWNIG11bHRpIHNlbGVjdFxuICAgICAgaWYgKHRoaXMubXVsdGlTZWxlY3RDb21wb25lbnQpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5xdWVyeUVsZW1lbnRCeUNsYXNzTmFtZShBVUlfTVVMVElfU0VMRUNUX0NMQVNTKTtcbiAgICAgICAgY29uc3QgY2hpbGRSZWYgPSB0aGlzLnF1ZXJ5RWxlbWVudEJ5Q2xhc3NOYW1lKFxuICAgICAgICAgIEFVSV9NVUxUSV9TRUxFQ1RfU1VGRklYX0NMQVNTLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmluc2VydE5vZGUoY29udGFpbmVyLCB2YWx1ZSwgY2hpbGRSZWYpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5xdWVyeUVsZW1lbnRCeUNsYXNzTmFtZShBVUlfU0VMRUNUX0NMQVNTKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhjb250YWluZXIsIFBSRUZJWF9MQUJFTF9XUkFQUEVSX0NMQVNTKTtcbiAgICAgICAgdGhpcy5pbnNlcnROb2RlKGNvbnRhaW5lciwgdmFsdWUpO1xuICAgICAgfVxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZikubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH0pXG4gIEBJbnB1dCgpXG4gIGFjbFByZWZpeExhYmVsOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHF1ZXJ5RWxlbWVudEJ5Q2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCk/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBgLiR7Y2xhc3NOYW1lfWAsXG4gICAgKTtcbiAgfVxuXG4gIGNyZWF0ZUlubGluZUxhYmVsKFxuICAgIHZhbHVlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIGNsYXNzTmFtZSA9IFBSRUZJWF9MQUJFTF9DTEFTUyxcbiAgKSB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSBhcyBIVE1MU3BhbkVsZW1lbnQ7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhsYWJlbCwgY2xhc3NOYW1lKTtcblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyDmraTlpITliqDkuIogJzonIOaYr+eUseS6jiB0ZW1wbGF0ZSDml7bml6DpnIDliIbpmpTnrKbvvIzkuI3luIzmnJvlho3liqDlhaXpop3lpJbnmoRjbGFzc+i/m+ihjOaOp+WItlxuICAgICAgbGFiZWwudGV4dENvbnRlbnQgPSBgJHt2YWx1ZX0gOmA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHZhbHVlKTtcbiAgICAgIGNvbnN0IHRlbXBsYXRlRWxlbWVudCA9IHZpZXcucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgbGFiZWwuYXBwZW5kKHRlbXBsYXRlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVsO1xuICB9XG5cbiAgaW5zZXJ0Tm9kZShcbiAgICBjb250YWluZXI6IEVsZW1lbnQsXG4gICAgdmFsdWU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcmVmQ2hpbGQ/OiBFbGVtZW50LFxuICApIHtcbiAgICBsZXQgaW5saW5lTGFiZWwgPSB0aGlzLnF1ZXJ5RWxlbWVudEJ5Q2xhc3NOYW1lKFxuICAgICAgUFJFRklYX0xBQkVMX0NMQVNTLFxuICAgICkgYXMgSFRNTFNwYW5FbGVtZW50O1xuICAgIGlmIChpbmxpbmVMYWJlbCkge1xuICAgICAgaW5saW5lTGFiZWwucmVtb3ZlKCk7XG4gICAgfVxuXG4gICAgaW5saW5lTGFiZWwgPSB0aGlzLmNyZWF0ZUlubGluZUxhYmVsKHZhbHVlKTtcbiAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShjb250YWluZXIsIGlubGluZUxhYmVsLCByZWZDaGlsZCwgZmFsc2UpO1xuICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gdGhpcy5xdWVyeUVsZW1lbnRCeUNsYXNzTmFtZShcbiAgICAgIEFVSV9NVUxUSV9TRUxFQ1RfUExBQ0VIT0xERVJfQ0xBU1MsXG4gICAgKSBhcyBIVE1MU3BhbkVsZW1lbnQ7XG4gICAgaWYgKHBsYWNlaG9sZGVyKSB7XG4gICAgICBwbGFjZWhvbGRlci5zdHlsZS5wYWRkaW5nTGVmdCA9IGAke1xuICAgICAgICBpbmxpbmVMYWJlbC5vZmZzZXRXaWR0aCArIFBSRUZJWF9MQUJFTF9QTEFDRUhPTERFUl9QQURESU5HX0xFRlRfRklYXG4gICAgICB9cHhgO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIEBPcHRpb25hbCgpXG4gICAgcHJpdmF0ZSByZWFkb25seSBtdWx0aVNlbGVjdENvbXBvbmVudDogTXVsdGlTZWxlY3RDb21wb25lbnQsXG4gICkge31cbn1cbiJdfQ==
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { IconModule } from '@alauda/ui';
|
|
2
|
+
import { TranslatePipe } from '@alauda-fe/dynamic-plugin-sdk';
|
|
3
|
+
import { NgClass, NgIf } from '@angular/common';
|
|
4
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
5
|
+
import { DefaultStatusColorMapper, DefaultStatusIconMapper, GenericStatusColor, GenericStatusIcon, } from '../../constants/status-icons';
|
|
6
|
+
import { PurePipe } from '../../pipes';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@alauda/ui";
|
|
9
|
+
export class StatusIconComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.withText = true;
|
|
12
|
+
this.iconSize = '16px';
|
|
13
|
+
}
|
|
14
|
+
isPending(status, iconMapper) {
|
|
15
|
+
const icon = iconMapper
|
|
16
|
+
? { ...DefaultStatusIconMapper, ...iconMapper }[status]
|
|
17
|
+
: DefaultStatusIconMapper[status];
|
|
18
|
+
return icon === GenericStatusIcon.Pending;
|
|
19
|
+
}
|
|
20
|
+
getStatusColor(status, colorMapper) {
|
|
21
|
+
return colorMapper
|
|
22
|
+
? { ...DefaultStatusColorMapper, ...colorMapper }[status]
|
|
23
|
+
: DefaultStatusColorMapper[status] || GenericStatusColor.Empty;
|
|
24
|
+
}
|
|
25
|
+
getStatusIcon(status, iconMapper) {
|
|
26
|
+
return iconMapper
|
|
27
|
+
? { ...DefaultStatusIconMapper, ...iconMapper }[status]
|
|
28
|
+
: DefaultStatusIconMapper[status] || GenericStatusIcon.Question;
|
|
29
|
+
}
|
|
30
|
+
backgroundShape(icon) {
|
|
31
|
+
return icon?.endsWith('_circle_s')
|
|
32
|
+
? 'circle'
|
|
33
|
+
: icon?.endsWith('_triangle_s')
|
|
34
|
+
? 'triangle'
|
|
35
|
+
: null;
|
|
36
|
+
}
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: StatusIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: StatusIconComponent, isStandalone: true, selector: "acl-status-icon", inputs: { status: "status", withText: "withText", colorMapper: "colorMapper", iconMapper: "iconMapper", disabled: "disabled", iconSize: "iconSize" }, ngImport: i0, template: "<ng-container *ngIf=\"status\">\n <aui-icon\n *ngIf=\"status | pure: getStatusIcon : iconMapper as icon\"\n [ngClass]=\"{ pending: status | pure: isPending : iconMapper }\"\n [style.fontSize]=\"iconSize\"\n [color]=\"status | pure: getStatusColor : colorMapper\"\n [icon]=\"icon\"\n [size]=\"iconSize\"\n [background]=\"icon | pure: backgroundShape\"\n >\n </aui-icon>\n <span\n *ngIf=\"withText\"\n [title]=\"status.toLowerCase() | translate\"\n [ngClass]=\"{ disabled: disabled }\"\n >{{ status.toLowerCase() | translate }}</span\n >\n <ng-content></ng-content>\n</ng-container>\n", styles: ["@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin-with-pause{0%{transform:rotate(0)}20%{transform:rotate(180deg)}to{transform:rotate(180deg)}}:host{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-main-text))}:host aui-icon{margin-right:4px}:host aui-icon.pending{display:inline-block;color:rgb(var(--aui-color-primary));animation:spin 2s infinite linear}:host span.disabled{color:rgb(var(--aui-color-disabled-text))}\n"], dependencies: [{ kind: "ngmodule", type: IconModule }, { kind: "component", type: i1.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: PurePipe, name: "pure" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39
|
+
}
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: StatusIconComponent, decorators: [{
|
|
41
|
+
type: Component,
|
|
42
|
+
args: [{ selector: 'acl-status-icon', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconModule, NgClass, PurePipe, NgIf, TranslatePipe], template: "<ng-container *ngIf=\"status\">\n <aui-icon\n *ngIf=\"status | pure: getStatusIcon : iconMapper as icon\"\n [ngClass]=\"{ pending: status | pure: isPending : iconMapper }\"\n [style.fontSize]=\"iconSize\"\n [color]=\"status | pure: getStatusColor : colorMapper\"\n [icon]=\"icon\"\n [size]=\"iconSize\"\n [background]=\"icon | pure: backgroundShape\"\n >\n </aui-icon>\n <span\n *ngIf=\"withText\"\n [title]=\"status.toLowerCase() | translate\"\n [ngClass]=\"{ disabled: disabled }\"\n >{{ status.toLowerCase() | translate }}</span\n >\n <ng-content></ng-content>\n</ng-container>\n", styles: ["@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin-with-pause{0%{transform:rotate(0)}20%{transform:rotate(180deg)}to{transform:rotate(180deg)}}:host{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-main-text))}:host aui-icon{margin-right:4px}:host aui-icon.pending{display:inline-block;color:rgb(var(--aui-color-primary));animation:spin 2s infinite linear}:host span.disabled{color:rgb(var(--aui-color-disabled-text))}\n"] }]
|
|
43
|
+
}], propDecorators: { status: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], withText: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], colorMapper: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], iconMapper: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], disabled: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], iconSize: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}] } });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvc3RhdHVzLWljb24vc3RhdHVzLWljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvc3RhdHVzLWljb24vc3RhdHVzLWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBV3ZDLE1BQU0sT0FBTyxtQkFBbUI7SUFSaEM7UUFZVyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBS2hCLGFBQVEsR0FBRyxNQUFNLENBQUM7S0E0QjVCO0lBMUJDLFNBQVMsQ0FBQyxNQUFjLEVBQUUsVUFBcUI7UUFDN0MsTUFBTSxJQUFJLEdBQUcsVUFBVTtZQUNyQixDQUFDLENBQUMsRUFBRSxHQUFHLHVCQUF1QixFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ3ZELENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxPQUFPLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7SUFDNUMsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFjLEVBQUUsV0FBc0I7UUFDbkQsT0FBTyxXQUFXO1lBQ2hCLENBQUMsQ0FBQyxFQUFFLEdBQUcsd0JBQXdCLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDekQsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQztJQUNuRSxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWMsRUFBRSxVQUFxQjtRQUNqRCxPQUFPLFVBQVU7WUFDZixDQUFDLENBQUMsRUFBRSxHQUFHLHVCQUF1QixFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ3ZELENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7SUFDcEUsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFhO1FBQzNCLE9BQU8sSUFBSSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDaEMsQ0FBQyxDQUFDLFFBQVE7WUFDVixDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxVQUFVO2dCQUNaLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDYixDQUFDOzhHQXBDVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixpT0N0QmhDLCttQkFtQkEsdWxCRENZLFVBQVUsMk1BQUUsT0FBTywrRUFBRSxRQUFRLDZDQUFFLElBQUksd0ZBQUUsYUFBYTs7MkZBRWpELG1CQUFtQjtrQkFSL0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDOzhCQUk3RCxNQUFNO3NCQURMLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BhbGF1ZGEtZmUvZHluYW1pYy1wbHVnaW4tc2RrJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgRGVmYXVsdFN0YXR1c0NvbG9yTWFwcGVyLFxuICBEZWZhdWx0U3RhdHVzSWNvbk1hcHBlcixcbiAgR2VuZXJpY1N0YXR1c0NvbG9yLFxuICBHZW5lcmljU3RhdHVzSWNvbixcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3N0YXR1cy1pY29ucyc7XG5pbXBvcnQgeyBQdXJlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzJztcbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXN0YXR1cy1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0YXR1cy1pY29uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RhdHVzLWljb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJY29uTW9kdWxlLCBOZ0NsYXNzLCBQdXJlUGlwZSwgTmdJZiwgVHJhbnNsYXRlUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFN0YXR1c0ljb25Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBzdGF0dXM6IHN0cmluZztcblxuICBASW5wdXQoKSB3aXRoVGV4dCA9IHRydWU7XG5cbiAgQElucHV0KCkgY29sb3JNYXBwZXI6IFN0cmluZ01hcDtcbiAgQElucHV0KCkgaWNvbk1hcHBlcjogU3RyaW5nTWFwO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgaWNvblNpemUgPSAnMTZweCc7XG5cbiAgaXNQZW5kaW5nKHN0YXR1czogc3RyaW5nLCBpY29uTWFwcGVyOiBTdHJpbmdNYXApIHtcbiAgICBjb25zdCBpY29uID0gaWNvbk1hcHBlclxuICAgICAgPyB7IC4uLkRlZmF1bHRTdGF0dXNJY29uTWFwcGVyLCAuLi5pY29uTWFwcGVyIH1bc3RhdHVzXVxuICAgICAgOiBEZWZhdWx0U3RhdHVzSWNvbk1hcHBlcltzdGF0dXNdO1xuICAgIHJldHVybiBpY29uID09PSBHZW5lcmljU3RhdHVzSWNvbi5QZW5kaW5nO1xuICB9XG5cbiAgZ2V0U3RhdHVzQ29sb3Ioc3RhdHVzOiBzdHJpbmcsIGNvbG9yTWFwcGVyOiBTdHJpbmdNYXApIHtcbiAgICByZXR1cm4gY29sb3JNYXBwZXJcbiAgICAgID8geyAuLi5EZWZhdWx0U3RhdHVzQ29sb3JNYXBwZXIsIC4uLmNvbG9yTWFwcGVyIH1bc3RhdHVzXVxuICAgICAgOiBEZWZhdWx0U3RhdHVzQ29sb3JNYXBwZXJbc3RhdHVzXSB8fCBHZW5lcmljU3RhdHVzQ29sb3IuRW1wdHk7XG4gIH1cblxuICBnZXRTdGF0dXNJY29uKHN0YXR1czogc3RyaW5nLCBpY29uTWFwcGVyOiBTdHJpbmdNYXApIHtcbiAgICByZXR1cm4gaWNvbk1hcHBlclxuICAgICAgPyB7IC4uLkRlZmF1bHRTdGF0dXNJY29uTWFwcGVyLCAuLi5pY29uTWFwcGVyIH1bc3RhdHVzXVxuICAgICAgOiBEZWZhdWx0U3RhdHVzSWNvbk1hcHBlcltzdGF0dXNdIHx8IEdlbmVyaWNTdGF0dXNJY29uLlF1ZXN0aW9uO1xuICB9XG5cbiAgYmFja2dyb3VuZFNoYXBlKGljb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaWNvbj8uZW5kc1dpdGgoJ19jaXJjbGVfcycpXG4gICAgICA/ICdjaXJjbGUnXG4gICAgICA6IGljb24/LmVuZHNXaXRoKCdfdHJpYW5nbGVfcycpXG4gICAgICAgID8gJ3RyaWFuZ2xlJ1xuICAgICAgICA6IG51bGw7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0dXNcIj5cbiAgPGF1aS1pY29uXG4gICAgKm5nSWY9XCJzdGF0dXMgfCBwdXJlOiBnZXRTdGF0dXNJY29uIDogaWNvbk1hcHBlciBhcyBpY29uXCJcbiAgICBbbmdDbGFzc109XCJ7IHBlbmRpbmc6IHN0YXR1cyB8IHB1cmU6IGlzUGVuZGluZyA6IGljb25NYXBwZXIgfVwiXG4gICAgW3N0eWxlLmZvbnRTaXplXT1cImljb25TaXplXCJcbiAgICBbY29sb3JdPVwic3RhdHVzIHwgcHVyZTogZ2V0U3RhdHVzQ29sb3IgOiBjb2xvck1hcHBlclwiXG4gICAgW2ljb25dPVwiaWNvblwiXG4gICAgW3NpemVdPVwiaWNvblNpemVcIlxuICAgIFtiYWNrZ3JvdW5kXT1cImljb24gfCBwdXJlOiBiYWNrZ3JvdW5kU2hhcGVcIlxuICA+XG4gIDwvYXVpLWljb24+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJ3aXRoVGV4dFwiXG4gICAgW3RpdGxlXT1cInN0YXR1cy50b0xvd2VyQ2FzZSgpIHwgdHJhbnNsYXRlXCJcbiAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCB9XCJcbiAgICA+e3sgc3RhdHVzLnRvTG93ZXJDYXNlKCkgfCB0cmFuc2xhdGUgfX08L3NwYW5cbiAgPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { IconModule, TagModule, TagType, TooltipModule } from '@alauda/ui';
|
|
3
|
+
import { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
4
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, Injector, Input, NgZone, Output, TemplateRef, ViewChild, } from '@angular/core';
|
|
5
|
+
import { debounce } from 'lodash-es';
|
|
6
|
+
import { Observable, ReplaySubject, animationFrameScheduler, combineLatest, merge, auditTime, delay, distinctUntilChanged, filter, map, takeUntil, tap, } from 'rxjs';
|
|
7
|
+
import { PurePipe } from '../../pipes';
|
|
8
|
+
import { ListenResizeDirective } from '../../services';
|
|
9
|
+
import { isEqual, ObservableInput, publishRef } from '../../utils';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@alauda/ui";
|
|
12
|
+
const ELLIPSE_TAG_WIDTH = 28;
|
|
13
|
+
const ELLIPSE_TAG_MARGIN = 6;
|
|
14
|
+
const MIN_TAG_WIDTH = 40;
|
|
15
|
+
const RESIZE_SCHEDULER = animationFrameScheduler;
|
|
16
|
+
const stringify = (value) => typeof value === 'string' ? value : JSON.stringify(value);
|
|
17
|
+
/**
|
|
18
|
+
* User could provide two types of tags to use this component.
|
|
19
|
+
* Tags requires a map of tags, while tagList requires a list of key/value pairs.
|
|
20
|
+
*/
|
|
21
|
+
export const tagRenderDefault = (tag) => Array.isArray(tag)
|
|
22
|
+
? tag
|
|
23
|
+
.filter(t => !!t)
|
|
24
|
+
.map(stringify)
|
|
25
|
+
.join(': ')
|
|
26
|
+
: stringify(tag);
|
|
27
|
+
export class TagsLabelComponent extends ListenResizeDirective {
|
|
28
|
+
constructor(injector, cdr, ngZone) {
|
|
29
|
+
super(injector);
|
|
30
|
+
this.cdr = cdr;
|
|
31
|
+
this.ngZone = ngZone;
|
|
32
|
+
this.border = true;
|
|
33
|
+
this.tagType = TagType.Info;
|
|
34
|
+
this.tagRound = true;
|
|
35
|
+
this.tagClick = new EventEmitter();
|
|
36
|
+
this.tooltipPosition = 'top end';
|
|
37
|
+
this.showMore = true;
|
|
38
|
+
this.isWrapped = false;
|
|
39
|
+
// 由于无法确切知道是否传递controlSize,暂采用指定的方式
|
|
40
|
+
this.isControlSize = false;
|
|
41
|
+
this.tagRender = tagRenderDefault;
|
|
42
|
+
this.tagsContainerSize$$ = new ReplaySubject(1);
|
|
43
|
+
// 在没有传入受控尺寸时,根据自身计算
|
|
44
|
+
this.selfContainerSize$ = this.tagsContainerSize$$
|
|
45
|
+
.asObservable()
|
|
46
|
+
.pipe(takeUntil(this.controlSize$.pipe(filter(i => i != null))));
|
|
47
|
+
this.containerSize$ = merge(this.controlSize$, this.selfContainerSize$).pipe(filter(i => i != null));
|
|
48
|
+
this.tagsValue$ = this.tags$.pipe(map(value => (Array.isArray(value) ? value : Object.entries(value ?? {}))), tap(val => {
|
|
49
|
+
this.tagsTotalCount = val.length;
|
|
50
|
+
}), distinctUntilChanged(isEqual), publishRef());
|
|
51
|
+
// 仅当内容变更时,需要计算位置信息,统计所有子元素右边距相对父容器左边延距离
|
|
52
|
+
this.tagsPositionInfo$$ = new ReplaySubject(1);
|
|
53
|
+
this.ELLIPSE_TAG_WIDTH = ELLIPSE_TAG_WIDTH;
|
|
54
|
+
// 根据tag size和容器size计算要显示的个数
|
|
55
|
+
this.renderCount$ = combineLatest([
|
|
56
|
+
this.tagsPositionInfo$$,
|
|
57
|
+
this.containerSize$,
|
|
58
|
+
]).pipe(map(([tagsPosInfo, containerSize]) => {
|
|
59
|
+
this.shouldRenderEllipse = false;
|
|
60
|
+
if (!tagsPosInfo) {
|
|
61
|
+
return this.tagsTotalCount;
|
|
62
|
+
}
|
|
63
|
+
const candidateInd = tagsPosInfo.findIndex(right => right > containerSize);
|
|
64
|
+
if (candidateInd === -1) {
|
|
65
|
+
// 无溢出
|
|
66
|
+
return tagsPosInfo.length;
|
|
67
|
+
}
|
|
68
|
+
// 设计上至少显示一个,不可能出现低于最小宽度的情况
|
|
69
|
+
if (candidateInd === 0) {
|
|
70
|
+
this.shouldRenderEllipse = tagsPosInfo.length > 1;
|
|
71
|
+
return 1;
|
|
72
|
+
}
|
|
73
|
+
// 计算后 tags 中不展示的 tag 只有一个,判断最后一个 tag 是否不完整显示
|
|
74
|
+
if (tagsPosInfo.length - candidateInd === 1 &&
|
|
75
|
+
containerSize - tagsPosInfo[candidateInd - 1] >=
|
|
76
|
+
MIN_TAG_WIDTH + ELLIPSE_TAG_MARGIN) {
|
|
77
|
+
// 1 剩余一个,不完整显示
|
|
78
|
+
return tagsPosInfo.length;
|
|
79
|
+
}
|
|
80
|
+
this.shouldRenderEllipse = true;
|
|
81
|
+
const displaySize = containerSize - ELLIPSE_TAG_WIDTH - ELLIPSE_TAG_MARGIN;
|
|
82
|
+
const lastTagSize = candidateInd - 1 === 0
|
|
83
|
+
? tagsPosInfo[candidateInd - 1]
|
|
84
|
+
: tagsPosInfo[candidateInd - 1] - tagsPosInfo[candidateInd - 2];
|
|
85
|
+
// ELLIPSE_TAG 是否占用最后一个显示 tag 的位置
|
|
86
|
+
if (displaySize >=
|
|
87
|
+
tagsPosInfo[candidateInd - 1] -
|
|
88
|
+
lastTagSize +
|
|
89
|
+
MIN_TAG_WIDTH +
|
|
90
|
+
ELLIPSE_TAG_MARGIN) {
|
|
91
|
+
// 2 显示最后一个 tag
|
|
92
|
+
return candidateInd;
|
|
93
|
+
}
|
|
94
|
+
// 3 最后一个 tag 不展示,展示 ELLIPSE_TAG
|
|
95
|
+
return candidateInd - 1;
|
|
96
|
+
}), auditTime(0, RESIZE_SCHEDULER));
|
|
97
|
+
this._isChangeDetectionPending = false;
|
|
98
|
+
// onResize 函数防抖,防止组件在表格内可能出现的高度抖动问题
|
|
99
|
+
// e.g. 行尾 action 列使用 ellipsis_v_s 产生行高变化,此时组件读取 offsetWidth 导致 reflow 产生了高度抖动
|
|
100
|
+
this.debounceResize = debounce(() => {
|
|
101
|
+
if (!this.isControlSize) {
|
|
102
|
+
// 当尺寸变更时应该让隐藏恢复原状,使其填充到最大宽度,然后再重新判定宽度
|
|
103
|
+
this.shouldRenderCount = undefined;
|
|
104
|
+
this.shouldRenderEllipse = false;
|
|
105
|
+
this.cdr.detectChanges();
|
|
106
|
+
this.tagsContainerSize$$.next(this.tagsContainer.nativeElement.offsetWidth);
|
|
107
|
+
}
|
|
108
|
+
}, 0);
|
|
109
|
+
}
|
|
110
|
+
markNeedRender() {
|
|
111
|
+
// Use a Promise to batch together calls to `_doChangeDetection`. This way if we set a bunch of
|
|
112
|
+
// properties sequentially we only have to run `_doChangeDetection` once at the end.
|
|
113
|
+
if (!this._isChangeDetectionPending) {
|
|
114
|
+
this._isChangeDetectionPending = true;
|
|
115
|
+
this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {
|
|
116
|
+
this._doChangeDetection();
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/** Run change detection. */
|
|
121
|
+
_doChangeDetection() {
|
|
122
|
+
this._isChangeDetectionPending = false;
|
|
123
|
+
this.ngZone.run(() => this.cdr.markForCheck());
|
|
124
|
+
}
|
|
125
|
+
ngOnInit() {
|
|
126
|
+
this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {
|
|
127
|
+
this.renderCount$.subscribe(count => {
|
|
128
|
+
this.shouldRenderCount = count;
|
|
129
|
+
this.markNeedRender();
|
|
130
|
+
});
|
|
131
|
+
}));
|
|
132
|
+
}
|
|
133
|
+
onResize() {
|
|
134
|
+
this.debounceResize();
|
|
135
|
+
}
|
|
136
|
+
ngAfterViewInit() {
|
|
137
|
+
super.ngAfterViewInit();
|
|
138
|
+
if (!this.showMore) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {
|
|
142
|
+
this.tagsValue$
|
|
143
|
+
.pipe(
|
|
144
|
+
// 增加此delay,解决container size随着label增加动态变化的问题
|
|
145
|
+
delay(0), map(_ => {
|
|
146
|
+
if (this.isWrapped || !this.showMore) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
const containerEle = this.tagsContainerMirror
|
|
150
|
+
.nativeElement;
|
|
151
|
+
const { children: renderChildren, offsetLeft: baseOffset } = containerEle;
|
|
152
|
+
const rightEdges = [];
|
|
153
|
+
const childrenSize = renderChildren.length;
|
|
154
|
+
for (let i = 0; i < childrenSize; i++) {
|
|
155
|
+
const { offsetLeft, clientWidth } = renderChildren.item(i);
|
|
156
|
+
const currentRightEdge = offsetLeft + clientWidth - baseOffset;
|
|
157
|
+
rightEdges.push(currentRightEdge);
|
|
158
|
+
}
|
|
159
|
+
return rightEdges;
|
|
160
|
+
}))
|
|
161
|
+
.subscribe(values => {
|
|
162
|
+
this.onResize();
|
|
163
|
+
this.tagsPositionInfo$$.next(values);
|
|
164
|
+
});
|
|
165
|
+
}));
|
|
166
|
+
}
|
|
167
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TagsLabelComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: TagsLabelComponent, isStandalone: true, selector: "acl-tags-label", inputs: { tagClickable: "tagClickable", border: "border", tagType: "tagType", tagRound: "tagRound", tags: "tags", tooltipPosition: "tooltipPosition", showMore: "showMore", isWrapped: "isWrapped", controlSize: "controlSize", isControlSize: "isControlSize", tagRender: "tagRender" }, outputs: { tagClick: "tagClick" }, queries: [{ propertyName: "tagTemplate", first: true, predicate: ["tagTemplate"], descendants: true }], viewQueries: [{ propertyName: "tagsContainerMirror", first: true, predicate: ["tagsContainerMirror"], descendants: true }, { propertyName: "tagsContainer", first: true, predicate: ["tagsContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n #tagsContainer\n class=\"tags-strut\"\n>\n <div\n *ngIf=\"(tagsValue$ | async)?.length; else noData\"\n class=\"tags-container\"\n [class.tags-container--multiline]=\"isWrapped\"\n >\n <ng-container *ngFor=\"let tag of tagsValue$ | async; let index = index\">\n <!-- \u4FEE\u6539 tag \u65F6\u5FC5\u987B\u540C\u65F6\u8C03\u6574 mirror \u5185\u7684 tag \u6837\u5F0F\uFF0C\u4FDD\u8BC1\u6E32\u67D3\u4E00\u81F4 -->\n <aui-tag\n [type]=\"tagType\"\n size=\"mini\"\n [border]=\"border\"\n [title]=\"tag | pure: tagRender\"\n [round]=\"tagRound\"\n [hidden]=\"index >= shouldRenderCount\"\n [class.last-display-tag]=\"shouldRenderCount - index === 1\"\n [class.tag-clickable]=\"tagClickable\"\n (click)=\"tagClick.next(tag)\"\n >\n <!-- {{ tag | pure: renderTag }} -->\n <ng-container\n *ngTemplateOutlet=\"\n tagTemplate || defaultTagTemplate;\n context: { $implicit: tag, index }\n \"\n ></ng-container>\n </aui-tag>\n </ng-container>\n </div>\n\n <aui-tag\n class=\"tooltip-toggle\"\n *ngIf=\"\n !isWrapped &&\n showMore &&\n (tagsValue$ | async)?.length &&\n shouldRenderEllipse\n \"\n [round]=\"tagRound\"\n [auiTooltip]=\"labels\"\n auiTooltipType=\"info\"\n auiTooltipClass=\"tag-tooltip\"\n [auiTooltipPosition]=\"tooltipPosition\"\n [type]=\"tagType\"\n size=\"mini\"\n >\n <aui-icon icon=\"ellipsis_s\"></aui-icon>\n </aui-tag>\n</div>\n\n<!-- \u901A\u8FC7\u521B\u5EFA\u955C\u50CF\u5143\u7D20\uFF0C\u6765\u8BA1\u7B97\u6240\u6709\u5B50tag\u5BBD\u5EA6\uFF0C\u8FD9\u6837\u65E2\u80FD\u4FDD\u8BC1\u5B50tag\u6A2A\u5411\u6392\u5217\uFF0C\u540C\u65F6\u7531\u4E8E\u662Fabsolute\u5143\u7D20\uFF0C\u5BF9\u5176\u4EE5\u53CA\u5176\u5B50\u5143\u7D20\u8FDB\u884CDOM\u67E5\u8BE2\uFF0C\u4EE3\u4EF7\u8F83\u4F4E -->\n<div\n class=\"tags-container--mirror\"\n #tagsContainerMirror\n>\n <ng-container *ngFor=\"let tag of tagsValue$ | async\">\n <aui-tag\n [type]=\"tagType\"\n size=\"mini\"\n [border]=\"true\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tagTemplate || defaultTagTemplate;\n context: { $implicit: tag }\n \"\n ></ng-container>\n </aui-tag>\n </ng-container>\n</div>\n\n<ng-template #noData>\n <div>-</div>\n</ng-template>\n\n<ng-template #labels>\n <div class=\"tooltip-container\">\n <div\n *ngFor=\"let tag of tagsValue$ | async; let index = index\"\n class=\"tooltip-tag\"\n >\n <aui-tag\n [type]=\"tagType\"\n size=\"mini\"\n [title]=\"tag | pure: tagRender\"\n [class.tag-clickable]=\"tagClickable\"\n [border]=\"border\"\n [round]=\"tagRound\"\n (click)=\"tagClick.next(tag)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tagTemplate || defaultTagTemplate;\n context: { $implicit: tag, index }\n \"\n ></ng-container>\n </aui-tag>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #defaultTagTemplate\n let-tag\n>\n {{ tag | pure: tagRender }}\n</ng-template>\n\n<ng-content></ng-content>\n", styles: [":host{display:inline-flex;align-items:center;position:relative;max-width:100%;min-width:0;width:auto;line-height:1.4285714286}.tags-container,.tags-container--mirror{border-radius:var(--aui-border-radius-m);min-width:0;display:flex;overflow:hidden;flex-wrap:nowrap}.tags-container--multiline{flex-wrap:wrap;margin-bottom:-4px}.tags-container--multiline aui-tag{margin-bottom:4px;margin-right:4px}.tags-container--multiline aui-tag ::ng-deep .aui-tag{margin-left:0}.tags-strut{width:100%;display:flex;overflow:hidden}.tags-container--mirror{position:absolute;z-index:-99;opacity:0;width:100%;flex-wrap:nowrap;overflow:hidden}.tooltip-container{display:flex;max-width:600px;flex-wrap:wrap;margin:-14px -6px -8px 0}.tooltip-tag{margin:6px 6px 0 0}.tooltip-toggle{margin-left:6px}.tooltip-toggle ::ng-deep .aui-tag__content,.tooltip-toggle ::ng-deep aui-icon{display:inline-flex;align-items:center}.tooltip-toggle:hover ::ng-deep .aui-tag{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}::ng-deep .aui-tooltip.tag-tooltip{max-height:calc(100vh - 8px);overflow-y:auto}.tag-clickable{cursor:pointer}.tags-container aui-tag{flex:0 0 auto}.tags-container aui-tag ::ng-deep .aui-tag{width:100%}.tags-container:not(.tags-container--multiline) aui-tag+aui-tag ::ng-deep .aui-tag{width:calc(100% - 6px)}.tags-container:not(.tags-container--multiline) .last-display-tag{overflow:hidden;flex:1 1 0%}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i1.TagComponent, selector: "aui-tag", inputs: ["type", "size", "closeable", "border", "solid", "invalid", "round", "color", "allowClick"], outputs: ["close"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i1.TooltipDirective, selector: "[auiTooltip]", inputs: ["auiTooltip", "auiTooltipContext", "auiTooltipClass", "auiTooltipType", "auiTooltipPosition", "auiTooltipTrigger", "auiTooltipDisabled", "auiTooltipHideOnClick", "auiTooltipAnimType"], outputs: ["auiTooltipVisibleChange"], exportAs: ["auiTooltip"] }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: i1.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "pipe", type: PurePipe, name: "pure" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
169
|
+
}
|
|
170
|
+
__decorate([
|
|
171
|
+
ObservableInput(),
|
|
172
|
+
__metadata("design:type", Observable)
|
|
173
|
+
], TagsLabelComponent.prototype, "tags$", void 0);
|
|
174
|
+
__decorate([
|
|
175
|
+
ObservableInput(),
|
|
176
|
+
__metadata("design:type", Observable)
|
|
177
|
+
], TagsLabelComponent.prototype, "controlSize$", void 0);
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TagsLabelComponent, decorators: [{
|
|
179
|
+
type: Component,
|
|
180
|
+
args: [{ selector: 'acl-tags-label', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
181
|
+
AsyncPipe,
|
|
182
|
+
NgIf,
|
|
183
|
+
NgFor,
|
|
184
|
+
NgTemplateOutlet,
|
|
185
|
+
TagModule,
|
|
186
|
+
TooltipModule,
|
|
187
|
+
IconModule,
|
|
188
|
+
PurePipe,
|
|
189
|
+
], template: "<div\n #tagsContainer\n class=\"tags-strut\"\n>\n <div\n *ngIf=\"(tagsValue$ | async)?.length; else noData\"\n class=\"tags-container\"\n [class.tags-container--multiline]=\"isWrapped\"\n >\n <ng-container *ngFor=\"let tag of tagsValue$ | async; let index = index\">\n <!-- \u4FEE\u6539 tag \u65F6\u5FC5\u987B\u540C\u65F6\u8C03\u6574 mirror \u5185\u7684 tag \u6837\u5F0F\uFF0C\u4FDD\u8BC1\u6E32\u67D3\u4E00\u81F4 -->\n <aui-tag\n [type]=\"tagType\"\n size=\"mini\"\n [border]=\"border\"\n [title]=\"tag | pure: tagRender\"\n [round]=\"tagRound\"\n [hidden]=\"index >= shouldRenderCount\"\n [class.last-display-tag]=\"shouldRenderCount - index === 1\"\n [class.tag-clickable]=\"tagClickable\"\n (click)=\"tagClick.next(tag)\"\n >\n <!-- {{ tag | pure: renderTag }} -->\n <ng-container\n *ngTemplateOutlet=\"\n tagTemplate || defaultTagTemplate;\n context: { $implicit: tag, index }\n \"\n ></ng-container>\n </aui-tag>\n </ng-container>\n </div>\n\n <aui-tag\n class=\"tooltip-toggle\"\n *ngIf=\"\n !isWrapped &&\n showMore &&\n (tagsValue$ | async)?.length &&\n shouldRenderEllipse\n \"\n [round]=\"tagRound\"\n [auiTooltip]=\"labels\"\n auiTooltipType=\"info\"\n auiTooltipClass=\"tag-tooltip\"\n [auiTooltipPosition]=\"tooltipPosition\"\n [type]=\"tagType\"\n size=\"mini\"\n >\n <aui-icon icon=\"ellipsis_s\"></aui-icon>\n </aui-tag>\n</div>\n\n<!-- \u901A\u8FC7\u521B\u5EFA\u955C\u50CF\u5143\u7D20\uFF0C\u6765\u8BA1\u7B97\u6240\u6709\u5B50tag\u5BBD\u5EA6\uFF0C\u8FD9\u6837\u65E2\u80FD\u4FDD\u8BC1\u5B50tag\u6A2A\u5411\u6392\u5217\uFF0C\u540C\u65F6\u7531\u4E8E\u662Fabsolute\u5143\u7D20\uFF0C\u5BF9\u5176\u4EE5\u53CA\u5176\u5B50\u5143\u7D20\u8FDB\u884CDOM\u67E5\u8BE2\uFF0C\u4EE3\u4EF7\u8F83\u4F4E -->\n<div\n class=\"tags-container--mirror\"\n #tagsContainerMirror\n>\n <ng-container *ngFor=\"let tag of tagsValue$ | async\">\n <aui-tag\n [type]=\"tagType\"\n size=\"mini\"\n [border]=\"true\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tagTemplate || defaultTagTemplate;\n context: { $implicit: tag }\n \"\n ></ng-container>\n </aui-tag>\n </ng-container>\n</div>\n\n<ng-template #noData>\n <div>-</div>\n</ng-template>\n\n<ng-template #labels>\n <div class=\"tooltip-container\">\n <div\n *ngFor=\"let tag of tagsValue$ | async; let index = index\"\n class=\"tooltip-tag\"\n >\n <aui-tag\n [type]=\"tagType\"\n size=\"mini\"\n [title]=\"tag | pure: tagRender\"\n [class.tag-clickable]=\"tagClickable\"\n [border]=\"border\"\n [round]=\"tagRound\"\n (click)=\"tagClick.next(tag)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tagTemplate || defaultTagTemplate;\n context: { $implicit: tag, index }\n \"\n ></ng-container>\n </aui-tag>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #defaultTagTemplate\n let-tag\n>\n {{ tag | pure: tagRender }}\n</ng-template>\n\n<ng-content></ng-content>\n", styles: [":host{display:inline-flex;align-items:center;position:relative;max-width:100%;min-width:0;width:auto;line-height:1.4285714286}.tags-container,.tags-container--mirror{border-radius:var(--aui-border-radius-m);min-width:0;display:flex;overflow:hidden;flex-wrap:nowrap}.tags-container--multiline{flex-wrap:wrap;margin-bottom:-4px}.tags-container--multiline aui-tag{margin-bottom:4px;margin-right:4px}.tags-container--multiline aui-tag ::ng-deep .aui-tag{margin-left:0}.tags-strut{width:100%;display:flex;overflow:hidden}.tags-container--mirror{position:absolute;z-index:-99;opacity:0;width:100%;flex-wrap:nowrap;overflow:hidden}.tooltip-container{display:flex;max-width:600px;flex-wrap:wrap;margin:-14px -6px -8px 0}.tooltip-tag{margin:6px 6px 0 0}.tooltip-toggle{margin-left:6px}.tooltip-toggle ::ng-deep .aui-tag__content,.tooltip-toggle ::ng-deep aui-icon{display:inline-flex;align-items:center}.tooltip-toggle:hover ::ng-deep .aui-tag{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}::ng-deep .aui-tooltip.tag-tooltip{max-height:calc(100vh - 8px);overflow-y:auto}.tag-clickable{cursor:pointer}.tags-container aui-tag{flex:0 0 auto}.tags-container aui-tag ::ng-deep .aui-tag{width:100%}.tags-container:not(.tags-container--multiline) aui-tag+aui-tag ::ng-deep .aui-tag{width:calc(100% - 6px)}.tags-container:not(.tags-container--multiline) .last-display-tag{overflow:hidden;flex:1 1 0%}\n"] }]
|
|
190
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { tagsContainerMirror: [{
|
|
191
|
+
type: ViewChild,
|
|
192
|
+
args: ['tagsContainerMirror', { static: false }]
|
|
193
|
+
}], tagsContainer: [{
|
|
194
|
+
type: ViewChild,
|
|
195
|
+
args: ['tagsContainer', { static: true }]
|
|
196
|
+
}], tagClickable: [{
|
|
197
|
+
type: Input
|
|
198
|
+
}], border: [{
|
|
199
|
+
type: Input
|
|
200
|
+
}], tagType: [{
|
|
201
|
+
type: Input
|
|
202
|
+
}], tagRound: [{
|
|
203
|
+
type: Input
|
|
204
|
+
}], tagClick: [{
|
|
205
|
+
type: Output
|
|
206
|
+
}], tagTemplate: [{
|
|
207
|
+
type: ContentChild,
|
|
208
|
+
args: ['tagTemplate']
|
|
209
|
+
}], tags: [{
|
|
210
|
+
type: Input
|
|
211
|
+
}], tags$: [], tooltipPosition: [{
|
|
212
|
+
type: Input
|
|
213
|
+
}], showMore: [{
|
|
214
|
+
type: Input
|
|
215
|
+
}], isWrapped: [{
|
|
216
|
+
type: Input
|
|
217
|
+
}], controlSize: [{
|
|
218
|
+
type: Input
|
|
219
|
+
}], controlSize$: [], isControlSize: [{
|
|
220
|
+
type: Input
|
|
221
|
+
}], tagRender: [{
|
|
222
|
+
type: Input
|
|
223
|
+
}] } });
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvdGFncy1sYWJlbC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvY29tcG9uZW50cy90YWdzLWxhYmVsL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0UsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUdOLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUNMLFVBQVUsRUFDVixhQUFhLEVBQ2IsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFDYixLQUFLLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFh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cE1vZHVsZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0ZvciwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIFJlcGxheVN1YmplY3QsXG4gIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLFxuICBjb21iaW5lTGF0ZXN0LFxuICBtZXJnZSxcbiAgYXVkaXRUaW1lLFxuICBkZWxheSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFB1cmVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgTGlzdGVuUmVzaXplRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgaXNFcXVhbCwgT2JzZXJ2YWJsZUlucHV0LCBwdWJsaXNoUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBFTExJUFNFX1RBR19XSURUSCA9IDI4O1xuY29uc3QgRUxMSVBTRV9UQUdfTUFSR0lOID0gNjtcbmNvbnN0IE1JTl9UQUdfV0lEVEggPSA0MDtcbmNvbnN0IFJFU0laRV9TQ0hFRFVMRVIgPSBhbmltYXRpb25GcmFtZVNjaGVkdWxlcjtcblxuY29uc3Qgc3RyaW5naWZ5ID0gKHZhbHVlOiB1bmtub3duKSA9PlxuICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG5cbi8qKlxuICogVXNlciBjb3VsZCBwcm92aWRlIHR3byB0eXBlcyBvZiB0YWdzIHRvIHVzZSB0aGlzIGNvbXBvbmVudC5cbiAqIFRhZ3MgcmVxdWlyZXMgYSBtYXAgb2YgdGFncywgd2hpbGUgdGFnTGlzdCByZXF1aXJlcyBhIGxpc3Qgb2Yga2V5L3ZhbHVlIHBhaXJzLlxuICovXG5leHBvcnQgY29uc3QgdGFnUmVuZGVyRGVmYXVsdCA9IDxUPih0YWc6IFQgfCBbc3RyaW5nIHwgVCwgVF0pID0+XG4gIEFycmF5LmlzQXJyYXkodGFnKVxuICAgID8gdGFnXG4gICAgICAgIC5maWx0ZXIodCA9PiAhIXQpXG4gICAgICAgIC5tYXAoc3RyaW5naWZ5KVxuICAgICAgICAuam9pbignOiAnKVxuICAgIDogc3RyaW5naWZ5KHRhZyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC10YWdzLWxhYmVsJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0eWxlcy5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQXN5bmNQaXBlLFxuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBUYWdNb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIFB1cmVQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUYWdzTGFiZWxDb21wb25lbnQ8VCA9IHN0cmluZz5cbiAgZXh0ZW5kcyBMaXN0ZW5SZXNpemVEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdFxue1xuICBAVmlld0NoaWxkKCd0YWdzQ29udGFpbmVyTWlycm9yJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHRhZ3NDb250YWluZXJNaXJyb3I6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgndGFnc0NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHRhZ3NDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIOWcqOeItue7hOS7tuWGheWkhOeQhiBwb2ludGVyIOagt+W8j1xuICAgKi9cbiAgQElucHV0KClcbiAgdGFnQ2xpY2thYmxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIGJvcmRlciA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgdGFnVHlwZTogVGFnVHlwZSA9IFRhZ1R5cGUuSW5mbztcblxuICBASW5wdXQoKVxuICB0YWdSb3VuZCA9IHRydWU7XG5cbiAgQE91dHB1dCgpXG4gIHRhZ0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxUIHwgW3N0cmluZyB8IFQsIFRdPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoJ3RhZ1RlbXBsYXRlJylcbiAgdGFnVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cbiAgQElucHV0KClcbiAgdGFnczogUmVjb3JkPHN0cmluZywgVD4gfCBBcnJheTxUIHwgW3N0cmluZyB8IFQsIFRdPjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgdGFncyQhOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIFQ+IHwgQXJyYXk8VCB8IFtzdHJpbmcgfCBULCBUXT4+O1xuXG4gIEBJbnB1dCgpXG4gIHRvb2x0aXBQb3NpdGlvbiA9ICd0b3AgZW5kJztcblxuICBASW5wdXQoKVxuICBzaG93TW9yZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgaXNXcmFwcGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgY29udHJvbFNpemU6IG51bWJlcjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgY29udHJvbFNpemUkITogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIC8vIOeUseS6juaXoOazleehruWIh+efpemBk+aYr+WQpuS8oOmAkmNvbnRyb2xTaXpl77yM5pqC6YeH55So5oyH5a6a55qE5pa55byPXG4gIEBJbnB1dCgpXG4gIGlzQ29udHJvbFNpemUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICB0YWdSZW5kZXI6XG4gICAgfCAoKHRhZzogVCkgPT4gc3RyaW5nKVxuICAgIHwgKCh0YWc6IFtzdHJpbmcsIFRdKSA9PiBzdHJpbmcpXG4gICAgfCAoKHRhZzogW1QsIFRdKSA9PiBzdHJpbmcpXG4gICAgfCAoKHRhZzogW3N0cmluZyB8IFQsIFRdKSA9PiBzdHJpbmcpID0gdGFnUmVuZGVyRGVmYXVsdDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRhZ3NDb250YWluZXJTaXplJCQgPSBuZXcgUmVwbGF5U3ViamVjdDxudW1iZXI+KDEpO1xuICAvLyDlnKjmsqHmnInkvKDlhaXlj5fmjqflsLrlr7jml7bvvIzmoLnmja7oh6rouqvorqHnrpdcbiAgcHJpdmF0ZSByZWFkb25seSBzZWxmQ29udGFpbmVyU2l6ZSQgPSB0aGlzLnRhZ3NDb250YWluZXJTaXplJCRcbiAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb250cm9sU2l6ZSQucGlwZShmaWx0ZXIoaSA9PiBpICE9IG51bGwpKSkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyU2l6ZSQgPSBtZXJnZShcbiAgICB0aGlzLmNvbnRyb2xTaXplJCxcbiAgICB0aGlzLnNlbGZDb250YWluZXJTaXplJCxcbiAgKS5waXBlKGZpbHRlcihpID0+IGkgIT0gbnVsbCkpO1xuXG4gIHByaXZhdGUgdGFnc1RvdGFsQ291bnQ6IG51bWJlcjtcblxuICBzaG91bGRSZW5kZXJDb3VudDogbnVtYmVyO1xuICBzaG91bGRSZW5kZXJFbGxpcHNlOiBib29sZWFuO1xuXG4gIHRhZ3NWYWx1ZSQgPSB0aGlzLnRhZ3MkLnBpcGUoXG4gICAgbWFwKHZhbHVlID0+IChBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogT2JqZWN0LmVudHJpZXModmFsdWUgPz8ge30pKSksXG4gICAgdGFwKHZhbCA9PiB7XG4gICAgICB0aGlzLnRhZ3NUb3RhbENvdW50ID0gdmFsLmxlbmd0aDtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChpc0VxdWFsKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgLy8g5LuF5b2T5YaF5a655Y+Y5pu05pe277yM6ZyA6KaB6K6h566X5L2N572u5L+h5oGv77yM57uf6K6h5omA5pyJ5a2Q5YWD57Sg5Y+z6L656Led55u45a+554i25a655Zmo5bem6L655bu26Led56a7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFnc1Bvc2l0aW9uSW5mbyQkID0gbmV3IFJlcGxheVN1YmplY3Q8bnVtYmVyW10+KDEpO1xuXG4gIEVMTElQU0VfVEFHX1dJRFRIID0gRUxMSVBTRV9UQUdfV0lEVEg7XG5cbiAgLy8g5qC55o2udGFnIHNpemXlkozlrrnlmahzaXpl6K6h566X6KaB5pi+56S655qE5Liq5pWwXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyQ291bnQkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy50YWdzUG9zaXRpb25JbmZvJCQsXG4gICAgdGhpcy5jb250YWluZXJTaXplJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFt0YWdzUG9zSW5mbywgY29udGFpbmVyU2l6ZV0pID0+IHtcbiAgICAgIHRoaXMuc2hvdWxkUmVuZGVyRWxsaXBzZSA9IGZhbHNlO1xuICAgICAgaWYgKCF0YWdzUG9zSW5mbykge1xuICAgICAgICByZXR1cm4gdGhpcy50YWdzVG90YWxDb3VudDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNhbmRpZGF0ZUluZCA9IHRhZ3NQb3NJbmZvLmZpbmRJbmRleChcbiAgICAgICAgcmlnaHQgPT4gcmlnaHQgPiBjb250YWluZXJTaXplLFxuICAgICAgKTtcbiAgICAgIGlmIChjYW5kaWRhdGVJbmQgPT09IC0xKSB7XG4gICAgICAgIC8vIOaXoOa6ouWHulxuICAgICAgICByZXR1cm4gdGFnc1Bvc0luZm8ubGVuZ3RoO1xuICAgICAgfVxuICAgICAgLy8g6K6+6K6h5LiK6Iez5bCR5pi+56S65LiA5LiqLOS4jeWPr+iDveWHuueOsOS9juS6juacgOWwj+WuveW6pueahOaDheWGtVxuICAgICAgaWYgKGNhbmRpZGF0ZUluZCA9PT0gMCkge1xuICAgICAgICB0aGlzLnNob3VsZFJlbmRlckVsbGlwc2UgPSB0YWdzUG9zSW5mby5sZW5ndGggPiAxO1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cblxuICAgICAgLy8g6K6h566X5ZCOIHRhZ3Mg5Lit5LiN5bGV56S655qEIHRhZyDlj6rmnInkuIDkuKrvvIzliKTmlq3mnIDlkI7kuIDkuKogdGFnIOaYr+WQpuS4jeWujOaVtOaYvuekulxuICAgICAgaWYgKFxuICAgICAgICB0YWdzUG9zSW5mby5sZW5ndGggLSBjYW5kaWRhdGVJbmQgPT09IDEgJiZcbiAgICAgICAgY29udGFpbmVyU2l6ZSAtIHRhZ3NQb3NJbmZvW2NhbmRpZGF0ZUluZCAtIDFdID49XG4gICAgICAgICAgTUlOX1RBR19XSURUSCArIEVMTElQU0VfVEFHX01BUkdJTlxuICAgICAgKSB7XG4gICAgICAgIC8vIDEg5Ymp5L2Z5LiA5LiqLOS4jeWujOaVtOaYvuekulxuICAgICAgICByZXR1cm4gdGFnc1Bvc0luZm8ubGVuZ3RoO1xuICAgICAgfVxuICAgICAgdGhpcy5zaG91bGRSZW5kZXJFbGxpcHNlID0gdHJ1ZTtcblxuICAgICAgY29uc3QgZGlzcGxheVNpemUgPVxuICAgICAgICBjb250YWluZXJTaXplIC0gRUxMSVBTRV9UQUdfV0lEVEggLSBFTExJUFNFX1RBR19NQVJHSU47XG5cbiAgICAgIGNvbnN0IGxhc3RUYWdTaXplID1cbiAgICAgICAgY2FuZGlkYXRlSW5kIC0gMSA9PT0gMFxuICAgICAgICAgID8gdGFnc1Bvc0luZm9bY2FuZGlkYXRlSW5kIC0gMV1cbiAgICAgICAgICA6IHRhZ3NQb3NJbmZvW2NhbmRpZGF0ZUluZCAtIDFdIC0gdGFnc1Bvc0luZm9bY2FuZGlkYXRlSW5kIC0gMl07XG5cbiAgICAgIC8vIEVMTElQU0VfVEFHIOaYr+WQpuWNoOeUqOacgOWQjuS4gOS4quaYvuekuiB0YWcg55qE5L2N572uXG4gICAgICBpZiAoXG4gICAgICAgIGRpc3BsYXlTaXplID49XG4gICAgICAgIHRhZ3NQb3NJbmZvW2NhbmRpZGF0ZUluZCAtIDFdIC1cbiAgICAgICAgICBsYXN0VGFnU2l6ZSArXG4gICAgICAgICAgTUlOX1RBR19XSURUSCArXG4gICAgICAgICAgRUxMSVBTRV9UQUdfTUFSR0lOXG4gICAgICApIHtcbiAgICAgICAgLy8gMiDmmL7npLrmnIDlkI7kuIDkuKogdGFnXG4gICAgICAgIHJldHVybiBjYW5kaWRhdGVJbmQ7XG4gICAgICB9XG4gICAgICAvLyAzIOacgOWQjuS4gOS4qiB0YWcg5LiN5bGV56S677yM5bGV56S6IEVMTElQU0VfVEFHXG4gICAgICByZXR1cm4gY2FuZGlkYXRlSW5kIC0gMTtcbiAgICB9KSxcbiAgICBhdWRpdFRpbWUoMCwgUkVTSVpFX1NDSEVEVUxFUiksXG4gICk7XG5cbiAgX2lzQ2hhbmdlRGV0ZWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuXG4gIC8vIG9uUmVzaXplIOWHveaVsOmYsuaKlu+8jOmYsuatoue7hOS7tuWcqOihqOagvOWGheWPr+iDveWHuueOsOeahOmrmOW6puaKluWKqOmXrumimFxuICAvLyBlLmcuIOihjOWwviBhY3Rpb24g5YiX5L2/55SoIGVsbGlwc2lzX3ZfcyDkuqfnlJ/ooYzpq5jlj5jljJbvvIzmraTml7bnu4Tku7bor7vlj5Ygb2Zmc2V0V2lkdGgg5a+86Ie0IHJlZmxvdyDkuqfnlJ/kuobpq5jluqbmipbliqhcbiAgZGVib3VuY2VSZXNpemUgPSBkZWJvdW5jZSgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmlzQ29udHJvbFNpemUpIHtcbiAgICAgIC8vIOW9k+WwuuWvuOWPmOabtOaXtuW6lOivpeiuqemakOiXj+aBouWkjeWOn+eKtizkvb/lhbbloavlhYXliLDmnIDlpKflrr3luqYs54S25ZCO5YaN6YeN5paw5Yik5a6a5a695bqmXG4gICAgICB0aGlzLnNob3VsZFJlbmRlckNvdW50ID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zaG91bGRSZW5kZXJFbGxpcHNlID0gZmFsc2U7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB0aGlzLnRhZ3NDb250YWluZXJTaXplJCQubmV4dChcbiAgICAgICAgdGhpcy50YWdzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICApO1xuICAgIH1cbiAgfSwgMCk7XG5cbiAgcHJpdmF0ZSBtYXJrTmVlZFJlbmRlcigpIHtcbiAgICAvLyBVc2UgYSBQcm9taXNlIHRvIGJhdGNoIHRvZ2V0aGVyIGNhbGxzIHRvIGBfZG9DaGFuZ2VEZXRlY3Rpb25gLiBUaGlzIHdheSBpZiB3ZSBzZXQgYSBidW5jaCBvZlxuICAgIC8vIHByb3BlcnRpZXMgc2VxdWVudGlhbGx5IHdlIG9ubHkgaGF2ZSB0byBydW4gYF9kb0NoYW5nZURldGVjdGlvbmAgb25jZSBhdCB0aGUgZW5kLlxuICAgIGlmICghdGhpcy5faXNDaGFuZ2VEZXRlY3Rpb25QZW5kaW5nKSB7XG4gICAgICB0aGlzLl9pc0NoYW5nZURldGVjdGlvblBlbmRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZG9DaGFuZ2VEZXRlY3Rpb24oKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSdW4gY2hhbmdlIGRldGVjdGlvbi4gKi9cbiAgcHJpdmF0ZSBfZG9DaGFuZ2VEZXRlY3Rpb24oKSB7XG4gICAgdGhpcy5faXNDaGFuZ2VEZXRlY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZW5kZXJDb3VudCQuc3Vic2NyaWJlKGNvdW50ID0+IHtcbiAgICAgICAgICB0aGlzLnNob3VsZFJlbmRlckNvdW50ID0gY291bnQ7XG4gICAgICAgICAgdGhpcy5tYXJrTmVlZFJlbmRlcigpO1xuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLmRlYm91bmNlUmVzaXplKCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgaWYgKCF0aGlzLnNob3dNb3JlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy50YWdzVmFsdWUkXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAvLyDlop7liqDmraRkZWxhee+8jOino+WGs2NvbnRhaW5lciBzaXpl6ZqP552AbGFiZWzlop7liqDliqjmgIHlj5jljJbnmoTpl67pophcbiAgICAgICAgICAgIGRlbGF5KDApLFxuICAgICAgICAgICAgbWFwKF8gPT4ge1xuICAgICAgICAgICAgICBpZiAodGhpcy5pc1dyYXBwZWQgfHwgIXRoaXMuc2hvd01vcmUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJFbGUgPSB0aGlzLnRhZ3NDb250YWluZXJNaXJyb3JcbiAgICAgICAgICAgICAgICAubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgY29uc3QgeyBjaGlsZHJlbjogcmVuZGVyQ2hpbGRyZW4sIG9mZnNldExlZnQ6IGJhc2VPZmZzZXQgfSA9XG4gICAgICAgICAgICAgICAgY29udGFpbmVyRWxlO1xuICAgICAgICAgICAgICBjb25zdCByaWdodEVkZ2VzID0gW107XG4gICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuU2l6ZSA9IHJlbmRlckNoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlblNpemU7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgb2Zmc2V0TGVmdCwgY2xpZW50V2lkdGggfSA9IHJlbmRlckNoaWxkcmVuLml0ZW0oXG4gICAgICAgICAgICAgICAgICBpLFxuICAgICAgICAgICAgICAgICkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFJpZ2h0RWRnZSA9IG9mZnNldExlZnQgKyBjbGllbnRXaWR0aCAtIGJhc2VPZmZzZXQ7XG4gICAgICAgICAgICAgICAgcmlnaHRFZGdlcy5wdXNoKGN1cnJlbnRSaWdodEVkZ2UpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiByaWdodEVkZ2VzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWVzID0+IHtcbiAgICAgICAgICAgIHRoaXMub25SZXNpemUoKTtcbiAgICAgICAgICAgIHRoaXMudGFnc1Bvc2l0aW9uSW5mbyQkLm5leHQodmFsdWVzKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI3RhZ3NDb250YWluZXJcbiAgY2xhc3M9XCJ0YWdzLXN0cnV0XCJcbj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiKHRhZ3NWYWx1ZSQgfCBhc3luYyk/Lmxlbmd0aDsgZWxzZSBub0RhdGFcIlxuICAgIGNsYXNzPVwidGFncy1jb250YWluZXJcIlxuICAgIFtjbGFzcy50YWdzLWNvbnRhaW5lci0tbXVsdGlsaW5lXT1cImlzV3JhcHBlZFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWcgb2YgdGFnc1ZhbHVlJCB8IGFzeW5jOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgICAgPCEtLSDkv67mlLkgdGFnIOaXtuW/hemhu+WQjOaXtuiwg+aVtCBtaXJyb3Ig5YaF55qEIHRhZyDmoLflvI/vvIzkv53or4HmuLLmn5PkuIDoh7QgLS0+XG4gICAgICA8YXVpLXRhZ1xuICAgICAgICBbdHlwZV09XCJ0YWdUeXBlXCJcbiAgICAgICAgc2l6ZT1cIm1pbmlcIlxuICAgICAgICBbYm9yZGVyXT1cImJvcmRlclwiXG4gICAgICAgIFt0aXRsZV09XCJ0YWcgfCBwdXJlOiB0YWdSZW5kZXJcIlxuICAgICAgICBbcm91bmRdPVwidGFnUm91bmRcIlxuICAgICAgICBbaGlkZGVuXT1cImluZGV4ID49IHNob3VsZFJlbmRlckNvdW50XCJcbiAgICAgICAgW2NsYXNzLmxhc3QtZGlzcGxheS10YWddPVwic2hvdWxkUmVuZGVyQ291bnQgLSBpbmRleCA9PT0gMVwiXG4gICAgICAgIFtjbGFzcy50YWctY2xpY2thYmxlXT1cInRhZ0NsaWNrYWJsZVwiXG4gICAgICAgIChjbGljayk9XCJ0YWdDbGljay5uZXh0KHRhZylcIlxuICAgICAgPlxuICAgICAgICA8IS0tIHt7IHRhZyB8IHB1cmU6IHJlbmRlclRhZyB9fSAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICB0YWdUZW1wbGF0ZSB8fCBkZWZhdWx0VGFnVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogdGFnLCBpbmRleCB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9hdWktdGFnPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8YXVpLXRhZ1xuICAgIGNsYXNzPVwidG9vbHRpcC10b2dnbGVcIlxuICAgICpuZ0lmPVwiXG4gICAgICAhaXNXcmFwcGVkICYmXG4gICAgICBzaG93TW9yZSAmJlxuICAgICAgKHRhZ3NWYWx1ZSQgfCBhc3luYyk/Lmxlbmd0aCAmJlxuICAgICAgc2hvdWxkUmVuZGVyRWxsaXBzZVxuICAgIFwiXG4gICAgW3JvdW5kXT1cInRhZ1JvdW5kXCJcbiAgICBbYXVpVG9vbHRpcF09XCJsYWJlbHNcIlxuICAgIGF1aVRvb2x0aXBUeXBlPVwiaW5mb1wiXG4gICAgYXVpVG9vbHRpcENsYXNzPVwidGFnLXRvb2x0aXBcIlxuICAgIFthdWlUb29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCJcbiAgICBbdHlwZV09XCJ0YWdUeXBlXCJcbiAgICBzaXplPVwibWluaVwiXG4gID5cbiAgICA8YXVpLWljb24gaWNvbj1cImVsbGlwc2lzX3NcIj48L2F1aS1pY29uPlxuICA8L2F1aS10YWc+XG48L2Rpdj5cblxuPCEtLSDpgJrov4fliJvlu7rplZzlg4/lhYPntKDvvIzmnaXorqHnrpfmiYDmnInlrZB0YWflrr3luqbvvIzov5nmoLfml6Log73kv53or4HlrZB0YWfmqKrlkJHmjpLliJfvvIzlkIzml7bnlLHkuo7mmK9hYnNvbHV0ZeWFg+e0oO+8jOWvueWFtuS7peWPiuWFtuWtkOWFg+e0oOi/m+ihjERPTeafpeivou+8jOS7o+S7t+i+g+S9jiAtLT5cbjxkaXZcbiAgY2xhc3M9XCJ0YWdzLWNvbnRhaW5lci0tbWlycm9yXCJcbiAgI3RhZ3NDb250YWluZXJNaXJyb3Jcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ3NWYWx1ZSQgfCBhc3luY1wiPlxuICAgIDxhdWktdGFnXG4gICAgICBbdHlwZV09XCJ0YWdUeXBlXCJcbiAgICAgIHNpemU9XCJtaW5pXCJcbiAgICAgIFtib3JkZXJdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIHRhZ1RlbXBsYXRlIHx8IGRlZmF1bHRUYWdUZW1wbGF0ZTtcbiAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogdGFnIH1cbiAgICAgICAgXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L2F1aS10YWc+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbm9EYXRhPlxuICA8ZGl2Pi08L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGFiZWxzPlxuICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1jb250YWluZXJcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ3NWYWx1ZSQgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgY2xhc3M9XCJ0b29sdGlwLXRhZ1wiXG4gICAgPlxuICAgICAgPGF1aS10YWdcbiAgICAgICAgW3R5cGVdPVwidGFnVHlwZVwiXG4gICAgICAgIHNpemU9XCJtaW5pXCJcbiAgICAgICAgW3RpdGxlXT1cInRhZyB8IHB1cmU6IHRhZ1JlbmRlclwiXG4gICAgICAgIFtjbGFzcy50YWctY2xpY2thYmxlXT1cInRhZ0NsaWNrYWJsZVwiXG4gICAgICAgIFtib3JkZXJdPVwiYm9yZGVyXCJcbiAgICAgICAgW3JvdW5kXT1cInRhZ1JvdW5kXCJcbiAgICAgICAgKGNsaWNrKT1cInRhZ0NsaWNrLm5leHQodGFnKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgdGFnVGVtcGxhdGUgfHwgZGVmYXVsdFRhZ1RlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHRhZywgaW5kZXggfVxuICAgICAgICAgIFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYXVpLXRhZz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI2RlZmF1bHRUYWdUZW1wbGF0ZVxuICBsZXQtdGFnXG4+XG4gIHt7IHRhZyB8IHB1cmU6IHRhZ1JlbmRlciB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TagComponent } from '@alauda/ui';
|
|
2
|
+
import { TranslatePipe } from '@alauda-fe/dynamic-plugin-sdk';
|
|
3
|
+
import { NgIf } from '@angular/common';
|
|
4
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class TerminatingTagComponent {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TerminatingTagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: TerminatingTagComponent, isStandalone: true, selector: "acl-deleting-tag", inputs: { resource: "resource" }, ngImport: i0, template: "<aui-tag\n *ngIf=\"resource?.metadata?.deletionTimestamp\"\n type=\"error\"\n size=\"mini\"\n [border]=\"true\"\n>\n {{ 'deleting' | translate }}\n</aui-tag>\n", styles: ["aui-tag{display:inline-block;margin-left:8px;vertical-align:2px}\n"], dependencies: [{ kind: "component", type: TagComponent, selector: "aui-tag", inputs: ["type", "size", "closeable", "border", "solid", "invalid", "round", "color", "allowClick"], outputs: ["close"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TerminatingTagComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
args: [{ selector: 'acl-deleting-tag', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TagComponent, NgIf, TranslatePipe], template: "<aui-tag\n *ngIf=\"resource?.metadata?.deletionTimestamp\"\n type=\"error\"\n size=\"mini\"\n [border]=\"true\"\n>\n {{ 'deleting' | translate }}\n</aui-tag>\n", styles: ["aui-tag{display:inline-block;margin-left:8px;vertical-align:2px}\n"] }]
|
|
13
|
+
}], propDecorators: { resource: [{
|
|
14
|
+
type: Input
|
|
15
|
+
}] } });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvdGVybWluYXRpbmctdGFnL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy9jb21wb25lbnRzL3Rlcm1pbmF0aW5nLXRhZy90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFZMUUsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCO2tHQUF2Qix1QkFBdUIsOEdDZnBDLHNLQVFBLDRIREtZLFlBQVksNktBQUUsSUFBSSx3RkFBRSxhQUFhOzsyRkFFaEMsdUJBQXVCO2tCQVJuQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDOzhCQUk1QyxRQUFRO3NCQURQLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWdDb21wb25lbnQgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAYWxhdWRhLWZlL2R5bmFtaWMtcGx1Z2luLXNkayc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEt1YmVybmV0ZXNSZXNvdXJjZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWRlbGV0aW5nLXRhZycsXG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzdHlsZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVGFnQ29tcG9uZW50LCBOZ0lmLCBUcmFuc2xhdGVQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgVGVybWluYXRpbmdUYWdDb21wb25lbnQge1xuICBASW5wdXQoKVxuICByZXNvdXJjZTogS3ViZXJuZXRlc1Jlc291cmNlO1xufVxuIiwiPGF1aS10YWdcbiAgKm5nSWY9XCJyZXNvdXJjZT8ubWV0YWRhdGE/LmRlbGV0aW9uVGltZXN0YW1wXCJcbiAgdHlwZT1cImVycm9yXCJcbiAgc2l6ZT1cIm1pbmlcIlxuICBbYm9yZGVyXT1cInRydWVcIlxuPlxuICB7eyAnZGVsZXRpbmcnIHwgdHJhbnNsYXRlIH19XG48L2F1aS10YWc+XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation, } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class TextEllipsisComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.tailLength = 0;
|
|
7
|
+
}
|
|
8
|
+
get head() {
|
|
9
|
+
return this.text.slice(0, this.text.length - this.tailLength);
|
|
10
|
+
}
|
|
11
|
+
get tail() {
|
|
12
|
+
return this.text.slice(this.text.length - this.tailLength);
|
|
13
|
+
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TextEllipsisComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: TextEllipsisComponent, isStandalone: true, selector: "acl-text-ellipsis", inputs: { text: "text", tailLength: "tailLength" }, host: { properties: { "title": "this.text" } }, ngImport: i0, template: "<span\n *ngIf=\"head as text\"\n class=\"head\"\n >{{ text }}</span\n><span\n *ngIf=\"tail as text\"\n class=\"tail\"\n >{{ text }}</span\n>\n", styles: ["acl-text-ellipsis{display:inline-flex;max-width:100%;overflow:hidden}acl-text-ellipsis span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}acl-text-ellipsis .tail{flex-shrink:0}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TextEllipsisComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ selector: 'acl-text-ellipsis', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [NgIf], standalone: true, template: "<span\n *ngIf=\"head as text\"\n class=\"head\"\n >{{ text }}</span\n><span\n *ngIf=\"tail as text\"\n class=\"tail\"\n >{{ text }}</span\n>\n", styles: ["acl-text-ellipsis{display:inline-flex;max-width:100%;overflow:hidden}acl-text-ellipsis span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}acl-text-ellipsis .tail{flex-shrink:0}\n"] }]
|
|
20
|
+
}], propDecorators: { text: [{
|
|
21
|
+
type: HostBinding,
|
|
22
|
+
args: ['title']
|
|
23
|
+
}, {
|
|
24
|
+
type: Input
|
|
25
|
+
}], tailLength: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}] } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvdGV4dC1lbGxpcHNpcy9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvY29tcG9uZW50cy90ZXh0LWVsbGlwc2lzL2NvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUNMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQzs7QUFXdkIsTUFBTSxPQUFPLHFCQUFxQjtJQVRsQztRQWVFLGVBQVUsR0FBRyxDQUFDLENBQUM7S0FTaEI7SUFQQyxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdELENBQUM7OEdBZFUscUJBQXFCO2tHQUFyQixxQkFBcUIsaUxDbEJsQyxzSkFTQSx3UERNWSxJQUFJOzsyRkFHSCxxQkFBcUI7a0JBVGpDLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxJQUFJLENBQUMsY0FDSCxJQUFJOzhCQUtoQixJQUFJO3NCQUZILFdBQVc7dUJBQUMsT0FBTzs7c0JBQ25CLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXRleHQtZWxsaXBzaXMnLFxuICB0ZW1wbGF0ZVVybDogJ2NvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2NvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbTmdJZl0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRleHRFbGxpcHNpc0NvbXBvbmVudCB7XG4gIEBIb3N0QmluZGluZygndGl0bGUnKVxuICBASW5wdXQoKVxuICB0ZXh0OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgdGFpbExlbmd0aCA9IDA7XG5cbiAgZ2V0IGhlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudGV4dC5zbGljZSgwLCB0aGlzLnRleHQubGVuZ3RoIC0gdGhpcy50YWlsTGVuZ3RoKTtcbiAgfVxuXG4gIGdldCB0YWlsKCkge1xuICAgIHJldHVybiB0aGlzLnRleHQuc2xpY2UodGhpcy50ZXh0Lmxlbmd0aCAtIHRoaXMudGFpbExlbmd0aCk7XG4gIH1cbn1cbiIsIjxzcGFuXG4gICpuZ0lmPVwiaGVhZCBhcyB0ZXh0XCJcbiAgY2xhc3M9XCJoZWFkXCJcbiAgPnt7IHRleHQgfX08L3NwYW5cbj48c3BhblxuICAqbmdJZj1cInRhaWwgYXMgdGV4dFwiXG4gIGNsYXNzPVwidGFpbFwiXG4gID57eyB0ZXh0IH19PC9zcGFuXG4+XG4iXX0=
|