tdesign-vue
Version:
141 lines (137 loc) • 4.8 kB
JavaScript
/**
* tdesign v1.14.1
* (c) 2025 tdesign
* @license MIT
*/
import _defineProperty from '@babel/runtime/helpers/defineProperty';
import { h as helper } from '../_chunks/dep-6a4dc7bb.js';
import { defineComponent, inject } from '@vue/composition-api';
import { usePrefixClass, useCommonClassName } from '../hooks/useConfig.js';
import descriptionsKey from './const/index.js';
import { itemTypeIsProps, renderVNodeTNode } from './utils/index.js';
import { useConfig } from '../config-provider/useConfig.js';
import '../config-provider/context.js';
import 'lodash-es';
import '../_common/js/global-config/default-config.js';
import '../_common/js/global-config/locale/zh_CN.js';
import '../_chunks/dep-ba613a02.js';
import '@babel/runtime/helpers/typeof';
import '../_chunks/dep-fdb1b253.js';
import 'dayjs';
import '../_common/js/global-config/t.js';
import '@babel/runtime/helpers/slicedToArray';
import './interface.js';
var DescriptionsBody = defineComponent({
name: "TDescriptionsBody",
props: {
rows: Array,
itemType: String
},
setup: function setup() {
var descriptionsProps = inject(descriptionsKey);
var COMPONENT_NAME = usePrefixClass("descriptions");
var _useCommonClassName = useCommonClassName(),
SIZE = _useCommonClassName.SIZE;
var _useConfig = useConfig("descriptions"),
global = _useConfig.global;
return {
descriptionsProps: descriptionsProps,
COMPONENT_NAME: COMPONENT_NAME,
SIZE: SIZE,
global: global
};
},
render: function render() {
var _this = this;
var h = arguments[0];
var props = this.$props;
var label = function label(node) {
var layout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "horizontal";
var labelClass = ["".concat(_this.COMPONENT_NAME, "__label")];
var label2 = null;
var span = null;
if (itemTypeIsProps(props.itemType)) {
label2 = node.label;
span = node.span;
} else {
label2 = renderVNodeTNode(node, "label");
var propsData = node.componentOptions.propsData || {};
span = propsData.span;
}
var labelSpan = layout === "horizontal" ? 1 : span;
return h("td", helper([{
"attrs": {
"colspan": labelSpan
},
"class": labelClass
}, {
style: _this.descriptionsProps.labelStyle
}]), [label2, _this.descriptionsProps.colon && _this.global.colonText]);
};
var content = function content(node) {
var layout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "horizontal";
var contentClass = ["".concat(_this.COMPONENT_NAME, "__content")];
var content2 = null;
var span = null;
if (itemTypeIsProps(props.itemType)) {
content2 = node.content;
span = node.span;
} else {
content2 = renderVNodeTNode(node, "content", "default");
var propsData = node.componentOptions.propsData || {};
span = propsData.span;
}
var contentSpan = span > 1 && layout === "horizontal" ? span * 2 - 1 : span;
return h("td", helper([{
"attrs": {
"colspan": contentSpan
},
"class": contentClass
}, {
style: _this.descriptionsProps.contentStyle
}]), [content2]);
};
var hh = function hh(row) {
return h("tr", [row.map(function (node) {
return [label(node), content(node)];
})]);
};
var hv = function hv(row) {
return [h("tr", [row.map(function (node) {
return label(node, "vertical");
})]), h("tr", [row.map(function (node) {
return content(node, "vertical");
})])];
};
var vh = function vh(row) {
return row.map(function (node) {
return h("tr", [label(node), content(node)]);
});
};
var vv = function vv(row) {
return row.map(function (node) {
return [h("tr", [label(node)]), h("tr", [content(node)])];
});
};
var renderRow = function renderRow(row) {
if (_this.descriptionsProps.layout === "horizontal") {
if (_this.descriptionsProps.itemLayout === "horizontal") {
return hh(row);
}
return hv(row);
}
if (_this.descriptionsProps.itemLayout === "horizontal") {
return vh(row);
}
return vv(row);
};
var tableClass = ["".concat(this.COMPONENT_NAME, "__body"), this.SIZE[this.descriptionsProps.size], _defineProperty({}, "".concat(this.COMPONENT_NAME, "__body--border"), this.descriptionsProps.bordered)];
return h("table", {
"class": tableClass
}, [h("tbody", [props.rows.map(function (row) {
return renderRow(row);
})])]);
}
});
export { DescriptionsBody as default };
//# sourceMappingURL=descriptions-body.js.map