es-grid-template 1.7.48 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/es/grid-component/TempTable.js +1 -3
  2. package/es/table-component/ColumnsChoose.js +9 -2
  3. package/es/table-component/InternalTable.js +1 -0
  4. package/es/table-component/TableContainer.d.ts +5 -1
  5. package/es/table-component/TableContainer.js +33 -3
  6. package/es/table-component/TableContainerEdit.js +87 -62
  7. package/es/table-component/body/TableBody.js +1 -1
  8. package/es/table-component/body/TableBodyCell.d.ts +7 -3
  9. package/es/table-component/body/TableBodyCell.js +268 -135
  10. package/es/table-component/body/TableBodyCellEdit.d.ts +2 -2
  11. package/es/table-component/body/TableBodyCellEdit.js +18 -13
  12. package/es/table-component/body/TableBodyRow.d.ts +2 -2
  13. package/es/table-component/body/TableBodyRow.js +45 -16
  14. package/es/table-component/components/command/Command.js +2 -0
  15. package/es/table-component/footer/TableFooter.js +1 -1
  16. package/es/table-component/footer/TableFooterCell.js +3 -2
  17. package/es/table-component/footer/TableFooterRow.js +4 -3
  18. package/es/table-component/header/TableHead.d.ts +1 -1
  19. package/es/table-component/header/TableHead.js +83 -20
  20. package/es/table-component/header/TableHeadCell.js +13 -8
  21. package/es/table-component/header/TableHeadCell2.d.ts +17 -0
  22. package/es/table-component/header/TableHeadCell2.js +331 -0
  23. package/es/table-component/header/TableHeadGroupCell.d.ts +17 -0
  24. package/es/table-component/header/TableHeadGroupCell.js +327 -0
  25. package/es/table-component/header/TableHeadRow.js +1 -1
  26. package/es/table-component/hook/utils.js +5 -2
  27. package/es/table-component/style.scss +26 -4
  28. package/es/table-component/table/Grid.js +19 -19
  29. package/es/table-component/table/TableWrapper.js +1 -1
  30. package/lib/grid-component/TempTable.js +1 -3
  31. package/lib/table-component/ColumnsChoose.js +9 -2
  32. package/lib/table-component/InternalTable.js +1 -0
  33. package/lib/table-component/TableContainer.d.ts +5 -1
  34. package/lib/table-component/TableContainer.js +32 -2
  35. package/lib/table-component/TableContainerEdit.js +87 -62
  36. package/lib/table-component/body/TableBody.js +1 -1
  37. package/lib/table-component/body/TableBodyCell.d.ts +7 -3
  38. package/lib/table-component/body/TableBodyCell.js +267 -136
  39. package/lib/table-component/body/TableBodyCellEdit.d.ts +2 -2
  40. package/lib/table-component/body/TableBodyCellEdit.js +18 -13
  41. package/lib/table-component/body/TableBodyRow.d.ts +2 -2
  42. package/lib/table-component/body/TableBodyRow.js +45 -16
  43. package/lib/table-component/components/command/Command.js +2 -0
  44. package/lib/table-component/footer/TableFooter.js +1 -1
  45. package/lib/table-component/footer/TableFooterCell.js +3 -2
  46. package/lib/table-component/footer/TableFooterRow.js +4 -3
  47. package/lib/table-component/header/TableHead.d.ts +1 -1
  48. package/lib/table-component/header/TableHead.js +84 -20
  49. package/lib/table-component/header/TableHeadCell.js +13 -8
  50. package/lib/table-component/header/TableHeadCell2.d.ts +17 -0
  51. package/lib/table-component/header/TableHeadCell2.js +340 -0
  52. package/lib/table-component/header/TableHeadGroupCell.d.ts +17 -0
  53. package/lib/table-component/header/TableHeadGroupCell.js +336 -0
  54. package/lib/table-component/header/TableHeadRow.js +1 -1
  55. package/lib/table-component/hook/utils.js +5 -2
  56. package/lib/table-component/style.scss +26 -4
  57. package/lib/table-component/table/Grid.js +19 -19
  58. package/lib/table-component/table/TableWrapper.js +1 -1
  59. package/package.json +1 -1
@@ -0,0 +1,336 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _reactTable = require("@tanstack/react-table");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _antd = require("antd");
11
+ var _becoxyIcons = require("becoxy-icons");
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+ var _rcMasterUi = require("rc-master-ui");
14
+ var _constant = require("../hook/constant");
15
+ var _utils = require("../hook/utils");
16
+ var _useContext = require("../useContext");
17
+ var _renderFilter = require("./renderFilter");
18
+ var _server = _interopRequireDefault(require("react-dom/server"));
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
+ 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
+ const TableHeadGroupCell = props => {
31
+ const {
32
+ column,
33
+ header,
34
+ getPopupContainer,
35
+ table,
36
+ depth,
37
+ // t,
38
+ // columnVirtualizer,
39
+ // rowHeaderVirtualizer,
40
+ colSpan,
41
+ rowSpan
42
+ } = props;
43
+ const {
44
+ t,
45
+ prefix,
46
+ setSorterChange,
47
+ setFilterChange,
48
+ wrapSettings,
49
+ selectionSettings,
50
+ setIsSelectionChange,
51
+ id,
52
+ locale
53
+ } = (0, _react.useContext)(_useContext.TableContext);
54
+ const isPinned = column.getIsPinned();
55
+ const isLastLeftPinnedColumn = isPinned === 'left' && column.getIsLastColumn('left');
56
+ 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
+ const originalColumn = column.columnDef.meta ?? {};
67
+ const filtered = (column.getFilterValue() ?? []).length > 0;
68
+ const cellContent = (0, _reactTable.flexRender)(column.columnDef.header, header.getContext());
69
+ const html = _server.default.renderToStaticMarkup( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, cellContent));
70
+ const hasValue = html.trim().length > 0;
71
+
72
+ // const filtered = column.getIsFiltered()
73
+
74
+ // const { attributes, isDragging, listeners, setNodeRef, transform } =
75
+ // useSortable({
76
+ // id: column.id,
77
+ // })
78
+
79
+ 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
+ transition: 'width transform 0.2s ease-in-out',
84
+ whiteSpace: 'nowrap'
85
+ // width: column.getSize(),
86
+ // zIndex: isDragging ? 1 : 0,
87
+ };
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
+ return /*#__PURE__*/_react.default.createElement("div", {
223
+ // ref={setNodeRef}
224
+ className: (0, _classnames.default)(`${prefix}-grid-cell`, {
225
+ [`${prefix}-grid-cell-ellipsis`]: !wrapSettings || !(wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header')),
226
+ [`${prefix}-grid-cell-wrap`]: wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header'),
227
+ [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
228
+ [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
229
+ [`${prefix}-grid-cell-text-center`]: (originalColumn?.headerTextAlign ?? originalColumn?.textAlign) === 'center',
230
+ [`${prefix}-grid-cell-text-right`]: (originalColumn?.headerTextAlign ?? originalColumn.textAlign) === 'right'
231
+ })
232
+ // colSpan={colSpan}
233
+ // rowSpan={rowSpan}
234
+ ,
235
+
236
+ key: column.id,
237
+ style: {
238
+ // display: 'flex',
239
+ // width: column.getSize(),
240
+ minWidth: column.getSize(),
241
+ flex: 1,
242
+ gridRow: `${depth + 1} / span ${rowSpan}`,
243
+ gridColumn: `span ${colSpan}`,
244
+ // maxWidth: header.getSize(),
245
+ ...(0, _utils.getCommonPinningStyles)(column),
246
+ width: 'auto',
247
+ ...style
248
+ },
249
+ "data-tooltip-id": `${id}-tooltip-content`,
250
+ "data-tooltip-html": !hasValue ? '' : _server.default.renderToStaticMarkup( /*#__PURE__*/_react.default.createElement("div", null, cellContent))
251
+ }, /*#__PURE__*/_react.default.createElement("div", {
252
+ className: (0, _classnames.default)('', {
253
+ [`${prefix}-grid-filter-column`]: column.id !== 'selection_column',
254
+ [`${prefix}-grid-selection-column`]: column.id === 'selection_column'
255
+ })
256
+ }, column.id === 'selection_column' && selectionSettings && selectionSettings.hideSelectAll !== false && selectionSettings.type !== 'single' && selectionSettings.mode !== 'radio' && /*#__PURE__*/_react.default.createElement(_rcMasterUi.Checkbox, {
257
+ checked: table.getIsAllRowsSelected(),
258
+ indeterminate: table.getIsSomeRowsSelected(),
259
+ onChange: e => {
260
+ setIsSelectionChange({
261
+ isChange: true,
262
+ type: 'all',
263
+ rowData: {}
264
+ });
265
+ table.getToggleAllRowsSelectedHandler()(e);
266
+ }
267
+ }), column.id !== 'selection_column' && /*#__PURE__*/_react.default.createElement("span", {
268
+ className: "ui-rc-table-column-title",
269
+ style: {
270
+ flex: 1
271
+ }
272
+ }, /*#__PURE__*/_react.default.createElement("div", {
273
+ className: (0, _classnames.default)('', {
274
+ [`${prefix}-grid-cell-ellipsis`]: !wrapSettings || !(wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header')),
275
+ [`${prefix}-grid-cell-text-wrap`]: wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header')
276
+ })
277
+ }, cellContent)), !_constant.nonActionColumn.includes(column.id) && column.columns.length < 1 && /*#__PURE__*/_react.default.createElement("span", {
278
+ className: "ui-rc-header-trigger"
279
+ }, column.getCanSort() && /*#__PURE__*/_react.default.createElement("div", {
280
+ style: {
281
+ marginInlineEnd: 6,
282
+ cursor: 'pointer'
283
+ },
284
+ onClick: e => {
285
+ setSorterChange(true);
286
+ const toggleSortingHandler = column.getToggleSortingHandler();
287
+ if (typeof toggleSortingHandler === 'function') {
288
+ toggleSortingHandler(e);
289
+ }
290
+ }
291
+ }, column.getIsSorted() ? column.getIsSorted() === 'asc' ? /*#__PURE__*/_react.default.createElement(_becoxyIcons.ArrowUp, {
292
+ fontSize: 15,
293
+ color: '#000'
294
+ // data-tooltip-id={`${id}-tooltip-header-trigger`}
295
+ ,
296
+ "data-tooltip-id": `${id}-tooltip-content`
297
+ // data-tooltip-content='Nhấp để sắp xếp giảm dần'
298
+ ,
299
+ "data-tooltip-content": locale?.triggerDesc ?? 'Click to sort descending'
300
+ }) : /*#__PURE__*/_react.default.createElement(_becoxyIcons.ArrowDown, {
301
+ fontSize: 15,
302
+ color: '#000',
303
+ "data-tooltip-id": `${id}-tooltip-content`
304
+ // data-tooltip-id={`${id}-tooltip-header-trigger`}
305
+ // data-tooltip-content='Nhấp để hủy sắp xếp'
306
+ ,
307
+ "data-tooltip-content": locale?.cancelSort ?? 'Click to cancel sorting'
308
+ }) : /*#__PURE__*/_react.default.createElement(_becoxyIcons.SortCancel
309
+ // data-tooltip-id={`${id}-tooltip-header-trigger`}
310
+ , {
311
+ "data-tooltip-id": `${id}-tooltip-content`
312
+ // data-tooltip-content='Nhấp để sắp xếp tăng dần'
313
+ ,
314
+ "data-tooltip-content": locale?.triggerAsc ?? 'Click to sort ascending',
315
+ fontSize: 15,
316
+ style: {
317
+ display: 'flex'
318
+ },
319
+ className: (0, _classnames.default)(`ui-rc-table-column-sorter-cancel`, {
320
+ active: true
321
+ })
322
+ })), column.getCanFilter() && /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Dropdown, mergedDropdownProps)))), column.getCanResize() && /*#__PURE__*/_react.default.createElement("div", {
323
+ onDoubleClick: () => column.resetSize(),
324
+ onMouseDown: header.getResizeHandler(),
325
+ onTouchStart: header.getResizeHandler(),
326
+ // onMouseUp: () => {
327
+ // requestAnimationFrame(() => {
328
+ // columnVirtualizer.measure()
329
+ // // rowHeaderVirtualizer.measure()
330
+ // })
331
+ // },
332
+
333
+ className: `resizer ${column.getIsResizing() ? 'isResizing' : ''}`
334
+ }));
335
+ };
336
+ var _default = exports.default = TableHeadGroupCell;
@@ -30,7 +30,7 @@ const TableHeadRow = ({
30
30
  // const virtualColumns = columnVirtualizer.getVirtualItems()
31
31
 
32
32
  const columnOrder = table.getState().columnOrder;
33
- return /*#__PURE__*/_react.default.createElement("tr", {
33
+ return /*#__PURE__*/_react.default.createElement("div", {
34
34
  key: headerGroup.id
35
35
  // ref={el => {
36
36
  // if (el) rowHeaderVirtualizer.measureElement(el)
@@ -94,7 +94,8 @@ const getCommonPinningStyles = column => {
94
94
  // opacity: isPinned ? 0.5 : 1,
95
95
  opacity: 1,
96
96
  position: isPinned ? "sticky" : "relative",
97
- width: column.getSize(),
97
+ // width: column.getSize(),
98
+ width: 'auto',
98
99
  zIndex: isPinned ? 2 : 0
99
100
  // border: '1px solid #e5e7eb',
100
101
  // borderTop: 0,
@@ -265,9 +266,11 @@ const addRowIdArray = inputArray => {
265
266
  if (typeof item.children !== "string" && item.children && item.children.length > 0) {
266
267
  item.children = addRowIdArray(item.children);
267
268
  }
269
+
270
+ // return { ...item, rowId: item.rowId ?? item.id ?? newGuid() }
268
271
  return {
269
272
  ...item,
270
- rowId: item.rowId ?? item.id ?? newGuid()
273
+ rowId: item.id ?? item.rowId ?? newGuid()
271
274
  };
272
275
  });
273
276
  } else {
@@ -121,7 +121,7 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
121
121
  white-space: normal;
122
122
  // overflow: hidden;
123
123
  text-overflow: ellipsis;
124
- word-break: keep-all;
124
+ word-break: break-word;
125
125
  }
126
126
 
127
127
 
@@ -129,7 +129,7 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
129
129
  white-space: normal;
130
130
  overflow: hidden;
131
131
  text-overflow: ellipsis;
132
- word-break: keep-all;
132
+ word-break: break-word;
133
133
  }
134
134
 
135
135
  }
@@ -176,7 +176,7 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
176
176
  .#{$prefix}-grid-cell-text-wrap {
177
177
  white-space: normal;
178
178
  // text-overflow: ellipsis;
179
- word-break: keep-all;
179
+ word-break: break-word;
180
180
  overflow: hidden;
181
181
  }
182
182
 
@@ -257,7 +257,7 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
257
257
 
258
258
  .#{$prefix}-grid-tbody {
259
259
 
260
- tr.#{$prefix}-grid-row {
260
+ .#{$prefix}-grid-row {
261
261
  border-bottom: 1px solid lightgray;
262
262
  }
263
263
 
@@ -266,6 +266,20 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
266
266
  position: absolute;
267
267
  width: 100%;
268
268
 
269
+ &:hover {
270
+ .#{$prefix}-grid-cell:not(.editable) {
271
+ background-color: $rowHoverBg;
272
+
273
+ &.cell-editable, &.#{$prefix}-grid-cell-index, &.#{$prefix}-grid-cell-selection {
274
+ // background-color: transparent;
275
+ }
276
+
277
+ // &.ui-rc-grid-cell-index {
278
+ // background-color: #ffffff;
279
+ // }
280
+ }
281
+ }
282
+
269
283
  &.#{$prefix}-grid-row-selected {
270
284
 
271
285
  .#{$prefix}-grid-cell {
@@ -274,6 +288,14 @@ $fontFamily: "Montserrat", Helvetica, Arial, serif !default;
274
288
 
275
289
  }
276
290
 
291
+ &.#{$prefix}-grid-row-focus {
292
+
293
+ .#{$prefix}-grid-cell {
294
+ background-color: $rowHoverBg;
295
+ }
296
+
297
+ }
298
+
277
299
  }
278
300
 
279
301
  .#{$prefix}-grid-cell {
@@ -143,18 +143,16 @@ const Grid = props => {
143
143
 
144
144
  // debugTable: true
145
145
  });
146
-
147
- // React.useEffect(() => {
148
- // if (columnHidden) {
149
- // const abb = table.getVisibleLeafColumns()?.[0]
150
-
151
- // if (abb && Object.keys(columnSizingInfo).length === 0
152
- // ) {
153
- // setColumnSizing({ "#": abb.getSize() })
154
- // }
155
- // }
156
-
157
- // }, [columnHidden, columnSizingInfo])
146
+ _react.default.useEffect(() => {
147
+ if (columnHidden) {
148
+ const abb = table.getVisibleLeafColumns()?.[0];
149
+ if (abb && Object.keys(columnSizingInfo).length === 0) {
150
+ setColumnSizing({
151
+ "#": abb.getSize()
152
+ });
153
+ }
154
+ }
155
+ }, [columnHidden, columnSizingInfo]);
158
156
 
159
157
  // React.useEffect(() => {
160
158
  // if (columnSizingInfo.isResizingColumn === false) {
@@ -169,12 +167,12 @@ const Grid = props => {
169
167
 
170
168
  _react.default.useEffect(() => {
171
169
  // if (!manualUpdate) {
172
- if (Object.keys(rowSelection) !== Object.keys(mergedSelectedKeys)) {
170
+ if (Object.keys(rowSelection) !== Object.keys(mergedSelectedKeys) && !isSelectionChange.isChange) {
173
171
  setRowSelection((0, _utils.convertToObjTrue)(mergedSelectedKeys));
174
172
  }
175
173
 
176
174
  // }
177
- }, [mergedSelectedKeys]);
175
+ }, [mergedSelectedKeys, isSelectionChange]);
178
176
  _react.default.useEffect(() => {
179
177
  if (isSelectionChange.isChange) {
180
178
  // setManualUpdate(true)
@@ -188,12 +186,14 @@ const Grid = props => {
188
186
  rowData: isSelectionChange.rowData,
189
187
  selected: rs
190
188
  });
191
- setIsSelectionChange(prev => ({
192
- ...prev,
193
- isChange: false
194
- }));
189
+
190
+ // setIsSelectionChange((prev) => ({
191
+ // ...prev,
192
+ // isChange: false
193
+
194
+ // }))
195
195
  }
196
- }, [isSelectionChange, rowSelected, rowSelection, table]);
196
+ }, [isSelectionChange, rowSelection, table.getState().rowSelection]);
197
197
  _react.default.useEffect(() => {
198
198
  if (sorterChange) {
199
199
  const aa = table.getState().sorting;
@@ -198,7 +198,7 @@ const TableWrapper = props => {
198
198
  // onScroll={infiniteScroll ? handleScroll : undefined}
199
199
  ,
200
200
  onScroll: handleScroll
201
- }, /*#__PURE__*/_react.default.createElement("table", {
201
+ }, /*#__PURE__*/_react.default.createElement("div", {
202
202
  style: {
203
203
  display: 'grid',
204
204
  minWidth: table.getTotalSize()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "es-grid-template",
3
- "version": "1.7.48",
3
+ "version": "1.8.0",
4
4
  "description": "es-grid-template",
5
5
  "keywords": [
6
6
  "react",