@arim-aisdc/public-components 2.3.49 → 2.3.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/components/TableMax/TableBody/{Row.d.ts → OriginalRow.d.ts} +2 -2
  2. package/dist/components/TableMax/TableBody/{Row.js → OriginalRow.js} +2 -2
  3. package/dist/components/TableMax/TableBody/OriginalTableBody.d.ts +76 -0
  4. package/dist/components/TableMax/TableBody/OriginalTableBody.js +509 -0
  5. package/dist/components/TableMax/TableBody/TableBody.d.ts +3 -0
  6. package/dist/components/TableMax/TableBody/TableBody.js +15 -0
  7. package/dist/components/TableMax/TableBody/VirtualRow.d.ts +63 -0
  8. package/dist/components/TableMax/TableBody/VirtualRow.js +479 -0
  9. package/dist/components/TableMax/TableBody/VirtualTableBody.d.ts +75 -0
  10. package/dist/components/TableMax/TableBody/VirtualTableBody.js +423 -0
  11. package/dist/components/TableMax/TableBody/components/Total.js +86 -27
  12. package/dist/components/TableMax/TableBody/index.d.ts +3 -75
  13. package/dist/components/TableMax/TableBody/index.js +4 -519
  14. package/dist/components/TableMax/TableBody/index.less +14 -2
  15. package/dist/components/TableMax/TableHeader/OriginalTableHeader.d.ts +21 -0
  16. package/dist/components/TableMax/TableHeader/OriginalTableHeader.js +86 -0
  17. package/dist/components/TableMax/TableHeader/TableHeader.d.ts +2 -0
  18. package/dist/components/TableMax/TableHeader/TableHeader.js +14 -0
  19. package/dist/components/TableMax/TableHeader/VirtualTableHeader/ColGroup.d.ts +11 -0
  20. package/dist/components/TableMax/TableHeader/VirtualTableHeader/ColGroup.js +33 -0
  21. package/dist/components/TableMax/TableHeader/VirtualTableHeader/PinnedColumns.d.ts +19 -0
  22. package/dist/components/TableMax/TableHeader/VirtualTableHeader/PinnedColumns.js +46 -0
  23. package/dist/components/TableMax/TableHeader/VirtualTableHeader/ScrollColumns.d.ts +18 -0
  24. package/dist/components/TableMax/TableHeader/VirtualTableHeader/ScrollColumns.js +47 -0
  25. package/dist/components/TableMax/TableHeader/VirtualTableHeader/VirtualColumns.d.ts +19 -0
  26. package/dist/components/TableMax/TableHeader/VirtualTableHeader/VirtualColumns.js +49 -0
  27. package/dist/components/TableMax/TableHeader/VirtualTableHeader/VirtualPadding.d.ts +7 -0
  28. package/dist/components/TableMax/TableHeader/VirtualTableHeader/VirtualPadding.js +16 -0
  29. package/dist/components/TableMax/TableHeader/VirtualTableHeader/index.d.ts +4 -0
  30. package/dist/components/TableMax/TableHeader/VirtualTableHeader/index.js +79 -0
  31. package/dist/components/TableMax/TableHeader/VirtualTableHeader/index.less +225 -0
  32. package/dist/components/TableMax/TableHeader/index.d.ts +3 -20
  33. package/dist/components/TableMax/TableHeader/index.js +3 -90
  34. package/dist/components/TableMax/TableHeader/utils.d.ts +1 -0
  35. package/dist/components/TableMax/TableHeader/utils.js +17 -10
  36. package/dist/components/TableMax/TableMax.js +140 -108
  37. package/dist/components/TableMax/components/ColumnEdit/index.d.ts +1 -0
  38. package/dist/components/TableMax/components/ColumnEdit/index.js +5 -1
  39. package/dist/components/TableMax/contexts/VirtualScroll/VirtualScrollContext.d.ts +3 -0
  40. package/dist/components/TableMax/contexts/VirtualScroll/VirtualScrollContext.js +2 -0
  41. package/dist/components/TableMax/contexts/VirtualScroll/VirtualScrollProvider.d.ts +3 -0
  42. package/dist/components/TableMax/contexts/VirtualScroll/VirtualScrollProvider.js +26 -0
  43. package/dist/components/TableMax/contexts/VirtualScroll/index.d.ts +3 -0
  44. package/dist/components/TableMax/contexts/VirtualScroll/index.js +4 -0
  45. package/dist/components/TableMax/contexts/VirtualScroll/types.d.ts +33 -0
  46. package/dist/components/TableMax/contexts/VirtualScroll/types.js +1 -0
  47. package/dist/components/TableMax/contexts/index.d.ts +1 -0
  48. package/dist/components/TableMax/contexts/index.js +1 -0
  49. package/dist/components/TableMax/hooks/useColumnWidth copy.js +15 -6
  50. package/dist/components/TableMax/hooks/useDragDrop.d.ts +27 -0
  51. package/dist/components/TableMax/hooks/useDragDrop.js +167 -0
  52. package/dist/components/TableMax/hooks/useTableComponents.d.ts +6 -0
  53. package/dist/components/TableMax/hooks/useTableComponents.js +19 -0
  54. package/dist/components/TableMax/hooks/useVirtualCalculations.d.ts +25 -0
  55. package/dist/components/TableMax/hooks/useVirtualCalculations.js +113 -0
  56. package/dist/components/TableMax/hooks/useVirtualScroll.d.ts +4 -0
  57. package/dist/components/TableMax/hooks/useVirtualScroll.js +30 -0
  58. package/dist/components/TableMax/tableMax.less +22 -5
  59. package/dist/components/TableMax/type.d.ts +2 -0
  60. package/package.json +2 -1
@@ -58,5 +58,5 @@ type IRowProps = {
58
58
  setRowSelection?: Function;
59
59
  openMemo?: boolean;
60
60
  };
61
- declare const Row: ({ tableBodyRef, table, tableId, row, rowSelectedId, setRowSelectedId, rowHighLightId, setRowHighLightId, selectedRowChange, onSelectChange, canSelection, selectionWithoutChecked, reorderRow, canRowDrag, rowClassName, cellClassName, rowStyle, getCellProps, editting, rowEditing, renderSubComponent, selectedRowDragging, setSelectedRowDragging, onRowMouseEnter, onRowMouseLeave, onRowMouseClick, onRowMouseDoubleClick, rowHeight, disableDragRowIds, selectRowWhenClick, handleEditRowWhenDClick, canEditRowWhenDClick, theme, dragBeforeStart, onCellContextMenu, getRowHoverTipConfig, tableTooltip, changeHoverRow, clearHoverRowIndex, hoverRowIndex, dropSide, onEditValueChange, setRowSelection, openMemo }: IRowProps) => import("react/jsx-runtime").JSX.Element;
62
- export default Row;
61
+ declare const OriginalRow: ({ tableBodyRef, table, tableId, row, rowSelectedId, setRowSelectedId, rowHighLightId, setRowHighLightId, selectedRowChange, onSelectChange, canSelection, selectionWithoutChecked, reorderRow, canRowDrag, rowClassName, cellClassName, rowStyle, getCellProps, editting, rowEditing, renderSubComponent, selectedRowDragging, setSelectedRowDragging, onRowMouseEnter, onRowMouseLeave, onRowMouseClick, onRowMouseDoubleClick, rowHeight, disableDragRowIds, selectRowWhenClick, handleEditRowWhenDClick, canEditRowWhenDClick, theme, dragBeforeStart, onCellContextMenu, getRowHoverTipConfig, tableTooltip, changeHoverRow, clearHoverRowIndex, hoverRowIndex, dropSide, onEditValueChange, setRowSelection, openMemo }: IRowProps) => import("react/jsx-runtime").JSX.Element;
62
+ export { OriginalRow };
@@ -30,7 +30,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
30
30
  import { Fragment as _Fragment } from "react/jsx-runtime";
31
31
  import { jsxs as _jsxs } from "react/jsx-runtime";
32
32
  var initselectedIndex;
33
- var Row = function Row(_ref) {
33
+ var OriginalRow = function OriginalRow(_ref) {
34
34
  var _tableBodyRef$current, _tableBodyRef$current2;
35
35
  var tableBodyRef = _ref.tableBodyRef,
36
36
  table = _ref.table,
@@ -521,5 +521,5 @@ function isDateColumn(column) {
521
521
  var _column$meta;
522
522
  return (column === null || column === void 0 || (_column$meta = column.meta) === null || _column$meta === void 0 ? void 0 : _column$meta.isDate) || false;
523
523
  }
524
- export default Row;
524
+ export { OriginalRow };
525
525
  // export default React.memo(Row);
@@ -0,0 +1,76 @@
1
+ import { Table } from '@tanstack/react-table';
2
+ import { IMenuOptionsType, OnSelectChangeType } from "../type";
3
+ import { Dispatch, MutableRefObject, ReactNode, SetStateAction } from 'react';
4
+ import './index.less';
5
+ export type TableBodyPropsType = {
6
+ tableBodyRef: MutableRefObject<HTMLDivElement> | null;
7
+ tableContentRef: MutableRefObject<HTMLDivElement> | null;
8
+ table: Table<any>;
9
+ tableId: string;
10
+ theme: string;
11
+ reorderRow: any;
12
+ rowSelectedId: string;
13
+ setRowSelectedId: Dispatch<SetStateAction<string | undefined>>;
14
+ selectedRowChange: (row: any) => void;
15
+ onSelectChange: OnSelectChangeType;
16
+ canFilter: boolean;
17
+ canSelection: boolean;
18
+ selectionWithoutChecked?: boolean;
19
+ tableContainerWidth: number;
20
+ selectedRowDragging: boolean;
21
+ setSelectedRowDragging: Dispatch<SetStateAction<boolean>>;
22
+ rowHighLightId: string;
23
+ setRowHighLightId?: Dispatch<SetStateAction<string | undefined>>;
24
+ canRowDrag: boolean;
25
+ rowKey: string;
26
+ hasGroup: boolean;
27
+ tableDatas: any[];
28
+ canSorting: boolean;
29
+ loading: boolean;
30
+ rowClassName: (row: any) => string[];
31
+ cellClassName: (cell: any) => string[];
32
+ rowStyle: object;
33
+ getCellProps: (ctx: any) => object;
34
+ rowHeight: number;
35
+ renderSubComponent: (value: {
36
+ row: any;
37
+ }) => ReactNode;
38
+ onRowMouseEnter: (row: any) => void;
39
+ onRowMouseLeave: (row: any) => void;
40
+ onRowMouseClick: (row: any) => void;
41
+ onRowMouseDoubleClick: (row: any) => void;
42
+ enableFilters: boolean;
43
+ enableVirtualList: boolean;
44
+ disableDragRowIds: any[];
45
+ selectRowWhenClick: boolean;
46
+ datas: any[];
47
+ canEditRowWhenDClick: boolean;
48
+ editingRowId: string;
49
+ handleEditRowWhenDClick: (row: any) => void;
50
+ dragBeforeStart: (datas: any) => boolean;
51
+ /**右键菜单,配置后,开启右键菜单功能:点击右键时,获取菜单可选项 */
52
+ getContextMenu?: (params: {
53
+ row: any;
54
+ column: any;
55
+ }) => IMenuOptionsType;
56
+ /**点击菜单选项 */
57
+ onClickContextMenu?: (params: {
58
+ row: any;
59
+ column: any;
60
+ clickedMenuValue: any;
61
+ }) => void;
62
+ /**获取行hover时的tip信息 */
63
+ getRowHoverTipConfig?: (row: any) => {
64
+ title: string;
65
+ color: string;
66
+ };
67
+ tableTooltip: boolean;
68
+ compactMode: boolean;
69
+ onEditValueChange?: (field: string, value: any, extra?: any) => void;
70
+ hasTotalRow?: boolean;
71
+ totalDatas?: any[];
72
+ setRowSelection: Function;
73
+ openMemo?: boolean;
74
+ };
75
+ declare const OriginalTableBody: ({ tableBodyRef, table, tableId, theme, reorderRow, rowSelectedId, setRowSelectedId, rowHighLightId, setRowHighLightId, selectedRowChange, onSelectChange, canSelection, selectionWithoutChecked, tableContainerWidth, selectedRowDragging, setSelectedRowDragging, canRowDrag, rowKey, loading, rowClassName, cellClassName, rowStyle, getCellProps, rowHeight, renderSubComponent, onRowMouseEnter, onRowMouseLeave, onRowMouseClick, onRowMouseDoubleClick, disableDragRowIds, selectRowWhenClick, datas, canEditRowWhenDClick, editingRowId, handleEditRowWhenDClick, dragBeforeStart, getContextMenu, onClickContextMenu, getRowHoverTipConfig, tableTooltip, compactMode, onEditValueChange, hasTotalRow, totalDatas, setRowSelection, openMemo }: TableBodyPropsType) => import("react/jsx-runtime").JSX.Element;
76
+ export { OriginalTableBody };
@@ -0,0 +1,509 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ 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; }
3
+ 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; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ import { Spin } from 'antd';
14
+ // import { useVirtualizer } from "@tanstack/react-virtual";
15
+
16
+ import { useDrop } from 'react-dnd';
17
+ import { CustomDragLayer } from "../components/CustomDragerLayer";
18
+ // import RowContent from "../components/RowContent";
19
+ import { DropSide } from "../type";
20
+ import { events, useEventBus } from "../../..";
21
+ import React, { useCallback, useMemo, useState } from 'react';
22
+ import { createPortal } from 'react-dom';
23
+ import { useConfig } from "../../ConfigProvider";
24
+ import Empty from "../../Empty";
25
+ import { OriginalRow as Row } from "./OriginalRow";
26
+ import ContextMenu from "./contextMenu/ContextMenu";
27
+ import "./index.less";
28
+ import { Total } from "./components/Total";
29
+ import { jsx as _jsx } from "react/jsx-runtime";
30
+ import { Fragment as _Fragment } from "react/jsx-runtime";
31
+ import { jsxs as _jsxs } from "react/jsx-runtime";
32
+ var OriginalTableBody = function OriginalTableBody(_ref) {
33
+ var _headerGroups, _table$getRowModel$ro2;
34
+ var tableBodyRef = _ref.tableBodyRef,
35
+ table = _ref.table,
36
+ tableId = _ref.tableId,
37
+ theme = _ref.theme,
38
+ reorderRow = _ref.reorderRow,
39
+ rowSelectedId = _ref.rowSelectedId,
40
+ setRowSelectedId = _ref.setRowSelectedId,
41
+ rowHighLightId = _ref.rowHighLightId,
42
+ setRowHighLightId = _ref.setRowHighLightId,
43
+ selectedRowChange = _ref.selectedRowChange,
44
+ onSelectChange = _ref.onSelectChange,
45
+ canSelection = _ref.canSelection,
46
+ selectionWithoutChecked = _ref.selectionWithoutChecked,
47
+ tableContainerWidth = _ref.tableContainerWidth,
48
+ selectedRowDragging = _ref.selectedRowDragging,
49
+ setSelectedRowDragging = _ref.setSelectedRowDragging,
50
+ canRowDrag = _ref.canRowDrag,
51
+ rowKey = _ref.rowKey,
52
+ loading = _ref.loading,
53
+ rowClassName = _ref.rowClassName,
54
+ cellClassName = _ref.cellClassName,
55
+ rowStyle = _ref.rowStyle,
56
+ getCellProps = _ref.getCellProps,
57
+ rowHeight = _ref.rowHeight,
58
+ renderSubComponent = _ref.renderSubComponent,
59
+ onRowMouseEnter = _ref.onRowMouseEnter,
60
+ onRowMouseLeave = _ref.onRowMouseLeave,
61
+ onRowMouseClick = _ref.onRowMouseClick,
62
+ onRowMouseDoubleClick = _ref.onRowMouseDoubleClick,
63
+ disableDragRowIds = _ref.disableDragRowIds,
64
+ selectRowWhenClick = _ref.selectRowWhenClick,
65
+ datas = _ref.datas,
66
+ canEditRowWhenDClick = _ref.canEditRowWhenDClick,
67
+ editingRowId = _ref.editingRowId,
68
+ handleEditRowWhenDClick = _ref.handleEditRowWhenDClick,
69
+ dragBeforeStart = _ref.dragBeforeStart,
70
+ getContextMenu = _ref.getContextMenu,
71
+ onClickContextMenu = _ref.onClickContextMenu,
72
+ getRowHoverTipConfig = _ref.getRowHoverTipConfig,
73
+ tableTooltip = _ref.tableTooltip,
74
+ compactMode = _ref.compactMode,
75
+ onEditValueChange = _ref.onEditValueChange,
76
+ hasTotalRow = _ref.hasTotalRow,
77
+ totalDatas = _ref.totalDatas,
78
+ setRowSelection = _ref.setRowSelection,
79
+ openMemo = _ref.openMemo;
80
+ var _useConfig = useConfig(),
81
+ root = _useConfig.root;
82
+ var headerGroups = table.getHeaderGroups();
83
+ var headers = (headerGroups === null || headerGroups === void 0 || (_headerGroups = headerGroups[headerGroups.length - 1]) === null || _headerGroups === void 0 ? void 0 : _headerGroups.headers) || [];
84
+ var _useState = useState({
85
+ visible: false,
86
+ clientX: 0,
87
+ clientY: 0,
88
+ row: {},
89
+ column: {},
90
+ options: []
91
+ }),
92
+ _useState2 = _slicedToArray(_useState, 2),
93
+ contextMenuData = _useState2[0],
94
+ setContextMenuData = _useState2[1];
95
+ // 拖动时显示放置的位置
96
+ var _useState3 = useState(undefined),
97
+ _useState4 = _slicedToArray(_useState3, 2),
98
+ hoverRowIndex = _useState4[0],
99
+ setHoverRowIndex = _useState4[1];
100
+ var _useState5 = useState(undefined),
101
+ _useState6 = _slicedToArray(_useState5, 2),
102
+ dropSide = _useState6[0],
103
+ setDropSide = _useState6[1]; // 放在目标的上侧或者下侧
104
+ // 清除hover行信息
105
+ var clearHoverRowIndex = useCallback(function () {
106
+ setHoverRowIndex(undefined);
107
+ }, []);
108
+ // 当前table在hover时进行广播
109
+ var publishCurTableHoveringEvent = function publishCurTableHoveringEvent() {
110
+ events.emit('TABLE_HOVERING', tableId);
111
+ };
112
+
113
+ // 接收广播:其他table在hover时,取消当前table的hover
114
+ var receiveCurTableHoveringEvent = useCallback(function (hoveringTableId) {
115
+ if (hoveringTableId !== tableId) {
116
+ clearHoverRowIndex();
117
+ }
118
+ }, []);
119
+ useEventBus('TABLE_HOVERING', receiveCurTableHoveringEvent);
120
+
121
+ // 拖动时,即时修改hover信息
122
+ var changeHoverRow = useCallback(function (_ref2) {
123
+ var _origin$draggedRow, _origin$draggedRows;
124
+ var target = _ref2.target,
125
+ origin = _ref2.origin;
126
+ publishCurTableHoveringEvent();
127
+ var targetRowIndex = target === null || target === void 0 ? void 0 : target.index;
128
+ var originRowIndex = origin === null || origin === void 0 || (_origin$draggedRow = origin.draggedRow) === null || _origin$draggedRow === void 0 ? void 0 : _origin$draggedRow.index;
129
+ var originRowIndexList = (origin === null || origin === void 0 || (_origin$draggedRows = origin.draggedRows) === null || _origin$draggedRows === void 0 ? void 0 : _origin$draggedRows.map(function (row) {
130
+ return row.index;
131
+ })) || [];
132
+ // console.log('hover :>> ', targetRowIndex, originRowIndex);
133
+ if (tableId === origin.sourceTableId && originRowIndexList.includes(targetRowIndex)) {
134
+ // hover在被拖动的行时,隐藏放置位置
135
+ clearHoverRowIndex();
136
+ } else if (targetRowIndex !== hoverRowIndex) {
137
+ setHoverRowIndex(targetRowIndex);
138
+ if (tableId !== origin.sourceTableId) {
139
+ // 表格之间拖动
140
+ setDropSide(DropSide.Top);
141
+ } else {
142
+ // 表格内部拖动
143
+ setDropSide(targetRowIndex > originRowIndex ? DropSide.Bottom : DropSide.Top);
144
+ }
145
+ }
146
+ }, [hoverRowIndex]);
147
+ // 拖动到最后一行下面的空白处,在最后一行数据上展示预览位置
148
+ var addToLast = useCallback(function () {
149
+ publishCurTableHoveringEvent();
150
+ var lastIndex = table.getRowModel().rows.length - 1;
151
+ if (lastIndex !== hoverRowIndex || lastIndex === hoverRowIndex && dropSide !== DropSide.Bottom) {
152
+ setHoverRowIndex(lastIndex);
153
+ setDropSide(DropSide.Bottom);
154
+ }
155
+ }, [hoverRowIndex, dropSide]);
156
+
157
+ // cell右键菜单
158
+ var handleCellContextMenu = useCallback(function (e, cell) {
159
+ // console.log('cell :>> ', cell);
160
+ if (getContextMenu) {
161
+ var options = getContextMenu({
162
+ row: cell.row.original,
163
+ column: cell.column.columnDef
164
+ });
165
+ setContextMenuData({
166
+ visible: options.length > 0,
167
+ clientX: e.clientX,
168
+ clientY: e.clientY,
169
+ row: cell.row.original,
170
+ column: cell.column.columnDef,
171
+ options: options
172
+ });
173
+ e.preventDefault();
174
+ }
175
+ }, [getContextMenu]);
176
+
177
+ // 关闭菜单
178
+ var closeContextMenu = useCallback(function () {
179
+ setContextMenuData(_objectSpread(_objectSpread({}, contextMenuData), {}, {
180
+ visible: false
181
+ }));
182
+ }, []);
183
+
184
+ // useEffect(() => {
185
+ // if (tbodyRef.current) {
186
+ // console.log('tbodyRef.current.scrollHeight', tbodyRef.current.scrollHeight)
187
+ // console.log('tbodyRef.current.scrollTop', tbodyRef.current.scrollTop, scroll)
188
+ // tbodyRef.current.scrollTop = scroll;
189
+ // }
190
+ // let ele = document.getElementById('tbody')
191
+ // if (ele) {
192
+ // console.log('4444444', ele, ele.scrollTop)
193
+ // ele.scrollTop = scroll
194
+ // }
195
+
196
+ // }, [scroll]);
197
+
198
+ // useLayoutEffect(() => {
199
+ // if (theadRef.current) {
200
+ // const theadHeight = theadRef.current.clientHeight;
201
+ // theadHeight !== tableHeadHeight ? setTableHeadHeight(theadHeight) : null;
202
+ // }
203
+ // }, [theadRef?.current, theadRef?.current?.clientHeight, enableFilters]);
204
+
205
+ // const scrollDataRef = useRef<any>({
206
+ // scroll,
207
+ // bodyContentHeight,
208
+ // tableBodyHeight,
209
+ // });
210
+ // useLayoutEffect(() => {
211
+ // scrollDataRef.current = {
212
+ // scroll,
213
+ // bodyContentHeight,
214
+ // tableBodyHeight,
215
+ // };
216
+ // }, [scroll, bodyContentHeight, tableBodyHeight]);
217
+ // // const handleWheel = (event: WheelEvent) => {
218
+ // // const {
219
+ // // scroll: refDataScroll,
220
+ // // bodyContentHeight: refDataBodyContentHeight,
221
+ // // tableBodyHeight: refDataTableBodyHeight,
222
+ // // } = scrollDataRef.current;
223
+
224
+ // // let newScroll = refDataScroll + event.deltaY || 0;
225
+ // // const maxScroll = refDataBodyContentHeight - refDataTableBodyHeight;
226
+ // // if (newScroll < 0) {
227
+ // // newScroll = 0;
228
+ // // } else if (newScroll > maxScroll) {
229
+ // // newScroll = maxScroll;
230
+ // // }
231
+ // // setScroll?.(newScroll);
232
+
233
+ // // if (!((refDataScroll == 0 && newScroll == 0) || (refDataScroll === maxScroll && newScroll === maxScroll))) {
234
+ // // event.stopPropagation();
235
+ // // event.preventDefault();
236
+ // // }
237
+ // // };
238
+
239
+ // // table-body 监听滚轮事件
240
+ // // useEffect(() => {
241
+ // // tbodyRef.current?.addEventListener('wheel', handleWheel, { passive: false });
242
+ // // return () => tbodyRef.current?.removeEventListener('wheel', handleWheel, { passive: false });
243
+ // // }, [tbodyRef.current]);
244
+
245
+ // // 是否展开所有行
246
+ // useEffect(() => {
247
+ // isAllRowExpanded && table?.toggleAllRowsExpanded();
248
+ // }, [isAllRowExpanded]);
249
+
250
+ // // 虚拟列表
251
+ // const rowVirtualizer = useVirtualizer({
252
+ // count: rows.length, // 数据总条数
253
+ // getScrollElement: () => tbodyRef.current, // 外层滚动的dom元素
254
+ // estimateSize: () => rowHeight, // 每一行的预估高度值
255
+ // overscan: enableVirtualList ? 5 : 9999, // 上下额外展示的数据量
256
+ // });
257
+
258
+ // const rowVirtualizerTotalHeight = rowVirtualizer.getTotalSize();
259
+
260
+ // // 展开状态变化之后重新设定table内容高度(不能作用于left\right-table)
261
+ // useLayoutEffect(() => {
262
+ // // if (position !== 'Left' && position !== 'Right') {
263
+ // rowVirtualizerTotalHeight && setBodyContentHeight(rowVirtualizerTotalHeight);
264
+ // // }
265
+ // }, [rowVirtualizerTotalHeight]);
266
+
267
+ // console.log('object', rowVirtualizer.getVirtualItems(), rows);
268
+
269
+ var _useDrop = useDrop({
270
+ accept: 'TABLE_ROW',
271
+ drop: function drop(formDatas) {
272
+ // console.log('drop-empty did');
273
+ return reorderRow === null || reorderRow === void 0 ? void 0 : reorderRow(formDatas, {
274
+ hoverRow: {
275
+ index: 0
276
+ },
277
+ targetTableId: tableId
278
+ });
279
+ }
280
+ }),
281
+ _useDrop2 = _slicedToArray(_useDrop, 2),
282
+ dropEmptyRef = _useDrop2[1];
283
+ var _useDrop3 = useDrop({
284
+ accept: 'TABLE_ROW',
285
+ drop: function drop(formDatas, monitor) {
286
+ if (monitor.didDrop()) {
287
+ // drop到内部的row时,这里不再处理
288
+ // console.log('drop-table-empty stop');
289
+ return undefined;
290
+ }
291
+ // console.log('drop-table-empty did');
292
+ clearHoverRowIndex();
293
+ return reorderRow === null || reorderRow === void 0 ? void 0 : reorderRow(formDatas, {
294
+ hoverRow: undefined,
295
+ targetTableId: tableId
296
+ });
297
+ },
298
+ hover: function hover(item, monitor) {
299
+ if (monitor.isOver({
300
+ shallow: true
301
+ }) && monitor.canDrop()) {
302
+ addToLast();
303
+ }
304
+ }
305
+ }),
306
+ _useDrop4 = _slicedToArray(_useDrop3, 2),
307
+ dropTableEmptyRef = _useDrop4[1];
308
+ var LoadingAndEmptyContent = function LoadingAndEmptyContent() {
309
+ console.log('emptyTheme0');
310
+ return /*#__PURE__*/_jsx("div", {
311
+ className: "empty-container",
312
+ style: {
313
+ width: table.getTotalSize()
314
+ },
315
+ children: /*#__PURE__*/_jsx("div", {
316
+ className: "empty-wrapper",
317
+ style: {
318
+ width: "".concat(tableContainerWidth - 10, "px")
319
+ },
320
+ children: loading ? /*#__PURE__*/_jsx(Spin, {}) : /*#__PURE__*/_jsx("span", {
321
+ className: "empty-content",
322
+ ref: dropEmptyRef,
323
+ children: /*#__PURE__*/_jsx(Empty, {})
324
+ })
325
+ })
326
+ });
327
+ };
328
+ var TBodyContent = function TBodyContent() {
329
+ return table.getRowModel().rows.map(function (row) {
330
+ // 当前行是否编辑中
331
+ var rowEditing = row.id === editingRowId;
332
+ return /*#__PURE__*/_jsx(Row, {
333
+ tableBodyRef: tableBodyRef,
334
+ table: table,
335
+ tableId: tableId,
336
+ row: row,
337
+ rowKey: rowKey,
338
+ theme: theme,
339
+ reorderRow: reorderRow,
340
+ rowSelectedId: rowSelectedId,
341
+ setRowSelectedId: setRowSelectedId,
342
+ rowHighLightId: rowHighLightId,
343
+ setRowHighLightId: setRowHighLightId,
344
+ selectedRowChange: selectedRowChange,
345
+ onSelectChange: onSelectChange,
346
+ canSelection: canSelection,
347
+ selectionWithoutChecked: selectionWithoutChecked,
348
+ selectedRowDragging: selectedRowDragging,
349
+ setSelectedRowDragging: setSelectedRowDragging,
350
+ canRowDrag: canRowDrag,
351
+ dragBeforeStart: dragBeforeStart,
352
+ rowClassName: rowClassName,
353
+ cellClassName: cellClassName,
354
+ rowStyle: rowStyle,
355
+ getCellProps: getCellProps,
356
+ editting: !!editingRowId,
357
+ rowEditing: rowEditing,
358
+ renderSubComponent: renderSubComponent,
359
+ onRowMouseEnter: onRowMouseEnter,
360
+ onRowMouseLeave: onRowMouseLeave,
361
+ onRowMouseClick: onRowMouseClick,
362
+ onRowMouseDoubleClick: onRowMouseDoubleClick,
363
+ rowHeight: rowHeight,
364
+ disableDragRowIds: disableDragRowIds,
365
+ selectRowWhenClick: selectRowWhenClick,
366
+ handleEditRowWhenDClick: handleEditRowWhenDClick,
367
+ canEditRowWhenDClick: canEditRowWhenDClick,
368
+ onCellContextMenu: handleCellContextMenu,
369
+ getRowHoverTipConfig: getRowHoverTipConfig,
370
+ tableTooltip: tableTooltip,
371
+ changeHoverRow: changeHoverRow,
372
+ clearHoverRowIndex: clearHoverRowIndex,
373
+ hoverRowIndex: hoverRowIndex,
374
+ dropSide: dropSide,
375
+ onEditValueChange: onEditValueChange,
376
+ setRowSelection: setRowSelection,
377
+ openMemo: openMemo
378
+ }, row.id);
379
+ });
380
+ };
381
+
382
+ // 是否有数据
383
+ var showTable = useMemo(function () {
384
+ var _table$getRowModel$ro;
385
+ return !loading && datas.length !== 0 && ((_table$getRowModel$ro = table.getRowModel().rows) === null || _table$getRowModel$ro === void 0 ? void 0 : _table$getRowModel$ro.length) !== 0;
386
+ }, [loading, datas.length, (_table$getRowModel$ro2 = table.getRowModel().rows) === null || _table$getRowModel$ro2 === void 0 ? void 0 : _table$getRowModel$ro2.length]);
387
+
388
+ // console.log('rowHeight :>>', rowHeight);
389
+
390
+ var TableRow = useMemo(function () {
391
+ return table.getRowModel().rows;
392
+ }, [table, table.getState().rowSelection]);
393
+ return (
394
+ /*#__PURE__*/
395
+ // 修复筛选数据为空时,滚动条丢失
396
+ _jsxs(_Fragment, {
397
+ children: [canRowDrag && !editingRowId && /*#__PURE__*/createPortal( /*#__PURE__*/_jsx(CustomDragLayer, {
398
+ getCellProps: getCellProps,
399
+ rowClassName: rowClassName,
400
+ cellClassName: cellClassName,
401
+ rowStyle: rowStyle,
402
+ theme: theme,
403
+ rowSelectedId: rowSelectedId,
404
+ table: table,
405
+ tableId: tableId,
406
+ compactMode: compactMode
407
+ }),
408
+ // document.body,
409
+ root ? document.querySelector(root) : document.body), showTable ? /*#__PURE__*/_jsx("div", {
410
+ className: "table-max-table-body-table-wrapper",
411
+ ref: dropTableEmptyRef,
412
+ children: /*#__PURE__*/_jsxs("table", {
413
+ children: [/*#__PURE__*/_jsx("colgroup", {
414
+ children: headers.map(function (header) {
415
+ var _header$column;
416
+ var size = (header === null || header === void 0 || (_header$column = header.column) === null || _header$column === void 0 ? void 0 : _header$column.getSize()) || 120;
417
+ return /*#__PURE__*/_jsx("col", {
418
+ width: size
419
+ }, header.id);
420
+ })
421
+ }), /*#__PURE__*/_jsxs("tbody", {
422
+ id: "table-max-tableBody-tbody-".concat(tableId),
423
+ children: [table.getRowModel().rows.map(function (row) {
424
+ // 当前行是否编辑中
425
+ var rowEditing = row.id === editingRowId;
426
+ return /*#__PURE__*/_jsx(Row, {
427
+ tableBodyRef: tableBodyRef,
428
+ table: table,
429
+ tableId: tableId,
430
+ row: row,
431
+ rowKey: rowKey,
432
+ theme: theme,
433
+ reorderRow: reorderRow,
434
+ rowSelectedId: rowSelectedId,
435
+ setRowSelectedId: setRowSelectedId,
436
+ rowHighLightId: rowHighLightId,
437
+ setRowHighLightId: setRowHighLightId,
438
+ selectedRowChange: selectedRowChange,
439
+ onSelectChange: onSelectChange,
440
+ canSelection: canSelection,
441
+ selectionWithoutChecked: selectionWithoutChecked,
442
+ selectedRowDragging: selectedRowDragging,
443
+ setSelectedRowDragging: setSelectedRowDragging,
444
+ canRowDrag: canRowDrag,
445
+ dragBeforeStart: dragBeforeStart,
446
+ rowClassName: rowClassName,
447
+ cellClassName: cellClassName,
448
+ rowStyle: rowStyle,
449
+ getCellProps: getCellProps,
450
+ editting: !!editingRowId,
451
+ rowEditing: rowEditing,
452
+ renderSubComponent: renderSubComponent,
453
+ onRowMouseEnter: onRowMouseEnter,
454
+ onRowMouseLeave: onRowMouseLeave,
455
+ onRowMouseClick: onRowMouseClick,
456
+ onRowMouseDoubleClick: onRowMouseDoubleClick,
457
+ rowHeight: rowHeight,
458
+ disableDragRowIds: disableDragRowIds,
459
+ selectRowWhenClick: selectRowWhenClick,
460
+ handleEditRowWhenDClick: handleEditRowWhenDClick,
461
+ canEditRowWhenDClick: canEditRowWhenDClick,
462
+ onCellContextMenu: handleCellContextMenu,
463
+ getRowHoverTipConfig: getRowHoverTipConfig,
464
+ tableTooltip: tableTooltip,
465
+ changeHoverRow: changeHoverRow,
466
+ clearHoverRowIndex: clearHoverRowIndex,
467
+ hoverRowIndex: hoverRowIndex,
468
+ dropSide: dropSide,
469
+ onEditValueChange: onEditValueChange,
470
+ setRowSelection: setRowSelection,
471
+ openMemo: openMemo
472
+ }, row.id);
473
+ })
474
+ // TBodyContent()
475
+ , /*#__PURE__*/_jsx(_Fragment, {
476
+ children: hasTotalRow && /*#__PURE__*/_jsx(Total, {
477
+ table: table,
478
+ totalDatas: totalDatas,
479
+ rowHeight: rowHeight
480
+ })
481
+ })]
482
+ })]
483
+ })
484
+ }) : /*#__PURE__*/_jsx("div", {
485
+ className: "empty-container",
486
+ style: {
487
+ width: table.getTotalSize()
488
+ },
489
+ children: /*#__PURE__*/_jsx("div", {
490
+ className: "empty-wrapper",
491
+ style: {
492
+ width: "".concat(tableContainerWidth - 10, "px")
493
+ },
494
+ children: loading ? /*#__PURE__*/_jsx(Spin, {}) : /*#__PURE__*/_jsx("span", {
495
+ className: "empty-content",
496
+ ref: dropEmptyRef,
497
+ children: /*#__PURE__*/_jsx(Empty, {})
498
+ })
499
+ })
500
+ })
501
+ // LoadingAndEmptyContent()
502
+ , /*#__PURE__*/_jsx(ContextMenu, _objectSpread(_objectSpread({}, contextMenuData), {}, {
503
+ onClickContextMenu: onClickContextMenu,
504
+ closeContextMenu: closeContextMenu
505
+ }))]
506
+ })
507
+ );
508
+ };
509
+ export { OriginalTableBody };
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const TableBody: React.FC<any>;
3
+ export default TableBody;
@@ -0,0 +1,15 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ 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; }
3
+ 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; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ import React from 'react';
8
+ import { useTableComponents } from "../hooks/useTableComponents";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ export var TableBody = function TableBody(props) {
11
+ var _useTableComponents = useTableComponents(),
12
+ BodyComponent = _useTableComponents.TableBody;
13
+ return /*#__PURE__*/_jsx(BodyComponent, _objectSpread({}, props));
14
+ };
15
+ export default TableBody;