tdesign-vue-next
Version:
TDesign Component for vue-next
161 lines (152 loc) • 5.71 kB
JavaScript
/**
* tdesign v1.20.2
* (c) 2026 tdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var Vue = require('vue');
var configProvider_utils_context = require('../../_chunks/dep-31abb282.js');
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
var _typeof = require('@babel/runtime/helpers/typeof');
var isString = require('../../_chunks/dep-df5442c5.js');
var cloneDeep = require('../../_chunks/dep-141cbae1.js');
var isFunction = require('../../_chunks/dep-80827572.js');
require('../../_chunks/dep-c71a9cd7.js');
require('../../_chunks/dep-f9b59444.js');
require('dayjs');
require('../../_chunks/dep-39529ef1.js');
require('../../_chunks/dep-f4c1cb5b.js');
require('../../_chunks/dep-4896d30f.js');
require('../../_chunks/dep-2610df9f.js');
require('../../_chunks/dep-2c7a67b8.js');
require('../../_chunks/dep-db6459dd.js');
require('../../_chunks/dep-4d7a3a91.js');
require('../../_chunks/dep-6e64ef0e.js');
require('../../_chunks/dep-959f4847.js');
require('../../_chunks/dep-ae380218.js');
require('../../_chunks/dep-fdac7521.js');
require('../../_chunks/dep-c277c7cb.js');
require('../../_chunks/dep-7653f80f.js');
require('../../_chunks/dep-6e7a2100.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
function getPluralIndex(count) {
if (count === 0) return 0;
if (count === 1) return 1;
return 2;
}
function t(pattern) {
if (isString.isString(pattern)) {
var text = pattern;
var count;
var data = {};
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
if (args.length > 0) {
var firstArg = args[0],
secondArg = args[1];
if (typeof firstArg === "number") {
count = firstArg;
if (secondArg && _typeof__default["default"](secondArg) === "object") {
data = secondArg;
} else {
data.count = count;
}
} else if (_typeof__default["default"](firstArg) === "object" && firstArg !== null) {
data = firstArg;
}
}
if (text.includes("|")) {
var _data;
var pluralParts = text.split("|").map(function (part) {
return part.trim();
});
var effectiveCount;
if (typeof count === "number") {
effectiveCount = count;
} else if (typeof ((_data = data) === null || _data === void 0 ? void 0 : _data.count) === "number") {
effectiveCount = data.count;
}
if (typeof effectiveCount === "number") {
var pluralIndex = getPluralIndex(effectiveCount);
if (pluralIndex < pluralParts.length) {
text = pluralParts[pluralIndex];
} else {
text = pluralParts[pluralParts.length - 1];
}
} else {
var _pluralParts = _slicedToArray__default["default"](pluralParts, 1),
firstPart = _pluralParts[0];
text = firstPart;
}
}
if (data && Object.keys(data).length > 0) {
var regular = /\{\s*([\w-]+)\s*\}/g;
text = text.replace(regular, function (match, key) {
if (Object.prototype.hasOwnProperty.call(data, key)) {
return String(data[key]);
}
return match;
});
}
return text;
}
return "";
}
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 = null;
if (Vue.getCurrentInstance()) {
injectGlobalConfig = Vue.inject(configProvider_utils_context.configProviderInjectKey, null);
if (!injectGlobalConfig) {
injectGlobalConfig = globalConfigCopy;
}
} else {
injectGlobalConfig = globalConfigCopy;
}
var mergedGlobalConfig = Vue.computed(function () {
var _injectGlobalConfig;
return ((_injectGlobalConfig = 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$1 = function t$1(pattern) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
if (isFunction.isFunction(pattern)) {
if (!args.length) return pattern(Vue.h);
return pattern.apply(void 0, args);
}
return t.apply(void 0, [pattern].concat(args));
};
return {
t: t$1,
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