UNPKG

tdesign-vue-next

Version:
72 lines (68 loc) 2.46 kB
/** * tdesign v1.11.5 * (c) 2025 tdesign * @license MIT */ import { ref, getCurrentInstance, inject, computed, provide, h } from 'vue'; import { cloneDeep, isString, isFunction } from 'lodash-es'; import { configProviderInjectKey, defaultGlobalConfig, mergeWith } from '../utils/context.js'; import '../../_chunks/dep-c75b9b8e.js'; import '@babel/runtime/helpers/typeof'; import '../../_chunks/dep-caecb55d.js'; import 'dayjs'; var globalConfigCopy = ref(); function useConfig() { var componentName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : void 0; var componentLocale = arguments.length > 1 ? arguments[1] : undefined; var injectGlobalConfig = getCurrentInstance() ? inject(configProviderInjectKey, null) : globalConfigCopy; var mergedGlobalConfig = computed(function () { return (injectGlobalConfig === null || injectGlobalConfig === void 0 ? void 0 : injectGlobalConfig.value) || defaultGlobalConfig; }); var globalConfig = computed(function () { return Object.assign({}, mergedGlobalConfig.value[componentName], componentLocale); }); var classPrefix = computed(function () { return mergedGlobalConfig.value.classPrefix; }); var t = function t(pattern) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } var data = args[0]; if (isString(pattern)) { if (!data) return pattern; var regular = /\{\s*([\w-]+)\s*\}/g; var translated = pattern.replace(regular, function (match, key) { if (data) { return String(data[key]); } return ""; }); return translated; } if (isFunction(pattern)) { if (!args.length) return pattern(h); return pattern.apply(void 0, args); } return ""; }; return { t: t, global: globalConfig, globalConfig: globalConfig, classPrefix: classPrefix }; } var provideConfig = function provideConfig(props) { var defaultData = cloneDeep(defaultGlobalConfig); var mergedGlobalConfig = computed(function () { return Object.assign({}, mergeWith(defaultData, props.globalConfig)); }); provide(configProviderInjectKey, mergedGlobalConfig); if (!globalConfigCopy.value) { globalConfigCopy.value = mergedGlobalConfig.value; } return mergedGlobalConfig; }; export { provideConfig, useConfig }; //# sourceMappingURL=useConfig.js.map