es-grid-template 1.8.55 → 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 +15 -0
- package/es/table-component/TableContainerEdit.js +13 -12
- package/es/table-component/body/TableBodyCell.js +24 -62
- package/es/table-component/body/TableBodyCellEdit.js +14 -9
- package/es/table-component/body/TableBodyRow.js +7 -12
- package/es/table-component/footer/TableFooterCell.js +2 -2
- package/es/table-component/footer/TableFooterRow.js +8 -4
- 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 +270 -15
- package/es/table-component/table/Grid.js +14 -25
- package/es/table-component/type.d.ts +8 -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 +15 -0
- package/lib/table-component/TableContainerEdit.js +13 -12
- package/lib/table-component/body/TableBodyCell.js +24 -62
- package/lib/table-component/body/TableBodyCellEdit.js +14 -9
- package/lib/table-component/body/TableBodyRow.js +7 -12
- package/lib/table-component/footer/TableFooterCell.js +2 -2
- package/lib/table-component/footer/TableFooterRow.js +8 -4
- 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 +270 -15
- package/lib/table-component/table/Grid.js +14 -25
- package/lib/table-component/type.d.ts +8 -1
- package/lib/table-component/useContext.d.ts +4 -1
- package/package.json +1 -1
|
@@ -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
|
});
|
|
@@ -225,6 +225,8 @@ const toggleRowSelection = props => {
|
|
|
225
225
|
return;
|
|
226
226
|
}
|
|
227
227
|
if (row.subRows && row.subRows.length > 0) {
|
|
228
|
+
// click vào row cha
|
|
229
|
+
|
|
228
230
|
const allChild = (0, _utils.getAllChildren)(row);
|
|
229
231
|
(0, _utils.toggleRowAndChildren)(row, !row.getIsSelected());
|
|
230
232
|
if (row.getIsSelected()) {
|
|
@@ -256,17 +258,29 @@ const toggleRowSelection = props => {
|
|
|
256
258
|
});
|
|
257
259
|
}
|
|
258
260
|
} else {
|
|
261
|
+
// click vào row không có cha
|
|
262
|
+
|
|
259
263
|
row.getToggleSelectedHandler()(e);
|
|
260
264
|
if (row.getIsSelected()) {
|
|
261
265
|
// đã chọn
|
|
262
266
|
|
|
263
|
-
|
|
264
|
-
const
|
|
267
|
+
const rowParent = row.getParentRow();
|
|
268
|
+
// const rowParent1 = row.getParentRows()
|
|
269
|
+
|
|
270
|
+
let newCheckedRows = [];
|
|
271
|
+
if (rowParent) {}
|
|
272
|
+
if (rowParent && (0, _utils.countUnselectedChildren)(row) === 1) {
|
|
273
|
+
newCheckedRows = prevSelected.filter(it => it.id !== row.id && it.id !== rowParent.id);
|
|
274
|
+
} else {
|
|
275
|
+
// xóa row ra list selected
|
|
276
|
+
// const newRowsSelected = prevSelected.filter((it) => it.id !== row.id)
|
|
277
|
+
newCheckedRows = prevSelected.filter(it => it.id !== row.id);
|
|
278
|
+
}
|
|
265
279
|
setIsSelectionChange({
|
|
266
280
|
isChange: true,
|
|
267
281
|
type: 'rowSelected',
|
|
268
282
|
rowData: row.original,
|
|
269
|
-
rowsData:
|
|
283
|
+
rowsData: newCheckedRows ?? []
|
|
270
284
|
});
|
|
271
285
|
} else {
|
|
272
286
|
// chưa selected
|
|
@@ -94,25 +94,13 @@ const convertDateToDayjs = (date, format) => {
|
|
|
94
94
|
exports.convertDateToDayjs = convertDateToDayjs;
|
|
95
95
|
const getCommonPinningStyles = column => {
|
|
96
96
|
const isPinned = column.getIsPinned();
|
|
97
|
-
// const isLastLeftPinnedColumn = isPinned === "left" && column.getIsLastColumn("left");
|
|
98
|
-
// const isFirstRightPinnedColumn =isPinned === "right" && column.getIsFirstColumn("right");
|
|
99
|
-
|
|
100
97
|
return {
|
|
101
|
-
// boxShadow: isFirstRightPinnedColumn
|
|
102
|
-
// ? "#e0e0e0 2px 0px 1px -1px inset"
|
|
103
|
-
// : undefined,
|
|
104
|
-
|
|
105
98
|
left: isPinned === "left" ? `${column.getStart("left")}px` : undefined,
|
|
106
99
|
right: isPinned === "right" ? `${column.getAfter("right")}px` : undefined,
|
|
107
|
-
// opacity: isPinned ? 0.5 : 1,
|
|
108
100
|
opacity: 1,
|
|
109
101
|
position: isPinned ? "sticky" : "relative",
|
|
110
|
-
// width: column.getSize(),
|
|
111
102
|
width: 'auto',
|
|
112
103
|
zIndex: isPinned ? 2 : 0
|
|
113
|
-
// border: '1px solid #e5e7eb',
|
|
114
|
-
// borderTop: 0,
|
|
115
|
-
// borderBottom: 0
|
|
116
104
|
};
|
|
117
105
|
};
|
|
118
106
|
exports.getCommonPinningStyles = getCommonPinningStyles;
|
|
@@ -128,15 +116,10 @@ const getCommonPinningStyles2 = header => {
|
|
|
128
116
|
|
|
129
117
|
left: isPinned === "left" ? `${header.getStart("left")}px` : undefined,
|
|
130
118
|
right: isPinned === "right" ? `${header.getAfter("right")}px` : undefined,
|
|
131
|
-
// opacity: isPinned ? 0.5 : 1,
|
|
132
119
|
opacity: 1,
|
|
133
120
|
position: isPinned ? "sticky" : "relative",
|
|
134
|
-
// width: column.getSize(),
|
|
135
121
|
width: 'auto',
|
|
136
122
|
zIndex: isPinned ? 2 : 0
|
|
137
|
-
// border: '1px solid #e5e7eb',
|
|
138
|
-
// borderTop: 0,
|
|
139
|
-
// borderBottom: 0
|
|
140
123
|
};
|
|
141
124
|
};
|
|
142
125
|
exports.getCommonPinningStyles2 = getCommonPinningStyles2;
|