You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
11 KiB
1 lines
11 KiB
{"ast":null,"code":"import { ref, getCurrentInstance, inject, computed, unref, provide } from 'vue';\nimport { configProviderContextKey } from '../constants.mjs';\nimport { useNamespace, defaultNamespace, namespaceContextKey } from '../../../../hooks/use-namespace/index.mjs';\nimport { useZIndex, defaultInitialZIndex, zIndexContextKey } from '../../../../hooks/use-z-index/index.mjs';\nimport { useLocale, localeContextKey } from '../../../../hooks/use-locale/index.mjs';\nimport { SIZE_INJECTION_KEY } from '../../../../hooks/use-size/index.mjs';\nimport { emptyValuesContextKey } from '../../../../hooks/use-empty-values/index.mjs';\nimport { debugWarn } from '../../../../utils/error.mjs';\nimport { keysOf } from '../../../../utils/objects.mjs';\nconst globalConfig = ref();\nfunction useGlobalConfig(key, defaultValue = void 0) {\n const config = getCurrentInstance() ? inject(configProviderContextKey, globalConfig) : globalConfig;\n if (key) {\n return computed(() => {\n var _a, _b;\n return (_b = (_a = config.value) == null ? void 0 : _a[key]) != null ? _b : defaultValue;\n });\n } else {\n return config;\n }\n}\nfunction useGlobalComponentSettings(block, sizeFallback) {\n const config = useGlobalConfig();\n const ns = useNamespace(block, computed(() => {\n var _a;\n return ((_a = config.value) == null ? void 0 : _a.namespace) || defaultNamespace;\n }));\n const locale = useLocale(computed(() => {\n var _a;\n return (_a = config.value) == null ? void 0 : _a.locale;\n }));\n const zIndex = useZIndex(computed(() => {\n var _a;\n return ((_a = config.value) == null ? void 0 : _a.zIndex) || defaultInitialZIndex;\n }));\n const size = computed(() => {\n var _a;\n return unref(sizeFallback) || ((_a = config.value) == null ? void 0 : _a.size) || \"\";\n });\n provideGlobalConfig(computed(() => unref(config) || {}));\n return {\n ns,\n locale,\n zIndex,\n size\n };\n}\nconst provideGlobalConfig = (config, app, global = false) => {\n var _a;\n const inSetup = !!getCurrentInstance();\n const oldConfig = inSetup ? useGlobalConfig() : void 0;\n const provideFn = (_a = app == null ? void 0 : app.provide) != null ? _a : inSetup ? provide : void 0;\n if (!provideFn) {\n debugWarn(\"provideGlobalConfig\", \"provideGlobalConfig() can only be used inside setup().\");\n return;\n }\n const context = computed(() => {\n const cfg = unref(config);\n if (!(oldConfig == null ? void 0 : oldConfig.value)) return cfg;\n return mergeConfig(oldConfig.value, cfg);\n });\n provideFn(configProviderContextKey, context);\n provideFn(localeContextKey, computed(() => context.value.locale));\n provideFn(namespaceContextKey, computed(() => context.value.namespace));\n provideFn(zIndexContextKey, computed(() => context.value.zIndex));\n provideFn(SIZE_INJECTION_KEY, {\n size: computed(() => context.value.size || \"\")\n });\n provideFn(emptyValuesContextKey, computed(() => ({\n emptyValues: context.value.emptyValues,\n valueOnClear: context.value.valueOnClear\n })));\n if (global || !globalConfig.value) {\n globalConfig.value = context.value;\n }\n return context;\n};\nconst mergeConfig = (a, b) => {\n const keys = [... /* @__PURE__ */new Set([...keysOf(a), ...keysOf(b)])];\n const obj = {};\n for (const key of keys) {\n obj[key] = b[key] !== void 0 ? b[key] : a[key];\n }\n return obj;\n};\nexport { provideGlobalConfig, useGlobalComponentSettings, useGlobalConfig };","map":{"version":3,"names":["globalConfig","ref","useGlobalConfig","key","defaultValue","config","getCurrentInstance","inject","configProviderContextKey","computed","_a","_b","value","useGlobalComponentSettings","block","sizeFallback","ns","useNamespace","namespace","defaultNamespace","locale","useLocale","zIndex","useZIndex","defaultInitialZIndex","size","unref","provideGlobalConfig","app","global","inSetup","oldConfig","provideFn","provide","debugWarn","context","cfg","mergeConfig","localeContextKey","namespaceContextKey","zIndexContextKey","SIZE_INJECTION_KEY","emptyValuesContextKey","emptyValues","valueOnClear","a","b","keys","Set","keysOf","obj"],"sources":["../../../../../../../packages/components/config-provider/src/hooks/use-global-config.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, ref, unref } from 'vue'\nimport { debugWarn, keysOf } from '@element-plus/utils'\nimport {\n SIZE_INJECTION_KEY,\n defaultInitialZIndex,\n defaultNamespace,\n emptyValuesContextKey,\n localeContextKey,\n namespaceContextKey,\n useLocale,\n useNamespace,\n useZIndex,\n zIndexContextKey,\n} from '@element-plus/hooks'\nimport { configProviderContextKey } from '../constants'\n\nimport type { MaybeRef } from '@vueuse/core'\nimport type { App, Ref } from 'vue'\nimport type { ConfigProviderContext } from '../constants'\n\n// this is meant to fix global methods like `ElMessage(opts)`, this way we can inject current locale\n// into the component as default injection value.\n// refer to: https://github.com/element-plus/element-plus/issues/2610#issuecomment-887965266\nconst globalConfig = ref<ConfigProviderContext>()\n\nexport function useGlobalConfig<\n K extends keyof ConfigProviderContext,\n D extends ConfigProviderContext[K]\n>(\n key: K,\n defaultValue?: D\n): Ref<Exclude<ConfigProviderContext[K], undefined> | D>\nexport function useGlobalConfig(): Ref<ConfigProviderContext>\nexport function useGlobalConfig(\n key?: keyof ConfigProviderContext,\n defaultValue = undefined\n) {\n const config = getCurrentInstance()\n ? inject(configProviderContextKey, globalConfig)\n : globalConfig\n if (key) {\n return computed(() => config.value?.[key] ?? defaultValue)\n } else {\n return config\n }\n}\n\n// for components like `ElMessage` `ElNotification` `ElMessageBox`.\nexport function useGlobalComponentSettings(\n block: string,\n sizeFallback?: MaybeRef<ConfigProviderContext['size']>\n) {\n const config = useGlobalConfig()\n\n const ns = useNamespace(\n block,\n computed(() => config.value?.namespace || defaultNamespace)\n )\n\n const locale = useLocale(computed(() => config.value?.locale))\n const zIndex = useZIndex(\n computed(() => config.value?.zIndex || defaultInitialZIndex)\n )\n const size = computed(() => unref(sizeFallback) || config.value?.size || '')\n provideGlobalConfig(computed(() => unref(config) || {}))\n\n return {\n ns,\n locale,\n zIndex,\n size,\n }\n}\n\nexport const provideGlobalConfig = (\n config: MaybeRef<ConfigProviderContext>,\n app?: App,\n global = false\n) => {\n const inSetup = !!getCurrentInstance()\n const oldConfig = inSetup ? useGlobalConfig() : undefined\n\n const provideFn = app?.provide ?? (inSetup ? provide : undefined)\n if (!provideFn) {\n debugWarn(\n 'provideGlobalConfig',\n 'provideGlobalConfig() can only be used inside setup().'\n )\n return\n }\n\n const context = computed(() => {\n const cfg = unref(config)\n if (!oldConfig?.value) return cfg\n return mergeConfig(oldConfig.value, cfg)\n })\n provideFn(configProviderContextKey, context)\n provideFn(\n localeContextKey,\n computed(() => context.value.locale)\n )\n provideFn(\n namespaceContextKey,\n computed(() => context.value.namespace)\n )\n provideFn(\n zIndexContextKey,\n computed(() => context.value.zIndex)\n )\n\n provideFn(SIZE_INJECTION_KEY, {\n size: computed(() => context.value.size || ''),\n })\n\n provideFn(\n emptyValuesContextKey,\n computed(() => ({\n emptyValues: context.value.emptyValues,\n valueOnClear: context.value.valueOnClear,\n }))\n )\n\n if (global || !globalConfig.value) {\n globalConfig.value = context.value\n }\n return context\n}\n\nconst mergeConfig = (\n a: ConfigProviderContext,\n b: ConfigProviderContext\n): ConfigProviderContext => {\n const keys = [...new Set([...keysOf(a), ...keysOf(b)])]\n const obj: Record<string, any> = {}\n for (const key of keys) {\n obj[key] = b[key] !== undefined ? b[key] : a[key]\n }\n return obj\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|