@tanstack/table-core 8.0.0-alpha.63 → 8.0.0-alpha.67

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 (114) hide show
  1. package/build/cjs/core.js +7 -4
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/features/Cells.js +2 -2
  4. package/build/cjs/features/Cells.js.map +1 -1
  5. package/build/cjs/features/ColumnSizing.js +68 -143
  6. package/build/cjs/features/ColumnSizing.js.map +1 -1
  7. package/build/cjs/features/Columns.js +7 -7
  8. package/build/cjs/features/Columns.js.map +1 -1
  9. package/build/cjs/features/Expanding.js +52 -90
  10. package/build/cjs/features/Expanding.js.map +1 -1
  11. package/build/cjs/features/Filters.js +213 -191
  12. package/build/cjs/features/Filters.js.map +1 -1
  13. package/build/cjs/features/Grouping.js +54 -80
  14. package/build/cjs/features/Grouping.js.map +1 -1
  15. package/build/cjs/features/Headers.js +16 -40
  16. package/build/cjs/features/Headers.js.map +1 -1
  17. package/build/cjs/features/Ordering.js +6 -5
  18. package/build/cjs/features/Ordering.js.map +1 -1
  19. package/build/cjs/features/Pagination.js +5 -5
  20. package/build/cjs/features/Pagination.js.map +1 -1
  21. package/build/cjs/features/Pinning.js +82 -168
  22. package/build/cjs/features/Pinning.js.map +1 -1
  23. package/build/cjs/features/RowSelection.js +67 -119
  24. package/build/cjs/features/RowSelection.js.map +1 -1
  25. package/build/cjs/features/Sorting.js +41 -91
  26. package/build/cjs/features/Sorting.js.map +1 -1
  27. package/build/cjs/features/Visibility.js +20 -43
  28. package/build/cjs/features/Visibility.js.map +1 -1
  29. package/build/cjs/filterFns.js +51 -108
  30. package/build/cjs/filterFns.js.map +1 -1
  31. package/build/cjs/index.js +5 -4
  32. package/build/cjs/index.js.map +1 -1
  33. package/build/cjs/utils/filterRowsUtils.js +21 -0
  34. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  35. package/build/cjs/utils/getCoreRowModelAsync.js +1 -1
  36. package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -1
  37. package/build/cjs/utils/getCoreRowModelSync.js +1 -1
  38. package/build/cjs/utils/getCoreRowModelSync.js.map +1 -1
  39. package/build/cjs/utils/getExpandedRowModel.js +2 -2
  40. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  41. package/build/cjs/utils/getFilteredRowModelSync.js +125 -0
  42. package/build/cjs/utils/getFilteredRowModelSync.js.map +1 -0
  43. package/build/cjs/utils/getGroupedRowModel.js +1 -1
  44. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  45. package/build/cjs/utils/getPaginationRowModel.js +1 -1
  46. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  47. package/build/cjs/utils/getSortedRowModelSync.js +3 -3
  48. package/build/cjs/utils/getSortedRowModelSync.js.map +1 -1
  49. package/build/cjs/utils.js +2 -6
  50. package/build/cjs/utils.js.map +1 -1
  51. package/build/esm/index.js +899 -1357
  52. package/build/esm/index.js.map +1 -1
  53. package/build/stats-html.html +1 -1
  54. package/build/stats-react.json +404 -418
  55. package/build/types/features/ColumnSizing.d.ts +2 -13
  56. package/build/types/features/Expanding.d.ts +3 -13
  57. package/build/types/features/Filters.d.ts +38 -42
  58. package/build/types/features/Grouping.d.ts +3 -18
  59. package/build/types/features/Ordering.d.ts +2 -6
  60. package/build/types/features/Pinning.d.ts +2 -19
  61. package/build/types/features/RowSelection.d.ts +4 -15
  62. package/build/types/features/Sorting.d.ts +5 -22
  63. package/build/types/features/Visibility.d.ts +2 -15
  64. package/build/types/filterFns.d.ts +10 -52
  65. package/build/types/index.d.ts +1 -2
  66. package/build/types/types.d.ts +2 -4
  67. package/build/types/utils/filterRowsUtils.d.ts +1 -0
  68. package/build/types/utils/{getColumnFilteredRowModelAsync.d.ts → getFilteredRowModelAsync.d.ts} +1 -1
  69. package/build/types/utils/getFilteredRowModelSync.d.ts +2 -0
  70. package/build/types/utils.d.ts +2 -2
  71. package/build/umd/index.development.js +867 -1323
  72. package/build/umd/index.development.js.map +1 -1
  73. package/build/umd/index.production.js +1 -1
  74. package/build/umd/index.production.js.map +1 -1
  75. package/package.json +2 -1
  76. package/src/core.ts +5 -5
  77. package/src/features/Cells.ts +4 -2
  78. package/src/features/ColumnSizing.ts +69 -126
  79. package/src/features/Columns.ts +12 -7
  80. package/src/features/Expanding.ts +62 -107
  81. package/src/features/Filters.ts +293 -243
  82. package/src/features/Grouping.ts +59 -81
  83. package/src/features/Headers.ts +18 -40
  84. package/src/features/Ordering.ts +7 -9
  85. package/src/features/Pagination.ts +4 -3
  86. package/src/features/Pinning.ts +77 -164
  87. package/src/features/RowSelection.ts +76 -123
  88. package/src/features/Sorting.ts +48 -106
  89. package/src/features/Visibility.ts +25 -52
  90. package/src/filterFns.ts +74 -147
  91. package/src/index.ts +1 -2
  92. package/src/types.ts +2 -2
  93. package/src/utils/filterRowsUtils.ts +24 -0
  94. package/src/utils/getCoreRowModelAsync.ts +1 -1
  95. package/src/utils/getCoreRowModelSync.ts +1 -1
  96. package/src/utils/getExpandedRowModel.ts +2 -2
  97. package/src/utils/getFilteredRowModelAsync.ts +157 -0
  98. package/src/utils/getFilteredRowModelSync.ts +141 -0
  99. package/src/utils/getGroupedRowModel.ts +1 -1
  100. package/src/utils/getPaginationRowModel.ts +1 -1
  101. package/src/utils/getSortedRowModelAsync.ts +1 -1
  102. package/src/utils/getSortedRowModelSync.ts +4 -4
  103. package/src/utils.ts +2 -4
  104. package/build/cjs/utils/getColumnFilteredRowModelSync.js +0 -115
  105. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +0 -1
  106. package/build/cjs/utils/getGlobalFilteredRowModelSync.js +0 -91
  107. package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +0 -1
  108. package/build/types/utils/getColumnFilteredRowModelSync.d.ts +0 -2
  109. package/build/types/utils/getGlobalFilteredRowModelAsync.d.ts +0 -4
  110. package/build/types/utils/getGlobalFilteredRowModelSync.d.ts +0 -2
  111. package/src/utils/getColumnFilteredRowModelAsync.ts +0 -118
  112. package/src/utils/getColumnFilteredRowModelSync.ts +0 -102
  113. package/src/utils/getGlobalFilteredRowModelAsync.ts +0 -96
  114. package/src/utils/getGlobalFilteredRowModelSync.ts +0 -79
@@ -17,10 +17,10 @@ var utils = require('../utils.js');
17
17
 
18
18
  //
19
19
  var RowSelection = {
20
- getInitialState: function getInitialState() {
21
- return {
20
+ getInitialState: function getInitialState(state) {
21
+ return _rollupPluginBabelHelpers["extends"]({
22
22
  rowSelection: {}
23
- };
23
+ }, state);
24
24
  },
25
25
  getDefaultOptions: function getDefaultOptions(instance) {
26
26
  return {
@@ -77,22 +77,6 @@ var RowSelection = {
77
77
  return rowSelection;
78
78
  });
79
79
  },
80
- toggleRowSelected: function toggleRowSelected(rowId, value) {
81
- var row = instance.getRow(rowId);
82
- var isSelected = row.getIsSelected();
83
- instance.setRowSelection(function (old) {
84
- value = typeof value !== 'undefined' ? value : !isSelected;
85
-
86
- if (isSelected === value) {
87
- return old;
88
- }
89
-
90
- var selectedRowIds = _rollupPluginBabelHelpers["extends"]({}, old);
91
-
92
- mutateRowIsSelected(selectedRowIds, rowId, value, instance);
93
- return selectedRowIds;
94
- });
95
- },
96
80
  // addRowSelectionRange: rowId => {
97
81
  // const {
98
82
  // rows,
@@ -159,7 +143,7 @@ var RowSelection = {
159
143
 
160
144
  return selectRowsFn(instance, rowModel);
161
145
  }, {
162
- key: 'getSelectedRowModel',
146
+ key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',
163
147
  debug: function debug() {
164
148
  var _instance$options$deb;
165
149
 
@@ -167,7 +151,7 @@ var RowSelection = {
167
151
  }
168
152
  }),
169
153
  getFilteredSelectedRowModel: utils.memo(function () {
170
- return [instance.getState().rowSelection, instance.getGlobalFilteredRowModel()];
154
+ return [instance.getState().rowSelection, instance.getFilteredRowModel()];
171
155
  }, function (rowSelection, rowModel) {
172
156
  if (!Object.keys(rowSelection).length) {
173
157
  return {
@@ -179,7 +163,7 @@ var RowSelection = {
179
163
 
180
164
  return selectRowsFn(instance, rowModel);
181
165
  }, {
182
- key: 'getFilteredSelectedRowModel',
166
+ key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',
183
167
  debug: function debug() {
184
168
  var _instance$options$deb2;
185
169
 
@@ -199,7 +183,7 @@ var RowSelection = {
199
183
 
200
184
  return selectRowsFn(instance, rowModel);
201
185
  }, {
202
- key: 'getGroupedSelectedRowModel',
186
+ key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',
203
187
  debug: function debug() {
204
188
  var _instance$options$deb3;
205
189
 
@@ -207,75 +191,6 @@ var RowSelection = {
207
191
  }
208
192
  }),
209
193
  ///
210
- getRowIsSelected: function getRowIsSelected(rowId) {
211
- var _instance$getState = instance.getState(),
212
- rowSelection = _instance$getState.rowSelection;
213
-
214
- var row = instance.getRow(rowId);
215
-
216
- if (!row) {
217
- throw new Error();
218
- }
219
-
220
- return isRowSelected(row, rowSelection) === true;
221
- },
222
- getRowIsSomeSelected: function getRowIsSomeSelected(rowId) {
223
- var _instance$getState2 = instance.getState(),
224
- rowSelection = _instance$getState2.rowSelection;
225
-
226
- var row = instance.getRow(rowId);
227
-
228
- if (!row) {
229
- throw new Error();
230
- }
231
-
232
- return isRowSelected(row, rowSelection) === 'some';
233
- },
234
- getRowCanSelect: function getRowCanSelect(rowId) {
235
- var _instance$options$ena;
236
-
237
- var row = instance.getRow(rowId);
238
-
239
- if (!row) {
240
- throw new Error();
241
- }
242
-
243
- if (typeof instance.options.enableRowSelection === 'function') {
244
- return instance.options.enableRowSelection(row);
245
- }
246
-
247
- return (_instance$options$ena = instance.options.enableRowSelection) != null ? _instance$options$ena : true;
248
- },
249
- getRowCanSelectSubRows: function getRowCanSelectSubRows(rowId) {
250
- var _instance$options$ena2;
251
-
252
- var row = instance.getRow(rowId);
253
-
254
- if (!row) {
255
- throw new Error();
256
- }
257
-
258
- if (typeof instance.options.enableSubRowSelection === 'function') {
259
- return instance.options.enableSubRowSelection(row);
260
- }
261
-
262
- return (_instance$options$ena2 = instance.options.enableSubRowSelection) != null ? _instance$options$ena2 : true;
263
- },
264
- getRowCanMultiSelect: function getRowCanMultiSelect(rowId) {
265
- var _instance$options$ena3;
266
-
267
- var row = instance.getRow(rowId);
268
-
269
- if (!row) {
270
- throw new Error();
271
- }
272
-
273
- if (typeof instance.options.enableMultiRowSelection === 'function') {
274
- return instance.options.enableMultiRowSelection(row);
275
- }
276
-
277
- return (_instance$options$ena3 = instance.options.enableMultiRowSelection) != null ? _instance$options$ena3 : true;
278
- },
279
194
  // getGroupingRowCanSelect: rowId => {
280
195
  // const row = instance.getRow(rowId)
281
196
  // if (!row) {
@@ -287,10 +202,10 @@ var RowSelection = {
287
202
  // return instance.options.enableGroupingRowSelection ?? false
288
203
  // },
289
204
  getIsAllRowsSelected: function getIsAllRowsSelected() {
290
- var preFilteredFlatRows = instance.getPreGlobalFilteredRowModel().flatRows;
205
+ var preFilteredFlatRows = instance.getPreFilteredRowModel().flatRows;
291
206
 
292
- var _instance$getState3 = instance.getState(),
293
- rowSelection = _instance$getState3.rowSelection;
207
+ var _instance$getState = instance.getState(),
208
+ rowSelection = _instance$getState.rowSelection;
294
209
 
295
210
  var isAllRowsSelected = Boolean(preFilteredFlatRows.length && Object.keys(rowSelection).length);
296
211
 
@@ -307,8 +222,8 @@ var RowSelection = {
307
222
  getIsAllPageRowsSelected: function getIsAllPageRowsSelected() {
308
223
  var paginationFlatRows = instance.getPaginationRowModel().flatRows;
309
224
 
310
- var _instance$getState4 = instance.getState(),
311
- rowSelection = _instance$getState4.rowSelection;
225
+ var _instance$getState2 = instance.getState(),
226
+ rowSelection = _instance$getState2.rowSelection;
312
227
 
313
228
  var isAllPageRowsSelected = !!paginationFlatRows.length;
314
229
 
@@ -329,18 +244,6 @@ var RowSelection = {
329
244
  var paginationFlatRows = instance.getPaginationRowModel().flatRows;
330
245
  return instance.getIsAllPageRowsSelected() ? false : !!(paginationFlatRows != null && paginationFlatRows.length);
331
246
  },
332
- getToggleRowSelectedHandler: function getToggleRowSelectedHandler(rowId) {
333
- var row = instance.getRow(rowId);
334
- row.getIsSelected();
335
- row.getIsSomeSelected();
336
- var canSelect = row.getCanSelect();
337
- return function (e) {
338
- var _target;
339
-
340
- if (!canSelect) return;
341
- row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);
342
- };
343
- },
344
247
  getToggleAllRowsSelectedHandler: function getToggleAllRowsSelectedHandler() {
345
248
  return function (e) {
346
249
  instance.toggleAllRowsSelected(e.target.checked);
@@ -355,23 +258,68 @@ var RowSelection = {
355
258
  },
356
259
  createRow: function createRow(row, instance) {
357
260
  return {
261
+ toggleSelected: function toggleSelected(value) {
262
+ var isSelected = row.getIsSelected();
263
+ instance.setRowSelection(function (old) {
264
+ value = typeof value !== 'undefined' ? value : !isSelected;
265
+
266
+ if (isSelected === value) {
267
+ return old;
268
+ }
269
+
270
+ var selectedRowIds = _rollupPluginBabelHelpers["extends"]({}, old);
271
+
272
+ mutateRowIsSelected(selectedRowIds, row.id, value, instance);
273
+ return selectedRowIds;
274
+ });
275
+ },
358
276
  getIsSelected: function getIsSelected() {
359
- return instance.getRowIsSelected(row.id);
277
+ var _instance$getState3 = instance.getState(),
278
+ rowSelection = _instance$getState3.rowSelection;
279
+
280
+ return isRowSelected(row, rowSelection) === true;
360
281
  },
361
282
  getIsSomeSelected: function getIsSomeSelected() {
362
- return instance.getRowIsSomeSelected(row.id);
283
+ var _instance$getState4 = instance.getState(),
284
+ rowSelection = _instance$getState4.rowSelection;
285
+
286
+ return isRowSelected(row, rowSelection) === 'some';
363
287
  },
364
- toggleSelected: function toggleSelected(value) {
365
- return instance.toggleRowSelected(row.id, value);
288
+ getCanSelect: function getCanSelect() {
289
+ var _instance$options$ena;
290
+
291
+ if (typeof instance.options.enableRowSelection === 'function') {
292
+ return instance.options.enableRowSelection(row);
293
+ }
294
+
295
+ return (_instance$options$ena = instance.options.enableRowSelection) != null ? _instance$options$ena : true;
366
296
  },
367
- getToggleSelectedHandler: function getToggleSelectedHandler() {
368
- return instance.getToggleRowSelectedHandler(row.id);
297
+ getCanSelectSubRows: function getCanSelectSubRows() {
298
+ var _instance$options$ena2;
299
+
300
+ if (typeof instance.options.enableSubRowSelection === 'function') {
301
+ return instance.options.enableSubRowSelection(row);
302
+ }
303
+
304
+ return (_instance$options$ena2 = instance.options.enableSubRowSelection) != null ? _instance$options$ena2 : true;
369
305
  },
370
306
  getCanMultiSelect: function getCanMultiSelect() {
371
- return instance.getRowCanMultiSelect(row.id);
307
+ var _instance$options$ena3;
308
+
309
+ if (typeof instance.options.enableMultiRowSelection === 'function') {
310
+ return instance.options.enableMultiRowSelection(row);
311
+ }
312
+
313
+ return (_instance$options$ena3 = instance.options.enableMultiRowSelection) != null ? _instance$options$ena3 : true;
372
314
  },
373
- getCanSelect: function getCanSelect() {
374
- return instance.getRowCanSelect(row.id);
315
+ getToggleSelectedHandler: function getToggleSelectedHandler() {
316
+ var canSelect = row.getCanSelect();
317
+ return function (e) {
318
+ var _target;
319
+
320
+ if (!canSelect) return;
321
+ row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);
322
+ };
375
323
  }
376
324
  };
377
325
  }
@@ -393,7 +341,7 @@ var mutateRowIsSelected = function mutateRowIsSelected(selectedRowIds, id, value
393
341
  } // }
394
342
 
395
343
 
396
- if ((_row$subRows = row.subRows) != null && _row$subRows.length && instance.getRowCanSelectSubRows(row.id)) {
344
+ if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {
397
345
  row.subRows.forEach(function (row) {
398
346
  return mutateRowIsSelected(selectedRowIds, row.id, value, instance);
399
347
  });
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} 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<TGenerics extends TableGenerics> = {\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport type RowSelectionInstance<TGenerics extends TableGenerics> = {\n getToggleRowSelectedHandler: (\n rowId: string\n ) => undefined | ((e: unknown) => void)\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => void\n toggleRowSelected: (rowId: string, value?: boolean) => void\n getRowCanSelect: (rowId: string) => boolean\n getRowCanSelectSubRows: (rowId: string) => boolean\n getRowCanMultiSelect: (rowId: string) => boolean\n // getGroupingRowCanSelect: (rowId: string) => boolean\n getRowIsSelected: (rowId: string) => boolean\n getRowIsSomeSelected: (rowId: string) => boolean\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<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection = {\n getInitialState: (): RowSelectionTableState => {\n return {\n rowSelection: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\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 createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n return {\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(updater),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.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 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 instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n toggleRowSelected: (rowId, value) => {\n const row = instance.getRow(rowId)\n const isSelected = row.getIsSelected()\n\n instance.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, rowId, value, instance)\n\n return selectedRowIds\n })\n },\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\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 // instance.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 // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getGlobalFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n ///\n\n getRowIsSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getRowIsSomeSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getRowCanSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getRowCanSelectSubRows: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getRowCanMultiSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows =\n instance.getPreGlobalFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.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 return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleRowSelectedHandler: rowId => {\n const row = instance.getRow(rowId)\n\n const isSelected = row.getIsSelected()\n const isSomeSelected = row.getIsSomeSelected()\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 getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n getIsSelected: () => instance.getRowIsSelected(row.id),\n getIsSomeSelected: () => instance.getRowIsSomeSelected(row.id),\n toggleSelected: value => instance.toggleRowSelected(row.id, value),\n getToggleSelectedHandler: () =>\n instance.getToggleRowSelectedHandler(row.id)!,\n getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),\n getCanSelect: () => instance.getRowCanSelect(row.id),\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends TableGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && instance.getRowCanSelectSubRows(row.id)) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0): Row<TGenerics>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\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<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\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, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createInstance","setRowSelection","updater","options","resetRowSelection","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","debug","debugAll","debugTable","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleRowSelectedHandler","getIsSomeSelected","canSelect","getCanSelect","e","toggleSelected","target","checked","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","createRow","getToggleSelectedHandler","getCanMultiSelect","getIsGrouped","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 {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n RowModel,\n Updater,\n TableFeature,\n} 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<TGenerics extends TableGenerics> = {\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => 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<TGenerics extends TableGenerics> = {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => 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<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\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 createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n return {\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(updater),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.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 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 instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\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 // instance.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 // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows = instance.getPreFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.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 return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n instance.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, instance)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = instance.getState()\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = instance.getState()\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getCanSelect: () => {\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.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 = <TGenerics extends TableGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\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, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0): Row<TGenerics>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\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<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\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, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","_extends","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createInstance","setRowSelection","updater","options","resetRowSelection","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","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","getGroupedRowModel","preFilteredFlatRows","getPreFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","getIsSelected","selectedRowIds","isRowSelected","getIsSomeSelected","getCanSelect","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","getRow","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}