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.
- package/es/grid-component/ColumnsChoose.js +0 -3
- package/es/grid-component/InternalTable.js +0 -4
- package/es/grid-component/TableGrid.js +0 -4
- package/es/grid-component/TempTable.js +2 -0
- package/es/grid-component/hooks/columns/index.js +0 -8
- package/es/grid-component/hooks/utils.js +0 -14
- package/es/grid-component/table/GridEdit.js +3 -5
- package/es/table-component/InternalTable.js +9 -3
- package/es/table-component/TableContainer.d.ts +1 -0
- package/es/table-component/TableContainer.js +11 -2
- package/es/table-component/TableContainerEdit.d.ts +1 -1
- package/es/table-component/TableContainerEdit.js +34 -13
- package/es/table-component/body/EditableCell.js +3 -2
- package/es/table-component/body/TableBodyCell.js +165 -9
- package/es/table-component/body/TableBodyCellEdit.js +22 -23
- package/es/table-component/body/TableBodyRow.js +0 -3
- package/es/table-component/header/TableHeadCell.d.ts +2 -0
- package/es/table-component/header/TableHeadCell.js +10 -6
- package/es/table-component/header/TableHeadRow.d.ts +1 -1
- package/es/table-component/header/TableHeadRow.js +4 -5
- package/es/table-component/hook/utils.d.ts +1 -0
- package/es/table-component/hook/utils.js +23 -5
- package/es/table-component/style.scss +42 -14
- package/es/table-component/table/Grid.d.ts +1 -0
- package/es/table-component/table/Grid.js +3 -1
- package/es/table-component/table/TableWrapper.js +5 -5
- package/es/table-component/type.d.ts +14 -1
- package/es/table-component/useContext.d.ts +5 -2
- package/es/table-component/useContext.js +1 -0
- package/lib/grid-component/ColumnsChoose.js +0 -3
- package/lib/grid-component/InternalTable.js +0 -4
- package/lib/grid-component/TableGrid.js +0 -4
- package/lib/grid-component/TempTable.js +2 -0
- package/lib/grid-component/hooks/columns/index.js +0 -8
- package/lib/grid-component/hooks/utils.js +0 -14
- package/lib/grid-component/table/GridEdit.js +3 -5
- package/lib/table-component/InternalTable.js +8 -2
- package/lib/table-component/TableContainer.d.ts +1 -0
- package/lib/table-component/TableContainer.js +11 -2
- package/lib/table-component/TableContainerEdit.d.ts +1 -1
- package/lib/table-component/TableContainerEdit.js +34 -13
- package/lib/table-component/body/EditableCell.js +3 -2
- package/lib/table-component/body/TableBodyCell.js +165 -9
- package/lib/table-component/body/TableBodyCellEdit.js +22 -22
- package/lib/table-component/body/TableBodyRow.js +0 -3
- package/lib/table-component/header/TableHeadCell.d.ts +2 -0
- package/lib/table-component/header/TableHeadCell.js +9 -6
- package/lib/table-component/header/TableHeadRow.d.ts +1 -1
- package/lib/table-component/header/TableHeadRow.js +4 -5
- package/lib/table-component/hook/utils.d.ts +1 -0
- package/lib/table-component/hook/utils.js +24 -5
- package/lib/table-component/style.scss +42 -14
- package/lib/table-component/table/Grid.d.ts +1 -0
- package/lib/table-component/table/Grid.js +3 -1
- package/lib/table-component/table/TableWrapper.js +5 -5
- package/lib/table-component/type.d.ts +14 -1
- package/lib/table-component/useContext.d.ts +5 -2
- package/lib/table-component/useContext.js +1 -0
- 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
|
-
},
|
|
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
|
-
},
|
|
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?.
|
|
123
|
-
[`${prefix}-grid-cell-text-right`]: columnMeta?.
|
|
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
|
-
},
|
|
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("
|
|
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
|
|
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?.
|
|
659
|
-
[`${prefix}-grid-cell-text-right`]: columnMeta?.
|
|
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?.
|
|
736
|
-
[`${prefix}-grid-cell-text-right`]: columnMeta?.
|
|
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?.
|
|
761
|
-
[`${prefix}-grid-cell-text-right`]: columnMeta?.
|
|
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-
|
|
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?.
|
|
862
|
-
[`${prefix}-grid-cell-text-right`]: columnMeta?.
|
|
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 &&
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
55
|
+
table: table,
|
|
56
|
+
columnVirtualizer: columnVirtualizer
|
|
58
57
|
// rowHeaderVirtualizer={rowHeaderVirtualizer}
|
|
59
58
|
,
|
|
60
59
|
colSpan: header.colSpan,
|
|
@@ -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
|
-
|
|
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
|
-
|
|
148
|
+
border-inline-end: 1px solid $tableBorderColor;
|
|
149
|
+
border-bottom: 1px solid $tableBorderColor;
|
|
134
150
|
|
|
135
|
-
&::before {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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:
|
|
992
|
+
background: #000000de;
|
|
965
993
|
transition: transform 0.3s ease-out;
|
|
966
994
|
content: "";
|
|
967
995
|
|