UNPKG

tdesign-react

Version:
126 lines (122 loc) 4.47 kB
/** * tdesign v1.13.2 * (c) 2025 tdesign * @license MIT */ import { _ as _defineProperty } from '../_chunks/dep-8618a2f1.js'; import React from 'react'; import classNames from 'classnames'; import { isArray, assign } from 'lodash-es'; import { descriptionsDefaultProps, descriptionsItemDefaultProps } from './defaultProps.js'; import useDefaultProps from '../hooks/useDefaultProps.js'; import useConfig from '../hooks/useConfig.js'; import useCommonClassName from '../hooks/useCommonClassName.js'; import { DescriptionsContext } from './DescriptionsContext.js'; import DescriptionsItem from './DescriptionsItem.js'; import Row from './Row.js'; import '../_chunks/dep-c37cc2fd.js'; import '../config-provider/ConfigContext.js'; import '../_chunks/dep-698f8ddd.js'; import '../_chunks/dep-09955460.js'; import 'dayjs'; import '../_chunks/dep-118954e6.js'; import '../_chunks/dep-61f5e3d1.js'; import '../locale/LocalReceiver.js'; import '../config-provider/ConfigProvider.js'; var Descriptions = function Descriptions(DescriptionsProps) { var props = useDefaultProps(DescriptionsProps, descriptionsDefaultProps); var className = props.className, style = props.style, title = props.title, bordered = props.bordered, column = props.column, layout = props.layout, rowItems = props.items, children = props.children, tableLayout = props.tableLayout; var _useConfig = useConfig(), classPrefix = _useConfig.classPrefix; var COMPONENT_NAME = "".concat(classPrefix, "-descriptions"); var _useCommonClassName = useCommonClassName(), SIZE = _useCommonClassName.SIZE; var getRows = function getRows() { var items = []; if (isArray(rowItems)) { items = rowItems.map(function (item) { var _assign = assign({}, descriptionsItemDefaultProps, item), span = _assign.span; return { label: item.label, content: item.content, span: span }; }); } else { var childrenList = React.Children.toArray(children).filter(function (child) { var _child$type; return ((_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.displayName) === DescriptionsItem.displayName; }); if (childrenList.length !== 0) { items = childrenList.map(function (_ref) { var _child$content; var child = _ref.props; var _assign2 = assign({}, descriptionsItemDefaultProps, child), span = _assign2.span; return { label: child.label, content: (_child$content = child.content) !== null && _child$content !== void 0 ? _child$content : child.children, span: span }; }); } } if (layout === "vertical") { return [items]; } var temp = []; var reset = column; var res = []; items.forEach(function (item, index) { var span = item.span; if (reset >= span) { temp.push(item); reset -= span; } else { res.push(temp); temp = [item]; reset = column - span; } if (index === items.length - 1) { Reflect.set(item, "span", span + reset); res.push(temp); } }); return res; }; var renderHeader = function renderHeader() { return title ? /* @__PURE__ */React.createElement("div", { className: "".concat(COMPONENT_NAME, "__header") }, title) : ""; }; var renderBody = function renderBody() { var tableClass = ["".concat(COMPONENT_NAME, "__body"), SIZE[props.size], _defineProperty({}, "".concat(COMPONENT_NAME, "__body--fixed"), tableLayout === "fixed"), _defineProperty({}, "".concat(COMPONENT_NAME, "__body--border"), bordered)]; return /* @__PURE__ */React.createElement("table", { className: classNames(tableClass) }, /* @__PURE__ */React.createElement("tbody", null, getRows().map(function (row, i) { return /* @__PURE__ */React.createElement(Row, { row: row, key: i }); }))); }; return /* @__PURE__ */React.createElement(DescriptionsContext.Provider, { value: props }, /* @__PURE__ */React.createElement("div", { className: classNames(className, COMPONENT_NAME), style: style }, renderHeader(), renderBody())); }; Descriptions.displayName = "Descriptions"; Descriptions.DescriptionsItem = DescriptionsItem; export { Descriptions as default }; //# sourceMappingURL=Descriptions.js.map