@tanstack/table-core 8.5.13 → 8.5.16
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/build/cjs/aggregationFns.js +0 -15
- package/build/cjs/aggregationFns.js.map +1 -1
- package/build/cjs/columnHelper.js +10 -2
- package/build/cjs/columnHelper.js.map +1 -1
- package/build/cjs/core/cell.js +2 -9
- package/build/cjs/core/cell.js.map +1 -1
- package/build/cjs/core/column.js +9 -27
- package/build/cjs/core/column.js.map +1 -1
- package/build/cjs/core/headers.js +45 -129
- package/build/cjs/core/headers.js.map +1 -1
- package/build/cjs/core/row.js +4 -21
- package/build/cjs/core/row.js.map +1 -1
- package/build/cjs/core/table.js +26 -73
- package/build/cjs/core/table.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +56 -67
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +18 -34
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +19 -55
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +9 -26
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js +14 -13
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +20 -43
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +26 -66
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +44 -74
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +25 -50
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +14 -32
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +3 -28
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/sortingFns.js +24 -31
- package/build/cjs/sortingFns.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +7 -19
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +12 -18
- package/build/cjs/utils/getCoreRowModel.js.map +1 -1
- package/build/cjs/utils/getExpandedRowModel.js +2 -12
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +1 -11
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/cjs/utils/getFacetedRowModel.js +1 -9
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedUniqueValues.js +2 -12
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
- package/build/cjs/utils/getFilteredRowModel.js +14 -34
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
- package/build/cjs/utils/getGroupedRowModel.js +25 -35
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js +1 -11
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +8 -23
- package/build/cjs/utils/getSortedRowModel.js.map +1 -1
- package/build/cjs/utils.js +11 -14
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +452 -993
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +44 -34
- package/build/stats-react.json +371 -371
- package/build/umd/index.development.js +452 -991
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/features/ColumnSizing.ts +11 -1
- package/src/features/Expanding.ts +1 -1
|
@@ -15,6 +15,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
15
15
|
var utils = require('../utils.js');
|
|
16
16
|
|
|
17
17
|
//
|
|
18
|
+
|
|
18
19
|
const RowSelection = {
|
|
19
20
|
getInitialState: state => {
|
|
20
21
|
return {
|
|
@@ -27,34 +28,32 @@ const RowSelection = {
|
|
|
27
28
|
onRowSelectionChange: utils.makeStateUpdater('rowSelection', table),
|
|
28
29
|
enableRowSelection: true,
|
|
29
30
|
enableMultiRowSelection: true,
|
|
30
|
-
enableSubRowSelection: true
|
|
31
|
+
enableSubRowSelection: true
|
|
32
|
+
// enableGroupingRowSelection: false,
|
|
31
33
|
// isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,
|
|
32
34
|
// isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,
|
|
33
|
-
|
|
34
35
|
};
|
|
35
36
|
},
|
|
37
|
+
|
|
36
38
|
createTable: table => {
|
|
37
39
|
return {
|
|
38
40
|
setRowSelection: updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater),
|
|
39
|
-
resetRowSelection: defaultState => {
|
|
40
|
-
var _table$initialState$r;
|
|
41
|
-
|
|
42
|
-
return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});
|
|
43
|
-
},
|
|
41
|
+
resetRowSelection: defaultState => table.setRowSelection(defaultState ? {} : table.initialState.rowSelection ?? {}),
|
|
44
42
|
toggleAllRowsSelected: value => {
|
|
45
43
|
table.setRowSelection(old => {
|
|
46
44
|
value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();
|
|
47
|
-
const rowSelection = {
|
|
45
|
+
const rowSelection = {
|
|
46
|
+
...old
|
|
48
47
|
};
|
|
49
|
-
const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;
|
|
50
|
-
// All of the rows are flat already, so it wouldn't be worth it
|
|
48
|
+
const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;
|
|
51
49
|
|
|
50
|
+
// We don't use `mutateRowIsSelected` here for performance reasons.
|
|
51
|
+
// All of the rows are flat already, so it wouldn't be worth it
|
|
52
52
|
if (value) {
|
|
53
53
|
preGroupedFlatRows.forEach(row => {
|
|
54
54
|
if (!row.getCanSelect()) {
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
|
-
|
|
58
57
|
rowSelection[row.id] = true;
|
|
59
58
|
});
|
|
60
59
|
} else {
|
|
@@ -62,13 +61,13 @@ const RowSelection = {
|
|
|
62
61
|
delete rowSelection[row.id];
|
|
63
62
|
});
|
|
64
63
|
}
|
|
65
|
-
|
|
66
64
|
return rowSelection;
|
|
67
65
|
});
|
|
68
66
|
},
|
|
69
67
|
toggleAllPageRowsSelected: value => table.setRowSelection(old => {
|
|
70
68
|
const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();
|
|
71
|
-
const rowSelection = {
|
|
69
|
+
const rowSelection = {
|
|
70
|
+
...old
|
|
72
71
|
};
|
|
73
72
|
table.getRowModel().rows.forEach(row => {
|
|
74
73
|
mutateRowIsSelected(rowSelection, row.id, resolvedValue, table);
|
|
@@ -81,6 +80,7 @@ const RowSelection = {
|
|
|
81
80
|
// rowsById,
|
|
82
81
|
// options: { selectGroupingRows, selectSubRows },
|
|
83
82
|
// } = table
|
|
83
|
+
|
|
84
84
|
// const findSelectedRow = (rows: Row[]) => {
|
|
85
85
|
// let found
|
|
86
86
|
// rows.find(d => {
|
|
@@ -97,10 +97,13 @@ const RowSelection = {
|
|
|
97
97
|
// })
|
|
98
98
|
// return found
|
|
99
99
|
// }
|
|
100
|
+
|
|
100
101
|
// const firstRow = findSelectedRow(rows) || rows[0]
|
|
101
102
|
// const lastRow = rowsById[rowId]
|
|
103
|
+
|
|
102
104
|
// let include = false
|
|
103
105
|
// const selectedRowIds = {}
|
|
106
|
+
|
|
104
107
|
// const addRow = (row: Row) => {
|
|
105
108
|
// mutateRowIsSelected(selectedRowIds, row.id, true, {
|
|
106
109
|
// rowsById,
|
|
@@ -108,9 +111,11 @@ const RowSelection = {
|
|
|
108
111
|
// selectSubRows: selectSubRows!,
|
|
109
112
|
// })
|
|
110
113
|
// }
|
|
114
|
+
|
|
111
115
|
// table.rows.forEach(row => {
|
|
112
116
|
// const isFirstRow = row.id === firstRow.id
|
|
113
117
|
// const isLastRow = row.id === lastRow.id
|
|
118
|
+
|
|
114
119
|
// if (isFirstRow || isLastRow) {
|
|
115
120
|
// if (!include) {
|
|
116
121
|
// include = true
|
|
@@ -119,10 +124,12 @@ const RowSelection = {
|
|
|
119
124
|
// include = false
|
|
120
125
|
// }
|
|
121
126
|
// }
|
|
127
|
+
|
|
122
128
|
// if (include) {
|
|
123
129
|
// addRow(row)
|
|
124
130
|
// }
|
|
125
131
|
// })
|
|
132
|
+
|
|
126
133
|
// table.setRowSelection(selectedRowIds)
|
|
127
134
|
// },
|
|
128
135
|
getPreSelectedRowModel: () => table.getCoreRowModel(),
|
|
@@ -134,15 +141,10 @@ const RowSelection = {
|
|
|
134
141
|
rowsById: {}
|
|
135
142
|
};
|
|
136
143
|
}
|
|
137
|
-
|
|
138
144
|
return selectRowsFn(table, rowModel);
|
|
139
145
|
}, {
|
|
140
146
|
key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',
|
|
141
|
-
debug: () =>
|
|
142
|
-
var _table$options$debugA;
|
|
143
|
-
|
|
144
|
-
return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;
|
|
145
|
-
}
|
|
147
|
+
debug: () => table.options.debugAll ?? table.options.debugTable
|
|
146
148
|
}),
|
|
147
149
|
getFilteredSelectedRowModel: utils.memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {
|
|
148
150
|
if (!Object.keys(rowSelection).length) {
|
|
@@ -152,15 +154,10 @@ const RowSelection = {
|
|
|
152
154
|
rowsById: {}
|
|
153
155
|
};
|
|
154
156
|
}
|
|
155
|
-
|
|
156
157
|
return selectRowsFn(table, rowModel);
|
|
157
158
|
}, {
|
|
158
159
|
key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',
|
|
159
|
-
debug: () =>
|
|
160
|
-
var _table$options$debugA2;
|
|
161
|
-
|
|
162
|
-
return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugTable;
|
|
163
|
-
}
|
|
160
|
+
debug: () => table.options.debugAll ?? table.options.debugTable
|
|
164
161
|
}),
|
|
165
162
|
getGroupedSelectedRowModel: utils.memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {
|
|
166
163
|
if (!Object.keys(rowSelection).length) {
|
|
@@ -170,40 +167,38 @@ const RowSelection = {
|
|
|
170
167
|
rowsById: {}
|
|
171
168
|
};
|
|
172
169
|
}
|
|
173
|
-
|
|
174
170
|
return selectRowsFn(table, rowModel);
|
|
175
171
|
}, {
|
|
176
172
|
key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',
|
|
177
|
-
debug: () =>
|
|
178
|
-
var _table$options$debugA3;
|
|
179
|
-
|
|
180
|
-
return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugTable;
|
|
181
|
-
}
|
|
173
|
+
debug: () => table.options.debugAll ?? table.options.debugTable
|
|
182
174
|
}),
|
|
183
175
|
///
|
|
176
|
+
|
|
184
177
|
// getGroupingRowCanSelect: rowId => {
|
|
185
178
|
// const row = table.getRow(rowId)
|
|
179
|
+
|
|
186
180
|
// if (!row) {
|
|
187
181
|
// throw new Error()
|
|
188
182
|
// }
|
|
183
|
+
|
|
189
184
|
// if (typeof table.options.enableGroupingRowSelection === 'function') {
|
|
190
185
|
// return table.options.enableGroupingRowSelection(row)
|
|
191
186
|
// }
|
|
187
|
+
|
|
192
188
|
// return table.options.enableGroupingRowSelection ?? false
|
|
193
189
|
// },
|
|
190
|
+
|
|
194
191
|
getIsAllRowsSelected: () => {
|
|
195
192
|
const preGroupedFlatRows = table.getFilteredRowModel().flatRows;
|
|
196
193
|
const {
|
|
197
194
|
rowSelection
|
|
198
195
|
} = table.getState();
|
|
199
196
|
let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);
|
|
200
|
-
|
|
201
197
|
if (isAllRowsSelected) {
|
|
202
198
|
if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {
|
|
203
199
|
isAllRowsSelected = false;
|
|
204
200
|
}
|
|
205
201
|
}
|
|
206
|
-
|
|
207
202
|
return isAllRowsSelected;
|
|
208
203
|
},
|
|
209
204
|
getIsAllPageRowsSelected: () => {
|
|
@@ -212,17 +207,13 @@ const RowSelection = {
|
|
|
212
207
|
rowSelection
|
|
213
208
|
} = table.getState();
|
|
214
209
|
let isAllPageRowsSelected = !!paginationFlatRows.length;
|
|
215
|
-
|
|
216
210
|
if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {
|
|
217
211
|
isAllPageRowsSelected = false;
|
|
218
212
|
}
|
|
219
|
-
|
|
220
213
|
return isAllPageRowsSelected;
|
|
221
214
|
},
|
|
222
215
|
getIsSomeRowsSelected: () => {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;
|
|
216
|
+
const totalSelected = Object.keys(table.getState().rowSelection ?? {}).length;
|
|
226
217
|
return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;
|
|
227
218
|
},
|
|
228
219
|
getIsSomePageRowsSelected: () => {
|
|
@@ -247,12 +238,11 @@ const RowSelection = {
|
|
|
247
238
|
const isSelected = row.getIsSelected();
|
|
248
239
|
table.setRowSelection(old => {
|
|
249
240
|
value = typeof value !== 'undefined' ? value : !isSelected;
|
|
250
|
-
|
|
251
241
|
if (isSelected === value) {
|
|
252
242
|
return old;
|
|
253
243
|
}
|
|
254
|
-
|
|
255
|
-
|
|
244
|
+
const selectedRowIds = {
|
|
245
|
+
...old
|
|
256
246
|
};
|
|
257
247
|
mutateRowIsSelected(selectedRowIds, row.id, value, table);
|
|
258
248
|
return selectedRowIds;
|
|
@@ -277,37 +267,27 @@ const RowSelection = {
|
|
|
277
267
|
return isSubRowSelected(row, rowSelection) === 'all';
|
|
278
268
|
},
|
|
279
269
|
getCanSelect: () => {
|
|
280
|
-
var _table$options$enable;
|
|
281
|
-
|
|
282
270
|
if (typeof table.options.enableRowSelection === 'function') {
|
|
283
271
|
return table.options.enableRowSelection(row);
|
|
284
272
|
}
|
|
285
|
-
|
|
286
|
-
return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;
|
|
273
|
+
return table.options.enableRowSelection ?? true;
|
|
287
274
|
},
|
|
288
275
|
getCanSelectSubRows: () => {
|
|
289
|
-
var _table$options$enable2;
|
|
290
|
-
|
|
291
276
|
if (typeof table.options.enableSubRowSelection === 'function') {
|
|
292
277
|
return table.options.enableSubRowSelection(row);
|
|
293
278
|
}
|
|
294
|
-
|
|
295
|
-
return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;
|
|
279
|
+
return table.options.enableSubRowSelection ?? true;
|
|
296
280
|
},
|
|
297
281
|
getCanMultiSelect: () => {
|
|
298
|
-
var _table$options$enable3;
|
|
299
|
-
|
|
300
282
|
if (typeof table.options.enableMultiRowSelection === 'function') {
|
|
301
283
|
return table.options.enableMultiRowSelection(row);
|
|
302
284
|
}
|
|
303
|
-
|
|
304
|
-
return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;
|
|
285
|
+
return table.options.enableMultiRowSelection ?? true;
|
|
305
286
|
},
|
|
306
287
|
getToggleSelectedHandler: () => {
|
|
307
288
|
const canSelect = row.getCanSelect();
|
|
308
289
|
return e => {
|
|
309
290
|
var _target;
|
|
310
|
-
|
|
311
291
|
if (!canSelect) return;
|
|
312
292
|
row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);
|
|
313
293
|
};
|
|
@@ -315,63 +295,57 @@ const RowSelection = {
|
|
|
315
295
|
};
|
|
316
296
|
}
|
|
317
297
|
};
|
|
318
|
-
|
|
319
298
|
const mutateRowIsSelected = (selectedRowIds, id, value, table) => {
|
|
320
299
|
var _row$subRows;
|
|
300
|
+
const row = table.getRow(id);
|
|
301
|
+
|
|
302
|
+
// const isGrouped = row.getIsGrouped()
|
|
321
303
|
|
|
322
|
-
const row = table.getRow(id); // const isGrouped = row.getIsGrouped()
|
|
323
304
|
// if ( // TODO: enforce grouping row selection rules
|
|
324
305
|
// !isGrouped ||
|
|
325
306
|
// (isGrouped && table.options.enableGroupingRowSelection)
|
|
326
307
|
// ) {
|
|
327
|
-
|
|
328
308
|
if (value) {
|
|
329
309
|
if (!row.getCanMultiSelect()) {
|
|
330
310
|
Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);
|
|
331
311
|
}
|
|
332
|
-
|
|
333
312
|
if (row.getCanSelect()) {
|
|
334
313
|
selectedRowIds[id] = true;
|
|
335
314
|
}
|
|
336
315
|
} else {
|
|
337
316
|
delete selectedRowIds[id];
|
|
338
|
-
}
|
|
339
|
-
|
|
317
|
+
}
|
|
318
|
+
// }
|
|
340
319
|
|
|
341
320
|
if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {
|
|
342
321
|
row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, table));
|
|
343
322
|
}
|
|
344
323
|
};
|
|
345
|
-
|
|
346
324
|
function selectRowsFn(table, rowModel) {
|
|
347
325
|
const rowSelection = table.getState().rowSelection;
|
|
348
326
|
const newSelectedFlatRows = [];
|
|
349
|
-
const newSelectedRowsById = {};
|
|
327
|
+
const newSelectedRowsById = {};
|
|
350
328
|
|
|
329
|
+
// Filters top level and nested rows
|
|
351
330
|
const recurseRows = function (rows, depth) {
|
|
352
|
-
|
|
353
331
|
return rows.map(row => {
|
|
354
332
|
var _row$subRows2;
|
|
355
|
-
|
|
356
333
|
const isSelected = isRowSelected(row, rowSelection);
|
|
357
|
-
|
|
358
334
|
if (isSelected) {
|
|
359
335
|
newSelectedFlatRows.push(row);
|
|
360
336
|
newSelectedRowsById[row.id] = row;
|
|
361
337
|
}
|
|
362
|
-
|
|
363
338
|
if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {
|
|
364
|
-
row = {
|
|
339
|
+
row = {
|
|
340
|
+
...row,
|
|
365
341
|
subRows: recurseRows(row.subRows)
|
|
366
342
|
};
|
|
367
343
|
}
|
|
368
|
-
|
|
369
344
|
if (isSelected) {
|
|
370
345
|
return row;
|
|
371
346
|
}
|
|
372
347
|
}).filter(Boolean);
|
|
373
348
|
};
|
|
374
|
-
|
|
375
349
|
return {
|
|
376
350
|
rows: recurseRows(rowModel.rows),
|
|
377
351
|
flatRows: newSelectedFlatRows,
|
|
@@ -379,9 +353,7 @@ function selectRowsFn(table, rowModel) {
|
|
|
379
353
|
};
|
|
380
354
|
}
|
|
381
355
|
function isRowSelected(row, selection) {
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;
|
|
356
|
+
return selection[row.id] ?? false;
|
|
385
357
|
}
|
|
386
358
|
function isSubRowSelected(row, selection, table) {
|
|
387
359
|
if (row.subRows && row.subRows.length) {
|
|
@@ -392,7 +364,6 @@ function isSubRowSelected(row, selection, table) {
|
|
|
392
364
|
if (someSelected && !allChildrenSelected) {
|
|
393
365
|
return;
|
|
394
366
|
}
|
|
395
|
-
|
|
396
367
|
if (isRowSelected(subRow, selection)) {
|
|
397
368
|
someSelected = true;
|
|
398
369
|
} else {
|
|
@@ -401,7 +372,6 @@ function isSubRowSelected(row, selection, table) {
|
|
|
401
372
|
});
|
|
402
373
|
return allChildrenSelected ? 'all' : someSelected ? 'some' : false;
|
|
403
374
|
}
|
|
404
|
-
|
|
405
375
|
return false;
|
|
406
376
|
}
|
|
407
377
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, RowModel, Updater, RowData } from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TData extends RowData> = {\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TData>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // table: Table<TData>,\n // rowModel: RowModel<TData>\n // ) => RowModel<TData>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getIsAllSubRowsSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport type RowSelectionInstance<TData extends RowData> = {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value?: boolean) => void\n toggleAllPageRowsSelected: (value?: boolean) => void\n getPreSelectedRowModel: () => RowModel<TData>\n getSelectedRowModel: () => RowModel<TData>\n getFilteredSelectedRowModel: () => RowModel<TData>\n getGroupedSelectedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionOptions<TData> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionInstance<TData> => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n table.setRowSelection(\n defaultState ? {} : table.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value =\n typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return\n }\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n table.setRowSelection(old => {\n const resolvedValue =\n typeof value !== 'undefined'\n ? value\n : !table.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getFilteredRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getSortedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllRowsSelected = Boolean(\n preGroupedFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (\n preGroupedFlatRows.some(\n row => row.getCanSelect() && !rowSelection[row.id]\n )\n ) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n const totalSelected = Object.keys(\n table.getState().rowSelection ?? {}\n ).length\n return (\n totalSelected > 0 &&\n totalSelected < table.getFilteredRowModel().flatRows.length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n return table.getIsAllPageRowsSelected()\n ? false\n : paginationFlatRows.some(\n d => d.getIsSelected() || d.getIsSomeSelected()\n )\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = table.getState()\n return isRowSelected(row, rowSelection)\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'some'\n },\n\n getIsAllSubRowsSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'all'\n },\n\n getCanSelect: () => {\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row)\n }\n\n return table.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row)\n }\n\n return table.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row)\n }\n\n return table.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TData extends RowData>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n table: Table<TData>\n) => {\n const row = table.getRow(id)\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key])\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true\n }\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n )\n }\n}\n\nexport function selectRowsFn<TData extends RowData>(\n table: Table<TData>,\n rowModel: RowModel<TData>\n): RowModel<TData> {\n const rowSelection = table.getState().rowSelection\n\n const newSelectedFlatRows: Row<TData>[] = []\n const newSelectedRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TData>[], depth = 0): Row<TData>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection)\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TData>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>\n): boolean {\n return selection[row.id] ?? false\n}\n\nexport function isSubRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>,\n table: Table<TData>\n): boolean | 'some' | 'all' {\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","table","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createTable","setRowSelection","updater","options","resetRowSelection","defaultState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","getCanSelect","id","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","getGroupedSelectedRowModel","getSortedRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","totalSelected","getIsSomePageRowsSelected","d","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","getRow","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, RowModel, Updater, RowData } from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TData extends RowData> = {\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TData>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // table: Table<TData>,\n // rowModel: RowModel<TData>\n // ) => RowModel<TData>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getIsAllSubRowsSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport type RowSelectionInstance<TData extends RowData> = {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value?: boolean) => void\n toggleAllPageRowsSelected: (value?: boolean) => void\n getPreSelectedRowModel: () => RowModel<TData>\n getSelectedRowModel: () => RowModel<TData>\n getFilteredSelectedRowModel: () => RowModel<TData>\n getGroupedSelectedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionOptions<TData> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionInstance<TData> => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n table.setRowSelection(\n defaultState ? {} : table.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value =\n typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return\n }\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n table.setRowSelection(old => {\n const resolvedValue =\n typeof value !== 'undefined'\n ? value\n : !table.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getFilteredRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getSortedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllRowsSelected = Boolean(\n preGroupedFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (\n preGroupedFlatRows.some(\n row => row.getCanSelect() && !rowSelection[row.id]\n )\n ) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n const totalSelected = Object.keys(\n table.getState().rowSelection ?? {}\n ).length\n return (\n totalSelected > 0 &&\n totalSelected < table.getFilteredRowModel().flatRows.length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n return table.getIsAllPageRowsSelected()\n ? false\n : paginationFlatRows.some(\n d => d.getIsSelected() || d.getIsSomeSelected()\n )\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = table.getState()\n return isRowSelected(row, rowSelection)\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'some'\n },\n\n getIsAllSubRowsSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'all'\n },\n\n getCanSelect: () => {\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row)\n }\n\n return table.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row)\n }\n\n return table.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row)\n }\n\n return table.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TData extends RowData>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n table: Table<TData>\n) => {\n const row = table.getRow(id)\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key])\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true\n }\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n )\n }\n}\n\nexport function selectRowsFn<TData extends RowData>(\n table: Table<TData>,\n rowModel: RowModel<TData>\n): RowModel<TData> {\n const rowSelection = table.getState().rowSelection\n\n const newSelectedFlatRows: Row<TData>[] = []\n const newSelectedRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TData>[], depth = 0): Row<TData>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection)\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TData>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>\n): boolean {\n return selection[row.id] ?? false\n}\n\nexport function isSubRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>,\n table: Table<TData>\n): boolean | 'some' | 'all' {\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","table","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createTable","setRowSelection","updater","options","resetRowSelection","defaultState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","getCanSelect","id","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","getGroupedSelectedRowModel","getSortedRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","totalSelected","getIsSomePageRowsSelected","d","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","getRow","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|