tdesign-react
Version:
TDesign Component for React
333 lines (329 loc) • 12.8 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
import { _ as _defineProperty } from '../_chunks/dep-cb0a3966.js';
import { _ as _objectWithoutProperties } from '../_chunks/dep-6b660ef0.js';
import React, { forwardRef, useRef, useImperativeHandle } from 'react';
import { get } from 'lodash-es';
import PrimaryTable from './PrimaryTable.js';
import useTreeData from './hooks/useTreeData.js';
import useTreeSelect from './hooks/useTreeSelect.js';
import useConfig from '../hooks/useConfig.js';
import '../_chunks/dep-eca3a3de.js';
import 'classnames';
import './BaseTable.js';
import '../_chunks/dep-48805ab8.js';
import '../_chunks/dep-026a4c6b.js';
import '../_chunks/dep-f53c91cd.js';
import '../_chunks/dep-b908e1fe.js';
import '../_chunks/dep-1630b9b4.js';
import '../_chunks/dep-87d110df.js';
import '../affix/index.js';
import '../affix/Affix.js';
import '../affix/defaultProps.js';
import '../hooks/useDefaultProps.js';
import '../_util/scroll.js';
import 'raf';
import '../_chunks/dep-3a09424a.js';
import '../_util/easing.js';
import '../affix/style/css.js';
import '../affix/type.js';
import '../config-provider/ConfigContext.js';
import '../locale/zh_CN.js';
import '../_chunks/dep-e29214cb.js';
import 'dayjs';
import '../_chunks/dep-3c9ab31a.js';
import '../hooks/useElementLazyRender.js';
import '../_chunks/dep-4450afc0.js';
import '../hooks/useVirtualScroll.js';
import '../loading/index.js';
import '../loading/Loading.js';
import '../common/Portal.js';
import 'react-dom';
import '../hooks/useLayoutEffect.js';
import '../loading/gradient.js';
import '../_chunks/dep-c48e2ca1.js';
import '../hooks/useDomRefCallback.js';
import '../loading/defaultProps.js';
import '../loading/plugin.js';
import '../_util/react-render.js';
import '../_chunks/dep-a74cc5e4.js';
import '../common/PluginContainer.js';
import '../config-provider/index.js';
import '../config-provider/ConfigProvider.js';
import '../config-provider/type.js';
import '../loading/style/css.js';
import '../loading/type.js';
import './TBody.js';
import './TR.js';
import './utils.js';
import './hooks/useFixed.js';
import '../_chunks/dep-a3bde62f.js';
import '../hooks/useDebounce.js';
import '../hooks/usePersistFn.js';
import '../hooks/usePrevious.js';
import '../_util/listener.js';
import './hooks/useClassName.js';
import './hooks/useLazyLoad.js';
import './hooks/useRowspanAndColspan.js';
import './Cell.js';
import './Ellipsis.js';
import '../tooltip/index.js';
import '../tooltip/Tooltip.js';
import '../popup/index.js';
import '../popup/Popup.js';
import 'react-transition-group';
import '../_util/ref.js';
import 'react-is';
import '../_util/isFragment.js';
import '../hooks/useAnimation.js';
import '../hooks/useAttach.js';
import '../hooks/useControlled.js';
import '../_util/noop.js';
import '../hooks/useMutationObserver.js';
import '../hooks/useLatest.js';
import '../hooks/usePopper.js';
import '@popperjs/core';
import 'react-fast-compare';
import '../hooks/useWindowSize.js';
import '../popup/defaultProps.js';
import '../popup/hooks/useTrigger.js';
import '../_util/composeRefs.js';
import '../popup/utils/transition.js';
import '../popup/PopupPlugin.js';
import '../popup/style/css.js';
import '../popup/type.js';
import '../tooltip/defaultProps.js';
import '../tooltip/TooltipLite.js';
import '../hooks/useSwitch.js';
import '../tooltip/style/css.js';
import '../tooltip/type.js';
import '../locale/LocalReceiver.js';
import './TFoot.js';
import './THead.js';
import './hooks/useTableHeader.js';
import './hooks/useMultiHeader.js';
import './defaultProps.js';
import './hooks/useAffix.js';
import './hooks/useColumnResize.js';
import './hooks/usePagination.js';
import '../pagination/index.js';
import '../pagination/Pagination.js';
import '../select/index.js';
import '../select/base/Select.js';
import '../_util/forwardRefWithStatics.js';
import 'hoist-non-react-statics';
import '../_util/helper.js';
import '../_util/parseTNode.js';
import '../common/FakeArrow.js';
import '../select-input/index.js';
import '../select-input/SelectInput.js';
import '../select-input/useSingle.js';
import '../input/index.js';
import '../input/Input.js';
import 'tdesign-icons-react';
import '../hooks/useGlobalIcon.js';
import '../input/InputGroup.js';
import '../input/defaultProps.js';
import '../input/useLengthLimit.js';
import '../input/style/css.js';
import '../input/type.js';
import '../select-input/useMultiple.js';
import '../tag-input/index.js';
import '../tag-input/TagInput.js';
import '../hooks/useDragSorter.js';
import '../hooks/useEventCallback.js';
import '../tag-input/defaultProps.js';
import '../tag-input/useHover.js';
import '../tag-input/useTagList.js';
import '../tag/index.js';
import '../tag/Tag.js';
import '../_chunks/dep-3c3d29db.js';
import '../tag/defaultProps.js';
import '../tag/CheckTag.js';
import '../_chunks/dep-55732ade.js';
import '../tag/CheckTagGroup.js';
import '../tag/style/css.js';
import '../tag/type.js';
import '../tag-input/useTagScroll.js';
import '../tag-input/style/css.js';
import '../tag-input/type.js';
import '../select-input/useOverlayInnerStyle.js';
import '../select-input/defaultProps.js';
import '../select-input/style/css.js';
import '../select-input/type.js';
import '../select/defaultProps.js';
import '../_chunks/dep-c7ed701c.js';
import '../select/base/OptionGroup.js';
import '../select/base/Option.js';
import '../hooks/useRipple.js';
import '../select/base/PopupContent.js';
import '../select/hooks/usePanelVirtualScroll.js';
import '../select/style/css.js';
import '../select/type.js';
import '../input-number/index.js';
import '../input-number/InputNumber.js';
import '../button/index.js';
import '../button/Button.js';
import '../button/defaultProps.js';
import '../button/style/css.js';
import '../button/type.js';
import '../input-number/useInputNumber.js';
import '../_chunks/dep-46c9e4f5.js';
import '../hooks/useCommonClassName.js';
import '../input-number/defaultProps.js';
import '../input-number/style/css.js';
import '../input-number/type.js';
import '../input-adornment/index.js';
import '../input-adornment/InputAdornment.js';
import '../input-adornment/style/css.js';
import '../input-adornment/type.js';
import '../pagination/hooks/useBoundaryJumper.js';
import '../pagination/hooks/usePrevNextJumper.js';
import '../pagination/hooks/usePageNumber.js';
import '../pagination/hooks/useTotal.js';
import '../pagination/validators.js';
import '../pagination/defaultProps.js';
import '../pagination/PaginationMini.js';
import '../pagination/style/css.js';
import '../pagination/type.js';
import './hooks/useStyle.js';
import './hooks/useColumnController.js';
import '../checkbox/index.js';
import '../_chunks/dep-0030a252.js';
import '../common/Check.js';
import '../checkbox/defaultProps.js';
import '../checkbox/style/css.js';
import '../checkbox/type.js';
import '../dialog/plugin.js';
import '../dialog/Dialog.js';
import '../hooks/useDeepEffect.js';
import '../hooks/useSetState.js';
import '../dialog/defaultProps.js';
import '../dialog/DialogCard.js';
import '../dialog/hooks/useDialogDrag.js';
import '../hooks/useMouseEvent.js';
import '../dialog/hooks/useDialogEsc.js';
import '../dialog/hooks/useDialogPosition.js';
import '../dialog/hooks/useLockStyle.js';
import '../dialog/utils.js';
import './hooks/useRowExpand.js';
import './hooks/useRowSelect.js';
import '../_chunks/dep-d1ed7cad.js';
import '../radio/index.js';
import '../_chunks/dep-b9f731c7.js';
import '../radio/defaultProps.js';
import '../radio/useKeyboard.js';
import '../radio/style/css.js';
import '../radio/type.js';
import './hooks/useSorter.js';
import './SorterButton.js';
import './hooks/useFilter.js';
import './FilterController.js';
import './hooks/useDragSort.js';
import 'sortablejs';
import './hooks/useAsyncLoading.js';
import './EditableCell.js';
import '../_chunks/dep-91b20286.js';
import '../form/formModel.js';
import './hooks/useEditableRow.js';
import '../_chunks/dep-6d4b61ed.js';
import '../_chunks/dep-83726008.js';
var _excluded = ["store", "dataSource", "formatTreeColumn", "swapData", "onExpandFoldIconClick"];
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(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 EnhancedTable = /*#__PURE__*/forwardRef(function (props, ref) {
var _props$tree2;
var tree = props.tree,
columns = props.columns,
style = props.style,
className = props.className;
var _useConfig = useConfig(),
classPrefix = _useConfig.classPrefix;
var primaryTableRef = useRef(null);
var _useTreeData = useTreeData(props),
store = _useTreeData.store,
dataSource = _useTreeData.dataSource,
formatTreeColumn = _useTreeData.formatTreeColumn,
swapData = _useTreeData.swapData,
onExpandFoldIconClick = _useTreeData.onExpandFoldIconClick,
treeInstanceFunctions = _objectWithoutProperties(_useTreeData, _excluded);
var treeDataMap = store === null || store === void 0 ? void 0 : store.treeDataMap;
var _useTreeSelect = useTreeSelect(props, treeDataMap),
tIndeterminateSelectedRowKeys = _useTreeSelect.tIndeterminateSelectedRowKeys,
onInnerSelectChange = _useTreeSelect.onInnerSelectChange;
var _getColumns = function getColumns(columns2) {
var arr = [];
for (var i = 0, len = columns2.length; i < len; i++) {
var _item$children, _item$children2;
var item = _objectSpread({}, columns2[i]);
item = formatTreeColumn(item);
if ((_item$children = item.children) !== null && _item$children !== void 0 && _item$children.length) {
item.children = _getColumns(item.children);
}
if (!item.children || (_item$children2 = item.children) !== null && _item$children2 !== void 0 && _item$children2.length) {
arr.push(item);
}
}
return arr;
};
var tColumns = function () {
var isTreeData = !tree || !Object.keys(tree).length;
return isTreeData ? columns : _getColumns(columns);
}();
var onEnhancedTableRowClick = function onEnhancedTableRowClick(p) {
var _props$tree, _props$onRowClick;
if ((_props$tree = props.tree) !== null && _props$tree !== void 0 && _props$tree.expandTreeNodeOnClick) {
onExpandFoldIconClick({
row: p.row,
rowIndex: p.index
}, "row-click");
}
(_props$onRowClick = props.onRowClick) === null || _props$onRowClick === void 0 || _props$onRowClick.call(props, p);
};
useImperativeHandle(ref, function () {
return _objectSpread(_objectSpread({
treeDataMap: treeDataMap
}, treeInstanceFunctions), primaryTableRef.current);
});
var onDragSortChange = function onDragSortChange(params) {
var _props$onDragSort;
if (props.beforeDragSort && !props.beforeDragSort(params)) return;
swapData({
data: params.data,
current: params.current,
target: params.target,
currentIndex: params.currentIndex,
targetIndex: params.targetIndex
});
(_props$onDragSort = props.onDragSort) === null || _props$onDragSort === void 0 || _props$onDragSort.call(props, params);
};
var primaryTableProps = _objectSpread(_objectSpread({}, props), {}, {
data: dataSource,
columns: tColumns,
indeterminateSelectedRowKeys: tIndeterminateSelectedRowKeys,
disableDataPage: Boolean(tree && Object.keys(tree).length),
onSelectChange: onInnerSelectChange,
onDragSort: onDragSortChange,
rowClassName: function rowClassName(_ref) {
var row = _ref.row;
var rowValue = get(row, props.rowKey || "id");
var rowState = treeDataMap.get(rowValue);
if (!rowState) return [props.rowClassName];
return ["".concat(classPrefix, "-table-tr--level-").concat(rowState.level), props.rowClassName];
},
style: style,
className: className
});
if ((_props$tree2 = props.tree) !== null && _props$tree2 !== void 0 && _props$tree2.expandTreeNodeOnClick) {
primaryTableProps.onRowClick = onEnhancedTableRowClick;
}
return /* @__PURE__ */React.createElement(PrimaryTable, _objectSpread(_objectSpread({}, primaryTableProps), {}, {
ref: primaryTableRef
}));
});
EnhancedTable.displayName = "EnhancedTable";
export { EnhancedTable as default };
//# sourceMappingURL=EnhancedTable.js.map