@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,168 @@
|
|
|
1
|
+
import { ButtonModule, IconModule, InputModule, TooltipModule, } from '@alauda/ui';
|
|
2
|
+
import { TranslatePipe, TranslateService } from '@alauda-fe/dynamic-plugin-sdk';
|
|
3
|
+
import { NgIf } from '@angular/common';
|
|
4
|
+
import { ChangeDetectionStrategy, Component, Injector, Input, Optional, } from '@angular/core';
|
|
5
|
+
import { ControlContainer, ReactiveFormsModule, } from '@angular/forms';
|
|
6
|
+
import { BaseResourceFormComponent } from 'ng-resource-form-util';
|
|
7
|
+
import { DisabledContainerComponent } from '../../components/disabled-container';
|
|
8
|
+
import { EFFECT_DIRECTIVE_MODULE } from '../../directives';
|
|
9
|
+
import { ERRORS_MAPPER_MODULE } from '../../form';
|
|
10
|
+
import { DUPLICATE_ERROR_KEY, DUPLICATION_JUSTIFY_STRATEGY, ValidateRowDuplicateService, } from '../../services';
|
|
11
|
+
import { ARRAY_FORM_TABLE_MODULE } from '../form';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/forms";
|
|
14
|
+
import * as i2 from "../../services";
|
|
15
|
+
import * as i3 from "@alauda-fe/dynamic-plugin-sdk";
|
|
16
|
+
import * as i4 from "../form/component";
|
|
17
|
+
import * as i5 from "@alauda/ui";
|
|
18
|
+
import * as i6 from "../../directives/effect-directive/e2e-attribute-binding.directive";
|
|
19
|
+
import * as i7 from "../../form/errors-mapper/errors-mapper-component/component";
|
|
20
|
+
export class StringArrayFormTableComponent extends BaseResourceFormComponent {
|
|
21
|
+
set errorMapper(errorMapper) {
|
|
22
|
+
this._errorMapper = {
|
|
23
|
+
...this._errorMapper,
|
|
24
|
+
...errorMapper,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
get errorMapper() {
|
|
28
|
+
return this._errorMapper;
|
|
29
|
+
}
|
|
30
|
+
constructor(injector, controlContainer, rowDup, translate) {
|
|
31
|
+
super(injector);
|
|
32
|
+
this.injector = injector;
|
|
33
|
+
this.controlContainer = controlContainer;
|
|
34
|
+
this.rowDup = rowDup;
|
|
35
|
+
this.translate = translate;
|
|
36
|
+
this.placeholder = '';
|
|
37
|
+
this.validators = [];
|
|
38
|
+
this.enableDuplicateCheck = false;
|
|
39
|
+
this.maxLines = 0;
|
|
40
|
+
this.maxLinesTooltip = '';
|
|
41
|
+
this.minLines = 0;
|
|
42
|
+
this.readonlyItems = [];
|
|
43
|
+
this._errorMapper = {
|
|
44
|
+
[DUPLICATE_ERROR_KEY]: this.translate.get('value_duplication'),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
get length() {
|
|
48
|
+
return this.form.length;
|
|
49
|
+
}
|
|
50
|
+
ngOnChanges({ validators, enableDuplicateCheck }) {
|
|
51
|
+
if (validators?.currentValue && this.form) {
|
|
52
|
+
this.form.controls.forEach(formControl => {
|
|
53
|
+
formControl.setValidators(validators.currentValue);
|
|
54
|
+
// 避免动态增加或者移除 validators 的时候表单校验不生效
|
|
55
|
+
formControl.updateValueAndValidity();
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
if (enableDuplicateCheck?.currentValue !==
|
|
59
|
+
enableDuplicateCheck?.previousValue &&
|
|
60
|
+
this.form) {
|
|
61
|
+
this.form.controls.forEach(formControl => {
|
|
62
|
+
formControl[enableDuplicateCheck?.currentValue
|
|
63
|
+
? 'addValidators'
|
|
64
|
+
: 'removeValidators'](this.duplicateValidator);
|
|
65
|
+
formControl.updateValueAndValidity();
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
createForm() {
|
|
70
|
+
return this.fb.array([]);
|
|
71
|
+
}
|
|
72
|
+
adaptResourceModel(resource) {
|
|
73
|
+
if (!resource) {
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
return resource.sort((v1, v2) => {
|
|
77
|
+
const isReadonly1 = this.isReadonly(v1);
|
|
78
|
+
const isReadonly2 = this.isReadonly(v2);
|
|
79
|
+
if (isReadonly1 === isReadonly2) {
|
|
80
|
+
return 0;
|
|
81
|
+
}
|
|
82
|
+
return isReadonly1 ? -1 : 1;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
getDefaultFormModel() {
|
|
86
|
+
return [];
|
|
87
|
+
}
|
|
88
|
+
add(index = this.form.length) {
|
|
89
|
+
this.form.insert(index, this.getOnFormArrayResizeFn()());
|
|
90
|
+
this.cdr.markForCheck();
|
|
91
|
+
}
|
|
92
|
+
remove(index) {
|
|
93
|
+
this.form.removeAt(index);
|
|
94
|
+
this.cdr.markForCheck();
|
|
95
|
+
}
|
|
96
|
+
getOnFormArrayResizeFn() {
|
|
97
|
+
this.duplicateValidator =
|
|
98
|
+
this.duplicateValidator ||
|
|
99
|
+
(this.enableDuplicateCheck &&
|
|
100
|
+
this.rowDup.createFormArrayValidator({
|
|
101
|
+
rowKeys: ['0'],
|
|
102
|
+
valueMapFn: (value) => value,
|
|
103
|
+
formArray: this.form,
|
|
104
|
+
strategy: DUPLICATION_JUSTIFY_STRATEGY.FULL,
|
|
105
|
+
}));
|
|
106
|
+
return () => this.fb.control('', [...(this.validators ?? []), this.duplicateValidator].filter(Boolean));
|
|
107
|
+
}
|
|
108
|
+
isItemReadonly(index) {
|
|
109
|
+
const control = this.form.controls[index];
|
|
110
|
+
return control.valid && this.isReadonly(control.value);
|
|
111
|
+
}
|
|
112
|
+
isReadonly(item) {
|
|
113
|
+
return this.readonlyItems.some(checkedItem => {
|
|
114
|
+
if (!checkedItem) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
if (typeof checkedItem === 'string') {
|
|
118
|
+
return checkedItem === item;
|
|
119
|
+
}
|
|
120
|
+
return checkedItem.test(item);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: StringArrayFormTableComponent, deps: [{ token: i0.Injector }, { token: i1.ControlContainer, optional: true }, { token: i2.ValidateRowDuplicateService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
124
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: StringArrayFormTableComponent, isStandalone: true, selector: "acl-string-array-form-table", inputs: { multiLineValue: "multiLineValue", resourceName: "resourceName", resourceNameTranslated: "resourceNameTranslated", placeholder: "placeholder", validators: "validators", enableDuplicateCheck: "enableDuplicateCheck", errorMapper: "errorMapper", maxLines: "maxLines", maxLinesTooltip: "maxLinesTooltip", minLines: "minLines", readonlyItems: "readonlyItems", readonlyTooltip: "readonlyTooltip" }, providers: [ValidateRowDuplicateService], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<acl-array-form-table\n [resourceName]=\"resourceName\"\n [resourceNameTranslated]=\"resourceNameTranslated\"\n (add)=\"add(form.length)\"\n (remove)=\"remove($event)\"\n [rows]=\"form.controls\"\n>\n <!-- Input row -->\n <ng-container *aclArrayFormTableRow=\"let control; let index = index\">\n <td>\n <input\n *ngIf=\"!multiLineValue\"\n (blur)=\"onBlur()\"\n aui-input\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [readonly]=\"isItemReadonly(index)\"\n />\n\n <div\n *ngIf=\"multiLineValue\"\n class=\"textarea-wrapper\"\n [attr.data-value]=\"control.value\"\n >\n <textarea\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholder\"\n aui-input\n [formControl]=\"control\"\n [readonly]=\"isItemReadonly(index)\"\n rows=\"1\"\n ></textarea>\n </div>\n </td>\n </ng-container>\n\n <ng-container *aclArrayFormTableRowControl=\"let control; let index = index\">\n <button\n aui-button=\"text\"\n type=\"button\"\n [square]=\"true\"\n [plain]=\"true\"\n [disabled]=\"(minLines && minLines >= length) || isItemReadonly(index)\"\n (click)=\"remove(index)\"\n >\n <aui-icon\n icon=\"minus_circle\"\n [auiTooltip]=\"isItemReadonly(index) && readonlyTooltip\"\n [auiTooltipDisabled]=\"!isItemReadonly(index)\"\n ></aui-icon>\n </button>\n </ng-container>\n\n <!-- Input error row -->\n <ng-container *aclArrayFormTableRowError=\"let control\">\n <td\n class=\"acl-table-form-error-hint\"\n colspan=\"2\"\n *ngIf=\"control.dirty || $any(controlContainer?.formDirective)?.submitted\"\n >\n <acl-errors-mapper\n [errors]=\"control.errors\"\n [errorsMapper]=\"errorMapper\"\n ></acl-errors-mapper>\n </td>\n </ng-container>\n\n <ng-container *aclArrayFormTableFooter>\n <acl-disabled-container\n [isAllowed]=\"true\"\n [isDisabled]=\"maxLines && length >= maxLines\"\n [tooltip]=\"maxLinesTooltip\"\n >\n <button\n aui-button=\"primary\"\n type=\"button\"\n size=\"mini\"\n [plain]=\"true\"\n (click)=\"add(length)\"\n >\n <aui-icon icon=\"plus_circle\"></aui-icon>\n {{ 'add' | translate }}\n </button>\n </acl-disabled-container>\n </ng-container>\n</acl-array-form-table>\n", styles: [":host{display:block;flex:1}:host .textarea-wrapper{display:grid;align-items:stretch}:host .textarea-wrapper:after,:host .textarea-wrapper textarea{grid-area:1/1;width:auto;padding:3px 5px;font:inherit;resize:none;max-height:252px}:host .textarea-wrapper:after{content:attr(data-value) \" \";visibility:hidden;white-space:pre-wrap}:host .textarea-wrapper textarea{overflow:auto;height:auto!important}:host .textarea-wrapper:focus-within textarea:focus{outline:none}:host acl-disabled-container{flex:1;display:flex}:host ::ng-deep .acl-disabled-container{flex:1;display:flex}\n"], dependencies: [{ kind: "component", type: i4.ArrayFormTableComponent, selector: "acl-array-form-table", inputs: ["rowSeparator", "rows", "resourceName", "resourceNameTranslated", "readonly", "addDisabled", "actionColumnDivider", "showZeroState", "showRowError", "rowBackgroundColorFn", "minRow", "minRowTooltip", "maxRow", "maxRowTooltip"], outputs: ["add", "remove"] }, { kind: "directive", type: i4.ArrayFormTableFooterDirective, selector: "[aclArrayFormTableFooter]" }, { kind: "directive", type: i4.ArrayFormTableRowControlDirective, selector: "[aclArrayFormTableRowControl]" }, { kind: "directive", type: i4.ArrayFormTableRowDirective, selector: "[aclArrayFormTableRow]" }, { kind: "directive", type: i4.ArrayFormTableRowErrorDirective, selector: "[aclArrayFormTableRowError]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i5.InputComponent, selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i5.ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: i5.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.TooltipDirective, selector: "[auiTooltip]", inputs: ["auiTooltip", "auiTooltipContext", "auiTooltipClass", "auiTooltipType", "auiTooltipPosition", "auiTooltipTrigger", "auiTooltipDisabled", "auiTooltipHideOnClick", "auiTooltipAnimType"], outputs: ["auiTooltipVisibleChange"], exportAs: ["auiTooltip"] }, { kind: "component", type: DisabledContainerComponent, selector: "acl-disabled-container", inputs: ["tooltip", "tooltipPosition", "tooltipType", "isAllowed", "isDisabled"] }, { kind: "directive", type: i6.E2eAttributeBindingDirective, selector: "[click],[routerLink],a[href],[auiTooltip],[auiDropdown]" }, { kind: "component", type: i7.ErrorsMapperComponent, selector: "acl-errors-mapper", inputs: ["errors", "errorsMapper", "errorsMapperFn", "controlName", "ignoreUnknownError"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
125
|
+
}
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: StringArrayFormTableComponent, decorators: [{
|
|
127
|
+
type: Component,
|
|
128
|
+
args: [{ selector: 'acl-string-array-form-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
129
|
+
ARRAY_FORM_TABLE_MODULE,
|
|
130
|
+
NgIf,
|
|
131
|
+
InputModule,
|
|
132
|
+
ReactiveFormsModule,
|
|
133
|
+
ButtonModule,
|
|
134
|
+
IconModule,
|
|
135
|
+
TooltipModule,
|
|
136
|
+
DisabledContainerComponent,
|
|
137
|
+
EFFECT_DIRECTIVE_MODULE,
|
|
138
|
+
ERRORS_MAPPER_MODULE,
|
|
139
|
+
TranslatePipe,
|
|
140
|
+
], providers: [ValidateRowDuplicateService], template: "<acl-array-form-table\n [resourceName]=\"resourceName\"\n [resourceNameTranslated]=\"resourceNameTranslated\"\n (add)=\"add(form.length)\"\n (remove)=\"remove($event)\"\n [rows]=\"form.controls\"\n>\n <!-- Input row -->\n <ng-container *aclArrayFormTableRow=\"let control; let index = index\">\n <td>\n <input\n *ngIf=\"!multiLineValue\"\n (blur)=\"onBlur()\"\n aui-input\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [readonly]=\"isItemReadonly(index)\"\n />\n\n <div\n *ngIf=\"multiLineValue\"\n class=\"textarea-wrapper\"\n [attr.data-value]=\"control.value\"\n >\n <textarea\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholder\"\n aui-input\n [formControl]=\"control\"\n [readonly]=\"isItemReadonly(index)\"\n rows=\"1\"\n ></textarea>\n </div>\n </td>\n </ng-container>\n\n <ng-container *aclArrayFormTableRowControl=\"let control; let index = index\">\n <button\n aui-button=\"text\"\n type=\"button\"\n [square]=\"true\"\n [plain]=\"true\"\n [disabled]=\"(minLines && minLines >= length) || isItemReadonly(index)\"\n (click)=\"remove(index)\"\n >\n <aui-icon\n icon=\"minus_circle\"\n [auiTooltip]=\"isItemReadonly(index) && readonlyTooltip\"\n [auiTooltipDisabled]=\"!isItemReadonly(index)\"\n ></aui-icon>\n </button>\n </ng-container>\n\n <!-- Input error row -->\n <ng-container *aclArrayFormTableRowError=\"let control\">\n <td\n class=\"acl-table-form-error-hint\"\n colspan=\"2\"\n *ngIf=\"control.dirty || $any(controlContainer?.formDirective)?.submitted\"\n >\n <acl-errors-mapper\n [errors]=\"control.errors\"\n [errorsMapper]=\"errorMapper\"\n ></acl-errors-mapper>\n </td>\n </ng-container>\n\n <ng-container *aclArrayFormTableFooter>\n <acl-disabled-container\n [isAllowed]=\"true\"\n [isDisabled]=\"maxLines && length >= maxLines\"\n [tooltip]=\"maxLinesTooltip\"\n >\n <button\n aui-button=\"primary\"\n type=\"button\"\n size=\"mini\"\n [plain]=\"true\"\n (click)=\"add(length)\"\n >\n <aui-icon icon=\"plus_circle\"></aui-icon>\n {{ 'add' | translate }}\n </button>\n </acl-disabled-container>\n </ng-container>\n</acl-array-form-table>\n", styles: [":host{display:block;flex:1}:host .textarea-wrapper{display:grid;align-items:stretch}:host .textarea-wrapper:after,:host .textarea-wrapper textarea{grid-area:1/1;width:auto;padding:3px 5px;font:inherit;resize:none;max-height:252px}:host .textarea-wrapper:after{content:attr(data-value) \" \";visibility:hidden;white-space:pre-wrap}:host .textarea-wrapper textarea{overflow:auto;height:auto!important}:host .textarea-wrapper:focus-within textarea:focus{outline:none}:host acl-disabled-container{flex:1;display:flex}:host ::ng-deep .acl-disabled-container{flex:1;display:flex}\n"] }]
|
|
141
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.ControlContainer, decorators: [{
|
|
142
|
+
type: Optional
|
|
143
|
+
}] }, { type: i2.ValidateRowDuplicateService }, { type: i3.TranslateService }], propDecorators: { multiLineValue: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], resourceName: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], resourceNameTranslated: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}], placeholder: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}], validators: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], enableDuplicateCheck: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}], errorMapper: [{
|
|
156
|
+
type: Input
|
|
157
|
+
}], maxLines: [{
|
|
158
|
+
type: Input
|
|
159
|
+
}], maxLinesTooltip: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], minLines: [{
|
|
162
|
+
type: Input
|
|
163
|
+
}], readonlyItems: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], readonlyTooltip: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}] } });
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2FycmF5LWZvcm0tdGFibGUvc3RyaW5nLWFycmF5LWZvcm0vY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2FycmF5LWZvcm0tdGFibGUvc3RyaW5nLWFycmF5LWZvcm0vdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsYUFBYSxHQUNkLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLEtBQUssRUFHTCxRQUFRLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGdCQUFnQixFQUVoQixtQkFBbUIsR0FFcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsMkJBQTJCLEdBQzVCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sU0FBUyxDQUFDOzs7Ozs7Ozs7QUF1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QVE7a0hBakRYLGNBQWM7c0JBRGIsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sc0JBQXNCO3NCQURyQixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixLQUFLO2dCQUlGLFdBQVc7c0JBRGQsS0FBSztnQkFZRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQnV0dG9uTW9kdWxlLFxuICBJY29uTW9kdWxlLFxuICBJbnB1dE1vZHVsZSxcbiAgVG9vbHRpcE1vZHVsZSxcbn0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQGFsYXVkYS1mZS9keW5hbWljLXBsdWdpbi1zZGsnO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sQ29udGFpbmVyLFxuICBGb3JtQXJyYXksXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRvckZuLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlUmVzb3VyY2VGb3JtQ29tcG9uZW50IH0gZnJvbSAnbmctcmVzb3VyY2UtZm9ybS11dGlsJztcblxuaW1wb3J0IHsgRGlzYWJsZWRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Rpc2FibGVkLWNvbnRhaW5lcic7XG5pbXBvcnQgeyBFRkZFQ1RfRElSRUNUSVZFX01PRFVMRSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgRVJST1JTX01BUFBFUl9NT0RVTEUgfSBmcm9tICcuLi8uLi9mb3JtJztcbmltcG9ydCB7XG4gIERVUExJQ0FURV9FUlJPUl9LRVksXG4gIERVUExJQ0FUSU9OX0pVU1RJRllfU1RSQVRFR1ksXG4gIFZhbGlkYXRlUm93RHVwbGljYXRlU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQVJSQVlfRk9STV9UQUJMRV9NT0RVTEUgfSBmcm9tICcuLi9mb3JtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXN0cmluZy1hcnJheS1mb3JtLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZXMuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEFSUkFZX0ZPUk1fVEFCTEVfTU9EVUxFLFxuICAgIE5nSWYsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIERpc2FibGVkQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEVGRkVDVF9ESVJFQ1RJVkVfTU9EVUxFLFxuICAgIEVSUk9SU19NQVBQRVJfTU9EVUxFLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1ZhbGlkYXRlUm93RHVwbGljYXRlU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFN0cmluZ0FycmF5Rm9ybVRhYmxlQ29tcG9uZW50XG4gIGV4dGVuZHMgQmFzZVJlc291cmNlRm9ybUNvbXBvbmVudDxzdHJpbmdbXSwgc3RyaW5nW10sIEZvcm1BcnJheT5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKVxuICBtdWx0aUxpbmVWYWx1ZTogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICByZXNvdXJjZU5hbWU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICByZXNvdXJjZU5hbWVUcmFuc2xhdGVkOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXIgPSAnJztcblxuICBASW5wdXQoKVxuICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XG5cbiAgQElucHV0KClcbiAgZW5hYmxlRHVwbGljYXRlQ2hlY2sgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgZXJyb3JNYXBwZXIoZXJyb3JNYXBwZXI6IFN0cmluZ01hcCkge1xuICAgIHRoaXMuX2Vycm9yTWFwcGVyID0ge1xuICAgICAgLi4udGhpcy5fZXJyb3JNYXBwZXIsXG4gICAgICAuLi5lcnJvck1hcHBlcixcbiAgICB9O1xuICB9XG5cbiAgZ2V0IGVycm9yTWFwcGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9lcnJvck1hcHBlcjtcbiAgfVxuXG4gIEBJbnB1dCgpIG1heExpbmVzID0gMDtcblxuICBASW5wdXQoKSBtYXhMaW5lc1Rvb2x0aXAgPSAnJztcblxuICBASW5wdXQoKSBtaW5MaW5lcyA9IDA7XG5cbiAgQElucHV0KClcbiAgcmVhZG9ubHlJdGVtczogQXJyYXk8c3RyaW5nIHwgUmVnRXhwPiA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5VG9vbHRpcDogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2Vycm9yTWFwcGVyOiBTdHJpbmdNYXAgPSB7XG4gICAgW0RVUExJQ0FURV9FUlJPUl9LRVldOiB0aGlzLnRyYW5zbGF0ZS5nZXQoJ3ZhbHVlX2R1cGxpY2F0aW9uJyksXG4gIH07XG5cbiAgcHJpdmF0ZSBkdXBsaWNhdGVWYWxpZGF0b3I6IFZhbGlkYXRvckZuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBvdmVycmlkZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIHJlYWRvbmx5IGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3dEdXA6IFZhbGlkYXRlUm93RHVwbGljYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cbiAgZ2V0IGxlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmxlbmd0aDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgdmFsaWRhdG9ycywgZW5hYmxlRHVwbGljYXRlQ2hlY2sgfTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh2YWxpZGF0b3JzPy5jdXJyZW50VmFsdWUgJiYgdGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuZm9yRWFjaChmb3JtQ29udHJvbCA9PiB7XG4gICAgICAgIGZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAvLyDpgb/lhY3liqjmgIHlop7liqDmiJbogIXnp7vpmaQgdmFsaWRhdG9ycyDnmoTml7blgJnooajljZXmoKHpqozkuI3nlJ/mlYhcbiAgICAgICAgZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGVuYWJsZUR1cGxpY2F0ZUNoZWNrPy5jdXJyZW50VmFsdWUgIT09XG4gICAgICAgIGVuYWJsZUR1cGxpY2F0ZUNoZWNrPy5wcmV2aW91c1ZhbHVlICYmXG4gICAgICB0aGlzLmZvcm1cbiAgICApIHtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5mb3JFYWNoKGZvcm1Db250cm9sID0+IHtcbiAgICAgICAgZm9ybUNvbnRyb2xbXG4gICAgICAgICAgZW5hYmxlRHVwbGljYXRlQ2hlY2s/LmN1cnJlbnRWYWx1ZVxuICAgICAgICAgICAgPyAnYWRkVmFsaWRhdG9ycydcbiAgICAgICAgICAgIDogJ3JlbW92ZVZhbGlkYXRvcnMnXG4gICAgICAgIF0odGhpcy5kdXBsaWNhdGVWYWxpZGF0b3IpO1xuICAgICAgICBmb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGVGb3JtKCkge1xuICAgIHJldHVybiB0aGlzLmZiLmFycmF5KFtdKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFkYXB0UmVzb3VyY2VNb2RlbChyZXNvdXJjZTogc3RyaW5nW10pIHtcbiAgICBpZiAoIXJlc291cmNlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc291cmNlLnNvcnQoKHYxOiBzdHJpbmcsIHYyOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGlzUmVhZG9ubHkxID0gdGhpcy5pc1JlYWRvbmx5KHYxKTtcbiAgICAgIGNvbnN0IGlzUmVhZG9ubHkyID0gdGhpcy5pc1JlYWRvbmx5KHYyKTtcblxuICAgICAgaWYgKGlzUmVhZG9ubHkxID09PSBpc1JlYWRvbmx5Mikge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc1JlYWRvbmx5MSA/IC0xIDogMTtcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldERlZmF1bHRGb3JtTW9kZWwoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGFkZChpbmRleCA9IHRoaXMuZm9ybS5sZW5ndGgpIHtcbiAgICB0aGlzLmZvcm0uaW5zZXJ0KGluZGV4LCB0aGlzLmdldE9uRm9ybUFycmF5UmVzaXplRm4oKSgpKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlbW92ZShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5mb3JtLnJlbW92ZUF0KGluZGV4KTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldE9uRm9ybUFycmF5UmVzaXplRm4oKSB7XG4gICAgdGhpcy5kdXBsaWNhdGVWYWxpZGF0b3IgPVxuICAgICAgdGhpcy5kdXBsaWNhdGVWYWxpZGF0b3IgfHxcbiAgICAgICh0aGlzLmVuYWJsZUR1cGxpY2F0ZUNoZWNrICYmXG4gICAgICAgIHRoaXMucm93RHVwLmNyZWF0ZUZvcm1BcnJheVZhbGlkYXRvcih7XG4gICAgICAgICAgcm93S2V5czogWycwJ10sXG4gICAgICAgICAgdmFsdWVNYXBGbjogKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlLFxuICAgICAgICAgIGZvcm1BcnJheTogdGhpcy5mb3JtLFxuICAgICAgICAgIHN0cmF0ZWd5OiBEVVBMSUNBVElPTl9KVVNUSUZZX1NUUkFURUdZLkZVTEwsXG4gICAgICAgIH0pKTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgdGhpcy5mYi5jb250cm9sKFxuICAgICAgICAnJyxcbiAgICAgICAgWy4uLih0aGlzLnZhbGlkYXRvcnMgPz8gW10pLCB0aGlzLmR1cGxpY2F0ZVZhbGlkYXRvcl0uZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgKTtcbiAgfVxuXG4gIGlzSXRlbVJlYWRvbmx5KGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzW2luZGV4XTtcbiAgICByZXR1cm4gY29udHJvbC52YWxpZCAmJiB0aGlzLmlzUmVhZG9ubHkoY29udHJvbC52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGlzUmVhZG9ubHkoaXRlbTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHlJdGVtcy5zb21lKGNoZWNrZWRJdGVtID0+IHtcbiAgICAgIGlmICghY2hlY2tlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBjaGVja2VkSXRlbSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGNoZWNrZWRJdGVtID09PSBpdGVtO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hlY2tlZEl0ZW0udGVzdChpdGVtKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGFjbC1hcnJheS1mb3JtLXRhYmxlXG4gIFtyZXNvdXJjZU5hbWVdPVwicmVzb3VyY2VOYW1lXCJcbiAgW3Jlc291cmNlTmFtZVRyYW5zbGF0ZWRdPVwicmVzb3VyY2VOYW1lVHJhbnNsYXRlZFwiXG4gIChhZGQpPVwiYWRkKGZvcm0ubGVuZ3RoKVwiXG4gIChyZW1vdmUpPVwicmVtb3ZlKCRldmVudClcIlxuICBbcm93c109XCJmb3JtLmNvbnRyb2xzXCJcbj5cbiAgPCEtLSBJbnB1dCByb3cgLS0+XG4gIDxuZy1jb250YWluZXIgKmFjbEFycmF5Rm9ybVRhYmxlUm93PVwibGV0IGNvbnRyb2w7IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgPHRkPlxuICAgICAgPGlucHV0XG4gICAgICAgICpuZ0lmPVwiIW11bHRpTGluZVZhbHVlXCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICBhdWktaW5wdXRcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbcmVhZG9ubHldPVwiaXNJdGVtUmVhZG9ubHkoaW5kZXgpXCJcbiAgICAgIC8+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJtdWx0aUxpbmVWYWx1ZVwiXG4gICAgICAgIGNsYXNzPVwidGV4dGFyZWEtd3JhcHBlclwiXG4gICAgICAgIFthdHRyLmRhdGEtdmFsdWVdPVwiY29udHJvbC52YWx1ZVwiXG4gICAgICA+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgIGF1aS1pbnB1dFxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICBbcmVhZG9ubHldPVwiaXNJdGVtUmVhZG9ubHkoaW5kZXgpXCJcbiAgICAgICAgICByb3dzPVwiMVwiXG4gICAgICAgID48L3RleHRhcmVhPlxuICAgICAgPC9kaXY+XG4gICAgPC90ZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqYWNsQXJyYXlGb3JtVGFibGVSb3dDb250cm9sPVwibGV0IGNvbnRyb2w7IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgPGJ1dHRvblxuICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgW3BsYWluXT1cInRydWVcIlxuICAgICAgW2Rpc2FibGVkXT1cIihtaW5MaW5lcyAmJiBtaW5MaW5lcyA+PSBsZW5ndGgpIHx8IGlzSXRlbVJlYWRvbmx5KGluZGV4KVwiXG4gICAgICAoY2xpY2spPVwicmVtb3ZlKGluZGV4KVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgIGljb249XCJtaW51c19jaXJjbGVcIlxuICAgICAgICBbYXVpVG9vbHRpcF09XCJpc0l0ZW1SZWFkb25seShpbmRleCkgJiYgcmVhZG9ubHlUb29sdGlwXCJcbiAgICAgICAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCIhaXNJdGVtUmVhZG9ubHkoaW5kZXgpXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIElucHV0IGVycm9yIHJvdyAtLT5cbiAgPG5nLWNvbnRhaW5lciAqYWNsQXJyYXlGb3JtVGFibGVSb3dFcnJvcj1cImxldCBjb250cm9sXCI+XG4gICAgPHRkXG4gICAgICBjbGFzcz1cImFjbC10YWJsZS1mb3JtLWVycm9yLWhpbnRcIlxuICAgICAgY29sc3Bhbj1cIjJcIlxuICAgICAgKm5nSWY9XCJjb250cm9sLmRpcnR5IHx8ICRhbnkoY29udHJvbENvbnRhaW5lcj8uZm9ybURpcmVjdGl2ZSk/LnN1Ym1pdHRlZFwiXG4gICAgPlxuICAgICAgPGFjbC1lcnJvcnMtbWFwcGVyXG4gICAgICAgIFtlcnJvcnNdPVwiY29udHJvbC5lcnJvcnNcIlxuICAgICAgICBbZXJyb3JzTWFwcGVyXT1cImVycm9yTWFwcGVyXCJcbiAgICAgID48L2FjbC1lcnJvcnMtbWFwcGVyPlxuICAgIDwvdGQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKmFjbEFycmF5Rm9ybVRhYmxlRm9vdGVyPlxuICAgIDxhY2wtZGlzYWJsZWQtY29udGFpbmVyXG4gICAgICBbaXNBbGxvd2VkXT1cInRydWVcIlxuICAgICAgW2lzRGlzYWJsZWRdPVwibWF4TGluZXMgJiYgbGVuZ3RoID49IG1heExpbmVzXCJcbiAgICAgIFt0b29sdGlwXT1cIm1heExpbmVzVG9vbHRpcFwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBhdWktYnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBzaXplPVwibWluaVwiXG4gICAgICAgIFtwbGFpbl09XCJ0cnVlXCJcbiAgICAgICAgKGNsaWNrKT1cImFkZChsZW5ndGgpXCJcbiAgICAgID5cbiAgICAgICAgPGF1aS1pY29uIGljb249XCJwbHVzX2NpcmNsZVwiPjwvYXVpLWljb24+XG4gICAgICAgIHt7ICdhZGQnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2FjbC1kaXNhYmxlZC1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9hY2wtYXJyYXktZm9ybS10YWJsZT5cbiJdfQ==
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @module async-data
|
|
4
|
+
*/
|
|
5
|
+
import { get } from 'lodash-es';
|
|
6
|
+
import { Subject, combineLatest, interval, merge, of, catchError, distinctUntilChanged, filter, map, scan, startWith, switchMap, tap, } from 'rxjs';
|
|
7
|
+
import { isEqual, publishRef } from '../utils';
|
|
8
|
+
export class AsyncDataLoader {
|
|
9
|
+
constructor(config) {
|
|
10
|
+
this.reloadAction$$ = new Subject();
|
|
11
|
+
this.dataMapper$$ = new Subject();
|
|
12
|
+
this.snapshot = {
|
|
13
|
+
params: null,
|
|
14
|
+
data: null,
|
|
15
|
+
loading: false,
|
|
16
|
+
error: null,
|
|
17
|
+
};
|
|
18
|
+
const { params$, params, dataFilter, silent } = config;
|
|
19
|
+
const queryParams$ = params$ || of(params || null);
|
|
20
|
+
this.loadState$ = combineLatest([
|
|
21
|
+
queryParams$,
|
|
22
|
+
this.reloadAction$$.pipe(startWith(null)),
|
|
23
|
+
]).pipe(switchMap(([queryParams, startData]) => {
|
|
24
|
+
this.snapshot.params = queryParams;
|
|
25
|
+
return this.buildFetcher(config)(queryParams).pipe(map(data => ({ data })), catchError((error) => of({ error })), startWith({
|
|
26
|
+
data: startData || null,
|
|
27
|
+
loading: !startData,
|
|
28
|
+
}));
|
|
29
|
+
}), map(state => ({
|
|
30
|
+
data: null,
|
|
31
|
+
loading: false,
|
|
32
|
+
error: null,
|
|
33
|
+
...state,
|
|
34
|
+
})), publishRef());
|
|
35
|
+
this.rawData$ = merge(this.loadState$.pipe(map(state => (prev) => (state.loading && silent ? prev : state.data))), this.dataMapper$$).pipe(scan((acc, mapper) => mapper(acc), null), tap(data => {
|
|
36
|
+
this.snapshot.data = data;
|
|
37
|
+
}), publishRef());
|
|
38
|
+
this.data$ = this.rawData$.pipe(filter(dataFilter ?? (data => !!data)), publishRef());
|
|
39
|
+
this.loading$ = this.loadState$.pipe(map(state => state.loading), distinctUntilChanged(), tap(loading => {
|
|
40
|
+
this.snapshot.loading = loading;
|
|
41
|
+
}), publishRef());
|
|
42
|
+
this.error$ = this.loadState$.pipe(map(state => state.error), distinctUntilChanged(), tap(error => {
|
|
43
|
+
this.snapshot.error = error;
|
|
44
|
+
}), publishRef());
|
|
45
|
+
}
|
|
46
|
+
reload(data) {
|
|
47
|
+
this.reloadAction$$.next(data);
|
|
48
|
+
}
|
|
49
|
+
mapData(mapper) {
|
|
50
|
+
this.dataMapper$$.next(mapper);
|
|
51
|
+
}
|
|
52
|
+
buildFetcher(config) {
|
|
53
|
+
const { fetcher, interval: period, intervalFilter, compare, } = config;
|
|
54
|
+
if (!period) {
|
|
55
|
+
return fetcher;
|
|
56
|
+
}
|
|
57
|
+
const compareFn = Array.isArray(compare)
|
|
58
|
+
? (a, b) => isEqual(get(a, compare), get(b, compare))
|
|
59
|
+
: compare;
|
|
60
|
+
return params => interval(period).pipe(filter(intervalFilter ?? (() => true)), startWith(0), switchMap(() => fetcher(params)), distinctUntilChanged(compareFn));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtZGF0YS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvYXN5bmMtZGF0YS9hc3luYy1kYXRhLWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFFTCxPQUFPLEVBQ1AsYUFBYSxFQUNiLFFBQVEsRUFDUixLQUFLLEVBQ0wsRUFBRSxFQUNGLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxJQUFJLEVBQ0osU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFHZCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQWlCL0MsTUFBTSxPQUFPLGVBQWU7SUFvQjFCLFlBQVksTUFBMkQ7UUFqQnRELG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVksQ0FBQztRQUN6QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBRTdELGFBQVEsR0FBK0Q7WUFDckUsTUFBTSxFQUFFLElBQUk7WUFDWixJQUFJLEVBQUUsSUFBSTtZQUNWLE9BQU8sRUFBRSxLQUFLO1lBQ2QsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDO1FBVUEsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUV2RCxNQUFNLFlBQVksR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztZQUM5QixZQUFZO1lBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQVMsQ0FB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TUFBcUI7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVPLFlBQVksQ0FDbEIsTUFBMkQ7UUFFM0QsTUFBTSxFQUNKLE9BQU8sRUFDUCxRQUFRLEVBQUUsTUFBTSxFQUNoQixjQUFjLEVBQ2QsT0FBTyxHQUNSLEdBQUcsTUFBd0MsQ0FBQztRQUU3QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBSSxFQUFFLENBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMzRCxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRVosT0FBTyxNQUFNLENBQUMsRUFBRSxDQUNkLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ25CLE1BQU0sQ0FBQyxjQUFjLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN0QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQ1osU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUNoQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FDaEMsQ0FBQztJQUNOLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIGFzeW5jLWRhdGFcbiAqL1xuXG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgaW50ZXJ2YWwsXG4gIG1lcmdlLFxuICBvZixcbiAgY2F0Y2hFcnJvcixcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBzY2FuLFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgaXNFcXVhbCwgcHVibGlzaFJlZiB9IGZyb20gJy4uL3V0aWxzJztcblxuaW1wb3J0IHtcbiAgRGF0YUVycm9yLFxuICBEYXRhTWFwcGVyLFxuICBEYXRhU3RhdGVBZGFwdGVyLFxuICBGZXRjaGVyLFxuICBMb2FkZXJDb25maWcsXG4gIExvYWRlckNvbmZpZ1dpdGhJbnRlcnZhbCxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXN5bmNMb2FkU3RhdGU8RD4ge1xuICBkYXRhPzogRDtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIGVycm9yPzogRGF0YUVycm9yO1xufVxuXG5leHBvcnQgY2xhc3MgQXN5bmNEYXRhTG9hZGVyPEQgPSB1bmtub3duLCBQID0gU3RyaW5nTWFwPlxuICBpbXBsZW1lbnRzIERhdGFTdGF0ZUFkYXB0ZXI8RD5cbntcbiAgcHJpdmF0ZSByZWFkb25seSByZWxvYWRBY3Rpb24kJCA9IG5ldyBTdWJqZWN0PHZvaWQgfCBEPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFNYXBwZXIkJCA9IG5ldyBTdWJqZWN0PERhdGFNYXBwZXI8RD4+KCk7XG5cbiAgc25hcHNob3Q6IHsgZGF0YTogRDsgcGFyYW1zOiBQOyBsb2FkaW5nOiBib29sZWFuOyBlcnJvcjogRGF0YUVycm9yIH0gPSB7XG4gICAgcGFyYW1zOiBudWxsLFxuICAgIGRhdGE6IG51bGwsXG4gICAgbG9hZGluZzogZmFsc2UsXG4gICAgZXJyb3I6IG51bGwsXG4gIH07XG5cbiAgbG9hZFN0YXRlJDogT2JzZXJ2YWJsZTxBc3luY0xvYWRTdGF0ZTxEPj47XG5cbiAgcmF3RGF0YSQ6IE9ic2VydmFibGU8RD47XG4gIGRhdGEkOiBPYnNlcnZhYmxlPEQ+O1xuICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgZXJyb3IkOiBPYnNlcnZhYmxlPERhdGFFcnJvcj47XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBMb2FkZXJDb25maWc8RCwgUD4gfCBMb2FkZXJDb25maWdXaXRoSW50ZXJ2YWw8RCwgUD4pIHtcbiAgICBjb25zdCB7IHBhcmFtcyQsIHBhcmFtcywgZGF0YUZpbHRlciwgc2lsZW50IH0gPSBjb25maWc7XG5cbiAgICBjb25zdCBxdWVyeVBhcmFtcyQgPSBwYXJhbXMkIHx8IG9mKHBhcmFtcyB8fCBudWxsKTtcblxuICAgIHRoaXMubG9hZFN0YXRlJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgcXVlcnlQYXJhbXMkLFxuICAgICAgdGhpcy5yZWxvYWRBY3Rpb24kJC5waXBlKHN0YXJ0V2l0aChudWxsIGFzIEQpKSxcbiAgICBdKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChbcXVlcnlQYXJhbXMsIHN0YXJ0RGF0YV0pID0+IHtcbiAgICAgICAgdGhpcy5zbmFwc2hvdC5wYXJhbXMgPSBxdWVyeVBhcmFtcztcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRGZXRjaGVyKGNvbmZpZykocXVlcnlQYXJhbXMpLnBpcGUoXG4gICAgICAgICAgbWFwKGRhdGEgPT4gKHsgZGF0YSB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IERhdGFFcnJvcikgPT4gb2YoeyBlcnJvciB9KSksXG4gICAgICAgICAgc3RhcnRXaXRoKHtcbiAgICAgICAgICAgIGRhdGE6IHN0YXJ0RGF0YSB8fCBudWxsLFxuICAgICAgICAgICAgbG9hZGluZzogIXN0YXJ0RGF0YSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKHN0YXRlID0+ICh7XG4gICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICB9KSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMucmF3RGF0YSQgPSBtZXJnZShcbiAgICAgIHRoaXMubG9hZFN0YXRlJC5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgc3RhdGUgPT4gKHByZXY6IEQpID0+IChzdGF0ZS5sb2FkaW5nICYmIHNpbGVudCA/IHByZXYgOiBzdGF0ZS5kYXRhKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICB0aGlzLmRhdGFNYXBwZXIkJCxcbiAgICApLnBpcGUoXG4gICAgICBzY2FuPERhdGFNYXBwZXI8RD4sIEQ+KChhY2MsIG1hcHBlcikgPT4gbWFwcGVyKGFjYyksIG51bGwpLFxuICAgICAgdGFwKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLnNuYXBzaG90LmRhdGEgPSBkYXRhO1xuICAgICAgfSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMuZGF0YSQgPSB0aGlzLnJhd0RhdGEkLnBpcGUoXG4gICAgICBmaWx0ZXIoZGF0YUZpbHRlciA/PyAoZGF0YSA9PiAhIWRhdGEpKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuXG4gICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMubG9hZFN0YXRlJC5waXBlKFxuICAgICAgbWFwKHN0YXRlID0+IHN0YXRlLmxvYWRpbmcpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHRhcChsb2FkaW5nID0+IHtcbiAgICAgICAgdGhpcy5zbmFwc2hvdC5sb2FkaW5nID0gbG9hZGluZztcbiAgICAgIH0pLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG5cbiAgICB0aGlzLmVycm9yJCA9IHRoaXMubG9hZFN0YXRlJC5waXBlKFxuICAgICAgbWFwKHN0YXRlID0+IHN0YXRlLmVycm9yKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICB0YXAoZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLnNuYXBzaG90LmVycm9yID0gZXJyb3I7XG4gICAgICB9KSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgcmVsb2FkKGRhdGE/OiBEKSB7XG4gICAgdGhpcy5yZWxvYWRBY3Rpb24kJC5uZXh0KGRhdGEpO1xuICB9XG5cbiAgbWFwRGF0YShtYXBwZXI6IERhdGFNYXBwZXI8RD4pIHtcbiAgICB0aGlzLmRhdGFNYXBwZXIkJC5uZXh0KG1hcHBlcik7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRmV0Y2hlcihcbiAgICBjb25maWc6IExvYWRlckNvbmZpZzxELCBQPiB8IExvYWRlckNvbmZpZ1dpdGhJbnRlcnZhbDxELCBQPixcbiAgKTogRmV0Y2hlcjxELCBQPiB7XG4gICAgY29uc3Qge1xuICAgICAgZmV0Y2hlcixcbiAgICAgIGludGVydmFsOiBwZXJpb2QsXG4gICAgICBpbnRlcnZhbEZpbHRlcixcbiAgICAgIGNvbXBhcmUsXG4gICAgfSA9IGNvbmZpZyBhcyBMb2FkZXJDb25maWdXaXRoSW50ZXJ2YWw8RCwgUD47XG5cbiAgICBpZiAoIXBlcmlvZCkge1xuICAgICAgcmV0dXJuIGZldGNoZXI7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcGFyZUZuID0gQXJyYXkuaXNBcnJheShjb21wYXJlKVxuICAgICAgPyAoYTogRCwgYjogRCkgPT4gaXNFcXVhbChnZXQoYSwgY29tcGFyZSksIGdldChiLCBjb21wYXJlKSlcbiAgICAgIDogY29tcGFyZTtcblxuICAgIHJldHVybiBwYXJhbXMgPT5cbiAgICAgIGludGVydmFsKHBlcmlvZCkucGlwZShcbiAgICAgICAgZmlsdGVyKGludGVydmFsRmlsdGVyID8/ICgoKSA9PiB0cnVlKSksXG4gICAgICAgIHN0YXJ0V2l0aCgwKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IGZldGNoZXIocGFyYW1zKSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGNvbXBhcmVGbiksXG4gICAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @module async-data
|
|
4
|
+
*/
|
|
5
|
+
import { ButtonComponent } from '@alauda/ui';
|
|
6
|
+
import { TranslatePipe } from '@alauda-fe/dynamic-plugin-sdk';
|
|
7
|
+
import { NgIf } from '@angular/common';
|
|
8
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
9
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
10
|
+
import { PageGuardComponent, PageGuardOperationDirective, Reason, } from '../../components';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/router";
|
|
13
|
+
export class ErrorStateComponent {
|
|
14
|
+
constructor(router, route) {
|
|
15
|
+
this.router = router;
|
|
16
|
+
this.route = route;
|
|
17
|
+
this.reload = new EventEmitter();
|
|
18
|
+
this.redirect = new EventEmitter();
|
|
19
|
+
this.reason = Reason;
|
|
20
|
+
}
|
|
21
|
+
backToList() {
|
|
22
|
+
this.redirect.emit();
|
|
23
|
+
if (this.autoRedirect && this.showBackButton) {
|
|
24
|
+
this.router.navigate([this.backLink || '../..'], {
|
|
25
|
+
relativeTo: this.route,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: ErrorStateComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: ErrorStateComponent, isStandalone: true, selector: "acl-error-state", inputs: { errorCode: "errorCode", autoRedirect: "autoRedirect", showBackButton: "showBackButton", backLink: "backLink" }, outputs: { reload: "reload", redirect: "redirect" }, ngImport: i0, template: "<div *ngIf=\"errorCode === 403\">\n <acl-page-guard\n [allowed]=\"false\"\n [reason]=\"reason.NoPermission\"\n [title]=\"'no_view_permission' | translate\"\n [description]=\"''\"\n >\n <ng-container *ngIf=\"showBackButton\">\n <ng-container *aclPageGuardOperation>\n <button\n aui-button=\"primary\"\n (click)=\"backToList()\"\n >\n {{ 'return_resource_list' | translate }}\n </button>\n </ng-container>\n </ng-container>\n </acl-page-guard>\n</div>\n<div *ngIf=\"errorCode === 404\">\n <acl-page-guard\n [allowed]=\"false\"\n [reason]=\"reason.NotFound\"\n [title]=\"'resource_not_exist' | translate\"\n [description]=\"''\"\n >\n <ng-container *ngIf=\"showBackButton\">\n <ng-container *aclPageGuardOperation>\n <button\n aui-button=\"primary\"\n (click)=\"backToList()\"\n >\n {{ 'return_resource_list' | translate }}\n </button>\n </ng-container>\n </ng-container>\n </acl-page-guard>\n</div>\n<div *ngIf=\"errorCode !== 403 && errorCode !== 404\">\n <acl-page-guard\n [allowed]=\"false\"\n [reason]=\"reason.Disconnected\"\n [title]=\"'error_loading_data' | translate\"\n [description]=\"''\"\n >\n <ng-container *aclPageGuardOperation>\n <button\n aui-button=\"primary\"\n (click)=\"reload.emit()\"\n >\n {{ 'reload' | translate }}\n </button>\n </ng-container>\n </acl-page-guard>\n</div>\n", dependencies: [{ kind: "component", type: PageGuardComponent, selector: "acl-page-guard", inputs: ["top", "isFull", "noShadow", "allowed", "status", "reason", "title", "description", "context"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PageGuardOperationDirective, selector: "[aclPageGuardOperation]" }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: ErrorStateComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{ selector: 'acl-error-state', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
35
|
+
PageGuardComponent,
|
|
36
|
+
NgIf,
|
|
37
|
+
PageGuardOperationDirective,
|
|
38
|
+
ButtonComponent,
|
|
39
|
+
TranslatePipe,
|
|
40
|
+
], standalone: true, template: "<div *ngIf=\"errorCode === 403\">\n <acl-page-guard\n [allowed]=\"false\"\n [reason]=\"reason.NoPermission\"\n [title]=\"'no_view_permission' | translate\"\n [description]=\"''\"\n >\n <ng-container *ngIf=\"showBackButton\">\n <ng-container *aclPageGuardOperation>\n <button\n aui-button=\"primary\"\n (click)=\"backToList()\"\n >\n {{ 'return_resource_list' | translate }}\n </button>\n </ng-container>\n </ng-container>\n </acl-page-guard>\n</div>\n<div *ngIf=\"errorCode === 404\">\n <acl-page-guard\n [allowed]=\"false\"\n [reason]=\"reason.NotFound\"\n [title]=\"'resource_not_exist' | translate\"\n [description]=\"''\"\n >\n <ng-container *ngIf=\"showBackButton\">\n <ng-container *aclPageGuardOperation>\n <button\n aui-button=\"primary\"\n (click)=\"backToList()\"\n >\n {{ 'return_resource_list' | translate }}\n </button>\n </ng-container>\n </ng-container>\n </acl-page-guard>\n</div>\n<div *ngIf=\"errorCode !== 403 && errorCode !== 404\">\n <acl-page-guard\n [allowed]=\"false\"\n [reason]=\"reason.Disconnected\"\n [title]=\"'error_loading_data' | translate\"\n [description]=\"''\"\n >\n <ng-container *aclPageGuardOperation>\n <button\n aui-button=\"primary\"\n (click)=\"reload.emit()\"\n >\n {{ 'reload' | translate }}\n </button>\n </ng-container>\n </acl-page-guard>\n</div>\n" }]
|
|
41
|
+
}], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }], propDecorators: { errorCode: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], autoRedirect: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], showBackButton: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], backLink: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], reload: [{
|
|
50
|
+
type: Output
|
|
51
|
+
}], redirect: [{
|
|
52
|
+
type: Output
|
|
53
|
+
}] } });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2FzeW5jLWRhdGEvZXJyb3ItcGFnZS9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvYXN5bmMtZGF0YS9lcnJvci1wYWdlL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQiwyQkFBMkIsRUFDM0IsTUFBTSxHQUNQLE1BQU0sa0JBQWtCLENBQUM7OztBQWUxQixNQUFNLE9BQU8sbUJBQW1CO0lBYzlCLFlBQ21CLE1BQWMsRUFDZCxLQUFxQjtRQURyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFUeEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHbEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFcEMsV0FBTSxHQUFHLE1BQU0sQ0FBQztJQUtiLENBQUM7SUFFSixVQUFVO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsRUFBRTtnQkFDL0MsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ3ZCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOzhHQTFCVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiwwUENwQ2hDLDArQ0F1REEsNENEM0JJLGtCQUFrQixvS0FDbEIsSUFBSSw2RkFDSiwyQkFBMkIsb0VBQzNCLGVBQWUsaUlBQ2YsYUFBYTs7MkZBSUosbUJBQW1CO2tCQWIvQixTQUFTOytCQUNFLGlCQUFpQixtQkFFVix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGtCQUFrQjt3QkFDbEIsSUFBSTt3QkFDSiwyQkFBMkI7d0JBQzNCLGVBQWU7d0JBQ2YsYUFBYTtxQkFDZCxjQUNXLElBQUk7d0dBR1AsU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFHTixNQUFNO3NCQURMLE1BQU07Z0JBSVAsUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgYXN5bmMtZGF0YVxuICovXG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BhbGF1ZGEtZmUvZHluYW1pYy1wbHVnaW4tc2RrJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICBQYWdlR3VhcmRDb21wb25lbnQsXG4gIFBhZ2VHdWFyZE9wZXJhdGlvbkRpcmVjdGl2ZSxcbiAgUmVhc29uLFxufSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWVycm9yLXN0YXRlJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBQYWdlR3VhcmRDb21wb25lbnQsXG4gICAgTmdJZixcbiAgICBQYWdlR3VhcmRPcGVyYXRpb25EaXJlY3RpdmUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVycm9yU3RhdGVDb21wb25lbnQge1xuICBASW5wdXQoKSBlcnJvckNvZGU6IG51bWJlcjtcbiAgQElucHV0KCkgYXV0b1JlZGlyZWN0OiBib29sZWFuO1xuICBASW5wdXQoKSBzaG93QmFja0J1dHRvbjogYm9vbGVhbjtcbiAgQElucHV0KCkgYmFja0xpbms6IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgcmVsb2FkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWRpcmVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICByZWFzb24gPSBSZWFzb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgKSB7fVxuXG4gIGJhY2tUb0xpc3QoKSB7XG4gICAgdGhpcy5yZWRpcmVjdC5lbWl0KCk7XG4gICAgaWYgKHRoaXMuYXV0b1JlZGlyZWN0ICYmIHRoaXMuc2hvd0JhY2tCdXR0b24pIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmJhY2tMaW5rIHx8ICcuLi8uLiddLCB7XG4gICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJlcnJvckNvZGUgPT09IDQwM1wiPlxuICA8YWNsLXBhZ2UtZ3VhcmRcbiAgICBbYWxsb3dlZF09XCJmYWxzZVwiXG4gICAgW3JlYXNvbl09XCJyZWFzb24uTm9QZXJtaXNzaW9uXCJcbiAgICBbdGl0bGVdPVwiJ25vX3ZpZXdfcGVybWlzc2lvbicgfCB0cmFuc2xhdGVcIlxuICAgIFtkZXNjcmlwdGlvbl09XCInJ1wiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0JhY2tCdXR0b25cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKmFjbFBhZ2VHdWFyZE9wZXJhdGlvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGF1aS1idXR0b249XCJwcmltYXJ5XCJcbiAgICAgICAgICAoY2xpY2spPVwiYmFja1RvTGlzdCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdyZXR1cm5fcmVzb3VyY2VfbGlzdCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9hY2wtcGFnZS1ndWFyZD5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cImVycm9yQ29kZSA9PT0gNDA0XCI+XG4gIDxhY2wtcGFnZS1ndWFyZFxuICAgIFthbGxvd2VkXT1cImZhbHNlXCJcbiAgICBbcmVhc29uXT1cInJlYXNvbi5Ob3RGb3VuZFwiXG4gICAgW3RpdGxlXT1cIidyZXNvdXJjZV9ub3RfZXhpc3QnIHwgdHJhbnNsYXRlXCJcbiAgICBbZGVzY3JpcHRpb25dPVwiJydcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dCYWNrQnV0dG9uXCI+XG4gICAgICA8bmctY29udGFpbmVyICphY2xQYWdlR3VhcmRPcGVyYXRpb24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhdWktYnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICAgKGNsaWNrKT1cImJhY2tUb0xpc3QoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAncmV0dXJuX3Jlc291cmNlX2xpc3QnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYWNsLXBhZ2UtZ3VhcmQ+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJlcnJvckNvZGUgIT09IDQwMyAmJiBlcnJvckNvZGUgIT09IDQwNFwiPlxuICA8YWNsLXBhZ2UtZ3VhcmRcbiAgICBbYWxsb3dlZF09XCJmYWxzZVwiXG4gICAgW3JlYXNvbl09XCJyZWFzb24uRGlzY29ubmVjdGVkXCJcbiAgICBbdGl0bGVdPVwiJ2Vycm9yX2xvYWRpbmdfZGF0YScgfCB0cmFuc2xhdGVcIlxuICAgIFtkZXNjcmlwdGlvbl09XCInJ1wiXG4gID5cbiAgICA8bmctY29udGFpbmVyICphY2xQYWdlR3VhcmRPcGVyYXRpb24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGF1aS1idXR0b249XCJwcmltYXJ5XCJcbiAgICAgICAgKGNsaWNrKT1cInJlbG9hZC5lbWl0KClcIlxuICAgICAgPlxuICAgICAgICB7eyAncmVsb2FkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYWNsLXBhZ2UtZ3VhcmQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [[include:async-data/README.md]]
|
|
3
|
+
* @module async-data
|
|
4
|
+
* @preferred
|
|
5
|
+
*/
|
|
6
|
+
/** imports */
|
|
7
|
+
import { ErrorStateComponent } from './error-page/component';
|
|
8
|
+
import { PageStateComponent } from './page-state/component';
|
|
9
|
+
export * from './async-data-loader';
|
|
10
|
+
export * from './page-state/component';
|
|
11
|
+
export * from './types';
|
|
12
|
+
export { ErrorStateComponent } from './error-page/component';
|
|
13
|
+
export const ASYNC_DATA_MODULE = [
|
|
14
|
+
PageStateComponent,
|
|
15
|
+
ErrorStateComponent,
|
|
16
|
+
ErrorStateComponent,
|
|
17
|
+
];
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvYXN5bmMtZGF0YS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsY0FBYztBQUNkLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLFNBQVMsQ0FBQztBQUN4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLG1CQUFtQjtDQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFtbaW5jbHVkZTphc3luYy1kYXRhL1JFQURNRS5tZF1dXG4gKiBAbW9kdWxlIGFzeW5jLWRhdGFcbiAqIEBwcmVmZXJyZWRcbiAqL1xuXG4vKiogaW1wb3J0cyAqL1xuaW1wb3J0IHsgRXJyb3JTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vZXJyb3ItcGFnZS9jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlLXN0YXRlL2NvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FzeW5jLWRhdGEtbG9hZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS1zdGF0ZS9jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgeyBFcnJvclN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi9lcnJvci1wYWdlL2NvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBBU1lOQ19EQVRBX01PRFVMRSA9IFtcbiAgUGFnZVN0YXRlQ29tcG9uZW50LFxuICBFcnJvclN0YXRlQ29tcG9uZW50LFxuICBFcnJvclN0YXRlQ29tcG9uZW50LFxuXSBhcyBjb25zdDtcbiJdfQ==
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @module async-data
|
|
4
|
+
*/
|
|
5
|
+
import { handlePixel } from '@alauda/ui';
|
|
6
|
+
import { AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
7
|
+
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output, TemplateRef, } from '@angular/core';
|
|
8
|
+
import { combineLatest, merge, filter, map, mapTo } from 'rxjs';
|
|
9
|
+
import { LoadingMaskComponent } from '../../components';
|
|
10
|
+
import { publishRef } from '../../utils';
|
|
11
|
+
import { ErrorStateComponent } from '../error-page/component';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
export class PageStateComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.autoRedirect = true;
|
|
16
|
+
this.showBackButton = true;
|
|
17
|
+
this.redirect = new EventEmitter();
|
|
18
|
+
}
|
|
19
|
+
set top(top) {
|
|
20
|
+
this.marginTop = handlePixel(top ?? 120);
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
this.context$ = this.adapter.rawData$.pipe(map(data => ({ $implicit: data, ...data })), publishRef());
|
|
24
|
+
this.errorCode$ = merge(combineLatest([this.adapter.rawData$, this.adapter.loading$]).pipe(filter(([data, loading]) => !data && !loading), mapTo(404)), this.adapter.error$.pipe(filter(error => !!error), map(error => {
|
|
25
|
+
if (error.code && typeof error.code === 'number') {
|
|
26
|
+
return error.code;
|
|
27
|
+
}
|
|
28
|
+
if (error.status && typeof error.status === 'number') {
|
|
29
|
+
return error.status;
|
|
30
|
+
}
|
|
31
|
+
return 1;
|
|
32
|
+
}))).pipe(publishRef());
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: PageStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: PageStateComponent, isStandalone: true, selector: "acl-page-state", inputs: { adapter: "adapter", autoRedirect: "autoRedirect", showBackButton: "showBackButton", backLink: "backLink", top: "top" }, outputs: { redirect: "redirect" }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-container *ngIf=\"(context$ | async)?.$implicit\">\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"context$ | async\"\n ></ng-container>\n</ng-container>\n\n<div\n *ngIf=\"!(context$ | async)?.$implicit\"\n class=\"acl-data-state\"\n [style.marginTop]=\"marginTop\"\n>\n <ng-container *ngIf=\"adapter.loading$ | async\">\n <acl-loading-mask\n [loading]=\"true\"\n type=\"module\"\n ></acl-loading-mask>\n </ng-container>\n <ng-container *ngIf=\"!(adapter.loading$ | async) && !!(errorCode$ | async)\">\n <acl-error-state\n [errorCode]=\"errorCode$ | async\"\n [autoRedirect]=\"autoRedirect\"\n [showBackButton]=\"showBackButton\"\n [backLink]=\"backLink\"\n (reload)=\"adapter.reload()\"\n (redirect)=\"redirect.emit()\"\n ></acl-error-state>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoadingMaskComponent, selector: "acl-loading-mask", inputs: ["loading", "type", "text"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: ErrorStateComponent, selector: "acl-error-state", inputs: ["errorCode", "autoRedirect", "showBackButton", "backLink"], outputs: ["reload", "redirect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: PageStateComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{ selector: 'acl-page-state', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
40
|
+
NgTemplateOutlet,
|
|
41
|
+
NgIf,
|
|
42
|
+
LoadingMaskComponent,
|
|
43
|
+
AsyncPipe,
|
|
44
|
+
ErrorStateComponent,
|
|
45
|
+
], template: "<ng-container *ngIf=\"(context$ | async)?.$implicit\">\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"context$ | async\"\n ></ng-container>\n</ng-container>\n\n<div\n *ngIf=\"!(context$ | async)?.$implicit\"\n class=\"acl-data-state\"\n [style.marginTop]=\"marginTop\"\n>\n <ng-container *ngIf=\"adapter.loading$ | async\">\n <acl-loading-mask\n [loading]=\"true\"\n type=\"module\"\n ></acl-loading-mask>\n </ng-container>\n <ng-container *ngIf=\"!(adapter.loading$ | async) && !!(errorCode$ | async)\">\n <acl-error-state\n [errorCode]=\"errorCode$ | async\"\n [autoRedirect]=\"autoRedirect\"\n [showBackButton]=\"showBackButton\"\n [backLink]=\"backLink\"\n (reload)=\"adapter.reload()\"\n (redirect)=\"redirect.emit()\"\n ></acl-error-state>\n </ng-container>\n</div>\n" }]
|
|
46
|
+
}], propDecorators: { adapter: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], autoRedirect: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], showBackButton: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], backLink: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], top: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], redirect: [{
|
|
57
|
+
type: Output
|
|
58
|
+
}], template: [{
|
|
59
|
+
type: ContentChild,
|
|
60
|
+
args: [TemplateRef, { static: true }]
|
|
61
|
+
}] } });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2FzeW5jLWRhdGEvcGFnZS1zdGF0ZS9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvYXN5bmMtZGF0YS9wYWdlLXN0YXRlL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFnQjlELE1BQU0sT0FBTyxrQkFBa0I7SUFiL0I7UUFrQkUsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFHcEIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFXdEIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0F3Q3JDO0lBOUNDLElBQ0ksR0FBRyxDQUFDLEdBQW9CO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBa0JELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDeEMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQzNDLFVBQVUsRUFBRSxDQUNiLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FDckIsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDaEUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQzlDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FDWCxFQUNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDdEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUN4QixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDVixJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNqRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3JELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN0QixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQzs4R0ExRFUsa0JBQWtCO2tHQUFsQixrQkFBa0IscVJBcUJmLFdBQVcsOERDMUQzQiwyMkJBNkJBLDRDRENJLGdCQUFnQixvSkFDaEIsSUFBSSw2RkFDSixvQkFBb0IsNkZBQ3BCLFNBQVMsOENBQ1QsbUJBQW1COzsyRkFHVixrQkFBa0I7a0JBYjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUVULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGdCQUFnQjt3QkFDaEIsSUFBSTt3QkFDSixvQkFBb0I7d0JBQ3BCLFNBQVM7d0JBQ1QsbUJBQW1CO3FCQUNwQjs4QkFJRCxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSUYsR0FBRztzQkFETixLQUFLO2dCQU1OLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIGFzeW5jLWRhdGFcbiAqL1xuXG5pbXBvcnQgeyBoYW5kbGVQaXhlbCB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG1lcmdlLCBmaWx0ZXIsIG1hcCwgbWFwVG8gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTG9hZGluZ01hc2tDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IHB1Ymxpc2hSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBFcnJvclN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vZXJyb3ItcGFnZS9jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVN0YXRlQWRhcHRlciB9IGZyb20gJy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXBhZ2Utc3RhdGUnLFxuICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgTmdJZixcbiAgICBMb2FkaW5nTWFza0NvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgRXJyb3JTdGF0ZUNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUGFnZVN0YXRlQ29tcG9uZW50PFQgPSB1bmtub3duPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIGFkYXB0ZXI6IERhdGFTdGF0ZUFkYXB0ZXI8VD47XG5cbiAgQElucHV0KClcbiAgYXV0b1JlZGlyZWN0ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBzaG93QmFja0J1dHRvbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgYmFja0xpbms6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBzZXQgdG9wKHRvcDogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgdGhpcy5tYXJnaW5Ub3AgPSBoYW5kbGVQaXhlbCh0b3AgPz8gMTIwKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICByZWRpcmVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgbWFyZ2luVG9wOiBzdHJpbmc7XG5cbiAgY29udGV4dCQ6IE9ic2VydmFibGU8XG4gICAge1xuICAgICAgJGltcGxpY2l0OiBUO1xuICAgIH0gJiBUXG4gID47XG5cbiAgZXJyb3JDb2RlJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29udGV4dCQgPSB0aGlzLmFkYXB0ZXIucmF3RGF0YSQucGlwZShcbiAgICAgIG1hcChkYXRhID0+ICh7ICRpbXBsaWNpdDogZGF0YSwgLi4uZGF0YSB9KSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHRoaXMuZXJyb3JDb2RlJCA9IG1lcmdlKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5hZGFwdGVyLnJhd0RhdGEkLCB0aGlzLmFkYXB0ZXIubG9hZGluZyRdKS5waXBlKFxuICAgICAgICBmaWx0ZXIoKFtkYXRhLCBsb2FkaW5nXSkgPT4gIWRhdGEgJiYgIWxvYWRpbmcpLFxuICAgICAgICBtYXBUbyg0MDQpLFxuICAgICAgKSxcbiAgICAgIHRoaXMuYWRhcHRlci5lcnJvciQucGlwZShcbiAgICAgICAgZmlsdGVyKGVycm9yID0+ICEhZXJyb3IpLFxuICAgICAgICBtYXAoZXJyb3IgPT4ge1xuICAgICAgICAgIGlmIChlcnJvci5jb2RlICYmIHR5cGVvZiBlcnJvci5jb2RlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yLmNvZGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgJiYgdHlwZW9mIGVycm9yLnN0YXR1cyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBlcnJvci5zdGF0dXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKS5waXBlKHB1Ymxpc2hSZWYoKSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIoY29udGV4dCQgfCBhc3luYyk/LiRpbXBsaWNpdFwiPlxuICA8bmctY29udGFpbmVyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJjb250ZXh0JCB8IGFzeW5jXCJcbiAgPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXZcbiAgKm5nSWY9XCIhKGNvbnRleHQkIHwgYXN5bmMpPy4kaW1wbGljaXRcIlxuICBjbGFzcz1cImFjbC1kYXRhLXN0YXRlXCJcbiAgW3N0eWxlLm1hcmdpblRvcF09XCJtYXJnaW5Ub3BcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWRhcHRlci5sb2FkaW5nJCB8IGFzeW5jXCI+XG4gICAgPGFjbC1sb2FkaW5nLW1hc2tcbiAgICAgIFtsb2FkaW5nXT1cInRydWVcIlxuICAgICAgdHlwZT1cIm1vZHVsZVwiXG4gICAgPjwvYWNsLWxvYWRpbmctbWFzaz5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGFkYXB0ZXIubG9hZGluZyQgfCBhc3luYykgJiYgISEoZXJyb3JDb2RlJCB8IGFzeW5jKVwiPlxuICAgIDxhY2wtZXJyb3Itc3RhdGVcbiAgICAgIFtlcnJvckNvZGVdPVwiZXJyb3JDb2RlJCB8IGFzeW5jXCJcbiAgICAgIFthdXRvUmVkaXJlY3RdPVwiYXV0b1JlZGlyZWN0XCJcbiAgICAgIFtzaG93QmFja0J1dHRvbl09XCJzaG93QmFja0J1dHRvblwiXG4gICAgICBbYmFja0xpbmtdPVwiYmFja0xpbmtcIlxuICAgICAgKHJlbG9hZCk9XCJhZGFwdGVyLnJlbG9hZCgpXCJcbiAgICAgIChyZWRpcmVjdCk9XCJyZWRpcmVjdC5lbWl0KClcIlxuICAgID48L2FjbC1lcnJvci1zdGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @module async-data
|
|
4
|
+
*/
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvYXN5bmMtZGF0YS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSBhc3luYy1kYXRhXG4gKi9cblxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhU3RhdGVBZGFwdGVyPEQ+IHtcbiAgcmF3RGF0YSQ6IE9ic2VydmFibGU8RD47XG4gIGRhdGEkOiBPYnNlcnZhYmxlPEQ+O1xuICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgZXJyb3IkOiBPYnNlcnZhYmxlPERhdGFFcnJvcj47XG4gIHJlbG9hZDogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgRmV0Y2hlcjxELCBQPiA9IChwYXJhbXM6IFApID0+IE9ic2VydmFibGU8RD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGVyQ29uZmlnPEQsIFA+IHtcbiAgZmV0Y2hlcjogRmV0Y2hlcjxELCBQPjtcbiAgcGFyYW1zJD86IE9ic2VydmFibGU8UD47XG4gIHBhcmFtcz86IFA7XG4gIGRhdGFGaWx0ZXI/OiAoZGF0YTogRCwgaW5kZXg6IG51bWJlcikgPT4gYm9vbGVhbjtcbiAgc2lsZW50PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2FkZXJDb25maWdXaXRoSW50ZXJ2YWw8RCwgUD4gZXh0ZW5kcyBMb2FkZXJDb25maWc8RCwgUD4ge1xuICBpbnRlcnZhbDogbnVtYmVyO1xuICBpbnRlcnZhbEZpbHRlcj86IChpbmRleDogbnVtYmVyKSA9PiBib29sZWFuO1xuICBjb21wYXJlOiBzdHJpbmdbXSB8ICgoYTogRCwgYjogRCkgPT4gYm9vbGVhbik7XG59XG5cbmV4cG9ydCB0eXBlIERhdGFFcnJvciA9IFBhcnRpYWw8SHR0cEVycm9yUmVzcG9uc2UgJiBTdGF0dXM+O1xuXG5leHBvcnQgdHlwZSBEYXRhTWFwcGVyPEQ+ID0gKGRhdGE6IEQpID0+IEQ7XG4iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @module code
|
|
4
|
+
*/
|
|
5
|
+
import { CodeEditorModule } from '@alauda/code-editor';
|
|
6
|
+
import { DIALOG_DATA, DIALOG_MODULE } from '@alauda/ui';
|
|
7
|
+
import { TranslatePipe } from '@alauda-fe/dynamic-plugin-sdk';
|
|
8
|
+
import { NgIf } from '@angular/common';
|
|
9
|
+
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
|
|
10
|
+
import { FormsModule } from '@angular/forms';
|
|
11
|
+
import { readonlyOptions, viewActions, } from '../code-editor-configs';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@alauda/ui";
|
|
14
|
+
import * as i2 from "@alauda/code-editor";
|
|
15
|
+
import * as i3 from "@angular/forms";
|
|
16
|
+
export class CodeDisplayDialogComponent {
|
|
17
|
+
constructor(data) {
|
|
18
|
+
this.data = data;
|
|
19
|
+
this.editorActions = viewActions;
|
|
20
|
+
this.codeEditorOptions = {
|
|
21
|
+
...readonlyOptions,
|
|
22
|
+
language: data.language || 'yaml',
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: CodeDisplayDialogComponent, deps: [{ token: DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: CodeDisplayDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<aui-dialog-header [divider]=\"false\">\n <div [class.ellipsis-dialog-header]=\"data.ellipsis\">\n <span [class.text-ellipsis]=\"data.ellipsis\">\n {{ data.title || ('view_yaml' | translate) }}\n </span>\n <span\n *ngIf=\"data.extra\"\n class=\"extra\"\n >{{ data.extra }}</span\n >\n </div>\n</aui-dialog-header>\n<aui-dialog-content>\n <aui-code-editor\n style=\"display: block; height: 65vh\"\n [ngModel]=\"data.code || ''\"\n [options]=\"codeEditorOptions\"\n [actionsConfig]=\"editorActions\"\n ></aui-code-editor>\n</aui-dialog-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.DialogHeaderComponent, selector: "aui-dialog-header", inputs: ["divider", "closeable", "result"] }, { kind: "component", type: i1.DialogContentComponent, selector: "aui-dialog-content" }, { kind: "ngmodule", type: CodeEditorModule }, { kind: "component", type: i2.CodeEditorComponent, selector: "aui-code-editor", inputs: ["options", "plain", "showLanguageLabel", "value", "originalValue", "actionsConfig", "previewMode", "diffMode", "modelUri"], outputs: ["editorChange", "editorBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: CodeDisplayDialogComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, DIALOG_MODULE, CodeEditorModule, FormsModule, TranslatePipe], template: "<aui-dialog-header [divider]=\"false\">\n <div [class.ellipsis-dialog-header]=\"data.ellipsis\">\n <span [class.text-ellipsis]=\"data.ellipsis\">\n {{ data.title || ('view_yaml' | translate) }}\n </span>\n <span\n *ngIf=\"data.extra\"\n class=\"extra\"\n >{{ data.extra }}</span\n >\n </div>\n</aui-dialog-header>\n<aui-dialog-content>\n <aui-code-editor\n style=\"display: block; height: 65vh\"\n [ngModel]=\"data.code || ''\"\n [options]=\"codeEditorOptions\"\n [actionsConfig]=\"editorActions\"\n ></aui-code-editor>\n</aui-dialog-content>\n" }]
|
|
31
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
32
|
+
type: Inject,
|
|
33
|
+
args: [DIALOG_DATA]
|
|
34
|
+
}] }] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvZGUtZWRpdG9yL2NvZGUtZGlzcGxheS1kaWFsb2cvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvZGUtZWRpdG9yL2NvZGUtZGlzcGxheS1kaWFsb2cvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBRUwsZUFBZSxFQUNmLFdBQVcsR0FDWixNQUFNLHdCQUF3QixDQUFDOzs7OztBQWlCaEMsTUFBTSxPQUFPLDBCQUEwQjtJQUtyQyxZQUVTLElBQTJCO1FBQTNCLFNBQUksR0FBSixJQUFJLENBQXVCO1FBSnBDLGtCQUFhLEdBQUcsV0FBVyxDQUFDO1FBTTFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRztZQUN2QixHQUFHLGVBQWU7WUFDbEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUksTUFBTTtTQUNsQyxDQUFDO0lBQ0osQ0FBQzs4R0FiVSwwQkFBMEIsa0JBTTNCLFdBQVc7a0dBTlYsMEJBQTBCLHdFQ2pDdkMsa2xCQW9CQSw0Q0RXWSxJQUFJLHNUQUFpQixnQkFBZ0IsOFJBQUUsV0FBVywwVkFBRSxhQUFhOzsyRkFFaEUsMEJBQTBCO2tCQVB0QyxTQUFTOzBDQUVhLEtBQUssbUJBQ1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUM7OzBCQVF6RSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSBjb2RlXG4gKi9cblxuaW1wb3J0IHsgQ29kZUVkaXRvck1vZHVsZSB9IGZyb20gJ0BhbGF1ZGEvY29kZS1lZGl0b3InO1xuaW1wb3J0IHsgRElBTE9HX0RBVEEsIERJQUxPR19NT0RVTEUgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAYWxhdWRhLWZlL2R5bmFtaWMtcGx1Z2luLXNkayc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7XG4gIElFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zLFxuICByZWFkb25seU9wdGlvbnMsXG4gIHZpZXdBY3Rpb25zLFxufSBmcm9tICcuLi9jb2RlLWVkaXRvci1jb25maWdzJztcblxuZXhwb3J0IGludGVyZmFjZSBDb2RlRGlzcGxheURpYWxvZ0RhdGEge1xuICBsYW5ndWFnZT86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGVsbGlwc2lzPzogYm9vbGVhbjtcbiAgZXh0cmE/OiBzdHJpbmc7XG4gIGNvZGU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIERJQUxPR19NT0RVTEUsIENvZGVFZGl0b3JNb2R1bGUsIEZvcm1zTW9kdWxlLCBUcmFuc2xhdGVQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29kZURpc3BsYXlEaWFsb2dDb21wb25lbnQge1xuICBjb2RlRWRpdG9yT3B0aW9uczogSUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnM7XG5cbiAgZWRpdG9yQWN0aW9ucyA9IHZpZXdBY3Rpb25zO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRElBTE9HX0RBVEEpXG4gICAgcHVibGljIGRhdGE6IENvZGVEaXNwbGF5RGlhbG9nRGF0YSxcbiAgKSB7XG4gICAgdGhpcy5jb2RlRWRpdG9yT3B0aW9ucyA9IHtcbiAgICAgIC4uLnJlYWRvbmx5T3B0aW9ucyxcbiAgICAgIGxhbmd1YWdlOiBkYXRhLmxhbmd1YWdlIHx8ICd5YW1sJyxcbiAgICB9O1xuICB9XG59XG4iLCI8YXVpLWRpYWxvZy1oZWFkZXIgW2RpdmlkZXJdPVwiZmFsc2VcIj5cbiAgPGRpdiBbY2xhc3MuZWxsaXBzaXMtZGlhbG9nLWhlYWRlcl09XCJkYXRhLmVsbGlwc2lzXCI+XG4gICAgPHNwYW4gW2NsYXNzLnRleHQtZWxsaXBzaXNdPVwiZGF0YS5lbGxpcHNpc1wiPlxuICAgICAge3sgZGF0YS50aXRsZSB8fCAoJ3ZpZXdfeWFtbCcgfCB0cmFuc2xhdGUpIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICAqbmdJZj1cImRhdGEuZXh0cmFcIlxuICAgICAgY2xhc3M9XCJleHRyYVwiXG4gICAgICA+e3sgZGF0YS5leHRyYSB9fTwvc3BhblxuICAgID5cbiAgPC9kaXY+XG48L2F1aS1kaWFsb2ctaGVhZGVyPlxuPGF1aS1kaWFsb2ctY29udGVudD5cbiAgPGF1aS1jb2RlLWVkaXRvclxuICAgIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IGhlaWdodDogNjV2aFwiXG4gICAgW25nTW9kZWxdPVwiZGF0YS5jb2RlIHx8ICcnXCJcbiAgICBbb3B0aW9uc109XCJjb2RlRWRpdG9yT3B0aW9uc1wiXG4gICAgW2FjdGlvbnNDb25maWddPVwiZWRpdG9yQWN0aW9uc1wiXG4gID48L2F1aS1jb2RlLWVkaXRvcj5cbjwvYXVpLWRpYWxvZy1jb250ZW50PlxuIl19
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @module code
|
|
4
|
+
*/
|
|
5
|
+
const commonActions = {
|
|
6
|
+
copy: true,
|
|
7
|
+
find: true,
|
|
8
|
+
export: true,
|
|
9
|
+
};
|
|
10
|
+
export const createActions = {
|
|
11
|
+
diffMode: false,
|
|
12
|
+
clear: true,
|
|
13
|
+
recover: false,
|
|
14
|
+
import: true,
|
|
15
|
+
...commonActions,
|
|
16
|
+
};
|
|
17
|
+
export const viewActions = {
|
|
18
|
+
diffMode: false,
|
|
19
|
+
clear: false,
|
|
20
|
+
recover: false,
|
|
21
|
+
import: false,
|
|
22
|
+
...commonActions,
|
|
23
|
+
};
|
|
24
|
+
export const updateActions = {
|
|
25
|
+
diffMode: true, // if true, you should also set 'originalValue' attribute, eg: <aui-code-editor [originalValue]="originalFile"></aui-code-editor>
|
|
26
|
+
clear: true,
|
|
27
|
+
recover: true,
|
|
28
|
+
import: true,
|
|
29
|
+
...commonActions,
|
|
30
|
+
};
|
|
31
|
+
export const logsActions = {
|
|
32
|
+
...viewActions,
|
|
33
|
+
theme: true,
|
|
34
|
+
};
|
|
35
|
+
export const commonOptions = {
|
|
36
|
+
folding: true,
|
|
37
|
+
minimap: { enabled: false },
|
|
38
|
+
wordWrap: 'on',
|
|
39
|
+
tabSize: 2,
|
|
40
|
+
scrollbar: {
|
|
41
|
+
alwaysConsumeMouseWheel: false,
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
export const readonlyOptions = {
|
|
45
|
+
...commonOptions,
|
|
46
|
+
readOnly: true,
|
|
47
|
+
};
|
|
48
|
+
export const yamlReadOptions = {
|
|
49
|
+
language: 'yaml',
|
|
50
|
+
...readonlyOptions,
|
|
51
|
+
};
|
|
52
|
+
export const yamlWriteOptions = {
|
|
53
|
+
language: 'yaml',
|
|
54
|
+
...commonOptions,
|
|
55
|
+
};
|
|
56
|
+
export const textWriteOptions = {
|
|
57
|
+
language: 'text',
|
|
58
|
+
...commonOptions,
|
|
59
|
+
};
|
|
60
|
+
// for logs
|
|
61
|
+
export const logsReadOptions = {
|
|
62
|
+
wordWrap: 'on',
|
|
63
|
+
readOnly: true,
|
|
64
|
+
renderLineHighlight: 'none',
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3ItY29uZmlncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy9jb2RlLWVkaXRvci9jb2RlLWVkaXRvci1jb25maWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQVVILE1BQU0sYUFBYSxHQUE0QjtJQUM3QyxJQUFJLEVBQUUsSUFBSTtJQUNWLElBQUksRUFBRSxJQUFJO0lBQ1YsTUFBTSxFQUFFLElBQUk7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUE0QjtJQUNwRCxRQUFRLEVBQUUsS0FBSztJQUNmLEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLEtBQUs7SUFDZCxNQUFNLEVBQUUsSUFBSTtJQUNaLEdBQUcsYUFBYTtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUE0QjtJQUNsRCxRQUFRLEVBQUUsS0FBSztJQUNmLEtBQUssRUFBRSxLQUFLO0lBQ1osT0FBTyxFQUFFLEtBQUs7SUFDZCxNQUFNLEVBQUUsS0FBSztJQUNiLEdBQUcsYUFBYTtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUE0QjtJQUNwRCxRQUFRLEVBQUUsSUFBSSxFQUFFLGlJQUFpSTtJQUNqSixLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxJQUFJO0lBQ2IsTUFBTSxFQUFFLElBQUk7SUFDWixHQUFHLGFBQWE7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBNEI7SUFDbEQsR0FBRyxXQUFXO0lBQ2QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUErQjtJQUN2RCxPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7SUFDM0IsUUFBUSxFQUFFLElBQUk7SUFDZCxPQUFPLEVBQUUsQ0FBQztJQUNWLFNBQVMsRUFBRTtRQUNULHVCQUF1QixFQUFFLEtBQUs7S0FDL0I7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUErQjtJQUN6RCxHQUFHLGFBQWE7SUFDaEIsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUErQjtJQUN6RCxRQUFRLEVBQUUsTUFBTTtJQUNoQixHQUFHLGVBQWU7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUErQjtJQUMxRCxRQUFRLEVBQUUsTUFBTTtJQUNoQixHQUFHLGFBQWE7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUErQjtJQUMxRCxRQUFRLEVBQUUsTUFBTTtJQUNoQixHQUFHLGFBQWE7Q0FDakIsQ0FBQztBQUVGLFdBQVc7QUFDWCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQStCO0lBQ3pELFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxtQkFBbUIsRUFBRSxNQUFNO0NBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSBjb2RlXG4gKi9cblxuaW1wb3J0IHsgQ29kZUVkaXRvckFjdGlvbnNDb25maWcgfSBmcm9tICdAYWxhdWRhL2NvZGUtZWRpdG9yJztcblxuZXhwb3J0IHR5cGUgSUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMgPVxuICBpbXBvcnQoJ21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9lZGl0b3IuYXBpJykuZWRpdG9yLklFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zICYge1xuICAgIGxhbmd1YWdlPzogc3RyaW5nO1xuICAgIHRhYlNpemU/OiBudW1iZXI7XG4gIH07XG5cbmNvbnN0IGNvbW1vbkFjdGlvbnM6IENvZGVFZGl0b3JBY3Rpb25zQ29uZmlnID0ge1xuICBjb3B5OiB0cnVlLFxuICBmaW5kOiB0cnVlLFxuICBleHBvcnQ6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQWN0aW9uczogQ29kZUVkaXRvckFjdGlvbnNDb25maWcgPSB7XG4gIGRpZmZNb2RlOiBmYWxzZSxcbiAgY2xlYXI6IHRydWUsXG4gIHJlY292ZXI6IGZhbHNlLFxuICBpbXBvcnQ6IHRydWUsXG4gIC4uLmNvbW1vbkFjdGlvbnMsXG59O1xuXG5leHBvcnQgY29uc3Qgdmlld0FjdGlvbnM6IENvZGVFZGl0b3JBY3Rpb25zQ29uZmlnID0ge1xuICBkaWZmTW9kZTogZmFsc2UsXG4gIGNsZWFyOiBmYWxzZSxcbiAgcmVjb3ZlcjogZmFsc2UsXG4gIGltcG9ydDogZmFsc2UsXG4gIC4uLmNvbW1vbkFjdGlvbnMsXG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQWN0aW9uczogQ29kZUVkaXRvckFjdGlvbnNDb25maWcgPSB7XG4gIGRpZmZNb2RlOiB0cnVlLCAvLyBpZiB0cnVlLCB5b3Ugc2hvdWxkIGFsc28gc2V0ICdvcmlnaW5hbFZhbHVlJyBhdHRyaWJ1dGUsIGVnOiA8YXVpLWNvZGUtZWRpdG9yIFtvcmlnaW5hbFZhbHVlXT1cIm9yaWdpbmFsRmlsZVwiPjwvYXVpLWNvZGUtZWRpdG9yPlxuICBjbGVhcjogdHJ1ZSxcbiAgcmVjb3ZlcjogdHJ1ZSxcbiAgaW1wb3J0OiB0cnVlLFxuICAuLi5jb21tb25BY3Rpb25zLFxufTtcblxuZXhwb3J0IGNvbnN0IGxvZ3NBY3Rpb25zOiBDb2RlRWRpdG9yQWN0aW9uc0NvbmZpZyA9IHtcbiAgLi4udmlld0FjdGlvbnMsXG4gIHRoZW1lOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IGNvbW1vbk9wdGlvbnM6IElFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zID0ge1xuICBmb2xkaW5nOiB0cnVlLFxuICBtaW5pbWFwOiB7IGVuYWJsZWQ6IGZhbHNlIH0sXG4gIHdvcmRXcmFwOiAnb24nLFxuICB0YWJTaXplOiAyLFxuICBzY3JvbGxiYXI6IHtcbiAgICBhbHdheXNDb25zdW1lTW91c2VXaGVlbDogZmFsc2UsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgcmVhZG9ubHlPcHRpb25zOiBJRWRpdG9yQ29uc3RydWN0aW9uT3B0aW9ucyA9IHtcbiAgLi4uY29tbW9uT3B0aW9ucyxcbiAgcmVhZE9ubHk6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgeWFtbFJlYWRPcHRpb25zOiBJRWRpdG9yQ29uc3RydWN0aW9uT3B0aW9ucyA9IHtcbiAgbGFuZ3VhZ2U6ICd5YW1sJyxcbiAgLi4ucmVhZG9ubHlPcHRpb25zLFxufTtcblxuZXhwb3J0IGNvbnN0IHlhbWxXcml0ZU9wdGlvbnM6IElFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zID0ge1xuICBsYW5ndWFnZTogJ3lhbWwnLFxuICAuLi5jb21tb25PcHRpb25zLFxufTtcblxuZXhwb3J0IGNvbnN0IHRleHRXcml0ZU9wdGlvbnM6IElFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zID0ge1xuICBsYW5ndWFnZTogJ3RleHQnLFxuICAuLi5jb21tb25PcHRpb25zLFxufTtcblxuLy8gZm9yIGxvZ3NcbmV4cG9ydCBjb25zdCBsb2dzUmVhZE9wdGlvbnM6IElFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zID0ge1xuICB3b3JkV3JhcDogJ29uJyxcbiAgcmVhZE9ubHk6IHRydWUsXG4gIHJlbmRlckxpbmVIaWdobGlnaHQ6ICdub25lJyxcbn07XG4iXX0=
|