es-grid-template 1.9.64 → 1.9.65
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/table-component/InternalTable.js +11 -3
- package/es/table-component/header/TableHeadCell2.js +2 -2
- package/es/table-component/header/renderFilter.js +1 -1
- package/es/table-component/hook/useColumns.js +1 -1
- package/es/table-component/table/Grid.js +23 -17
- package/lib/table-component/InternalTable.js +11 -3
- package/lib/table-component/header/TableHeadCell2.js +2 -2
- package/lib/table-component/header/renderFilter.js +1 -1
- package/lib/table-component/hook/useColumns.js +1 -1
- package/lib/table-component/table/Grid.js +22 -16
- package/package.json +1 -1
|
@@ -165,9 +165,17 @@ const InternalTable = props => {
|
|
|
165
165
|
selectedRowKeys,
|
|
166
166
|
defaultSelectedRowKeys
|
|
167
167
|
} = selectionSettings ?? {};
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
168
|
+
|
|
169
|
+
// const [mergedSelectedKeys] = useMergedState(
|
|
170
|
+
// selectedRowKeys || defaultSelectedRowKeys || [],
|
|
171
|
+
// {
|
|
172
|
+
// value: selectedRowKeys,
|
|
173
|
+
// },
|
|
174
|
+
// );
|
|
175
|
+
|
|
176
|
+
const mergedSelectedKeys = React.useMemo(() => {
|
|
177
|
+
return selectedRowKeys ?? defaultSelectedRowKeys ?? [];
|
|
178
|
+
}, [defaultSelectedRowKeys, selectedRowKeys]);
|
|
171
179
|
const mergedData = React.useMemo(() => {
|
|
172
180
|
return filterDataByColumns(convertData, onFilter ? undefined : filterStates ?? defaultFilter, onSorter ? undefined : sorterStates ?? defaultSorter, mergedFilterKeys, ignoreAccents);
|
|
173
181
|
}, [convertData, filterStates, mergedFilterKeys, sorterStates, ignoreAccents, defaultFilter, defaultSorter, onFilter, onSorter]);
|
|
@@ -125,9 +125,9 @@ const TableHeadCell2 = props => {
|
|
|
125
125
|
const doFilter = type => {
|
|
126
126
|
if (type) {
|
|
127
127
|
if (fieldOriginal) {
|
|
128
|
-
fieldOriginal.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
|
|
128
|
+
fieldOriginal.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : [selectedKeys[0].trim()] : selectedKeys);
|
|
129
129
|
} else {
|
|
130
|
-
column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
|
|
130
|
+
column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : [selectedKeys[0].trim()] : selectedKeys);
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
// column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? (selectedKeys.length === 0 ? [''] : selectedKeys) : selectedKeys)
|
|
@@ -316,7 +316,7 @@ export const renderFilter = args => {
|
|
|
316
316
|
,
|
|
317
317
|
placeholder: tableLocal?.search ?? `Search`,
|
|
318
318
|
value: selectedKeys[0],
|
|
319
|
-
onChange: e => setSelectedKeys(e.target.value ? [e.target.value
|
|
319
|
+
onChange: e => setSelectedKeys(e.target.value ? [e.target.value] : [])
|
|
320
320
|
// onPressEnter={() => handleSearch(selectedKeys as string[], confirm)}
|
|
321
321
|
,
|
|
322
322
|
onPressEnter: () => doFilter?.(true),
|
|
@@ -255,7 +255,7 @@ export const toggleRowSelection = props => {
|
|
|
255
255
|
// đã chọn
|
|
256
256
|
|
|
257
257
|
// xóa row ra list selected
|
|
258
|
-
const newRowsSelected = prevSelected.filter(it => it.
|
|
258
|
+
const newRowsSelected = prevSelected.filter(it => it.rowId !== row.id);
|
|
259
259
|
setIsSelectionChange({
|
|
260
260
|
isChange: true,
|
|
261
261
|
type: 'rowSelected',
|
|
@@ -14,7 +14,7 @@ import { arrayMove } from '@dnd-kit/sortable';
|
|
|
14
14
|
import React, { Fragment } from 'react';
|
|
15
15
|
import TableContainer from "../TableContainer";
|
|
16
16
|
import { OperatorFeature } from "../features/operator";
|
|
17
|
-
import { convertFilters, convertToObjTrue, filterByIds, filterDataByColumns,
|
|
17
|
+
import { convertFilters, convertToObjTrue, filterByIds, filterDataByColumns, flattenArray, getAllRowKey, revertConvertFilters } from "../hook/utils";
|
|
18
18
|
import TableContainerEdit from "../TableContainerEdit";
|
|
19
19
|
import classNames from 'classnames';
|
|
20
20
|
import { GridStyle } from "../style";
|
|
@@ -169,6 +169,25 @@ const Grid = props => {
|
|
|
169
169
|
|
|
170
170
|
// debugTable: true
|
|
171
171
|
});
|
|
172
|
+
React.useEffect(() => {
|
|
173
|
+
if (!isSelectionChange.isChange) {
|
|
174
|
+
if (mergedSelectedKeys.length === 0) {
|
|
175
|
+
setIsSelectionChange(prev => ({
|
|
176
|
+
...prev,
|
|
177
|
+
rowsData: []
|
|
178
|
+
}));
|
|
179
|
+
} else {
|
|
180
|
+
const abc = flattenArray(dataSource);
|
|
181
|
+
const selectedKeySet = new Set(mergedSelectedKeys);
|
|
182
|
+
const result = abc.filter(row => selectedKeySet.has(row.id));
|
|
183
|
+
setRowSelection(convertToObjTrue(mergedSelectedKeys));
|
|
184
|
+
setIsSelectionChange(prev => ({
|
|
185
|
+
...prev,
|
|
186
|
+
rowsData: result
|
|
187
|
+
}));
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}, [mergedSelectedKeys, dataSource]);
|
|
172
191
|
React.useEffect(() => {
|
|
173
192
|
if (defaultFilter) {
|
|
174
193
|
const a = revertConvertFilters(defaultFilter);
|
|
@@ -198,20 +217,6 @@ const Grid = props => {
|
|
|
198
217
|
}
|
|
199
218
|
}
|
|
200
219
|
}, [columnHidden, columnSizingInfo]);
|
|
201
|
-
React.useEffect(() => {
|
|
202
|
-
const isEqual = isObjEqual(convertToObjTrue(mergedSelectedKeys), rowSelection);
|
|
203
|
-
if (!isEqual) {
|
|
204
|
-
setRowSelection(convertToObjTrue(mergedSelectedKeys));
|
|
205
|
-
// table.setRowSelection(convertToObjTrue(mergedSelectedKeys))
|
|
206
|
-
|
|
207
|
-
if (mergedSelectedKeys.length === 0) {
|
|
208
|
-
setIsSelectionChange(prev => ({
|
|
209
|
-
...prev,
|
|
210
|
-
rowsData: []
|
|
211
|
-
}));
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}, [mergedSelectedKeys]);
|
|
215
220
|
React.useEffect(() => {
|
|
216
221
|
if (isSelectionChange.isChange) {
|
|
217
222
|
const aa = table.getState().rowSelection;
|
|
@@ -220,11 +225,12 @@ const Grid = props => {
|
|
|
220
225
|
// const ssss = dataTable.filter(it => ids.includes(it.id)) // lấy rowsData của trang hiện tại
|
|
221
226
|
const ssss = filterByIds(ids, isSelectionChange.rowsData ?? []); // lấy rowsData của trang hiện tại
|
|
222
227
|
|
|
223
|
-
const rs = ssss.map(it => it.original)
|
|
228
|
+
// const rs = ssss.map(it => it.original)
|
|
229
|
+
|
|
224
230
|
rowSelected?.({
|
|
225
231
|
type: isSelectionChange.type,
|
|
226
232
|
rowData: isSelectionChange.rowData,
|
|
227
|
-
selected:
|
|
233
|
+
selected: ssss
|
|
228
234
|
});
|
|
229
235
|
}
|
|
230
236
|
}, [isSelectionChange, rowSelection, table.getState().rowSelection]);
|
|
@@ -170,9 +170,17 @@ const InternalTable = props => {
|
|
|
170
170
|
selectedRowKeys,
|
|
171
171
|
defaultSelectedRowKeys
|
|
172
172
|
} = selectionSettings ?? {};
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
173
|
+
|
|
174
|
+
// const [mergedSelectedKeys] = useMergedState(
|
|
175
|
+
// selectedRowKeys || defaultSelectedRowKeys || [],
|
|
176
|
+
// {
|
|
177
|
+
// value: selectedRowKeys,
|
|
178
|
+
// },
|
|
179
|
+
// );
|
|
180
|
+
|
|
181
|
+
const mergedSelectedKeys = _react.default.useMemo(() => {
|
|
182
|
+
return selectedRowKeys ?? defaultSelectedRowKeys ?? [];
|
|
183
|
+
}, [defaultSelectedRowKeys, selectedRowKeys]);
|
|
176
184
|
const mergedData = _react.default.useMemo(() => {
|
|
177
185
|
return (0, _utils.filterDataByColumns)(convertData, onFilter ? undefined : filterStates ?? defaultFilter, onSorter ? undefined : sorterStates ?? defaultSorter, mergedFilterKeys, ignoreAccents);
|
|
178
186
|
}, [convertData, filterStates, mergedFilterKeys, sorterStates, ignoreAccents, defaultFilter, defaultSorter, onFilter, onSorter]);
|
|
@@ -133,9 +133,9 @@ const TableHeadCell2 = props => {
|
|
|
133
133
|
const doFilter = type => {
|
|
134
134
|
if (type) {
|
|
135
135
|
if (fieldOriginal) {
|
|
136
|
-
fieldOriginal.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
|
|
136
|
+
fieldOriginal.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : [selectedKeys[0].trim()] : selectedKeys);
|
|
137
137
|
} else {
|
|
138
|
-
column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
|
|
138
|
+
column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : [selectedKeys[0].trim()] : selectedKeys);
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
// column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? (selectedKeys.length === 0 ? [''] : selectedKeys) : selectedKeys)
|
|
@@ -325,7 +325,7 @@ const renderFilter = args => {
|
|
|
325
325
|
,
|
|
326
326
|
placeholder: tableLocal?.search ?? `Search`,
|
|
327
327
|
value: selectedKeys[0],
|
|
328
|
-
onChange: e => setSelectedKeys(e.target.value ? [e.target.value
|
|
328
|
+
onChange: e => setSelectedKeys(e.target.value ? [e.target.value] : [])
|
|
329
329
|
// onPressEnter={() => handleSearch(selectedKeys as string[], confirm)}
|
|
330
330
|
,
|
|
331
331
|
onPressEnter: () => doFilter?.(true),
|
|
@@ -267,7 +267,7 @@ const toggleRowSelection = props => {
|
|
|
267
267
|
// đã chọn
|
|
268
268
|
|
|
269
269
|
// xóa row ra list selected
|
|
270
|
-
const newRowsSelected = prevSelected.filter(it => it.
|
|
270
|
+
const newRowsSelected = prevSelected.filter(it => it.rowId !== row.id);
|
|
271
271
|
setIsSelectionChange({
|
|
272
272
|
isChange: true,
|
|
273
273
|
type: 'rowSelected',
|
|
@@ -174,6 +174,25 @@ const Grid = props => {
|
|
|
174
174
|
|
|
175
175
|
// debugTable: true
|
|
176
176
|
});
|
|
177
|
+
_react.default.useEffect(() => {
|
|
178
|
+
if (!isSelectionChange.isChange) {
|
|
179
|
+
if (mergedSelectedKeys.length === 0) {
|
|
180
|
+
setIsSelectionChange(prev => ({
|
|
181
|
+
...prev,
|
|
182
|
+
rowsData: []
|
|
183
|
+
}));
|
|
184
|
+
} else {
|
|
185
|
+
const abc = (0, _utils.flattenArray)(dataSource);
|
|
186
|
+
const selectedKeySet = new Set(mergedSelectedKeys);
|
|
187
|
+
const result = abc.filter(row => selectedKeySet.has(row.id));
|
|
188
|
+
setRowSelection((0, _utils.convertToObjTrue)(mergedSelectedKeys));
|
|
189
|
+
setIsSelectionChange(prev => ({
|
|
190
|
+
...prev,
|
|
191
|
+
rowsData: result
|
|
192
|
+
}));
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}, [mergedSelectedKeys, dataSource]);
|
|
177
196
|
_react.default.useEffect(() => {
|
|
178
197
|
if (defaultFilter) {
|
|
179
198
|
const a = (0, _utils.revertConvertFilters)(defaultFilter);
|
|
@@ -203,20 +222,6 @@ const Grid = props => {
|
|
|
203
222
|
}
|
|
204
223
|
}
|
|
205
224
|
}, [columnHidden, columnSizingInfo]);
|
|
206
|
-
_react.default.useEffect(() => {
|
|
207
|
-
const isEqual = (0, _utils.isObjEqual)((0, _utils.convertToObjTrue)(mergedSelectedKeys), rowSelection);
|
|
208
|
-
if (!isEqual) {
|
|
209
|
-
setRowSelection((0, _utils.convertToObjTrue)(mergedSelectedKeys));
|
|
210
|
-
// table.setRowSelection(convertToObjTrue(mergedSelectedKeys))
|
|
211
|
-
|
|
212
|
-
if (mergedSelectedKeys.length === 0) {
|
|
213
|
-
setIsSelectionChange(prev => ({
|
|
214
|
-
...prev,
|
|
215
|
-
rowsData: []
|
|
216
|
-
}));
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}, [mergedSelectedKeys]);
|
|
220
225
|
_react.default.useEffect(() => {
|
|
221
226
|
if (isSelectionChange.isChange) {
|
|
222
227
|
const aa = table.getState().rowSelection;
|
|
@@ -225,11 +230,12 @@ const Grid = props => {
|
|
|
225
230
|
// const ssss = dataTable.filter(it => ids.includes(it.id)) // lấy rowsData của trang hiện tại
|
|
226
231
|
const ssss = (0, _utils.filterByIds)(ids, isSelectionChange.rowsData ?? []); // lấy rowsData của trang hiện tại
|
|
227
232
|
|
|
228
|
-
const rs = ssss.map(it => it.original)
|
|
233
|
+
// const rs = ssss.map(it => it.original)
|
|
234
|
+
|
|
229
235
|
rowSelected?.({
|
|
230
236
|
type: isSelectionChange.type,
|
|
231
237
|
rowData: isSelectionChange.rowData,
|
|
232
|
-
selected:
|
|
238
|
+
selected: ssss
|
|
233
239
|
});
|
|
234
240
|
}
|
|
235
241
|
}, [isSelectionChange, rowSelection, table.getState().rowSelection]);
|