UNPKG

tdesign-react

Version:
516 lines (508 loc) 22.9 kB
/** * 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 React = require('react'); var classNames = require('classnames'); var table_BaseTable = require('./BaseTable.js'); var table_hooks_useColumnController = require('./hooks/useColumnController.js'); var table_hooks_useRowExpand = require('./hooks/useRowExpand.js'); var table_hooks_useTableHeader = require('./hooks/useTableHeader.js'); var table_hooks_useRowSelect = require('./hooks/useRowSelect.js'); var table_hooks_useSorter = require('./hooks/useSorter.js'); var table_hooks_useFilter = require('./hooks/useFilter.js'); var table_hooks_useDragSort = require('./hooks/useDragSort.js'); var table_hooks_useAsyncLoading = require('./hooks/useAsyncLoading.js'); var table_hooks_useClassName = require('./hooks/useClassName.js'); var table_hooks_useStyle = require('./hooks/useStyle.js'); var table_EditableCell = require('./EditableCell.js'); var table_hooks_useEditableRow = require('./hooks/useEditableRow.js'); var table_defaultProps = require('./defaultProps.js'); var hooks_useDefaultProps = require('../hooks/useDefaultProps.js'); var get = require('../_chunks/dep-fbc19a54.js'); require('../_chunks/dep-6d4d8660.js'); require('../_chunks/dep-e17e2d31.js'); require('../_chunks/dep-b7d577ac.js'); require('../_chunks/dep-b8d4cf07.js'); require('../_chunks/dep-64a1054a.js'); require('../_chunks/dep-422caf30.js'); require('../_chunks/dep-f0379c5f.js'); require('../_chunks/dep-ddacd27a.js'); require('../_chunks/dep-4bc3c0ab.js'); require('./TBody.js'); require('./TR.js'); require('./utils.js'); require('../_chunks/dep-bed9d73e.js'); require('../_chunks/dep-780eda7b.js'); require('./hooks/useFixed.js'); require('../_chunks/dep-b57a7208.js'); require('../hooks/useDebounce.js'); require('../hooks/usePersistFn.js'); require('../_chunks/dep-1bcdd0a4.js'); require('../_chunks/dep-c915e145.js'); require('../_chunks/dep-f076775e.js'); require('../hooks/usePrevious.js'); require('../_util/listener.js'); require('../_chunks/dep-3f65dfe7.js'); require('../_chunks/dep-3e2d2665.js'); require('../_chunks/dep-028b759d.js'); require('../_chunks/dep-7d3b12a4.js'); require('../_chunks/dep-ac2874ce.js'); require('../_chunks/dep-f4e58639.js'); require('../_chunks/dep-781a2854.js'); require('../_chunks/dep-0cdb3286.js'); require('../_chunks/dep-6a7ba247.js'); require('../_chunks/dep-4671b9bd.js'); require('../_chunks/dep-b145cb36.js'); require('../_chunks/dep-94d97586.js'); require('../_chunks/dep-a30819a4.js'); require('../_chunks/dep-c87d9752.js'); require('../_chunks/dep-71c315ae.js'); require('../_chunks/dep-62193a48.js'); require('../_chunks/dep-47bdc05f.js'); require('../_chunks/dep-ba1bf618.js'); require('../_chunks/dep-fd5d57c1.js'); require('../_chunks/dep-4b02d669.js'); require('../_chunks/dep-5d9d080b.js'); require('../_chunks/dep-73c822e3.js'); require('../_chunks/dep-b12bf98d.js'); require('../_chunks/dep-e6a14ce7.js'); require('../_chunks/dep-08fa4947.js'); require('../_chunks/dep-4ba2ac6b.js'); require('../_chunks/dep-2df3735a.js'); require('../_chunks/dep-bd956a2d.js'); require('../_chunks/dep-cab13149.js'); require('../_chunks/dep-aaaf9309.js'); require('../_chunks/dep-ef231277.js'); require('./hooks/useLazyLoad.js'); require('../_chunks/dep-02c6f7b0.js'); require('./hooks/useRowspanAndColspan.js'); require('./Cell.js'); require('./Ellipsis.js'); require('../_util/scroll.js'); require('raf'); require('../_util/easing.js'); require('../tooltip/index.js'); require('../tooltip/Tooltip.js'); require('../_chunks/dep-810b3643.js'); require('../popup/index.js'); require('../popup/Popup.js'); require('react-transition-group'); require('../_util/ref.js'); require('react-is'); require('../_util/isFragment.js'); require('../common/Portal.js'); require('react-dom'); 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-8a116183.js'); require('../_chunks/dep-865c186c.js'); require('../_chunks/dep-1ef213f8.js'); require('../_chunks/dep-e2c832a5.js'); require('../hooks/useLayoutEffect.js'); require('../hooks/useAnimation.js'); require('../hooks/useAttach.js'); require('../hooks/useControlled.js'); require('../_util/noop.js'); require('../_chunks/dep-4be7f839.js'); require('../_chunks/dep-d42c60f4.js'); require('../_chunks/dep-05b4c661.js'); require('../hooks/useMutationObserver.js'); require('../hooks/useLatest.js'); require('../_chunks/dep-d6e82200.js'); require('../_chunks/dep-0c1ca63f.js'); require('../_chunks/dep-6cfc06a0.js'); require('../hooks/usePopper.js'); require('@popperjs/core'); require('react-fast-compare'); require('../hooks/useWindowSize.js'); require('../popup/defaultProps.js'); require('../popup/hooks/useTrigger.js'); require('../_util/composeRefs.js'); require('../popup/utils/transition.js'); require('../popup/PopupPlugin.js'); require('../_chunks/dep-a93b6608.js'); require('../_util/react-render.js'); require('../common/PluginContainer.js'); require('../config-provider/ConfigProvider.js'); require('../_chunks/dep-ed886f2a.js'); require('../_chunks/dep-aeef4e56.js'); require('../tooltip/defaultProps.js'); require('../tooltip/TooltipLite.js'); require('../hooks/useSwitch.js'); require('../_chunks/dep-f7574d05.js'); require('../locale/LocalReceiver.js'); require('../_chunks/dep-a70197cb.js'); require('../affix/index.js'); require('../affix/Affix.js'); require('../affix/defaultProps.js'); require('./THead.js'); require('./TFoot.js'); require('./hooks/useColumnResize.js'); require('../hooks/useElementLazyRender.js'); require('./hooks/useAffix.js'); require('./hooks/usePagination.js'); require('../pagination/index.js'); require('../pagination/Pagination.js'); require('../select/index.js'); require('../select/base/Select.js'); require('../_util/helper.js'); require('../_util/forwardRefWithStatics.js'); require('hoist-non-react-statics'); require('../_chunks/dep-c148acab.js'); require('../select/base/OptionGroup.js'); require('../select/defaultProps.js'); require('../select/base/Option.js'); require('../hooks/useDomRefCallback.js'); require('../hooks/useRipple.js'); require('../_chunks/dep-58719304.js'); require('../common/FakeArrow.js'); require('../loading/index.js'); require('../loading/Loading.js'); require('../loading/gradient.js'); require('../loading/defaultProps.js'); require('../loading/plugin.js'); require('../select-input/index.js'); require('../select-input/SelectInput.js'); require('../select-input/useSingle.js'); require('../input/index.js'); require('../input/Input.js'); require('tdesign-icons-react'); require('../hooks/useGlobalIcon.js'); require('../input/InputGroup.js'); require('../input/defaultProps.js'); require('../_util/parseTNode.js'); require('../input/useLengthLimit.js'); require('../select-input/useMultiple.js'); require('../tag-input/index.js'); require('../tag-input/TagInput.js'); require('../hooks/useDragSorter.js'); require('../hooks/useEventCallback.js'); require('../tag-input/useTagScroll.js'); require('../tag-input/useTagList.js'); require('../tag/index.js'); require('../tag/Tag.js'); require('../_chunks/dep-7bc521fe.js'); require('../tag/defaultProps.js'); require('../tag/CheckTag.js'); require('../_chunks/dep-d33a1510.js'); require('../tag/CheckTagGroup.js'); require('../tag-input/useHover.js'); require('../tag-input/defaultProps.js'); require('../select-input/useOverlayInnerStyle.js'); require('../select-input/defaultProps.js'); require('../select/base/PopupContent.js'); require('../select/hooks/usePanelVirtualScroll.js'); require('../hooks/useVirtualScroll.js'); require('../hooks/useResizeObserver.js'); require('../input-number/index.js'); require('../input-number/InputNumber.js'); require('../button/index.js'); require('../button/Button.js'); require('../button/defaultProps.js'); require('../input-number/useInputNumber.js'); require('../_chunks/dep-0a15e4d8.js'); require('../_chunks/dep-f400737d.js'); require('../hooks/useCommonClassName.js'); require('../input-number/defaultProps.js'); require('../input-adornment/InputAdornment.js'); require('../pagination/hooks/useBoundaryJumper.js'); require('../pagination/hooks/usePrevNextJumper.js'); require('../pagination/hooks/usePageNumber.js'); require('../pagination/hooks/useTotal.js'); require('../pagination/validators.js'); require('../pagination/defaultProps.js'); require('../_chunks/dep-ab823a9f.js'); require('../_chunks/dep-1843e637.js'); require('../pagination/PaginationMini.js'); require('./hooks/useMultiHeader.js'); require('../checkbox/index.js'); require('../_chunks/dep-3d505dbd.js'); require('../common/Check.js'); require('../_chunks/dep-476c1fcc.js'); require('../checkbox/defaultProps.js'); require('../dialog/plugin.js'); require('../dialog/Dialog.js'); require('../hooks/useSetState.js'); require('../dialog/defaultProps.js'); require('../dialog/DialogCard.js'); require('../dialog/hooks/useDialogEsc.js'); require('../dialog/hooks/useLockStyle.js'); require('../dialog/hooks/useDialogPosition.js'); require('../dialog/hooks/useDialogDrag.js'); require('../dialog/utils.js'); require('../_chunks/dep-30822ff5.js'); require('../_chunks/dep-104d248e.js'); require('../radio/index.js'); require('../_chunks/dep-58dc387c.js'); require('../radio/defaultProps.js'); require('../radio/useKeyboard.js'); require('./SorterButton.js'); require('./FilterController.js'); require('../_chunks/dep-2bf61ef1.js'); require('sortablejs'); require('../_chunks/dep-51f3a4a1.js'); require('../form/formModel.js'); require('../_chunks/dep-ad833f1c.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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var PrimaryTable = /*#__PURE__*/React.forwardRef(function (originalProps, ref) { var props = hooks_useDefaultProps["default"](originalProps, table_defaultProps.primaryTableDefaultProps); var columns = props.columns, columnController = props.columnController, editableRowKeys = props.editableRowKeys, style = props.style, className = props.className; var primaryTableRef = React.useRef(null); var innerPagination = React.useRef(props.pagination); var _useClassName = table_hooks_useClassName["default"](), classPrefix = _useClassName.classPrefix, tableDraggableClasses = _useClassName.tableDraggableClasses, tableBaseClass = _useClassName.tableBaseClass, tableSelectedClasses = _useClassName.tableSelectedClasses, tableSortClasses = _useClassName.tableSortClasses; var _useStyle = table_hooks_useStyle["default"](props), sizeClassNames = _useStyle.sizeClassNames; var _useColumnController = table_hooks_useColumnController["default"](props, { onColumnReduce: onColumnReduce }), tDisplayColumns = _useColumnController.tDisplayColumns, renderColumnController = _useColumnController.renderColumnController; var _useRowExpand = table_hooks_useRowExpand["default"](props), showExpandedRow = _useRowExpand.showExpandedRow, showExpandIconColumn = _useRowExpand.showExpandIconColumn, getExpandColumn = _useRowExpand.getExpandColumn, renderExpandedRow = _useRowExpand.renderExpandedRow, onInnerExpandRowClick = _useRowExpand.onInnerExpandRowClick, getExpandedRowClass = _useRowExpand.getExpandedRowClass; var _useSorter = table_hooks_useSorter["default"](props), renderSortIcon = _useSorter.renderSortIcon; var _useRowSelect = table_hooks_useRowSelect["default"](props, tableSelectedClasses), selectedRowClassNames = _useRowSelect.selectedRowClassNames, setCurrentPaginateData = _useRowSelect.setCurrentPaginateData, formatToRowSelectColumn = _useRowSelect.formatToRowSelectColumn, setTSelectedRowKeys = _useRowSelect.setTSelectedRowKeys, onInnerSelectRowClick = _useRowSelect.onInnerSelectRowClick; var _useFilter = table_hooks_useFilter["default"](props, primaryTableRef), hasEmptyCondition = _useFilter.hasEmptyCondition, isTableOverflowHidden = _useFilter.isTableOverflowHidden, renderFilterIcon = _useFilter.renderFilterIcon, renderFirstFilterRow = _useFilter.renderFirstFilterRow; var _useDragSort = table_hooks_useDragSort["default"](props, { primaryTableRef: primaryTableRef, innerPagination: innerPagination }), isRowHandlerDraggable = _useDragSort.isRowHandlerDraggable, isRowDraggable = _useDragSort.isRowDraggable, isColDraggable = _useDragSort.isColDraggable, setDragSortColumns = _useDragSort.setDragSortColumns; var _useTableHeader = table_hooks_useTableHeader["default"]({ columns: props.columns }), renderTitleWidthIcon = _useTableHeader.renderTitleWidthIcon; var _useAsyncLoading = table_hooks_useAsyncLoading["default"](props), renderAsyncLoading = _useAsyncLoading.renderAsyncLoading; var primaryTableClasses = defineProperty._defineProperty(defineProperty._defineProperty(defineProperty._defineProperty(defineProperty._defineProperty(defineProperty._defineProperty({}, tableDraggableClasses.colDraggable, isColDraggable), tableDraggableClasses.rowHandlerDraggable, isRowHandlerDraggable), tableDraggableClasses.rowDraggable, isRowDraggable), tableBaseClass.overflowVisible, isTableOverflowHidden === false), tableBaseClass.tableRowEdit, editableRowKeys); var _useEditableRow = table_hooks_useEditableRow.useEditableRow(props), errorListMap = _useEditableRow.errorListMap, editableKeysMap = _useEditableRow.editableKeysMap, validateRowData = _useEditableRow.validateRowData, validateTableData = _useEditableRow.validateTableData, onRuleChange = _useEditableRow.onRuleChange, clearValidateData = _useEditableRow.clearValidateData; var tRowClassNames = function () { var tClassNames = [props.rowClassName, selectedRowClassNames, getExpandedRowClass]; return tClassNames.filter(function (v) { return v; }); }(); var tRowAttributes = function () { var tAttributes = [props.rowAttributes]; if (isRowHandlerDraggable || isRowDraggable) { tAttributes.push(function (_ref) { var row = _ref.row; return { "data-id": get.get(row, props.rowKey || "id") }; }); } return tAttributes.filter(function (v) { return v; }); }(); React.useImperativeHandle(ref, function () { return _objectSpread({ validateRowData: validateRowData, validateTableData: validateTableData, clearValidateData: clearValidateData }, primaryTableRef.current); }); function onColumnReduce(reduceKeys) { if (props.resizable) { primaryTableRef.current.updateTableWidthOnColumnChange(reduceKeys); } } var _getColumns = function getColumns(columns2) { var arr = []; var _loop = function _loop() { var _item$children, _item$edit, _item$children2, _item$children3; var item = _objectSpread({}, columns2[i]); var isDisplayColumn = ((_item$children = item.children) === null || _item$children === void 0 ? void 0 : _item$children.length) || (tDisplayColumns === null || tDisplayColumns === void 0 ? void 0 : tDisplayColumns.includes(item.colKey)); if (!isDisplayColumn && props.columnController && tDisplayColumns) return 1; // continue item = formatToRowSelectColumn(item); var sort = props.sort; if (item.sorter && props.showSortColumnBgColor) { var sorts = sort instanceof Array ? sort : [sort]; var sortedColumn = sorts.find(function (sort2) { return sort2 && sort2.sortBy === item.colKey && sort2.descending !== void 0; }); if (sortedColumn) { item.className = item.className instanceof Array ? item.className.concat(tableSortClasses.sortColumn) : [item.className, tableSortClasses.sortColumn]; } } if (item.sorter || item.filter) { var titleContent = table_hooks_useTableHeader.renderTitle(item, i); var _item = item, ellipsisTitle = _item.ellipsisTitle; item.title = function (p) { var _primaryTableRef$curr; var sortIcon = item.sorter ? renderSortIcon(p) : null; var filterIcon = item.filter ? renderFilterIcon(p) : null; var attach = (_primaryTableRef$curr = primaryTableRef.current) === null || _primaryTableRef$curr === void 0 ? void 0 : _primaryTableRef$curr.tableContentRef; return renderTitleWidthIcon([titleContent, sortIcon, filterIcon], p.col, p.colIndex, ellipsisTitle, attach, { classPrefix: classPrefix, ellipsisOverlayClassName: props.size !== "medium" ? sizeClassNames[props.size] : "" }); }; item.ellipsisTitle = false; } if ((_item$edit = item.edit) !== null && _item$edit !== void 0 && _item$edit.component) { var oldCell = item.cell; item.cell = function (p) { var cellProps = _objectSpread(_objectSpread({}, p), {}, { oldCell: oldCell, tableBaseClass: tableBaseClass, cellEmptyContent: props.cellEmptyContent, onChange: props.onRowEdit, onValidate: props.onRowValidate, onRuleChange: onRuleChange }); if (props.editableRowKeys) { var rowValue = get.get(p.row, props.rowKey || "id"); cellProps.editable = editableKeysMap[rowValue] || false; var key = [rowValue, p.col.colKey].join("__"); var errorList = errorListMap[key]; errorList && (cellProps.errors = errorList); } if (props.editableCellState) { cellProps.readonly = !props.editableCellState(p); } return /* @__PURE__ */React__default["default"].createElement(table_EditableCell["default"], _objectSpread({}, cellProps)); }; } if ((_item$children2 = item.children) !== null && _item$children2 !== void 0 && _item$children2.length) { item.children = _getColumns(item.children); } if (!item.children || (_item$children3 = item.children) !== null && _item$children3 !== void 0 && _item$children3.length) { arr.push(item); } }; for (var i = 0, len = columns2.length; i < len; i++) { if (_loop()) continue; } return arr; }; var tColumns = function () { var cols = _getColumns(columns); if (showExpandIconColumn) { cols.unshift(getExpandColumn()); } return cols; }(); var onInnerPageChange = function onInnerPageChange(pageInfo, newData) { var _props$onPageChange, _props$onChange; innerPagination.current = _objectSpread(_objectSpread({}, innerPagination), pageInfo); setCurrentPaginateData(newData); (_props$onPageChange = props.onPageChange) === null || _props$onPageChange === void 0 || _props$onPageChange.call(props, pageInfo, newData); var changeParams = [{ pagination: pageInfo }, { trigger: "pagination", currentData: newData }]; (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call.apply(_props$onChange, [props].concat(changeParams)); if (!props.reserveSelectedRowOnPaginate) { setTSelectedRowKeys([], { selectedRowData: [], type: "uncheck", currentRowKey: "CLEAR_ON_PAGINATE" }); } }; var onInnerRowClick = function onInnerRowClick(params) { if (props.expandOnRowClick) { onInnerExpandRowClick(params); } if (props.selectOnRowClick) { onInnerSelectRowClick(params); } }; function formatNode(api, renderInnerNode, condition, extra) { if (!condition) return props[api]; var innerNode = renderInnerNode(); var propsNode = props[api]; if (innerNode && !propsNode) return innerNode; if (propsNode && !innerNode) return propsNode; if (innerNode && propsNode) { return extra !== null && extra !== void 0 && extra.reverse ? /* @__PURE__ */React__default["default"].createElement("div", null, innerNode, propsNode) : /* @__PURE__ */React__default["default"].createElement("div", null, propsNode, innerNode); } return null; } var isColumnController = !!(columnController && Object.keys(columnController).length); var placement = isColumnController ? columnController.placement || "top-right" : ""; var isBottomController = isColumnController && (placement === null || placement === void 0 ? void 0 : placement.indexOf("bottom")) !== -1; var topContent = formatNode("topContent", renderColumnController, isColumnController && !isBottomController); var bottomContent = formatNode("bottomContent", renderColumnController, isBottomController, { reverse: true }); var firstFullRow = formatNode("firstFullRow", renderFirstFilterRow, !hasEmptyCondition); var lastFullRow = formatNode("lastFullRow", renderAsyncLoading, !!props.asyncLoading); var baseTableProps = _objectSpread(_objectSpread({}, props), {}, { rowClassName: tRowClassNames, rowAttributes: tRowAttributes, columns: tColumns, topContent: topContent, bottomContent: bottomContent, firstFullRow: firstFullRow, lastFullRow: lastFullRow, thDraggable: props.dragSort === "col", onPageChange: onInnerPageChange, renderExpandedRow: showExpandedRow ? renderExpandedRow : void 0 }); if (props.expandOnRowClick || props.selectOnRowClick) { baseTableProps.onRowClick = onInnerRowClick; } return /* @__PURE__ */React__default["default"].createElement(table_BaseTable["default"], _objectSpread(_objectSpread({ ref: primaryTableRef }, baseTableProps), {}, { className: classNames__default["default"](primaryTableClasses, className), style: style, onLeafColumnsChange: setDragSortColumns })); }); PrimaryTable.displayName = "PrimaryTable"; exports.BASE_TABLE_ALL_EVENTS = table_BaseTable.BASE_TABLE_ALL_EVENTS; exports["default"] = PrimaryTable; //# sourceMappingURL=PrimaryTable.js.map