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

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 (140) hide show
  1. package/build/cjs/aggregationFns.js +25 -37
  2. package/build/cjs/aggregationFns.js.map +1 -1
  3. package/build/cjs/core.js +167 -46
  4. package/build/cjs/core.js.map +1 -1
  5. package/build/cjs/createTable.js +24 -40
  6. package/build/cjs/createTable.js.map +1 -1
  7. package/build/cjs/features/Cells.js +28 -34
  8. package/build/cjs/features/Cells.js.map +1 -1
  9. package/build/cjs/features/ColumnSizing.js +102 -116
  10. package/build/cjs/features/ColumnSizing.js.map +1 -1
  11. package/build/cjs/features/Columns.js +52 -79
  12. package/build/cjs/features/Columns.js.map +1 -1
  13. package/build/cjs/features/Expanding.js +49 -58
  14. package/build/cjs/features/Expanding.js.map +1 -1
  15. package/build/cjs/features/Filters.js +98 -193
  16. package/build/cjs/features/Filters.js.map +1 -1
  17. package/build/cjs/features/Grouping.js +53 -71
  18. package/build/cjs/features/Grouping.js.map +1 -1
  19. package/build/cjs/features/Headers.js +109 -165
  20. package/build/cjs/features/Headers.js.map +1 -1
  21. package/build/cjs/features/Ordering.js +31 -43
  22. package/build/cjs/features/Ordering.js.map +1 -1
  23. package/build/cjs/features/Pagination.js +79 -82
  24. package/build/cjs/features/Pagination.js.map +1 -1
  25. package/build/cjs/features/Pinning.js +71 -125
  26. package/build/cjs/features/Pinning.js.map +1 -1
  27. package/build/cjs/features/RowSelection.js +93 -112
  28. package/build/cjs/features/RowSelection.js.map +1 -1
  29. package/build/cjs/features/Rows.js +32 -22
  30. package/build/cjs/features/Rows.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +54 -73
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +47 -86
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +48 -72
  36. package/build/cjs/filterFns.js.map +1 -1
  37. package/build/cjs/index.js +13 -13
  38. package/build/cjs/sortingFns.js +21 -21
  39. package/build/cjs/sortingFns.js.map +1 -1
  40. package/build/cjs/utils/filterRowsUtils.js +49 -55
  41. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  42. package/build/cjs/utils/getCoreRowModel.js +98 -0
  43. package/build/cjs/utils/getCoreRowModel.js.map +1 -0
  44. package/build/cjs/utils/getExpandedRowModel.js +17 -21
  45. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  46. package/build/cjs/utils/getFacetedMinMaxValues.js +48 -0
  47. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
  48. package/build/cjs/utils/getFacetedRowModel.js +50 -0
  49. package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
  50. package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
  51. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
  52. package/build/cjs/utils/getFilteredRowModel.js +130 -0
  53. package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
  54. package/build/cjs/utils/getGroupedRowModel.js +126 -136
  55. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  56. package/build/cjs/utils/getPaginationRowModel.js +39 -39
  57. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  58. package/build/cjs/utils/getSortedRowModel.js +112 -0
  59. package/build/cjs/utils/getSortedRowModel.js.map +1 -0
  60. package/build/cjs/utils.js +36 -207
  61. package/build/cjs/utils.js.map +1 -1
  62. package/build/esm/index.js +1778 -2347
  63. package/build/esm/index.js.map +1 -1
  64. package/build/stats-html.html +1 -1
  65. package/build/stats-react.json +421 -481
  66. package/build/types/core.d.ts +3 -5
  67. package/build/types/features/Cells.d.ts +1 -1
  68. package/build/types/features/ColumnSizing.d.ts +2 -2
  69. package/build/types/features/Columns.d.ts +1 -1
  70. package/build/types/features/Expanding.d.ts +1 -1
  71. package/build/types/features/Filters.d.ts +12 -7
  72. package/build/types/features/Grouping.d.ts +5 -4
  73. package/build/types/features/Ordering.d.ts +1 -1
  74. package/build/types/features/Pagination.d.ts +4 -4
  75. package/build/types/features/Pinning.d.ts +1 -1
  76. package/build/types/features/RowSelection.d.ts +1 -1
  77. package/build/types/features/Rows.d.ts +4 -3
  78. package/build/types/features/Sorting.d.ts +2 -1
  79. package/build/types/features/Visibility.d.ts +1 -0
  80. package/build/types/index.d.ts +6 -4
  81. package/build/types/types.d.ts +3 -13
  82. package/build/types/utils/filterRowsUtils.d.ts +3 -3
  83. package/build/types/utils/getCoreRowModel.d.ts +2 -0
  84. package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
  85. package/build/types/utils/getFacetedRowModel.d.ts +2 -0
  86. package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
  87. package/build/types/utils/{getCoreRowModelSync.d.ts → getFilteredRowModel.d.ts} +1 -1
  88. package/build/types/utils/getGroupedRowModel.d.ts +1 -1
  89. package/build/types/utils/getSortedRowModel.d.ts +2 -0
  90. package/build/types/utils.d.ts +1 -17
  91. package/build/umd/index.development.js +1779 -2350
  92. package/build/umd/index.development.js.map +1 -1
  93. package/build/umd/index.production.js +1 -1
  94. package/build/umd/index.production.js.map +1 -1
  95. package/package.json +1 -1
  96. package/src/core.ts +197 -45
  97. package/src/features/Cells.ts +7 -11
  98. package/src/features/ColumnSizing.ts +27 -19
  99. package/src/features/Columns.ts +4 -8
  100. package/src/features/Expanding.ts +5 -3
  101. package/src/features/Filters.ts +105 -162
  102. package/src/features/Grouping.ts +21 -23
  103. package/src/features/Ordering.ts +5 -3
  104. package/src/features/Pagination.ts +32 -19
  105. package/src/features/Pinning.ts +13 -7
  106. package/src/features/RowSelection.ts +5 -3
  107. package/src/features/Rows.ts +21 -6
  108. package/src/features/Sorting.ts +14 -12
  109. package/src/features/Visibility.ts +7 -0
  110. package/src/filterFns.ts +9 -9
  111. package/src/index.ts +12 -4
  112. package/src/sortingFns.ts +11 -11
  113. package/src/types.ts +3 -16
  114. package/src/utils/filterRowsUtils.ts +47 -68
  115. package/src/utils/{getCoreRowModelSync.ts → getCoreRowModel.ts} +2 -8
  116. package/src/utils/getFacetedMinMaxValues.ts +37 -0
  117. package/src/utils/getFacetedRowModel.ts +50 -0
  118. package/src/utils/getFacetedUniqueValues.ts +37 -0
  119. package/src/utils/{getFilteredRowModelSync.ts → getFilteredRowModel.ts} +29 -20
  120. package/src/utils/getGroupedRowModel.ts +52 -61
  121. package/src/utils/{getSortedRowModelSync.ts → getSortedRowModel.ts} +3 -3
  122. package/src/utils.ts +28 -236
  123. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
  124. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  125. package/build/cjs/utils/getCoreRowModelAsync.js +0 -125
  126. package/build/cjs/utils/getCoreRowModelAsync.js.map +0 -1
  127. package/build/cjs/utils/getCoreRowModelSync.js +0 -102
  128. package/build/cjs/utils/getCoreRowModelSync.js.map +0 -1
  129. package/build/cjs/utils/getFilteredRowModelSync.js +0 -125
  130. package/build/cjs/utils/getFilteredRowModelSync.js.map +0 -1
  131. package/build/cjs/utils/getSortedRowModelSync.js +0 -118
  132. package/build/cjs/utils/getSortedRowModelSync.js.map +0 -1
  133. package/build/types/utils/getCoreRowModelAsync.d.ts +0 -4
  134. package/build/types/utils/getFilteredRowModelAsync.d.ts +0 -4
  135. package/build/types/utils/getFilteredRowModelSync.d.ts +0 -2
  136. package/build/types/utils/getSortedRowModelAsync.d.ts +0 -13
  137. package/build/types/utils/getSortedRowModelSync.d.ts +0 -2
  138. package/src/utils/getCoreRowModelAsync.ts +0 -104
  139. package/src/utils/getFilteredRowModelAsync.ts +0 -157
  140. package/src/utils/getSortedRowModelAsync.ts +0 -200
@@ -12,17 +12,17 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
16
15
  var utils = require('../utils.js');
17
16
 
18
17
  //
19
- var RowSelection = {
20
- getInitialState: function getInitialState(state) {
21
- return _rollupPluginBabelHelpers["extends"]({
22
- rowSelection: {}
23
- }, state);
18
+ const RowSelection = {
19
+ getInitialState: state => {
20
+ return {
21
+ rowSelection: {},
22
+ ...state
23
+ };
24
24
  },
25
- getDefaultOptions: function getDefaultOptions(instance) {
25
+ getDefaultOptions: instance => {
26
26
  return {
27
27
  onRowSelectionChange: utils.makeStateUpdater('rowSelection', instance),
28
28
  enableRowSelection: true,
@@ -33,31 +33,28 @@ var RowSelection = {
33
33
 
34
34
  };
35
35
  },
36
- createInstance: function createInstance(instance) {
36
+ createInstance: instance => {
37
37
  return {
38
- setRowSelection: function setRowSelection(updater) {
39
- return instance.options.onRowSelectionChange == null ? void 0 : instance.options.onRowSelectionChange(updater);
40
- },
41
- resetRowSelection: function resetRowSelection() {
38
+ setRowSelection: updater => instance.options.onRowSelectionChange == null ? void 0 : instance.options.onRowSelectionChange(updater),
39
+ resetRowSelection: defaultState => {
42
40
  var _instance$initialStat;
43
41
 
44
- return instance.setRowSelection((_instance$initialStat = instance.initialState.rowSelection) != null ? _instance$initialStat : {});
42
+ return instance.setRowSelection(defaultState ? {} : (_instance$initialStat = instance.initialState.rowSelection) != null ? _instance$initialStat : {});
45
43
  },
46
- toggleAllRowsSelected: function toggleAllRowsSelected(value) {
47
- instance.setRowSelection(function (old) {
44
+ toggleAllRowsSelected: value => {
45
+ instance.setRowSelection(old => {
48
46
  value = typeof value !== 'undefined' ? value : !instance.getIsAllRowsSelected();
49
-
50
- var rowSelection = _rollupPluginBabelHelpers["extends"]({}, old);
51
-
52
- var preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows; // We don't use `mutateRowIsSelected` here for performance reasons.
47
+ const rowSelection = { ...old
48
+ };
49
+ const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows; // We don't use `mutateRowIsSelected` here for performance reasons.
53
50
  // All of the rows are flat already, so it wouldn't be worth it
54
51
 
55
52
  if (value) {
56
- preGroupedFlatRows.forEach(function (row) {
53
+ preGroupedFlatRows.forEach(row => {
57
54
  rowSelection[row.id] = true;
58
55
  });
59
56
  } else {
60
- preGroupedFlatRows.forEach(function (row) {
57
+ preGroupedFlatRows.forEach(row => {
61
58
  delete rowSelection[row.id];
62
59
  });
63
60
  }
@@ -65,18 +62,15 @@ var RowSelection = {
65
62
  return rowSelection;
66
63
  });
67
64
  },
68
- toggleAllPageRowsSelected: function toggleAllPageRowsSelected(value) {
69
- return instance.setRowSelection(function (old) {
70
- typeof value !== 'undefined' ? value : !instance.getIsAllPageRowsSelected();
71
-
72
- var rowSelection = _rollupPluginBabelHelpers["extends"]({}, old);
73
-
74
- instance.getRowModel().rows.forEach(function (row) {
75
- mutateRowIsSelected(rowSelection, row.id, value, instance);
76
- });
77
- return rowSelection;
65
+ toggleAllPageRowsSelected: value => instance.setRowSelection(old => {
66
+ typeof value !== 'undefined' ? value : !instance.getIsAllPageRowsSelected();
67
+ const rowSelection = { ...old
68
+ };
69
+ instance.getRowModel().rows.forEach(row => {
70
+ mutateRowIsSelected(rowSelection, row.id, value, instance);
78
71
  });
79
- },
72
+ return rowSelection;
73
+ }),
80
74
  // addRowSelectionRange: rowId => {
81
75
  // const {
82
76
  // rows,
@@ -127,12 +121,8 @@ var RowSelection = {
127
121
  // })
128
122
  // instance.setRowSelection(selectedRowIds)
129
123
  // },
130
- getPreSelectedRowModel: function getPreSelectedRowModel() {
131
- return instance.getCoreRowModel();
132
- },
133
- getSelectedRowModel: utils.memo(function () {
134
- return [instance.getState().rowSelection, instance.getCoreRowModel()];
135
- }, function (rowSelection, rowModel) {
124
+ getPreSelectedRowModel: () => instance.getCoreRowModel(),
125
+ getSelectedRowModel: utils.memo(() => [instance.getState().rowSelection, instance.getCoreRowModel()], (rowSelection, rowModel) => {
136
126
  if (!Object.keys(rowSelection).length) {
137
127
  return {
138
128
  rows: [],
@@ -144,15 +134,13 @@ var RowSelection = {
144
134
  return selectRowsFn(instance, rowModel);
145
135
  }, {
146
136
  key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',
147
- debug: function debug() {
137
+ debug: () => {
148
138
  var _instance$options$deb;
149
139
 
150
140
  return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
151
141
  }
152
142
  }),
153
- getFilteredSelectedRowModel: utils.memo(function () {
154
- return [instance.getState().rowSelection, instance.getFilteredRowModel()];
155
- }, function (rowSelection, rowModel) {
143
+ getFilteredSelectedRowModel: utils.memo(() => [instance.getState().rowSelection, instance.getFilteredRowModel()], (rowSelection, rowModel) => {
156
144
  if (!Object.keys(rowSelection).length) {
157
145
  return {
158
146
  rows: [],
@@ -164,15 +152,13 @@ var RowSelection = {
164
152
  return selectRowsFn(instance, rowModel);
165
153
  }, {
166
154
  key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',
167
- debug: function debug() {
155
+ debug: () => {
168
156
  var _instance$options$deb2;
169
157
 
170
158
  return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugTable;
171
159
  }
172
160
  }),
173
- getGroupedSelectedRowModel: utils.memo(function () {
174
- return [instance.getState().rowSelection, instance.getGroupedRowModel()];
175
- }, function (rowSelection, rowModel) {
161
+ getGroupedSelectedRowModel: utils.memo(() => [instance.getState().rowSelection, instance.getGroupedRowModel()], (rowSelection, rowModel) => {
176
162
  if (!Object.keys(rowSelection).length) {
177
163
  return {
178
164
  rows: [],
@@ -184,7 +170,7 @@ var RowSelection = {
184
170
  return selectRowsFn(instance, rowModel);
185
171
  }, {
186
172
  key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',
187
- debug: function debug() {
173
+ debug: () => {
188
174
  var _instance$options$deb3;
189
175
 
190
176
  return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugTable;
@@ -201,91 +187,85 @@ var RowSelection = {
201
187
  // }
202
188
  // return instance.options.enableGroupingRowSelection ?? false
203
189
  // },
204
- getIsAllRowsSelected: function getIsAllRowsSelected() {
205
- var preFilteredFlatRows = instance.getPreFilteredRowModel().flatRows;
206
-
207
- var _instance$getState = instance.getState(),
208
- rowSelection = _instance$getState.rowSelection;
209
-
210
- var isAllRowsSelected = Boolean(preFilteredFlatRows.length && Object.keys(rowSelection).length);
190
+ getIsAllRowsSelected: () => {
191
+ const preFilteredFlatRows = instance.getPreFilteredRowModel().flatRows;
192
+ const {
193
+ rowSelection
194
+ } = instance.getState();
195
+ let isAllRowsSelected = Boolean(preFilteredFlatRows.length && Object.keys(rowSelection).length);
211
196
 
212
197
  if (isAllRowsSelected) {
213
- if (preFilteredFlatRows.some(function (row) {
214
- return !rowSelection[row.id];
215
- })) {
198
+ if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {
216
199
  isAllRowsSelected = false;
217
200
  }
218
201
  }
219
202
 
220
203
  return isAllRowsSelected;
221
204
  },
222
- getIsAllPageRowsSelected: function getIsAllPageRowsSelected() {
223
- var paginationFlatRows = instance.getPaginationRowModel().flatRows;
224
-
225
- var _instance$getState2 = instance.getState(),
226
- rowSelection = _instance$getState2.rowSelection;
227
-
228
- var isAllPageRowsSelected = !!paginationFlatRows.length;
229
-
230
- if (isAllPageRowsSelected && paginationFlatRows.some(function (row) {
231
- return !rowSelection[row.id];
232
- })) {
205
+ getIsAllPageRowsSelected: () => {
206
+ const paginationFlatRows = instance.getPaginationRowModel().flatRows;
207
+ const {
208
+ rowSelection
209
+ } = instance.getState();
210
+ let isAllPageRowsSelected = !!paginationFlatRows.length;
211
+
212
+ if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {
233
213
  isAllPageRowsSelected = false;
234
214
  }
235
215
 
236
216
  return isAllPageRowsSelected;
237
217
  },
238
- getIsSomeRowsSelected: function getIsSomeRowsSelected() {
218
+ getIsSomeRowsSelected: () => {
239
219
  var _instance$getState$ro;
240
220
 
241
221
  return !instance.getIsAllRowsSelected() && !!Object.keys((_instance$getState$ro = instance.getState().rowSelection) != null ? _instance$getState$ro : {}).length;
242
222
  },
243
- getIsSomePageRowsSelected: function getIsSomePageRowsSelected() {
244
- var paginationFlatRows = instance.getPaginationRowModel().flatRows;
223
+ getIsSomePageRowsSelected: () => {
224
+ const paginationFlatRows = instance.getPaginationRowModel().flatRows;
245
225
  return instance.getIsAllPageRowsSelected() ? false : !!(paginationFlatRows != null && paginationFlatRows.length);
246
226
  },
247
- getToggleAllRowsSelectedHandler: function getToggleAllRowsSelectedHandler() {
248
- return function (e) {
227
+ getToggleAllRowsSelectedHandler: () => {
228
+ return e => {
249
229
  instance.toggleAllRowsSelected(e.target.checked);
250
230
  };
251
231
  },
252
- getToggleAllPageRowsSelectedHandler: function getToggleAllPageRowsSelectedHandler() {
253
- return function (e) {
232
+ getToggleAllPageRowsSelectedHandler: () => {
233
+ return e => {
254
234
  instance.toggleAllPageRowsSelected(e.target.checked);
255
235
  };
256
236
  }
257
237
  };
258
238
  },
259
- createRow: function createRow(row, instance) {
239
+ createRow: (row, instance) => {
260
240
  return {
261
- toggleSelected: function toggleSelected(value) {
262
- var isSelected = row.getIsSelected();
263
- instance.setRowSelection(function (old) {
241
+ toggleSelected: value => {
242
+ const isSelected = row.getIsSelected();
243
+ instance.setRowSelection(old => {
264
244
  value = typeof value !== 'undefined' ? value : !isSelected;
265
245
 
266
246
  if (isSelected === value) {
267
247
  return old;
268
248
  }
269
249
 
270
- var selectedRowIds = _rollupPluginBabelHelpers["extends"]({}, old);
271
-
250
+ const selectedRowIds = { ...old
251
+ };
272
252
  mutateRowIsSelected(selectedRowIds, row.id, value, instance);
273
253
  return selectedRowIds;
274
254
  });
275
255
  },
276
- getIsSelected: function getIsSelected() {
277
- var _instance$getState3 = instance.getState(),
278
- rowSelection = _instance$getState3.rowSelection;
279
-
256
+ getIsSelected: () => {
257
+ const {
258
+ rowSelection
259
+ } = instance.getState();
280
260
  return isRowSelected(row, rowSelection) === true;
281
261
  },
282
- getIsSomeSelected: function getIsSomeSelected() {
283
- var _instance$getState4 = instance.getState(),
284
- rowSelection = _instance$getState4.rowSelection;
285
-
262
+ getIsSomeSelected: () => {
263
+ const {
264
+ rowSelection
265
+ } = instance.getState();
286
266
  return isRowSelected(row, rowSelection) === 'some';
287
267
  },
288
- getCanSelect: function getCanSelect() {
268
+ getCanSelect: () => {
289
269
  var _instance$options$ena;
290
270
 
291
271
  if (typeof instance.options.enableRowSelection === 'function') {
@@ -294,7 +274,7 @@ var RowSelection = {
294
274
 
295
275
  return (_instance$options$ena = instance.options.enableRowSelection) != null ? _instance$options$ena : true;
296
276
  },
297
- getCanSelectSubRows: function getCanSelectSubRows() {
277
+ getCanSelectSubRows: () => {
298
278
  var _instance$options$ena2;
299
279
 
300
280
  if (typeof instance.options.enableSubRowSelection === 'function') {
@@ -303,7 +283,7 @@ var RowSelection = {
303
283
 
304
284
  return (_instance$options$ena2 = instance.options.enableSubRowSelection) != null ? _instance$options$ena2 : true;
305
285
  },
306
- getCanMultiSelect: function getCanMultiSelect() {
286
+ getCanMultiSelect: () => {
307
287
  var _instance$options$ena3;
308
288
 
309
289
  if (typeof instance.options.enableMultiRowSelection === 'function') {
@@ -312,9 +292,9 @@ var RowSelection = {
312
292
 
313
293
  return (_instance$options$ena3 = instance.options.enableMultiRowSelection) != null ? _instance$options$ena3 : true;
314
294
  },
315
- getToggleSelectedHandler: function getToggleSelectedHandler() {
316
- var canSelect = row.getCanSelect();
317
- return function (e) {
295
+ getToggleSelectedHandler: () => {
296
+ const canSelect = row.getCanSelect();
297
+ return e => {
318
298
  var _target;
319
299
 
320
300
  if (!canSelect) return;
@@ -325,10 +305,10 @@ var RowSelection = {
325
305
  }
326
306
  };
327
307
 
328
- var mutateRowIsSelected = function mutateRowIsSelected(selectedRowIds, id, value, instance) {
308
+ const mutateRowIsSelected = (selectedRowIds, id, value, instance) => {
329
309
  var _row$subRows;
330
310
 
331
- var row = instance.getRow(id);
311
+ const row = instance.getRow(id);
332
312
  row.getIsGrouped(); // if ( // TODO: enforce grouping row selection rules
333
313
  // !isGrouped ||
334
314
  // (isGrouped && instance.options.enableGroupingRowSelection)
@@ -342,23 +322,24 @@ var mutateRowIsSelected = function mutateRowIsSelected(selectedRowIds, id, value
342
322
 
343
323
 
344
324
  if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {
345
- row.subRows.forEach(function (row) {
346
- return mutateRowIsSelected(selectedRowIds, row.id, value, instance);
347
- });
325
+ row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, instance));
348
326
  }
349
327
  };
350
328
 
351
329
  function selectRowsFn(instance, rowModel) {
352
- var rowSelection = instance.getState().rowSelection;
353
- var newSelectedFlatRows = [];
354
- var newSelectedRowsById = {}; // Filters top level and nested rows
330
+ const rowSelection = instance.getState().rowSelection;
331
+ const newSelectedFlatRows = [];
332
+ const newSelectedRowsById = {}; // Filters top level and nested rows
355
333
 
356
- var recurseRows = function recurseRows(rows, depth) {
334
+ const recurseRows = function (rows, depth) {
335
+ if (depth === void 0) {
336
+ depth = 0;
337
+ }
357
338
 
358
- return rows.map(function (row) {
339
+ return rows.map(row => {
359
340
  var _row$subRows2;
360
341
 
361
- var isSelected = isRowSelected(row, rowSelection) === true;
342
+ const isSelected = isRowSelected(row, rowSelection) === true;
362
343
 
363
344
  if (isSelected) {
364
345
  newSelectedFlatRows.push(row);
@@ -366,9 +347,9 @@ function selectRowsFn(instance, rowModel) {
366
347
  }
367
348
 
368
349
  if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {
369
- row = _rollupPluginBabelHelpers["extends"]({}, row, {
370
- subRows: recurseRows(row.subRows)
371
- });
350
+ row = { ...row,
351
+ subRows: recurseRows(row.subRows, depth + 1)
352
+ };
372
353
  }
373
354
 
374
355
  if (isSelected) {
@@ -389,9 +370,9 @@ function isRowSelected(row, selection, instance) {
389
370
  }
390
371
 
391
372
  if (row.subRows && row.subRows.length) {
392
- var allChildrenSelected = true;
393
- var someSelected = false;
394
- row.subRows.forEach(function (subRow) {
373
+ let allChildrenSelected = true;
374
+ let someSelected = false;
375
+ row.subRows.forEach(subRow => {
395
376
  // Bail out early if we know both of these
396
377
  if (someSelected && !allChildrenSelected) {
397
378
  return;
@@ -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 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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"}
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: (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<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: defaultState =>\n instance.setRowSelection(\n defaultState ? {} : instance.initialState.rowSelection ?? {}\n ),\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","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createInstance","setRowSelection","updater","options","resetRowSelection","defaultState","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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"}
@@ -15,43 +15,53 @@ Object.defineProperty(exports, '__esModule', { value: true });
15
15
  var utils = require('../utils.js');
16
16
 
17
17
  //
18
- var Rows = {
18
+ const Rows = {
19
19
  // createRow: <TGenerics extends TableGenerics>(
20
20
  // row: Row<TGenerics>,
21
21
  // instance: TableInstance<TGenerics>
22
22
  // ): CellsRow<TGenerics> => {
23
23
  // return {}
24
24
  // },
25
- createInstance: function createInstance(instance) {
25
+ createInstance: instance => {
26
26
  return {
27
- getRowId: function getRowId(row, index, parent) {
27
+ getRowId: (row, index, parent) => {
28
28
  var _instance$options$get;
29
29
 
30
30
  return (_instance$options$get = instance.options.getRowId == null ? void 0 : instance.options.getRowId(row, index, parent)) != null ? _instance$options$get : "" + (parent ? [parent.id, index].join('.') : index);
31
31
  },
32
- createRow: function createRow(id, original, rowIndex, depth, values) {
33
- var row = {
34
- id: id,
32
+ createRow: (id, original, rowIndex, depth, subRows) => {
33
+ let row = {
34
+ id,
35
35
  index: rowIndex,
36
- original: original,
37
- depth: depth,
38
- values: values,
39
- subRows: [],
40
- getLeafRows: function getLeafRows() {
41
- return utils.flattenBy(row.subRows, function (d) {
42
- return d.subRows;
43
- });
44
- }
36
+ original,
37
+ depth,
38
+ valuesCache: {},
39
+ getValue: columnId => {
40
+ if (row.valuesCache.hasOwnProperty(columnId)) {
41
+ return row.valuesCache[columnId];
42
+ }
43
+
44
+ const column = instance.getColumn(columnId);
45
+
46
+ if (!column.accessorFn) {
47
+ throw new Error();
48
+ }
49
+
50
+ row.valuesCache[columnId] = column.accessorFn(row.original, rowIndex);
51
+ return row.valuesCache[columnId];
52
+ },
53
+ subRows: subRows != null ? subRows : [],
54
+ getLeafRows: () => utils.flattenBy(row.subRows, d => d.subRows)
45
55
  };
46
56
 
47
- for (var i = 0; i < instance._features.length; i++) {
48
- var feature = instance._features[i];
49
- Object.assign(row, feature.createRow == null ? void 0 : feature.createRow(row, instance));
57
+ for (let i = 0; i < instance._features.length; i++) {
58
+ const feature = instance._features[i];
59
+ Object.assign(row, feature == null ? void 0 : feature.createRow == null ? void 0 : feature.createRow(row, instance));
50
60
  }
51
61
 
52
62
  return row;
53
63
  },
54
- getCoreRowModel: function getCoreRowModel() {
64
+ getCoreRowModel: () => {
55
65
  if (!instance._getCoreRowModel) {
56
66
  instance._getCoreRowModel = instance.options.getCoreRowModel(instance);
57
67
  }
@@ -60,11 +70,11 @@ var Rows = {
60
70
  },
61
71
  // The final calls start at the bottom of the model,
62
72
  // expanded rows, which then work their way up
63
- getRowModel: function getRowModel() {
73
+ getRowModel: () => {
64
74
  return instance.getPaginationRowModel();
65
75
  },
66
- getRow: function getRow(id) {
67
- var row = instance.getRowModel().rowsById[id];
76
+ getRow: id => {
77
+ const row = instance.getRowModel().rowsById[id];
68
78
 
69
79
  if (!row) {
70
80
  if (process.env.NODE_ENV !== 'production') {