es-grid-template 1.7.32 → 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 (59) hide show
  1. package/es/grid-component/ColumnsChoose.js +0 -3
  2. package/es/grid-component/InternalTable.js +0 -4
  3. package/es/grid-component/TableGrid.js +0 -4
  4. package/es/grid-component/TempTable.js +2 -0
  5. package/es/grid-component/hooks/columns/index.js +0 -8
  6. package/es/grid-component/hooks/utils.js +0 -14
  7. package/es/grid-component/table/GridEdit.js +3 -5
  8. package/es/table-component/InternalTable.js +9 -3
  9. package/es/table-component/TableContainer.d.ts +1 -0
  10. package/es/table-component/TableContainer.js +11 -2
  11. package/es/table-component/TableContainerEdit.d.ts +1 -1
  12. package/es/table-component/TableContainerEdit.js +34 -13
  13. package/es/table-component/body/EditableCell.js +3 -2
  14. package/es/table-component/body/TableBodyCell.js +165 -9
  15. package/es/table-component/body/TableBodyCellEdit.js +22 -23
  16. package/es/table-component/body/TableBodyRow.js +0 -3
  17. package/es/table-component/header/TableHeadCell.d.ts +2 -0
  18. package/es/table-component/header/TableHeadCell.js +10 -6
  19. package/es/table-component/header/TableHeadRow.d.ts +1 -1
  20. package/es/table-component/header/TableHeadRow.js +4 -5
  21. package/es/table-component/hook/utils.d.ts +1 -0
  22. package/es/table-component/hook/utils.js +23 -5
  23. package/es/table-component/style.scss +42 -14
  24. package/es/table-component/table/Grid.d.ts +1 -0
  25. package/es/table-component/table/Grid.js +3 -1
  26. package/es/table-component/table/TableWrapper.js +5 -5
  27. package/es/table-component/type.d.ts +14 -1
  28. package/es/table-component/useContext.d.ts +5 -2
  29. package/es/table-component/useContext.js +1 -0
  30. package/lib/grid-component/ColumnsChoose.js +0 -3
  31. package/lib/grid-component/InternalTable.js +0 -4
  32. package/lib/grid-component/TableGrid.js +0 -4
  33. package/lib/grid-component/TempTable.js +2 -0
  34. package/lib/grid-component/hooks/columns/index.js +0 -8
  35. package/lib/grid-component/hooks/utils.js +0 -14
  36. package/lib/grid-component/table/GridEdit.js +3 -5
  37. package/lib/table-component/InternalTable.js +8 -2
  38. package/lib/table-component/TableContainer.d.ts +1 -0
  39. package/lib/table-component/TableContainer.js +11 -2
  40. package/lib/table-component/TableContainerEdit.d.ts +1 -1
  41. package/lib/table-component/TableContainerEdit.js +34 -13
  42. package/lib/table-component/body/EditableCell.js +3 -2
  43. package/lib/table-component/body/TableBodyCell.js +165 -9
  44. package/lib/table-component/body/TableBodyCellEdit.js +22 -22
  45. package/lib/table-component/body/TableBodyRow.js +0 -3
  46. package/lib/table-component/header/TableHeadCell.d.ts +2 -0
  47. package/lib/table-component/header/TableHeadCell.js +9 -6
  48. package/lib/table-component/header/TableHeadRow.d.ts +1 -1
  49. package/lib/table-component/header/TableHeadRow.js +4 -5
  50. package/lib/table-component/hook/utils.d.ts +1 -0
  51. package/lib/table-component/hook/utils.js +24 -5
  52. package/lib/table-component/style.scss +42 -14
  53. package/lib/table-component/table/Grid.d.ts +1 -0
  54. package/lib/table-component/table/Grid.js +3 -1
  55. package/lib/table-component/table/TableWrapper.js +5 -5
  56. package/lib/table-component/type.d.ts +14 -1
  57. package/lib/table-component/useContext.d.ts +5 -2
  58. package/lib/table-component/useContext.js +1 -0
  59. package/package.json +1 -1
@@ -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;
@@ -1,9 +1,7 @@
1
1
  import { flexRender } from "@tanstack/react-table";
2
2
  import Space from "rc-master-ui/es/space";
3
3
  import Command from "../components/command/Command";
4
-
5
- // import ReactDOMServer from 'react-dom/server'
6
-
4
+ import ReactDOMServer from 'react-dom/server';
7
5
  import { addRowsDown, addRowsDownWithCtrl, addRowsUp, addRowsUpWithCtrl, flattenArray, flattenData,
8
6
  // getCellsByPosition,
9
7
  getColIdsBetween, getCommonPinningStyles, getEditType, getRowIdsBetween, getSelectedCellMatrix, isEditable, isObjEmpty, isObjEqual, newGuid, unFlattenData, updateOrInsert } from "../hook/utils";
@@ -46,7 +44,7 @@ const renderCommand = args => {
46
44
  visible: typeof it.visible === 'function' ? it.visible?.(record) : it.visible
47
45
  };
48
46
  }) : [];
49
- return /*#__PURE__*/React.createElement("span", {
47
+ return /*#__PURE__*/React.createElement("div", {
50
48
  className: "ui-rc_cell-content"
51
49
  }, /*#__PURE__*/React.createElement(Space, null, commands.filter(it => it.visible !== false).map(item => {
52
50
  return /*#__PURE__*/React.createElement(Command, {
@@ -129,13 +127,13 @@ const TableBodyCellEdit = props => {
129
127
  dataErrors,
130
128
  expanded,
131
129
  setExpanded,
132
- expandable
130
+ expandable,
131
+ isDataTree
133
132
  } = React.useContext(TableContext);
134
- const expandIconColumnIndex = expandable?.expandIconColumnIndex ?? 0;
133
+ const expandIconColumnIndex = expandable?.expandIconColumnIndex;
135
134
  const record = cell.row.original;
136
135
  const columnMeta = cell.column.columnDef.meta ?? {};
137
-
138
- // const cellContent = columnMeta.type === 'checkbox' ? '' : flexRender(cell.column.columnDef.cell, cell.getContext());
136
+ const cellContent = columnMeta.type === 'checkbox' ? '' : flexRender(cell.column.columnDef.cell, cell.getContext());
139
137
  // const html = ReactDOMServer.renderToStaticMarkup(<>{cellContent}</>);
140
138
  // const hasValue = html.trim().length > 0;
141
139
 
@@ -595,7 +593,7 @@ const TableBodyCellEdit = props => {
595
593
  handleEdit(e);
596
594
  return;
597
595
  }
598
- if (e.key.length === 1) {
596
+ if (e.key.length === 1 && !e.ctrlKey) {
599
597
  e.preventDefault();
600
598
  e.stopPropagation();
601
599
  handleEdit(e);
@@ -655,8 +653,8 @@ const TableBodyCellEdit = props => {
655
653
  [`${prefix}-grid-cell-ellipsis`]: true,
656
654
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
657
655
  [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
658
- [`${prefix}-grid-cell-text-center`]: columnMeta?.headerTextAlign === 'center',
659
- [`${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',
660
658
  // [`${prefix}-grid-cell-index-selected`]: rowRange?.includes(cell.row.id),
661
659
  [`${prefix}-grid-cell-index-selected`]: selectRowIds?.includes(cell.row.id)
662
660
  }),
@@ -687,7 +685,7 @@ const TableBodyCellEdit = props => {
687
685
  // reset?.()
688
686
  }
689
687
  }
690
- }, cell.column.getIndex() === expandIconColumnIndex && /*#__PURE__*/React.createElement("div", {
688
+ }, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/React.createElement("div", {
691
689
  className: "ui-rc-table-row-expand-trigger",
692
690
  style: {
693
691
  paddingLeft: `${cell.row.depth * 25}px`
@@ -728,12 +726,12 @@ const TableBodyCellEdit = props => {
728
726
  if (cell.column.id === "command") {
729
727
  return /*#__PURE__*/React.createElement("td", {
730
728
  key: cell.id,
731
- className: classNames(`${prefix}-grid-cell`, {
729
+ className: classNames(`${prefix}-grid-cell ${prefix}-grid-cell-command`, {
732
730
  [`${prefix}-grid-cell-ellipsis`]: true,
733
731
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
734
732
  [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
735
- [`${prefix}-grid-cell-text-center`]: columnMeta?.headerTextAlign === 'center',
736
- [`${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'
737
735
  }),
738
736
  style: {
739
737
  display: 'flex',
@@ -757,8 +755,8 @@ const TableBodyCellEdit = props => {
757
755
  [`${prefix}-grid-cell-ellipsis`]: true,
758
756
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
759
757
  [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
760
- [`${prefix}-grid-cell-text-center`]: columnMeta?.headerTextAlign === 'center',
761
- [`${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'
762
760
  }),
763
761
  style: {
764
762
  display: 'flex',
@@ -768,7 +766,7 @@ const TableBodyCellEdit = props => {
768
766
  // maxWidth: cell.column.getSize(),
769
767
  ...getCommonPinningStyles(cell.column)
770
768
  }
771
- }, cell.column.getIndex() === expandIconColumnIndex && /*#__PURE__*/React.createElement("div", {
769
+ }, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/React.createElement("div", {
772
770
  className: "ui-rc-table-row-expand-trigger",
773
771
  style: {
774
772
  paddingLeft: `${cell.row.depth * 25}px`
@@ -840,8 +838,9 @@ const TableBodyCellEdit = props => {
840
838
  "data-tooltip-id": `${id}-tooltip-content`
841
839
  // data-tooltip-html={!isEditing && !hasValue && !message ? undefined : ReactDOMServer.renderToStaticMarkup(<>{rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : cellContent}</>)}
842
840
  // data-tooltip-content={!isEditing && !message ? undefined : rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : record[columnMeta.field ?? '']}
841
+ // data-tooltip-content={isEditing && message ? message : rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : record[columnMeta.field ?? '']}
843
842
  ,
844
- "data-tooltip-content": isEditing && message ? message : rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : record[columnMeta.field ?? ''],
843
+ "data-tooltip-html": isEditing && message ? message : rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : ReactDOMServer.renderToStaticMarkup( /*#__PURE__*/React.createElement(React.Fragment, null, cellContent)),
845
844
  className: classNames(`${prefix}-grid-cell cell-editable `, {
846
845
  [`${prefix}-grid-cell-ellipsis`]: true,
847
846
  'cell-editing': isEditing,
@@ -858,8 +857,8 @@ const TableBodyCellEdit = props => {
858
857
  'cell-paste-border-left': isInRangePaste && isLeftPaste,
859
858
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
860
859
  [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
861
- [`${prefix}-grid-cell-text-center`]: columnMeta?.headerTextAlign === 'center',
862
- [`${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'
863
862
  }),
864
863
  style: {
865
864
  display: 'flex',
@@ -993,7 +992,7 @@ const TableBodyCellEdit = props => {
993
992
  className: classNames('ui-rc_cell-content', {
994
993
  'select-cell': ['select', 'selectTable', 'asyncSelect'].includes(getEditType(columnMeta, record))
995
994
  })
996
- }, cell.column.getIndex() === expandIconColumnIndex && /*#__PURE__*/React.createElement("div", {
995
+ }, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/React.createElement("div", {
997
996
  className: "ui-rc-table-row-expand-trigger",
998
997
  style: {
999
998
  paddingLeft: `${cell.row.depth * 25}px`
@@ -1032,7 +1031,7 @@ const TableBodyCellEdit = props => {
1032
1031
  handleEdit(e);
1033
1032
  // setEditingKey?.(cell.row.id)
1034
1033
  }
1035
- })), !isSelecting && !isEditing && cell.row.id === endCell?.rowId && cell.column.getIndex() === rangeState?.endColIndex && /*#__PURE__*/React.createElement("div", {
1034
+ })), !isSelecting && !isEditing && rowNumber === rangeState?.endRowIndex && cell.column.getIndex() === rangeState?.endColIndex && /*#__PURE__*/React.createElement("div", {
1036
1035
  className: 'dragging-point',
1037
1036
  onMouseDown: e => {
1038
1037
  e.preventDefault();
@@ -28,9 +28,6 @@ const TableBodyRow = ({
28
28
  } = React.useContext(TableContext);
29
29
  const visibleCells = row.getVisibleCells();
30
30
  const virtualColumns = columnVirtualizer.getVirtualItems();
31
-
32
- // table.options.set
33
-
34
31
  return /*#__PURE__*/React.createElement("tr", {
35
32
  "data-index": virtualRow.index //needed for dynamic row height measurement
36
33
  ,
@@ -1,11 +1,13 @@
1
1
  import type { Table } from '@tanstack/react-table';
2
2
  import { type Header } from '@tanstack/react-table';
3
3
  import React from 'react';
4
+ import type { Virtualizer } from '@tanstack/react-virtual';
4
5
  interface TableHeadCellProps<T> {
5
6
  t?: any;
6
7
  table: Table<T>;
7
8
  header: Header<T, unknown>;
8
9
  getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
10
+ columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>;
9
11
  colSpan: any;
10
12
  rowSpan: any;
11
13
  }
@@ -13,6 +13,7 @@ import { extendsObject, getCommonPinningStyles, getDefaultOperator, getTypeFilte
13
13
  import { TableContext } from "../useContext";
14
14
  import { renderFilter } from "./renderFilter";
15
15
  import ReactDOMServer from 'react-dom/server';
16
+
16
17
  // import { ColumnTable } from "../type";
17
18
 
18
19
  // import { Tooltip } from 'react-tooltip'
@@ -22,13 +23,14 @@ const TableHeadCell = props => {
22
23
  header,
23
24
  getPopupContainer,
24
25
  table,
25
- t,
26
+ // t,
26
27
  // columnVirtualizer,
27
28
  // rowHeaderVirtualizer,
28
29
  colSpan,
29
30
  rowSpan
30
31
  } = props;
31
32
  const {
33
+ t,
32
34
  prefix,
33
35
  setSorterChange,
34
36
  setFilterChange,
@@ -39,7 +41,7 @@ const TableHeadCell = props => {
39
41
  locale
40
42
  } = useContext(TableContext);
41
43
  const isPinned = header.column.getIsPinned();
42
- // const isLastLeftPinnedColumn = isPinned === 'left' && header.column.getIsLastColumn('left')
44
+ const isLastLeftPinnedColumn = isPinned === 'left' && header.column.getIsLastColumn('left');
43
45
  const isFirstRightPinnedColumn = isPinned === 'right' && header.column.getIsFirstColumn('right');
44
46
  const [selectedKeys, setSelectedKeys] = React.useState([]);
45
47
  const [visible, setVisible] = React.useState(false);
@@ -112,13 +114,16 @@ const TableHeadCell = props => {
112
114
  };
113
115
  const doFilter = type => {
114
116
  if (type) {
115
- header.column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? [''] : selectedKeys);
117
+ header.column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
116
118
  } else {
117
119
  header.column.setFilterValue(undefined);
118
120
  setSelectedKeys([]);
119
121
  }
120
122
  setFilterChange(true);
121
123
  triggerVisible(false);
124
+ setTimeout(() => {
125
+ setFilterChange(false);
126
+ }, 10);
122
127
  };
123
128
  const mergedDropdownProps = extendsObject({
124
129
  trigger: ['click'],
@@ -207,7 +212,7 @@ const TableHeadCell = props => {
207
212
  className: classNames(`${prefix}-grid-cell`, {
208
213
  [`${prefix}-grid-cell-ellipsis`]: !wrapSettings || !(wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header')),
209
214
  [`${prefix}-grid-cell-wrap`]: wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header'),
210
- // [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
215
+ [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
211
216
  [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
212
217
  [`${prefix}-grid-cell-text-center`]: originalColumn?.headerTextAlign === 'center',
213
218
  [`${prefix}-grid-cell-text-right`]: originalColumn?.headerTextAlign === 'right'
@@ -218,7 +223,6 @@ const TableHeadCell = props => {
218
223
  style: {
219
224
  // display: 'flex',
220
225
  width: header.getSize(),
221
- // width: 'inherit',
222
226
  minWidth: header.getSize(),
223
227
  maxWidth: header.getSize(),
224
228
  ...getCommonPinningStyles(header.column),
@@ -304,7 +308,7 @@ const TableHeadCell = props => {
304
308
  // onMouseUp: () => {
305
309
  // requestAnimationFrame(() => {
306
310
  // columnVirtualizer.measure()
307
- // rowHeaderVirtualizer.measure()
311
+ // // rowHeaderVirtualizer.measure()
308
312
  // })
309
313
  // },
310
314
 
@@ -11,5 +11,5 @@ interface TableHeadRowProps<T> {
11
11
  fixedLeftColumns: Column<T, unknown>[];
12
12
  fixedRightColumns: Column<T, unknown>[];
13
13
  }
14
- declare const TableHeadRow: ({ table, headerGroup, }: TableHeadRowProps<any>) => React.JSX.Element;
14
+ declare const TableHeadRow: ({ table, headerGroup, columnVirtualizer, }: TableHeadRowProps<any>) => React.JSX.Element;
15
15
  export default TableHeadRow;
@@ -8,9 +8,8 @@ import TableHeadCell from "./TableHeadCell";
8
8
 
9
9
  const TableHeadRow = ({
10
10
  table,
11
- headerGroup
12
-
13
- // columnVirtualizer,
11
+ headerGroup,
12
+ columnVirtualizer
14
13
  // virtualPaddingLeft,
15
14
  // virtualPaddingRight,
16
15
  // fixedLeftColumns,
@@ -53,8 +52,8 @@ const TableHeadRow = ({
53
52
  return /*#__PURE__*/React.createElement(TableHeadCell, {
54
53
  key: header.id,
55
54
  header: header,
56
- table: table
57
- // columnVirtualizer={columnVirtualizer}
55
+ table: table,
56
+ columnVirtualizer: columnVirtualizer
58
57
  // rowHeaderVirtualizer={rowHeaderVirtualizer}
59
58
  ,
60
59
  colSpan: header.colSpan,
@@ -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) {
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) {
@@ -1660,7 +1660,7 @@ export const convertFilters = filters => {
1660
1660
  export function getInvisibleColumns(columns) {
1661
1661
  const result = {};
1662
1662
  for (const col of columns) {
1663
- if (col.visible === false) {
1663
+ if (col.visible === false || col.hidden) {
1664
1664
  result[col.field ?? ''] = false;
1665
1665
  }
1666
1666
  }
@@ -1688,7 +1688,7 @@ export const getAllVisibleKeys1 = columns => {
1688
1688
  const keys = [];
1689
1689
  const traverse = (cols, parentHidden = false) => {
1690
1690
  for (const col of cols) {
1691
- if (col.visible === false || parentHidden) {
1691
+ if (col.visible === false || col.hidden || parentHidden) {
1692
1692
  continue;
1693
1693
  }
1694
1694
  if (col.field) {
@@ -1728,7 +1728,7 @@ export function getHiddenParentKeys1(columns, parentKeys = []) {
1728
1728
  childHiddenParents.forEach(key => hiddenParents.add(key));
1729
1729
  currentPath.forEach(key => hiddenParents.add(key));
1730
1730
  }
1731
- } else if (column.visible !== false) {
1731
+ } else if (column.visible !== false && column.hidden !== true) {
1732
1732
  parentKeys.forEach(key => hiddenParents.add(key));
1733
1733
  }
1734
1734
  }
@@ -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,14 +35,30 @@ $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;
42
43
  }
43
44
 
44
45
  .#{$prefix}-grid-container {
46
+
45
47
  border: 1px solid $tableBorderColor;
48
+ border-right: 0;
49
+ font-size: 13px;
50
+
51
+ &::after {
52
+ content: "";
53
+ position: absolute;
54
+ top: 0px;
55
+ right: 0;
56
+ height: 100%;
57
+ // width: 100%;
58
+ border-right: 1px solid $tableBorderColor;
59
+ pointer-events: none;
60
+ z-index: 1;
61
+ }
46
62
 
47
63
  .#{$prefix}-grid-cell {
48
64
 
@@ -118,9 +134,7 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
118
134
 
119
135
  }
120
136
 
121
- tr.#{$prefix}-grid-row {
122
- border-bottom: 1px solid lightgray;
123
- }
137
+
124
138
 
125
139
 
126
140
  .#{$prefix}-grid-thead {
@@ -128,18 +142,20 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
128
142
 
129
143
  .#{$prefix}-grid-cell {
130
144
  font-weight: 500;
145
+ color: #000000E0;
131
146
 
132
147
  background-color: $body-color;
133
- // border-inline-end: 1px solid #e0e0e0;
148
+ border-inline-end: 1px solid $tableBorderColor;
149
+ border-bottom: 1px solid $tableBorderColor;
134
150
 
135
- &::before {
136
- content: "";
137
- position: absolute;
138
- inset-block: 0;
139
- right: 0;
140
- inset-inline-start: 0px;
141
- border-inline-end: 1px solid #e0e0e0;
142
- }
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
+ // }
143
159
 
144
160
  &.ui-rc-grid-cell-ellipsis {
145
161
 
@@ -241,6 +257,10 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
241
257
 
242
258
  .#{$prefix}-grid-tbody {
243
259
 
260
+ tr.#{$prefix}-grid-row {
261
+ border-bottom: 1px solid lightgray;
262
+ }
263
+
244
264
  .#{$prefix}-grid-row {
245
265
  display: flex;
246
266
  position: absolute;
@@ -527,6 +547,14 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
527
547
  background-color: #f0f0f0;
528
548
  }
529
549
 
550
+ &.#{$prefix}-grid-cell-command {
551
+ padding: 2px 8px;
552
+
553
+ .ui-rc_cell-content {
554
+ display: flex;
555
+ }
556
+ }
557
+
530
558
 
531
559
  .isValid {
532
560
  &::after {
@@ -961,7 +989,7 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
961
989
  .ui-rc-table-row-expand-icon::before,
962
990
  .ui-rc-table-row-expand-icon::after {
963
991
  position: absolute;
964
- background: currentcolor;
992
+ background: #000000de;
965
993
  transition: transform 0.3s ease-out;
966
994
  content: "";
967
995