@gct-paas/core 6.0.0-test.0 → 6.0.3-dev.2
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/dist/index.esm.min.js +2 -2
- package/dist/{redirect-index-Rqeo3nQ0.js → redirect-index-Bh3TJwQp.js} +1 -1
- package/es/constants/core.d.ts +0 -1
- package/es/constants/core.mjs +0 -2
- package/es/constants/default-date-type/default-date-type.d.ts +4 -1
- package/es/constants/default-date-type/default-date-type.mjs +4 -2
- package/es/constants/editor-register/editor-register.d.ts +0 -1
- package/es/constants/editor-register/editor-register.mjs +0 -2
- package/es/constants/expression-type/BuiltOperators.d.ts +0 -1
- package/es/constants/expression-type/BuiltOperators.mjs +0 -2
- package/es/constants/expression-type/FunctionKeys.d.ts +0 -1
- package/es/constants/expression-type/FunctionKeys.mjs +0 -2
- package/es/constants/expression-type/editor.d.ts +0 -1
- package/es/constants/expression-type/editor.mjs +0 -2
- package/es/constants/expression-type/function.d.ts +0 -1
- package/es/constants/expression-type/function.mjs +0 -2
- package/es/constants/expression-type/index.d.ts +0 -1
- package/es/constants/expression-type/index.mjs +0 -2
- package/es/constants/expression-type/modeCfg.d.ts +0 -1
- package/es/constants/expression-type/modeCfg.mjs +0 -2
- package/es/constants/expression-type/variable.d.ts +0 -1
- package/es/constants/expression-type/variable.mjs +0 -2
- package/es/constants/form-container-type/form-container-type.d.ts +0 -1
- package/es/constants/form-container-type/form-container-type.mjs +0 -2
- package/es/constants/index.d.ts +0 -1
- package/es/constants/index.mjs +0 -2
- package/es/constants/page-designer/model.d.ts +0 -1
- package/es/constants/page-designer/model.mjs +0 -2
- package/es/constants/page-designer/regex.d.ts +0 -1
- package/es/constants/page-designer/regex.mjs +0 -2
- package/es/create-app-vue.d.ts +0 -1
- package/es/create-app-vue.mjs +0 -2
- package/es/enums/app-designer/index.d.ts +0 -1
- package/es/enums/app-designer/index.mjs +0 -2
- package/es/enums/appEnum.d.ts +0 -1
- package/es/enums/appEnum.mjs +0 -2
- package/es/enums/appStateEnum.d.ts +0 -1
- package/es/enums/appStateEnum.mjs +0 -2
- package/es/enums/authActionEnum.d.ts +0 -1
- package/es/enums/authActionEnum.mjs +0 -2
- package/es/enums/breakpointEnum.d.ts +0 -1
- package/es/enums/breakpointEnum.mjs +0 -2
- package/es/enums/cacheEnum.d.ts +0 -1
- package/es/enums/cacheEnum.mjs +0 -2
- package/es/enums/designEnum.d.ts +0 -1
- package/es/enums/designEnum.mjs +0 -2
- package/es/enums/developer-center/index.d.ts +0 -1
- package/es/enums/developer-center/integration.d.ts +0 -1
- package/es/enums/developer-center/integration.mjs +0 -2
- package/es/enums/exceptionEnum.d.ts +0 -1
- package/es/enums/exceptionEnum.mjs +0 -2
- package/es/enums/expressionEnum.d.ts +0 -1
- package/es/enums/expressionEnum.mjs +0 -2
- package/es/enums/globalEnum.d.ts +0 -1
- package/es/enums/globalEnum.mjs +0 -2
- package/es/enums/httpEnum.d.ts +0 -1
- package/es/enums/httpEnum.mjs +0 -2
- package/es/enums/index.d.ts +0 -1
- package/es/enums/index.mjs +0 -2
- package/es/enums/menuEnum.d.ts +0 -1
- package/es/enums/menuEnum.mjs +0 -2
- package/es/enums/page-designer/designer.d.ts +0 -1
- package/es/enums/page-designer/designer.mjs +0 -2
- package/es/enums/page-designer/index.d.ts +0 -1
- package/es/enums/page-designer/layout.d.ts +0 -1
- package/es/enums/page-designer/layout.mjs +0 -2
- package/es/enums/page-designer/panel.d.ts +0 -1
- package/es/enums/page-designer/panel.mjs +0 -2
- package/es/enums/page-designer/toolkit.d.ts +0 -1
- package/es/enums/page-designer/toolkit.mjs +0 -2
- package/es/enums/page-designer/widget.d.ts +0 -1
- package/es/enums/page-designer/widget.mjs +0 -2
- package/es/enums/pageEnum.d.ts +0 -1
- package/es/enums/pageEnum.mjs +0 -2
- package/es/enums/plugin-enum.d.ts +0 -1
- package/es/enums/plugin-enum.mjs +0 -2
- package/es/enums/process.d.ts +0 -1
- package/es/enums/process.mjs +0 -2
- package/es/enums/processEnum.d.ts +0 -1
- package/es/enums/processEnum.mjs +0 -2
- package/es/enums/roleEnum.d.ts +0 -1
- package/es/enums/roleEnum.mjs +0 -2
- package/es/enums/sizeEnum.d.ts +0 -1
- package/es/enums/sizeEnum.mjs +0 -2
- package/es/global/gct/gct.d.ts +0 -1
- package/es/global/gct/gct.mjs +0 -2
- package/es/global/index.d.ts +0 -1
- package/es/hooks/index.d.ts +0 -1
- package/es/hooks/use-app-inst/use-app-inst.d.ts +0 -1
- package/es/hooks/use-app-inst/use-app-inst.mjs +0 -2
- package/es/hooks/use-modal/use-modal.d.ts +0 -1
- package/es/hooks/use-modal/use-modal.mjs +0 -2
- package/es/hooks/use-sub-app-utils/use-sub-app-utils.d.ts +0 -1
- package/es/hooks/use-sub-app-utils/use-sub-app-utils.mjs +0 -2
- package/es/hooks/useCopyToClipboard.d.ts +0 -1
- package/es/hooks/useCopyToClipboard.mjs +0 -2
- package/es/hooks/useDebouncePromise.d.ts +0 -1
- package/es/hooks/useDebouncePromise.mjs +0 -2
- package/es/hooks/useFile.d.ts +0 -1
- package/es/hooks/useFile.mjs +0 -2
- package/es/hooks/useObserver.d.ts +0 -1
- package/es/hooks/useObserver.mjs +0 -2
- package/es/index.d.ts +0 -1
- package/es/index.mjs +0 -2
- package/es/interface/i-action-item/i-action-item.d.ts +0 -1
- package/es/interface/i-app-context/i-app-context.d.ts +0 -1
- package/es/interface/i-dictionary/i-dictionary-item.d.ts +0 -1
- package/es/interface/i-dictionary/i-dictionary.d.ts +0 -1
- package/es/interface/i-field-code-chain/i-field-code-chain.d.ts +0 -1
- package/es/interface/i-global-register/i-global-register.d.ts +0 -1
- package/es/interface/i-global-var/i-global-var.d.ts +0 -1
- package/es/interface/i-kit-plugin-module/i-kit-plugin-module.d.ts +0 -1
- package/es/interface/i-mobile-home-menu-item/i-mobile-home-menu-item.d.ts +0 -1
- package/es/interface/i-pinia-action/i-global-actions.d.ts +0 -1
- package/es/interface/i-pinia-getter/i-global-getters.d.ts +0 -1
- package/es/interface/i-pinia-state/i-global-state.d.ts +0 -1
- package/es/interface/i-popover-options/i-popover-options.d.ts +0 -1
- package/es/interface/index.d.ts +0 -1
- package/es/interface/model-designer/entity.d.ts +0 -1
- package/es/interface/model-designer/serial.d.ts +0 -1
- package/es/interface/model-designer/serial.mjs +0 -2
- package/es/interface/open-util/i-app-full-screen-container-options/i-app-full-screen-container-options.d.ts +0 -1
- package/es/interface/open-util/i-confirm-util/i-confirm-util.d.ts +0 -1
- package/es/interface/open-util/i-drawer-options/i-drawer-options.d.ts +0 -1
- package/es/interface/open-util/i-message-util/i-message-util.d.ts +0 -1
- package/es/interface/open-util/i-modal/i-modal.d.ts +0 -1
- package/es/interface/open-util/i-modal-data/i-modal-data.d.ts +0 -1
- package/es/interface/open-util/i-modal-options/i-modal-options.d.ts +0 -1
- package/es/interface/open-util/i-open-window-options/i-open-window-options.d.ts +0 -1
- package/es/interface/open-util/i-overlay-container/i-overlay-container.d.ts +0 -1
- package/es/interface/open-util/i-overlay-controller/i-overlay-controller.d.ts +0 -1
- package/es/interface/open-util/i-overlay-popover-container/i-overlay-popover-container.d.ts +0 -1
- package/es/interface/open-util/index.d.ts +0 -1
- package/es/interface/provider/i-provider-basic/i-provider-basic.d.ts +0 -1
- package/es/interface/provider/index.d.ts +0 -1
- package/es/interface/style/i-border.d.ts +0 -1
- package/es/interface/style/i-font.d.ts +0 -1
- package/es/interface/style/i-margin.d.ts +0 -1
- package/es/interface/style/i-padding.d.ts +0 -1
- package/es/interface/style/i-position.d.ts +0 -1
- package/es/interface/style/i-spacing.d.ts +0 -1
- package/es/interface/style/index.d.ts +0 -1
- package/es/locale/auto-register.d.ts +0 -1
- package/es/locale/auto-register.mjs +0 -2
- package/es/locale/index.d.ts +0 -1
- package/es/locale/index.mjs +0 -2
- package/es/locale/sys/model.d.ts +0 -1
- package/es/locale/sys/model.mjs +0 -2
- package/es/locale/sys.d.ts +0 -1
- package/es/locale/sys.mjs +0 -2
- package/es/modules/env-manager/env-manager.const.d.ts +0 -1
- package/es/modules/env-manager/env-manager.const.mjs +0 -2
- package/es/modules/env-manager/env-manager.d.ts +0 -1
- package/es/modules/env-manager/env-manager.interface.d.ts +0 -1
- package/es/modules/env-manager/env-manager.interface.mjs +0 -2
- package/es/modules/env-manager/env-manager.mjs +0 -2
- package/es/modules/env-manager/env-manager.util.d.ts +0 -1
- package/es/modules/env-manager/env-manager.util.mjs +0 -2
- package/es/modules/env-manager/index.d.ts +0 -1
- package/es/modules/error-handler/error-handler.const.d.ts +0 -1
- package/es/modules/error-handler/error-handler.const.mjs +0 -2
- package/es/modules/error-handler/error-handler.interface.d.ts +0 -1
- package/es/modules/error-handler/error-strategy.d.ts +0 -1
- package/es/modules/error-handler/error-strategy.mjs +0 -2
- package/es/modules/error-handler/index.d.ts +0 -1
- package/es/modules/error-handler/index.mjs +0 -2
- package/es/modules/mqtt/constants/mqtt.const.d.ts +0 -1
- package/es/modules/mqtt/constants/mqtt.const.mjs +0 -2
- package/es/modules/mqtt/enums/mqtt-status.enum.d.ts +0 -1
- package/es/modules/mqtt/enums/mqtt-status.enum.mjs +0 -2
- package/es/modules/mqtt/index.d.ts +0 -1
- package/es/modules/mqtt/interfaces/i-mqtt.d.ts +0 -1
- package/es/modules/mqtt/mqtt-client.d.ts +0 -1
- package/es/modules/mqtt/mqtt-client.mjs +0 -2
- package/es/modules/mqtt/mqtt-manager.d.ts +0 -1
- package/es/modules/mqtt/mqtt-manager.mjs +0 -2
- package/es/modules/mqtt/utils/mqtt-broker-url.util.d.ts +0 -1
- package/es/modules/mqtt/utils/mqtt-broker-url.util.mjs +0 -2
- package/es/modules/platform-config/constants/index.d.ts +0 -1
- package/es/modules/platform-config/constants/login.const.d.ts +0 -1
- package/es/modules/platform-config/constants/login.const.mjs +0 -2
- package/es/modules/platform-config/constants/org.const.d.ts +0 -1
- package/es/modules/platform-config/constants/org.const.mjs +0 -2
- package/es/modules/platform-config/constants/theme.const.d.ts +0 -1
- package/es/modules/platform-config/constants/theme.const.mjs +0 -2
- package/es/modules/platform-config/constants/watermark.const.d.ts +0 -1
- package/es/modules/platform-config/constants/watermark.const.mjs +0 -2
- package/es/modules/platform-config/enums/deploy.enum.d.ts +0 -1
- package/es/modules/platform-config/enums/deploy.enum.mjs +0 -2
- package/es/modules/platform-config/enums/index.d.ts +0 -1
- package/es/modules/platform-config/enums/login.enum.d.ts +0 -1
- package/es/modules/platform-config/enums/login.enum.mjs +0 -2
- package/es/modules/platform-config/enums/platform.enum.d.ts +0 -1
- package/es/modules/platform-config/enums/platform.enum.mjs +0 -2
- package/es/modules/platform-config/index.d.ts +0 -1
- package/es/modules/platform-config/interfaces/index.d.ts +0 -1
- package/es/modules/platform-config/interfaces/login-config.interface.d.ts +0 -1
- package/es/modules/platform-config/interfaces/platform-map.interface.d.ts +0 -1
- package/es/modules/platform-config/interfaces/theme-setting.interface.d.ts +0 -1
- package/es/modules/platform-config/store.d.ts +0 -1
- package/es/modules/platform-config/store.mjs +0 -2
- package/es/modules/platform-config/useBasicSetting.d.ts +0 -1
- package/es/modules/platform-config/useBasicSetting.mjs +0 -2
- package/es/modules/platform-config/useDeploySetting.d.ts +0 -1
- package/es/modules/platform-config/useDeploySetting.mjs +0 -2
- package/es/modules/platform-config/useLoginSetting.d.ts +0 -1
- package/es/modules/platform-config/useLoginSetting.mjs +0 -2
- package/es/modules/platform-config/useOrgSetting.d.ts +0 -1
- package/es/modules/platform-config/useOrgSetting.mjs +0 -2
- package/es/modules/platform-config/useProjectSetting.d.ts +0 -1
- package/es/modules/platform-config/useProjectSetting.mjs +0 -2
- package/es/modules/platform-config/useSecuritySetting.d.ts +0 -1
- package/es/modules/platform-config/useSecuritySetting.mjs +0 -2
- package/es/modules/platform-config/useThemeSetting.d.ts +0 -1
- package/es/modules/platform-config/useThemeSetting.mjs +0 -2
- package/es/modules/platform-config/useWatermarkSetting.d.ts +0 -1
- package/es/modules/platform-config/useWatermarkSetting.mjs +0 -2
- package/es/modules/sign-log/index.d.ts +0 -1
- package/es/modules/sign-log/sign-log.d.ts +0 -1
- package/es/modules/sign-log/sign-log.mjs +0 -2
- package/es/modules/sign-log/sing-log.interface.d.ts +0 -1
- package/es/modules/system-mqtt/index.d.ts +0 -1
- package/es/modules/system-mqtt/system-mqtt.interface.d.ts +0 -1
- package/es/modules/system-mqtt/system-mqtt.service.d.ts +0 -1
- package/es/modules/system-mqtt/system-mqtt.service.mjs +0 -2
- package/es/modules/user-stores/index.d.ts +0 -1
- package/es/modules/user-stores/store/permission.store.d.ts +0 -1
- package/es/modules/user-stores/store/permission.store.mjs +0 -2
- package/es/modules/user-stores/store/tenant.store.d.ts +0 -1
- package/es/modules/user-stores/store/tenant.store.mjs +0 -2
- package/es/modules/user-stores/store/user.store.d.ts +0 -1
- package/es/modules/user-stores/store/user.store.mjs +0 -2
- package/es/modules/user-stores/types/permission.d.ts +0 -1
- package/es/modules/user-stores/types/tenant.d.ts +0 -1
- package/es/modules/user-stores/types/user.d.ts +0 -1
- package/es/router/guard/index.d.ts +0 -1
- package/es/router/guard/index.mjs +0 -2
- package/es/router/index.d.ts +0 -1
- package/es/router/index.mjs +0 -2
- package/es/router/redirect/redirect-index.vue.d.ts +0 -1
- package/es/router/redirect/redirect-index.vue.mjs +1 -8
- package/es/router/redirect/redirect-index.vue_vue_type_script_setup_true_lang.mjs +4 -18
- package/es/setup-app.d.ts +0 -1
- package/es/setup-app.mjs +0 -2
- package/es/state/global-pinia-state/global-pinia-state.d.ts +0 -1
- package/es/state/global-pinia-state/global-pinia-state.mjs +0 -2
- package/es/state/index.d.ts +0 -1
- package/es/store/global-store.d.ts +0 -1
- package/es/store/global-store.mjs +0 -2
- package/es/store/index.d.ts +0 -1
- package/es/store/index.mjs +0 -2
- package/es/store/session-store.d.ts +0 -1
- package/es/store/session-store.mjs +0 -2
- package/es/store/storage-store.d.ts +0 -1
- package/es/store/storage-store.mjs +0 -2
- package/es/utils/auth-util/auth-util.d.ts +0 -1
- package/es/utils/auth-util/auth-util.mjs +0 -2
- package/es/utils/axios/check-status.d.ts +0 -1
- package/es/utils/axios/check-status.mjs +0 -2
- package/es/utils/axios/interceptors.d.ts +0 -1
- package/es/utils/axios/interceptors.mjs +0 -2
- package/es/utils/cache-adapter/cache-adapter.d.ts +0 -1
- package/es/utils/cache-adapter/cache-adapter.mjs +0 -2
- package/es/utils/css-loader/css-loader.d.ts +0 -1
- package/es/utils/css-loader/css-loader.mjs +0 -2
- package/es/utils/data-prems/const.d.ts +0 -1
- package/es/utils/data-prems/const.mjs +0 -2
- package/es/utils/design/design.d.ts +0 -1
- package/es/utils/design/design.mjs +0 -2
- package/es/utils/deviceFingerprint.d.ts +0 -1
- package/es/utils/deviceFingerprint.mjs +0 -2
- package/es/utils/dictionary/dictionary.d.ts +0 -1
- package/es/utils/dictionary/dictionary.mjs +0 -2
- package/es/utils/file/base64Conver.d.ts +0 -1
- package/es/utils/file/base64Conver.mjs +0 -2
- package/es/utils/file/download.d.ts +0 -1
- package/es/utils/file/download.mjs +0 -2
- package/es/utils/file/parser.d.ts +0 -1
- package/es/utils/file/parser.mjs +0 -2
- package/es/utils/i18n/index.d.ts +0 -1
- package/es/utils/i18n/index.mjs +0 -2
- package/es/utils/index.d.ts +0 -1
- package/es/utils/is-sort-filed/is-sort-filed.d.ts +0 -1
- package/es/utils/is-sort-filed/is-sort-filed.mjs +0 -2
- package/es/utils/kit-pkg-util/kit-pkg-util.d.ts +0 -1
- package/es/utils/kit-pkg-util/kit-pkg-util.mjs +0 -2
- package/es/utils/linked-list/linked-list.d.ts +0 -1
- package/es/utils/linked-list/linked-list.mjs +0 -2
- package/es/utils/linked-node/linked-node.d.ts +0 -1
- package/es/utils/linked-node/linked-node.mjs +0 -2
- package/es/utils/lowcode/utils.d.ts +0 -1
- package/es/utils/lowcode/utils.mjs +0 -2
- package/es/utils/lowcode/validate.d.ts +0 -1
- package/es/utils/lowcode/validate.mjs +0 -2
- package/es/utils/mitt/mitt.d.ts +0 -1
- package/es/utils/mitt/mitt.mjs +0 -2
- package/es/utils/model-loader/model-loader.d.ts +0 -1
- package/es/utils/model-loader/model-loader.mjs +0 -2
- package/es/utils/namespace/namespace.d.ts +0 -1
- package/es/utils/namespace/namespace.mjs +0 -2
- package/es/utils/openUtil/index.d.ts +0 -1
- package/es/utils/openUtil/modal/modal.d.ts +0 -1
- package/es/utils/openUtil/modal/modal.mjs +0 -2
- package/es/utils/openUtil/overlay-container/overlay-container.d.ts +0 -1
- package/es/utils/openUtil/overlay-container/overlay-container.mjs +0 -2
- package/es/utils/openUtil/overlay-popover-container/overlay-popover-container.d.ts +0 -1
- package/es/utils/openUtil/overlay-popover-container/overlay-popover-container.mjs +0 -2
- package/es/utils/permission.d.ts +0 -1
- package/es/utils/permission.mjs +0 -2
- package/es/utils/plugin-pkg-util/plugin-pkg-util.d.ts +0 -1
- package/es/utils/plugin-pkg-util/plugin-pkg-util.mjs +0 -2
- package/es/utils/plugin-static-resource/plugin-static-resource.d.ts +0 -1
- package/es/utils/plugin-static-resource/plugin-static-resource.mjs +0 -2
- package/es/utils/script-loader/script-loader.d.ts +0 -1
- package/es/utils/script-loader/script-loader.mjs +0 -2
- package/es/utils/select-user-utils.d.ts +0 -1
- package/es/utils/select-user-utils.mjs +0 -2
- package/es/utils/style/index.d.ts +0 -1
- package/es/utils/style/index.mjs +0 -2
- package/es/utils/text-measure/text-measure.d.ts +0 -1
- package/es/utils/text-measure/text-measure.mjs +0 -2
- package/es/utils/tools/tools.d.ts +0 -1
- package/es/utils/tools/tools.mjs +0 -2
- package/es/utils/treeHelper/treeHelper.d.ts +0 -1
- package/es/utils/treeHelper/treeHelper.mjs +0 -2
- package/es/utils/uploader/uploader.d.ts +0 -1
- package/es/utils/uploader/uploader.mjs +0 -2
- package/es/utils/useUUid.d.ts +0 -1
- package/es/utils/useUUid.mjs +0 -2
- package/es/utils/util.d.ts +0 -1
- package/es/utils/util.mjs +0 -2
- package/es/utils/uuid/uuid.d.ts +0 -1
- package/es/utils/uuid/uuid.mjs +0 -2
- package/es/utils/validate.d.ts +0 -1
- package/es/utils/validate.mjs +0 -2
- package/es/utils/value-helper/value-helper.d.ts +0 -1
- package/es/utils/value-helper/value-helper.mjs +0 -2
- package/es/utils/vue-component-code.d.ts +0 -1
- package/es/utils/vue-component-code.mjs +0 -2
- package/package.json +1 -1
- package/es/_virtual/_plugin-vue_export-helper.mjs +0 -8
- package/es/constants/core.d.ts.map +0 -1
- package/es/constants/core.mjs.map +0 -1
- package/es/constants/default-date-type/default-date-type.d.ts.map +0 -1
- package/es/constants/default-date-type/default-date-type.mjs.map +0 -1
- package/es/constants/editor-register/editor-register.d.ts.map +0 -1
- package/es/constants/editor-register/editor-register.mjs.map +0 -1
- package/es/constants/expression-type/BuiltOperators.d.ts.map +0 -1
- package/es/constants/expression-type/BuiltOperators.mjs.map +0 -1
- package/es/constants/expression-type/FunctionKeys.d.ts.map +0 -1
- package/es/constants/expression-type/FunctionKeys.mjs.map +0 -1
- package/es/constants/expression-type/editor.d.ts.map +0 -1
- package/es/constants/expression-type/editor.mjs.map +0 -1
- package/es/constants/expression-type/function.d.ts.map +0 -1
- package/es/constants/expression-type/function.mjs.map +0 -1
- package/es/constants/expression-type/index.d.ts.map +0 -1
- package/es/constants/expression-type/index.mjs.map +0 -1
- package/es/constants/expression-type/modeCfg.d.ts.map +0 -1
- package/es/constants/expression-type/modeCfg.mjs.map +0 -1
- package/es/constants/expression-type/variable.d.ts.map +0 -1
- package/es/constants/expression-type/variable.mjs.map +0 -1
- package/es/constants/form-container-type/form-container-type.d.ts.map +0 -1
- package/es/constants/form-container-type/form-container-type.mjs.map +0 -1
- package/es/constants/index.d.ts.map +0 -1
- package/es/constants/index.mjs.map +0 -1
- package/es/constants/page-designer/model.d.ts.map +0 -1
- package/es/constants/page-designer/model.mjs.map +0 -1
- package/es/constants/page-designer/regex.d.ts.map +0 -1
- package/es/constants/page-designer/regex.mjs.map +0 -1
- package/es/create-app-vue.d.ts.map +0 -1
- package/es/create-app-vue.mjs.map +0 -1
- package/es/enums/app-designer/index.d.ts.map +0 -1
- package/es/enums/app-designer/index.mjs.map +0 -1
- package/es/enums/appEnum.d.ts.map +0 -1
- package/es/enums/appEnum.mjs.map +0 -1
- package/es/enums/appStateEnum.d.ts.map +0 -1
- package/es/enums/appStateEnum.mjs.map +0 -1
- package/es/enums/authActionEnum.d.ts.map +0 -1
- package/es/enums/authActionEnum.mjs.map +0 -1
- package/es/enums/breakpointEnum.d.ts.map +0 -1
- package/es/enums/breakpointEnum.mjs.map +0 -1
- package/es/enums/cacheEnum.d.ts.map +0 -1
- package/es/enums/cacheEnum.mjs.map +0 -1
- package/es/enums/designEnum.d.ts.map +0 -1
- package/es/enums/designEnum.mjs.map +0 -1
- package/es/enums/developer-center/index.d.ts.map +0 -1
- package/es/enums/developer-center/integration.d.ts.map +0 -1
- package/es/enums/developer-center/integration.mjs.map +0 -1
- package/es/enums/exceptionEnum.d.ts.map +0 -1
- package/es/enums/exceptionEnum.mjs.map +0 -1
- package/es/enums/expressionEnum.d.ts.map +0 -1
- package/es/enums/expressionEnum.mjs.map +0 -1
- package/es/enums/globalEnum.d.ts.map +0 -1
- package/es/enums/globalEnum.mjs.map +0 -1
- package/es/enums/httpEnum.d.ts.map +0 -1
- package/es/enums/httpEnum.mjs.map +0 -1
- package/es/enums/index.d.ts.map +0 -1
- package/es/enums/index.mjs.map +0 -1
- package/es/enums/menuEnum.d.ts.map +0 -1
- package/es/enums/menuEnum.mjs.map +0 -1
- package/es/enums/page-designer/designer.d.ts.map +0 -1
- package/es/enums/page-designer/designer.mjs.map +0 -1
- package/es/enums/page-designer/index.d.ts.map +0 -1
- package/es/enums/page-designer/layout.d.ts.map +0 -1
- package/es/enums/page-designer/layout.mjs.map +0 -1
- package/es/enums/page-designer/panel.d.ts.map +0 -1
- package/es/enums/page-designer/panel.mjs.map +0 -1
- package/es/enums/page-designer/toolkit.d.ts.map +0 -1
- package/es/enums/page-designer/toolkit.mjs.map +0 -1
- package/es/enums/page-designer/widget.d.ts.map +0 -1
- package/es/enums/page-designer/widget.mjs.map +0 -1
- package/es/enums/pageEnum.d.ts.map +0 -1
- package/es/enums/pageEnum.mjs.map +0 -1
- package/es/enums/plugin-enum.d.ts.map +0 -1
- package/es/enums/plugin-enum.mjs.map +0 -1
- package/es/enums/process.d.ts.map +0 -1
- package/es/enums/process.mjs.map +0 -1
- package/es/enums/processEnum.d.ts.map +0 -1
- package/es/enums/processEnum.mjs.map +0 -1
- package/es/enums/roleEnum.d.ts.map +0 -1
- package/es/enums/roleEnum.mjs.map +0 -1
- package/es/enums/sizeEnum.d.ts.map +0 -1
- package/es/enums/sizeEnum.mjs.map +0 -1
- package/es/global/gct/gct.d.ts.map +0 -1
- package/es/global/gct/gct.mjs.map +0 -1
- package/es/global/index.d.ts.map +0 -1
- package/es/hooks/index.d.ts.map +0 -1
- package/es/hooks/use-app-inst/use-app-inst.d.ts.map +0 -1
- package/es/hooks/use-app-inst/use-app-inst.mjs.map +0 -1
- package/es/hooks/use-modal/use-modal.d.ts.map +0 -1
- package/es/hooks/use-modal/use-modal.mjs.map +0 -1
- package/es/hooks/use-sub-app-utils/use-sub-app-utils.d.ts.map +0 -1
- package/es/hooks/use-sub-app-utils/use-sub-app-utils.mjs.map +0 -1
- package/es/hooks/useCopyToClipboard.d.ts.map +0 -1
- package/es/hooks/useCopyToClipboard.mjs.map +0 -1
- package/es/hooks/useDebouncePromise.d.ts.map +0 -1
- package/es/hooks/useDebouncePromise.mjs.map +0 -1
- package/es/hooks/useFile.d.ts.map +0 -1
- package/es/hooks/useFile.mjs.map +0 -1
- package/es/hooks/useObserver.d.ts.map +0 -1
- package/es/hooks/useObserver.mjs.map +0 -1
- package/es/index.d.ts.map +0 -1
- package/es/index.mjs.map +0 -1
- package/es/interface/i-action-item/i-action-item.d.ts.map +0 -1
- package/es/interface/i-app-context/i-app-context.d.ts.map +0 -1
- package/es/interface/i-dictionary/i-dictionary-item.d.ts.map +0 -1
- package/es/interface/i-dictionary/i-dictionary.d.ts.map +0 -1
- package/es/interface/i-field-code-chain/i-field-code-chain.d.ts.map +0 -1
- package/es/interface/i-global-register/i-global-register.d.ts.map +0 -1
- package/es/interface/i-global-var/i-global-var.d.ts.map +0 -1
- package/es/interface/i-kit-plugin-module/i-kit-plugin-module.d.ts.map +0 -1
- package/es/interface/i-mobile-home-menu-item/i-mobile-home-menu-item.d.ts.map +0 -1
- package/es/interface/i-pinia-action/i-global-actions.d.ts.map +0 -1
- package/es/interface/i-pinia-getter/i-global-getters.d.ts.map +0 -1
- package/es/interface/i-pinia-state/i-global-state.d.ts.map +0 -1
- package/es/interface/i-popover-options/i-popover-options.d.ts.map +0 -1
- package/es/interface/index.d.ts.map +0 -1
- package/es/interface/model-designer/entity.d.ts.map +0 -1
- package/es/interface/model-designer/serial.d.ts.map +0 -1
- package/es/interface/model-designer/serial.mjs.map +0 -1
- package/es/interface/open-util/i-app-full-screen-container-options/i-app-full-screen-container-options.d.ts.map +0 -1
- package/es/interface/open-util/i-confirm-util/i-confirm-util.d.ts.map +0 -1
- package/es/interface/open-util/i-drawer-options/i-drawer-options.d.ts.map +0 -1
- package/es/interface/open-util/i-message-util/i-message-util.d.ts.map +0 -1
- package/es/interface/open-util/i-modal/i-modal.d.ts.map +0 -1
- package/es/interface/open-util/i-modal-data/i-modal-data.d.ts.map +0 -1
- package/es/interface/open-util/i-modal-options/i-modal-options.d.ts.map +0 -1
- package/es/interface/open-util/i-open-window-options/i-open-window-options.d.ts.map +0 -1
- package/es/interface/open-util/i-overlay-container/i-overlay-container.d.ts.map +0 -1
- package/es/interface/open-util/i-overlay-controller/i-overlay-controller.d.ts.map +0 -1
- package/es/interface/open-util/i-overlay-popover-container/i-overlay-popover-container.d.ts.map +0 -1
- package/es/interface/open-util/index.d.ts.map +0 -1
- package/es/interface/provider/i-provider-basic/i-provider-basic.d.ts.map +0 -1
- package/es/interface/provider/index.d.ts.map +0 -1
- package/es/interface/style/i-border.d.ts.map +0 -1
- package/es/interface/style/i-font.d.ts.map +0 -1
- package/es/interface/style/i-margin.d.ts.map +0 -1
- package/es/interface/style/i-padding.d.ts.map +0 -1
- package/es/interface/style/i-position.d.ts.map +0 -1
- package/es/interface/style/i-spacing.d.ts.map +0 -1
- package/es/interface/style/index.d.ts.map +0 -1
- package/es/locale/auto-register.d.ts.map +0 -1
- package/es/locale/auto-register.mjs.map +0 -1
- package/es/locale/index.d.ts.map +0 -1
- package/es/locale/index.mjs.map +0 -1
- package/es/locale/sys/model.d.ts.map +0 -1
- package/es/locale/sys/model.mjs.map +0 -1
- package/es/locale/sys.d.ts.map +0 -1
- package/es/locale/sys.mjs.map +0 -1
- package/es/modules/env-manager/env-manager.const.d.ts.map +0 -1
- package/es/modules/env-manager/env-manager.const.mjs.map +0 -1
- package/es/modules/env-manager/env-manager.d.ts.map +0 -1
- package/es/modules/env-manager/env-manager.interface.d.ts.map +0 -1
- package/es/modules/env-manager/env-manager.interface.mjs.map +0 -1
- package/es/modules/env-manager/env-manager.mjs.map +0 -1
- package/es/modules/env-manager/env-manager.util.d.ts.map +0 -1
- package/es/modules/env-manager/env-manager.util.mjs.map +0 -1
- package/es/modules/env-manager/index.d.ts.map +0 -1
- package/es/modules/error-handler/error-handler.const.d.ts.map +0 -1
- package/es/modules/error-handler/error-handler.const.mjs.map +0 -1
- package/es/modules/error-handler/error-handler.interface.d.ts.map +0 -1
- package/es/modules/error-handler/error-strategy.d.ts.map +0 -1
- package/es/modules/error-handler/error-strategy.mjs.map +0 -1
- package/es/modules/error-handler/index.d.ts.map +0 -1
- package/es/modules/error-handler/index.mjs.map +0 -1
- package/es/modules/mqtt/constants/mqtt.const.d.ts.map +0 -1
- package/es/modules/mqtt/constants/mqtt.const.mjs.map +0 -1
- package/es/modules/mqtt/enums/mqtt-status.enum.d.ts.map +0 -1
- package/es/modules/mqtt/enums/mqtt-status.enum.mjs.map +0 -1
- package/es/modules/mqtt/index.d.ts.map +0 -1
- package/es/modules/mqtt/interfaces/i-mqtt.d.ts.map +0 -1
- package/es/modules/mqtt/mqtt-client.d.ts.map +0 -1
- package/es/modules/mqtt/mqtt-client.mjs.map +0 -1
- package/es/modules/mqtt/mqtt-manager.d.ts.map +0 -1
- package/es/modules/mqtt/mqtt-manager.mjs.map +0 -1
- package/es/modules/mqtt/utils/mqtt-broker-url.util.d.ts.map +0 -1
- package/es/modules/mqtt/utils/mqtt-broker-url.util.mjs.map +0 -1
- package/es/modules/platform-config/constants/index.d.ts.map +0 -1
- package/es/modules/platform-config/constants/login.const.d.ts.map +0 -1
- package/es/modules/platform-config/constants/login.const.mjs.map +0 -1
- package/es/modules/platform-config/constants/org.const.d.ts.map +0 -1
- package/es/modules/platform-config/constants/org.const.mjs.map +0 -1
- package/es/modules/platform-config/constants/theme.const.d.ts.map +0 -1
- package/es/modules/platform-config/constants/theme.const.mjs.map +0 -1
- package/es/modules/platform-config/constants/watermark.const.d.ts.map +0 -1
- package/es/modules/platform-config/constants/watermark.const.mjs.map +0 -1
- package/es/modules/platform-config/enums/deploy.enum.d.ts.map +0 -1
- package/es/modules/platform-config/enums/deploy.enum.mjs.map +0 -1
- package/es/modules/platform-config/enums/index.d.ts.map +0 -1
- package/es/modules/platform-config/enums/login.enum.d.ts.map +0 -1
- package/es/modules/platform-config/enums/login.enum.mjs.map +0 -1
- package/es/modules/platform-config/enums/platform.enum.d.ts.map +0 -1
- package/es/modules/platform-config/enums/platform.enum.mjs.map +0 -1
- package/es/modules/platform-config/index.d.ts.map +0 -1
- package/es/modules/platform-config/interfaces/index.d.ts.map +0 -1
- package/es/modules/platform-config/interfaces/login-config.interface.d.ts.map +0 -1
- package/es/modules/platform-config/interfaces/platform-map.interface.d.ts.map +0 -1
- package/es/modules/platform-config/interfaces/theme-setting.interface.d.ts.map +0 -1
- package/es/modules/platform-config/store.d.ts.map +0 -1
- package/es/modules/platform-config/store.mjs.map +0 -1
- package/es/modules/platform-config/useBasicSetting.d.ts.map +0 -1
- package/es/modules/platform-config/useBasicSetting.mjs.map +0 -1
- package/es/modules/platform-config/useDeploySetting.d.ts.map +0 -1
- package/es/modules/platform-config/useDeploySetting.mjs.map +0 -1
- package/es/modules/platform-config/useLoginSetting.d.ts.map +0 -1
- package/es/modules/platform-config/useLoginSetting.mjs.map +0 -1
- package/es/modules/platform-config/useOrgSetting.d.ts.map +0 -1
- package/es/modules/platform-config/useOrgSetting.mjs.map +0 -1
- package/es/modules/platform-config/useProjectSetting.d.ts.map +0 -1
- package/es/modules/platform-config/useProjectSetting.mjs.map +0 -1
- package/es/modules/platform-config/useSecuritySetting.d.ts.map +0 -1
- package/es/modules/platform-config/useSecuritySetting.mjs.map +0 -1
- package/es/modules/platform-config/useThemeSetting.d.ts.map +0 -1
- package/es/modules/platform-config/useThemeSetting.mjs.map +0 -1
- package/es/modules/platform-config/useWatermarkSetting.d.ts.map +0 -1
- package/es/modules/platform-config/useWatermarkSetting.mjs.map +0 -1
- package/es/modules/sign-log/index.d.ts.map +0 -1
- package/es/modules/sign-log/sign-log.d.ts.map +0 -1
- package/es/modules/sign-log/sign-log.mjs.map +0 -1
- package/es/modules/sign-log/sing-log.interface.d.ts.map +0 -1
- package/es/modules/system-mqtt/index.d.ts.map +0 -1
- package/es/modules/system-mqtt/system-mqtt.interface.d.ts.map +0 -1
- package/es/modules/system-mqtt/system-mqtt.service.d.ts.map +0 -1
- package/es/modules/system-mqtt/system-mqtt.service.mjs.map +0 -1
- package/es/modules/user-stores/index.d.ts.map +0 -1
- package/es/modules/user-stores/store/permission.store.d.ts.map +0 -1
- package/es/modules/user-stores/store/permission.store.mjs.map +0 -1
- package/es/modules/user-stores/store/tenant.store.d.ts.map +0 -1
- package/es/modules/user-stores/store/tenant.store.mjs.map +0 -1
- package/es/modules/user-stores/store/user.store.d.ts.map +0 -1
- package/es/modules/user-stores/store/user.store.mjs.map +0 -1
- package/es/modules/user-stores/types/permission.d.ts.map +0 -1
- package/es/modules/user-stores/types/tenant.d.ts.map +0 -1
- package/es/modules/user-stores/types/user.d.ts.map +0 -1
- package/es/router/guard/index.d.ts.map +0 -1
- package/es/router/guard/index.mjs.map +0 -1
- package/es/router/index.d.ts.map +0 -1
- package/es/router/index.mjs.map +0 -1
- package/es/router/redirect/redirect-index.vue.d.ts.map +0 -1
- package/es/router/redirect/redirect-index.vue.mjs.map +0 -1
- package/es/router/redirect/redirect-index.vue_vue_type_script_setup_true_lang.mjs.map +0 -1
- package/es/setup-app.d.ts.map +0 -1
- package/es/setup-app.mjs.map +0 -1
- package/es/state/global-pinia-state/global-pinia-state.d.ts.map +0 -1
- package/es/state/global-pinia-state/global-pinia-state.mjs.map +0 -1
- package/es/state/index.d.ts.map +0 -1
- package/es/store/global-store.d.ts.map +0 -1
- package/es/store/global-store.mjs.map +0 -1
- package/es/store/index.d.ts.map +0 -1
- package/es/store/index.mjs.map +0 -1
- package/es/store/session-store.d.ts.map +0 -1
- package/es/store/session-store.mjs.map +0 -1
- package/es/store/storage-store.d.ts.map +0 -1
- package/es/store/storage-store.mjs.map +0 -1
- package/es/utils/auth-util/auth-util.d.ts.map +0 -1
- package/es/utils/auth-util/auth-util.mjs.map +0 -1
- package/es/utils/axios/check-status.d.ts.map +0 -1
- package/es/utils/axios/check-status.mjs.map +0 -1
- package/es/utils/axios/interceptors.d.ts.map +0 -1
- package/es/utils/axios/interceptors.mjs.map +0 -1
- package/es/utils/cache-adapter/cache-adapter.d.ts.map +0 -1
- package/es/utils/cache-adapter/cache-adapter.mjs.map +0 -1
- package/es/utils/css-loader/css-loader.d.ts.map +0 -1
- package/es/utils/css-loader/css-loader.mjs.map +0 -1
- package/es/utils/data-prems/const.d.ts.map +0 -1
- package/es/utils/data-prems/const.mjs.map +0 -1
- package/es/utils/design/design.d.ts.map +0 -1
- package/es/utils/design/design.mjs.map +0 -1
- package/es/utils/deviceFingerprint.d.ts.map +0 -1
- package/es/utils/deviceFingerprint.mjs.map +0 -1
- package/es/utils/dictionary/dictionary.d.ts.map +0 -1
- package/es/utils/dictionary/dictionary.mjs.map +0 -1
- package/es/utils/file/base64Conver.d.ts.map +0 -1
- package/es/utils/file/base64Conver.mjs.map +0 -1
- package/es/utils/file/download.d.ts.map +0 -1
- package/es/utils/file/download.mjs.map +0 -1
- package/es/utils/file/parser.d.ts.map +0 -1
- package/es/utils/file/parser.mjs.map +0 -1
- package/es/utils/i18n/index.d.ts.map +0 -1
- package/es/utils/i18n/index.mjs.map +0 -1
- package/es/utils/index.d.ts.map +0 -1
- package/es/utils/is-sort-filed/is-sort-filed.d.ts.map +0 -1
- package/es/utils/is-sort-filed/is-sort-filed.mjs.map +0 -1
- package/es/utils/kit-pkg-util/kit-pkg-util.d.ts.map +0 -1
- package/es/utils/kit-pkg-util/kit-pkg-util.mjs.map +0 -1
- package/es/utils/linked-list/linked-list.d.ts.map +0 -1
- package/es/utils/linked-list/linked-list.mjs.map +0 -1
- package/es/utils/linked-node/linked-node.d.ts.map +0 -1
- package/es/utils/linked-node/linked-node.mjs.map +0 -1
- package/es/utils/lowcode/utils.d.ts.map +0 -1
- package/es/utils/lowcode/utils.mjs.map +0 -1
- package/es/utils/lowcode/validate.d.ts.map +0 -1
- package/es/utils/lowcode/validate.mjs.map +0 -1
- package/es/utils/mitt/mitt.d.ts.map +0 -1
- package/es/utils/mitt/mitt.mjs.map +0 -1
- package/es/utils/model-loader/model-loader.d.ts.map +0 -1
- package/es/utils/model-loader/model-loader.mjs.map +0 -1
- package/es/utils/namespace/namespace.d.ts.map +0 -1
- package/es/utils/namespace/namespace.mjs.map +0 -1
- package/es/utils/openUtil/index.d.ts.map +0 -1
- package/es/utils/openUtil/modal/modal.d.ts.map +0 -1
- package/es/utils/openUtil/modal/modal.mjs.map +0 -1
- package/es/utils/openUtil/overlay-container/overlay-container.d.ts.map +0 -1
- package/es/utils/openUtil/overlay-container/overlay-container.mjs.map +0 -1
- package/es/utils/openUtil/overlay-popover-container/overlay-popover-container.d.ts.map +0 -1
- package/es/utils/openUtil/overlay-popover-container/overlay-popover-container.mjs.map +0 -1
- package/es/utils/permission.d.ts.map +0 -1
- package/es/utils/permission.mjs.map +0 -1
- package/es/utils/plugin-pkg-util/plugin-pkg-util.d.ts.map +0 -1
- package/es/utils/plugin-pkg-util/plugin-pkg-util.mjs.map +0 -1
- package/es/utils/plugin-static-resource/plugin-static-resource.d.ts.map +0 -1
- package/es/utils/plugin-static-resource/plugin-static-resource.mjs.map +0 -1
- package/es/utils/script-loader/script-loader.d.ts.map +0 -1
- package/es/utils/script-loader/script-loader.mjs.map +0 -1
- package/es/utils/select-user-utils.d.ts.map +0 -1
- package/es/utils/select-user-utils.mjs.map +0 -1
- package/es/utils/style/index.d.ts.map +0 -1
- package/es/utils/style/index.mjs.map +0 -1
- package/es/utils/text-measure/text-measure.d.ts.map +0 -1
- package/es/utils/text-measure/text-measure.mjs.map +0 -1
- package/es/utils/tools/tools.d.ts.map +0 -1
- package/es/utils/tools/tools.mjs.map +0 -1
- package/es/utils/treeHelper/treeHelper.d.ts.map +0 -1
- package/es/utils/treeHelper/treeHelper.mjs.map +0 -1
- package/es/utils/uploader/uploader.d.ts.map +0 -1
- package/es/utils/uploader/uploader.mjs.map +0 -1
- package/es/utils/useUUid.d.ts.map +0 -1
- package/es/utils/useUUid.mjs.map +0 -1
- package/es/utils/util.d.ts.map +0 -1
- package/es/utils/util.mjs.map +0 -1
- package/es/utils/uuid/uuid.d.ts.map +0 -1
- package/es/utils/uuid/uuid.mjs.map +0 -1
- package/es/utils/validate.d.ts.map +0 -1
- package/es/utils/validate.mjs.map +0 -1
- package/es/utils/value-helper/value-helper.d.ts.map +0 -1
- package/es/utils/value-helper/value-helper.mjs.map +0 -1
- package/es/utils/vue-component-code.d.ts.map +0 -1
- package/es/utils/vue-component-code.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-loader.mjs","names":[],"sources":["../../../src/utils/model-loader/model-loader.ts"],"sourcesContent":["import type { IFieldCodeChain } from '../../interface';\nimport { cloneDeep } from 'lodash-es';\nimport type {\n FieldMetaDTO,\n ModelMetaDTO,\n ModelPageableRow,\n QueryRefDataRequest,\n} from '@gct-paas/api/apaas';\nimport { EntityModelCategoryEnum } from '@/enums';\n\n/**\n * 缓存条目接口,包含缓存数据和过期时间戳\n */\ninterface CacheEntry<T> {\n data: T;\n expiresAt: number;\n}\n\n/**\n * 模型加载器,提供模型缓存和请求去重功能\n *\n * @author chitanda\n * @date 2025-06-20 16:06:12\n * @class ModelLoader\n */\nclass ModelLoader {\n // 缓存过期时间(毫秒),默认10分钟\n private readonly CACHE_EXPIRATION_TIME = 10 * 60 * 1000;\n\n private modelCache = new Map<string, CacheEntry<ModelMetaDTO>>();\n private modelLoadingCache = new Map<string, Promise<ModelMetaDTO>>();\n private modelsLoadingCache = new Map<string, Promise<ModelMetaDTO[]>>();\n private enumCache = new Map<string, CacheEntry<IObject[]>>();\n private enumLoadingCache = new Map<string, Promise<IObject[]>>();\n private queryRefDataCache = new Map<string, CacheEntry<ModelPageableRow>>();\n private queryRefDataLoadingCache = new Map<\n string,\n Promise<ModelPageableRow>\n >();\n\n /**\n * 检查缓存条目是否过期\n *\n * @param {CacheEntry<any>} entry\n * @returns {*} {boolean}\n */\n private isExpired<T>(entry: CacheEntry<T>): boolean {\n return Date.now() > entry.expiresAt;\n }\n\n /**\n * 创建缓存条目\n *\n * @param {T} data\n * @returns {*} {CacheEntry<T>}\n */\n private createCacheEntry<T>(data: T): CacheEntry<T> {\n return {\n data,\n expiresAt: Date.now() + this.CACHE_EXPIRATION_TIME,\n };\n }\n\n /**\n * 加载模型信息,具有缓存和请求去重功能\n *\n * @author chitanda\n * @date 2025-06-20 16:06:05\n * @param {string} modelKey\n * @returns {*} {Promise<ModelMetaDTO>}\n */\n async loadModel(modelKey: string): Promise<ModelMetaDTO> {\n // 如果已经有缓存且未过期,直接返回缓存的数据\n if (this.modelCache.has(modelKey)) {\n const cacheEntry = this.modelCache.get(modelKey)!;\n if (!this.isExpired(cacheEntry)) {\n return cacheEntry.data;\n }\n // 如果过期,清除缓存\n this.modelCache.delete(modelKey);\n }\n\n // 如果正在请求中,返回同一个 Promise 实例\n if (this.modelLoadingCache.has(modelKey)) {\n return this.modelLoadingCache.get(modelKey)!;\n }\n\n // 创建新的请求 Promise\n const loadPromise = (async () => {\n try {\n const data = await _api.apaas.modelMeta.getDetail({ modelKey });\n if (data) {\n this.modelCache.set(modelKey, this.createCacheEntry(data));\n return data;\n }\n return {};\n } finally {\n // 请求完成后清除加载缓存\n this.modelLoadingCache.delete(modelKey);\n }\n })();\n\n // 缓存正在进行的请求\n this.modelLoadingCache.set(modelKey, loadPromise);\n\n return loadPromise;\n }\n\n /**\n * 加载多个模型信息\n *\n * @author chitanda\n * @date 2025-06-22 15:06:54\n * @param {string[]} modelKeys\n * @returns {*} {Promise<ModelMetaDTO[]>}\n */\n async loadModels(modelKeys: string[]): Promise<ModelMetaDTO[]> {\n const cacheKey = modelKeys.join(',');\n\n // 检查是否所有模型都已缓存且未过期\n const allCached = modelKeys.every(key => {\n const entry = this.modelCache.get(key);\n return entry && !this.isExpired(entry);\n });\n if (allCached) {\n return modelKeys.map(key => this.modelCache.get(key)!.data);\n }\n\n // 清除已过期的缓存\n modelKeys.forEach(key => {\n const entry = this.modelCache.get(key);\n if (entry && this.isExpired(entry)) {\n this.modelCache.delete(key);\n }\n });\n\n // 如果正在请求中,返回同一个 Promise 实例\n if (this.modelsLoadingCache.has(cacheKey)) {\n return this.modelsLoadingCache.get(cacheKey)!;\n }\n\n // 创建新的请求 Promise\n const loadPromise = (async () => {\n try {\n // 过滤出未加载的模型键\n const pendingKeys = modelKeys.filter(key => !this.modelCache.has(key));\n\n if (pendingKeys.length > 0) {\n const data = await _api.apaas.modelMeta.getByKeys({\n modelKeys: pendingKeys.join(','),\n });\n if (data && data.length > 0) {\n // 将获取到的模型数据缓存起来\n data.forEach(model => {\n this.modelCache.set(model.key!, this.createCacheEntry(model));\n // 特殊处理不知道为什么,返回结构和接口不一致\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (model as any).fieldMetaList = model.fieldMetas || [];\n });\n }\n }\n\n return modelKeys.map(key => {\n const entry = this.modelCache.get(key)!;\n return entry.data;\n });\n } finally {\n // 请求完成后清除加载缓存\n this.modelsLoadingCache.delete(cacheKey);\n }\n })();\n\n // 缓存正在进行的请求\n this.modelsLoadingCache.set(cacheKey, loadPromise);\n\n return loadPromise;\n }\n\n /**\n * 加载指定模型的字段信息\n *\n * @author chitanda\n * @date 2025-06-22 14:06:37\n * @param {string} modelKey\n * @param {string} fieldKey\n * @returns {*} {(Promise<FieldMetaDTO | undefined>)}\n */\n async loadField(\n modelKey: string,\n fieldKey: string,\n ): Promise<FieldMetaDTO | undefined> {\n const model = await this.loadModel(modelKey);\n if (model?.fieldMetaList) {\n return model.fieldMetaList.find(field => field.key === fieldKey);\n }\n return undefined;\n }\n\n /**\n * 加载指定模型的字段路径信息\n *\n * @author chitanda\n * @date 2025-06-22 14:06:11\n * @param {string} modelKey\n * @param {string} fieldKey\n * @returns {*} {Promise<string[]>}\n */\n async loadFieldPaths(\n modelKey: string,\n fieldKey: string,\n fieldCodeChain: IFieldCodeChain,\n ): Promise<string[]> {\n if (!fieldCodeChain) {\n return [];\n }\n const list: string[] = [];\n const isFieldModel = !!fieldCodeChain.bindFieldKey;\n const modelKeys = isFieldModel\n ? fieldCodeChain.modelLink || [\n fieldCodeChain.belongModelKey,\n fieldCodeChain.bindModelKey,\n ]\n : [fieldCodeChain.modelKey];\n const models = await this.loadModels(modelKeys);\n if (isFieldModel) {\n list.push(...models.map(model => model.name!));\n } else {\n const model = await this.loadModel(fieldCodeChain.modelKey);\n if (model) {\n list.push(model.name!);\n }\n }\n const model = await this.loadModel(modelKey);\n if (model?.fieldMetaList) {\n const field = model.fieldMetaList.find(field => field.key === fieldKey);\n if (field) {\n list.push(field.name!);\n }\n }\n return list;\n }\n\n /**\n * 加载指定模型的枚举列表\n *\n * @param {string} modelKey\n * @param {string} fieldKey\n * @param {string} [modelCategory=EntityModelCategoryEnum.ENTITY]\n * @returns {*} {Promise<IObject[]>}\n */\n async loadEnumList(\n modelKey: string,\n fieldKey: string,\n modelCategory: string = EntityModelCategoryEnum.ENTITY,\n ): Promise<IObject[]> {\n const cacheKey = `${modelCategory}:${modelKey}:${fieldKey}`;\n\n // 如果已经有缓存且未过期,直接返回缓存的数据\n if (this.enumCache.has(cacheKey)) {\n const cacheEntry = this.enumCache.get(cacheKey)!;\n if (!this.isExpired(cacheEntry)) {\n return cloneDeep(cacheEntry.data);\n }\n // 如果过期,清除缓存\n this.enumCache.delete(cacheKey);\n this.enumLoadingCache.delete(cacheKey);\n }\n\n // 如果正在请求中,返回同一个 Promise 实例\n if (this.enumLoadingCache.has(cacheKey)) {\n return this.enumLoadingCache.get(cacheKey)!;\n }\n\n // 创建新的请求 Promise\n const loadPromise = (async () => {\n try {\n const items =\n await _api.apaas.modelComprehensive.getEnumInfoModelCategory(\n { modelCategory },\n { modelKey, fieldKey },\n );\n if (items) {\n this.enumCache.set(cacheKey, this.createCacheEntry(items));\n return cloneDeep(items);\n }\n return [];\n } finally {\n // 请求完成后清除加载缓存\n this.enumLoadingCache.delete(cacheKey);\n }\n })();\n\n // 缓存正在进行的请求\n this.enumLoadingCache.set(cacheKey, loadPromise);\n\n return loadPromise;\n }\n\n /**\n * 加载关联数据查询(QueryRef)\n *\n * @param {QueryRefDataRequest} request\n * @returns {*} {Promise<ModelPageableRow>}\n */\n async loadQueryRefData(\n request: QueryRefDataRequest,\n ): Promise<ModelPageableRow> {\n if (!request || !request.modelKey) {\n throw new Error(`queryRefData 参数缺失`);\n }\n const cacheKey = JSON.stringify(request);\n\n // 如果已经有缓存且未过期,直接返回缓存的数据\n if (this.queryRefDataCache.has(cacheKey)) {\n const cacheEntry = this.queryRefDataCache.get(cacheKey)!;\n if (!this.isExpired(cacheEntry)) {\n return cloneDeep(cacheEntry.data);\n }\n // 如果过期,清除缓存\n this.queryRefDataCache.delete(cacheKey);\n this.queryRefDataLoadingCache.delete(cacheKey);\n }\n\n // 如果正在请求中,返回同一个 Promise 实例\n if (this.queryRefDataLoadingCache.has(cacheKey)) {\n return this.queryRefDataLoadingCache.get(cacheKey)!;\n }\n\n // 创建新的请求 Promise\n const loadPromise = (async () => {\n try {\n const data = await _api.apaas.modelData.postQueryRefData(request);\n if (data) {\n this.queryRefDataCache.set(cacheKey, this.createCacheEntry(data));\n return cloneDeep(data);\n }\n return {} as ModelPageableRow;\n } finally {\n // 请求完成后清除加载缓存\n this.queryRefDataLoadingCache.delete(cacheKey);\n }\n })();\n\n // 缓存正在进行的请求\n this.queryRefDataLoadingCache.set(cacheKey, loadPromise);\n\n return loadPromise;\n }\n\n /**\n * 获取已缓存的模型\n * @param modelKey 模型键\n * @returns ModelMetaDTO | undefined\n */\n getCachedModel(modelKey: string): ModelMetaDTO | undefined {\n const entry = this.modelCache.get(modelKey);\n if (entry && !this.isExpired(entry)) {\n return entry.data;\n }\n if (entry && this.isExpired(entry)) {\n this.modelCache.delete(modelKey);\n }\n return undefined;\n }\n\n /**\n * 清除指定模型的缓存\n *\n * @author chitanda\n * @date 2025-06-20 16:06:41\n * @param {string} modelKey\n */\n clear(modelKey: string): void {\n this.modelCache.delete(modelKey);\n this.modelLoadingCache.delete(modelKey);\n\n // 清除包含该模型的批量加载缓存\n const keysToDelete: string[] = [];\n this.modelsLoadingCache.forEach((_, cacheKey) => {\n if (cacheKey.includes(modelKey)) {\n keysToDelete.push(cacheKey);\n }\n });\n keysToDelete.forEach(key => {\n this.modelsLoadingCache.delete(key);\n });\n\n // 清除包含该模型的枚举缓存\n const enumKeysToDelete: string[] = [];\n this.enumCache.forEach((_, cacheKey) => {\n if (cacheKey.includes(modelKey)) {\n enumKeysToDelete.push(cacheKey);\n }\n });\n enumKeysToDelete.forEach(key => {\n this.enumCache.delete(key);\n this.enumLoadingCache.delete(key);\n });\n\n // 清除包含该模型的 QueryRef 缓存\n const queryRefKeysToDelete: string[] = [];\n this.queryRefDataCache.forEach((_, cacheKey) => {\n if (cacheKey.includes(`\"modelKey\":\"${modelKey}\"`)) {\n queryRefKeysToDelete.push(cacheKey);\n }\n });\n queryRefKeysToDelete.forEach(key => {\n this.queryRefDataCache.delete(key);\n this.queryRefDataLoadingCache.delete(key);\n });\n }\n\n /**\n * 清除所有模型缓存\n *\n * @author chitanda\n * @date 2025-06-20 16:06:35\n */\n clearAll(): void {\n this.modelCache.clear();\n this.modelLoadingCache.clear();\n this.modelsLoadingCache.clear();\n this.enumCache.clear();\n this.enumLoadingCache.clear();\n this.queryRefDataCache.clear();\n this.queryRefDataLoadingCache.clear();\n }\n\n /**\n * 获取所有已缓存的模型键\n *\n * @author chitanda\n * @date 2025-06-20 16:06:55\n * @returns {*} {string[]}\n */\n keys(): string[] {\n return Array.from(this.modelCache.keys());\n }\n}\n\n// 导出单例实例\nexport const modelLoader = new ModelLoader();\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/utils/namespace/namespace.ts"],"names":[],"mappings":"AAuCA;;;;;GAKG;AACH,qBAAa,SAAS;IAelB,SAAS,CAAC,KAAK,EAAE,MAAM;IAdzB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;;;;OAKG;gBAES,KAAK,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,MAAM;IAKpB;;;;;;OAMG;IACH,CAAC,CAAC,WAAW,GAAE,MAAW,GAAG,MAAM;IAInC;;;;;OAKG;IACH,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IAI3B;;;;;OAKG;IACH,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAI5B;;;;;;OAMG;IACH,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IAMlD;;;;;;OAMG;IACH,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAM/C;;;;;;OAMG;IACH,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAMnD;;;;;;;OAOG;IACH,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAMtE;;;;;;;;;OASG;IACH,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM;IAIzC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAU9D;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUnE;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIhC;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAGtC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAErD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.mjs","names":[],"sources":["../../../src/utils/namespace/namespace.ts"],"sourcesContent":["import { STYLE_NAMESPACE_TAG } from '../../constants';\n\nconst statePrefix = 'is-';\n\n/**\n * css bem 命名规则拼接\n * _bem('gct', 'layout') => gct-layout\n * _bem('gct', 'layout', '', 'title') => gct-layout__title\n * _bem('gct', 'layout', '', '', 'right') => gct-layout--right\n * _bem('gct', 'layout', '', 'title', 'right') => gct-layout__title--right\n * _bem('gct', 'layout', 'header', 'title', 'right') => gct-layout-header__title--right\n *\n * @param {string} namespace 命名空间\n * @param {string} block 块\n * @param {string} blockSuffix 块后缀\n * @param {string} element 元素\n * @param {string} modifier 修饰符\n * @return {*} {string}\n */\nfunction _bem(\n namespace: string,\n block: string,\n blockSuffix?: string,\n element?: string,\n modifier?: string,\n): string {\n let cls = `${namespace}-${block}`;\n if (blockSuffix) {\n cls += `-${blockSuffix}`;\n }\n if (element) {\n cls += `__${element}`;\n }\n if (modifier) {\n cls += `--${modifier}`;\n }\n return cls;\n}\n\n/**\n * 全局样式处理命名空间\n *\n * @export\n * @class Namespace\n */\nexport class Namespace {\n /**\n * 命名空间\n *\n * @type {string}\n */\n readonly namespace: string;\n\n /**\n * Creates an instance of Namespace.\n *\n * @param {string} block 当前命名空间的根模块,例如组件的名称\n * @param {string} [namespace] 指定命名空间,未指定使用默认值 gct\n */\n constructor(\n protected block: string,\n namespace?: string,\n ) {\n this.namespace = namespace || STYLE_NAMESPACE_TAG;\n }\n\n /**\n * namespace-block\n * namespace-block-blockSuffix\n *\n * @param {string} [blockSuffix='']\n * @return {*} {string}\n */\n b(blockSuffix: string = ''): string {\n return _bem(this.namespace, this.block, blockSuffix, '', '');\n }\n\n /**\n * namespace-block__element\n *\n * @param {string} [element]\n * @return {*} {string}\n */\n e(element?: string): string {\n return element ? _bem(this.namespace, this.block, '', element, '') : '';\n }\n\n /**\n * namespace-block--modifier\n *\n * @param {string} [modifier]\n * @return {*} {string}\n */\n m(modifier?: string): string {\n return modifier ? _bem(this.namespace, this.block, '', '', modifier) : '';\n }\n\n /**\n * namespace-block-blockSuffix__element\n *\n * @param {string} [blockSuffix]\n * @param {string} [element]\n * @return {*} {string}\n */\n be(blockSuffix?: string, element?: string): string {\n return blockSuffix && element\n ? _bem(this.namespace, this.block, blockSuffix, element, '')\n : '';\n }\n\n /**\n * namespace-block__element--modifier\n *\n * @param {string} [element]\n * @param {string} [modifier]\n * @return {*} {string}\n */\n em(element?: string, modifier?: string): string {\n return element && modifier\n ? _bem(this.namespace, this.block, '', element, modifier)\n : '';\n }\n\n /**\n * namespace-block-blockSuffix--modifier\n *\n * @param {string} [blockSuffix]\n * @param {string} [modifier]\n * @return {*} {string}\n */\n bm(blockSuffix?: string, modifier?: string): string {\n return blockSuffix && modifier\n ? _bem(this.namespace, this.block, blockSuffix, '', modifier)\n : '';\n }\n\n /**\n * namespace-block-blockSuffix__element--modifier\n *\n * @param {string} [blockSuffix]\n * @param {string} [element]\n * @param {string} [modifier]\n * @return {*} {string}\n */\n bem(blockSuffix?: string, element?: string, modifier?: string): string {\n return blockSuffix && element && modifier\n ? _bem(this.namespace, this.block, blockSuffix, element, modifier)\n : '';\n }\n\n /**\n * 返回状态 class\n *\n * is('loading', false) => '';\n * is('loading', true) => 'is-loading';\n *\n * @param {string} name\n * @param {boolean} [state]\n * @return {*} {string}\n */\n is(name: string, state?: boolean): string {\n return name && state ? `${statePrefix}${name}` : '';\n }\n\n /**\n * 生成使用到的 css 变量 style 对象\n *\n * @param {Record<string, string>} object\n * @return {*} {Record<string, string>}\n */\n cssVar(object: Record<string, string>): Record<string, string> {\n const styles: Record<string, string> = {};\n for (const key in object) {\n if (object[key]) {\n styles[this.cssVarName(key)] = object[key];\n }\n }\n return styles;\n }\n\n /**\n * 生成使用到的 css block 变量 style 对象\n *\n * @param {Record<string, string>} object\n * @return {*} {Record<string, string>}\n */\n cssVarBlock(object: Record<string, string>): Record<string, string> {\n const styles: Record<string, string> = {};\n for (const key in object) {\n if (object[key]) {\n styles[this.cssVarBlockName(key)] = object[key];\n }\n }\n return styles;\n }\n\n /**\n * 生成 css var 变量名称\n *\n * @param {string} name\n * @return {*} {string}\n */\n cssVarName(name: string): string {\n return `--${this.namespace}-${name}`;\n }\n\n /**\n * 生成块 css var 变量名称\n *\n * @param {string} name\n * @return {*} {string}\n */\n cssVarBlockName(name: string): string {\n return `--${this.namespace}-${this.block}-${name}`;\n }\n}\n\n/**\n * 获取 bem 操作类\n *\n * @export\n * @param {string} block\n * @return {*} {Namespace}\n */\nexport function useNamespace(block: string): Namespace {\n return new Namespace(block);\n}\n"],"mappings":";;AAEA,IAAM,cAAc;;;;;;;;;;;;;;;;AAiBpB,SAAS,KACP,WACA,OACA,aACA,SACA,UACQ;CACR,IAAI,MAAM,GAAG,UAAU,GAAG;CAC1B,IAAI,aACF,OAAO,IAAI;CAEb,IAAI,SACF,OAAO,KAAK;CAEd,IAAI,UACF,OAAO,KAAK;CAEd,OAAO;;;;;;;;AAST,IAAa,YAAb,MAAuB;CAeT;;;;;;CATZ;;;;;;;CAQA,YACE,OACA,WACA;EAFU,KAAA,QAAA;EAGV,KAAK,YAAY,aAAA;;;;;;;;;CAUnB,EAAE,cAAsB,IAAY;EAClC,OAAO,KAAK,KAAK,WAAW,KAAK,OAAO,aAAa,IAAI,GAAG;;;;;;;;CAS9D,EAAE,SAA0B;EAC1B,OAAO,UAAU,KAAK,KAAK,WAAW,KAAK,OAAO,IAAI,SAAS,GAAG,GAAG;;;;;;;;CASvE,EAAE,UAA2B;EAC3B,OAAO,WAAW,KAAK,KAAK,WAAW,KAAK,OAAO,IAAI,IAAI,SAAS,GAAG;;;;;;;;;CAUzE,GAAG,aAAsB,SAA0B;EACjD,OAAO,eAAe,UAClB,KAAK,KAAK,WAAW,KAAK,OAAO,aAAa,SAAS,GAAG,GAC1D;;;;;;;;;CAUN,GAAG,SAAkB,UAA2B;EAC9C,OAAO,WAAW,WACd,KAAK,KAAK,WAAW,KAAK,OAAO,IAAI,SAAS,SAAS,GACvD;;;;;;;;;CAUN,GAAG,aAAsB,UAA2B;EAClD,OAAO,eAAe,WAClB,KAAK,KAAK,WAAW,KAAK,OAAO,aAAa,IAAI,SAAS,GAC3D;;;;;;;;;;CAWN,IAAI,aAAsB,SAAkB,UAA2B;EACrE,OAAO,eAAe,WAAW,WAC7B,KAAK,KAAK,WAAW,KAAK,OAAO,aAAa,SAAS,SAAS,GAChE;;;;;;;;;;;;CAaN,GAAG,MAAc,OAAyB;EACxC,OAAO,QAAQ,QAAQ,GAAG,cAAc,SAAS;;;;;;;;CASnD,OAAO,QAAwD;EAC7D,MAAM,SAAiC,EAAE;EACzC,KAAK,MAAM,OAAO,QAChB,IAAI,OAAO,MACT,OAAO,KAAK,WAAW,IAAI,IAAI,OAAO;EAG1C,OAAO;;;;;;;;CAST,YAAY,QAAwD;EAClE,MAAM,SAAiC,EAAE;EACzC,KAAK,MAAM,OAAO,QAChB,IAAI,OAAO,MACT,OAAO,KAAK,gBAAgB,IAAI,IAAI,OAAO;EAG/C,OAAO;;;;;;;;CAST,WAAW,MAAsB;EAC/B,OAAO,KAAK,KAAK,UAAU,GAAG;;;;;;;;CAShC,gBAAgB,MAAsB;EACpC,OAAO,KAAK,KAAK,UAAU,GAAG,KAAK,MAAM,GAAG;;;;;;;;;;AAWhD,SAAgB,aAAa,OAA0B;CACrD,OAAO,IAAI,UAAU,MAAM"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/openUtil/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../../src/utils/openUtil/modal/modal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,UAAU,eAAe;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACrC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AACD,qBAAa,KAAM,YAAW,MAAM;IAClC,kBAAkB,UAAS;IAE3B,KAAK,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,CAGtD;IAEH,KAAK;;yBACmD,OAAO;;;MAE7D;IAEF,EAAE,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAEtC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;gBAE3B,IAAI,EAAE,eAAe;IASjC,MAAM,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAE9C,QAAQ,CACN,EAAE,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,EACrC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAC9B,IAAI;IASP;;;;;;OAMG;IACH,QAAQ,GAAI,MAAM,UAAU,KAAG,IAAI,CAEjC;IAEF;;;;;;OAMG;IACH,aAAa,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIlD,OAAO,CAAC,IAAI,GAAE,UAAoC,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB3E;;;;;;OAMG;IACH,SAAS,CAAC,OAAO,IAAI,IAAI;CAI1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modal.mjs","names":[],"sources":["../../../../src/utils/openUtil/modal/modal.ts"],"sourcesContent":["import { reactive } from 'vue';\n\nimport { AsyncSeriesHook } from 'qx-util';\nimport type { IModal, IModalData } from '@/interface';\n\ninterface ConstructorOpts {\n /**\n * 注入的模态等组件实际的关闭操作,\n *\n * @author zhanghanrui\n * @date 2024-03-19 21:03:00\n */\n dismiss?: (data: IModalData) => void;\n /**\n * 修改属性\n * @param data\n * @returns\n */\n setOptions?: (data: object) => void;\n}\nexport class Modal implements IModal {\n ignoreDismissCheck = false;\n\n state: { okDisabled?: boolean; cancelDisabled?: boolean } = reactive({\n okDisabled: false,\n cancelDisabled: false,\n });\n\n hooks = {\n shouldDismiss: new AsyncSeriesHook<[], { allowClose?: boolean }>(),\n beforeDismiss: new AsyncSeriesHook<[], IModalData>(),\n };\n\n ok?: () => Promise<IModalData | null>;\n\n setOptions?: (options: object) => void;\n\n constructor(opts: ConstructorOpts) {\n if (opts.dismiss) {\n this._dismiss = opts.dismiss;\n }\n if (opts.setOptions) {\n this.setOptions = opts.setOptions;\n }\n }\n\n cancel?: (() => Promise<boolean>) | undefined;\n\n callback(\n ok?: () => Promise<IModalData | null>,\n cancel?: () => Promise<boolean>,\n ): void {\n if (ok) {\n this.ok = ok;\n }\n if (cancel) {\n this.cancel = cancel;\n }\n }\n\n /**\n * 外部注入的模态等组件实际的关闭操作\n *\n * @author zhanghanrui\n * @date 2024-03-19 21:03:08\n * @param {IModalData} data\n */\n _dismiss = (data: IModalData): void => {\n console.warn('外部关闭能力未注册', data);\n };\n\n /**\n * 注入模态等组件实际的关闭操作\n *\n * @author zhanghanrui\n * @date 2024-03-19 21:03:13\n * @param {(data: IModalData) => void} dismiss\n */\n injectDismiss(dismiss: (data: IModalData) => void): void {\n this._dismiss = dismiss;\n }\n\n async dismiss(data: IModalData = { ok: false, data: [] }): Promise<boolean> {\n const context: IData = {};\n if (this.ignoreDismissCheck !== true) {\n // 判断是否执行关闭\n await this.hooks.shouldDismiss.call(context);\n }\n if (context.allowClose === false) {\n console.warn('shouldDismiss结果为false,关闭中断。');\n return false;\n }\n\n // 执行关闭前操作\n await this.hooks.beforeDismiss.call(data);\n\n // 执行实际关闭操作\n this._dismiss(data);\n this.destroy();\n return true;\n }\n\n /**\n * 执行完一次关闭后就会调销毁\n *\n * @author zhanghanrui\n * @date 2024-03-19 21:03:22\n * @protected\n */\n protected destroy(): void {\n this.hooks.shouldDismiss.clear();\n this.hooks.beforeDismiss.clear();\n }\n}\n"],"mappings":";;;AAoBA,IAAa,QAAb,MAAqC;CACnC,qBAAqB;CAErB,QAA4D,SAAS;EACnE,YAAY;EACZ,gBAAgB;EACjB,CAAC;CAEF,QAAQ;EACN,eAAe,IAAI,iBAA+C;EAClE,eAAe,IAAI,iBAAiC;EACrD;CAED;CAEA;CAEA,YAAY,MAAuB;EACjC,IAAI,KAAK,SACP,KAAK,WAAW,KAAK;EAEvB,IAAI,KAAK,YACP,KAAK,aAAa,KAAK;;CAI3B;CAEA,SACE,IACA,QACM;EACN,IAAI,IACF,KAAK,KAAK;EAEZ,IAAI,QACF,KAAK,SAAS;;;;;;;;;CAWlB,YAAY,SAA2B;EACrC,QAAQ,KAAK,aAAa,KAAK;;;;;;;;;CAUjC,cAAc,SAA2C;EACvD,KAAK,WAAW;;CAGlB,MAAM,QAAQ,OAAmB;EAAE,IAAI;EAAO,MAAM,EAAE;EAAE,EAAoB;EAC1E,MAAM,UAAiB,EAAE;EACzB,IAAI,KAAK,uBAAuB,MAE9B,MAAM,KAAK,MAAM,cAAc,KAAK,QAAQ;EAE9C,IAAI,QAAQ,eAAe,OAAO;GAChC,QAAQ,KAAK,8BAA8B;GAC3C,OAAO;;EAIT,MAAM,KAAK,MAAM,cAAc,KAAK,KAAK;EAGzC,KAAK,SAAS,KAAK;EACnB,KAAK,SAAS;EACd,OAAO;;;;;;;;;CAUT,UAA0B;EACxB,KAAK,MAAM,cAAc,OAAO;EAChC,KAAK,MAAM,cAAc,OAAO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"overlay-container.d.ts","sourceRoot":"","sources":["../../../../src/utils/openUtil/overlay-container/overlay-container.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,EAAK,KAAK,KAAK,EAAa,MAAM,KAAK,CAAC;AAEzE;;;;;;;;;GASG;AACH,qBAAa,gBAAgB,CAAC,CAAC,CAAE,YAAW,iBAAiB;IAkDzD,SAAS,CAAC,SAAS,EAAE,OAAO;IAC5B,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK;IAC3C,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IAnDpB,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAEnB;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;IAErB;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;;OAMG;IACH,SAAS,CAAC,GAAG;iBAA0B,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI;OAAM;IAErE;;;;;OAKG;IACH,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;;;;;;OAQG;gBAES,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,EACjC,IAAI,CAAC,EAAE,CAAC,YAAA;IAKpB,MAAM,CAAC,YAAY,CACjB,aAAa,EAAE,SAAS,EACxB,SAAS,CAAC,EAAE,KAAK,GAChB,GAAG,CAAC,OAAO,CAAC;IAKf;;;;;;;OAOG;cACa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwDrC;;;;;;OAMG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C;;;;;;;OAOG;IACG,aAAa,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC;CAS/C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"overlay-container.mjs","names":[],"sources":["../../../../src/utils/openUtil/overlay-container/overlay-container.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { IOverlayContainer } from '@/interface';\nimport { PluginModeEnum } from '@/enums';\nimport { KitPkgUtil } from '@/utils';\nimport { QXEvent } from 'qx-util';\nimport { type App, type Component, h, type VNode, createApp } from 'vue';\n\n/**\n * 全局弹出承载组件\n *\n * @author zhanghanrui\n * @date 2024-03-19 19:03:22\n * @export\n * @class OverlayContainer\n * @implements {IOverlayContainer}\n * @template O\n */\nexport class OverlayContainer<O> implements IOverlayContainer {\n protected vm?: App;\n\n /**\n * 具体模态组件对象\n *\n * @author zhanghanrui\n * @date 2024-03-19 19:03:45\n * @protected\n * @type {*}\n */\n protected modal: any;\n\n /**\n * 调用dismiss时传的result结果\n *\n * @author zhanghanrui\n * @date 2024-03-19 19:03:30\n * @protected\n * @type {unknown}\n */\n protected result?: unknown;\n\n /**\n * 内部事件\n *\n * @author zhanghanrui\n * @date 2024-03-19 19:03:44\n * @protected\n */\n protected evt = new QXEvent<{ dismiss: (data?: unknown) => void }>();\n\n /**\n * init 执行完毕的 Promise,用于确保 present/dismiss 调用时 init 已完成\n *\n * @protected\n * @type {Promise<void>}\n */\n protected _initPromise: Promise<void>;\n\n /**\n * 创建全局呈现\n *\n * @author zhanghanrui\n * @date 2024-03-19 19:03:51\n * @param {unknown} component\n * @param {(...args: any[]) => VNode} render\n * @param {O} [opts]\n */\n constructor(\n protected component: unknown,\n protected render: (...args: any[]) => VNode,\n protected opts?: O,\n ) {\n this._initPromise = this.init();\n }\n\n static createVueApp(\n rootComponent: Component,\n rootProps?: IData,\n ): App<Element> {\n console.error('没有注入createVueApp方法');\n return createApp(rootComponent, rootProps) as App<Element>;\n }\n\n /**\n * 初始化飘窗\n *\n * @author zhanghanrui\n * @date 2024-03-19 19:03:00\n * @protected\n * @return {*} {void}\n */\n protected async init(): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n const { render, opts } = this;\n const container = document.createElement('div');\n document.body.appendChild(container);\n // eslint-disable-next-line no-async-promise-executor\n return new Promise<void>(async resolve => {\n const vm = OverlayContainer.createVueApp({\n mounted() {\n self.modal = this.$refs.root;\n resolve();\n },\n unmounted() {\n document.body.removeChild(container);\n self.evt.emit('dismiss', self.result);\n },\n render() {\n return h(\n self.component as string,\n {\n ref: 'root',\n opts,\n onDismiss(data: IData) {\n self.result = data;\n vm.unmount();\n },\n },\n { default: render },\n );\n },\n });\n if (_gct.store.appInfo.suiteKey) {\n const module = await KitPkgUtil.loadWeb(_gct.store.appInfo.suiteKey);\n if (module && module.createAppVue) {\n module.createAppVue(vm);\n }\n }\n const pluginKits = (\n (_gct.store.appInfo as { plugins?: string }).plugins ?? ''\n )\n .split(',')\n .map(item => item.trim())\n .filter(Boolean);\n const pluginModules = await KitPkgUtil.loadKits(\n pluginKits,\n PluginModeEnum.WEB,\n );\n for (const module of pluginModules) {\n module.createAppVue(vm);\n }\n vm.mount(container);\n this.vm = vm;\n });\n }\n\n /**\n * 打开飘窗\n *\n * @author zhanghanrui\n * @date 2024-03-19 19:03:14\n * @return {*} {Promise<void>}\n */\n async present(): Promise<void> {\n await this._initPromise;\n return this.modal.present();\n }\n\n /**\n * 手动调用关闭飘窗\n *\n * @author zhanghanrui\n * @date 2024-03-19 19:03:19\n * @param {unknown} [data]\n * @return {*} {Promise<void>}\n */\n async dismiss(data?: unknown): Promise<void> {\n await this.modal.dismiss(data);\n }\n\n /**\n * 订阅窗口关闭\n *\n * @author zhanghanrui\n * @date 2024-03-19 19:03:26\n * @template T\n * @return {*} {Promise<T>}\n */\n async onWillDismiss<T = unknown>(): Promise<T> {\n return new Promise<T>(resolve => {\n const callback = (data: unknown) => {\n resolve(data as T);\n this.evt.off('dismiss', callback);\n };\n this.evt.on('dismiss', callback);\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,IAAa,mBAAb,MAAa,iBAAiD;CAkDhD;CACA;CACA;CAnDZ;;;;;;;;;CAUA;;;;;;;;;CAUA;;;;;;;;CASA,MAAgB,IAAI,SAAgD;;;;;;;CAQpE;;;;;;;;;;CAWA,YACE,WACA,QACA,MACA;EAHU,KAAA,YAAA;EACA,KAAA,SAAA;EACA,KAAA,OAAA;EAEV,KAAK,eAAe,KAAK,MAAM;;CAGjC,OAAO,aACL,eACA,WACc;EACd,QAAQ,MAAM,qBAAqB;EACnC,OAAO,UAAU,eAAe,UAAU;;;;;;;;;;CAW5C,MAAgB,OAAsB;EAEpC,MAAM,OAAO;EACb,MAAM,EAAE,QAAQ,SAAS;EACzB,MAAM,YAAY,SAAS,cAAc,MAAM;EAC/C,SAAS,KAAK,YAAY,UAAU;EAEpC,OAAO,IAAI,QAAc,OAAM,YAAW;GACxC,MAAM,KAAK,iBAAiB,aAAa;IACvC,UAAU;KACR,KAAK,QAAQ,KAAK,MAAM;KACxB,SAAS;;IAEX,YAAY;KACV,SAAS,KAAK,YAAY,UAAU;KACpC,KAAK,IAAI,KAAK,WAAW,KAAK,OAAO;;IAEvC,SAAS;KACP,OAAO,EACL,KAAK,WACL;MACE,KAAK;MACL;MACA,UAAU,MAAa;OACrB,KAAK,SAAS;OACd,GAAG,SAAS;;MAEf,EACD,EAAE,SAAS,QAAQ,CACpB;;IAEJ,CAAC;GACF,IAAI,KAAK,MAAM,QAAQ,UAAU;IAC/B,MAAM,SAAS,MAAM,WAAW,QAAQ,KAAK,MAAM,QAAQ,SAAS;IACpE,IAAI,UAAU,OAAO,cACnB,OAAO,aAAa,GAAG;;GAG3B,MAAM,cACH,KAAK,MAAM,QAAiC,WAAW,IAEvD,MAAM,IAAI,CACV,KAAI,SAAQ,KAAK,MAAM,CAAC,CACxB,OAAO,QAAQ;GAClB,MAAM,gBAAgB,MAAM,WAAW,SACrC,YACA,eAAe,IAChB;GACD,KAAK,MAAM,UAAU,eACnB,OAAO,aAAa,GAAG;GAEzB,GAAG,MAAM,UAAU;GACnB,KAAK,KAAK;IACV;;;;;;;;;CAUJ,MAAM,UAAyB;EAC7B,MAAM,KAAK;EACX,OAAO,KAAK,MAAM,SAAS;;;;;;;;;;CAW7B,MAAM,QAAQ,MAA+B;EAC3C,MAAM,KAAK,MAAM,QAAQ,KAAK;;;;;;;;;;CAWhC,MAAM,gBAAyC;EAC7C,OAAO,IAAI,SAAW,YAAW;GAC/B,MAAM,YAAY,SAAkB;IAClC,QAAQ,KAAU;IAClB,KAAK,IAAI,IAAI,WAAW,SAAS;;GAEnC,KAAK,IAAI,GAAG,WAAW,SAAS;IAChC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"overlay-popover-container.d.ts","sourceRoot":"","sources":["../../../../src/utils/openUtil/overlay-popover-container/overlay-popover-container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E;;;;;;;;;GASG;AACH,qBAAa,uBACX,SAAQ,gBAAgB,CAAC,eAAe,CACxC,YAAW,wBAAwB;IAE1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAMlC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"overlay-popover-container.mjs","names":[],"sources":["../../../../src/utils/openUtil/overlay-popover-container/overlay-popover-container.ts"],"sourcesContent":["import type { IOverlayPopoverContainer, IPopoverOptions } from '@/interface';\nimport { OverlayContainer } from '../overlay-container/overlay-container';\n\n/**\n * 飘窗组件呈现容器\n *\n * @author zhanghanrui\n * @date 2024-04-08 09:04:42\n * @export\n * @class OverlayPopoverContainer\n * @extends {OverlayContainer<IPopoverOptions>}\n * @implements {IOverlayPopoverContainer}\n */\nexport class OverlayPopoverContainer\n extends OverlayContainer<IPopoverOptions>\n implements IOverlayPopoverContainer\n{\n override present(): Promise<void>;\n\n override async present(target?: HTMLElement): Promise<void> {\n await this._initPromise;\n return this.modal.present(target);\n }\n}\n"],"mappings":";;;;;;;;;;;;AAaA,IAAa,0BAAb,cACU,iBAEV;CAGE,MAAe,QAAQ,QAAqC;EAC1D,MAAM,KAAK;EACX,OAAO,KAAK,MAAM,QAAQ,OAAO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../src/utils/permission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,KAAK,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;AACvC,KAAK,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC7C,cAAM,kBAAkB;IACtB,OAAO,CAAC,QAAQ,CAAgB;IAEhC,GAAG,CAAC,OAAO,EAAE,MAAM;IAInB,WAAW;CAGZ;AACD,cAAM,gBAAgB;IACpB,YAAY,qBAA4B;;IAIxC,YAAY;IACZ,OAAO,CAAC,SAAS;IAIjB,YAAY;IACZ,OAAO,CAAC,SAAS;IAGjB,GAAG,CAAC,GAAG,EAAE,OAAO;CAajB;AACD,eAAO,MAAM,UAAU,kBAAyB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"permission.mjs","names":[],"sources":["../../src/utils/permission.ts"],"sourcesContent":["import type { RoleEnum } from '@/enums';\ntype AuthFn = (key: string) => boolean;\ntype AuthKey = string | RoleEnum | undefined;\nclass InterceptorManager {\n private handlers: AuthFn[] = [];\n\n use(handler: AuthFn) {\n this.handlers.push(handler);\n }\n\n getHandlers() {\n return this.handlers;\n }\n}\nclass PermissionCenter {\n interceptors = new InterceptorManager();\n constructor() {\n this.interceptors.use(this.checkRole);\n }\n /**兜底基础权限 */\n private baseCheck(key: AuthKey) {\n console.info(key);\n return true;\n }\n /**角色权限控制 */\n private checkRole() {\n return true;\n }\n has(key: AuthKey) {\n if (!key) return true;\n const handlers = this.interceptors.getHandlers();\n for (const handler of handlers) {\n const result = handler(key);\n\n if (result === false) {\n return false;\n }\n }\n\n return this.baseCheck(key);\n }\n}\nexport const permission = new PermissionCenter();\n"],"mappings":";AAGA,IAAM,qBAAN,MAAyB;CACvB,WAA6B,EAAE;CAE/B,IAAI,SAAiB;EACnB,KAAK,SAAS,KAAK,QAAQ;;CAG7B,cAAc;EACZ,OAAO,KAAK;;;AAGhB,IAAM,mBAAN,MAAuB;CACrB,eAAe,IAAI,oBAAoB;CACvC,cAAc;EACZ,KAAK,aAAa,IAAI,KAAK,UAAU;;;CAGvC,UAAkB,KAAc;EAC9B,QAAQ,KAAK,IAAI;EACjB,OAAO;;;CAGT,YAAoB;EAClB,OAAO;;CAET,IAAI,KAAc;EAChB,IAAI,CAAC,KAAK,OAAO;EACjB,MAAM,WAAW,KAAK,aAAa,aAAa;EAChD,KAAK,MAAM,WAAW,UAGpB,IAFe,QAAQ,IAEnB,KAAW,OACb,OAAO;EAIX,OAAO,KAAK,UAAU,IAAI;;;AAG9B,IAAa,aAAa,IAAI,kBAAkB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-pkg-util.d.ts","sourceRoot":"","sources":["../../../src/utils/plugin-pkg-util/plugin-pkg-util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,MAAM,gBAAgB,GAAG,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,CAAC;AAE5D;;;;;GAKG;AACH,qBAAa,aAAa;IACxB;;;;;OAKG;IACH,SAAS,CAAC,MAAM,CAAC,KAAK,8BAAqC;IAE3D;;;;;OAKG;IACH,SAAS,CAAC,MAAM,CAAC,YAAY,0BAAiC;IAE9D;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,uBAA8B;IAEpD,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAkBtD;;;;;;;;;OASG;qBACoB,gBAAgB,CACrC,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,QAAQ,EAClB,GAAG,GAAE,MAAM,EAAO,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC;IAmB1B;;;;;;;OAOG;qBACoB,WAAW,CAChC,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,YAAY,CAAC,SAAS,CAAM,GACpC,OAAO,CAAC,UAAU,CAAC;IA6BtB;;;;;;;;OAQG;qBACoB,UAAU,CAC/B,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,EAAE,GACZ,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,CAAC;CAqBzC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-pkg-util.mjs","names":[],"sources":["../../../src/utils/plugin-pkg-util/plugin-pkg-util.ts"],"sourcesContent":["import { PLUGIN_BASE_URL } from '@/constants';\nimport type { PluginModeEnum, Platform } from '@/enums';\nimport type { PluginTenant } from '@gct-paas/api/platform';\n\n// 模块导出类型\nexport type IModuleMap = Record<string, IObject>;\n// 加载插件后返回的插件信息\nexport type LoadPluginResult = [PluginTenant[], IModuleMap];\n\n/**\n * 插件包处理工具类\n *\n * @export\n * @class PluginPgkUtil\n */\nexport class PluginPgkUtil {\n /**\n * 插件配置缓存\n *\n * @protected\n * @type {Map<string, PluginTenant[]>}\n */\n protected static cache = new Map<string, PluginTenant[]>();\n\n /**\n * 模块缓存\n *\n * @protected\n * @static\n */\n protected static cacheModules = new Map<string, IModuleMap>();\n\n /**\n * 已经加载的插件与模块的映射\n *\n * @static\n */\n static readonly module = new Map<string, IObject>();\n\n protected static joinPaths(...paths: string[]): string {\n return paths\n .filter(p => p && p.length > 0)\n .map((p, index) => {\n let normalized = p;\n // 移除开头的 ./\n if (normalized.startsWith('./')) {\n normalized = normalized.slice(2);\n }\n // 移除末尾的 /\n if (normalized.endsWith('/') && index < paths.length - 1) {\n normalized = normalized.slice(0, -1);\n }\n return normalized;\n })\n .join('/');\n }\n\n /**\n * 加载插件包配置\n *\n * @protected\n * @static\n * @param {PluginModeEnum} mode 插件模式\n * @param {Platform} platform\n * @param {string[]} [kit]\n * @returns {*} {Promise<IStyleIMportMap[]>}\n */\n protected static async loadPluginConfig(\n mode: PluginModeEnum,\n platform: Platform,\n kit: string[] = [],\n ): Promise<PluginTenant[]> {\n const tag = `${mode}-${platform}-${kit.join('_')}`;\n if (this.cache.has(tag)) {\n return this.cache.get(tag)!;\n }\n const cfg: IObject = {\n client: platform.toUpperCase(),\n };\n if (kit.length > 0) {\n cfg.tag = kit.join(',');\n }\n\n const data = await _api.platform.plugin.postGetTenantCompList(cfg);\n if (data.length > 0) {\n this.cache.set(tag, data);\n }\n return data;\n }\n\n /**\n * 批量加载平台界面 system js 插件包\n *\n * @protected\n * @static\n * @param {IStyleIMportMap[]} plugins\n * @returns {*} {Promise<IObject[]>}\n */\n protected static async loadPlugins(\n mode: PluginModeEnum,\n configs: PluginTenant['plugins'] = [],\n ): Promise<IModuleMap> {\n const moduleMap: IModuleMap = {};\n if (configs.length > 0) {\n const all: IObject[] = [];\n configs.forEach(plugin => {\n // 插件加载基础路径\n const baseUrl = this.joinPaths(PLUGIN_BASE_URL, plugin.url!, 'dist');\n const load = async () => {\n try {\n const module = await import(\n /* @vite-ignore */ this.joinPaths(\n baseUrl,\n mode,\n `loader.esm.min.js?version=${plugin.version}`,\n )\n );\n moduleMap[plugin.key!] = module;\n this.module.set(plugin.key!, module);\n } catch (error) {\n console.error(error);\n }\n };\n all.push(load());\n });\n await Promise.all(all);\n }\n return moduleMap;\n }\n\n /**\n * 加载插件包\n *\n * @protected\n * @static\n * @param {PluginModeEnum} mode\n * @param {Platform} platform\n * @returns {*}\n */\n protected static async loadPlugin(\n mode: PluginModeEnum,\n platform: Platform,\n kit: string[],\n ): Promise<[PluginTenant[], IModuleMap]> {\n kit = ['common', ...kit];\n const tag = `${mode}-${platform}-${kit.join('_')}`;\n try {\n const configs = await this.loadPluginConfig(mode, platform, kit);\n if (!this.cacheModules.has(tag)) {\n const plugins: PluginTenant['plugins'] = [];\n configs.forEach(cfg => {\n if (cfg.plugins) {\n plugins.push(...cfg.plugins);\n }\n });\n const moduleMap = await this.loadPlugins(mode, plugins);\n this.cacheModules.set(tag, moduleMap);\n }\n return [configs, this.cacheModules.get(tag)!];\n } catch (error) {\n console.error(error);\n }\n return [[], {}];\n }\n}\n"],"mappings":";;;;;;;;AAeA,IAAa,gBAAb,MAA2B;;;;;;;CAOzB,OAAiB,wBAAQ,IAAI,KAA6B;;;;;;;CAQ1D,OAAiB,+BAAe,IAAI,KAAyB;;;;;;CAO7D,OAAgB,yBAAS,IAAI,KAAsB;CAEnD,OAAiB,UAAU,GAAG,OAAyB;EACrD,OAAO,MACJ,QAAO,MAAK,KAAK,EAAE,SAAS,EAAE,CAC9B,KAAK,GAAG,UAAU;GACjB,IAAI,aAAa;GAEjB,IAAI,WAAW,WAAW,KAAK,EAC7B,aAAa,WAAW,MAAM,EAAE;GAGlC,IAAI,WAAW,SAAS,IAAI,IAAI,QAAQ,MAAM,SAAS,GACrD,aAAa,WAAW,MAAM,GAAG,GAAG;GAEtC,OAAO;IACP,CACD,KAAK,IAAI;;;;;;;;;;;;CAad,aAAuB,iBACrB,MACA,UACA,MAAgB,EAAE,EACO;EACzB,MAAM,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,KAAK,IAAI;EAChD,IAAI,KAAK,MAAM,IAAI,IAAI,EACrB,OAAO,KAAK,MAAM,IAAI,IAAI;EAE5B,MAAM,MAAe,EACnB,QAAQ,SAAS,aAAa,EAC/B;EACD,IAAI,IAAI,SAAS,GACf,IAAI,MAAM,IAAI,KAAK,IAAI;EAGzB,MAAM,OAAO,MAAM,KAAK,SAAS,OAAO,sBAAsB,IAAI;EAClE,IAAI,KAAK,SAAS,GAChB,KAAK,MAAM,IAAI,KAAK,KAAK;EAE3B,OAAO;;;;;;;;;;CAWT,aAAuB,YACrB,MACA,UAAmC,EAAE,EAChB;EACrB,MAAM,YAAwB,EAAE;EAChC,IAAI,QAAQ,SAAS,GAAG;GACtB,MAAM,MAAiB,EAAE;GACzB,QAAQ,SAAQ,WAAU;IAExB,MAAM,UAAU,KAAK,UAAU,iBAAiB,OAAO,KAAM,OAAO;IACpE,MAAM,OAAO,YAAY;KACvB,IAAI;MACF,MAAM,SAAS,MAAM;;OACA,KAAK,UACtB,SACA,MACA,6BAA6B,OAAO,UACrC;;MAEH,UAAU,OAAO,OAAQ;MACzB,KAAK,OAAO,IAAI,OAAO,KAAM,OAAO;cAC7B,OAAO;MACd,QAAQ,MAAM,MAAM;;;IAGxB,IAAI,KAAK,MAAM,CAAC;KAChB;GACF,MAAM,QAAQ,IAAI,IAAI;;EAExB,OAAO;;;;;;;;;;;CAYT,aAAuB,WACrB,MACA,UACA,KACuC;EACvC,MAAM,CAAC,UAAU,GAAG,IAAI;EACxB,MAAM,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,KAAK,IAAI;EAChD,IAAI;GACF,MAAM,UAAU,MAAM,KAAK,iBAAiB,MAAM,UAAU,IAAI;GAChE,IAAI,CAAC,KAAK,aAAa,IAAI,IAAI,EAAE;IAC/B,MAAM,UAAmC,EAAE;IAC3C,QAAQ,SAAQ,QAAO;KACrB,IAAI,IAAI,SACN,QAAQ,KAAK,GAAG,IAAI,QAAQ;MAE9B;IACF,MAAM,YAAY,MAAM,KAAK,YAAY,MAAM,QAAQ;IACvD,KAAK,aAAa,IAAI,KAAK,UAAU;;GAEvC,OAAO,CAAC,SAAS,KAAK,aAAa,IAAI,IAAI,CAAE;WACtC,OAAO;GACd,QAAQ,MAAM,MAAM;;EAEtB,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-static-resource.d.ts","sourceRoot":"","sources":["../../../src/utils/plugin-static-resource/plugin-static-resource.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,qBAAa,oBAAoB;IAC/B,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe;IAOnD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAG7B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-static-resource.mjs","names":[],"sources":["../../../src/utils/plugin-static-resource/plugin-static-resource.ts"],"sourcesContent":["/**\n * 插件静态资源工具类\n *\n * @description 此文件只能在插件中使用,并且初始化必须是在插件的入口文件中进行,且传入的 mateUrl 必须是插件入口文件的 URL。\n * @export\n * @class PluginStaticResource\n */\nexport class PluginStaticResource {\n protected baseUrl: URL;\n\n constructor(mateUrl: string, isDev: boolean = false) {\n const url = new URL(mateUrl);\n // URL 构造函数的第二参数天然支持相对路径解析\n // isDev 时 import.meta.url 指向 src/index.ts,需上退一级到项目根\n this.baseUrl = new URL(isDev ? '../' : './', url);\n }\n\n dir(pathStr: string): string {\n return new URL(pathStr, this.baseUrl).href;\n }\n}\n"],"mappings":";;;;;;;;AAOA,IAAa,uBAAb,MAAkC;CAChC;CAEA,YAAY,SAAiB,QAAiB,OAAO;EACnD,MAAM,MAAM,IAAI,IAAI,QAAQ;EAG5B,KAAK,UAAU,IAAI,IAAI,QAAQ,QAAQ,MAAM,IAAI;;CAGnD,IAAI,SAAyB;EAC3B,OAAO,IAAI,IAAI,SAAS,KAAK,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"script-loader.d.ts","sourceRoot":"","sources":["../../../src/utils/script-loader/script-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,kBAAkB;AAClB,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW;IACX,WAAW,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC;IAC9C,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,cAAM,YAAY;IAChB,4BAA4B;IAC5B,OAAO,CAAC,UAAU,CAAqB;IAEvC,uCAAuC;IACvC,OAAO,CAAC,WAAW,CAAoC;IAEvD;;;;;;;;OAQG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA8E1D;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAKtC;;;;;;OAMG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzE;AAED,sBAAsB;AACtB,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"script-loader.mjs","names":[],"sources":["../../../src/utils/script-loader/script-loader.ts"],"sourcesContent":["/**\n * Script 动态加载工具类\n *\n * 从 CDN 动态加载 JS 脚本文件,具备以下特性:\n * - 已成功加载的路径永久缓存,避免重复插入 script 标签\n * - 同一时刻对同一路径的多次调用共享同一个 Promise(请求去重)\n * - 加载失败不写入缓存,允许下次重试\n * - 加载前检查 DOM 中是否已存在相同 src 的 script 标签\n * - 支持配置 async、defer、crossOrigin、type 等脚本属性\n *\n * @author chitanda\n * @date 2026-04-17\n */\n\n/** Script 加载选项 */\nexport interface IScriptOptions {\n /** 是否异步加载,默认 true */\n async?: boolean;\n /** 是否延迟加载 */\n defer?: boolean;\n /** 跨域属性 */\n crossOrigin?: 'anonymous' | 'use-credentials';\n /** 脚本 MIME 类型,默认 'text/javascript' */\n type?: string;\n}\n\n/**\n * Script 动态加载工具类\n *\n * @class ScriptLoader\n */\nclass ScriptLoader {\n /** 已成功加载的脚本 URL 集合(永久缓存) */\n private _loadedSet = new Set<string>();\n\n /** 正在加载中的脚本 URL 对应的 Promise(用于请求去重) */\n private _pendingMap = new Map<string, Promise<void>>();\n\n /**\n * 动态加载单个 JS 脚本文件\n *\n * 同一 URL 只会加载一次,首次调用时的 options 生效。\n *\n * @param {string} url 脚本文件的完整 URL\n * @param {IScriptOptions} [options] 脚本加载选项\n * @returns {Promise<void>} 加载完成后 resolve;加载失败则 reject\n */\n load(url: string, options?: IScriptOptions): Promise<void> {\n // 已成功加载过,直接返回\n if (this._loadedSet.has(url)) {\n return Promise.resolve();\n }\n\n // 正在加载中,返回同一个 Promise(去重)\n if (this._pendingMap.has(url)) {\n return this._pendingMap.get(url)!;\n }\n\n // DOM 中已存在相同 src 的 script 标签,记录并返回\n if (typeof document !== 'undefined') {\n const escaped = CSS.escape ? CSS.escape(url) : url;\n const existing = document.querySelector<HTMLScriptElement>(\n `script[src=\"${escaped}\"]`,\n );\n if (existing) {\n this._loadedSet.add(url);\n return Promise.resolve();\n }\n }\n\n const promise = new Promise<void>((resolve, reject) => {\n if (typeof document === 'undefined') {\n reject(\n new Error(`[ScriptLoader] 当前环境不支持 DOM,无法加载脚本: ${url}`),\n );\n return;\n }\n\n const script = document.createElement('script');\n script.src = url;\n script.type = options?.type ?? 'text/javascript';\n script.async = options?.async ?? true;\n\n if (options?.defer !== undefined) {\n script.defer = options.defer;\n }\n\n if (options?.crossOrigin !== undefined) {\n script.crossOrigin = options.crossOrigin;\n }\n\n /** 加载成功回调 */\n const onLoad = (): void => {\n cleanup();\n this._loadedSet.add(url);\n this._pendingMap.delete(url);\n resolve();\n };\n\n /** 加载失败回调 */\n const onError = (): void => {\n cleanup();\n this._pendingMap.delete(url);\n // 失败不加入 _loadedSet,允许重试\n const err = new Error(`[ScriptLoader] 脚本文件加载失败: ${url}`);\n console.error(err.message);\n reject(err);\n };\n\n /** 移除事件监听,防止内存泄漏 */\n const cleanup = (): void => {\n script.removeEventListener('load', onLoad);\n script.removeEventListener('error', onError);\n };\n\n script.addEventListener('load', onLoad);\n script.addEventListener('error', onError);\n\n document.head.appendChild(script);\n });\n\n this._pendingMap.set(url, promise);\n return promise;\n }\n\n /**\n * 加载 ExcelJS 库\n *\n * @return {*} {Promise<IObject>}\n */\n async loadExcelsJs(): Promise<IObject> {\n await this.load('/extras/exceljs/4.4.0/exceljs.min.js');\n return (window as IObject).ExcelJS;\n }\n\n /**\n * 并发加载多个 JS 脚本文件\n *\n * @param {string[]} urls 脚本文件 URL 列表\n * @param {IScriptOptions} [options] 脚本加载选项,对所有 URL 生效\n * @returns {Promise<void>} 所有文件均加载完成后 resolve;任一失败则 reject\n */\n async loadBatch(urls: string[], options?: IScriptOptions): Promise<void> {\n await Promise.all(urls.map(url => this.load(url, options)));\n }\n}\n\n/** Script 动态加载工具单例 */\nexport const scriptLoader = new ScriptLoader();\n"],"mappings":";;;;;;AA+BA,IAAM,eAAN,MAAmB;;CAEjB,6BAAqB,IAAI,KAAa;;CAGtC,8BAAsB,IAAI,KAA4B;;;;;;;;;;CAWtD,KAAK,KAAa,SAAyC;EAEzD,IAAI,KAAK,WAAW,IAAI,IAAI,EAC1B,OAAO,QAAQ,SAAS;EAI1B,IAAI,KAAK,YAAY,IAAI,IAAI,EAC3B,OAAO,KAAK,YAAY,IAAI,IAAI;EAIlC,IAAI,OAAO,aAAa,aAAa;GACnC,MAAM,UAAU,IAAI,SAAS,IAAI,OAAO,IAAI,GAAG;GAI/C,IAHiB,SAAS,cACxB,eAAe,QAAQ,IAErB,EAAU;IACZ,KAAK,WAAW,IAAI,IAAI;IACxB,OAAO,QAAQ,SAAS;;;EAI5B,MAAM,UAAU,IAAI,SAAe,SAAS,WAAW;GACrD,IAAI,OAAO,aAAa,aAAa;IACnC,uBACE,IAAI,MAAM,sCAAsC,MAAM,CACvD;IACD;;GAGF,MAAM,SAAS,SAAS,cAAc,SAAS;GAC/C,OAAO,MAAM;GACb,OAAO,OAAO,SAAS,QAAQ;GAC/B,OAAO,QAAQ,SAAS,SAAS;GAEjC,IAAI,SAAS,UAAU,KAAA,GACrB,OAAO,QAAQ,QAAQ;GAGzB,IAAI,SAAS,gBAAgB,KAAA,GAC3B,OAAO,cAAc,QAAQ;;GAI/B,MAAM,eAAqB;IACzB,SAAS;IACT,KAAK,WAAW,IAAI,IAAI;IACxB,KAAK,YAAY,OAAO,IAAI;IAC5B,SAAS;;;GAIX,MAAM,gBAAsB;IAC1B,SAAS;IACT,KAAK,YAAY,OAAO,IAAI;IAE5B,MAAM,sBAAM,IAAI,MAAM,4BAA4B,MAAM;IACxD,QAAQ,MAAM,IAAI,QAAQ;IAC1B,OAAO,IAAI;;;GAIb,MAAM,gBAAsB;IAC1B,OAAO,oBAAoB,QAAQ,OAAO;IAC1C,OAAO,oBAAoB,SAAS,QAAQ;;GAG9C,OAAO,iBAAiB,QAAQ,OAAO;GACvC,OAAO,iBAAiB,SAAS,QAAQ;GAEzC,SAAS,KAAK,YAAY,OAAO;IACjC;EAEF,KAAK,YAAY,IAAI,KAAK,QAAQ;EAClC,OAAO;;;;;;;CAQT,MAAM,eAAiC;EACrC,MAAM,KAAK,KAAK,uCAAuC;EACvD,OAAQ,OAAmB;;;;;;;;;CAU7B,MAAM,UAAU,MAAgB,SAAyC;EACvE,MAAM,QAAQ,IAAI,KAAK,KAAI,QAAO,KAAK,KAAK,KAAK,QAAQ,CAAC,CAAC;;;;AAK/D,IAAa,eAAe,IAAI,cAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-user-utils.d.ts","sourceRoot":"","sources":["../../src/utils/select-user-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,WAAW;AACX,oBAAY,oBAAoB;IAC9B,cAAc;IACd,qBAAqB,0BAA0B;IAC/C,eAAe;IACf,4BAA4B,iCAAiC;IAC7D,aAAa;IACb,eAAe,oBAAoB;IACnC,iBAAiB;IACjB,sBAAsB,2BAA2B;IACjD,cAAc;IACd,kBAAkB,uBAAuB;IACzC,aAAa;IACb,aAAa,kBAAkB;IAC/B,gBAAgB;IAChB,wBAAwB,6BAA6B;CACtD;AAED,eAAO,MAAM,cAAc,wBAAsC,CAAC;AAElE,eAAO,MAAM,oBAAoB,UAQA,CAAC;AAGlC,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;IAyDvB,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,aAoBxC;AAGD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,SAAK,iBAY1D;AAGD,eAAO,MAAM,UAAU,GAAI,MAAM,OAAO,EAAE,EAAE,aAAa,MAAM,KAAG,OAAO,EAkBxE,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,MAAM,OAAO,EAAE,EACf,KAAK,MAAM,KACV,OAAO,GAAG,IAeZ,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAWxD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-user-utils.mjs","names":[],"sources":["../../src/utils/select-user-utils.ts"],"sourcesContent":["import { FIELD_TYPE } from '@/enums';\nimport { cloneDeep } from 'lodash-es';\n\n/** 动态类型 */\nexport enum DYN_FORMAT_TYPE_ENUM {\n /** 申请人直属上级 */\n DYN_SUBMITTER_MANAGER = 'DYN_SUBMITTER_MANAGER',\n /** 申请人部门负责人 */\n DYN_SUBMITTER_DEPT_PRINCIPAL = 'DYN_SUBMITTER_DEPT_PRINCIPAL',\n /** 指定人员字段 */\n DYN_MODEL_USERS = 'DYN_MODEL_USERS',\n /** 指定人员字段直属上级 */\n DYN_MODEL_USER_MANAGER = 'DYN_MODEL_USER_MANAGER',\n /** 指定部门负责人 */\n DYN_DEPT_PRINCIPAL = 'DYN_DEPT_PRINCIPAL',\n /** 指定部门字段 */\n DYN_MODEL_ORG = 'DYN_MODEL_ORG',\n /** 指定部门字段负责人 */\n DYN_MODEL_DEPT_PRINCIPAL = 'DYN_MODEL_DEPT_PRINCIPAL',\n}\n\nexport const DynFormatTypes = Object.values(DYN_FORMAT_TYPE_ENUM);\n\nexport const filterDynFormatTypes = Object.values(DYN_FORMAT_TYPE_ENUM)\n .filter(\n item =>\n ![\n DYN_FORMAT_TYPE_ENUM.DYN_SUBMITTER_MANAGER,\n DYN_FORMAT_TYPE_ENUM.DYN_SUBMITTER_DEPT_PRINCIPAL,\n ].includes(item),\n )\n .map(type => `${type}:current`);\n\n// i18n sys.bpmn.dynamicUser.xxx\nexport const dynamicData = [\n {\n id: 'currentDs',\n formatId: DYN_FORMAT_TYPE_ENUM.DYN_SUBMITTER_MANAGER,\n name: '申请人直属上级',\n desc: '可将申请人直属上级设为节点处理人',\n },\n {\n id: 'currentDeptDs',\n formatId: DYN_FORMAT_TYPE_ENUM.DYN_SUBMITTER_DEPT_PRINCIPAL,\n name: '申请人部门负责人',\n desc: '可将申请人所在部门负责人设为节点处理人',\n },\n {\n id: 'userField',\n formatId: DYN_FORMAT_TYPE_ENUM.DYN_MODEL_USERS,\n name: '指定人员字段',\n desc: '字段所选用户作为节点处理人',\n showPanel: true,\n panelType: 'area',\n panelKey: [FIELD_TYPE.USER, FIELD_TYPE.USER_MULTI],\n },\n {\n id: 'userFieldDs',\n formatId: DYN_FORMAT_TYPE_ENUM.DYN_MODEL_USER_MANAGER,\n name: '指定人员字段直属上级',\n desc: '字段所选用户的直属上级为节点处理人',\n showPanel: true,\n panelType: 'area',\n panelKey: [FIELD_TYPE.USER, FIELD_TYPE.USER_MULTI],\n },\n {\n id: 'orgDs',\n formatId: DYN_FORMAT_TYPE_ENUM.DYN_DEPT_PRINCIPAL,\n name: '指定部门负责人',\n desc: '所选部门负责人作为节点处理人',\n showPanel: true,\n panelType: 'select',\n },\n // {\n // id: 'orgField',\n // formatId: DYN_FORMAT_TYPE_ENUM.DYN_MODEL_ORG,\n // name: '指定部门字段',\n // desc: '字段所选部门的所有成员作为节点处理人',\n // showPanel: true,\n // panelType: 'area',\n // panelKey: FIELD_TYPE.ORG,\n // },\n {\n id: 'orgFieldDs',\n formatId: DYN_FORMAT_TYPE_ENUM.DYN_MODEL_DEPT_PRINCIPAL,\n name: '指定部门字段负责人',\n desc: '字段所选部门负责人作为节点处理人',\n showPanel: true,\n panelType: 'area',\n panelKey: [FIELD_TYPE.ORG, FIELD_TYPE.ORG_MULTI],\n },\n];\n\nexport function list2Tree(list: IObject[]) {\n const treeOptions = [] as IObject[];\n const arrClone: IObject[] = cloneDeep(list);\n const mapInfo = arrClone.reduce((obj: IObject, item: IObject) => {\n item.children = [];\n obj[item.id] = item;\n return obj;\n }, {});\n // 转树\n arrClone.forEach((i: IObject) => {\n const parent = mapInfo[i.parentId];\n // 如果父节点存在,push到父级的children数组中\n // 如果父级不存在,直接push到treeData数组\n if (parent) {\n parent.children.push(i);\n } else {\n treeOptions.push(i);\n }\n });\n return treeOptions;\n}\n\n// 内容高亮处理,名称被searchkey 匹配不到时,返回 null\nexport function highlightName(str: string, searchValue = '') {\n const displayName = str;\n const rDisplayName = displayName?.replace(\n new RegExp(\n searchValue?.replace(new RegExp(/(?=[$.?+[\\]*^|\\\\(){}/])/g), '\\\\'),\n 'g',\n ),\n s => `<span class=\"is-highlight\">${s}</span>`,\n );\n if (rDisplayName === displayName) return null;\n\n return rDisplayName;\n}\n\n// 过滤树\nexport const filterTree = (tree: IObject[], searchValue: string): IObject[] => {\n return tree\n .map((node: IObject) => {\n if (node.children) {\n const filteredChildren = filterTree(node.children, searchValue);\n if (filteredChildren.length > 0) {\n return { ...node, children: filteredChildren };\n }\n }\n\n const hlName = highlightName(node.name, searchValue);\n\n if (hlName) {\n return { ...node, highlightName: hlName };\n }\n return null;\n })\n .filter(node => node !== null);\n};\n\nexport const findUniqueNode = (\n tree: IObject[],\n tid: string,\n): IObject | null => {\n for (const node of tree) {\n if (node.id === tid) {\n return node;\n }\n\n // 如果当前节点有子节点,则递归查找\n if (node.children) {\n const foundNode = findUniqueNode(node.children, tid);\n if (foundNode) {\n return foundNode;\n }\n }\n }\n return null;\n};\n\nexport function showDynamicTitle(id: string, name: string) {\n if (id.includes(DYN_FORMAT_TYPE_ENUM.DYN_MODEL_USER_MANAGER)) {\n return `${name}:直属上级`;\n }\n if (id.includes(DYN_FORMAT_TYPE_ENUM.DYN_DEPT_PRINCIPAL)) {\n return `${name}:负责人`;\n }\n if (id.includes(DYN_FORMAT_TYPE_ENUM.DYN_MODEL_DEPT_PRINCIPAL)) {\n return `${name}:负责人`;\n }\n return name;\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/style/index.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GACpB,MAAM,KAAK,EACX,gBAAe,MAAM,EAAO,KAC3B,OAwOF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,MAAM,KAAK,EACX,gBAAe,MAAM,EAAO,KAC3B,OAuKF,CAAC;AACF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACxB,MAAM,KAAK,EACX,gBAAe,MAAM,EAAO,KAC3B,OAiCF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/utils/style/index.ts"],"sourcesContent":["import type { IBorder, IFont, IMargin, IPadding, IPosition } from '@/interface';\n\n/**\n * 计算配置样式\n *\n * @param data\n * @param ignoringStyle 忽略计算的样式\n * @returns\n */\nexport const calcStyle = (\n data: IData,\n ignoringStyle: string[] = [],\n): IObject => {\n const style: IObject = {};\n // padding 配置\n const padding = data.padding as IPadding;\n if (padding) {\n if (\n padding.top != null &&\n padding.top != '' &&\n !ignoringStyle.includes('paddingTop')\n )\n style['padding-top'] = padding.top;\n if (\n padding.right != null &&\n padding.right != '' &&\n !ignoringStyle.includes('paddingRight')\n )\n style['padding-right'] = padding.right;\n if (\n padding.bottom != null &&\n padding.bottom != '' &&\n !ignoringStyle.includes('paddingBottom')\n )\n style['padding-bottom'] = padding.bottom;\n if (\n padding.left != null &&\n padding.left != '' &&\n !ignoringStyle.includes('paddingLeft')\n )\n style['padding-left'] = padding.left;\n }\n // margin 配置\n const margin = data.margin as IMargin;\n if (margin) {\n if (\n margin.top != null &&\n margin.top != '' &&\n !ignoringStyle.includes('marginTop')\n )\n style['margin-top'] = margin.top;\n if (\n margin.right != null &&\n margin.right != '' &&\n !ignoringStyle.includes('marginRight')\n )\n style['margin-right'] = margin.right;\n if (\n margin.bottom != null &&\n margin.bottom != '' &&\n !ignoringStyle.includes('marginBottom')\n )\n style['margin-bottom'] = margin.bottom;\n if (\n margin.left != null &&\n margin.left != '' &&\n !ignoringStyle.includes('marginLeft')\n )\n style['margin-left'] = margin.left;\n }\n // 背景颜色\n if (\n data.background != null &&\n data.background != '' &&\n !ignoringStyle.includes('backgroundColor')\n ) {\n style['background-color'] = data.background;\n }\n // 宽度\n if (\n data.width != null &&\n data.width != '' &&\n !ignoringStyle.includes('width')\n ) {\n style.width = data.width;\n }\n // 高度\n if (\n data.height != null &&\n data.height != '' &&\n !ignoringStyle.includes('height')\n ) {\n style.height = data.height;\n style.overflowX = 'hidden';\n style.overflowY = 'auto';\n }\n // 定位\n const position = data.position as IPosition;\n if (position) {\n if (\n position.position != null &&\n position.position != '' &&\n !ignoringStyle.includes('zIndex')\n ) {\n style.position = position.position;\n style['z-index'] = 1;\n }\n if (\n position.top != null &&\n position.top != '' &&\n !ignoringStyle.includes('top')\n )\n style.top = `${position.top}px`;\n if (\n position.right != null &&\n position.right != '' &&\n !ignoringStyle.includes('right')\n )\n style.right = `${position.right}px`;\n if (\n position.bottom != null &&\n position.bottom != '' &&\n !ignoringStyle.includes('bottom')\n )\n style.bottom = `${position.bottom}px`;\n if (\n position.left != null &&\n position.left != '' &&\n !ignoringStyle.includes('left')\n )\n style.left = `${position.left}px`;\n }\n // 边\n const border = data.border as IBorder;\n if (border) {\n if (\n border.topLeftRadius != null &&\n border.topLeftRadius != '' &&\n !ignoringStyle.includes('borderTopLeftRadius')\n ) {\n style['border-top-left-radius'] = border.topLeftRadius;\n }\n if (\n border.topRightRadius != null &&\n border.topRightRadius != '' &&\n !ignoringStyle.includes('borderTopRightRadius')\n ) {\n style['border-top-right-radius'] = border.topRightRadius;\n }\n if (\n border.bottomLeftRadius != null &&\n border.bottomLeftRadius != '' &&\n !ignoringStyle.includes('borderBottomLeftRadius')\n ) {\n style['border-bottom-left-radius'] = border.bottomLeftRadius;\n }\n if (\n border.bottomRightRadius != null &&\n border.bottomRightRadius != '' &&\n !ignoringStyle.includes('borderBottomRightRadius')\n ) {\n style['border-bottom-right-radius'] = border.bottomRightRadius;\n }\n if (border.top) {\n if (\n border.top.color != null &&\n border.top.color != '' &&\n !ignoringStyle.includes('borderTopColor')\n ) {\n style['border-top-color'] = border.top.color;\n }\n if (\n border.top.width != null &&\n border.top.width != '' &&\n !ignoringStyle.includes('borderTopWidth')\n ) {\n style['border-top-width'] = border.top.width;\n }\n if (border.top.style && !ignoringStyle.includes('borderTopStyle')) {\n style['border-top-style'] = border.top.style;\n }\n }\n if (border.right) {\n if (\n border.right.color != null &&\n border.right.color != '' &&\n !ignoringStyle.includes('borderRightColor')\n ) {\n style['border-right-color'] = border.right.color;\n }\n if (\n border.right.width != null &&\n border.right.width != '' &&\n !ignoringStyle.includes('borderRightWidth')\n ) {\n style['border-right-width'] = border.right.width;\n }\n if (border.right.style && !ignoringStyle.includes('borderRightStyle')) {\n style['border-right-style'] = border.right.style;\n }\n }\n if (border.bottom) {\n if (\n border.bottom.color != null &&\n border.bottom.color != '' &&\n !ignoringStyle.includes('borderBottomColor')\n ) {\n style['border-bottom-color'] = border.bottom.color;\n }\n if (\n border.bottom.width != null &&\n border.bottom.width != '' &&\n !ignoringStyle.includes('borderBottomWidth')\n ) {\n style['border-bottom-width'] = border.bottom.width;\n }\n if (border.bottom.style && !ignoringStyle.includes('borderBottomStyle')) {\n style['border-bottom-style'] = border.bottom.style;\n }\n }\n if (border.left) {\n if (\n border.left.color != null &&\n border.left.color != '' &&\n !ignoringStyle.includes('borderLeftColor')\n ) {\n style['border-left-color'] = border.left.color;\n }\n if (\n border.left.width != null &&\n border.left.width != '' &&\n !ignoringStyle.includes('borderLeftWidth')\n ) {\n style['border-left-width'] = border.left.width;\n }\n if (border.left.style && !ignoringStyle.includes('borderLeftStyle')) {\n style['border-left-style'] = border.left.style;\n }\n }\n }\n if (data.border_radius) {\n style['border-radius'] = `${data.border_radius}px`;\n }\n return style;\n};\n\n/**\n * 计算配置样式 补充px\n *\n * @param data\n * @param ignoringStyle 忽略计算的样式\n * @returns\n */\nexport const calcStylePX = (\n data: IData,\n ignoringStyle: string[] = [],\n): IObject => {\n if (!data) {\n return {};\n }\n const style: IObject = {};\n // padding 配置\n if (\n data.paddingTop &&\n data.paddingTop != '0' &&\n !ignoringStyle.includes('paddingTop')\n )\n style['padding-top'] = `${data.paddingTop}px`;\n if (\n data.paddingRight &&\n data.paddingRight != '0' &&\n !ignoringStyle.includes('paddingRight')\n )\n style['padding-right'] = `${data.paddingRight}px`;\n if (\n data.paddingBottom &&\n data.paddingBottom != '0' &&\n !ignoringStyle.includes('paddingBottom')\n )\n style['padding-bottom'] = `${data.paddingBottom}px`;\n if (\n data.paddingLeft &&\n data.paddingLeft != '0' &&\n !ignoringStyle.includes('paddingLeft')\n )\n style['padding-left'] = `${data.paddingLeft}px`;\n // margin 配置\n if (\n data.marginTop &&\n data.marginTop != '0' &&\n !ignoringStyle.includes('marginTop')\n )\n style['margin-top'] = `${data.marginTop}px`;\n if (\n data.marginRight &&\n data.marginRight != '0' &&\n !ignoringStyle.includes('marginRight')\n )\n style['margin-right'] = `${data.marginRight}px`;\n if (\n data.marginBottom &&\n data.marginBottom != '0' &&\n !ignoringStyle.includes('marginBottom')\n )\n style['margin-bottom'] = `${data.marginBottom}px`;\n if (\n data.marginLeft &&\n data.marginLeft != '0' &&\n !ignoringStyle.includes('marginLeft')\n )\n style['margin-left'] = `${data.marginLeft}px`;\n // 背景颜色\n if (data.backgroundColor && !ignoringStyle.includes('backgroundColor')) {\n style['background-color'] = data.backgroundColor;\n }\n // 宽度\n if (\n data.width != null &&\n data.width != '' &&\n !ignoringStyle.includes('width')\n ) {\n style.width = `${data.width}px`;\n }\n // 高度\n if (\n data.height != null &&\n data.height != '' &&\n !ignoringStyle.includes('height')\n ) {\n style.height = `${data.height}px`;\n style.overflowX = 'hidden';\n style.overflowY = 'auto';\n }\n // 定位\n const position = data.position;\n if (position && !ignoringStyle.includes('zIndex')) {\n style.position = position;\n style['z-index'] = 1;\n }\n if (data.top && !ignoringStyle.includes('top')) style.top = `${data.top}px`;\n if (data.right && !ignoringStyle.includes('right'))\n style.right = `${data.right}px`;\n if (data.bottom && !ignoringStyle.includes('bottom'))\n style.bottom = `${data.bottom}px`;\n if (data.left && !ignoringStyle.includes('left'))\n style.left = `${data.left}px`;\n // 边\n if (\n data.borderBottomLeftRadius &&\n !ignoringStyle.includes('borderBottomLeftRadius')\n ) {\n style['border-top-left-radius'] = `${data.borderBottomLeftRadius}px`;\n }\n if (\n data.borderTopRightRadius &&\n !ignoringStyle.includes('borderTopRightRadius')\n ) {\n style['border-top-right-radius'] = `${data.borderTopRightRadius}px`;\n }\n if (\n data.borderBottomLeftRadius &&\n !ignoringStyle.includes('borderBottomLeftRadius')\n ) {\n style['border-bottom-left-radius'] = `${data.borderBottomLeftRadius}px`;\n }\n if (\n data.borderBottomRightRadius &&\n !ignoringStyle.includes('borderBottomRightRadius')\n ) {\n style['border-bottom-right-radius'] = `${data.borderBottomRightRadius}px`;\n }\n // 边框样式\n {\n const top = data.borderTop;\n if (top) {\n if (top.borderColor && !ignoringStyle.includes('borderTopColor')) {\n style['border-top-color'] = top.borderColor;\n }\n if (top.borderWidth && !ignoringStyle.includes('borderTopWidth')) {\n style['border-top-width'] = `${top.borderWidth}px`;\n }\n if (top.borderStyle && !ignoringStyle.includes('borderTopStyle')) {\n style['border-top-style'] = top.borderStyle;\n }\n }\n const right = data.borderRight;\n if (right) {\n if (right.borderColor && !ignoringStyle.includes('borderRightColor')) {\n style['border-right-color'] = right.borderColor;\n }\n if (right.borderWidth && !ignoringStyle.includes('borderRightWidth')) {\n style['border-right-width'] = `${right.borderWidth}px`;\n }\n if (right.borderStyle && !ignoringStyle.includes('borderRightStyle')) {\n style['border-right-style'] = right.borderStyle;\n }\n }\n const bottom = data.borderBottom;\n if (bottom) {\n if (bottom.borderColor && !ignoringStyle.includes('borderBottomColor')) {\n style['border-bottom-color'] = bottom.borderColor;\n }\n if (bottom.borderWidth && !ignoringStyle.includes('borderBottomWidth')) {\n style['border-bottom-width'] = `${bottom.borderWidth}px`;\n }\n if (bottom.borderStyle && !ignoringStyle.includes('borderBottomStyle')) {\n style['border-bottom-style'] = bottom.borderStyle;\n }\n }\n const left = data.borderLeft;\n if (left) {\n if (left.borderColor && !ignoringStyle.includes('borderLeftColor')) {\n style['border-left-color'] = left.borderColor;\n }\n if (left.borderWidth && !ignoringStyle.includes('borderLeftWidth')) {\n style['border-left-width'] = `${left.borderWidth}px`;\n }\n if (left.borderStyle && !ignoringStyle.includes('borderLeftStyle')) {\n style['border-left-style'] = left.borderStyle;\n }\n }\n }\n return style;\n};\n/**\n * 计算字体样式\n *\n * @param data\n * @param ignoringStyle 忽略的样式\n * @returns\n */\nexport const calcFontStyle = (\n data: IData,\n ignoringStyle: string[] = [],\n): IObject => {\n const style: IObject = {};\n // 字体\n const labelFont = data.labelFont as IFont;\n if (labelFont) {\n if (\n labelFont.color != null &&\n labelFont.color != '' &&\n !ignoringStyle.includes('color')\n )\n style.color = labelFont.color;\n if (\n labelFont.fontSize != null &&\n labelFont.fontSize != '' &&\n !ignoringStyle.includes('fontSize')\n ) {\n style['font-size'] = labelFont.fontSize;\n }\n if (labelFont.align && !ignoringStyle.includes('textAlign')) {\n style['text-align'] = labelFont.align;\n style['text-align-last'] = labelFont.align;\n }\n if (labelFont.bold === true && !ignoringStyle.includes('fontWeight')) {\n style['font-weight'] = 'bold';\n }\n if (labelFont.italic === true && !ignoringStyle.includes('fontStyle')) {\n style['font-style'] = 'italic';\n }\n if (labelFont.textDecoration && !ignoringStyle.includes('textDecoration')) {\n style['text-decoration'] = labelFont.textDecoration;\n }\n }\n return style;\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text-measure.d.ts","sourceRoot":"","sources":["../../../src/utils/text-measure/text-measure.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,UAAU,kBAAkB;IAC1B,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,cAAM,eAAe;IACnB,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,GAAG,CAAyC;IAEpD;;OAEG;IACH,OAAO,CAAC,UAAU;IAWlB;;OAEG;IACH,OAAO,CAAC,OAAO;IAcf;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM;IASnE;;;;;;OAMG;IACH,YAAY,CACV,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,EAAE;IAYtB;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM;IAKtE;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM;IAKtE;;;;;;;OAOG;IACH,aAAa,CACX,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,GAAE,kBAAuB,EAChC,OAAO,GAAE,MAAU,GAClB,MAAM;IAUT;;;;;;;;;OASG;IACH,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,kBAAuB,EAChC,QAAQ,GAAE,MAAc,EACxB,QAAQ,GAAE,MAAU,GACnB,MAAM;IAuCT;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB;AAKD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,kBAAkB,GAC3B,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,kBAAkB,GAC3B,iBAAiB,EAAE,CAErB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,kBAAkB,GAC3B,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,kBAAkB,GAC3B,MAAM,CAER;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAER;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,kBAAkB,EAC5B,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAQR;AAED,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text-measure.mjs","names":[],"sources":["../../../src/utils/text-measure/text-measure.ts"],"sourcesContent":["/**\n * 文本测量工具类\n * 使用 Canvas 测量文本宽度,支持批量测量\n */\n\ninterface TextMeasureOptions {\n /** 字体大小,默认 14px */\n fontSize?: string | number;\n /** 字体族,默认 'Arial, sans-serif' */\n fontFamily?: string;\n /** 字体粗细,默认 'normal' */\n fontWeight?: string | number;\n /** 字体样式,默认 'normal' */\n fontStyle?: string;\n}\n\ninterface TextMeasureResult {\n /** 文本内容 */\n text: string;\n /** 计算得到的宽度 */\n width: number;\n}\n\nclass TextMeasureUtil {\n private canvas: HTMLCanvasElement | null = null;\n private ctx: CanvasRenderingContext2D | null = null;\n\n /**\n * 获取 Canvas 上下文,懒加载创建\n */\n private getContext(): CanvasRenderingContext2D {\n if (!this.canvas) {\n this.canvas = document.createElement('canvas');\n this.ctx = this.canvas.getContext('2d');\n if (!this.ctx) {\n throw new Error('无法创建 Canvas 2D 上下文');\n }\n }\n return this.ctx!;\n }\n\n /**\n * 设置字体样式\n */\n private setFont(options: TextMeasureOptions = {}): void {\n const {\n fontSize = 14,\n fontFamily = 'Arial, sans-serif',\n fontWeight = 'normal',\n fontStyle = 'normal',\n } = options;\n\n const ctx = this.getContext();\n const fontSizeStr =\n typeof fontSize === 'number' ? `${fontSize}px` : fontSize;\n ctx.font = `${fontStyle} ${fontWeight} ${fontSizeStr} ${fontFamily}`;\n }\n\n /**\n * 测量单个文本的宽度\n *\n * @param text 要测量的文本\n * @param options 字体选项\n * @returns 文本宽度(像素)\n */\n measureText(text: string, options: TextMeasureOptions = {}): number {\n if (!text) return 0;\n\n this.setFont(options);\n const ctx = this.getContext();\n const metrics = ctx.measureText(text);\n return Math.ceil(metrics.width);\n }\n\n /**\n * 批量测量多段文本的宽度\n *\n * @param texts 要测量的文本数组\n * @param options 字体选项\n * @returns 包含每段文本和对应宽度的结果数组\n */\n measureTexts(\n texts: string[],\n options: TextMeasureOptions = {},\n ): TextMeasureResult[] {\n if (!texts || texts.length === 0) return [];\n\n this.setFont(options);\n const ctx = this.getContext();\n\n return texts.map(text => ({\n text,\n width: text ? Math.ceil(ctx.measureText(text).width) : 0,\n }));\n }\n\n /**\n * 获取文本的最大宽度\n *\n * @param texts 要测量的文本数组\n * @param options 字体选项\n * @returns 最大宽度(像素)\n */\n getMaxWidth(texts: string[], options: TextMeasureOptions = {}): number {\n const results = this.measureTexts(texts, options);\n return Math.max(...results.map(result => result.width), 0);\n }\n\n /**\n * 获取文本的最小宽度\n *\n * @param texts 要测量的文本数组\n * @param options 字体选项\n * @returns 最小宽度(像素)\n */\n getMinWidth(texts: string[], options: TextMeasureOptions = {}): number {\n const results = this.measureTexts(texts, options);\n return Math.min(...results.map(result => result.width), 0);\n }\n\n /**\n * 计算文本的总宽度(用于水平排列的文本)\n *\n * @param texts 要测量的文本数组\n * @param options 字体选项\n * @param spacing 文本间的间距,默认 0\n * @returns 总宽度(像素)\n */\n getTotalWidth(\n texts: string[],\n options: TextMeasureOptions = {},\n spacing: number = 0,\n ): number {\n const results = this.measureTexts(texts, options);\n const totalTextWidth = results.reduce(\n (sum, result) => sum + result.width,\n 0,\n );\n const totalSpacing = Math.max(0, texts.length - 1) * spacing;\n return totalTextWidth + totalSpacing;\n }\n\n /**\n * 根据最大宽度截断文本,添加省略号\n *\n * @param text 原始文本\n * @param maxWidth 最大宽度\n * @param options 字体选项\n * @param ellipsis 省略号,默认 '...'\n * @param minChars 最少显示字符数,默认 0\n * @returns 截断后的文本\n */\n truncateText(\n text: string,\n maxWidth: number,\n options: TextMeasureOptions = {},\n ellipsis: string = '...',\n minChars: number = 0,\n ): string {\n if (!text) return '';\n\n const fullWidth = this.measureText(text, options);\n if (fullWidth <= maxWidth) return text;\n\n const ellipsisWidth = this.measureText(ellipsis, options);\n const availableWidth = maxWidth - ellipsisWidth;\n\n if (availableWidth <= 0) {\n // 如果设置了最少显示字符数,即使宽度不足也要显示\n if (minChars > 0) {\n const minText = text.substring(0, minChars);\n return minText + ellipsis;\n }\n return ellipsis;\n }\n\n // 二分法查找最长可显示的文本长度\n let left = minChars; // 从最少显示字符数开始\n let right = text.length;\n let result = minChars > 0 ? text.substring(0, minChars) : '';\n\n while (left <= right) {\n const mid = Math.floor((left + right) / 2);\n const substring = text.substring(0, mid);\n const substringWidth = this.measureText(substring, options);\n\n if (substringWidth <= availableWidth) {\n result = substring;\n left = mid + 1;\n } else {\n right = mid - 1;\n }\n }\n\n return result + ellipsis;\n }\n\n /**\n * 销毁资源\n */\n destroy(): void {\n this.canvas = null;\n this.ctx = null;\n }\n}\n\n// 创建单例实例\nconst textMeasureUtil = new TextMeasureUtil();\n\n/**\n * 测量单个文本的宽度\n *\n * @param text 要测量的文本\n * @param options 字体选项\n * @returns 文本宽度(像素)\n */\nexport function measureText(\n text: string,\n options?: TextMeasureOptions,\n): number {\n return textMeasureUtil.measureText(text, options);\n}\n\n/**\n * 批量测量多段文本的宽度\n *\n * @param texts 要测量的文本数组\n * @param options 字体选项\n * @returns 包含每段文本和对应宽度的结果数组\n */\nexport function measureTexts(\n texts: string[],\n options?: TextMeasureOptions,\n): TextMeasureResult[] {\n return textMeasureUtil.measureTexts(texts, options);\n}\n\n/**\n * 获取文本的最大宽度\n *\n * @param texts 要测量的文本数组\n * @param options 字体选项\n * @returns 最大宽度(像素)\n */\nexport function getMaxTextWidth(\n texts: string[],\n options?: TextMeasureOptions,\n): number {\n return textMeasureUtil.getMaxWidth(texts, options);\n}\n\n/**\n * 获取文本的最小宽度\n *\n * @param texts 要测量的文本数组\n * @param options 字体选项\n * @returns 最小宽度(像素)\n */\nexport function getMinTextWidth(\n texts: string[],\n options?: TextMeasureOptions,\n): number {\n return textMeasureUtil.getMinWidth(texts, options);\n}\n\n/**\n * 计算文本的总宽度(用于水平排列的文本)\n *\n * @param texts 要测量的文本数组\n * @param options 字体选项\n * @param spacing 文本间的间距,默认 0\n * @returns 总宽度(像素)\n */\nexport function getTotalTextWidth(\n texts: string[],\n options?: TextMeasureOptions,\n spacing?: number,\n): number {\n return textMeasureUtil.getTotalWidth(texts, options, spacing);\n}\n\n/**\n * 根据最大宽度截断文本,添加省略号\n *\n * @param text 原始文本\n * @param maxWidth 最大宽度\n * @param options 字体选项\n * @param ellipsis 省略号,默认 '...'\n * @param minChars 最少显示字符数,默认 0\n * @returns 截断后的文本\n */\nexport function truncateText(\n text: string,\n maxWidth: number,\n options?: TextMeasureOptions,\n ellipsis?: string,\n minChars?: number,\n): string {\n return textMeasureUtil.truncateText(\n text,\n maxWidth,\n options,\n ellipsis,\n minChars,\n );\n}\n\nexport { TextMeasureUtil, type TextMeasureOptions, type TextMeasureResult };\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/utils/tools/tools.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAsBpD,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAElB,CAAC;AAC3B;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAExC;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAM7C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAEzC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAanB,CAAC;AAEL;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAe7B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAM7E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,MAAM,CAuER;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGrD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.mjs","names":[],"sources":["../../../src/utils/tools/tools.ts"],"sourcesContent":["import { getCookie, setCookie, clearCookie } from 'qx-util';\nimport { cloneDeep, isEqual, mergeWith, unionWith } from 'lodash-es';\nimport { CoreConst } from '../../constants';\nimport qs from 'qs';\nimport { customRef, readonly, type Ref } from 'vue';\n\n/**\n * 租户 cookie 双向绑定响应式引用:get 直接读 cookie,set 直接写 cookie\n *\n * cookie 不设置 domain 属性,绑定当前完整 hostname(host-only),按域名隔离\n */\nconst _tenantRef = customRef<string>((track, trigger) => ({\n get(): string {\n track();\n return getCookie(CoreConst.TENANT) || '';\n },\n set(value: string): void {\n if (value) {\n setCookie(CoreConst.TENANT, value, 7, false);\n } else {\n clearCookie(CoreConst.TENANT, false);\n }\n trigger();\n },\n}));\n\nexport const tenantRef: Readonly<Ref<string>> = readonly(\n _tenantRef,\n) as Readonly<Ref<string>>;\n/**\n * 获取认证令牌\n *\n * @export\n * @returns {*} {(string | null)}\n */\nexport function getToken(): string | null {\n return getCookie(CoreConst.TOKEN);\n}\n\n/**\n * 设置认证令牌(目前只有 session 级别生效)\n *\n * cookie 不设置 domain 属性,绑定当前完整 hostname(host-only),按域名隔离\n *\n * @export\n * @param {string} token\n */\nexport function setToken(token?: string): void {\n if (token) {\n setCookie(CoreConst.TOKEN, token, 7, false);\n } else {\n clearCookie(CoreConst.TOKEN, false);\n }\n}\n\n/**\n * 从 cookie 获取租户标识\n *\n * @export\n * @returns {*} {(string | null)}\n */\nexport function getTenant(): string | null {\n return _tenantRef.value || null;\n}\n\n/**\n * 设置租户标识至 cookie\n *\n * @export\n * @param {string} [tenant]\n */\nexport function setTenant(tenant?: string): void {\n _tenantRef.value = tenant || '';\n}\n\n/**\n * 是否为移动端设备\n */\nexport const isMobile: boolean = (() => {\n // 用户代理检测\n const ua = navigator.userAgent;\n const mobileRegex =\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/;\n\n // 视口宽度检测\n const isSmallScreen = window.innerWidth <= 768;\n\n // 触摸支持检测\n const isTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n\n return mobileRegex.test(ua) || (isSmallScreen && isTouch);\n})();\n\n/**\n * 递归合并两个对象\n *\n * @template T\n * @template U\n * @param {T} target 目标对象,合并后结果存放于此\n * @param {U} source 要合并的源对象\n * @returns {(T & U)} 合并后的对象\n */\nexport function deepMerge<\n T extends object | null | undefined,\n U extends object | null | undefined,\n>(target: T, source: U): T & U {\n return mergeWith(cloneDeep(target), source, (objValue, srcValue) => {\n if (typeof objValue === 'object' && typeof srcValue === 'object') {\n return mergeWith(\n cloneDeep(objValue),\n srcValue,\n (prevValue, nextValue) => {\n // 如果是数组,合并数组(去重)\n return Array.isArray(prevValue)\n ? unionWith(prevValue, nextValue, isEqual)\n : undefined;\n },\n );\n }\n });\n}\n\n/**\n * 对象 → 矩阵参数(stringify)\n * @param {*} params\n * @returns\n */\nexport function stringifyMatrixParams(params: Record<string, unknown>): string {\n const str = qs.stringify(params, {\n encode: true,\n delimiter: ';',\n });\n return str ? `;${str}` : '';\n}\n\n/**\n * 矩阵参数 → 对象(parse)\n * @param {*} path\n * @returns\n */\nexport function parseMatrixParams(path: string): IObject {\n const idx = path.indexOf(';');\n if (idx === -1) return {};\n return qs.parse(path, {\n delimiter: ';',\n });\n}\n\n/**\n * 创建白色背景的图片,并添加文本\n *\n * @export\n * @param {string} name - 文本\n * @param {number} width - 宽度\n * @param {number} height - 高度\n * @return {string} 图片 base64 编码(png 格式)\n */\nexport function createWhiteImageWithText(\n name: string,\n width: number,\n height: number,\n): string {\n // 创建 canvas 元素\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n\n const ctx = canvas.getContext('2d')!;\n // 填充白色背景\n ctx.fillStyle = '#ffffff';\n ctx.fillRect(0, 0, width, height);\n\n // 初始字体大小,根据图片高度的三分之一\n let fontSize = Math.floor(height / 3);\n ctx.font = `${fontSize}px Arial`;\n\n // 文本换行函数,按字符逐个添加测试是否超过最大宽度(此处取 canvas 宽度的 90%)\n function wrapText(\n text: string,\n maxWidth: number,\n context: CanvasRenderingContext2D,\n ): string[] {\n const characters = text.split('');\n const lines: string[] = [];\n let currentLine = '';\n for (const char of characters) {\n const testLine = currentLine + char;\n const metrics = context.measureText(testLine);\n if (metrics.width > maxWidth && currentLine !== '') {\n lines.push(currentLine);\n currentLine = char;\n } else {\n currentLine = testLine;\n }\n }\n if (currentLine) {\n lines.push(currentLine);\n }\n return lines;\n }\n\n // 设置最大文本宽度(90% 的 canvas 宽度)\n const maxTextWidth = width * 0.9;\n let lines = wrapText(name, maxTextWidth, ctx);\n\n // 调整行高比例为 1.2 倍字体大小\n let lineHeight = fontSize * 1.2;\n\n // 如果换行后总文本高度超出 canvas 高度,则缩小字体,并重新计算换行与行高\n while (lines.length * lineHeight > height && fontSize > 10) {\n fontSize -= 1;\n lineHeight = fontSize * 1.2;\n ctx.font = `${fontSize}px Arial`;\n lines = wrapText(name, maxTextWidth, ctx);\n }\n\n // 计算整体文本显示区域的起始 y 坐标(垂直居中)\n const totalTextHeight = lines.length * lineHeight;\n const startY = (height - totalTextHeight) / 2 + lineHeight / 2;\n\n // 设置文本样式\n ctx.fillStyle = '#000000';\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n // 绘制每一行文本\n lines.forEach((line, index) => {\n ctx.fillText(line, width / 2, startY + index * lineHeight);\n });\n\n // 返回图片 base64 编码(png 格式)\n return canvas.toDataURL('image/png');\n}\n\n/**\n * 是否是rdo唯一字段\n * @param key 字段key\n * @returns\n */\nexport function isRdoUniqueField(key: string): boolean {\n if (!key) return false;\n return /^version_,.*?,default_$/.test(key);\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"treeHelper.d.ts","sourceRoot":"","sources":["../../../src/utils/treeHelper/treeHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"treeHelper.mjs","names":[],"sources":["../../../src/utils/treeHelper/treeHelper.ts"],"sourcesContent":["/**\n * 节点判断函数类型\n */\ntype Fn<T> = (node: T, parent?: T) => boolean | unknown;\n\n/**\n * 树结构辅助配置接口\n */\ninterface ITreeHelperConfig {\n /** 节点 ID 字段名 */\n id: string;\n /** 子节点字段名 */\n children: string;\n /** 父节点 ID 字段名 */\n pid: string;\n /** 是否深度遍历 */\n deep: boolean;\n}\n\n/**\n * 带子节点的对象接口\n */\ninterface IWithChildren<R> {\n children?: R[];\n}\n\n/**\n * 树结构数据处理工具类\n * 提供树形数据与列表数据的相互转换、节点查找、路径查找等功能\n */\nexport class TreeHelper {\n /**\n * 默认配置\n */\n private static readonly _DEFAULT_CONFIG: ITreeHelperConfig = {\n id: 'id',\n children: 'children',\n pid: 'pid',\n deep: true,\n };\n\n /**\n * 获取合并后的配置\n * @param config 用户配置\n * @returns 合并后的完整配置\n */\n private static _getConfig(\n config: Partial<ITreeHelperConfig>,\n ): ITreeHelperConfig {\n return Object.assign({}, TreeHelper._DEFAULT_CONFIG, config);\n }\n\n /**\n * 将列表数据转换为树形结构\n * @param list 列表数据\n * @param config 配置项\n * @param callBack 节点转换回调函数\n * @returns 树形结构数据\n */\n static listToTree<T extends IObject = IObject, R = T>(\n list: T[],\n config: Partial<ITreeHelperConfig> = {},\n callBack: (node: T) => R,\n ): R[] {\n const conf = TreeHelper._getConfig(config);\n const nodeMap = new Map<string | number, R>();\n const result: R[] = [];\n const { id, children, pid, deep } = conf;\n\n for (const node of list) {\n const record = node as Record<string, unknown>;\n\n if (!deep) {\n record[children] =\n record[pid] === 'ROOT' ? (record[children] ?? []) : [];\n } else {\n record[children] = record[children] ?? undefined;\n }\n\n nodeMap.set(record[id] as string | number, callBack(node));\n }\n\n for (const node of list) {\n const record = node as Record<string, unknown>;\n const parent = nodeMap.get(record[pid] as string | number);\n\n if (parent) {\n const parentRecord = parent as Record<string, unknown>;\n if (!parentRecord[children]) {\n parentRecord[children] = [];\n }\n (parentRecord[children] as R[]).push(callBack(node));\n } else {\n result.push(callBack(node));\n }\n }\n\n return result;\n }\n\n /**\n * 将树形结构转换为列表数据\n * @param tree 树形结构数据\n * @param config 配置项\n * @returns 列表数据\n */\n static treeToList<T extends IObject = IObject>(\n tree: T[],\n config: Partial<ITreeHelperConfig> = {},\n ): T[] {\n const { children } = TreeHelper._getConfig(config);\n const result: T[] = [...tree];\n\n for (let i = 0; i < result.length; i++) {\n const record = result[i] as Record<string, unknown>;\n const child = record[children] as T[] | undefined;\n\n if (!Array.isArray(child)) continue;\n result.splice(i + 1, 0, ...child);\n }\n\n return result;\n }\n\n /**\n * 在树中查找单个节点\n * @param tree 树形结构数据\n * @param func 查找条件函数\n * @param config 配置项\n * @returns 找到的节点或 null\n */\n static findNode<T extends IObject = IObject>(\n tree: T[],\n func: Fn<T>,\n config: Partial<ITreeHelperConfig> = {},\n ): T | null {\n const { children } = TreeHelper._getConfig(config);\n const list: T[] = tree ? [...tree] : [];\n\n for (const node of list) {\n if (func(node)) return node;\n\n const record = node as Record<string, unknown>;\n const child = record[children] as T[] | undefined;\n if (Array.isArray(child)) {\n list.push(...child);\n }\n }\n\n return null;\n }\n\n /**\n * 在树中查找所有匹配的节点\n * @param tree 树形结构数据\n * @param func 查找条件函数\n * @param config 配置项\n * @returns 所有匹配的节点数组\n */\n static findNodeAll<T extends IObject = IObject>(\n tree: T[],\n func: Fn<T>,\n config: Partial<ITreeHelperConfig> = {},\n ): T[] {\n const { children } = TreeHelper._getConfig(config);\n const list: T[] = tree ? [...tree] : [];\n const result: T[] = [];\n\n for (const node of list) {\n if (func(node)) result.push(node);\n\n const record = node as Record<string, unknown>;\n const child = record[children] as T[] | undefined;\n if (Array.isArray(child)) {\n list.push(...child);\n }\n }\n\n return result;\n }\n\n /**\n * 查找节点的路径\n * @param tree 树形结构数据\n * @param func 查找条件函数\n * @param config 配置项\n * @returns 从根节点到目标节点的路径数组,未找到返回 null\n */\n static findPath<T extends IObject = IObject>(\n tree: T[],\n func: Fn<T>,\n config: Partial<ITreeHelperConfig> = {},\n ): T[] | null {\n const { children } = TreeHelper._getConfig(config);\n const path: T[] = [];\n const list: T[] = tree ? [...tree] : [];\n const visitedSet = new Set<T>();\n\n while (list.length) {\n const node = list[0]!;\n if (visitedSet.has(node)) {\n path.pop();\n list.shift();\n } else {\n visitedSet.add(node);\n const record = node as Record<string, unknown>;\n const child = record[children] as T[] | undefined;\n if (Array.isArray(child)) {\n list.unshift(...child);\n }\n path.push(node);\n if (func(node)) return path;\n }\n }\n\n return null;\n }\n\n /**\n * 查找最近的符合条件的父节点\n * @param tree 树形结构数据\n * @param startId 起始节点 ID\n * @param func 查找条件函数\n * @param config 配置项\n * @returns 找到的父节点或 undefined\n */\n static findClosestParent<T extends IObject = IObject>(\n tree: T[],\n startId: string | number,\n func: Fn<T>,\n config: Partial<ITreeHelperConfig> = {},\n ): T | undefined {\n const { id } = TreeHelper._getConfig(config);\n\n const path = TreeHelper.findPath<T>(\n tree,\n node => (node as Record<string, unknown>)[id] === startId,\n config,\n );\n\n return path?.reverse().find(n => func(n));\n }\n\n /**\n * 将具有 id 和 parentId 的列表转换为树形结构\n * @param list 列表数据,需要包含 id 和 parentId 字段\n * @param callBack 节点转换回调函数\n * @returns 树形结构数据\n */\n static list_to_tree<T extends { id?: string; parentId?: string }, R = T>(\n list: T[],\n callBack: (n: IObject) => R,\n ): R[] {\n const map: Record<string | number, number> = {};\n const roots: R[] = [];\n for (let i = 0; i < list.length; i++) {\n const node = list[i]!;\n map[node.id!] = i;\n (node as T & IWithChildren<R>).children = [];\n }\n for (const node of list) {\n if (node.parentId === 'ROOT' || !node.parentId) {\n roots.push(callBack(node));\n } else {\n const current = node as T & IWithChildren<R>;\n const parentIndex = map[node.parentId];\n if (parentIndex !== undefined) {\n const parent = list[parentIndex] as T & IWithChildren<R>;\n parent.children?.push(callBack(current));\n }\n }\n }\n\n return roots;\n }\n\n /**\n * 获取所有父级路径\n * @param treeData 树形结构数据\n * @param path 目标路径\n * @returns 从根节点到目标节点的所有路径数组\n */\n static getAllParentPath(\n treeData: (IObject & { path: string })[],\n path: string,\n ): string[] {\n const menuList = TreeHelper.findPath(treeData, n => n.path === path);\n return (menuList || []).map(item => item.path);\n }\n\n /**\n * 递归遍历树并且根据callback返回新数据再拼装成一个新树\n *\n * @static\n * @param {IObject[]} treeData\n * @param {Function} callback\n * @param {Partial<ITreeHelperConfig>} [config={}]\n * @return {*}\n */\n static traverseAndBuildTree(\n treeData: IObject[],\n callback: (node: IObject) => IObject | unknown,\n config: Partial<ITreeHelperConfig> = {},\n ): IObject[] {\n config = this._getConfig(config);\n const { children } = config;\n return treeData.map(node => {\n // 处理当前节点\n const newNode: IObject = callback(node) || node;\n\n // 递归处理子节点\n if (children && node[children] && node[children].length > 0) {\n newNode[children] = this.traverseAndBuildTree(node.children, callback);\n }\n return newNode;\n });\n }\n\n /**\n * 递归遍历树结构\n * @param treeData 树形结构数据\n * @param callBack 回调函数\n * @param parentNode 父节点\n */\n static eachTree<T extends IObject = IObject>(\n treeData: T[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callBack: (node: T, parentNode?: T) => any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parentNode: any = {},\n ): void {\n treeData.forEach(element => {\n const newNode = callBack(element, parentNode) || element;\n if (element.children) {\n TreeHelper.eachTree(element.children, callBack, newNode);\n }\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uploader.d.ts","sourceRoot":"","sources":["../../../src/utils/uploader/uploader.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ;IACnB,MAAM,CAAC,QAAQ,CAAC,EACd,QAAQ,EACR,UAAU,GACX,EAAE;QACD,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;WAgBN,eAAe,CAC1B,IAAI,EAAE,IAAI,EACV,EACE,OAAW,EACX,UAAe,EACf,YAAY,GACb,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACjD;WAwBU,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,UAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM;IAMtE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI;IAY1B;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,OAAa,EAAE,KAAW,EAAE;;;KAAK;CAkCxE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uploader.mjs","names":[],"sources":["../../../src/utils/uploader/uploader.ts"],"sourcesContent":["export class Uploader {\n static getFiles({\n multiple,\n acceptList,\n }: {\n multiple: boolean;\n acceptList?: string;\n }): Promise<File[]> {\n const input = document.createElement('input');\n input.type = 'file';\n input.multiple = !!multiple;\n input.accept = acceptList || '*';\n input.click();\n return new Promise((resolve, reject) => {\n input.onchange = async () => {\n const filelist = input.files || [];\n resolve(Object.values(filelist));\n };\n input.onerror = async () => {\n reject();\n };\n });\n }\n static async beforeUploadFun(\n file: File,\n {\n maxSize = 5,\n acceptList = [],\n beforeUpload,\n }: {\n maxSize: number;\n acceptList: string[];\n beforeUpload?: (file: File) => Promise<unknown>;\n },\n ) {\n if (file.name.indexOf(',') > -1) {\n return Promise.reject(`文件名不能有逗号`);\n }\n if (beforeUpload) {\n await beforeUpload(file);\n }\n const fileSize = file.size / 1024 / 1024;\n if (fileSize > maxSize) {\n return Promise.reject(`【${file.name}】文件大小不能超过 ${maxSize}MB`);\n }\n if (acceptList.length) {\n const filename: string | undefined = file?.name\n ?.replaceAll(' ', '')\n ?.match(/\\.([A-Za-z0-9]+)$/)\n ?.at(-1);\n if (!acceptList.includes(`.${filename?.toLocaleLowerCase()}`)) {\n return Promise.reject(\n `【${file.name}】支持的扩展名为${acceptList.join(' ')}`,\n );\n }\n }\n }\n static async uploadByFile(file: File, isApp = false, modelKey?: string) {\n const http = isApp ? appUploadapis : passUploadapis;\n const path = (await http(file, modelKey)) as unknown as IObject;\n return '/' + path.data;\n }\n\n static toBase64(file: File) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = function () {\n resolve(reader.result);\n };\n reader.onerror = () => reject('转换失败');\n if (file) {\n reader.readAsDataURL(file);\n }\n });\n }\n /**\n * 图片压缩转Base64\n */\n static compressToBase64(file: File, { quality = 0.8, scale = 0.8 } = {}) {\n return new Promise((resolve, reject) => {\n if (!file.type.startsWith('image/')) {\n reject('请选择图片文件');\n return;\n }\n if (typeof scale !== 'number' || scale <= 0 || scale > 1) {\n reject('缩放比例必须在0-1之间');\n return;\n }\n const reader = new FileReader();\n reader.onload = e => {\n const img = new Image();\n img.onload = () => {\n // 计算缩放后的尺寸\n const width = Math.floor(img.width * scale);\n const height = Math.floor(img.height * scale);\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n // 设置高质量缩放\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = 'high';\n ctx.drawImage(img, 0, 0, width, height);\n resolve(canvas.toDataURL(file.type, quality));\n };\n img.onerror = () => reject('图片加载失败');\n img.src = e.target?.result as string;\n };\n reader.onerror = () => reject('文件读取失败');\n reader.readAsDataURL(file);\n });\n }\n}\n\nasync function appUploadapis(formData: File, modelKey?: string) {\n return _api.apaas.fileResource.postUpload(\n { ...(modelKey ? { modelKey } : {}) },\n { file: formData },\n );\n}\nasync function passUploadapis(formData: File) {\n return _api.apaas.file.postUploadImage(\n { bucket: 'IMAGE' },\n { file: formData },\n );\n}\n"],"mappings":";AAAA,IAAa,WAAb,MAAsB;CACpB,OAAO,SAAS,EACd,UACA,cAIkB;EAClB,MAAM,QAAQ,SAAS,cAAc,QAAQ;EAC7C,MAAM,OAAO;EACb,MAAM,WAAW,CAAC,CAAC;EACnB,MAAM,SAAS,cAAc;EAC7B,MAAM,OAAO;EACb,OAAO,IAAI,SAAS,SAAS,WAAW;GACtC,MAAM,WAAW,YAAY;IAC3B,MAAM,WAAW,MAAM,SAAS,EAAE;IAClC,QAAQ,OAAO,OAAO,SAAS,CAAC;;GAElC,MAAM,UAAU,YAAY;IAC1B,QAAQ;;IAEV;;CAEJ,aAAa,gBACX,MACA,EACE,UAAU,GACV,aAAa,EAAE,EACf,gBAMF;EACA,IAAI,KAAK,KAAK,QAAQ,IAAI,GAAG,IAC3B,OAAO,QAAQ,OAAO,WAAW;EAEnC,IAAI,cACF,MAAM,aAAa,KAAK;EAG1B,IADiB,KAAK,OAAO,OAAO,OACrB,SACb,OAAO,QAAQ,OAAO,IAAI,KAAK,KAAK,YAAY,QAAQ,IAAI;EAE9D,IAAI,WAAW,QAAQ;GACrB,MAAM,WAA+B,MAAM,MACvC,WAAW,KAAK,GAAG,EACnB,MAAM,oBAAoB,EAC1B,GAAG,GAAG;GACV,IAAI,CAAC,WAAW,SAAS,IAAI,UAAU,mBAAmB,GAAG,EAC3D,OAAO,QAAQ,OACb,IAAI,KAAK,KAAK,UAAU,WAAW,KAAK,IAAI,GAC7C;;;CAIP,aAAa,aAAa,MAAY,QAAQ,OAAO,UAAmB;EAGtE,OAAO,OAAM,OAFA,QAAQ,gBAAgB,gBACZ,MAAM,SAAS,EACtB;;CAGpB,OAAO,SAAS,MAAY;EAC1B,OAAO,IAAI,SAAS,SAAS,WAAW;GACtC,MAAM,SAAS,IAAI,YAAY;GAC/B,OAAO,YAAY,WAAY;IAC7B,QAAQ,OAAO,OAAO;;GAExB,OAAO,gBAAgB,OAAO,OAAO;GACrC,IAAI,MACF,OAAO,cAAc,KAAK;IAE5B;;;;;CAKJ,OAAO,iBAAiB,MAAY,EAAE,UAAU,IAAK,QAAQ,OAAQ,EAAE,EAAE;EACvE,OAAO,IAAI,SAAS,SAAS,WAAW;GACtC,IAAI,CAAC,KAAK,KAAK,WAAW,SAAS,EAAE;IACnC,OAAO,UAAU;IACjB;;GAEF,IAAI,OAAO,UAAU,YAAY,SAAS,KAAK,QAAQ,GAAG;IACxD,OAAO,eAAe;IACtB;;GAEF,MAAM,SAAS,IAAI,YAAY;GAC/B,OAAO,UAAS,MAAK;IACnB,MAAM,MAAM,IAAI,OAAO;IACvB,IAAI,eAAe;KAEjB,MAAM,QAAQ,KAAK,MAAM,IAAI,QAAQ,MAAM;KAC3C,MAAM,SAAS,KAAK,MAAM,IAAI,SAAS,MAAM;KAC7C,MAAM,SAAS,SAAS,cAAc,SAAS;KAC/C,OAAO,QAAQ;KACf,OAAO,SAAS;KAEhB,MAAM,MAAM,OAAO,WAAW,KAAK;KACnC,IAAI,wBAAwB;KAC5B,IAAI,wBAAwB;KAC5B,IAAI,UAAU,KAAK,GAAG,GAAG,OAAO,OAAO;KACvC,QAAQ,OAAO,UAAU,KAAK,MAAM,QAAQ,CAAC;;IAE/C,IAAI,gBAAgB,OAAO,SAAS;IACpC,IAAI,MAAM,EAAE,QAAQ;;GAEtB,OAAO,gBAAgB,OAAO,SAAS;GACvC,OAAO,cAAc,KAAK;IAC1B;;;AAIN,eAAe,cAAc,UAAgB,UAAmB;CAC9D,OAAO,KAAK,MAAM,aAAa,WAC7B,EAAE,GAAI,WAAW,EAAE,UAAU,GAAG,EAAE,EAAG,EACrC,EAAE,MAAM,UAAU,CACnB;;AAEH,eAAe,eAAe,UAAgB;CAC5C,OAAO,KAAK,MAAM,KAAK,gBACrB,EAAE,QAAQ,SAAS,EACnB,EAAE,MAAM,UAAU,CACnB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useUUid.d.ts","sourceRoot":"","sources":["../../src/utils/useUUid.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE/B,UAAU,eAAe;IACvB,sBAAsB;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU;aACd,MAAM,EAAE,SACR,eAAe,GACrB,MAAM;qBA8CsB,MAAM,EAAE,SAAS,eAAe;;;CAN9D,CAAC;AAkBF,wBAAgB,OAAO,CACrB,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EACzB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,IAAI,CAAC,EAAE,eAAe;;;0BA8BO,MAAM,EAAE,aAAa,eAAe;kCAO5B,MAAM,EAAE,aAAa,eAAe;;;EAa1E"}
|
package/es/utils/useUUid.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useUUid.mjs","names":[],"sources":["../../src/utils/useUUid.ts"],"sourcesContent":["import { unref, computed } from 'vue';\nimport type { Ref } from 'vue';\n\ninterface IRandomUUidOpts {\n /** 是否需要拼接前缀(默认不需要) */\n needPrefix?: boolean;\n /** 随机串只能是字符串 */\n isString?: boolean;\n /** 前缀,默认前缀u_ */\n prefix?: string;\n /** 即将生成的uuid位数(不包含前缀, 默认8位) */\n length?: number;\n /** 类型 */\n chars?: string;\n /** 是否数字打头 */\n numPref?: boolean;\n}\n\n/**\n * 生成随机串\n * @param uuids 不可用的uuid\n * @param opts\n * @param opts.needPrefix 是否需要拼接前缀(默认不需要)\n * @param opts.isString 随机串只能是字符串\n * @param opts.prefix 前缀,默认前缀u_\n * @param opts.length 即将生成的uuid位数(不包含前缀, 默认8位)\n * @param opts.chars 类型\n * @param opts.numPref 数字打头\n */\nexport const randomUUID = (\n uuids: string[] = [],\n opts?: IRandomUUidOpts,\n): string => {\n const {\n needPrefix = false,\n isString = true,\n prefix = 'u_',\n length = 8,\n chars = '',\n numPref = false,\n } = opts || {};\n let characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n // 大写字母和数字\n if (chars === 'capital&number') {\n characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\n } else if (chars === 'lowercase&number') {\n // 小写字母和数字\n characters = 'abcdefghijklmnopqrstuvwxyz0123456789';\n } else if (chars === 'lowercase') {\n // 小写字母\n characters = 'abcdefghijklmnopqrstuvwxyz';\n }\n let uuid;\n while (!uuid) {\n let id = '';\n if (isString) {\n if (numPref) {\n id += Math.floor(Math.random() * 9) + 1;\n }\n for (let i = 0; i < length; i++) {\n id += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n } else {\n id = `${needPrefix ? prefix : ''}${\n numPref ? Math.floor(Math.random() * 9) + 1 : ''\n }${Math.random().toString(36).substr(2, length)}`;\n }\n if (!uuids.includes(id)) {\n uuid = id;\n }\n }\n return uuid;\n};\n\n/**\n * uuid生成器\n * @param uuids 已有uuid\n */\nrandomUUID.Generate = (uuids?: string[], opts?: IRandomUUidOpts) => {\n const cloneUUids = Array.isArray(uuids) ? uuids.concat() : [];\n\n return {\n next: () => {\n const id = randomUUID(cloneUUids, opts);\n cloneUUids.push(id);\n return id;\n },\n };\n};\n\nexport function useUUid(\n tableData: Ref<IObject[]>,\n keyAttr: Ref<string>,\n opts?: IRandomUUidOpts,\n) {\n const f_children = 'children';\n const f_key = 'key';\n\n const flatTableData = computed(() => {\n return tableData.value.reduce((list: IObject[], item) => {\n list.push(item);\n const nodes = item[f_children].map((ele: IObject) => {\n return {\n ...ele,\n _pid_: item.id,\n };\n });\n list.push(...nodes);\n return list;\n }, []);\n });\n\n const oldUUids = computed(() => {\n return flatTableData.value\n .map(data => {\n if (data._pid_) {\n return data[f_key].replace(new RegExp(`^${unref(keyAttr)}_*`), '');\n }\n return null;\n })\n .filter(i => i);\n });\n\n function getUuid(uuidsProp?: string[], optsProp?: IRandomUUidOpts) {\n return randomUUID([...unref(oldUUids), ...(uuidsProp ?? [])], {\n ...opts,\n ...optsProp,\n });\n }\n\n function getUuidGenerate(uuidsProp?: string[], optsProp?: IRandomUUidOpts) {\n return randomUUID.Generate([...unref(oldUUids), ...(uuidsProp ?? [])], {\n ...opts,\n ...optsProp,\n });\n }\n\n return {\n oldUUids,\n flatTableData,\n getUuid,\n getUuidGenerate,\n };\n}\n"],"mappings":";;;;;;;;;;;;;AA6BA,IAAa,cACX,QAAkB,EAAE,EACpB,SACW;CACX,MAAM,EACJ,aAAa,OACb,WAAW,MACX,SAAS,MACT,SAAS,GACT,QAAQ,IACR,UAAU,UACR,QAAQ,EAAE;CACd,IAAI,aAAa;CAEjB,IAAI,UAAU,kBACZ,aAAa;MACR,IAAI,UAAU,oBAEnB,aAAa;MACR,IAAI,UAAU,aAEnB,aAAa;CAEf,IAAI;CACJ,OAAO,CAAC,MAAM;EACZ,IAAI,KAAK;EACT,IAAI,UAAU;GACZ,IAAI,SACF,MAAM,KAAK,MAAM,KAAK,QAAQ,GAAG,EAAE,GAAG;GAExC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,KAC1B,MAAM,WAAW,OAAO,KAAK,MAAM,KAAK,QAAQ,GAAG,WAAW,OAAO,CAAC;SAGxE,KAAK,GAAG,aAAa,SAAS,KAC5B,UAAU,KAAK,MAAM,KAAK,QAAQ,GAAG,EAAE,GAAG,IAAI,KAC7C,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,OAAO,GAAG,OAAO;EAEjD,IAAI,CAAC,MAAM,SAAS,GAAG,EACrB,OAAO;;CAGX,OAAO;;;;;;AAOT,WAAW,YAAY,OAAkB,SAA2B;CAClE,MAAM,aAAa,MAAM,QAAQ,MAAM,GAAG,MAAM,QAAQ,GAAG,EAAE;CAE7D,OAAO,EACL,YAAY;EACV,MAAM,KAAK,WAAW,YAAY,KAAK;EACvC,WAAW,KAAK,GAAG;EACnB,OAAO;IAEV;;AAGH,SAAgB,QACd,WACA,SACA,MACA;CACA,MAAM,aAAa;CACnB,MAAM,QAAQ;CAEd,MAAM,gBAAgB,eAAe;EACnC,OAAO,UAAU,MAAM,QAAQ,MAAiB,SAAS;GACvD,KAAK,KAAK,KAAK;GACf,MAAM,QAAQ,KAAK,YAAY,KAAK,QAAiB;IACnD,OAAO;KACL,GAAG;KACH,OAAO,KAAK;KACb;KACD;GACF,KAAK,KAAK,GAAG,MAAM;GACnB,OAAO;KACN,EAAE,CAAC;GACN;CAEF,MAAM,WAAW,eAAe;EAC9B,OAAO,cAAc,MAClB,KAAI,SAAQ;GACX,IAAI,KAAK,OACP,OAAO,KAAK,OAAO,QAAQ,IAAI,OAAO,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG;GAEpE,OAAO;IACP,CACD,QAAO,MAAK,EAAE;GACjB;CAEF,SAAS,QAAQ,WAAsB,UAA4B;EACjE,OAAO,WAAW,CAAC,GAAG,MAAM,SAAS,EAAE,GAAI,aAAa,EAAE,CAAE,EAAE;GAC5D,GAAG;GACH,GAAG;GACJ,CAAC;;CAGJ,SAAS,gBAAgB,WAAsB,UAA4B;EACzE,OAAO,WAAW,SAAS,CAAC,GAAG,MAAM,SAAS,EAAE,GAAI,aAAa,EAAE,CAAE,EAAE;GACrE,GAAG;GACH,GAAG;GACJ,CAAC;;CAGJ,OAAO;EACL;EACA;EACA;EACA;EACD"}
|
package/es/utils/util.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/utils/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAWzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,kBAAkB,GAC3B,MAAM,GAAG,IAAI,CAqCf;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,EAAE,EACd,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,IAAI,CAgBN"}
|
package/es/utils/util.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.mjs","names":[],"sources":["../../src/utils/util.ts"],"sourcesContent":["import type { IOpenWindowOptions } from '../interface';\n\n/**\n * 替换url中的参数,格式为xxx/{aid}/xxx/{pid}/{bid?}\n *\n * @export\n * @param {string} url - 原始 URL 字符串\n * @param {IObject} data - 用于替换占位符的数据对象\n * @return {string} 处理后的 URL 字符串\n */\nexport function genUrl(url: string, data: IObject): string {\n let result = url;\n Object.keys(data).forEach(key => {\n // if ([undefined, null].includes(data[key])) return;\n result = result.replace(`{${key}}`, data[key] ?? '');\n // 支持参数可选\n result = result.replace(`{${key}?}`, data[key] ?? '');\n });\n // 可选参数移除\n result = result.replace(/\\/\\{[a-z]+\\?\\}/g, '');\n return result;\n}\n\n/**\n * 打开新窗口\n *\n * @export\n * @param {string} url - 要打开的 URL\n * @param {IOpenWindowOptions} [options] - 窗口配置选项\n * @return {Window | null} 新打开的窗口对象,如果打开失败则返回 null\n *\n * @example\n * ```typescript\n * // 简单打开新窗口\n * openWindow('https://example.com');\n *\n * // 使用 URL 参数替换\n * openWindow('/user/{id}/profile', {\n * genUrlData: { id: '123' }\n * });\n *\n * // 完整配置\n * openWindow('https://example.com', {\n * target: '_blank',\n * noopener: true,\n * noreferrer: true,\n * routePath: '/dashboard',\n * optionStr: 'width=800,height=600'\n * });\n * ```\n */\nexport function openWindow(\n url: string,\n options?: IOpenWindowOptions,\n): Window | null {\n const {\n target = '_blank',\n noopener = true,\n noreferrer = true,\n genUrlData,\n routePath = '',\n optionStr = '',\n } = options || {};\n\n // 构建安全特性字符串\n const features: string[] = [];\n if (noopener) {\n features.push('noopener=yes');\n }\n if (noreferrer) {\n features.push('noreferrer=yes');\n }\n\n // 处理 URL 参数替换\n let finalUrl = url;\n if (genUrlData) {\n finalUrl = genUrl(finalUrl, genUrlData);\n }\n\n // 添加路由路径\n if (routePath) {\n finalUrl += routePath;\n }\n\n // 组合特性字符串\n let featuresStr = features.join(',');\n if (optionStr) {\n featuresStr = featuresStr ? `${featuresStr},${optionStr}` : optionStr;\n }\n\n return window.open(finalUrl, target, featuresStr);\n}\n\n/**\n * 删除数组指定下标元素,并插入到目标下标位置\n *\n * @export\n * @param {unknown[]} arr - 需要操作的原数组\n * @param {number} deleteIndex - 要删除元素的下标\n * @param {number} insertIndex - 元素重新插入的目标下标\n * @return {void}\n */\nexport function deleteAndInsertArr(\n arr: unknown[],\n deleteIndex: number,\n insertIndex: number,\n): void {\n // 确保下标在数组范围内\n if (\n deleteIndex < 0 ||\n deleteIndex >= arr.length ||\n insertIndex < 0 ||\n insertIndex > arr.length\n ) {\n console.log('下标超出数组范围');\n return;\n }\n // 删除元素并保存\n const deletedElement = arr.splice(deleteIndex, 1)[0];\n\n // 插入元素到新的下标位置\n arr.splice(insertIndex, 0, deletedElement);\n}\n"],"mappings":";;;;;;;;;AAUA,SAAgB,OAAO,KAAa,MAAuB;CACzD,IAAI,SAAS;CACb,OAAO,KAAK,KAAK,CAAC,SAAQ,QAAO;EAE/B,SAAS,OAAO,QAAQ,IAAI,IAAI,IAAI,KAAK,QAAQ,GAAG;EAEpD,SAAS,OAAO,QAAQ,IAAI,IAAI,KAAK,KAAK,QAAQ,GAAG;GACrD;CAEF,SAAS,OAAO,QAAQ,mBAAmB,GAAG;CAC9C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BT,SAAgB,WACd,KACA,SACe;CACf,MAAM,EACJ,SAAS,UACT,WAAW,MACX,aAAa,MACb,YACA,YAAY,IACZ,YAAY,OACV,WAAW,EAAE;CAGjB,MAAM,WAAqB,EAAE;CAC7B,IAAI,UACF,SAAS,KAAK,eAAe;CAE/B,IAAI,YACF,SAAS,KAAK,iBAAiB;CAIjC,IAAI,WAAW;CACf,IAAI,YACF,WAAW,OAAO,UAAU,WAAW;CAIzC,IAAI,WACF,YAAY;CAId,IAAI,cAAc,SAAS,KAAK,IAAI;CACpC,IAAI,WACF,cAAc,cAAc,GAAG,YAAY,GAAG,cAAc;CAG9D,OAAO,OAAO,KAAK,UAAU,QAAQ,YAAY;;;;;;;;;;;AAYnD,SAAgB,mBACd,KACA,aACA,aACM;CAEN,IACE,cAAc,KACd,eAAe,IAAI,UACnB,cAAc,KACd,cAAc,IAAI,QAClB;EACA,QAAQ,IAAI,WAAW;EACvB;;CAGF,MAAM,iBAAiB,IAAI,OAAO,aAAa,EAAE,CAAC;CAGlD,IAAI,OAAO,aAAa,GAAG,eAAe"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../../src/utils/uuid/uuid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAOnC,wBAAgB,SAAS,IAAI,MAAM,CAclC;AAGD,wBAAgB,cAAc,CAAC,MAAM,SAAK,GAAG,MAAM,CAMlD;AAGD,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,EAAE,QAAQ,MAAM,WAyBhD,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uuid.mjs","names":[],"sources":["../../../src/utils/uuid/uuid.ts"],"sourcesContent":["import { sha256 } from 'js-sha256';\n\nconst hexList: string[] = [];\nfor (let i = 0; i <= 15; i++) {\n hexList[i] = i.toString(16);\n}\n\nexport function buildUUID(): string {\n let uuid = '';\n for (let i = 1; i <= 36; i++) {\n if (i === 9 || i === 14 || i === 19 || i === 24) {\n uuid += '-';\n } else if (i === 15) {\n uuid += 4;\n } else if (i === 20) {\n uuid += hexList[(Math.random() * 4) | 8];\n } else {\n uuid += hexList[(Math.random() * 16) | 0];\n }\n }\n return uuid.replace(/-/g, '');\n}\n\nlet unique = 0;\nexport function buildShortUUID(prefix = ''): string {\n prefix = prefix.replaceAll('-', '');\n const random = Math.floor(Math.random() * 1000000000);\n // eslint-disable-next-line no-plusplus\n unique++;\n return prefix + '_' + random + unique;\n}\n\n// 指定长度和基数\nexport const uuid2 = (len: number, radix?: number) => {\n const chars =\n '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');\n const uuid: string[] = [];\n let i;\n radix = radix || chars.length;\n if (len) {\n // Compact form\n for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)]!;\n } else {\n // rfc4122, version 4 form\n let r;\n // rfc4122 requires these characters\n uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';\n uuid[14] = '4';\n // Fill in random data. At i==19 set the high bits of clock sequence as\n // per rfc4122, sec. 4.1.5\n for (i = 0; i < 36; i++) {\n if (!uuid[i]) {\n r = 0 | (Math.random() * 16);\n uuid[i] = chars[i == 19 ? (r & 0x3) | 0x8 : r]!;\n }\n }\n }\n return uuid.join('');\n};\n\nexport { sha256 };\n"],"mappings":";;AAEA,IAAM,UAAoB,EAAE;AAC5B,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,KACvB,QAAQ,KAAK,EAAE,SAAS,GAAG;AAG7B,SAAgB,YAAoB;CAClC,IAAI,OAAO;CACX,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,KACvB,IAAI,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,IAC3C,QAAQ;MACH,IAAI,MAAM,IACf,QAAQ;MACH,IAAI,MAAM,IACf,QAAQ,QAAS,KAAK,QAAQ,GAAG,IAAK;MAEtC,QAAQ,QAAS,KAAK,QAAQ,GAAG,KAAM;CAG3C,OAAO,KAAK,QAAQ,MAAM,GAAG;;AAG/B,IAAI,SAAS;AACb,SAAgB,eAAe,SAAS,IAAY;CAClD,SAAS,OAAO,WAAW,KAAK,GAAG;CACnC,MAAM,SAAS,KAAK,MAAM,KAAK,QAAQ,GAAG,IAAW;CAErD;CACA,OAAO,SAAS,MAAM,SAAS;;AAIjC,IAAa,SAAS,KAAa,UAAmB;CACpD,MAAM,QACJ,iEAAiE,MAAM,GAAG;CAC5E,MAAM,OAAiB,EAAE;CACzB,IAAI;CACJ,QAAQ,SAAS,MAAM;CACvB,IAAI,KAEF,KAAK,IAAI,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,MAAM,IAAK,KAAK,QAAQ,GAAG;MAC1D;EAEL,IAAI;EAEJ,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;EAC3C,KAAK,MAAM;EAGX,KAAK,IAAI,GAAG,IAAI,IAAI,KAClB,IAAI,CAAC,KAAK,IAAI;GACZ,IAAI,IAAK,KAAK,QAAQ,GAAG;GACzB,KAAK,KAAK,MAAM,KAAK,KAAM,IAAI,IAAO,IAAM;;;CAIlD,OAAO,KAAK,KAAK,GAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/utils/validate.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,YAO1C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,YAE/C,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,YAEhD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,EAAE,OAAO,MAAM,kBAI9D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,OAAO,EAAE,OAAO,MAAM,kBAIhE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate.mjs","names":[],"sources":["../../src/utils/validate.ts"],"sourcesContent":["import { t } from './i18n';\n\nexport const validateEmoji = (value: string) => {\n // emoji\n const reg =\n /[\\u{1F300}-\\u{1F5FF}\\u{1F600}-\\u{1F64F}\\u{1F680}-\\u{1F6FF}\\u{2600}-\\u{26FF}\\u{2700}-\\u{27BF}]/gu;\n // 肤色变化的变体emoji\n const reg2 = /\\u{1F91D}\\u{1F3FB}-\\u{1F3FF}/u;\n return reg.test(value) || reg2.test(value);\n};\n\nexport const hasEmojiAndSpecStr = (value: string) => {\n return validateEmoji(value) || /[*??::,,[\\]【】#]/.test(value);\n};\n\nexport const hasEmojiAndSpecStr1 = (value: string) => {\n return validateEmoji(value) || /[*??::,,[\\]\\\\/【】#]/.test(value);\n};\n\nexport const validateModelName = (_rule: unknown, value: string) => {\n if (hasEmojiAndSpecStr(value))\n return Promise.reject(t('sys.model.modelNameError'));\n return Promise.resolve();\n};\n\nexport const validateIsModelName = (_rule: unknown, value: string) => {\n if (hasEmojiAndSpecStr1(value))\n return Promise.reject(t('sys.model.notModelNameError'));\n return Promise.resolve();\n};\n"],"mappings":";;AAEA,IAAa,iBAAiB,UAAkB;CAM9C,OAAO,kGAAI,KAAK,MAAM,IAAI,gCAAK,KAAK,MAAM;;AAG5C,IAAa,sBAAsB,UAAkB;CACnD,OAAO,cAAc,MAAM,IAAI,kBAAkB,KAAK,MAAM;;AAG9D,IAAa,uBAAuB,UAAkB;CACpD,OAAO,cAAc,MAAM,IAAI,qBAAqB,KAAK,MAAM;;AAGjE,IAAa,qBAAqB,OAAgB,UAAkB;CAClE,IAAI,mBAAmB,MAAM,EAC3B,OAAO,QAAQ,OAAO,EAAE,2BAA2B,CAAC;CACtD,OAAO,QAAQ,SAAS;;AAG1B,IAAa,uBAAuB,OAAgB,UAAkB;CACpE,IAAI,oBAAoB,MAAM,EAC5B,OAAO,QAAQ,OAAO,EAAE,8BAA8B,CAAC;CACzD,OAAO,QAAQ,SAAS"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"value-helper.d.ts","sourceRoot":"","sources":["../../../src/utils/value-helper/value-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,GAAG,EACR,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,cAAc,EAGpB,MAAM,KAAK,CAAC;AAEb,wBAAgB,aAAa,CAAC,CAAC,EAC7B,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GACvB,GAAG,CAAC,CAAC,CAAC,CASR;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAC5C,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAClB,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GACvD,MAAM,CAAC,CAAC,CAAC,CAgBX;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAClB,OAAO,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,IAAI,GACjE,MAAM,CAAC,CAAC,CAAC,CAsBX;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAqB3E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACvB,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,aAiCA;AAED;;;;;;GAMG;AAEH,wBAAgB,aAAa,CAAC,CAAC,SAAS,QAAQ,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAW1D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"value-helper.mjs","names":[],"sources":["../../../src/utils/value-helper/value-helper.ts"],"sourcesContent":["import {\n computed,\n isRef,\n type Ref,\n type ToRefs,\n type ComputedGetter,\n type ComputedSetter,\n ref,\n watch,\n} from 'vue';\n\nexport function afterValueSet<U>(\n value: Ref<U>,\n afterSet: (i: U) => void,\n): Ref<U> {\n const newVal = computed<U>({\n get: () => value.value as U,\n set: v => {\n value.value = v;\n afterSet(v);\n },\n });\n return newVal as Ref<U>;\n}\n\nexport function afterFieldSet<T extends object>(\n object: T | Ref<T>,\n afterSet: <F extends keyof T>(field: F, v: T[F]) => void,\n): ToRefs<T> {\n const keys = Object.keys(isRef(object) ? object.value : object);\n const result = {} as ToRefs<T>;\n keys.forEach(key => {\n result[key as keyof T] = computed<T[keyof T], T[keyof T]>({\n get: () => {\n return (isRef(object) ? object.value : object)[key as keyof T];\n },\n set(v) {\n (isRef(object) ? object.value : object)[key as keyof T] = v;\n afterSet(key as keyof T, v);\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n });\n return result;\n}\n\n/**\n * 属性修改的时候不修改并抛出事件\n * @author lingxiaoming\n * @date 2024-07-17 03:30:44\n * @export\n * @template T\n * @param {(T | Ref<T>)} object (对象必须有该属性,即使是undefined,否则无法监控)\n * @param {<F extends keyof T>(field: F, v: T[F], newObj: T) => void} emitSet newObj是将要修改成的完整数据\n * @return {*} {ToRefs<T>}\n */\nexport function emitFieldSet<T extends object>(\n object: T | Ref<T>,\n emitSet: <F extends keyof T>(field: F, v: T[F], newObj: T) => void,\n): ToRefs<T> {\n const keys = Object.keys(isRef(object) ? object.value : object);\n const result = {} as ToRefs<T>;\n let cacheData: Record<string, unknown> = {};\n keys.forEach(key => {\n result[key as keyof T] = computed<T[keyof T], T[keyof T]>({\n get: () => {\n // 触发get说明源数据已经修改,重新触发了绘制,置空缓存数据(如果有问题该实现时机)\n cacheData = {};\n return (isRef(object) ? object.value : object)[key as keyof T];\n },\n set(v) {\n const objVal = isRef(object) ? object.value : object;\n // 缓存对应修改的数据,放置同时修改多个属性时数据不完整\n cacheData[key] = v;\n const newObj = { ...objVal, ...cacheData };\n emitSet(key as keyof T, v, newObj);\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n });\n return result;\n}\n\n/**\n * 解析数值和单位\n * @author lingxiaoming\n * @date 2024-07-15 06:06:41\n * @param {string} str\n * @return {*} {({ value: number; unit: string } | null)}\n */\nexport function parseValueUnit(str: string): { value: number; unit: string } {\n if (str === 'nullpx') {\n return {\n value: 0,\n unit: 'px',\n };\n }\n // 使用正则表达式解析数值和单位\n const regex = /^(\\d+\\.?\\d*)([a-zA-Z%]+)$/;\n const match = str.match(regex);\n\n // 如果匹配成功,则返回解析后的结果\n if (match) {\n return {\n value: parseFloat(match[1]!),\n unit: match[2]!,\n };\n }\n\n // 如果匹配失败,则返回 null\n throw new Error('Invalid value');\n}\n\n/**\n * 增强computed,当属性变更时,自动调用set方法\n * @author lingxiaoming\n * @date 2024-08-26 10:19:01\n * @export\n * @param {{\n * get: ComputedGetter<T>;\n * set: ComputedSetter<T>;\n * deep: boolean; //为true时,深层属性变更也会触发set\n * }} opts\n */\nexport function computedEx<T>(opts: {\n get: ComputedGetter<T>;\n set: ComputedSetter<T>;\n deep?: boolean;\n}) {\n const result = ref<T>() as Ref<T>;\n let clear: () => void;\n const watchDeep = () => {\n if (!opts.deep) {\n return;\n }\n clear = watch(\n () => result.value,\n v => {\n console.info('computedEx:属性或者值修改', v);\n opts.set(v);\n },\n { deep: true },\n );\n };\n\n // 监听get函数返回值,当值发生改变时重新初始化深层监听\n watch(\n () => opts.get(),\n v => {\n // 清除上一个值的深层监听\n if (clear) {\n clear();\n }\n console.info('computedEx:获取新值,重新监听', v);\n result.value = v;\n watchDeep();\n },\n { immediate: true },\n );\n\n return result;\n}\n\n/**\n * 缓存函数返回值,下次相同参数调用时直接返回缓存值\n * @export\n * @template T\n * @param cb\n * @return {*}\n */\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport function cacheFnReturn<T extends Function>(cb: T): T {\n const cacheReturn = new Map();\n return function (...args: unknown[]) {\n const key = JSON.stringify(args);\n if (cacheReturn.has(key)) {\n return cacheReturn.get(key);\n }\n const result = cb(...args);\n cacheReturn.set(key, result);\n return result;\n } as unknown as T;\n}\n"],"mappings":";;AAWA,SAAgB,cACd,OACA,UACQ;CAQR,OAPe,SAAY;EACzB,WAAW,MAAM;EACjB,MAAK,MAAK;GACR,MAAM,QAAQ;GACd,SAAS,EAAE;;EAEd,CACM;;AAGT,SAAgB,cACd,QACA,UACW;CACX,MAAM,OAAO,OAAO,KAAK,MAAM,OAAO,GAAG,OAAO,QAAQ,OAAO;CAC/D,MAAM,SAAS,EAAE;CACjB,KAAK,SAAQ,QAAO;EAClB,OAAO,OAAkB,SAAiC;GACxD,WAAW;IACT,QAAQ,MAAM,OAAO,GAAG,OAAO,QAAQ,QAAQ;;GAEjD,IAAI,GAAG;IACL,CAAC,MAAM,OAAO,GAAG,OAAO,QAAQ,QAAQ,OAAkB;IAC1D,SAAS,KAAgB,EAAE;;GAG9B,CAAC;GACF;CACF,OAAO;;;;;;;;;;;;AAaT,SAAgB,aACd,QACA,SACW;CACX,MAAM,OAAO,OAAO,KAAK,MAAM,OAAO,GAAG,OAAO,QAAQ,OAAO;CAC/D,MAAM,SAAS,EAAE;CACjB,IAAI,YAAqC,EAAE;CAC3C,KAAK,SAAQ,QAAO;EAClB,OAAO,OAAkB,SAAiC;GACxD,WAAW;IAET,YAAY,EAAE;IACd,QAAQ,MAAM,OAAO,GAAG,OAAO,QAAQ,QAAQ;;GAEjD,IAAI,GAAG;IACL,MAAM,SAAS,MAAM,OAAO,GAAG,OAAO,QAAQ;IAE9C,UAAU,OAAO;IAEjB,QAAQ,KAAgB,GAAG;KADV,GAAG;KAAQ,GAAG;KACJ,CAAO;;GAGrC,CAAC;GACF;CACF,OAAO;;;;;;;;;AAUT,SAAgB,eAAe,KAA8C;CAC3E,IAAI,QAAQ,UACV,OAAO;EACL,OAAO;EACP,MAAM;EACP;CAIH,MAAM,QAAQ,IAAI,MAAM,4BAAM;CAG9B,IAAI,OACF,OAAO;EACL,OAAO,WAAW,MAAM,GAAI;EAC5B,MAAM,MAAM;EACb;CAIH,MAAM,IAAI,MAAM,gBAAgB;;;;;;;;;;;;;AAclC,SAAgB,WAAc,MAI3B;CACD,MAAM,SAAS,KAAQ;CACvB,IAAI;CACJ,MAAM,kBAAkB;EACtB,IAAI,CAAC,KAAK,MACR;EAEF,QAAQ,YACA,OAAO,QACb,MAAK;GACH,QAAQ,KAAK,sBAAsB,EAAE;GACrC,KAAK,IAAI,EAAE;KAEb,EAAE,MAAM,MAAM,CACf;;CAIH,YACQ,KAAK,KAAK,GAChB,MAAK;EAEH,IAAI,OACF,OAAO;EAET,QAAQ,KAAK,wBAAwB,EAAE;EACvC,OAAO,QAAQ;EACf,WAAW;IAEb,EAAE,WAAW,MAAM,CACpB;CAED,OAAO;;;;;;;;;AAWT,SAAgB,cAAkC,IAAU;CAC1D,MAAM,8BAAc,IAAI,KAAK;CAC7B,OAAO,SAAU,GAAG,MAAiB;EACnC,MAAM,MAAM,KAAK,UAAU,KAAK;EAChC,IAAI,YAAY,IAAI,IAAI,EACtB,OAAO,YAAY,IAAI,IAAI;EAE7B,MAAM,SAAS,GAAG,GAAG,KAAK;EAC1B,YAAY,IAAI,KAAK,OAAO;EAC5B,OAAO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vue-component-code.d.ts","sourceRoot":"","sources":["../../src/utils/vue-component-code.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAiC7D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vue-component-code.mjs","names":[],"sources":["../../src/utils/vue-component-code.ts"],"sourcesContent":["import * as Vue from 'vue';\n\n/**\n * 从字符串形式的 Vue 组件代码中解析并创建 Vue 组件实例\n *\n * @export\n * @param {string} comStr\n * @return {*} {IObject}\n */\nexport function getVueComponentByCode(comStr: string): IObject {\n if (!comStr) {\n return {};\n }\n\n let parsedCode;\n try {\n parsedCode = JSON.parse(comStr);\n } catch (e) {\n console.warn('Vue component JSON parsing failed.', e);\n return {};\n }\n\n const { js, render } = parsedCode;\n if (!js || !render) {\n console.warn('Vue component is missing \"js\" or \"render\" code.');\n return {};\n }\n\n try {\n const exports: { default: IObject } = { default: {} };\n\n new Function('exports', js)(exports);\n new Function('exports', '_vue', render)(exports.default, Vue);\n\n /**检查data是否合法 */\n exports.default.data?.();\n\n return exports.default;\n } catch (e) {\n console.warn('Vue component creation from parsed code failed.', e);\n return {};\n }\n}\n"],"mappings":";;;;;;;;;AASA,SAAgB,sBAAsB,QAAyB;CAC7D,IAAI,CAAC,QACH,OAAO,EAAE;CAGX,IAAI;CACJ,IAAI;EACF,aAAa,KAAK,MAAM,OAAO;UACxB,GAAG;EACV,QAAQ,KAAK,sCAAsC,EAAE;EACrD,OAAO,EAAE;;CAGX,MAAM,EAAE,IAAI,WAAW;CACvB,IAAI,CAAC,MAAM,CAAC,QAAQ;EAClB,QAAQ,KAAK,sDAAkD;EAC/D,OAAO,EAAE;;CAGX,IAAI;EACF,MAAM,UAAgC,EAAE,SAAS,EAAE,EAAE;EAErD,IAAI,SAAS,WAAW,GAAG,CAAC,QAAQ;EACpC,IAAI,SAAS,WAAW,QAAQ,OAAO,CAAC,QAAQ,SAAS,IAAI;;EAG7D,QAAQ,QAAQ,QAAQ;EAExB,OAAO,QAAQ;UACR,GAAG;EACV,QAAQ,KAAK,mDAAmD,EAAE;EAClE,OAAO,EAAE"}
|