es-grid-template 1.8.56 → 1.8.57
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/type.d.ts +8 -0
- package/es/table-component/TableContainer.js +6 -0
- package/es/table-component/TableContainerEdit.js +4 -2
- package/es/table-component/body/TableBodyCell.js +6 -49
- package/es/table-component/body/TableBodyRow.js +7 -12
- package/es/table-component/footer/TableFooterRow.js +6 -3
- package/es/table-component/header/TableHead.js +4 -1
- package/es/table-component/header/TableHeadCell2.js +7 -48
- package/es/table-component/header/TableHeadGroupCell.js +13 -225
- package/es/table-component/header/TableHeadRow.js +7 -19
- package/es/table-component/hook/useColumns.js +17 -3
- package/es/table-component/hook/utils.js +0 -17
- package/es/table-component/style.scss +6 -5
- package/es/table-component/type.d.ts +7 -1
- package/es/table-component/useContext.d.ts +4 -1
- package/lib/grid-component/type.d.ts +8 -0
- package/lib/table-component/TableContainer.js +6 -0
- package/lib/table-component/TableContainerEdit.js +4 -2
- package/lib/table-component/body/TableBodyCell.js +6 -49
- package/lib/table-component/body/TableBodyRow.js +7 -12
- package/lib/table-component/footer/TableFooterRow.js +6 -3
- package/lib/table-component/header/TableHead.js +4 -1
- package/lib/table-component/header/TableHeadCell2.js +7 -48
- package/lib/table-component/header/TableHeadGroupCell.js +11 -223
- package/lib/table-component/header/TableHeadRow.js +7 -20
- package/lib/table-component/hook/useColumns.js +17 -3
- package/lib/table-component/hook/utils.js +0 -17
- package/lib/table-component/style.scss +6 -5
- package/lib/table-component/type.d.ts +7 -1
- package/lib/table-component/useContext.d.ts +4 -1
- package/package.json +1 -1
|
@@ -175,6 +175,7 @@ const TableBodyCell = props => {
|
|
|
175
175
|
const [isOpenTooltip, setIsOpenTooltip] = _react.default.useState(false);
|
|
176
176
|
const record = cell.row.original;
|
|
177
177
|
const columnMeta = cell.column.columnDef.meta ?? {};
|
|
178
|
+
const cellStyles = typeof columnMeta.onCellStyles === 'function' ? columnMeta.onCellStyles(cell.getValue(), cell) : columnMeta.onCellStyles;
|
|
178
179
|
|
|
179
180
|
// const tooltipContent = (isOpenTooltip === false || columnMeta.type === 'checkbox') ? '' : flexRender(cell.column.columnDef.cell, cell.getContext());
|
|
180
181
|
const tooltipContent = isOpenTooltip === false ? '' : columnMeta?.tooltipDescription ? typeof columnMeta.tooltipDescription === 'function' ? columnMeta.tooltipDescription({
|
|
@@ -204,18 +205,13 @@ const TableBodyCell = props => {
|
|
|
204
205
|
[`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
|
|
205
206
|
[`${prefix}-grid-cell-text-center`]: columnMeta?.textAlign === 'center',
|
|
206
207
|
[`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right'
|
|
207
|
-
// [`${prefix}-grid-cell-index-selected`]: rowRange?.includes(cell.row.id),
|
|
208
|
-
// [`${prefix}-grid-cell-index-selected`]: selectRowIds?.includes(cell.row.id),
|
|
209
208
|
}),
|
|
210
209
|
style: {
|
|
210
|
+
...cellStyles,
|
|
211
211
|
display: 'flex',
|
|
212
|
-
// height: '36px',
|
|
213
212
|
userSelect: 'none',
|
|
214
213
|
width: cell.column.getSize(),
|
|
215
|
-
// flexBasis: cell.column.getSize(),
|
|
216
214
|
minWidth: cell.column.getSize(),
|
|
217
|
-
// flex: 1,
|
|
218
|
-
// maxWidth: cell.column.getSize(),
|
|
219
215
|
...(0, _utils.getCommonPinningStyles)(cell.column)
|
|
220
216
|
},
|
|
221
217
|
onClick: e => {
|
|
@@ -279,12 +275,10 @@ const TableBodyCell = props => {
|
|
|
279
275
|
[`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right'
|
|
280
276
|
}),
|
|
281
277
|
style: {
|
|
278
|
+
...cellStyles,
|
|
282
279
|
display: 'flex',
|
|
283
|
-
// height: '36px',
|
|
284
280
|
width: cell.column.getSize(),
|
|
285
281
|
minWidth: cell.column.getSize(),
|
|
286
|
-
// flex: 1,
|
|
287
|
-
// maxWidth: cell.column.getSize(),
|
|
288
282
|
...(0, _utils.getCommonPinningStyles)(cell.column)
|
|
289
283
|
}
|
|
290
284
|
}, renderCommand({
|
|
@@ -305,51 +299,16 @@ const TableBodyCell = props => {
|
|
|
305
299
|
[`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right'
|
|
306
300
|
}),
|
|
307
301
|
style: {
|
|
302
|
+
...cellStyles,
|
|
308
303
|
display: 'flex',
|
|
309
|
-
// height: '36px',
|
|
310
304
|
minHeight: 36,
|
|
311
305
|
width: cell.column.getSize(),
|
|
312
306
|
minWidth: cell.column.getSize(),
|
|
313
|
-
// flex: 1,
|
|
314
|
-
// maxWidth: cell.column.getSize(),
|
|
315
307
|
...(0, _utils.getCommonPinningStyles)(cell.column)
|
|
316
308
|
}
|
|
317
309
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
318
310
|
className: (0, _classnames.default)('ui-rc_cell-content', {})
|
|
319
|
-
}, cell.column.
|
|
320
|
-
className: "ui-rc-table-row-expand-trigger",
|
|
321
|
-
style: {
|
|
322
|
-
paddingLeft: `${cell.row.depth * 25}px`
|
|
323
|
-
}
|
|
324
|
-
}, /*#__PURE__*/_react.default.createElement("div", null, cell.row.getCanExpand() ? /*#__PURE__*/_react.default.createElement("button", {
|
|
325
|
-
// onClick: row.getToggleExpandedHandler(),
|
|
326
|
-
onClick: () => {
|
|
327
|
-
const keys = Object.keys(expanded);
|
|
328
|
-
// @ts-ignore
|
|
329
|
-
const tmp = {
|
|
330
|
-
...expanded
|
|
331
|
-
};
|
|
332
|
-
if (keys.includes(cell.row.id)) {
|
|
333
|
-
delete tmp[cell.row.id];
|
|
334
|
-
setExpanded(tmp);
|
|
335
|
-
} else {
|
|
336
|
-
setExpanded(old => ({
|
|
337
|
-
...old,
|
|
338
|
-
[cell.row.id]: true
|
|
339
|
-
}));
|
|
340
|
-
}
|
|
341
|
-
},
|
|
342
|
-
style: {
|
|
343
|
-
cursor: "pointer"
|
|
344
|
-
},
|
|
345
|
-
className: "ui-rc-table-row-expand"
|
|
346
|
-
}, cell.row.getIsExpanded() ? /*#__PURE__*/_react.default.createElement("span", {
|
|
347
|
-
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-expanded"
|
|
348
|
-
}) : /*#__PURE__*/_react.default.createElement("span", {
|
|
349
|
-
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
|
|
350
|
-
})) : /*#__PURE__*/_react.default.createElement("span", {
|
|
351
|
-
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
|
|
352
|
-
}))), cell.column.id === "selection_column" && renderSelection({
|
|
311
|
+
}, cell.column.id === "selection_column" && renderSelection({
|
|
353
312
|
cell,
|
|
354
313
|
table,
|
|
355
314
|
selectionSettings,
|
|
@@ -392,13 +351,11 @@ const TableBodyCell = props => {
|
|
|
392
351
|
[`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right' || columnMeta.type === 'number'
|
|
393
352
|
}),
|
|
394
353
|
style: {
|
|
354
|
+
...cellStyles,
|
|
395
355
|
display: 'flex',
|
|
396
356
|
width: cell.column.getSize(),
|
|
397
357
|
minWidth: cell.column.getSize(),
|
|
398
358
|
minHeight: 36,
|
|
399
|
-
// flex: 1,
|
|
400
|
-
// maxWidth: cell.column.getSize(),
|
|
401
|
-
// height: '36px',
|
|
402
359
|
...(0, _utils.getCommonPinningStyles)(cell.column)
|
|
403
360
|
},
|
|
404
361
|
onMouseEnter: e => {
|
|
@@ -34,7 +34,8 @@ const TableBodyRow = ({
|
|
|
34
34
|
recordDoubleClick,
|
|
35
35
|
focusedCell,
|
|
36
36
|
rowClassName,
|
|
37
|
-
rowEditable
|
|
37
|
+
rowEditable,
|
|
38
|
+
onRowStyles
|
|
38
39
|
} = _react.default.useContext(_useContext.TableContext);
|
|
39
40
|
const visibleCells = row.getVisibleCells();
|
|
40
41
|
const virtualColumns = columnVirtualizer.getVirtualItems();
|
|
@@ -46,23 +47,18 @@ const TableBodyRow = ({
|
|
|
46
47
|
const virtualRight = virtualPaddingRight ? [virtualPaddingRight] : [];
|
|
47
48
|
const templateColumns = [...leftTemplate, ...virtualLeft, ...centerTemplate, ...virtualRight, ...rightTemplate];
|
|
48
49
|
const rowClass = typeof rowClassName === 'function' ? rowClassName(row.original, row.index, row.depth) : rowClassName;
|
|
50
|
+
const rowStyles = typeof onRowStyles === 'function' ? onRowStyles(row.original, row) : onRowStyles;
|
|
49
51
|
const isRowEditable = rowEditable ? rowEditable(row.original) : true;
|
|
50
52
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
51
53
|
"data-index": virtualRow.index //needed for dynamic row height measurement
|
|
52
54
|
,
|
|
53
55
|
ref: node => rowVirtualizer.measureElement(node) //measure dynamic row height
|
|
54
56
|
,
|
|
55
|
-
key: row.id
|
|
56
|
-
|
|
57
|
-
,
|
|
58
|
-
"data-row-key": row.id
|
|
59
|
-
|
|
60
|
-
// className={} ui-rc-table-row-selected
|
|
61
|
-
,
|
|
57
|
+
key: row.id,
|
|
58
|
+
"data-row-key": row.id,
|
|
62
59
|
className: (0, _classnames.default)(`${prefix}-grid-row ${rowClass ?? ''}`, {
|
|
63
60
|
[`${prefix}-grid-row-selected`]: row.getIsSelected(),
|
|
64
61
|
[`${prefix}-grid-row-focus`]: row.id === focusedCell?.rowId && !editAble
|
|
65
|
-
// [`${prefix}-grid-row-focus`]: true,
|
|
66
62
|
}),
|
|
67
63
|
style: {
|
|
68
64
|
// display: 'flex',
|
|
@@ -70,12 +66,11 @@ const TableBodyRow = ({
|
|
|
70
66
|
// position: 'absolute',
|
|
71
67
|
transform: `translateY(${virtualRow.start}px)`,
|
|
72
68
|
//this should always be a `style` as it changes on scroll
|
|
73
|
-
// width: '100%',
|
|
74
69
|
// height: isEditing ? '36px' : undefined,
|
|
75
70
|
gridTemplateColumns: `${templateColumns.map(n => `${n}fr`).join(" ")}`,
|
|
76
|
-
// gridTemplateColumns: `repeat(${centerCOlumns.length + fixedLeftColumns.length + fixedRightColumns.length}, minmax(0, 1fr))`,
|
|
77
71
|
height: isEditing ? virtualRow.size : undefined,
|
|
78
|
-
minHeight: isEditing ? undefined : virtualRow.size
|
|
72
|
+
minHeight: isEditing ? undefined : virtualRow.size,
|
|
73
|
+
...rowStyles
|
|
79
74
|
},
|
|
80
75
|
onDoubleClick: e => {
|
|
81
76
|
recordDoubleClick?.({
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _TableFooterCell = _interopRequireDefault(require("./TableFooterCell"));
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _useContext = require("../useContext");
|
|
10
11
|
// import type { Virtualizer } from "@tanstack/react-virtual";
|
|
11
12
|
// import type { Person } from "../makeData";
|
|
12
13
|
|
|
@@ -28,17 +29,19 @@ const TableFooterRow = ({
|
|
|
28
29
|
|
|
29
30
|
// const a = table.getVisibleFlatColumns()
|
|
30
31
|
const visibleColumns = table.getVisibleLeafColumns();
|
|
32
|
+
const {
|
|
33
|
+
onRowFooterStyles
|
|
34
|
+
} = _react.default.useContext(_useContext.TableContext);
|
|
35
|
+
const rowStyles = typeof onRowFooterStyles === 'function' ? onRowFooterStyles() : onRowFooterStyles;
|
|
31
36
|
|
|
32
37
|
// const
|
|
33
38
|
|
|
34
39
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
35
|
-
// data-index={headerGroup.id}
|
|
36
40
|
key: headerGroup.id,
|
|
37
41
|
style: {
|
|
42
|
+
...rowStyles,
|
|
38
43
|
display: "grid",
|
|
39
44
|
width: "100%",
|
|
40
|
-
// borderBottom: "1px solid #e0e0e0",
|
|
41
|
-
// borderTop: "1px solid #e0e0e0",
|
|
42
45
|
height: 37,
|
|
43
46
|
gridTemplateColumns: `${table.getVisibleLeafColumns().map(n => `${n.getSize()}fr`).join(" ")}`
|
|
44
47
|
},
|
|
@@ -34,15 +34,18 @@ const TableHead = ({
|
|
|
34
34
|
// fixedRightColumns
|
|
35
35
|
}) => {
|
|
36
36
|
const {
|
|
37
|
-
prefix
|
|
37
|
+
prefix,
|
|
38
|
+
onRowHeaderStyles
|
|
38
39
|
} = (0, _react.useContext)(_useContext.TableContext);
|
|
39
40
|
const headerGroups = table.getFlatHeaders();
|
|
40
41
|
const leafColumns = table.getVisibleFlatColumns();
|
|
41
42
|
// const leafColumns11 = table.getIsAllColumnsVisible();
|
|
42
43
|
const headerDepth = table.getHeaderGroups().length;
|
|
44
|
+
const rowStyles = typeof onRowHeaderStyles === 'function' ? onRowHeaderStyles() : onRowHeaderStyles;
|
|
43
45
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
44
46
|
className: `${prefix}-grid-thead`,
|
|
45
47
|
style: {
|
|
48
|
+
...rowStyles,
|
|
46
49
|
display: 'grid',
|
|
47
50
|
position: 'sticky',
|
|
48
51
|
top: 0,
|
|
@@ -18,15 +18,6 @@ var _renderFilter = require("./renderFilter");
|
|
|
18
18
|
var _server = _interopRequireDefault(require("react-dom/server"));
|
|
19
19
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
20
20
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
21
|
-
// import { useSortable } from "@dnd-kit/sortable"
|
|
22
|
-
|
|
23
|
-
// import { CSS } from '@dnd-kit/utilities'
|
|
24
|
-
// import type { Virtualizer } from '@tanstack/react-virtual'
|
|
25
|
-
|
|
26
|
-
// import { ColumnTable } from "../type";
|
|
27
|
-
|
|
28
|
-
// import { Tooltip } from 'react-tooltip'
|
|
29
|
-
|
|
30
21
|
const TableHeadCell2 = props => {
|
|
31
22
|
const {
|
|
32
23
|
column,
|
|
@@ -34,9 +25,6 @@ const TableHeadCell2 = props => {
|
|
|
34
25
|
getPopupContainer,
|
|
35
26
|
table,
|
|
36
27
|
depth,
|
|
37
|
-
// t,
|
|
38
|
-
// columnVirtualizer,
|
|
39
|
-
// rowHeaderVirtualizer,
|
|
40
28
|
colSpan,
|
|
41
29
|
rowSpan
|
|
42
30
|
} = props;
|
|
@@ -61,33 +49,16 @@ const TableHeadCell2 = props => {
|
|
|
61
49
|
const {
|
|
62
50
|
filterIcon
|
|
63
51
|
} = column.columnDef.meta ?? {};
|
|
64
|
-
|
|
65
|
-
// const column = (column.columnDef ?? {}) as ColumnTable
|
|
66
|
-
// const column = column.columnDef
|
|
67
|
-
|
|
68
52
|
const originalColumn = column.columnDef.meta ?? {};
|
|
53
|
+
const cellStyles = typeof originalColumn.onCellHeaderStyles === 'function' ? originalColumn.onCellHeaderStyles(header) : originalColumn.onCellHeaderStyles;
|
|
69
54
|
const filtered = (column.getFilterValue() ?? []).length > 0;
|
|
70
55
|
const cellContent = (0, _reactTable.flexRender)(column.columnDef.header, header.getContext());
|
|
71
|
-
// const cellContent = 'aaaa'
|
|
72
|
-
|
|
73
56
|
const html = _server.default.renderToStaticMarkup( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, cellContent));
|
|
74
57
|
const hasValue = html.trim().length > 0;
|
|
75
|
-
|
|
76
|
-
// const filtered = column.getIsFiltered()
|
|
77
|
-
|
|
78
|
-
// const { attributes, isDragging, listeners, setNodeRef, transform } =
|
|
79
|
-
// useSortable({
|
|
80
|
-
// id: column.id,
|
|
81
|
-
// })
|
|
82
|
-
|
|
83
58
|
const style = {
|
|
84
|
-
// opacity: isDragging ? 0.8 : 1,
|
|
85
|
-
// position: 'relative',
|
|
86
|
-
// transform: CSS.Translate.toString(transform), // translate instead of transform to avoid squishing
|
|
87
59
|
transition: 'width transform 0.2s ease-in-out',
|
|
88
|
-
whiteSpace: 'nowrap'
|
|
89
|
-
|
|
90
|
-
// zIndex: isDragging ? 1 : 0,
|
|
60
|
+
whiteSpace: 'nowrap',
|
|
61
|
+
...cellStyles
|
|
91
62
|
};
|
|
92
63
|
const getDropdownTrigger = () => {
|
|
93
64
|
let iconFilter;
|
|
@@ -241,25 +212,15 @@ const TableHeadCell2 = props => {
|
|
|
241
212
|
[`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
|
|
242
213
|
[`${prefix}-grid-cell-text-center`]: (originalColumn?.headerTextAlign ?? originalColumn?.textAlign) === 'center',
|
|
243
214
|
[`${prefix}-grid-cell-text-right`]: (originalColumn?.headerTextAlign ?? originalColumn.textAlign) === 'right'
|
|
244
|
-
})
|
|
245
|
-
// colSpan={colSpan}
|
|
246
|
-
// rowSpan={rowSpan}
|
|
247
|
-
,
|
|
248
|
-
|
|
215
|
+
}),
|
|
249
216
|
key: column.id,
|
|
250
217
|
style: {
|
|
251
|
-
|
|
252
|
-
// width: column.getSize(),
|
|
218
|
+
...style,
|
|
253
219
|
minWidth: column.getSize(),
|
|
254
|
-
// flex: 1,
|
|
255
|
-
// flexGrow: column.getSize(),
|
|
256
|
-
|
|
257
220
|
gridRow: `${depth + 1} / span ${rowSpan}`,
|
|
258
221
|
gridColumn: `span ${colSpan}`,
|
|
259
|
-
// maxWidth: header.getSize(),
|
|
260
222
|
...(0, _utils.getCommonPinningStyles)(column),
|
|
261
|
-
width: 'auto'
|
|
262
|
-
...style
|
|
223
|
+
width: 'auto'
|
|
263
224
|
},
|
|
264
225
|
"data-tooltip-id": `${id}-tooltip-content`,
|
|
265
226
|
"data-tooltip-delay-show": 500,
|
|
@@ -270,9 +231,7 @@ const TableHeadCell2 = props => {
|
|
|
270
231
|
[`${prefix}-grid-selection-column`]: column.id === 'selection_column'
|
|
271
232
|
})
|
|
272
233
|
}, column.id === 'selection_column' && selectionSettings && selectionSettings.hideSelectAll !== true && selectionSettings.type !== 'single' && selectionSettings.mode !== 'radio' && /*#__PURE__*/_react.default.createElement(_rcMasterUi.Checkbox, {
|
|
273
|
-
checked: table.getIsAllRowsSelected()
|
|
274
|
-
// indeterminate={table.getIsSomeRowsSelected()}
|
|
275
|
-
,
|
|
234
|
+
checked: table.getIsAllRowsSelected(),
|
|
276
235
|
indeterminate: table.getIsSomePageRowsSelected(),
|
|
277
236
|
onChange: e => {
|
|
278
237
|
table.getToggleAllRowsSelectedHandler()(e);
|
|
@@ -7,31 +7,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _reactTable = require("@tanstack/react-table");
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _antd = require("antd");
|
|
11
|
-
var _becoxyIcons = require("becoxy-icons");
|
|
12
10
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
11
|
var _rcMasterUi = require("rc-master-ui");
|
|
14
|
-
var _constant = require("../hook/constant");
|
|
15
12
|
var _utils = require("../hook/utils");
|
|
16
13
|
var _useContext = require("../useContext");
|
|
17
|
-
var _renderFilter = require("./renderFilter");
|
|
18
14
|
var _server = _interopRequireDefault(require("react-dom/server"));
|
|
19
15
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
20
16
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
21
|
-
// import { useSortable } from "@dnd-kit/sortable"
|
|
22
|
-
|
|
23
|
-
// import { CSS } from '@dnd-kit/utilities'
|
|
24
|
-
// import type { Virtualizer } from '@tanstack/react-virtual'
|
|
25
|
-
|
|
26
|
-
// import { ColumnTable } from "../type";
|
|
27
|
-
|
|
28
|
-
// import { Tooltip } from 'react-tooltip'
|
|
29
|
-
|
|
30
17
|
const TableHeadGroupCell = props => {
|
|
31
18
|
const {
|
|
32
19
|
column,
|
|
33
20
|
header,
|
|
34
|
-
getPopupContainer,
|
|
21
|
+
// getPopupContainer,
|
|
35
22
|
table,
|
|
36
23
|
depth,
|
|
37
24
|
// t,
|
|
@@ -41,30 +28,21 @@ const TableHeadGroupCell = props => {
|
|
|
41
28
|
rowSpan
|
|
42
29
|
} = props;
|
|
43
30
|
const {
|
|
44
|
-
t,
|
|
31
|
+
// t,
|
|
45
32
|
prefix,
|
|
46
|
-
setSorterChange,
|
|
47
|
-
setFilterChange,
|
|
33
|
+
// setSorterChange,
|
|
34
|
+
// setFilterChange,
|
|
48
35
|
wrapSettings,
|
|
49
36
|
selectionSettings,
|
|
50
37
|
setIsSelectionChange,
|
|
51
|
-
id
|
|
52
|
-
locale
|
|
38
|
+
id
|
|
39
|
+
// locale
|
|
53
40
|
} = (0, _react.useContext)(_useContext.TableContext);
|
|
54
41
|
const isPinned = column.getIsPinned();
|
|
55
42
|
const isLastLeftPinnedColumn = isPinned === 'left' && column.getIsLastColumn('left');
|
|
56
43
|
const isFirstRightPinnedColumn = isPinned === 'right' && column.getIsFirstColumn('right');
|
|
57
|
-
const [selectedKeys, setSelectedKeys] = _react.default.useState([]);
|
|
58
|
-
const [visible, setVisible] = _react.default.useState(false);
|
|
59
|
-
const {
|
|
60
|
-
filterIcon
|
|
61
|
-
} = column.columnDef.meta ?? {};
|
|
62
|
-
|
|
63
|
-
// const column = (column.columnDef ?? {}) as ColumnTable
|
|
64
|
-
// const column = column.columnDef
|
|
65
|
-
|
|
66
44
|
const originalColumn = column.columnDef.meta ?? {};
|
|
67
|
-
const
|
|
45
|
+
const cellStyles = typeof originalColumn.onCellHeaderStyles === 'function' ? originalColumn.onCellHeaderStyles(header) : originalColumn.onCellHeaderStyles;
|
|
68
46
|
const cellContent = (0, _reactTable.flexRender)(column.columnDef.header, header.getContext());
|
|
69
47
|
const html = _server.default.renderToStaticMarkup( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, cellContent));
|
|
70
48
|
const hasValue = html.trim().length > 0;
|
|
@@ -77,148 +55,10 @@ const TableHeadGroupCell = props => {
|
|
|
77
55
|
// })
|
|
78
56
|
|
|
79
57
|
const style = {
|
|
80
|
-
// opacity: isDragging ? 0.8 : 1,
|
|
81
|
-
// position: 'relative',
|
|
82
|
-
// transform: CSS.Translate.toString(transform), // translate instead of transform to avoid squishing
|
|
83
58
|
transition: 'width transform 0.2s ease-in-out',
|
|
84
|
-
whiteSpace: 'nowrap'
|
|
85
|
-
|
|
86
|
-
// zIndex: isDragging ? 1 : 0,
|
|
59
|
+
whiteSpace: 'nowrap',
|
|
60
|
+
...cellStyles
|
|
87
61
|
};
|
|
88
|
-
const getDropdownTrigger = () => {
|
|
89
|
-
let iconFilter;
|
|
90
|
-
if (typeof filterIcon === 'function') {
|
|
91
|
-
iconFilter = filterIcon(filtered);
|
|
92
|
-
} else if (filterIcon) {
|
|
93
|
-
iconFilter = filterIcon;
|
|
94
|
-
} else {
|
|
95
|
-
iconFilter = /*#__PURE__*/_react.default.createElement(_becoxyIcons.FilterFill, {
|
|
96
|
-
style: {
|
|
97
|
-
color: filtered ? '#E3165B' : '#283046'
|
|
98
|
-
},
|
|
99
|
-
fontSize: 12
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
return /*#__PURE__*/_react.default.createElement("span", {
|
|
103
|
-
role: "button",
|
|
104
|
-
tabIndex: -1,
|
|
105
|
-
className: (0, _classnames.default)(`${prefix}-trigger`, {
|
|
106
|
-
active: filtered
|
|
107
|
-
}),
|
|
108
|
-
onClick: e => {
|
|
109
|
-
e.stopPropagation();
|
|
110
|
-
}
|
|
111
|
-
}, iconFilter);
|
|
112
|
-
};
|
|
113
|
-
const triggerVisible = newVisible => {
|
|
114
|
-
setVisible(newVisible);
|
|
115
|
-
};
|
|
116
|
-
const onVisibleChange = (newVisible, info) => {
|
|
117
|
-
if (info.source === 'trigger') {
|
|
118
|
-
if (newVisible) {
|
|
119
|
-
const filterValue = column.getFilterValue() ?? [];
|
|
120
|
-
const operatorValue = column.getFilterOperator() ?? (0, _utils.getDefaultOperator)(column?.meta ?? {});
|
|
121
|
-
setSelectedKeys(filterValue);
|
|
122
|
-
column.setFilterOperator?.(operatorValue);
|
|
123
|
-
} else {}
|
|
124
|
-
triggerVisible(newVisible);
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
const doFilter = type => {
|
|
128
|
-
if (type) {
|
|
129
|
-
column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
|
|
130
|
-
} else {
|
|
131
|
-
column.setFilterValue(undefined);
|
|
132
|
-
setSelectedKeys([]);
|
|
133
|
-
}
|
|
134
|
-
setFilterChange(true);
|
|
135
|
-
triggerVisible(false);
|
|
136
|
-
setTimeout(() => {
|
|
137
|
-
setFilterChange(false);
|
|
138
|
-
}, 10);
|
|
139
|
-
};
|
|
140
|
-
const mergedDropdownProps = (0, _utils.extendsObject)({
|
|
141
|
-
trigger: ['click'],
|
|
142
|
-
placement: 'bottomRight',
|
|
143
|
-
// placement: direction === 'rtl' ? 'bottomLeft' : 'bottomRight',
|
|
144
|
-
children: getDropdownTrigger(),
|
|
145
|
-
getPopupContainer
|
|
146
|
-
}, {
|
|
147
|
-
// ...filterDropdownProps,
|
|
148
|
-
// rootClassName: classNames(rootClassName, filterDropdownProps.rootClassName),
|
|
149
|
-
open: visible,
|
|
150
|
-
onOpenChange: onVisibleChange,
|
|
151
|
-
destroyPopupOnHide: true,
|
|
152
|
-
dropdownRender: () => {
|
|
153
|
-
const type = (0, _utils.getTypeFilter)(originalColumn);
|
|
154
|
-
const operatorValue = column.getFilterOperator() ?? (0, _utils.getDefaultOperator)(originalColumn);
|
|
155
|
-
const operatorOptions = ['Checkbox', 'Dropdown', 'DropTree', 'CheckboxDropdown'].includes(type) ? _constant.booleanOperator : !type || type === 'Text' ? _constant.stringOperator : _constant.numberOperator;
|
|
156
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
157
|
-
// className='ui-rc-table-filter-dropdown'
|
|
158
|
-
|
|
159
|
-
className: (0, _classnames.default)(`${prefix}-grid-filter-dropdown`, {}),
|
|
160
|
-
style: {}
|
|
161
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
162
|
-
style: {
|
|
163
|
-
minWidth: 275,
|
|
164
|
-
padding: '8px'
|
|
165
|
-
}
|
|
166
|
-
}, /*#__PURE__*/_react.default.createElement("div", null), column.meta?.showOperator !== false && column.meta?.typeFilter !== 'DateRange' && column.meta?.typeFilter !== 'NumberRange' && /*#__PURE__*/_react.default.createElement("div", {
|
|
167
|
-
className: 'mb-1'
|
|
168
|
-
}, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Select, {
|
|
169
|
-
options: (0, _constant.translateOption)(operatorOptions, t),
|
|
170
|
-
style: {
|
|
171
|
-
width: '100%',
|
|
172
|
-
marginBottom: 8
|
|
173
|
-
},
|
|
174
|
-
value: operatorValue,
|
|
175
|
-
onChange: val => {
|
|
176
|
-
column.setFilterOperator(val);
|
|
177
|
-
}
|
|
178
|
-
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
179
|
-
style: {
|
|
180
|
-
marginBottom: 8
|
|
181
|
-
}
|
|
182
|
-
}, (0, _renderFilter.renderFilter)({
|
|
183
|
-
column: column,
|
|
184
|
-
selectedKeys,
|
|
185
|
-
setSelectedKeys
|
|
186
|
-
// selectedKeys: (column.getFilterValue() ?? []) as string[],
|
|
187
|
-
// setSelectedKeys: column.setFilterValue,
|
|
188
|
-
})), /*#__PURE__*/_react.default.createElement(_antd.Space, {
|
|
189
|
-
style: {
|
|
190
|
-
justifyContent: 'end',
|
|
191
|
-
width: '100%'
|
|
192
|
-
}
|
|
193
|
-
}, /*#__PURE__*/_react.default.createElement(_antd.Button, {
|
|
194
|
-
type: "primary",
|
|
195
|
-
onClick: () => {
|
|
196
|
-
// column.setFilterValue(selectedKeys)
|
|
197
|
-
|
|
198
|
-
doFilter(true);
|
|
199
|
-
},
|
|
200
|
-
size: "small",
|
|
201
|
-
style: {
|
|
202
|
-
width: 90
|
|
203
|
-
}
|
|
204
|
-
}, t ? t('Filter') : 'Filter'), /*#__PURE__*/_react.default.createElement(_antd.Button, {
|
|
205
|
-
type: "link",
|
|
206
|
-
size: "small",
|
|
207
|
-
onClick: () => {
|
|
208
|
-
// column.setFilterValue([])
|
|
209
|
-
// column.setFilterOperator('')
|
|
210
|
-
|
|
211
|
-
setSelectedKeys([]);
|
|
212
|
-
doFilter(false);
|
|
213
|
-
}
|
|
214
|
-
}, t ? t('Clear') : 'Clear'))));
|
|
215
|
-
|
|
216
|
-
// if (typeof filterDropdownProps?.dropdownRender === 'function') {
|
|
217
|
-
// return filterDropdownProps.dropdownRender(dropdownContent);
|
|
218
|
-
// }
|
|
219
|
-
// return dropdownContent;
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
62
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
223
63
|
// ref={setNodeRef}
|
|
224
64
|
className: (0, _classnames.default)(`${prefix}-grid-cell`, {
|
|
@@ -228,21 +68,14 @@ const TableHeadGroupCell = props => {
|
|
|
228
68
|
[`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
|
|
229
69
|
[`${prefix}-grid-cell-text-center`]: (originalColumn?.headerTextAlign ?? originalColumn?.textAlign) === 'center',
|
|
230
70
|
[`${prefix}-grid-cell-text-right`]: (originalColumn?.headerTextAlign ?? originalColumn.textAlign) === 'right'
|
|
231
|
-
})
|
|
232
|
-
// colSpan={colSpan}
|
|
233
|
-
// rowSpan={rowSpan}
|
|
234
|
-
,
|
|
235
|
-
|
|
71
|
+
}),
|
|
236
72
|
"data-col-span": colSpan,
|
|
237
73
|
key: header.id,
|
|
238
74
|
style: {
|
|
239
|
-
// display: 'flex',
|
|
240
|
-
// width: column.getSize(),
|
|
241
75
|
minWidth: column.getSize(),
|
|
242
76
|
flex: 1,
|
|
243
77
|
gridRow: `${depth + 1} / span ${rowSpan}`,
|
|
244
78
|
gridColumn: `span ${colSpan}`,
|
|
245
|
-
// maxWidth: header.getSize(),
|
|
246
79
|
...(0, _utils.getCommonPinningStyles2)(header),
|
|
247
80
|
width: 'auto',
|
|
248
81
|
...style
|
|
@@ -276,52 +109,7 @@ const TableHeadGroupCell = props => {
|
|
|
276
109
|
[`${prefix}-grid-cell-ellipsis`]: !wrapSettings || !(wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header')),
|
|
277
110
|
[`${prefix}-grid-cell-text-wrap`]: wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header')
|
|
278
111
|
})
|
|
279
|
-
}, cellContent)),
|
|
280
|
-
className: "ui-rc-header-trigger"
|
|
281
|
-
}, column.getCanSort() && /*#__PURE__*/_react.default.createElement("div", {
|
|
282
|
-
style: {
|
|
283
|
-
marginInlineEnd: 6,
|
|
284
|
-
cursor: 'pointer'
|
|
285
|
-
},
|
|
286
|
-
onClick: e => {
|
|
287
|
-
setSorterChange(true);
|
|
288
|
-
const toggleSortingHandler = column.getToggleSortingHandler();
|
|
289
|
-
if (typeof toggleSortingHandler === 'function') {
|
|
290
|
-
toggleSortingHandler(e);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}, column.getIsSorted() ? column.getIsSorted() === 'asc' ? /*#__PURE__*/_react.default.createElement(_becoxyIcons.ArrowUp, {
|
|
294
|
-
fontSize: 15,
|
|
295
|
-
color: '#000'
|
|
296
|
-
// data-tooltip-id={`${id}-tooltip-header-trigger`}
|
|
297
|
-
,
|
|
298
|
-
"data-tooltip-id": `${id}-tooltip-content`
|
|
299
|
-
// data-tooltip-content='Nhấp để sắp xếp giảm dần'
|
|
300
|
-
,
|
|
301
|
-
"data-tooltip-content": locale?.triggerDesc ?? 'Click to sort descending'
|
|
302
|
-
}) : /*#__PURE__*/_react.default.createElement(_becoxyIcons.ArrowDown, {
|
|
303
|
-
fontSize: 15,
|
|
304
|
-
color: '#000',
|
|
305
|
-
"data-tooltip-id": `${id}-tooltip-content`
|
|
306
|
-
// data-tooltip-id={`${id}-tooltip-header-trigger`}
|
|
307
|
-
// data-tooltip-content='Nhấp để hủy sắp xếp'
|
|
308
|
-
,
|
|
309
|
-
"data-tooltip-content": locale?.cancelSort ?? 'Click to cancel sorting'
|
|
310
|
-
}) : /*#__PURE__*/_react.default.createElement(_becoxyIcons.SortCancel
|
|
311
|
-
// data-tooltip-id={`${id}-tooltip-header-trigger`}
|
|
312
|
-
, {
|
|
313
|
-
"data-tooltip-id": `${id}-tooltip-content`
|
|
314
|
-
// data-tooltip-content='Nhấp để sắp xếp tăng dần'
|
|
315
|
-
,
|
|
316
|
-
"data-tooltip-content": locale?.triggerAsc ?? 'Click to sort ascending',
|
|
317
|
-
fontSize: 15,
|
|
318
|
-
style: {
|
|
319
|
-
display: 'flex'
|
|
320
|
-
},
|
|
321
|
-
className: (0, _classnames.default)(`ui-rc-table-column-sorter-cancel`, {
|
|
322
|
-
active: true
|
|
323
|
-
})
|
|
324
|
-
})), column.getCanFilter() && /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Dropdown, mergedDropdownProps)))), column.getCanResize() && /*#__PURE__*/_react.default.createElement("div", {
|
|
112
|
+
}, cellContent))), column.getCanResize() && /*#__PURE__*/_react.default.createElement("div", {
|
|
325
113
|
onDoubleClick: () => column.resetSize(),
|
|
326
114
|
onMouseDown: header.getResizeHandler(),
|
|
327
115
|
onTouchStart: header.getResizeHandler(),
|
|
@@ -9,40 +9,29 @@ var _sortable = require("@dnd-kit/sortable");
|
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _useContext = require("../useContext");
|
|
11
11
|
var _TableHeadCell = _interopRequireDefault(require("./TableHeadCell"));
|
|
12
|
-
// import type { Virtualizer } from '@tanstack/react-virtual'
|
|
13
|
-
// import type { Person } from "../../tanstack-table/makeData"
|
|
14
|
-
|
|
15
|
-
// import { getCommonPinningStyles } from '../hook/utils'
|
|
16
|
-
|
|
17
12
|
const TableHeadRow = ({
|
|
18
13
|
table,
|
|
19
14
|
headerGroup,
|
|
20
15
|
columnVirtualizer
|
|
21
|
-
// virtualPaddingLeft,
|
|
22
|
-
// virtualPaddingRight,
|
|
23
|
-
// fixedLeftColumns,
|
|
24
|
-
// fixedRightColumns
|
|
25
16
|
}) => {
|
|
26
17
|
const {
|
|
27
|
-
prefix
|
|
18
|
+
prefix,
|
|
19
|
+
onRowHeaderStyles
|
|
28
20
|
} = _react.default.useContext(_useContext.TableContext);
|
|
29
|
-
|
|
30
|
-
// const virtualColumns = columnVirtualizer.getVirtualItems()
|
|
31
|
-
|
|
32
21
|
const columnOrder = table.getState().columnOrder;
|
|
22
|
+
const rowStyles = typeof onRowHeaderStyles === 'function' ? onRowHeaderStyles() : onRowHeaderStyles;
|
|
33
23
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
34
24
|
key: headerGroup.id
|
|
35
25
|
// ref={el => {
|
|
36
26
|
// if (el) rowHeaderVirtualizer.measureElement(el)
|
|
37
27
|
// }}
|
|
38
|
-
// data-index={rowHeaderVirtual?.index}
|
|
39
28
|
,
|
|
29
|
+
|
|
40
30
|
"data-index": headerGroup.id,
|
|
41
|
-
className: `${prefix}-grid-row`,
|
|
31
|
+
className: `${prefix}-grid-row ${prefix}-grid-header`,
|
|
42
32
|
style: {
|
|
43
|
-
|
|
33
|
+
...rowStyles,
|
|
44
34
|
width: '100%'
|
|
45
|
-
// minHeight: rowHeaderVirtual?.size
|
|
46
35
|
}
|
|
47
36
|
}, /*#__PURE__*/_react.default.createElement(_sortable.SortableContext, {
|
|
48
37
|
items: columnOrder,
|
|
@@ -61,9 +50,7 @@ const TableHeadRow = ({
|
|
|
61
50
|
key: header.id,
|
|
62
51
|
header: header,
|
|
63
52
|
table: table,
|
|
64
|
-
columnVirtualizer: columnVirtualizer
|
|
65
|
-
// rowHeaderVirtualizer={rowHeaderVirtualizer}
|
|
66
|
-
,
|
|
53
|
+
columnVirtualizer: columnVirtualizer,
|
|
67
54
|
colSpan: header.colSpan,
|
|
68
55
|
rowSpan: rowSpan
|
|
69
56
|
});
|