@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,227 @@
|
|
|
1
|
+
const MAX_DIGITS = 22;
|
|
2
|
+
const DECIMAL_SEP = '.';
|
|
3
|
+
const ZERO_CHAR = '0';
|
|
4
|
+
const SymbolInfinity = '∞';
|
|
5
|
+
const SymbolDecimal = '.';
|
|
6
|
+
const SymbolGroup = '';
|
|
7
|
+
const SymbolExponential = 'E';
|
|
8
|
+
const SymbolNumberPattern = {
|
|
9
|
+
gSize: 3,
|
|
10
|
+
lgSize: 3,
|
|
11
|
+
maxFrac: 3,
|
|
12
|
+
minFrac: 0,
|
|
13
|
+
minInt: 1,
|
|
14
|
+
negPre: '-',
|
|
15
|
+
negSuf: '',
|
|
16
|
+
posPre: '',
|
|
17
|
+
posSuf: '',
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Transforms a number to a locale string based on a style and a format
|
|
21
|
+
*/
|
|
22
|
+
function formatNumberToLocaleString(value, pattern, digitsInfo) {
|
|
23
|
+
let formattedText = '';
|
|
24
|
+
let isZero = false;
|
|
25
|
+
if (isFinite(value)) {
|
|
26
|
+
const parsedNumber = parseNumber(value);
|
|
27
|
+
const minInt = digitsInfo[0] || 0;
|
|
28
|
+
const minFraction = digitsInfo[1] || 0;
|
|
29
|
+
const maxFraction = digitsInfo[2] || 0;
|
|
30
|
+
roundNumber(parsedNumber, minFraction, maxFraction);
|
|
31
|
+
let digits = parsedNumber.digits;
|
|
32
|
+
let integerLen = parsedNumber.integerLen;
|
|
33
|
+
const exponent = parsedNumber.exponent;
|
|
34
|
+
let decimals = [];
|
|
35
|
+
isZero = digits.every(d => !d);
|
|
36
|
+
// pad zeros for small numbers
|
|
37
|
+
for (; integerLen < minInt; integerLen++) {
|
|
38
|
+
digits.unshift(0);
|
|
39
|
+
}
|
|
40
|
+
// pad zeros for small numbers
|
|
41
|
+
for (; integerLen < 0; integerLen++) {
|
|
42
|
+
digits.unshift(0);
|
|
43
|
+
}
|
|
44
|
+
// extract decimals digits
|
|
45
|
+
if (integerLen > 0) {
|
|
46
|
+
decimals = digits.splice(integerLen, digits.length);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
decimals = digits;
|
|
50
|
+
digits = [0];
|
|
51
|
+
}
|
|
52
|
+
// format the integer digits with grouping separators
|
|
53
|
+
const groups = [];
|
|
54
|
+
if (digits.length >= pattern.lgSize) {
|
|
55
|
+
groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));
|
|
56
|
+
}
|
|
57
|
+
while (digits.length > pattern.gSize) {
|
|
58
|
+
groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));
|
|
59
|
+
}
|
|
60
|
+
if (digits.length > 0) {
|
|
61
|
+
groups.unshift(digits.join(''));
|
|
62
|
+
}
|
|
63
|
+
formattedText = groups.join(SymbolGroup);
|
|
64
|
+
// append the decimal digits
|
|
65
|
+
if (decimals.length > 0) {
|
|
66
|
+
formattedText += SymbolDecimal + decimals.join('');
|
|
67
|
+
}
|
|
68
|
+
if (exponent) {
|
|
69
|
+
formattedText += SymbolExponential + '+' + exponent;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
formattedText = SymbolInfinity;
|
|
74
|
+
}
|
|
75
|
+
formattedText =
|
|
76
|
+
value < 0 && !isZero
|
|
77
|
+
? pattern.negPre + formattedText + pattern.negSuf
|
|
78
|
+
: pattern.posPre + formattedText + pattern.posSuf;
|
|
79
|
+
return formattedText;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @ngModule CommonModule
|
|
83
|
+
*
|
|
84
|
+
* Formats a number as text. Group sizing and separator and other locale-specific
|
|
85
|
+
* configurations are based on the locale.
|
|
86
|
+
*
|
|
87
|
+
* Where:
|
|
88
|
+
* - `value` is a number.
|
|
89
|
+
* - `digitInfo` See {@link DecimalPipe} for more details.
|
|
90
|
+
*/
|
|
91
|
+
export function formatNumber(value, digitsInfo) {
|
|
92
|
+
return formatNumberToLocaleString(value, SymbolNumberPattern, digitsInfo);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Parses a number.
|
|
96
|
+
* Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/
|
|
97
|
+
*/
|
|
98
|
+
function parseNumber(num) {
|
|
99
|
+
let numStr = Math.abs(num) + '';
|
|
100
|
+
let exponent = 0;
|
|
101
|
+
let digits;
|
|
102
|
+
let integerLen;
|
|
103
|
+
let i;
|
|
104
|
+
let j;
|
|
105
|
+
let zeros;
|
|
106
|
+
// Decimal point?
|
|
107
|
+
if ((integerLen = numStr.indexOf(DECIMAL_SEP)) > -1) {
|
|
108
|
+
numStr = numStr.replace(DECIMAL_SEP, '');
|
|
109
|
+
}
|
|
110
|
+
// Exponential form?
|
|
111
|
+
if ((i = numStr.search(/e/i)) > 0) {
|
|
112
|
+
// Work out the exponent.
|
|
113
|
+
if (integerLen < 0) {
|
|
114
|
+
integerLen = i;
|
|
115
|
+
}
|
|
116
|
+
integerLen += +numStr.slice(i + 1);
|
|
117
|
+
numStr = numStr.slice(0, Math.max(0, i));
|
|
118
|
+
}
|
|
119
|
+
else if (integerLen < 0) {
|
|
120
|
+
// There was no decimal point or exponent so it is an integer.
|
|
121
|
+
integerLen = numStr.length;
|
|
122
|
+
}
|
|
123
|
+
// Count the number of leading zeros.
|
|
124
|
+
for (i = 0; numStr.charAt(i) === ZERO_CHAR; i++) {
|
|
125
|
+
/* empty */
|
|
126
|
+
}
|
|
127
|
+
if (i === (zeros = numStr.length)) {
|
|
128
|
+
// The digits are all zero.
|
|
129
|
+
digits = [0];
|
|
130
|
+
integerLen = 1;
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// Count the number of trailing zeros
|
|
134
|
+
zeros--;
|
|
135
|
+
while (numStr.charAt(zeros) === ZERO_CHAR) {
|
|
136
|
+
zeros--;
|
|
137
|
+
}
|
|
138
|
+
// Trailing zeros are insignificant so ignore them
|
|
139
|
+
integerLen -= i;
|
|
140
|
+
digits = [];
|
|
141
|
+
// Convert string to array of digits without leading/trailing zeros.
|
|
142
|
+
for (j = 0; i <= zeros; i++, j++) {
|
|
143
|
+
digits[j] = Number(numStr.charAt(i));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// If the number overflows the maximum allowed digits then use an exponent.
|
|
147
|
+
if (integerLen > MAX_DIGITS) {
|
|
148
|
+
digits = digits.splice(0, MAX_DIGITS - 1);
|
|
149
|
+
exponent = integerLen - 1;
|
|
150
|
+
integerLen = 1;
|
|
151
|
+
}
|
|
152
|
+
return { digits, exponent, integerLen };
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Round the parsed number to the specified number of decimal places
|
|
156
|
+
* This function changes the parsedNumber in-place
|
|
157
|
+
*/
|
|
158
|
+
function roundNumber(parsedNumber, minFrac, maxFrac) {
|
|
159
|
+
if (minFrac > maxFrac) {
|
|
160
|
+
throw new Error(`The minimum number of digits after fraction (${minFrac}) is higher than the maximum (${maxFrac}).`);
|
|
161
|
+
}
|
|
162
|
+
const digits = parsedNumber.digits;
|
|
163
|
+
let fractionLen = digits.length - parsedNumber.integerLen;
|
|
164
|
+
const fractionSize = Math.min(Math.max(minFrac, fractionLen), maxFrac);
|
|
165
|
+
// The index of the digit to where rounding is to occur
|
|
166
|
+
let roundAt = fractionSize + parsedNumber.integerLen;
|
|
167
|
+
const digit = digits[roundAt];
|
|
168
|
+
if (roundAt > 0) {
|
|
169
|
+
// Drop fractional digits beyond `roundAt`
|
|
170
|
+
digits.splice(Math.max(parsedNumber.integerLen, roundAt));
|
|
171
|
+
// Set non-fractional digits beyond `roundAt` to 0
|
|
172
|
+
for (let j = roundAt; j < digits.length; j++) {
|
|
173
|
+
digits[j] = 0;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
// We rounded to zero so reset the parsedNumber
|
|
178
|
+
fractionLen = Math.max(0, fractionLen);
|
|
179
|
+
parsedNumber.integerLen = 1;
|
|
180
|
+
digits.length = Math.max(1, (roundAt = fractionSize + 1));
|
|
181
|
+
digits[0] = 0;
|
|
182
|
+
for (let i = 1; i < roundAt; i++) {
|
|
183
|
+
digits[i] = 0;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (digit >= 5) {
|
|
187
|
+
if (roundAt - 1 < 0) {
|
|
188
|
+
for (let k = 0; k > roundAt; k--) {
|
|
189
|
+
digits.unshift(0);
|
|
190
|
+
parsedNumber.integerLen++;
|
|
191
|
+
}
|
|
192
|
+
digits.unshift(1);
|
|
193
|
+
parsedNumber.integerLen++;
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
digits[roundAt - 1]++;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// Pad out with zeros to get the required fraction length
|
|
200
|
+
for (; fractionLen < Math.max(0, fractionSize); fractionLen++) {
|
|
201
|
+
digits.push(0);
|
|
202
|
+
}
|
|
203
|
+
let dropTrailingZeros = fractionSize !== 0;
|
|
204
|
+
// Minimal length = nb of decimals required + current nb of integers
|
|
205
|
+
// Any number besides that is optional and can be removed if it's a trailing 0
|
|
206
|
+
const minLen = minFrac + parsedNumber.integerLen;
|
|
207
|
+
// Do any carrying, e.g. a digit was rounded up to 10
|
|
208
|
+
const carry = digits.reduceRight((c, d, i, ds) => {
|
|
209
|
+
d = d + c;
|
|
210
|
+
ds[i] = d < 10 ? d : d - 10; // d % 10
|
|
211
|
+
if (dropTrailingZeros) {
|
|
212
|
+
// Do not keep meaningless fractional trailing zeros (e.g. 15.52000 --> 15.52)
|
|
213
|
+
if (ds[i] === 0 && i >= minLen) {
|
|
214
|
+
ds.pop();
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
dropTrailingZeros = false;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return d >= 10 ? 1 : 0;
|
|
221
|
+
}, 0);
|
|
222
|
+
if (carry) {
|
|
223
|
+
digits.unshift(carry);
|
|
224
|
+
parsedNumber.integerLen++;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LW51bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy91dGlscy9mb3JtYXQtbnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFDeEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUMzQixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUM7QUFDMUIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBQ3ZCLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDO0FBQzlCLE1BQU0sbUJBQW1CLEdBQUc7SUFDMUIsS0FBSyxFQUFFLENBQUM7SUFDUixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxDQUFDO0lBQ1YsT0FBTyxFQUFFLENBQUM7SUFDVixNQUFNLEVBQUUsQ0FBQztJQUNULE1BQU0sRUFBRSxHQUFHO0lBQ1gsTUFBTSxFQUFFLEVBQUU7SUFDVixNQUFNLEVBQUUsRUFBRTtJQUNWLE1BQU0sRUFBRSxFQUFFO0NBQ1gsQ0FBQztBQUVGOztHQUVHO0FBRUgsU0FBUywwQkFBMEIsQ0FDakMsS0FBYSxFQUNiLE9BQTJCLEVBQzNCLFVBQXFCO0lBRXJCLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN2QixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFbkIsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFD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QUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTUFYX0RJR0lUUyA9IDIyO1xuY29uc3QgREVDSU1BTF9TRVAgPSAnLic7XG5jb25zdCBaRVJPX0NIQVIgPSAnMCc7XG5jb25zdCBTeW1ib2xJbmZpbml0eSA9ICfiiJ4nO1xuY29uc3QgU3ltYm9sRGVjaW1hbCA9ICcuJztcbmNvbnN0IFN5bWJvbEdyb3VwID0gJyc7XG5jb25zdCBTeW1ib2xFeHBvbmVudGlhbCA9ICdFJztcbmNvbnN0IFN5bWJvbE51bWJlclBhdHRlcm4gPSB7XG4gIGdTaXplOiAzLFxuICBsZ1NpemU6IDMsXG4gIG1heEZyYWM6IDMsXG4gIG1pbkZyYWM6IDAsXG4gIG1pbkludDogMSxcbiAgbmVnUHJlOiAnLScsXG4gIG5lZ1N1ZjogJycsXG4gIHBvc1ByZTogJycsXG4gIHBvc1N1ZjogJycsXG59O1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgYSBudW1iZXIgdG8gYSBsb2NhbGUgc3RyaW5nIGJhc2VkIG9uIGEgc3R5bGUgYW5kIGEgZm9ybWF0XG4gKi9cblxuZnVuY3Rpb24gZm9ybWF0TnVtYmVyVG9Mb2NhbGVTdHJpbmcoXG4gIHZhbHVlOiBudW1iZXIsXG4gIHBhdHRlcm46IFBhcnNlZE51bWJlckZvcm1hdCxcbiAgZGlnaXRzSW5mbz86IG51bWJlcltdLFxuKTogc3RyaW5nIHtcbiAgbGV0IGZvcm1hdHRlZFRleHQgPSAnJztcbiAgbGV0IGlzWmVybyA9IGZhbHNlO1xuXG4gIGlmIChpc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICBjb25zdCBwYXJzZWROdW1iZXIgPSBwYXJzZU51bWJlcih2YWx1ZSk7XG5cbiAgICBjb25zdCBtaW5JbnQgPSBkaWdpdHNJbmZvWzBdIHx8IDA7XG4gICAgY29uc3QgbWluRnJhY3Rpb24gPSBkaWdpdHNJbmZvWzFdIHx8IDA7XG4gICAgY29uc3QgbWF4RnJhY3Rpb24gPSBkaWdpdHNJbmZvWzJdIHx8IDA7XG5cbiAgICByb3VuZE51bWJlcihwYXJzZWROdW1iZXIsIG1pbkZyYWN0aW9uLCBtYXhGcmFjdGlvbik7XG5cbiAgICBsZXQgZGlnaXRzID0gcGFyc2VkTnVtYmVyLmRpZ2l0cztcbiAgICBsZXQgaW50ZWdlckxlbiA9IHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuO1xuICAgIGNvbnN0IGV4cG9uZW50ID0gcGFyc2VkTnVtYmVyLmV4cG9uZW50O1xuICAgIGxldCBkZWNpbWFscyA9IFtdO1xuICAgIGlzWmVybyA9IGRpZ2l0cy5ldmVyeShkID0+ICFkKTtcblxuICAgIC8vIHBhZCB6ZXJvcyBmb3Igc21hbGwgbnVtYmVyc1xuICAgIGZvciAoOyBpbnRlZ2VyTGVuIDwgbWluSW50OyBpbnRlZ2VyTGVuKyspIHtcbiAgICAgIGRpZ2l0cy51bnNoaWZ0KDApO1xuICAgIH1cblxuICAgIC8vIHBhZCB6ZXJvcyBmb3Igc21hbGwgbnVtYmVyc1xuICAgIGZvciAoOyBpbnRlZ2VyTGVuIDwgMDsgaW50ZWdlckxlbisrKSB7XG4gICAgICBkaWdpdHMudW5zaGlmdCgwKTtcbiAgICB9XG5cbiAgICAvLyBleHRyYWN0IGRlY2ltYWxzIGRpZ2l0c1xuICAgIGlmIChpbnRlZ2VyTGVuID4gMCkge1xuICAgICAgZGVjaW1hbHMgPSBkaWdpdHMuc3BsaWNlKGludGVnZXJMZW4sIGRpZ2l0cy5sZW5ndGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWNpbWFscyA9IGRpZ2l0cztcbiAgICAgIGRpZ2l0cyA9IFswXTtcbiAgICB9XG5cbiAgICAvLyBmb3JtYXQgdGhlIGludGVnZXIgZGlnaXRzIHdpdGggZ3JvdXBpbmcgc2VwYXJhdG9yc1xuICAgIGNvbnN0IGdyb3VwcyA9IFtdO1xuICAgIGlmIChkaWdpdHMubGVuZ3RoID49IHBhdHRlcm4ubGdTaXplKSB7XG4gICAgICBncm91cHMudW5zaGlmdChkaWdpdHMuc3BsaWNlKC1wYXR0ZXJuLmxnU2l6ZSwgZGlnaXRzLmxlbmd0aCkuam9pbignJykpO1xuICAgIH1cblxuICAgIHdoaWxlIChkaWdpdHMubGVuZ3RoID4gcGF0dGVybi5nU2l6ZSkge1xuICAgICAgZ3JvdXBzLnVuc2hpZnQoZGlnaXRzLnNwbGljZSgtcGF0dGVybi5nU2l6ZSwgZGlnaXRzLmxlbmd0aCkuam9pbignJykpO1xuICAgIH1cblxuICAgIGlmIChkaWdpdHMubGVuZ3RoID4gMCkge1xuICAgICAgZ3JvdXBzLnVuc2hpZnQoZGlnaXRzLmpvaW4oJycpKTtcbiAgICB9XG5cbiAgICBmb3JtYXR0ZWRUZXh0ID0gZ3JvdXBzLmpvaW4oU3ltYm9sR3JvdXApO1xuXG4gICAgLy8gYXBwZW5kIHRoZSBkZWNpbWFsIGRpZ2l0c1xuICAgIGlmIChkZWNpbWFscy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3JtYXR0ZWRUZXh0ICs9IFN5bWJvbERlY2ltYWwgKyBkZWNpbWFscy5qb2luKCcnKTtcbiAgICB9XG5cbiAgICBpZiAoZXhwb25lbnQpIHtcbiAgICAgIGZvcm1hdHRlZFRleHQgKz0gU3ltYm9sRXhwb25lbnRpYWwgKyAnKycgKyBleHBvbmVudDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9ybWF0dGVkVGV4dCA9IFN5bWJvbEluZmluaXR5O1xuICB9XG5cbiAgZm9ybWF0dGVkVGV4dCA9XG4gICAgdmFsdWUgPCAwICYmICFpc1plcm9cbiAgICAgID8gcGF0dGVybi5uZWdQcmUgKyBmb3JtYXR0ZWRUZXh0ICsgcGF0dGVybi5uZWdTdWZcbiAgICAgIDogcGF0dGVybi5wb3NQcmUgKyBmb3JtYXR0ZWRUZXh0ICsgcGF0dGVybi5wb3NTdWY7XG5cbiAgcmV0dXJuIGZvcm1hdHRlZFRleHQ7XG59XG5cbi8qKlxuICogQG5nTW9kdWxlIENvbW1vbk1vZHVsZVxuICpcbiAqIEZvcm1hdHMgYSBudW1iZXIgYXMgdGV4dC4gR3JvdXAgc2l6aW5nIGFuZCBzZXBhcmF0b3IgYW5kIG90aGVyIGxvY2FsZS1zcGVjaWZpY1xuICogY29uZmlndXJhdGlvbnMgYXJlIGJhc2VkIG9uIHRoZSBsb2NhbGUuXG4gKlxuICogV2hlcmU6XG4gKiAtIGB2YWx1ZWAgaXMgYSBudW1iZXIuXG4gKiAtIGBkaWdpdEluZm9gIFNlZSB7QGxpbmsgRGVjaW1hbFBpcGV9IGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlciwgZGlnaXRzSW5mbz86IG51bWJlcltdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZvcm1hdE51bWJlclRvTG9jYWxlU3RyaW5nKHZhbHVlLCBTeW1ib2xOdW1iZXJQYXR0ZXJuLCBkaWdpdHNJbmZvKTtcbn1cblxuaW50ZXJmYWNlIFBhcnNlZE51bWJlckZvcm1hdCB7XG4gIG1pbkludDogbnVtYmVyO1xuICAvLyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIHJlcXVpcmVkIGluIHRoZSBmcmFjdGlvbiBwYXJ0IG9mIHRoZSBudW1iZXJcbiAgbWluRnJhYzogbnVtYmVyO1xuICAvLyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIHJlcXVpcmVkIGluIHRoZSBmcmFjdGlvbiBwYXJ0IG9mIHRoZSBudW1iZXJcbiAgbWF4RnJhYzogbnVtYmVyO1xuICAvLyB0aGUgcHJlZml4IGZvciBhIHBvc2l0aXZlIG51bWJlclxuICBwb3NQcmU6IHN0cmluZztcbiAgLy8gdGhlIHN1ZmZpeCBmb3IgYSBwb3NpdGl2ZSBudW1iZXJcbiAgcG9zU3VmOiBzdHJpbmc7XG4gIC8vIHRoZSBwcmVmaXggZm9yIGEgbmVnYXRpdmUgbnVtYmVyIChlLmcuIGAtYCBvciBgKGApKVxuICBuZWdQcmU6IHN0cmluZztcbiAgLy8gdGhlIHN1ZmZpeCBmb3IgYSBuZWdhdGl2ZSBudW1iZXIgKGUuZy4gYClgKVxuICBuZWdTdWY6IHN0cmluZztcbiAgLy8gbnVtYmVyIG9mIGRpZ2l0cyBpbiBlYWNoIGdyb3VwIG9mIHNlcGFyYXRlZCBkaWdpdHNcbiAgZ1NpemU6IG51bWJlcjtcbiAgLy8gbnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgbGFzdCBncm91cCBvZiBkaWdpdHMgYmVmb3JlIHRoZSBkZWNpbWFsIHNlcGFyYXRvclxuICBsZ1NpemU6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFBhcnNlZE51bWJlciB7XG4gIC8vIGFuIGFycmF5IG9mIGRpZ2l0cyBjb250YWluaW5nIGxlYWRpbmcgemVyb3MgYXMgbmVjZXNzYXJ5XG4gIGRpZ2l0czogbnVtYmVyW107XG4gIC8vIHRoZSBleHBvbmVudCBmb3IgbnVtYmVycyB0aGF0IHdvdWxkIG5lZWQgbW9yZSB0aGFuIGBNQVhfRElHSVRTYCBkaWdpdHMgaW4gYGRgXG4gIGV4cG9uZW50OiBudW1iZXI7XG4gIC8vIHRoZSBudW1iZXIgb2YgdGhlIGRpZ2l0cyBpbiBgZGAgdGhhdCBhcmUgdG8gdGhlIGxlZnQgb2YgdGhlIGRlY2ltYWwgcG9pbnRcbiAgaW50ZWdlckxlbjogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcnNlcyBhIG51bWJlci5cbiAqIFNpZ25pZmljYW50IGJpdHMgb2YgdGhpcyBwYXJzZSBhbGdvcml0aG0gY2FtZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWtlTWNsL2JpZy5qcy9cbiAqL1xuZnVuY3Rpb24gcGFyc2VOdW1iZXIobnVtOiBudW1iZXIpOiBQYXJzZWROdW1iZXIge1xuICBsZXQgbnVtU3RyID0gTWF0aC5hYnMobnVtKSArICcnO1xuICBsZXQgZXhwb25lbnQgPSAwO1xuICBsZXQgZGlnaXRzOiBudW1iZXJbXTtcbiAgbGV0IGludGVnZXJMZW46IG51bWJlcjtcbiAgbGV0IGk6IG51bWJlcjtcbiAgbGV0IGo6IG51bWJlcjtcbiAgbGV0IHplcm9zOiBudW1iZXI7XG5cbiAgLy8gRGVjaW1hbCBwb2ludD9cbiAgaWYgKChpbnRlZ2VyTGVuID0gbnVtU3RyLmluZGV4T2YoREVDSU1BTF9TRVApKSA+IC0xKSB7XG4gICAgbnVtU3RyID0gbnVtU3RyLnJlcGxhY2UoREVDSU1BTF9TRVAsICcnKTtcbiAgfVxuXG4gIC8vIEV4cG9uZW50aWFsIGZvcm0/XG4gIGlmICgoaSA9IG51bVN0ci5zZWFyY2goL2UvaSkpID4gMCkge1xuICAgIC8vIFdvcmsgb3V0IHRoZSBleHBvbmVudC5cbiAgICBpZiAoaW50ZWdlckxlbiA8IDApIHtcbiAgICAgIGludGVnZXJMZW4gPSBpO1xuICAgIH1cbiAgICBpbnRlZ2VyTGVuICs9ICtudW1TdHIuc2xpY2UoaSArIDEpO1xuICAgIG51bVN0ciA9IG51bVN0ci5zbGljZSgwLCBNYXRoLm1heCgwLCBpKSk7XG4gIH0gZWxzZSBpZiAoaW50ZWdlckxlbiA8IDApIHtcbiAgICAvLyBUaGVyZSB3YXMgbm8gZGVjaW1hbCBwb2ludCBvciBleHBvbmVudCBzbyBpdCBpcyBhbiBpbnRlZ2VyLlxuICAgIGludGVnZXJMZW4gPSBudW1TdHIubGVuZ3RoO1xuICB9XG5cbiAgLy8gQ291bnQgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm9zLlxuICBmb3IgKGkgPSAwOyBudW1TdHIuY2hhckF0KGkpID09PSBaRVJPX0NIQVI7IGkrKykge1xuICAgIC8qIGVtcHR5ICovXG4gIH1cblxuICBpZiAoaSA9PT0gKHplcm9zID0gbnVtU3RyLmxlbmd0aCkpIHtcbiAgICAvLyBUaGUgZGlnaXRzIGFyZSBhbGwgemVyby5cbiAgICBkaWdpdHMgPSBbMF07XG4gICAgaW50ZWdlckxlbiA9IDE7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ291bnQgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvc1xuICAgIHplcm9zLS07XG4gICAgd2hpbGUgKG51bVN0ci5jaGFyQXQoemVyb3MpID09PSBaRVJPX0NIQVIpIHtcbiAgICAgIHplcm9zLS07XG4gICAgfVxuXG4gICAgLy8gVHJhaWxpbmcgemVyb3MgYXJlIGluc2lnbmlmaWNhbnQgc28gaWdub3JlIHRoZW1cbiAgICBpbnRlZ2VyTGVuIC09IGk7XG4gICAgZGlnaXRzID0gW107XG4gICAgLy8gQ29udmVydCBzdHJpbmcgdG8gYXJyYXkgb2YgZGlnaXRzIHdpdGhvdXQgbGVhZGluZy90cmFpbGluZyB6ZXJvcy5cbiAgICBmb3IgKGogPSAwOyBpIDw9IHplcm9zOyBpKyssIGorKykge1xuICAgICAgZGlnaXRzW2pdID0gTnVtYmVyKG51bVN0ci5jaGFyQXQoaSkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRoZSBudW1iZXIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGlnaXRzIHRoZW4gdXNlIGFuIGV4cG9uZW50LlxuICBpZiAoaW50ZWdlckxlbiA+IE1BWF9ESUdJVFMpIHtcbiAgICBkaWdpdHMgPSBkaWdpdHMuc3BsaWNlKDAsIE1BWF9ESUdJVFMgLSAxKTtcbiAgICBleHBvbmVudCA9IGludGVnZXJMZW4gLSAxO1xuICAgIGludGVnZXJMZW4gPSAxO1xuICB9XG5cbiAgcmV0dXJuIHsgZGlnaXRzLCBleHBvbmVudCwgaW50ZWdlckxlbiB9O1xufVxuXG4vKipcbiAqIFJvdW5kIHRoZSBwYXJzZWQgbnVtYmVyIHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzXG4gKiBUaGlzIGZ1bmN0aW9uIGNoYW5nZXMgdGhlIHBhcnNlZE51bWJlciBpbi1wbGFjZVxuICovXG5cbmZ1bmN0aW9uIHJvdW5kTnVtYmVyKFxuICBwYXJzZWROdW1iZXI6IFBhcnNlZE51bWJlcixcbiAgbWluRnJhYzogbnVtYmVyLFxuICBtYXhGcmFjOiBudW1iZXIsXG4pIHtcbiAgaWYgKG1pbkZyYWMgPiBtYXhGcmFjKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgZnJhY3Rpb24gKCR7bWluRnJhY30pIGlzIGhpZ2hlciB0aGFuIHRoZSBtYXhpbXVtICgke21heEZyYWN9KS5gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBkaWdpdHMgPSBwYXJzZWROdW1iZXIuZGlnaXRzO1xuICBsZXQgZnJhY3Rpb25MZW4gPSBkaWdpdHMubGVuZ3RoIC0gcGFyc2VkTnVtYmVyLmludGVnZXJMZW47XG4gIGNvbnN0IGZyYWN0aW9uU2l6ZSA9IE1hdGgubWluKE1hdGgubWF4KG1pbkZyYWMsIGZyYWN0aW9uTGVuKSwgbWF4RnJhYyk7XG5cbiAgLy8gVGhlIGluZGV4IG9mIHRoZSBkaWdpdCB0byB3aGVyZSByb3VuZGluZyBpcyB0byBvY2N1clxuICBsZXQgcm91bmRBdCA9IGZyYWN0aW9uU2l6ZSArIHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuO1xuICBjb25zdCBkaWdpdCA9IGRpZ2l0c1tyb3VuZEF0XTtcblxuICBpZiAocm91bmRBdCA+IDApIHtcbiAgICAvLyBEcm9wIGZyYWN0aW9uYWwgZGlnaXRzIGJleW9uZCBgcm91bmRBdGBcbiAgICBkaWdpdHMuc3BsaWNlKE1hdGgubWF4KHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuLCByb3VuZEF0KSk7XG5cbiAgICAvLyBTZXQgbm9uLWZyYWN0aW9uYWwgZGlnaXRzIGJleW9uZCBgcm91bmRBdGAgdG8gMFxuICAgIGZvciAobGV0IGogPSByb3VuZEF0OyBqIDwgZGlnaXRzLmxlbmd0aDsgaisrKSB7XG4gICAgICBkaWdpdHNbal0gPSAwO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBXZSByb3VuZGVkIHRvIHplcm8gc28gcmVzZXQgdGhlIHBhcnNlZE51bWJlclxuICAgIGZyYWN0aW9uTGVuID0gTWF0aC5tYXgoMCwgZnJhY3Rpb25MZW4pO1xuICAgIHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuID0gMTtcbiAgICBkaWdpdHMubGVuZ3RoID0gTWF0aC5tYXgoMSwgKHJvdW5kQXQgPSBmcmFjdGlvblNpemUgKyAxKSk7XG4gICAgZGlnaXRzWzBdID0gMDtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvdW5kQXQ7IGkrKykge1xuICAgICAgZGlnaXRzW2ldID0gMDtcbiAgICB9XG4gIH1cblxuICBpZiAoZGlnaXQgPj0gNSkge1xuICAgIGlmIChyb3VuZEF0IC0gMSA8IDApIHtcbiAgICAgIGZvciAobGV0IGsgPSAwOyBrID4gcm91bmRBdDsgay0tKSB7XG4gICAgICAgIGRpZ2l0cy51bnNoaWZ0KDApO1xuICAgICAgICBwYXJzZWROdW1iZXIuaW50ZWdlckxlbisrO1xuICAgICAgfVxuICAgICAgZGlnaXRzLnVuc2hpZnQoMSk7XG4gICAgICBwYXJzZWROdW1iZXIuaW50ZWdlckxlbisrO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaWdpdHNbcm91bmRBdCAtIDFdKys7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFkIG91dCB3aXRoIHplcm9zIHRvIGdldCB0aGUgcmVxdWlyZWQgZnJhY3Rpb24gbGVuZ3RoXG4gIGZvciAoOyBmcmFjdGlvbkxlbiA8IE1hdGgubWF4KDAsIGZyYWN0aW9uU2l6ZSk7IGZyYWN0aW9uTGVuKyspIHtcbiAgICBkaWdpdHMucHVzaCgwKTtcbiAgfVxuXG4gIGxldCBkcm9wVHJhaWxpbmdaZXJvcyA9IGZyYWN0aW9uU2l6ZSAhPT0gMDtcbiAgLy8gTWluaW1hbCBsZW5ndGggPSBuYiBvZiBkZWNpbWFscyByZXF1aXJlZCArIGN1cnJlbnQgbmIgb2YgaW50ZWdlcnNcbiAgLy8gQW55IG51bWJlciBiZXNpZGVzIHRoYXQgaXMgb3B0aW9uYWwgYW5kIGNhbiBiZSByZW1vdmVkIGlmIGl0J3MgYSB0cmFpbGluZyAwXG4gIGNvbnN0IG1pbkxlbiA9IG1pbkZyYWMgKyBwYXJzZWROdW1iZXIuaW50ZWdlckxlbjtcbiAgLy8gRG8gYW55IGNhcnJ5aW5nLCBlLmcuIGEgZGlnaXQgd2FzIHJvdW5kZWQgdXAgdG8gMTBcbiAgY29uc3QgY2FycnkgPSBkaWdpdHMucmVkdWNlUmlnaHQoKGMsIGQsIGksIGRzKSA9PiB7XG4gICAgZCA9IGQgKyBjO1xuICAgIGRzW2ldID0gZCA8IDEwID8gZCA6IGQgLSAxMDsgLy8gZCAlIDEwXG4gICAgaWYgKGRyb3BUcmFpbGluZ1plcm9zKSB7XG4gICAgICAvLyBEbyBub3Qga2VlcCBtZWFuaW5nbGVzcyBmcmFjdGlvbmFsIHRyYWlsaW5nIHplcm9zIChlLmcuIDE1LjUyMDAwIC0tPiAxNS41MilcbiAgICAgIGlmIChkc1tpXSA9PT0gMCAmJiBpID49IG1pbkxlbikge1xuICAgICAgICBkcy5wb3AoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRyb3BUcmFpbGluZ1plcm9zID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkID49IDEwID8gMSA6IDA7XG4gIH0sIDApO1xuICBpZiAoY2FycnkpIHtcbiAgICBkaWdpdHMudW5zaGlmdChjYXJyeSk7XG4gICAgcGFyc2VkTnVtYmVyLmludGVnZXJMZW4rKztcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export * from './observable';
|
|
2
|
+
export * from './operators';
|
|
3
|
+
export * from './decorators';
|
|
4
|
+
export * from './browser';
|
|
5
|
+
export * from './cache-store';
|
|
6
|
+
export * from './color-helpers';
|
|
7
|
+
export * from './common';
|
|
8
|
+
export * from './cron-util';
|
|
9
|
+
export * from './request-pool';
|
|
10
|
+
export * from './tree';
|
|
11
|
+
export * from './with-load-state';
|
|
12
|
+
export * from './workspace';
|
|
13
|
+
export * from './unit';
|
|
14
|
+
export * from './yaml';
|
|
15
|
+
export * from './version';
|
|
16
|
+
export * from './resources';
|
|
17
|
+
export * from './local-storage-constants';
|
|
18
|
+
export * from './format-number';
|
|
19
|
+
export * from './node';
|
|
20
|
+
export * from './sort-fn';
|
|
21
|
+
export * from './workload';
|
|
22
|
+
export * from './router';
|
|
23
|
+
export * from './disabled-state';
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL29ic2VydmFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vcGVyYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vYnJvd3Nlcic7XG5leHBvcnQgKiBmcm9tICcuL2NhY2hlLXN0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vY29sb3ItaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1vbic7XG5leHBvcnQgKiBmcm9tICcuL2Nyb24tdXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL3JlcXVlc3QtcG9vbCc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUnO1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLWxvYWQtc3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi93b3Jrc3BhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi91bml0JztcbmV4cG9ydCAqIGZyb20gJy4veWFtbCc7XG5leHBvcnQgKiBmcm9tICcuL3ZlcnNpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhbC1zdG9yYWdlLWNvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm1hdC1udW1iZXInO1xuZXhwb3J0ICogZnJvbSAnLi9ub2RlJztcbmV4cG9ydCAqIGZyb20gJy4vc29ydC1mbic7XG5leHBvcnQgKiBmcm9tICcuL3dvcmtsb2FkJztcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZGlzYWJsZWQtc3RhdGUnO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const LOCAL_STORAGE_KEY_THEME_MODE = 'theme-mode';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS1jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvdXRpbHMvbG9jYWwtc3RvcmFnZS1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IExPQ0FMX1NUT1JBR0VfS0VZX1RIRU1FX01PREUgPSAndGhlbWUtbW9kZSc7XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IP_ADDRESS_PATTERN } from '../constants/patterns';
|
|
2
|
+
/**
|
|
3
|
+
* 从 underlord 节点 utils 中抽离出来,作为通用的内部IP、内部IPv6、hostname 获取方式
|
|
4
|
+
*/
|
|
5
|
+
export function getPrivateIPv4(node) {
|
|
6
|
+
return (node?.status?.addresses?.find(({ type, address }) => type === 'InternalIP' && IP_ADDRESS_PATTERN.pattern.test(address))?.address || node?.metadata?.labels?.['platform.tkestack.io/machine-ip']);
|
|
7
|
+
}
|
|
8
|
+
export function getPrivateIPv6(node) {
|
|
9
|
+
return node?.status?.addresses?.find(({ type, address }) => type === 'InternalIP' && !IP_ADDRESS_PATTERN.pattern.test(address))?.address;
|
|
10
|
+
}
|
|
11
|
+
export function getPrivateIP(node) {
|
|
12
|
+
return getPrivateIPv4(node) || getPrivateIPv6(node);
|
|
13
|
+
}
|
|
14
|
+
export function getHostname(node) {
|
|
15
|
+
return node?.status?.addresses?.find(addr => addr.type === 'Hostname')
|
|
16
|
+
.address;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy91dGlscy9ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRzNEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFVO0lBQ3ZDLE9BQU8sQ0FDTCxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQzNCLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUNwQixJQUFJLEtBQUssWUFBWSxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQ3BFLEVBQUUsT0FBTyxJQUFJLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsaUNBQWlDLENBQUMsQ0FDMUUsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLElBQVU7SUFDdkMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQ2xDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUNwQixJQUFJLEtBQUssWUFBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDckUsRUFBRSxPQUFPLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFVO0lBQ3JDLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUFVO0lBQ3BDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7U0FDbkUsT0FBTyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQX0FERFJFU1NfUEFUVEVSTiB9IGZyb20gJy4uL2NvbnN0YW50cy9wYXR0ZXJucyc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIOS7jiB1bmRlcmxvcmQg6IqC54K5IHV0aWxzIOS4reaKveemu+WHuuadpe+8jOS9nOS4uumAmueUqOeahOWGhemDqElQ44CB5YaF6YOoSVB2NuOAgWhvc3RuYW1lIOiOt+WPluaWueW8j1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJpdmF0ZUlQdjQobm9kZTogTm9kZSkge1xuICByZXR1cm4gKFxuICAgIG5vZGU/LnN0YXR1cz8uYWRkcmVzc2VzPy5maW5kKFxuICAgICAgKHsgdHlwZSwgYWRkcmVzcyB9KSA9PlxuICAgICAgICB0eXBlID09PSAnSW50ZXJuYWxJUCcgJiYgSVBfQUREUkVTU19QQVRURVJOLnBhdHRlcm4udGVzdChhZGRyZXNzKSxcbiAgICApPy5hZGRyZXNzIHx8IG5vZGU/Lm1ldGFkYXRhPy5sYWJlbHM/LlsncGxhdGZvcm0udGtlc3RhY2suaW8vbWFjaGluZS1pcCddXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcml2YXRlSVB2Nihub2RlOiBOb2RlKSB7XG4gIHJldHVybiBub2RlPy5zdGF0dXM/LmFkZHJlc3Nlcz8uZmluZChcbiAgICAoeyB0eXBlLCBhZGRyZXNzIH0pID0+XG4gICAgICB0eXBlID09PSAnSW50ZXJuYWxJUCcgJiYgIUlQX0FERFJFU1NfUEFUVEVSTi5wYXR0ZXJuLnRlc3QoYWRkcmVzcyksXG4gICk/LmFkZHJlc3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcml2YXRlSVAobm9kZTogTm9kZSkge1xuICByZXR1cm4gZ2V0UHJpdmF0ZUlQdjQobm9kZSkgfHwgZ2V0UHJpdmF0ZUlQdjYobm9kZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIb3N0bmFtZShub2RlOiBOb2RlKSB7XG4gIHJldHVybiBub2RlPy5zdGF0dXM/LmFkZHJlc3Nlcz8uZmluZChhZGRyID0+IGFkZHIudHlwZSA9PT0gJ0hvc3RuYW1lJylcbiAgICAuYWRkcmVzcztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { DestroyRef, assertInInjectionContext, inject } from '@angular/core';
|
|
2
|
+
import { isNumber } from 'lodash-es';
|
|
3
|
+
import { EMPTY, Observable, Subject, of, catchError, delay, startWith, switchMap, tap, defer, } from 'rxjs';
|
|
4
|
+
import { publishRef } from './operators';
|
|
5
|
+
export const createPollObservable = (fetch$, pollIn) => {
|
|
6
|
+
const INIT_VALUE = 'Initialize';
|
|
7
|
+
const subject = new Subject();
|
|
8
|
+
const createDelayObservable = () => (isNumber(pollIn) ? of(pollIn) : pollIn).pipe(switchMap(pi => (pi === 0 ? EMPTY : of(null).pipe(delay(pi)))));
|
|
9
|
+
return subject.pipe(startWith(INIT_VALUE), switchMap(value => value === INIT_VALUE ? of(null) : createDelayObservable()), switchMap(() => fetch$.pipe(catchError((_) => of(null)))), tap(() => {
|
|
10
|
+
subject.next();
|
|
11
|
+
}), publishRef());
|
|
12
|
+
};
|
|
13
|
+
// https://github.com/angular/angular/blob/6fefbe8fca6e96549416a27c14e02957da1291e7/packages/core/rxjs-interop/src/take_until_destroyed.ts#L23
|
|
14
|
+
export function onDestroy(destroyRef) {
|
|
15
|
+
if (!destroyRef) {
|
|
16
|
+
assertInInjectionContext(onDestroy);
|
|
17
|
+
destroyRef = inject(DestroyRef);
|
|
18
|
+
}
|
|
19
|
+
return new Observable(observer => {
|
|
20
|
+
return destroyRef.onDestroy(observer.next.bind(observer));
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export const tapSkip = (nEmissions, callback) => (source$) => defer(() => {
|
|
24
|
+
let counter = 0;
|
|
25
|
+
return source$.pipe(tap(item => {
|
|
26
|
+
if (counter >= nEmissions) {
|
|
27
|
+
callback(item);
|
|
28
|
+
}
|
|
29
|
+
counter++;
|
|
30
|
+
}));
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy91dGlscy9vYnNlcnZhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNQLEVBQUUsRUFDRixVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxFQUNILEtBQUssR0FDTixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FDbEMsTUFBMkIsRUFDM0IsTUFBbUMsRUFDZCxFQUFFO0lBQ3ZCLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztJQUNoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXBDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxFQUFFLENBQ2pDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDM0MsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMvRCxDQUFDO0lBRUosT0FBTyxPQUFPLENBQUMsSUFBSSxDQUNqQixTQUFTLENBQUMsVUFBVSxDQUFDLEVBQ3JCLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUNoQixLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQzFELEVBQ0QsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2xFLEdBQUcsQ0FBQyxHQUFHLEVBQUU7UUFDUCxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxFQUFFLENBQ2IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLDhJQUE4STtBQUM5SSxNQUFNLFVBQVUsU0FBUyxDQUFDLFVBQXVCO0lBQy9DLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQix3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQy9CLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FDbEIsQ0FBSSxVQUFrQixFQUFFLFFBQTJCLEVBQUUsRUFBRSxDQUN2RCxDQUFDLE9BQXNCLEVBQWlCLEVBQUUsQ0FDeEMsS0FBSyxDQUFDLEdBQUcsRUFBRTtJQUNULElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNoQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNULElBQUksT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzFCLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgRU1QVFksXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIG9mLFxuICBjYXRjaEVycm9yLFxuICBkZWxheSxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbiAgZGVmZXIsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBwdWJsaXNoUmVmIH0gZnJvbSAnLi9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUG9sbE9ic2VydmFibGUgPSA8VFJlc3VsdD4oXG4gIGZldGNoJDogT2JzZXJ2YWJsZTxUUmVzdWx0PixcbiAgcG9sbEluOiBudW1iZXIgfCBPYnNlcnZhYmxlPG51bWJlcj4sXG4pOiBPYnNlcnZhYmxlPFRSZXN1bHQ+ID0+IHtcbiAgY29uc3QgSU5JVF9WQUxVRSA9ICdJbml0aWFsaXplJztcbiAgY29uc3Qgc3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3QgY3JlYXRlRGVsYXlPYnNlcnZhYmxlID0gKCkgPT5cbiAgICAoaXNOdW1iZXIocG9sbEluKSA/IG9mKHBvbGxJbikgOiBwb2xsSW4pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAocGkgPT4gKHBpID09PSAwID8gRU1QVFkgOiBvZihudWxsKS5waXBlKGRlbGF5KHBpKSkpKSxcbiAgICApO1xuXG4gIHJldHVybiBzdWJqZWN0LnBpcGUoXG4gICAgc3RhcnRXaXRoKElOSVRfVkFMVUUpLFxuICAgIHN3aXRjaE1hcCh2YWx1ZSA9PlxuICAgICAgdmFsdWUgPT09IElOSVRfVkFMVUUgPyBvZihudWxsKSA6IGNyZWF0ZURlbGF5T2JzZXJ2YWJsZSgpLFxuICAgICksXG4gICAgc3dpdGNoTWFwKCgpID0+IGZldGNoJC5waXBlKGNhdGNoRXJyb3IoKF86IHVua25vd24pID0+IG9mKG51bGwpKSkpLFxuICAgIHRhcCgoKSA9PiB7XG4gICAgICBzdWJqZWN0Lm5leHQoKTtcbiAgICB9KSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG59O1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvNmZlZmJlOGZjYTZlOTY1NDk0MTZhMjdjMTRlMDI5NTdkYTEyOTFlNy9wYWNrYWdlcy9jb3JlL3J4anMtaW50ZXJvcC9zcmMvdGFrZV91bnRpbF9kZXN0cm95ZWQudHMjTDIzXG5leHBvcnQgZnVuY3Rpb24gb25EZXN0cm95KGRlc3Ryb3lSZWY/OiBEZXN0cm95UmVmKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gIGlmICghZGVzdHJveVJlZikge1xuICAgIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChvbkRlc3Ryb3kpO1xuICAgIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIH1cblxuICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgIHJldHVybiBkZXN0cm95UmVmLm9uRGVzdHJveShvYnNlcnZlci5uZXh0LmJpbmQob2JzZXJ2ZXIpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCB0YXBTa2lwID1cbiAgPFQ+KG5FbWlzc2lvbnM6IG51bWJlciwgY2FsbGJhY2s6IChhcmdzOiBUKSA9PiB2b2lkKSA9PlxuICAoc291cmNlJDogT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4gPT5cbiAgICBkZWZlcigoKSA9PiB7XG4gICAgICBsZXQgY291bnRlciA9IDA7XG4gICAgICByZXR1cm4gc291cmNlJC5waXBlKFxuICAgICAgICB0YXAoaXRlbSA9PiB7XG4gICAgICAgICAgaWYgKGNvdW50ZXIgPj0gbkVtaXNzaW9ucykge1xuICAgICAgICAgICAgY2FsbGJhY2soaXRlbSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvdW50ZXIrKztcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pO1xuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @module utils
|
|
4
|
+
*/
|
|
5
|
+
import { isDevMode } from '@angular/core';
|
|
6
|
+
import { get } from 'lodash-es';
|
|
7
|
+
import { EMPTY, Observable, ReplaySubject, catchError, concatWith, filter, from, ignoreElements, map, of, pipe, share, shareReplay, startWith, switchMap, takeUntil, } from 'rxjs';
|
|
8
|
+
import { onDestroy } from './observable';
|
|
9
|
+
export const publishRef = (bufferSizeOrConfig = {}) => {
|
|
10
|
+
const { bufferSize = 1, windowTime, timestampProvider, connector = () => new ReplaySubject(bufferSize, windowTime, timestampProvider), resetOnError = false, resetOnComplete = false, resetOnRefCountZero = true, } = typeof bufferSizeOrConfig === 'number'
|
|
11
|
+
? {
|
|
12
|
+
bufferSize: bufferSizeOrConfig,
|
|
13
|
+
}
|
|
14
|
+
: bufferSizeOrConfig;
|
|
15
|
+
return share({
|
|
16
|
+
connector,
|
|
17
|
+
resetOnError,
|
|
18
|
+
resetOnComplete,
|
|
19
|
+
resetOnRefCountZero,
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
export const shareUntil = (destroy$, bufferSize = 1, windowTime, scheduler) => pipe(takeUntil(destroy$), shareReplay(bufferSize, windowTime, scheduler));
|
|
23
|
+
export const skipError = (mapped = EMPTY, debug = false) => catchError(err => {
|
|
24
|
+
if (isDevMode() && debug) {
|
|
25
|
+
console.error(err);
|
|
26
|
+
}
|
|
27
|
+
return mapped instanceof Observable ? mapped : of(mapped);
|
|
28
|
+
});
|
|
29
|
+
export const catchPromise = (promise, mapped) => from(promise).pipe(skipError(mapped));
|
|
30
|
+
const NULL = Symbol('null');
|
|
31
|
+
export const startWithCondition = (condition, value) => (source) => source.pipe(startWith(condition ? value : NULL), filter(value => value !== NULL));
|
|
32
|
+
export const shareUntilDestroyed = (destroyRef, bufferSize, windowTime, scheduler) => shareUntil(onDestroy(destroyRef), bufferSize, windowTime, scheduler);
|
|
33
|
+
export const safePluck = (...properties) => pipe(map(source => get(source, properties)));
|
|
34
|
+
export function switchTap(arg) {
|
|
35
|
+
const next = typeof arg === 'function' ? arg : (_x) => arg;
|
|
36
|
+
return switchMap(value => next(value).pipe(ignoreElements(), concatWith(of(value))));
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL3V0aWxzL29wZXJhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQWMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUNMLEtBQUssRUFFTCxVQUFVLEVBQ1YsYUFBYSxFQUdiLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLElBQUksRUFDSixjQUFjLEVBQ2QsR0FBRyxFQUNILEVBQUUsRUFDRixJQUFJLEVBQ0osS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFVekMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUkscUJBQTBDLEVBQUUsRUFBRSxFQUFFO0lBQzVFLE1BQU0sRUFDSixVQUFVLEdBQUcsQ0FBQyxFQUNkLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUNmLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLENBQUMsRUFDOUQsWUFBWSxHQUFHLEtBQUssRUFDcEIsZUFBZSxHQUFHLEtBQUssRUFDdkIsbUJBQW1CLEdBQUcsSUFBSSxHQUMzQixHQUFHLE9BQU8sa0JBQWtCLEtBQUssUUFBUTtRQUN4QyxDQUFDLENBQUU7WUFDQyxVQUFVLEVBQUUsa0JBQWtCO1NBQ1U7UUFDNUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO0lBQ3ZCLE9BQU8sS0FBSyxDQUFJO1FBQ2QsU0FBUztRQUNULFlBQVk7UUFDWixlQUFlO1FBQ2YsbUJBQW1CO0tBQ3BCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUN4QixRQUE2QixFQUM3QixVQUFVLEdBQUcsQ0FBQyxFQUNkLFVBQW1CLEVBQ25CLFNBQXlCLEVBQ3pCLEVBQUUsQ0FDRixJQUFJLENBQUMsU0FBUyxDQUFJLFFBQVEsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFFL0UsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQ3ZCLFNBQTRCLEtBQUssRUFDakMsS0FBSyxHQUFHLEtBQUssRUFDYixFQUFFLENBQ0YsVUFBVSxDQUFtQixHQUFHLENBQUMsRUFBRTtJQUNqQyxJQUFJLFNBQVMsRUFBRSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU8sTUFBTSxZQUFZLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDNUQsQ0FBQyxDQUFDLENBQUM7QUFFTCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FDMUIsT0FBbUIsRUFDbkIsTUFBMEIsRUFDMUIsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFFM0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRTVCLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUM3QixDQUFJLFNBQWtCLEVBQUUsS0FBUSxFQUFFLEVBQUUsQ0FDcEMsQ0FBQyxNQUFxQixFQUFFLEVBQUUsQ0FDeEIsTUFBTSxDQUFDLElBQUksQ0FDVCxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUNuQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQ2hDLENBQUM7QUFFTixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUNqQyxVQUF1QixFQUN2QixVQUFtQixFQUNuQixVQUFtQixFQUNuQixTQUF5QixFQUN6QixFQUFFLENBQUMsVUFBVSxDQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBRTdFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQUcsVUFBa0MsRUFBRSxFQUFFLENBQ2pFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQVMvQyxNQUFNLFVBQVUsU0FBUyxDQUN2QixHQUE4QztJQUU5QyxNQUFNLElBQUksR0FDUixPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFPLEVBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDcEUsT0FBTyxTQUFTLENBQW1CLEtBQUssQ0FBQyxFQUFFLENBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQzFELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgdXRpbHNcbiAqL1xuXG5pbXBvcnQgeyBEZXN0cm95UmVmLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBFTVBUWSxcbiAgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLFxuICBPYnNlcnZhYmxlLFxuICBSZXBsYXlTdWJqZWN0LFxuICBTY2hlZHVsZXJMaWtlLFxuICBUaW1lc3RhbXBQcm92aWRlcixcbiAgY2F0Y2hFcnJvcixcbiAgY29uY2F0V2l0aCxcbiAgZmlsdGVyLFxuICBmcm9tLFxuICBpZ25vcmVFbGVtZW50cyxcbiAgbWFwLFxuICBvZixcbiAgcGlwZSxcbiAgc2hhcmUsXG4gIHNoYXJlUmVwbGF5LFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgb25EZXN0cm95IH0gZnJvbSAnLi9vYnNlcnZhYmxlJztcblxuZXhwb3J0IHR5cGUgUHVibGlzaFJlZkNvbmZpZzxUPiA9XG4gIHwgbnVtYmVyXG4gIHwgKGltcG9ydCgncnhqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2hhcmUnKS5TaGFyZUNvbmZpZzxUPiAmIHtcbiAgICAgIGJ1ZmZlclNpemU/OiBudW1iZXI7XG4gICAgICB3aW5kb3dUaW1lPzogbnVtYmVyO1xuICAgICAgdGltZXN0YW1wUHJvdmlkZXI/OiBUaW1lc3RhbXBQcm92aWRlcjtcbiAgICB9KTtcblxuZXhwb3J0IGNvbnN0IHB1Ymxpc2hSZWYgPSA8VD4oYnVmZmVyU2l6ZU9yQ29uZmlnOiBQdWJsaXNoUmVmQ29uZmlnPFQ+ID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGJ1ZmZlclNpemUgPSAxLFxuICAgIHdpbmRvd1RpbWUsXG4gICAgdGltZXN0YW1wUHJvdmlkZXIsXG4gICAgY29ubmVjdG9yID0gKCkgPT5cbiAgICAgIG5ldyBSZXBsYXlTdWJqZWN0KGJ1ZmZlclNpemUsIHdpbmRvd1RpbWUsIHRpbWVzdGFtcFByb3ZpZGVyKSxcbiAgICByZXNldE9uRXJyb3IgPSBmYWxzZSxcbiAgICByZXNldE9uQ29tcGxldGUgPSBmYWxzZSxcbiAgICByZXNldE9uUmVmQ291bnRaZXJvID0gdHJ1ZSxcbiAgfSA9IHR5cGVvZiBidWZmZXJTaXplT3JDb25maWcgPT09ICdudW1iZXInXG4gICAgPyAoe1xuICAgICAgICBidWZmZXJTaXplOiBidWZmZXJTaXplT3JDb25maWcsXG4gICAgICB9IGFzIEV4Y2x1ZGU8UHVibGlzaFJlZkNvbmZpZzxUPiwgbnVtYmVyPilcbiAgICA6IGJ1ZmZlclNpemVPckNvbmZpZztcbiAgcmV0dXJuIHNoYXJlPFQ+KHtcbiAgICBjb25uZWN0b3IsXG4gICAgcmVzZXRPbkVycm9yLFxuICAgIHJlc2V0T25Db21wbGV0ZSxcbiAgICByZXNldE9uUmVmQ291bnRaZXJvLFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaGFyZVVudGlsID0gPFQ+KFxuICBkZXN0cm95JDogT2JzZXJ2YWJsZTx1bmtub3duPixcbiAgYnVmZmVyU2l6ZSA9IDEsXG4gIHdpbmRvd1RpbWU/OiBudW1iZXIsXG4gIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UsXG4pID0+XG4gIHBpcGUodGFrZVVudGlsPFQ+KGRlc3Ryb3kkKSwgc2hhcmVSZXBsYXkoYnVmZmVyU2l6ZSwgd2luZG93VGltZSwgc2NoZWR1bGVyKSk7XG5cbmV4cG9ydCBjb25zdCBza2lwRXJyb3IgPSA8VCwgUiA9IG5ldmVyPihcbiAgbWFwcGVkOiBSIHwgT2JzZXJ2YWJsZTxSPiA9IEVNUFRZLFxuICBkZWJ1ZyA9IGZhbHNlLFxuKSA9PlxuICBjYXRjaEVycm9yPFQsIE9ic2VydmFibGU8Uj4+KGVyciA9PiB7XG4gICAgaWYgKGlzRGV2TW9kZSgpICYmIGRlYnVnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgfVxuICAgIHJldHVybiBtYXBwZWQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlID8gbWFwcGVkIDogb2YobWFwcGVkKTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBjYXRjaFByb21pc2UgPSA8VCwgUiA9IG5ldmVyPihcbiAgcHJvbWlzZTogUHJvbWlzZTxUPixcbiAgbWFwcGVkPzogUiB8IE9ic2VydmFibGU8Uj4sXG4pID0+IGZyb20ocHJvbWlzZSkucGlwZShza2lwRXJyb3IobWFwcGVkKSk7XG5cbmNvbnN0IE5VTEwgPSBTeW1ib2woJ251bGwnKTtcblxuZXhwb3J0IGNvbnN0IHN0YXJ0V2l0aENvbmRpdGlvbiA9XG4gIDxUPihjb25kaXRpb246IGJvb2xlYW4sIHZhbHVlOiBUKSA9PlxuICAoc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PlxuICAgIHNvdXJjZS5waXBlKFxuICAgICAgc3RhcnRXaXRoKGNvbmRpdGlvbiA/IHZhbHVlIDogTlVMTCksXG4gICAgICBmaWx0ZXIodmFsdWUgPT4gdmFsdWUgIT09IE5VTEwpLFxuICAgICk7XG5cbmV4cG9ydCBjb25zdCBzaGFyZVVudGlsRGVzdHJveWVkID0gPFQ+KFxuICBkZXN0cm95UmVmPzogRGVzdHJveVJlZixcbiAgYnVmZmVyU2l6ZT86IG51bWJlcixcbiAgd2luZG93VGltZT86IG51bWJlcixcbiAgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSxcbikgPT4gc2hhcmVVbnRpbDxUPihvbkRlc3Ryb3koZGVzdHJveVJlZiksIGJ1ZmZlclNpemUsIHdpbmRvd1RpbWUsIHNjaGVkdWxlcik7XG5cbmV4cG9ydCBjb25zdCBzYWZlUGx1Y2sgPSAoLi4ucHJvcGVydGllczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPikgPT5cbiAgcGlwZShtYXAoc291cmNlID0+IGdldChzb3VyY2UsIHByb3BlcnRpZXMpKSk7XG5cbi8vIHJlZmVyZW5jZSBodHRwczovL2dpdGh1Yi5jb20vUmVhY3RpdmVYL3J4anMvaXNzdWVzLzMzNTNcbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hUYXA8VCwgUj4oXG4gIG5leHQ6ICh4OiBUKSA9PiBPYnNlcnZhYmxlPFI+LFxuKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+O1xuZXhwb3J0IGZ1bmN0aW9uIHN3aXRjaFRhcDxSPihcbiAgb2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxSPixcbik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxSPjtcbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hUYXA8VCwgUj4oXG4gIGFyZzogT2JzZXJ2YWJsZTxUPiB8ICgoeDogVCkgPT4gT2JzZXJ2YWJsZTxSPiksXG4pOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICBjb25zdCBuZXh0OiAoeDogVCkgPT4gT2JzZXJ2YWJsZTxUIHwgUj4gPVxuICAgIHR5cGVvZiBhcmcgPT09ICdmdW5jdGlvbicgPyBhcmcgOiAoX3g6IGFueSk6IE9ic2VydmFibGU8VD4gPT4gYXJnO1xuICByZXR1cm4gc3dpdGNoTWFwPFQsIE9ic2VydmFibGU8VD4+KHZhbHVlID0+XG4gICAgbmV4dCh2YWx1ZSkucGlwZShpZ25vcmVFbGVtZW50cygpLCBjb25jYXRXaXRoKG9mKHZhbHVlKSkpLFxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { finalize, Observable } from 'rxjs';
|
|
2
|
+
export class RequestPool {
|
|
3
|
+
constructor({ maxParallel = 3 }) {
|
|
4
|
+
this.runnerQueue = [];
|
|
5
|
+
this.runningCount = 0;
|
|
6
|
+
this.maxParallel = maxParallel;
|
|
7
|
+
}
|
|
8
|
+
queue(request) {
|
|
9
|
+
return new Observable(observer => {
|
|
10
|
+
let subscription;
|
|
11
|
+
const runner = () => {
|
|
12
|
+
subscription = request
|
|
13
|
+
.pipe(finalize(() => {
|
|
14
|
+
this.runningCount--;
|
|
15
|
+
this.flushQueue();
|
|
16
|
+
}))
|
|
17
|
+
.subscribe(observer);
|
|
18
|
+
};
|
|
19
|
+
this.runnerQueue.push(runner);
|
|
20
|
+
this.flushQueue();
|
|
21
|
+
return () => {
|
|
22
|
+
subscription?.unsubscribe();
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
flushQueue() {
|
|
27
|
+
if (this.runningCount < this.maxParallel && this.runnerQueue.length > 0) {
|
|
28
|
+
this.runningCount++;
|
|
29
|
+
const run = this.runnerQueue.shift();
|
|
30
|
+
run();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function maxParallelByHttpVersion(http_2 = 30, http_1 = 3) {
|
|
35
|
+
return location.protocol === 'https:' ? http_2 : http_1;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1wb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL3V0aWxzL3JlcXVlc3QtcG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFMUQsTUFBTSxPQUFPLFdBQVc7SUFLdEIsWUFBWSxFQUFFLFdBQVcsR0FBRyxDQUFDLEVBQTJCO1FBSHZDLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUM3QyxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUd2QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFJLE9BQXNCO1FBQzdCLE9BQU8sSUFBSSxVQUFVLENBQUksUUFBUSxDQUFDLEVBQUU7WUFDbEMsSUFBSSxZQUEwQixDQUFDO1lBRS9CLE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDbEIsWUFBWSxHQUFHLE9BQU87cUJBQ25CLElBQUksQ0FDSCxRQUFRLENBQUMsR0FBRyxFQUFFO29CQUNaLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixDQUFDLENBQUMsQ0FDSDtxQkFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekIsQ0FBQyxDQUFDO1lBRUYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRWxCLE9BQU8sR0FBRyxFQUFFO2dCQUNWLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUM5QixDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JDLEdBQUcsRUFBRSxDQUFDO1FBQ1IsQ0FBQztJQUNILENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDO0lBQzlELE9BQU8sUUFBUSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaW5hbGl6ZSwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0UG9vbCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWF4UGFyYWxsZWw6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBydW5uZXJRdWV1ZTogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcbiAgcHJpdmF0ZSBydW5uaW5nQ291bnQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHsgbWF4UGFyYWxsZWwgPSAzIH06IHsgbWF4UGFyYWxsZWw6IG51bWJlciB9KSB7XG4gICAgdGhpcy5tYXhQYXJhbGxlbCA9IG1heFBhcmFsbGVsO1xuICB9XG5cbiAgcXVldWU8VD4ocmVxdWVzdDogT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPihvYnNlcnZlciA9PiB7XG4gICAgICBsZXQgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICAgIGNvbnN0IHJ1bm5lciA9ICgpID0+IHtcbiAgICAgICAgc3Vic2NyaXB0aW9uID0gcmVxdWVzdFxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnJ1bm5pbmdDb3VudC0tO1xuICAgICAgICAgICAgICB0aGlzLmZsdXNoUXVldWUoKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKG9ic2VydmVyKTtcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucnVubmVyUXVldWUucHVzaChydW5uZXIpO1xuICAgICAgdGhpcy5mbHVzaFF1ZXVlKCk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZsdXNoUXVldWUoKSB7XG4gICAgaWYgKHRoaXMucnVubmluZ0NvdW50IDwgdGhpcy5tYXhQYXJhbGxlbCAmJiB0aGlzLnJ1bm5lclF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMucnVubmluZ0NvdW50Kys7XG4gICAgICBjb25zdCBydW4gPSB0aGlzLnJ1bm5lclF1ZXVlLnNoaWZ0KCk7XG4gICAgICBydW4oKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1heFBhcmFsbGVsQnlIdHRwVmVyc2lvbihodHRwXzIgPSAzMCwgaHR0cF8xID0gMykge1xuICByZXR1cm4gbG9jYXRpb24ucHJvdG9jb2wgPT09ICdodHRwczonID8gaHR0cF8yIDogaHR0cF8xO1xufVxuIl19
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export const RESOURCE_MAC_TYPES = ['cpu', 'memory'];
|
|
2
|
+
export const RESOURCE_REQUIREMENT_KEYS = ['requests', 'limits'];
|
|
3
|
+
export function getResourceViewModel(data, type, preferEmptyOrC) {
|
|
4
|
+
// 对于 '2' 的cpu大小,视图上展示为 '2c'
|
|
5
|
+
if (type === 'cpu' && !isNaN(+data)) {
|
|
6
|
+
data = `${data}c`;
|
|
7
|
+
}
|
|
8
|
+
if (type === 'memory' && !isNaN(+data)) {
|
|
9
|
+
data = `${data}Bytes`;
|
|
10
|
+
}
|
|
11
|
+
const reg = /^(\d?\.?\d+)([A-Za-z]+)$/;
|
|
12
|
+
const res = {
|
|
13
|
+
value: '',
|
|
14
|
+
unit: '',
|
|
15
|
+
};
|
|
16
|
+
if (!isNaN(parseFloat(data))) {
|
|
17
|
+
const _res = reg.exec(data) || [];
|
|
18
|
+
res.value = _res[1] || '';
|
|
19
|
+
const unit = _res[2];
|
|
20
|
+
switch (type) {
|
|
21
|
+
case 'cpu': {
|
|
22
|
+
res.unit = preferEmptyOrC && unit === 'c' ? '' : unit || 'm';
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
case 'memory': {
|
|
26
|
+
res.unit = unit || '';
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return res;
|
|
32
|
+
}
|
|
33
|
+
export const resourceUnits = {
|
|
34
|
+
cpu: [
|
|
35
|
+
{
|
|
36
|
+
value: 'm',
|
|
37
|
+
label: 'unit_m',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
value: 'c',
|
|
41
|
+
label: 'core',
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
memory: ['Mi', 'Gi'],
|
|
45
|
+
};
|
|
46
|
+
export function getResourceValue(data) {
|
|
47
|
+
if (typeof data === 'string') {
|
|
48
|
+
return data;
|
|
49
|
+
}
|
|
50
|
+
if (data.value) {
|
|
51
|
+
return !data.unit || data.unit === 'c' || data.unit === 'Bytes'
|
|
52
|
+
? data.value
|
|
53
|
+
: `${data.value}${data.unit}`;
|
|
54
|
+
}
|
|
55
|
+
return '';
|
|
56
|
+
}
|
|
57
|
+
export function transferResource(resource) {
|
|
58
|
+
return Object.keys(resource).reduce((item, type) => {
|
|
59
|
+
const value = getResourceValue(resource[type]);
|
|
60
|
+
if (value) {
|
|
61
|
+
item[type] = value;
|
|
62
|
+
}
|
|
63
|
+
return item;
|
|
64
|
+
}, {});
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL3V0aWxzL3Jlc291cmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQVUsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQVUsQ0FBQztBQWdCekUsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxJQUFZLEVBQ1osSUFBc0IsRUFDdEIsY0FBd0I7SUFFeEIsNEJBQTRCO0lBQzVCLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEMsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUksSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDdkMsSUFBSSxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNELE1BQU0sR0FBRyxHQUFHLDBCQUEwQixDQUFDO0lBQ3ZDLE1BQU0sR0FBRyxHQUFHO1FBQ1YsS0FBSyxFQUFFLEVBQUU7UUFDVCxJQUFJLEVBQUUsRUFBRTtLQUNULENBQUM7SUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEdBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUMsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQixRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNYLEdBQUcsQ0FBQyxJQUFJLEdBQUcsY0FBYyxJQUFJLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQztnQkFDN0QsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ2QsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN0QixNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLEdBQUcsRUFBRTtRQUNIO1lBQ0UsS0FBSyxFQUFFLEdBQUc7WUFDVixLQUFLLEVBQUUsUUFBUTtTQUNoQjtRQUNEO1lBQ0UsS0FBSyxFQUFFLEdBQUc7WUFDVixLQUFLLEVBQUUsTUFBTTtTQUNkO0tBQ0Y7SUFDRCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0NBQ3JCLENBQUM7QUFFRixNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBOEI7SUFDN0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTztZQUM3RCxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDWixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFFBQThCO0lBQzdELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBb0IsRUFBRSxFQUFFO1FBQ2pFLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9DLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsRUFBRSxFQUFrQixDQUFDLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc291cmNlQ29udHJvbCB9IGZyb20gJy4uL2Zvcm0vdmFsaWRhdG9ycy9yZXNvdXJjZS1saW1pdCc7XG5cbmV4cG9ydCBjb25zdCBSRVNPVVJDRV9NQUNfVFlQRVMgPSBbJ2NwdScsICdtZW1vcnknXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBSRVNPVVJDRV9SRVFVSVJFTUVOVF9LRVlTID0gWydyZXF1ZXN0cycsICdsaW1pdHMnXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VNYWNLZXkgPSAodHlwZW9mIFJFU09VUkNFX01BQ19UWVBFUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFJlc291cmNlTWFjcyA9IFJlY29yZDxSZXNvdXJjZU1hY0tleSwgc3RyaW5nPjtcbmV4cG9ydCB0eXBlIFJlc291cmNlTWFjRm9ybU1vZGFsID0gUmVjb3JkPFJlc291cmNlTWFjS2V5LCBSZXNvdXJjZUNvbnRyb2w+O1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VSZXF1aXJlbWVudEtleSA9ICh0eXBlb2YgUkVTT1VSQ0VfUkVRVUlSRU1FTlRfS0VZUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFJlc291cmNlUmVxdWlyZW1lbnRTdHJpY3QgPSBSZWNvcmQ8XG4gIFJlc291cmNlUmVxdWlyZW1lbnRLZXksXG4gIFJlc291cmNlTWFjc1xuPjtcblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VSZXF1aXJlbWVudEZvcm1Nb2RhbCA9IFJlY29yZDxcbiAgUmVzb3VyY2VSZXF1aXJlbWVudEtleSxcbiAgUmVzb3VyY2VNYWNGb3JtTW9kYWxcbj47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZVZpZXdNb2RlbChcbiAgZGF0YTogc3RyaW5nLFxuICB0eXBlOiAnY3B1JyB8ICdtZW1vcnknLFxuICBwcmVmZXJFbXB0eU9yQz86IGJvb2xlYW4sXG4pOiBSZXNvdXJjZUNvbnRyb2wge1xuICAvLyDlr7nkuo4gJzInIOeahGNwdeWkp+Wwj++8jOinhuWbvuS4iuWxleekuuS4uiAnMmMnXG4gIGlmICh0eXBlID09PSAnY3B1JyAmJiAhaXNOYU4oK2RhdGEpKSB7XG4gICAgZGF0YSA9IGAke2RhdGF9Y2A7XG4gIH1cbiAgaWYgKHR5cGUgPT09ICdtZW1vcnknICYmICFpc05hTigrZGF0YSkpIHtcbiAgICBkYXRhID0gYCR7ZGF0YX1CeXRlc2A7XG4gIH1cbiAgY29uc3QgcmVnID0gL14oXFxkP1xcLj9cXGQrKShbQS1aYS16XSspJC87XG4gIGNvbnN0IHJlcyA9IHtcbiAgICB2YWx1ZTogJycsXG4gICAgdW5pdDogJycsXG4gIH07XG5cbiAgaWYgKCFpc05hTihwYXJzZUZsb2F0KGRhdGEpKSkge1xuICAgIGNvbnN0IF9yZXM6IHN0cmluZ1tdID0gcmVnLmV4ZWMoZGF0YSkgfHwgW107XG4gICAgcmVzLnZhbHVlID0gX3Jlc1sxXSB8fCAnJztcbiAgICBjb25zdCB1bml0ID0gX3Jlc1syXTtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2NwdSc6IHtcbiAgICAgICAgcmVzLnVuaXQgPSBwcmVmZXJFbXB0eU9yQyAmJiB1bml0ID09PSAnYycgPyAnJyA6IHVuaXQgfHwgJ20nO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ21lbW9yeSc6IHtcbiAgICAgICAgcmVzLnVuaXQgPSB1bml0IHx8ICcnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzO1xufVxuXG5leHBvcnQgY29uc3QgcmVzb3VyY2VVbml0cyA9IHtcbiAgY3B1OiBbXG4gICAge1xuICAgICAgdmFsdWU6ICdtJyxcbiAgICAgIGxhYmVsOiAndW5pdF9tJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhbHVlOiAnYycsXG4gICAgICBsYWJlbDogJ2NvcmUnLFxuICAgIH0sXG4gIF0sXG4gIG1lbW9yeTogWydNaScsICdHaSddLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlVmFsdWUoZGF0YTogUmVzb3VyY2VDb250cm9sIHwgc3RyaW5nKSB7XG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICBpZiAoZGF0YS52YWx1ZSkge1xuICAgIHJldHVybiAhZGF0YS51bml0IHx8IGRhdGEudW5pdCA9PT0gJ2MnIHx8IGRhdGEudW5pdCA9PT0gJ0J5dGVzJ1xuICAgICAgPyBkYXRhLnZhbHVlXG4gICAgICA6IGAke2RhdGEudmFsdWV9JHtkYXRhLnVuaXR9YDtcbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2ZlclJlc291cmNlKHJlc291cmNlOiBSZXNvdXJjZU1hY0Zvcm1Nb2RhbCkge1xuICByZXR1cm4gT2JqZWN0LmtleXMocmVzb3VyY2UpLnJlZHVjZSgoaXRlbSwgdHlwZTogUmVzb3VyY2VNYWNLZXkpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGdldFJlc291cmNlVmFsdWUocmVzb3VyY2VbdHlwZV0pO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgaXRlbVt0eXBlXSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbiAgfSwge30gYXMgUmVzb3VyY2VNYWNzKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { ActivatedRoute, NavigationEnd, Router, } from '@angular/router';
|
|
3
|
+
import { distinctUntilChanged, filter, map, startWith } from 'rxjs';
|
|
4
|
+
import { publishRef } from './operators';
|
|
5
|
+
export function getParamFromParent(key, snapshot) {
|
|
6
|
+
const value = snapshot.paramMap.get(key);
|
|
7
|
+
if (value) {
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
if (snapshot.parent) {
|
|
11
|
+
return getParamFromParent(key, snapshot.parent);
|
|
12
|
+
}
|
|
13
|
+
return '';
|
|
14
|
+
}
|
|
15
|
+
export function initParamFromParent$(key) {
|
|
16
|
+
const router = inject(Router);
|
|
17
|
+
const route = inject(ActivatedRoute);
|
|
18
|
+
return router.events.pipe(filter(e => e instanceof NavigationEnd), map(({ url }) => url), startWith(route.url), distinctUntilChanged(), map(() => getParamFromParent(key, route.snapshot)), publishRef());
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL3V0aWxzL3JvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxjQUFjLEVBRWQsYUFBYSxFQUNiLE1BQU0sR0FDUCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXpDLE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsR0FBVyxFQUNYLFFBQWdDO0lBRWhDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQixPQUFPLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxHQUFXO0lBQzlDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDdkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLGFBQWEsQ0FBQyxFQUN2QyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBaUIsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQ3BDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQ3BCLG9CQUFvQixFQUFFLEVBQ3RCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQ2xELFVBQVUsRUFBRSxDQUNiLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZSxcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgTmF2aWdhdGlvbkVuZCxcbiAgUm91dGVyLFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgcHVibGlzaFJlZiB9IGZyb20gJy4vb3BlcmF0b3JzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhcmFtRnJvbVBhcmVudChcbiAga2V5OiBzdHJpbmcsXG4gIHNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuKTogc3RyaW5nIHtcbiAgY29uc3QgdmFsdWUgPSBzbmFwc2hvdC5wYXJhbU1hcC5nZXQoa2V5KTtcbiAgaWYgKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChzbmFwc2hvdC5wYXJlbnQpIHtcbiAgICByZXR1cm4gZ2V0UGFyYW1Gcm9tUGFyZW50KGtleSwgc25hcHNob3QucGFyZW50KTtcbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0UGFyYW1Gcm9tUGFyZW50JChrZXk6IHN0cmluZykge1xuICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgY29uc3Qgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICByZXR1cm4gcm91dGVyLmV2ZW50cy5waXBlKFxuICAgIGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICBtYXAoKHsgdXJsIH06IE5hdmlnYXRpb25FbmQpID0+IHVybCksXG4gICAgc3RhcnRXaXRoKHJvdXRlLnVybCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBtYXAoKCkgPT4gZ2V0UGFyYW1Gcm9tUGFyZW50KGtleSwgcm91dGUuc25hcHNob3QpKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function sortByCreationTimestamp(list) {
|
|
2
|
+
if (list) {
|
|
3
|
+
return [...list].sort((a, b) => +new Date(b.metadata.creationTimestamp) -
|
|
4
|
+
+new Date(a.metadata.creationTimestamp));
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1mbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy91dGlscy9zb3J0LWZuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsSUFBUztJQUVULElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ25CLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ1AsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1lBQ3ZDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUMxQyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLdWJlcm5ldGVzUmVzb3VyY2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0QnlDcmVhdGlvblRpbWVzdGFtcDxUIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlPihcbiAgbGlzdDogVFtdLFxuKTogVFtdIHtcbiAgaWYgKGxpc3QpIHtcbiAgICByZXR1cm4gWy4uLmxpc3RdLnNvcnQoXG4gICAgICAoYSwgYikgPT5cbiAgICAgICAgK25ldyBEYXRlKGIubWV0YWRhdGEuY3JlYXRpb25UaW1lc3RhbXApIC1cbiAgICAgICAgK25ldyBEYXRlKGEubWV0YWRhdGEuY3JlYXRpb25UaW1lc3RhbXApLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|