tdesign-vue
Version:
208 lines (204 loc) • 8.19 kB
JavaScript
/**
* tdesign v1.14.1
* (c) 2025 tdesign
* @license MIT
*/
import Vue from 'vue';
import { mergeWith } from 'lodash-es';
import { defaultGlobalConfig } from './context.js';
import { t } from '../_common/js/global-config/t.js';
import './type.js';
import '../_common/js/global-config/default-config.js';
import '../_common/js/global-config/locale/zh_CN.js';
import '../_chunks/dep-d2f11e9e.js';
import '@babel/runtime/helpers/typeof';
import '../_chunks/dep-05dc6583.js';
import 'dayjs';
import '../_chunks/dep-62386ed0.js';
import '@babel/runtime/helpers/slicedToArray';
function getConfigReceiverMixins(_componentName) {
return Vue.extend({
name: "TConfigProvider",
inject: {
globalConfig: {
"default": void 0
}
},
computed: {
global: function global() {
var data = this.globalConfig || defaultGlobalConfig;
return data[_componentName];
},
classPrefix: function classPrefix() {
var _this$globalConfig;
return ((_this$globalConfig = this.globalConfig) === null || _this$globalConfig === void 0 ? void 0 : _this$globalConfig.classPrefix) || (defaultGlobalConfig === null || defaultGlobalConfig === void 0 ? void 0 : defaultGlobalConfig.classPrefix);
},
componentName: function componentName() {
var _this$globalConfig2;
var classPrefix = ((_this$globalConfig2 = this.globalConfig) === null || _this$globalConfig2 === void 0 ? void 0 : _this$globalConfig2.classPrefix) || (defaultGlobalConfig === null || defaultGlobalConfig === void 0 ? void 0 : defaultGlobalConfig.classPrefix);
return "".concat(classPrefix, "-").concat(_componentName);
},
commonSizeClassName: function commonSizeClassName() {
return {
small: "".concat(this.classPrefix, "-size-s"),
medium: "".concat(this.classPrefix, "-size-m"),
large: "".concat(this.classPrefix, "-size-l"),
"default": "",
xs: "".concat(this.classPrefix, "-size-xs"),
xl: "".concat(this.classPrefix, "-size-xl"),
block: "".concat(this.classPrefix, "-size-full-width")
};
},
commonStatusClassName: function commonStatusClassName() {
return {
loading: "".concat(this.classPrefix, "-is-loading"),
loadMore: "".concat(this.classPrefix, "-is-load-more"),
disabled: "".concat(this.classPrefix, "-is-disabled"),
focused: "".concat(this.classPrefix, "-is-focused"),
success: "".concat(this.classPrefix, "-is-success"),
error: "".concat(this.classPrefix, "-is-error"),
warning: "".concat(this.classPrefix, "-is-warning"),
selected: "".concat(this.classPrefix, "-is-selected"),
active: "".concat(this.classPrefix, "-is-active"),
checked: "".concat(this.classPrefix, "-is-checked"),
current: "".concat(this.classPrefix, "-is-current"),
hidden: "".concat(this.classPrefix, "-is-hidden"),
visible: "".concat(this.classPrefix, "-is-visible"),
expanded: "".concat(this.classPrefix, "-is-expanded"),
indeterminate: "".concat(this.classPrefix, "-is-indeterminate")
};
}
},
methods: {
t: function t$1(pattern, placement) {
if (typeof pattern === "function") {
return pattern(placement);
}
return t(pattern, placement);
}
}
});
}
function getGlobalIconMixins() {
return Vue.extend({
name: "TGlobalIcon",
inject: {
globalConfig: {
"default": void 0
}
},
methods: {
useGlobalIcon: function useGlobalIcon(tdIcon) {
var iconGlobalData = (this.globalConfig || defaultGlobalConfig).icon;
var resultIcon = {};
Object.keys(tdIcon).forEach(function (key) {
resultIcon[key] = (iconGlobalData === null || iconGlobalData === void 0 ? void 0 : iconGlobalData[key]) || tdIcon[key];
});
return resultIcon;
}
}
});
}
function getKeepAnimationMixins() {
return Vue.extend({
name: "TKeepAnimation",
inject: {
globalConfig: {
"default": void 0
}
},
computed: {
keepAnimation: function keepAnimation() {
var animationConfig = mergeWith({}, defaultGlobalConfig.animation);
if (this.globalConfig && this.globalConfig.animation) {
animationConfig = mergeWith(animationConfig, this.globalConfig.animation, function (objValue, srcValue) {
if (Array.isArray(objValue)) {
return srcValue;
}
});
}
var isKeep = function isKeep(type) {
return animationConfig && !animationConfig.exclude.includes(type) && animationConfig.include.includes(type);
};
return {
ripple: isKeep("ripple"),
expand: isKeep("expand"),
fade: isKeep("fade")
};
}
}
});
}
function getClassPrefixMixins(_componentName2) {
return Vue.extend({
name: "TClassPrefixProvider",
inject: {
globalConfig: {
"default": void 0
}
},
computed: {
classPrefix: function classPrefix() {
var _this$globalConfig3;
return ((_this$globalConfig3 = this.globalConfig) === null || _this$globalConfig3 === void 0 ? void 0 : _this$globalConfig3.classPrefix) || defaultGlobalConfig.classPrefix;
},
componentName: function componentName() {
var _this$globalConfig4;
var classPrefix = ((_this$globalConfig4 = this.globalConfig) === null || _this$globalConfig4 === void 0 ? void 0 : _this$globalConfig4.classPrefix) || defaultGlobalConfig.classPrefix;
return "".concat(classPrefix, "-").concat(_componentName2);
},
commonSizeClassName: function commonSizeClassName() {
return {
small: "".concat(this.classPrefix, "-size-s"),
medium: "".concat(this.classPrefix, "-size-m"),
large: "".concat(this.classPrefix, "-size-l"),
"default": "",
xs: "".concat(this.classPrefix, "-size-xs"),
xl: "".concat(this.classPrefix, "-size-xl"),
block: "".concat(this.classPrefix, "-size-full-width")
};
},
commonStatusClassName: function commonStatusClassName() {
return {
loading: "".concat(this.classPrefix, "-is-loading"),
loadMore: "".concat(this.classPrefix, "-is-load-more"),
disabled: "".concat(this.classPrefix, "-is-disabled"),
focused: "".concat(this.classPrefix, "-is-focused"),
success: "".concat(this.classPrefix, "-is-success"),
error: "".concat(this.classPrefix, "-is-error"),
warning: "".concat(this.classPrefix, "-is-warning"),
selected: "".concat(this.classPrefix, "-is-selected"),
active: "".concat(this.classPrefix, "-is-active"),
checked: "".concat(this.classPrefix, "-is-checked"),
current: "".concat(this.classPrefix, "-is-current"),
hidden: "".concat(this.classPrefix, "-is-hidden"),
visible: "".concat(this.classPrefix, "-is-visible"),
expanded: "".concat(this.classPrefix, "-is-expanded"),
indeterminate: "".concat(this.classPrefix, "-is-indeterminate")
};
}
}
});
}
function getAttachConfigMixins(componentName) {
return Vue.extend({
name: "TAttachProvider",
inject: {
globalConfig: {
"default": void 0
}
},
methods: {
globalAttach: function globalAttach() {
var _this$globalConfig5;
var globalConfigAttach = (_this$globalConfig5 = this.globalConfig) === null || _this$globalConfig5 === void 0 ? void 0 : _this$globalConfig5.attach;
if (typeof globalConfigAttach === "string" || typeof globalConfigAttach === "function") {
return globalConfigAttach;
}
return (globalConfigAttach === null || globalConfigAttach === void 0 ? void 0 : globalConfigAttach[componentName]) || "body";
}
}
});
}
export { getConfigReceiverMixins as default, getAttachConfigMixins, getClassPrefixMixins, getGlobalIconMixins, getKeepAnimationMixins };
//# sourceMappingURL=config-receiver.js.map