tdesign-vue-next
Version:
TDesign Component for vue-next
101 lines (95 loc) • 3.76 kB
JavaScript
/**
* tdesign v1.11.5
* (c) 2025 tdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var Vue = require('vue');
var configProvider_utils_context = require('../../_chunks/dep-b4c4a54b.js');
var cloneDeep = require('../../_chunks/dep-61a7e281.js');
var isString = require('../../_chunks/dep-b8b9c2a3.js');
var isFunction = require('../../_chunks/dep-047617bf.js');
require('../../_chunks/dep-f8ff548f.js');
require('@babel/runtime/helpers/typeof');
require('../../_chunks/dep-30fb1b25.js');
require('dayjs');
require('../../_chunks/dep-b6c192db.js');
require('../../_chunks/dep-ba2090c8.js');
require('../../_chunks/dep-b27d3215.js');
require('../../_chunks/dep-ed572eb3.js');
require('../../_chunks/dep-bbe343d7.js');
require('../../_chunks/dep-0a510359.js');
require('../../_chunks/dep-50a41d31.js');
require('../../_chunks/dep-be3c3d53.js');
require('../../_chunks/dep-0c2ad01b.js');
require('../../_chunks/dep-5ad8a2ab.js');
require('../../_chunks/dep-8b98fa07.js');
require('../../_chunks/dep-b0b4fff1.js');
require('../../_chunks/dep-7a21da5b.js');
require('../../_chunks/dep-49fa220e.js');
require('../../_chunks/dep-02ebb419.js');
require('../../_chunks/dep-feae46a3.js');
require('../../_chunks/dep-abf21389.js');
require('../../_chunks/dep-7f32423d.js');
require('../../_chunks/dep-7c9e3d93.js');
require('../../_chunks/dep-ecbaedee.js');
require('../../_chunks/dep-9de7d250.js');
require('../../_chunks/dep-6f8a66a3.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