UNPKG

tdesign-vue-next

Version:
164 lines (155 loc) 5.83 kB
/** * tdesign v1.20.3 * (c) 2026 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var Vue = require('vue'); var configProvider_utils_context = require('../../_chunks/dep-f13dc940.js'); var _slicedToArray = require('@babel/runtime/helpers/slicedToArray'); var _typeof = require('@babel/runtime/helpers/typeof'); var isString = require('../../_chunks/dep-50880721.js'); var cloneDeep = require('../../_chunks/dep-00b0ff32.js'); var isFunction = require('../../_chunks/dep-f8f6dc81.js'); require('../../_chunks/dep-dc718ec7.js'); require('../../_chunks/dep-ce131a62.js'); require('dayjs'); require('../../_chunks/dep-e1852b70.js'); require('../../_chunks/dep-d0ba8f3b.js'); require('../../_chunks/dep-34ae74be.js'); require('../../_chunks/dep-2e72c048.js'); require('../../_chunks/dep-c1906837.js'); require('../../_chunks/dep-820ea949.js'); require('../../_chunks/dep-5ce4c94e.js'); require('../../_chunks/dep-38abd3cd.js'); require('../../_chunks/dep-48f8bd7a.js'); require('../../_chunks/dep-9488062b.js'); require('../../_chunks/dep-6475bea6.js'); require('../../_chunks/dep-53a0e29c.js'); require('../../_chunks/dep-ab3db94c.js'); require('../../_chunks/dep-577d39b3.js'); require('../../_chunks/dep-5bcb760f.js'); require('../../_chunks/dep-bf13d379.js'); require('../../_chunks/dep-95fe29fa.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