tdesign-react
Version:
TDesign Component for React
190 lines (182 loc) • 8.51 kB
JavaScript
/**
* tdesign v1.13.2
* (c) 2025 tdesign
* @license MIT
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var defineProperty = require('../../_chunks/dep-cc768e34.js');
var toConsumableArray = require('../../_chunks/dep-64a1054a.js');
var slicedToArray = require('../../_chunks/dep-e17e2d31.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-fbc19a54.js');
var isFunction = require('../../_chunks/dep-bed9d73e.js');
require('../../_chunks/dep-6d4d8660.js');
require('../../_chunks/dep-b7d577ac.js');
require('../../hooks/useConfig.js');
require('../../config-provider/ConfigContext.js');
require('../../_chunks/dep-3a869b87.js');
require('../../_chunks/dep-ac58e1cc.js');
require('dayjs');
require('../../_chunks/dep-7da96a57.js');
require('../../_chunks/dep-07b911d8.js');
require('../../_chunks/dep-4b02d669.js');
require('../../_chunks/dep-f0379c5f.js');
require('../../_chunks/dep-ddacd27a.js');
require('../../_chunks/dep-028b759d.js');
require('../../_chunks/dep-8a116183.js');
require('../../_chunks/dep-4671b9bd.js');
require('../../_chunks/dep-47bdc05f.js');
require('../../_chunks/dep-cab13149.js');
require('../../_chunks/dep-a30819a4.js');
require('../../_chunks/dep-6a7ba247.js');
require('../../_chunks/dep-780eda7b.js');
require('../../_chunks/dep-c87d9752.js');
require('../../_chunks/dep-bd956a2d.js');
require('../../_chunks/dep-0cdb3286.js');
require('../../_chunks/dep-865c186c.js');
require('../../_chunks/dep-f4e58639.js');
require('../../_chunks/dep-781a2854.js');
require('../../_chunks/dep-1ef213f8.js');
require('../../_chunks/dep-e2c832a5.js');
require('../../_util/noop.js');
require('../../_chunks/dep-4be7f839.js');
require('../../_chunks/dep-d42c60f4.js');
require('../../_chunks/dep-05b4c661.js');
require('../../_chunks/dep-62193a48.js');
require('../../_chunks/dep-f076775e.js');
require('../../_chunks/dep-3e2d2665.js');
require('../../config-provider/ConfigProvider.js');
require('../../_chunks/dep-ed886f2a.js');
require('../../_chunks/dep-aeef4e56.js');
require('../../_chunks/dep-0c1ca63f.js');
require('../../_chunks/dep-fd5d57c1.js');
require('../../_chunks/dep-ac2874ce.js');
require('../../_chunks/dep-6cfc06a0.js');
require('../../_chunks/dep-5d9d080b.js');
require('../../_chunks/dep-4bc3c0ab.js');
require('../../_chunks/dep-4ba2ac6b.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