UNPKG

tdesign-vue-next

Version:
127 lines (123 loc) 4.53 kB
/** * tdesign v1.20.2 * (c) 2026 tdesign * @license MIT */ import { defineComponent, ref, provide, createVNode } from 'vue'; import { _ as _defineProperty } from '../_chunks/dep-98dac781.mjs'; import { isArray, isNil } from 'lodash-es'; import { u as usePrefixClass, c as useCommonClassName, h as useChildComponentSlots, a as useTNodeJSX } from '../_chunks/dep-9ce910b6.mjs'; import props from './props.mjs'; import { descriptionsKey } from './constants/index.mjs'; import DescriptionsRow from './descriptions-row.mjs'; import { I as ItemsType, r as renderCustomNode, i as itemTypeIsProps } from '../_chunks/dep-73f6632a.mjs'; import '../_chunks/dep-f038e2b4.mjs'; import '../_chunks/dep-557b68dd.mjs'; import '../_chunks/dep-26d65784.mjs'; import '../_chunks/dep-05bddb06.mjs'; import '../_chunks/dep-57027bda.mjs'; import '../config-provider/hooks/useConfig.mjs'; import '../config-provider/utils/context.mjs'; import '../_chunks/dep-57949dcd.mjs'; import '../_chunks/dep-cafb5eac.mjs'; import '../_chunks/dep-f1da7269.mjs'; import '../_chunks/dep-ea5fbe21.mjs'; import '../_chunks/dep-192d0c88.mjs'; import '../_chunks/dep-652c99fe.mjs'; import '../_chunks/dep-5b369203.mjs'; import '../_chunks/dep-a4f55e3b.mjs'; import '../_chunks/dep-920eff5b.mjs'; var _Descriptions = defineComponent({ name: "TDescriptions", props: props, setup: function setup(props2) { var COMPONENT_NAME = usePrefixClass("descriptions"); var _useCommonClassName = useCommonClassName(), SIZE = _useCommonClassName.SIZE; var getChildByName = useChildComponentSlots(); var renderTNodeJSX = useTNodeJSX(); var itemsType = ref(ItemsType.props); var getRows = function getRows() { var column = props2.column, layout = props2.layout; var items = []; if (isArray(props2.items)) { items = props2.items.map(function (item) { return { label: renderCustomNode(item.label), content: renderCustomNode(item.content), span: item.span || 1 }; }); itemsType.value = ItemsType.props; } else { var slots = getChildByName("TDescriptionsItem"); if (slots.length !== 0) { items = slots; itemsType.value = ItemsType.slots; } } if (layout === "vertical") { return [items]; } var temp = []; var reset = column; var res = []; items.forEach(function (item, index) { var span = 1; if (itemTypeIsProps(itemsType.value, item)) { span = isNil(item.span) ? span : item.span; span = span > column ? column : span; } else { var _item$props; item.props = item.props || {}; span = isNil((_item$props = item.props) === null || _item$props === void 0 ? void 0 : _item$props.span) ? span : item.props.span; span = span > column ? column : span; item.props.span = span; } if (reset >= span) { temp.push(item); reset -= span; } else { res.push(temp); temp = [item]; reset = column - span; } if (index === items.length - 1) { if (itemTypeIsProps(itemsType.value, item)) { item.span += reset; } else { item.props.span += reset; } res.push(temp); } }); return res; }; provide(descriptionsKey, props2); var renderBody = function renderBody() { var tableClass = ["".concat(COMPONENT_NAME.value, "__body"), SIZE.value[props2.size], _defineProperty({}, "".concat(COMPONENT_NAME.value, "__body--fixed"), props2.tableLayout === "fixed"), _defineProperty({}, "".concat(COMPONENT_NAME.value, "__body--border"), props2.bordered)]; return createVNode("table", { "class": tableClass }, [createVNode("tbody", null, [getRows().map(function (row) { return createVNode(DescriptionsRow, { "item-type": itemsType.value, "row": row }, null); })])]); }; var renderHeader = function renderHeader() { var title = renderTNodeJSX("title"); return title ? createVNode("div", { "class": "".concat(COMPONENT_NAME.value, "__header") }, [title]) : ""; }; return function () { return createVNode("div", { "class": COMPONENT_NAME.value }, [renderHeader(), renderBody()]); }; } }); export { _Descriptions as default }; //# sourceMappingURL=descriptions.mjs.map