tdesign-vue-next
Version:
TDesign Component for vue-next
97 lines (91 loc) • 3.59 kB
JavaScript
/**
* tdesign v1.13.2
* (c) 2025 tdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var Vue = require('vue');
var configProvider_utils_context = require('../../_chunks/dep-7636cb2b.js');
var cloneDeep = require('../../_chunks/dep-36c231db.js');
var isString = require('../../_chunks/dep-5c87313c.js');
var isFunction = require('../../_chunks/dep-6f35bfc1.js');
require('../../_chunks/dep-7fa36748.js');
require('@babel/runtime/helpers/typeof');
require('../../_chunks/dep-ac58e1cc.js');
require('dayjs');
require('../../_chunks/dep-1585ec9b.js');
require('../../_chunks/dep-bd4650d2.js');
require('../../_chunks/dep-1c53d2aa.js');
require('../../_chunks/dep-d17ed13a.js');
require('../../_chunks/dep-c94e2f5d.js');
require('../../_chunks/dep-cb8b352a.js');
require('../../_chunks/dep-53860ab2.js');
require('../../_chunks/dep-86aa65fa.js');
require('../../_chunks/dep-8c59be4f.js');
require('../../_chunks/dep-b478162d.js');
require('../../_chunks/dep-7f6ae34b.js');
require('../../_chunks/dep-43233220.js');
require('../../_chunks/dep-ef233591.js');
require('../../_chunks/dep-c54c953e.js');
require('../../_chunks/dep-14dde3a2.js');
require('../../_chunks/dep-3ae66374.js');
require('../../_chunks/dep-c99964ce.js');
require('../../_chunks/dep-84cc4997.js');
var globalConfigCopy = Vue.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 = Vue.getCurrentInstance() ? Vue.inject(configProvider_utils_context.configProviderInjectKey, null) : globalConfigCopy;
var mergedGlobalConfig = Vue.computed(function () {
return (injectGlobalConfig === null || injectGlobalConfig === void 0 ? void 0 : injectGlobalConfig.value) || configProvider_utils_context.defaultGlobalConfig;
});
var globalConfig = Vue.computed(function () {
return Object.assign({}, mergedGlobalConfig.value[componentName], componentLocale);
});
var classPrefix = Vue.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.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.isFunction(pattern)) {
if (!args.length) return pattern(Vue.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.cloneDeep(configProvider_utils_context.defaultGlobalConfig);
var mergedGlobalConfig = Vue.computed(function () {
return Object.assign({}, configProvider_utils_context.mergeWith(defaultData, props.globalConfig));
});
Vue.provide(configProvider_utils_context.configProviderInjectKey, mergedGlobalConfig);
if (!globalConfigCopy.value) {
globalConfigCopy.value = mergedGlobalConfig.value;
}
return mergedGlobalConfig;
};
exports.provideConfig = provideConfig;
exports.useConfig = useConfig;
//# sourceMappingURL=useConfig.js.map