UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

100 lines (96 loc) 3.5 kB
/** * xdesign v1.0.6 * (c) 2023 xdesign * @license MIT */ import { ref, getCurrentInstance, inject, computed, h, provide } from 'vue'; import { i as isFunction_1 } from '../_chunks/dep-1cc1c24f.mjs'; import { c as cloneDeep_1 } from '../_chunks/dep-91ac8f71.mjs'; import { i as isString_1 } from '../_chunks/dep-11fa9c2c.mjs'; import { c as configProviderInjectKey, d as defaultGlobalConfig, a as mergeWith } from '../_chunks/dep-b09f48fa.mjs'; import './type.mjs'; import '../_chunks/dep-10a947a6.mjs'; import '../_chunks/dep-b75d8d74.mjs'; import '../_chunks/dep-82805301.mjs'; import '../_chunks/dep-6ad18815.mjs'; import '../_chunks/dep-c4737535.mjs'; import '../_chunks/dep-81c83986.mjs'; import '../_chunks/dep-6aa0223b.mjs'; import '../_chunks/dep-db381ece.mjs'; import '../_chunks/dep-5755c21c.mjs'; import '../_chunks/dep-7f239c43.mjs'; import '../_chunks/dep-6f04869e.mjs'; import '../_chunks/dep-d32fbbb3.mjs'; import '../_chunks/dep-dafada74.mjs'; import '../_chunks/dep-addc2a84.mjs'; import '../_chunks/dep-a95026f2.mjs'; import '../_chunks/dep-068e912d.mjs'; import '../_chunks/dep-6e7b37b8.mjs'; import '../_chunks/dep-e1ab85c5.mjs'; import '../_chunks/dep-5f0e0453.mjs'; import '../_chunks/dep-71f84cf2.mjs'; import '../_chunks/dep-0e832fc7.mjs'; import '../_chunks/dep-69963a8c.mjs'; import '../_chunks/dep-8d1c9a23.mjs'; import '../_chunks/dep-03412fab.mjs'; import '../_chunks/dep-205ff58d.mjs'; import '../_chunks/dep-26bf361a.mjs'; import '../_chunks/dep-3ec3335a.mjs'; import '../_chunks/dep-ed4e7c50.mjs'; import '../_chunks/dep-a666b9ad.mjs'; import '../_common/js/global-config/default-config.mjs'; import '../_common/js/global-config/locale/en_US.mjs'; var globalConfigCopy = ref(); function useConfig(componentName) { 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 mergedGlobalConfig.value[componentName]; }); 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_1(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_1(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_1(defaultGlobalConfig); var mergedGlobalConfig = computed(function () { return mergeWith(defaultData, props.globalConfig); }); provide(configProviderInjectKey, mergedGlobalConfig); if (!globalConfigCopy.value) { globalConfigCopy.value = mergedGlobalConfig.value; } return mergedGlobalConfig; }; export { provideConfig, useConfig }; //# sourceMappingURL=useConfig.mjs.map