@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.
Files changed (71) hide show
  1. package/build/cjs/aggregationFns.js +0 -15
  2. package/build/cjs/aggregationFns.js.map +1 -1
  3. package/build/cjs/columnHelper.js +10 -2
  4. package/build/cjs/columnHelper.js.map +1 -1
  5. package/build/cjs/core/cell.js +2 -9
  6. package/build/cjs/core/cell.js.map +1 -1
  7. package/build/cjs/core/column.js +9 -27
  8. package/build/cjs/core/column.js.map +1 -1
  9. package/build/cjs/core/headers.js +45 -129
  10. package/build/cjs/core/headers.js.map +1 -1
  11. package/build/cjs/core/row.js +4 -21
  12. package/build/cjs/core/row.js.map +1 -1
  13. package/build/cjs/core/table.js +26 -73
  14. package/build/cjs/core/table.js.map +1 -1
  15. package/build/cjs/features/ColumnSizing.js +56 -67
  16. package/build/cjs/features/ColumnSizing.js.map +1 -1
  17. package/build/cjs/features/Expanding.js +18 -34
  18. package/build/cjs/features/Expanding.js.map +1 -1
  19. package/build/cjs/features/Filters.js +19 -55
  20. package/build/cjs/features/Filters.js.map +1 -1
  21. package/build/cjs/features/Grouping.js +9 -26
  22. package/build/cjs/features/Grouping.js.map +1 -1
  23. package/build/cjs/features/Ordering.js +14 -13
  24. package/build/cjs/features/Ordering.js.map +1 -1
  25. package/build/cjs/features/Pagination.js +20 -43
  26. package/build/cjs/features/Pagination.js.map +1 -1
  27. package/build/cjs/features/Pinning.js +26 -66
  28. package/build/cjs/features/Pinning.js.map +1 -1
  29. package/build/cjs/features/RowSelection.js +44 -74
  30. package/build/cjs/features/RowSelection.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +25 -50
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +14 -32
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +3 -28
  36. package/build/cjs/filterFns.js.map +1 -1
  37. package/build/cjs/sortingFns.js +24 -31
  38. package/build/cjs/sortingFns.js.map +1 -1
  39. package/build/cjs/utils/filterRowsUtils.js +7 -19
  40. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  41. package/build/cjs/utils/getCoreRowModel.js +12 -18
  42. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  43. package/build/cjs/utils/getExpandedRowModel.js +2 -12
  44. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  45. package/build/cjs/utils/getFacetedMinMaxValues.js +1 -11
  46. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
  47. package/build/cjs/utils/getFacetedRowModel.js +1 -9
  48. package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
  49. package/build/cjs/utils/getFacetedUniqueValues.js +2 -12
  50. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
  51. package/build/cjs/utils/getFilteredRowModel.js +14 -34
  52. package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
  53. package/build/cjs/utils/getGroupedRowModel.js +25 -35
  54. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  55. package/build/cjs/utils/getPaginationRowModel.js +1 -11
  56. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  57. package/build/cjs/utils/getSortedRowModel.js +8 -23
  58. package/build/cjs/utils/getSortedRowModel.js.map +1 -1
  59. package/build/cjs/utils.js +11 -14
  60. package/build/cjs/utils.js.map +1 -1
  61. package/build/esm/index.js +452 -993
  62. package/build/esm/index.js.map +1 -1
  63. package/build/stats-html.html +44 -34
  64. package/build/stats-react.json +371 -371
  65. package/build/umd/index.development.js +452 -991
  66. package/build/umd/index.development.js.map +1 -1
  67. package/build/umd/index.production.js +1 -1
  68. package/build/umd/index.production.js.map +1 -1
  69. package/package.json +1 -1
  70. package/src/features/ColumnSizing.ts +11 -1
  71. 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 // enableGroupingRowSelection: false,
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 = { ...old
45
+ const rowSelection = {
46
+ ...old
48
47
  };
49
- const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows; // We don't use `mutateRowIsSelected` here for performance reasons.
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 = { ...old
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
- var _table$getState$rowSe;
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
- const selectedRowIds = { ...old
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 = {}; // Filters top level and nested rows
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 = { ...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
- var _selection$row$id;
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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"}