UNPKG

tdesign-react

Version:
190 lines (182 loc) 8.51 kB
/** * tdesign v1.15.1 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var defineProperty = require('../../_chunks/dep-0006fcfa.js'); var toConsumableArray = require('../../_chunks/dep-e4e1901e.js'); var slicedToArray = require('../../_chunks/dep-8e4d656d.js'); var React = require('react'); var tdesignIconsReact = require('tdesign-icons-react'); var classNames = require('classnames'); var table_hooks_useClassName = require('./useClassName.js'); var hooks_useControlled = require('../../hooks/useControlled.js'); var hooks_useGlobalIcon = require('../../hooks/useGlobalIcon.js'); var locale_LocalReceiver = require('../../locale/LocalReceiver.js'); var _util_parseTNode = require('../../_util/parseTNode.js'); var get = require('../../_chunks/dep-0c8c9057.js'); var isFunction = require('../../_chunks/dep-ec8d2dca.js'); require('../../_chunks/dep-667ac7af.js'); require('../../_chunks/dep-00b49251.js'); require('../../hooks/useConfig.js'); require('../../config-provider/ConfigContext.js'); require('../../_chunks/dep-1df1dad8.js'); require('../../_chunks/dep-5b5ab11b.js'); require('dayjs'); require('../../_chunks/dep-f32c03f1.js'); require('../../_chunks/dep-31c4bc3d.js'); require('../../_chunks/dep-eea2872a.js'); require('../../_chunks/dep-25585736.js'); require('../../_chunks/dep-62e73936.js'); require('../../_chunks/dep-64577888.js'); require('../../_chunks/dep-71455db7.js'); require('../../_chunks/dep-9e5a468d.js'); require('../../_chunks/dep-f26edb7b.js'); require('../../_chunks/dep-f33c1939.js'); require('../../_chunks/dep-21ece627.js'); require('../../_chunks/dep-25e4aa84.js'); require('../../_chunks/dep-fc596d16.js'); require('../../_chunks/dep-e1fbe1c3.js'); require('../../_chunks/dep-df2b541f.js'); require('../../_chunks/dep-edd366db.js'); require('../../_chunks/dep-a56c4939.js'); require('../../_chunks/dep-6c297e20.js'); require('../../_chunks/dep-b7ad4d54.js'); require('../../_chunks/dep-a2cb9299.js'); require('../../_chunks/dep-f981815b.js'); require('../../_util/noop.js'); require('../../_chunks/dep-66114ce9.js'); require('../../_chunks/dep-62d1dd66.js'); require('../../_chunks/dep-7a148045.js'); require('../../_chunks/dep-255ceed8.js'); require('../../_chunks/dep-79629634.js'); require('../../_chunks/dep-4ed9eda4.js'); require('../../config-provider/ConfigProvider.js'); require('../../_chunks/dep-ab2f63ec.js'); require('../../_chunks/dep-a48c7e8b.js'); require('../../_chunks/dep-3d4656ee.js'); require('../../_chunks/dep-0ffc9d96.js'); require('../../_chunks/dep-efe6d243.js'); require('../../_chunks/dep-4b18243f.js'); require('../../_chunks/dep-bff2c990.js'); require('../../_chunks/dep-59671c87.js'); require('../../_chunks/dep-3398c1f2.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames); function useRowExpand(props) { var _props$columns; var expandIcon = props.expandIcon, expandedRow = props.expandedRow; var _useGlobalIcon = hooks_useGlobalIcon["default"]({ ChevronRightCircleIcon: tdesignIconsReact.ChevronRightCircleIcon }), ChevronRightCircleIcon = _useGlobalIcon.ChevronRightCircleIcon; var _useLocaleReceiver = locale_LocalReceiver.useLocaleReceiver("table"), _useLocaleReceiver2 = slicedToArray._slicedToArray(_useLocaleReceiver, 1), locale = _useLocaleReceiver2[0]; var _useClassName = table_hooks_useClassName["default"](), tableExpandClasses = _useClassName.tableExpandClasses, positiveRotate90 = _useClassName.positiveRotate90, tableFullRowClasses = _useClassName.tableFullRowClasses; var _useControlled = hooks_useControlled["default"](props, "expandedRowKeys", props.onExpandChange, { defaultExpandedRowKeys: props.defaultExpandedRowKeys || [] }), _useControlled2 = slicedToArray._slicedToArray(_useControlled, 2), tExpandedRowKeys = _useControlled2[0], setTExpandedRowKeys = _useControlled2[1]; var showExpandedRow = Boolean(expandedRow); var getExpandedRowClass = React.useCallback(function (params) { if (!showExpandedRow) return null; var row = params.row, rowKey = params.rowKey; var currentRowKey = get.get(row, rowKey || "id"); return tableExpandClasses[tExpandedRowKeys !== null && tExpandedRowKeys !== void 0 && tExpandedRowKeys.includes(currentRowKey) ? "rowExpanded" : "rowFolded"]; }, [tExpandedRowKeys, tableExpandClasses, showExpandedRow]); var showExpandIconColumn = props.expandIcon !== false && showExpandedRow; var isFirstColumnFixed = ((_props$columns = props.columns) === null || _props$columns === void 0 || (_props$columns = _props$columns[0]) === null || _props$columns === void 0 ? void 0 : _props$columns.fixed) === "left"; var onToggleExpand = function onToggleExpand(e, row) { props.expandOnRowClick && e.stopPropagation(); var currentId = get.get(row, props.rowKey || "id"); var index = tExpandedRowKeys.indexOf(currentId); var newKeys = toConsumableArray._toConsumableArray(tExpandedRowKeys); index !== -1 ? newKeys.splice(index, 1) : newKeys.push(currentId); setTExpandedRowKeys(newKeys, { expandedRowData: props.data.filter(function (t) { return newKeys.includes(get.get(t, props.rowKey || "id")); }), currentRowData: row }); }; var renderExpandIcon = function renderExpandIcon(p, expandIcon2) { var row = p.row, rowIndex = p.rowIndex; var currentId = get.get(row, props.rowKey || "id"); var expanded = tExpandedRowKeys.includes(currentId); var defaultIcon = locale.expandIcon || /* @__PURE__ */React__default["default"].createElement(ChevronRightCircleIcon, null); var icon = defaultIcon; if (expandIcon2 === false || expandIcon2 === null) { icon = null; } else if (isFunction.isFunction(expandIcon2)) { icon = expandIcon2({ row: row, index: rowIndex }); } var classes = [tableExpandClasses.iconBox, tableExpandClasses[expanded ? "expanded" : "collapsed"], defineProperty._defineProperty({}, positiveRotate90, expanded)]; return /* @__PURE__ */React__default["default"].createElement("span", { className: classNames__default["default"](classes), onClick: function onClick(e) { return onToggleExpand(e, row); } }, icon); }; var getExpandColumn = function getExpandColumn() { var expandCol = { colKey: "__EXPAND_ROW_ICON_COLUMN__", width: 46, className: tableExpandClasses.iconCell, fixed: isFirstColumnFixed ? "left" : void 0, cell: function cell(p) { return renderExpandIcon(p, expandIcon); }, stopPropagation: true }; return expandCol; }; var renderExpandedRow = function renderExpandedRow(p) { var rowId = get.get(p.row, props.rowKey || "id"); if (!tExpandedRowKeys || !tExpandedRowKeys.includes(rowId)) return null; var isFixedLeft = p.isWidthOverflow && props.columns.find(function (item) { return item.fixed === "left"; }); return /* @__PURE__ */React__default["default"].createElement("tr", { key: "expand_".concat(rowId), className: classNames__default["default"]([tableExpandClasses.row, defineProperty._defineProperty({}, tableFullRowClasses.base, isFixedLeft)]) }, /* @__PURE__ */React__default["default"].createElement("td", { colSpan: p.columns.length }, /* @__PURE__ */React__default["default"].createElement("div", { className: classNames__default["default"]([tableExpandClasses.rowInner, defineProperty._defineProperty({}, tableFullRowClasses.innerFullRow, isFixedLeft)]), style: isFixedLeft ? { width: "".concat(p.tableWidth, "px") } : {} }, /* @__PURE__ */React__default["default"].createElement("div", { className: tableFullRowClasses.innerFullElement }, _util_parseTNode.parseContentTNode(expandedRow, p))))); }; var onInnerExpandRowClick = function onInnerExpandRowClick(p) { onToggleExpand(p.e, p.row); }; return { showExpandedRow: showExpandedRow, showExpandIconColumn: showExpandIconColumn, getExpandColumn: getExpandColumn, renderExpandedRow: renderExpandedRow, onInnerExpandRowClick: onInnerExpandRowClick, getExpandedRowClass: getExpandedRowClass }; } exports["default"] = useRowExpand; //# sourceMappingURL=useRowExpand.js.map