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.
Files changed (31) hide show
  1. package/es/grid-component/type.d.ts +8 -0
  2. package/es/table-component/TableContainer.js +6 -0
  3. package/es/table-component/TableContainerEdit.js +4 -2
  4. package/es/table-component/body/TableBodyCell.js +6 -49
  5. package/es/table-component/body/TableBodyRow.js +7 -12
  6. package/es/table-component/footer/TableFooterRow.js +6 -3
  7. package/es/table-component/header/TableHead.js +4 -1
  8. package/es/table-component/header/TableHeadCell2.js +7 -48
  9. package/es/table-component/header/TableHeadGroupCell.js +13 -225
  10. package/es/table-component/header/TableHeadRow.js +7 -19
  11. package/es/table-component/hook/useColumns.js +17 -3
  12. package/es/table-component/hook/utils.js +0 -17
  13. package/es/table-component/style.scss +6 -5
  14. package/es/table-component/type.d.ts +7 -1
  15. package/es/table-component/useContext.d.ts +4 -1
  16. package/lib/grid-component/type.d.ts +8 -0
  17. package/lib/table-component/TableContainer.js +6 -0
  18. package/lib/table-component/TableContainerEdit.js +4 -2
  19. package/lib/table-component/body/TableBodyCell.js +6 -49
  20. package/lib/table-component/body/TableBodyRow.js +7 -12
  21. package/lib/table-component/footer/TableFooterRow.js +6 -3
  22. package/lib/table-component/header/TableHead.js +4 -1
  23. package/lib/table-component/header/TableHeadCell2.js +7 -48
  24. package/lib/table-component/header/TableHeadGroupCell.js +11 -223
  25. package/lib/table-component/header/TableHeadRow.js +7 -20
  26. package/lib/table-component/hook/useColumns.js +17 -3
  27. package/lib/table-component/hook/utils.js +0 -17
  28. package/lib/table-component/style.scss +6 -5
  29. package/lib/table-component/type.d.ts +7 -1
  30. package/lib/table-component/useContext.d.ts +4 -1
  31. 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.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/_react.default.createElement("div", {
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
- // data-row-key={cell.row.id}
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
- // width: column.getSize(),
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
- // display: 'flex',
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 filtered = (column.getFilterValue() ?? []).length > 0;
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
- // width: column.getSize(),
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)), !_constant.nonActionColumn.includes(column.id) && column.columns.length < 1 && /*#__PURE__*/_react.default.createElement("span", {
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
- // display: 'flex',
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
  });