xdesign-vue-next
Version:
XDesign Component for vue-next
100 lines (96 loc) • 3.5 kB
JavaScript
/**
* 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