es-grid-template 1.7.33 → 1.7.34

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 (35) hide show
  1. package/es/table-component/InternalTable.js +9 -3
  2. package/es/table-component/TableContainer.d.ts +1 -0
  3. package/es/table-component/TableContainer.js +4 -2
  4. package/es/table-component/TableContainerEdit.d.ts +1 -0
  5. package/es/table-component/TableContainerEdit.js +3 -1
  6. package/es/table-component/body/EditableCell.js +3 -2
  7. package/es/table-component/body/TableBodyCell.js +165 -9
  8. package/es/table-component/body/TableBodyCellEdit.js +14 -13
  9. package/es/table-component/body/TableBodyRow.js +0 -8
  10. package/es/table-component/header/TableHeadCell.js +2 -2
  11. package/es/table-component/hook/utils.d.ts +1 -0
  12. package/es/table-component/hook/utils.js +20 -2
  13. package/es/table-component/style.scss +20 -14
  14. package/es/table-component/table/Grid.d.ts +1 -0
  15. package/es/table-component/type.d.ts +9 -1
  16. package/es/table-component/useContext.d.ts +4 -2
  17. package/es/table-component/useContext.js +1 -0
  18. package/lib/table-component/InternalTable.js +8 -2
  19. package/lib/table-component/TableContainer.d.ts +1 -0
  20. package/lib/table-component/TableContainer.js +4 -2
  21. package/lib/table-component/TableContainerEdit.d.ts +1 -0
  22. package/lib/table-component/TableContainerEdit.js +3 -1
  23. package/lib/table-component/body/EditableCell.js +3 -2
  24. package/lib/table-component/body/TableBodyCell.js +165 -9
  25. package/lib/table-component/body/TableBodyCellEdit.js +14 -13
  26. package/lib/table-component/body/TableBodyRow.js +0 -8
  27. package/lib/table-component/header/TableHeadCell.js +2 -2
  28. package/lib/table-component/hook/utils.d.ts +1 -0
  29. package/lib/table-component/hook/utils.js +21 -2
  30. package/lib/table-component/style.scss +20 -14
  31. package/lib/table-component/table/Grid.d.ts +1 -0
  32. package/lib/table-component/type.d.ts +9 -1
  33. package/lib/table-component/useContext.d.ts +4 -2
  34. package/lib/table-component/useContext.js +1 -0
  35. package/package.json +1 -1
@@ -33,7 +33,7 @@ import { addRowIdArray, convertToObj,
33
33
  // convertFilters,
34
34
  filterDataByColumns, flatColumns2,
35
35
  // filterDataByColumns,
36
- getAllRowKey, getDiffent2Array, getFixedFields, getInvisibleColumns, groupArrayByColumns } from "./hook/utils";
36
+ getAllRowKey, getDiffent2Array, getFixedFields, getInvisibleColumns, groupArrayByColumns, isTree } from "./hook/utils";
37
37
  // import GridEdit from './table/GridEdit'
38
38
  import { convertToTanStackColumns } from "./hook/useColumns";
39
39
  import { convertColumns } from "./hook/convert";
@@ -146,6 +146,9 @@ const InternalTable = props => {
146
146
 
147
147
  // return convertToTanStackColumns<RecordType>(columns, expanded, setExpanded, expandable)
148
148
  }, [t, columns, format, editAble]);
149
+ const isDataTree = React.useMemo(() => {
150
+ return isTree(dataSource);
151
+ }, [dataSource]);
149
152
  const columnPinning = React.useMemo(() => {
150
153
  return {
151
154
  left: getFixedFields(columns, 'left'),
@@ -277,7 +280,9 @@ const InternalTable = props => {
277
280
  setExpanded: setExpanded,
278
281
  isFullScreen: isFullScreen,
279
282
  setIsFullScreen: setIsFullScreen,
280
- windowSize: windowSize
283
+ windowSize: windowSize,
284
+ height: height,
285
+ isDataTree: isDataTree
281
286
  })), /*#__PURE__*/React.createElement(Modal, {
282
287
  open: isFullScreen,
283
288
  footer: null,
@@ -340,7 +345,8 @@ const InternalTable = props => {
340
345
  isFullScreen: isFullScreen,
341
346
  setIsFullScreen: setIsFullScreen,
342
347
  height: windowSize.innerHeight - 70,
343
- windowSize: windowSize
348
+ windowSize: windowSize,
349
+ isDataTree: isDataTree
344
350
  })))));
345
351
  };
346
352
  export default InternalTable;
@@ -31,6 +31,7 @@ type TableContainerProps<T> = Omit<TableProps<T>, 'columns'> & {
31
31
  columnHidden: any;
32
32
  isFullScreen: boolean;
33
33
  setIsFullScreen: Dispatch<SetStateAction<boolean>>;
34
+ isDataTree: boolean;
34
35
  };
35
36
  declare const TableContainer: <RecordType extends object>(props: TableContainerProps<RecordType>) => React.JSX.Element;
36
37
  export default TableContainer;
@@ -69,7 +69,8 @@ const TableContainer = props => {
69
69
  contextMenuClick,
70
70
  contextMenuHidden,
71
71
  isFullScreen,
72
- setIsFullScreen
72
+ setIsFullScreen,
73
+ isDataTree
73
74
  } = props;
74
75
  const tableContainerRef = React.useRef(null);
75
76
  const containerRef = React.useRef(null);
@@ -207,7 +208,8 @@ const TableContainer = props => {
207
208
  onContextMenu,
208
209
  setSorterChange,
209
210
  setFilterChange,
210
- windowSize
211
+ windowSize,
212
+ isDataTree
211
213
  }
212
214
  }, /*#__PURE__*/React.createElement(TableWrapper, {
213
215
  contextMenuItems: contextMenuItems,
@@ -18,6 +18,7 @@ type TableContainerProps<T> = Omit<TableProps<T>, 'columns'> & {
18
18
  setFilterChange: Dispatch<SetStateAction<boolean>>;
19
19
  onContextMenu?: (data: T) => (event: any) => void;
20
20
  tableHeight?: number;
21
+ isDataTree: boolean;
21
22
  windowSize: {
22
23
  innerHeight: number;
23
24
  innerWidth: number;
@@ -115,7 +115,8 @@ const TableContainerEdit = props => {
115
115
  contextMenuClick,
116
116
  contextMenuHidden,
117
117
  showDefaultContext,
118
- commandSettings
118
+ commandSettings,
119
+ isDataTree
119
120
  } = props;
120
121
  const containerRef = React.useRef(null);
121
122
  const bottomToolbarRef = React.useRef(null);
@@ -1503,6 +1504,7 @@ const TableContainerEdit = props => {
1503
1504
  }, /*#__PURE__*/React.createElement(TableContext.Provider, {
1504
1505
  value: {
1505
1506
  t,
1507
+ isDataTree,
1506
1508
  locale,
1507
1509
  prefix,
1508
1510
  id,
@@ -48,7 +48,7 @@ const filterTreeNode = (input, treeNode) => {
48
48
  };
49
49
  const EditableCell = props => {
50
50
  const {
51
- t,
51
+ // t,
52
52
  // editing,
53
53
  dataIndex,
54
54
  editType,
@@ -69,7 +69,8 @@ const EditableCell = props => {
69
69
  errors,
70
70
  id,
71
71
  startCell,
72
- rowKey
72
+ rowKey,
73
+ t
73
74
  } = useContext(TableContext);
74
75
  const datePickerRef = React.useRef(null);
75
76
  const dateTimePickerRef = React.useRef(null);
@@ -11,11 +11,48 @@ import ReactDOMServer from 'react-dom/server';
11
11
  const renderCellIndex = props => {
12
12
  const {
13
13
  parrents,
14
- cell
14
+ cell,
15
+ expanded,
16
+ isDataTree,
17
+ setExpanded,
18
+ expandIconColumnIndex
15
19
  } = props;
16
20
  return /*#__PURE__*/React.createElement("span", {
17
21
  className: "ui-rc_cell-content"
18
- }, parrents.map(pr => {
22
+ }, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/React.createElement("div", {
23
+ className: "ui-rc-table-row-expand-trigger",
24
+ style: {
25
+ paddingLeft: `${cell.row.depth * 25}px`
26
+ }
27
+ }, /*#__PURE__*/React.createElement("div", null, cell.row.getCanExpand() ? /*#__PURE__*/React.createElement("button", {
28
+ // onClick: row.getToggleExpandedHandler(),
29
+ onClick: () => {
30
+ const keys = Object.keys(expanded);
31
+ // @ts-ignore
32
+ const tmp = {
33
+ ...expanded
34
+ };
35
+ if (keys.includes(cell.row.id)) {
36
+ delete tmp[cell.row.id];
37
+ setExpanded(tmp);
38
+ } else {
39
+ setExpanded(old => ({
40
+ ...old,
41
+ [cell.row.id]: true
42
+ }));
43
+ }
44
+ },
45
+ style: {
46
+ cursor: "pointer"
47
+ },
48
+ className: "ui-rc-table-row-expand"
49
+ }, cell.row.getIsExpanded() ? /*#__PURE__*/React.createElement("span", {
50
+ className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-expanded"
51
+ }) : /*#__PURE__*/React.createElement("span", {
52
+ className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
53
+ })) : /*#__PURE__*/React.createElement("span", {
54
+ className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
55
+ }))), parrents.map(pr => {
19
56
  return `${pr.index + 1}.`;
20
57
  }), cell.row.index + 1);
21
58
  };
@@ -61,6 +98,13 @@ const renderSelection = args => {
61
98
  const {
62
99
  row
63
100
  } = args.cell;
101
+ const {
102
+ cell,
103
+ expandIconColumnIndex,
104
+ isDataTree,
105
+ expanded,
106
+ setExpanded
107
+ } = args;
64
108
  const {
65
109
  selectionSettings,
66
110
  setIsSelectionChange
@@ -70,7 +114,40 @@ const renderSelection = args => {
70
114
 
71
115
  // paddingLeft: `${row.depth * 2}rem`,
72
116
  }
73
- }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Checkbox, {
117
+ }, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/React.createElement("div", {
118
+ className: "ui-rc-table-row-expand-trigger",
119
+ style: {
120
+ paddingLeft: `${cell.row.depth * 25}px`
121
+ }
122
+ }, /*#__PURE__*/React.createElement("div", null, cell.row.getCanExpand() ? /*#__PURE__*/React.createElement("button", {
123
+ // onClick: row.getToggleExpandedHandler(),
124
+ onClick: () => {
125
+ const keys = Object.keys(expanded);
126
+ // @ts-ignore
127
+ const tmp = {
128
+ ...expanded
129
+ };
130
+ if (keys.includes(cell.row.id)) {
131
+ delete tmp[cell.row.id];
132
+ setExpanded(tmp);
133
+ } else {
134
+ setExpanded(old => ({
135
+ ...old,
136
+ [cell.row.id]: true
137
+ }));
138
+ }
139
+ },
140
+ style: {
141
+ cursor: "pointer"
142
+ },
143
+ className: "ui-rc-table-row-expand"
144
+ }, cell.row.getIsExpanded() ? /*#__PURE__*/React.createElement("span", {
145
+ className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-expanded"
146
+ }) : /*#__PURE__*/React.createElement("span", {
147
+ className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
148
+ })) : /*#__PURE__*/React.createElement("span", {
149
+ className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
150
+ }))), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Checkbox, {
74
151
  checked: row.getIsSelected() || row.getIsAllSubRowsSelected(),
75
152
  indeterminate: row.getIsSomeSelected() && selectionSettings && selectionSettings.mode === 'checkbox' && selectionSettings.type !== 'single'
76
153
  // indeterminate={row.getIsSomeSelected() }
@@ -102,10 +179,15 @@ const TableBodyCell = props => {
102
179
  selectionSettings,
103
180
  id,
104
181
  originData,
105
- wrapSettings
182
+ wrapSettings,
183
+ expanded,
184
+ setExpanded,
185
+ expandable,
186
+ isDataTree
106
187
  } = useContext(TableContext);
107
188
  const columnMeta = cell.column.columnDef.meta ?? {};
108
189
  const parrents = cell.row.getParentRows();
190
+ const expandIconColumnIndex = expandable?.expandIconColumnIndex;
109
191
  const isPinned = cell.column.getIsPinned();
110
192
  const isLastLeftPinnedColumn = isPinned === "left" && cell.column.getIsLastColumn("left");
111
193
  const isFirstRightPinnedColumn = isPinned === "right" && cell.column.getIsFirstColumn("right");
@@ -119,8 +201,8 @@ const TableBodyCell = props => {
119
201
  [`${prefix}-grid-cell-wrap`]: wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Content'),
120
202
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
121
203
  [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
122
- [`${prefix}-grid-cell-text-center`]: columnMeta?.headerTextAlign === 'center',
123
- [`${prefix}-grid-cell-text-right`]: columnMeta?.headerTextAlign === 'right' || columnMeta.type === 'number'
204
+ [`${prefix}-grid-cell-text-center`]: columnMeta?.textAlign === 'center',
205
+ [`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right' || columnMeta.type === 'number'
124
206
  }),
125
207
  style: {
126
208
  display: 'flex',
@@ -146,7 +228,11 @@ const TableBodyCell = props => {
146
228
  }
147
229
  }, cell.column.id === "#" && renderCellIndex({
148
230
  parrents,
149
- cell
231
+ cell,
232
+ expanded,
233
+ isDataTree,
234
+ setExpanded,
235
+ expandIconColumnIndex
150
236
  }), cell.column.id === "command" && renderCommand({
151
237
  cell,
152
238
  commandClick,
@@ -156,9 +242,79 @@ const TableBodyCell = props => {
156
242
  cell,
157
243
  table,
158
244
  selectionSettings,
159
- setIsSelectionChange
245
+ setIsSelectionChange,
246
+ expanded,
247
+ isDataTree,
248
+ setExpanded,
249
+ expandIconColumnIndex
160
250
  }), !nonActionColumn.includes(cell.column.id) && (isFirstRightPinnedColumn ? /*#__PURE__*/React.createElement("span", {
161
251
  className: "ui-rc_cell-content"
162
- }, flexRender(cell.column.columnDef.cell, cell.getContext())) : flexRender(cell.column.columnDef.cell, cell.getContext())));
252
+ }, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/React.createElement("div", {
253
+ className: "ui-rc-table-row-expand-trigger",
254
+ style: {
255
+ paddingLeft: `${cell.row.depth * 25}px`
256
+ }
257
+ }, /*#__PURE__*/React.createElement("div", null, cell.row.getCanExpand() ? /*#__PURE__*/React.createElement("button", {
258
+ // onClick: row.getToggleExpandedHandler(),
259
+ onClick: () => {
260
+ const keys = Object.keys(expanded);
261
+ // @ts-ignore
262
+ const tmp = {
263
+ ...expanded
264
+ };
265
+ if (keys.includes(cell.row.id)) {
266
+ delete tmp[cell.row.id];
267
+ setExpanded(tmp);
268
+ } else {
269
+ setExpanded(old => ({
270
+ ...old,
271
+ [cell.row.id]: true
272
+ }));
273
+ }
274
+ },
275
+ style: {
276
+ cursor: "pointer"
277
+ },
278
+ className: "ui-rc-table-row-expand"
279
+ }, cell.row.getIsExpanded() ? /*#__PURE__*/React.createElement("span", {
280
+ className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-expanded"
281
+ }) : /*#__PURE__*/React.createElement("span", {
282
+ className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
283
+ })) : /*#__PURE__*/React.createElement("span", {
284
+ className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
285
+ }))), flexRender(cell.column.columnDef.cell, cell.getContext())) : /*#__PURE__*/React.createElement(React.Fragment, null, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/React.createElement("div", {
286
+ className: "ui-rc-table-row-expand-trigger",
287
+ style: {
288
+ paddingLeft: `${cell.row.depth * 25}px`
289
+ }
290
+ }, /*#__PURE__*/React.createElement("div", null, cell.row.getCanExpand() ? /*#__PURE__*/React.createElement("button", {
291
+ // onClick: row.getToggleExpandedHandler(),
292
+ onClick: () => {
293
+ const keys = Object.keys(expanded);
294
+ // @ts-ignore
295
+ const tmp = {
296
+ ...expanded
297
+ };
298
+ if (keys.includes(cell.row.id)) {
299
+ delete tmp[cell.row.id];
300
+ setExpanded(tmp);
301
+ } else {
302
+ setExpanded(old => ({
303
+ ...old,
304
+ [cell.row.id]: true
305
+ }));
306
+ }
307
+ },
308
+ style: {
309
+ cursor: "pointer"
310
+ },
311
+ className: "ui-rc-table-row-expand"
312
+ }, cell.row.getIsExpanded() ? /*#__PURE__*/React.createElement("span", {
313
+ className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-expanded"
314
+ }) : /*#__PURE__*/React.createElement("span", {
315
+ className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
316
+ })) : /*#__PURE__*/React.createElement("span", {
317
+ className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
318
+ }))), flexRender(cell.column.columnDef.cell, cell.getContext()))));
163
319
  };
164
320
  export default TableBodyCell;
@@ -127,9 +127,10 @@ const TableBodyCellEdit = props => {
127
127
  dataErrors,
128
128
  expanded,
129
129
  setExpanded,
130
- expandable
130
+ expandable,
131
+ isDataTree
131
132
  } = React.useContext(TableContext);
132
- const expandIconColumnIndex = expandable?.expandIconColumnIndex ?? 0;
133
+ const expandIconColumnIndex = expandable?.expandIconColumnIndex;
133
134
  const record = cell.row.original;
134
135
  const columnMeta = cell.column.columnDef.meta ?? {};
135
136
  const cellContent = columnMeta.type === 'checkbox' ? '' : flexRender(cell.column.columnDef.cell, cell.getContext());
@@ -652,8 +653,8 @@ const TableBodyCellEdit = props => {
652
653
  [`${prefix}-grid-cell-ellipsis`]: true,
653
654
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
654
655
  [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
655
- [`${prefix}-grid-cell-text-center`]: columnMeta?.headerTextAlign === 'center',
656
- [`${prefix}-grid-cell-text-right`]: columnMeta?.headerTextAlign === 'right',
656
+ [`${prefix}-grid-cell-text-center`]: columnMeta?.textAlign === 'center',
657
+ [`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right',
657
658
  // [`${prefix}-grid-cell-index-selected`]: rowRange?.includes(cell.row.id),
658
659
  [`${prefix}-grid-cell-index-selected`]: selectRowIds?.includes(cell.row.id)
659
660
  }),
@@ -684,7 +685,7 @@ const TableBodyCellEdit = props => {
684
685
  // reset?.()
685
686
  }
686
687
  }
687
- }, cell.column.getIndex() === expandIconColumnIndex && /*#__PURE__*/React.createElement("div", {
688
+ }, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/React.createElement("div", {
688
689
  className: "ui-rc-table-row-expand-trigger",
689
690
  style: {
690
691
  paddingLeft: `${cell.row.depth * 25}px`
@@ -729,8 +730,8 @@ const TableBodyCellEdit = props => {
729
730
  [`${prefix}-grid-cell-ellipsis`]: true,
730
731
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
731
732
  [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
732
- [`${prefix}-grid-cell-text-center`]: columnMeta?.headerTextAlign === 'center',
733
- [`${prefix}-grid-cell-text-right`]: columnMeta?.headerTextAlign === 'right'
733
+ [`${prefix}-grid-cell-text-center`]: columnMeta?.textAlign === 'center',
734
+ [`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right'
734
735
  }),
735
736
  style: {
736
737
  display: 'flex',
@@ -754,8 +755,8 @@ const TableBodyCellEdit = props => {
754
755
  [`${prefix}-grid-cell-ellipsis`]: true,
755
756
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
756
757
  [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
757
- [`${prefix}-grid-cell-text-center`]: columnMeta?.headerTextAlign === 'center',
758
- [`${prefix}-grid-cell-text-right`]: columnMeta?.headerTextAlign === 'right'
758
+ [`${prefix}-grid-cell-text-center`]: columnMeta?.textAlign === 'center',
759
+ [`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right'
759
760
  }),
760
761
  style: {
761
762
  display: 'flex',
@@ -765,7 +766,7 @@ const TableBodyCellEdit = props => {
765
766
  // maxWidth: cell.column.getSize(),
766
767
  ...getCommonPinningStyles(cell.column)
767
768
  }
768
- }, cell.column.getIndex() === expandIconColumnIndex && /*#__PURE__*/React.createElement("div", {
769
+ }, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/React.createElement("div", {
769
770
  className: "ui-rc-table-row-expand-trigger",
770
771
  style: {
771
772
  paddingLeft: `${cell.row.depth * 25}px`
@@ -856,8 +857,8 @@ const TableBodyCellEdit = props => {
856
857
  'cell-paste-border-left': isInRangePaste && isLeftPaste,
857
858
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
858
859
  [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
859
- [`${prefix}-grid-cell-text-center`]: columnMeta?.headerTextAlign === 'center',
860
- [`${prefix}-grid-cell-text-right`]: columnMeta?.headerTextAlign === 'right' || columnMeta.type === 'number'
860
+ [`${prefix}-grid-cell-text-center`]: columnMeta?.textAlign === 'center',
861
+ [`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right' || columnMeta.type === 'number'
861
862
  }),
862
863
  style: {
863
864
  display: 'flex',
@@ -991,7 +992,7 @@ const TableBodyCellEdit = props => {
991
992
  className: classNames('ui-rc_cell-content', {
992
993
  'select-cell': ['select', 'selectTable', 'asyncSelect'].includes(getEditType(columnMeta, record))
993
994
  })
994
- }, cell.column.getIndex() === expandIconColumnIndex && /*#__PURE__*/React.createElement("div", {
995
+ }, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/React.createElement("div", {
995
996
  className: "ui-rc-table-row-expand-trigger",
996
997
  style: {
997
998
  paddingLeft: `${cell.row.depth * 25}px`
@@ -27,15 +27,7 @@ const TableBodyRow = ({
27
27
  recordDoubleClick
28
28
  } = React.useContext(TableContext);
29
29
  const visibleCells = row.getVisibleCells();
30
-
31
- // console.log('visibleCells', visibleCells)
32
-
33
30
  const virtualColumns = columnVirtualizer.getVirtualItems();
34
-
35
- // console.log('virtualColumns', virtualColumns)
36
-
37
- // table.options.set
38
-
39
31
  return /*#__PURE__*/React.createElement("tr", {
40
32
  "data-index": virtualRow.index //needed for dynamic row height measurement
41
33
  ,
@@ -41,7 +41,7 @@ const TableHeadCell = props => {
41
41
  locale
42
42
  } = useContext(TableContext);
43
43
  const isPinned = header.column.getIsPinned();
44
- // const isLastLeftPinnedColumn = isPinned === 'left' && header.column.getIsLastColumn('left')
44
+ const isLastLeftPinnedColumn = isPinned === 'left' && header.column.getIsLastColumn('left');
45
45
  const isFirstRightPinnedColumn = isPinned === 'right' && header.column.getIsFirstColumn('right');
46
46
  const [selectedKeys, setSelectedKeys] = React.useState([]);
47
47
  const [visible, setVisible] = React.useState(false);
@@ -212,7 +212,7 @@ const TableHeadCell = props => {
212
212
  className: classNames(`${prefix}-grid-cell`, {
213
213
  [`${prefix}-grid-cell-ellipsis`]: !wrapSettings || !(wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header')),
214
214
  [`${prefix}-grid-cell-wrap`]: wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header'),
215
- // [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
215
+ [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
216
216
  [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
217
217
  [`${prefix}-grid-cell-text-center`]: originalColumn?.headerTextAlign === 'center',
218
218
  [`${prefix}-grid-cell-text-right`]: originalColumn?.headerTextAlign === 'right'
@@ -131,3 +131,4 @@ export declare const convertToObj: (arr: any) => {
131
131
  [k: string]: any;
132
132
  };
133
133
  export declare const getDiffent2Array: (a: any[], b: any[]) => any[];
134
+ export declare function isTree(arr: any[]): boolean;
@@ -309,7 +309,7 @@ export function getFixedFields(columns, type) {
309
309
  const result = [];
310
310
  function traverse(cols) {
311
311
  for (const col of cols) {
312
- if ((col.fixed ?? col.fixedType) === type && col.field && (col.visible !== false || col.hidden !== true)) {
312
+ if ((col.fixed ?? col.fixedType) === type && col.field && (col.visible !== false || col.hidden)) {
313
313
  result.push(col.field);
314
314
  }
315
315
  if (col.children && col.children.length > 0) {
@@ -1865,4 +1865,22 @@ export const convertToObj = arr => {
1865
1865
  };
1866
1866
  export const getDiffent2Array = (a, b) => {
1867
1867
  return [...a.filter(x => !b.includes(x)), ...b.filter(x => !a.includes(x))];
1868
- };
1868
+ };
1869
+ export function isTree(arr) {
1870
+ if (!Array.isArray(arr)) return false;
1871
+ function checkNode(node) {
1872
+ if (typeof node !== "object" || node === null) return false;
1873
+ if ("children" in node) {
1874
+ if (!Array.isArray(node.children)) return false;
1875
+ if (node.children.length === 0) return false;
1876
+ for (const child of node.children) {
1877
+ if (!checkNode(child)) return false;
1878
+ }
1879
+ }
1880
+ return true;
1881
+ }
1882
+ for (const item of arr) {
1883
+ if (!checkNode(item)) return false;
1884
+ }
1885
+ return true;
1886
+ }
@@ -35,7 +35,8 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
35
35
  font-size: 14px;
36
36
 
37
37
  table {
38
- border-collapse: collapse;
38
+ // border-collapse: collapse;
39
+ border-collapse: separate;
39
40
  border-spacing: 0;
40
41
  table-layout: fixed;
41
42
  // border: 1px solid $tableBorderColor;
@@ -133,9 +134,7 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
133
134
 
134
135
  }
135
136
 
136
- tr.#{$prefix}-grid-row {
137
- border-bottom: 1px solid lightgray;
138
- }
137
+
139
138
 
140
139
 
141
140
  .#{$prefix}-grid-thead {
@@ -143,18 +142,20 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
143
142
 
144
143
  .#{$prefix}-grid-cell {
145
144
  font-weight: 500;
145
+ color: #000000E0;
146
146
 
147
147
  background-color: $body-color;
148
- // border-inline-end: 1px solid #e0e0e0;
148
+ border-inline-end: 1px solid $tableBorderColor;
149
+ border-bottom: 1px solid $tableBorderColor;
149
150
 
150
- &::before {
151
- content: "";
152
- position: absolute;
153
- inset-block: 0;
154
- right: 0;
155
- inset-inline-start: 0px;
156
- border-inline-end: 1px solid #e0e0e0;
157
- }
151
+ // &::before {
152
+ // content: "";
153
+ // position: absolute;
154
+ // inset-block: 0;
155
+ // right: 0;
156
+ // inset-inline-start: 0px;
157
+ // border-inline-end: 1px solid #e0e0e0;
158
+ // }
158
159
 
159
160
  &.ui-rc-grid-cell-ellipsis {
160
161
 
@@ -256,6 +257,10 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
256
257
 
257
258
  .#{$prefix}-grid-tbody {
258
259
 
260
+ tr.#{$prefix}-grid-row {
261
+ border-bottom: 1px solid lightgray;
262
+ }
263
+
259
264
  .#{$prefix}-grid-row {
260
265
  display: flex;
261
266
  position: absolute;
@@ -544,6 +549,7 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
544
549
 
545
550
  &.#{$prefix}-grid-cell-command {
546
551
  padding: 2px 8px;
552
+
547
553
  .ui-rc_cell-content {
548
554
  display: flex;
549
555
  }
@@ -983,7 +989,7 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
983
989
  .ui-rc-table-row-expand-icon::before,
984
990
  .ui-rc-table-row-expand-icon::after {
985
991
  position: absolute;
986
- background: currentcolor;
992
+ background: #000000de;
987
993
  transition: transform 0.3s ease-out;
988
994
  content: "";
989
995
 
@@ -22,6 +22,7 @@ type Props<T> = Omit<TableProps<T>, 'columns'> & {
22
22
  onContextMenu?: (data: T) => (event: any) => void;
23
23
  triggerChangeColumns?: (args: any, keys: any) => void;
24
24
  windowSize: any;
25
+ isDataTree: boolean;
25
26
  };
26
27
  declare const Grid: <RecordType extends object>(props: Props<RecordType>) => React.JSX.Element;
27
28
  export default Grid;
@@ -85,7 +85,6 @@ export type ColumnTable<RecordType = AnyObject> = {
85
85
  width?: number;
86
86
  maxWidth?: number;
87
87
  minWidth?: number;
88
- align?: ITextAlign;
89
88
  type?: IColumnType;
90
89
  haveSum?: boolean;
91
90
  isSummary?: boolean;
@@ -114,6 +113,11 @@ export type ColumnTable<RecordType = AnyObject> = {
114
113
  visible?: boolean;
115
114
  headerTooltip?: boolean | string | (() => ReactNode | ReactElement);
116
115
  columnGroupText?: string;
116
+ /**
117
+ * @deprecated Please use `textAlign` instead.
118
+ * @since 1.7.34
119
+ */
120
+ align?: ITextAlign;
117
121
  textAlign?: ITextAlign;
118
122
  headerTextAlign?: ITextAlign;
119
123
  template?: ReactNode | ReactElement | ((args: ColumnTemplate<RecordType>) => ReactNode | ReactElement);
@@ -140,6 +144,10 @@ export type ColumnTable<RecordType = AnyObject> = {
140
144
  */
141
145
  fixedType?: FixedType;
142
146
  fixed?: FixedType;
147
+ /**
148
+ * @deprecated Please use `wrapSettings` instead.
149
+ * @since 1.7.34
150
+ */
143
151
  headerTextWrap?: boolean;
144
152
  ellipsis?: boolean;
145
153
  allowResizing?: boolean;
@@ -1,6 +1,7 @@
1
1
  import type { Dispatch, SetStateAction } from 'react';
2
2
  import type { ExpandableConfig, IFormat, IWrapSettings, Locale, RangeState, RecordDoubleClickEventArgs, SelectionSettings } from "./type";
3
3
  import type { SubmitHandler } from "react-hook-form";
4
+ import type { ExpandedState } from '@tanstack/react-table';
4
5
  export type IPositionCell = {
5
6
  rowId: string;
6
7
  colId: string;
@@ -15,8 +16,8 @@ export interface IContext<T> {
15
16
  format?: IFormat;
16
17
  expandable?: ExpandableConfig<T>;
17
18
  wrapSettings?: IWrapSettings;
18
- setExpanded: any;
19
- expanded: any;
19
+ setExpanded: Dispatch<SetStateAction<ExpandedState>>;
20
+ expanded: ExpandedState;
20
21
  recordDoubleClick?: (args: RecordDoubleClickEventArgs<T>) => void;
21
22
  selectionSettings?: SelectionSettings;
22
23
  setIsSelectionChange: Dispatch<SetStateAction<{
@@ -64,6 +65,7 @@ export interface IContext<T> {
64
65
  handleDeleteContent?: () => void;
65
66
  handleAddMulti?: (item: any, n: number, id?: string) => void;
66
67
  dataErrors?: any[];
68
+ isDataTree: boolean;
67
69
  }
68
70
  export declare const TableContext: import("react").Context<IContext<any>>;
69
71
  export type ContextCellChange = {
@@ -2,6 +2,7 @@ import { createContext } from 'react';
2
2
  export const TableContext = /*#__PURE__*/createContext({
3
3
  prefix: 'ui-rc',
4
4
  id: '',
5
+ isDataTree: false,
5
6
  rowKey: 'rowId',
6
7
  dataSource: [],
7
8
  originData: [],