@tanstack/table-core 8.5.15 → 8.5.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/build/cjs/aggregationFns.js +0 -15
  2. package/build/cjs/aggregationFns.js.map +1 -1
  3. package/build/cjs/columnHelper.js +10 -2
  4. package/build/cjs/columnHelper.js.map +1 -1
  5. package/build/cjs/core/cell.js +0 -3
  6. package/build/cjs/core/cell.js.map +1 -1
  7. package/build/cjs/core/column.js +7 -12
  8. package/build/cjs/core/column.js.map +1 -1
  9. package/build/cjs/core/headers.js +18 -30
  10. package/build/cjs/core/headers.js.map +1 -1
  11. package/build/cjs/core/row.js +0 -5
  12. package/build/cjs/core/row.js.map +1 -1
  13. package/build/cjs/core/table.js +13 -30
  14. package/build/cjs/core/table.js.map +1 -1
  15. package/build/cjs/features/ColumnSizing.js +33 -32
  16. package/build/cjs/features/ColumnSizing.js.map +1 -1
  17. package/build/cjs/features/Expanding.js +9 -19
  18. package/build/cjs/features/Expanding.js.map +1 -1
  19. package/build/cjs/features/Filters.js +6 -34
  20. package/build/cjs/features/Filters.js.map +1 -1
  21. package/build/cjs/features/Grouping.js +1 -16
  22. package/build/cjs/features/Grouping.js.map +1 -1
  23. package/build/cjs/features/Ordering.js +13 -10
  24. package/build/cjs/features/Ordering.js.map +1 -1
  25. package/build/cjs/features/Pagination.js +11 -22
  26. package/build/cjs/features/Pagination.js.map +1 -1
  27. package/build/cjs/features/Pinning.js +5 -11
  28. package/build/cjs/features/Pinning.js.map +1 -1
  29. package/build/cjs/features/RowSelection.js +35 -39
  30. package/build/cjs/features/RowSelection.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +14 -29
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +5 -5
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +3 -28
  36. package/build/cjs/filterFns.js.map +1 -1
  37. package/build/cjs/sortingFns.js +24 -31
  38. package/build/cjs/sortingFns.js.map +1 -1
  39. package/build/cjs/utils/filterRowsUtils.js +7 -19
  40. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  41. package/build/cjs/utils/getCoreRowModel.js +11 -13
  42. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  43. package/build/cjs/utils/getExpandedRowModel.js +0 -6
  44. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  45. package/build/cjs/utils/getFacetedMinMaxValues.js +0 -6
  46. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
  47. package/build/cjs/utils/getFacetedRowModel.js +0 -4
  48. package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
  49. package/build/cjs/utils/getFacetedUniqueValues.js +0 -4
  50. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
  51. package/build/cjs/utils/getFilteredRowModel.js +8 -20
  52. package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
  53. package/build/cjs/utils/getGroupedRowModel.js +21 -25
  54. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  55. package/build/cjs/utils/getPaginationRowModel.js +0 -6
  56. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  57. package/build/cjs/utils/getSortedRowModel.js +6 -15
  58. package/build/cjs/utils/getSortedRowModel.js.map +1 -1
  59. package/build/cjs/utils.js +7 -13
  60. package/build/cjs/utils.js.map +1 -1
  61. package/build/esm/index.js +267 -504
  62. package/build/esm/index.js.map +1 -1
  63. package/build/stats-html.html +51 -41
  64. package/build/stats-react.json +369 -369
  65. package/build/umd/index.development.js +267 -502
  66. package/build/umd/index.development.js.map +1 -1
  67. package/build/umd/index.production.js +1 -1
  68. package/build/umd/index.production.js.map +1 -1
  69. package/package.json +1 -1
  70. package/src/core/column.ts +5 -0
  71. package/src/features/ColumnSizing.ts +11 -1
@@ -15,6 +15,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
15
15
  var utils = require('../utils.js');
16
16
 
17
17
  //
18
+
18
19
  const RowSelection = {
19
20
  getInitialState: state => {
20
21
  return {
@@ -27,12 +28,13 @@ const RowSelection = {
27
28
  onRowSelectionChange: utils.makeStateUpdater('rowSelection', table),
28
29
  enableRowSelection: true,
29
30
  enableMultiRowSelection: true,
30
- enableSubRowSelection: true // enableGroupingRowSelection: false,
31
+ enableSubRowSelection: true
32
+ // enableGroupingRowSelection: false,
31
33
  // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,
32
34
  // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,
33
-
34
35
  };
35
36
  },
37
+
36
38
  createTable: table => {
37
39
  return {
38
40
  setRowSelection: updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater),
@@ -40,17 +42,18 @@ const RowSelection = {
40
42
  toggleAllRowsSelected: value => {
41
43
  table.setRowSelection(old => {
42
44
  value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();
43
- const rowSelection = { ...old
45
+ const rowSelection = {
46
+ ...old
44
47
  };
45
- const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows; // We don't use `mutateRowIsSelected` here for performance reasons.
46
- // All of the rows are flat already, so it wouldn't be worth it
48
+ const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;
47
49
 
50
+ // We don't use `mutateRowIsSelected` here for performance reasons.
51
+ // All of the rows are flat already, so it wouldn't be worth it
48
52
  if (value) {
49
53
  preGroupedFlatRows.forEach(row => {
50
54
  if (!row.getCanSelect()) {
51
55
  return;
52
56
  }
53
-
54
57
  rowSelection[row.id] = true;
55
58
  });
56
59
  } else {
@@ -58,13 +61,13 @@ const RowSelection = {
58
61
  delete rowSelection[row.id];
59
62
  });
60
63
  }
61
-
62
64
  return rowSelection;
63
65
  });
64
66
  },
65
67
  toggleAllPageRowsSelected: value => table.setRowSelection(old => {
66
68
  const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();
67
- const rowSelection = { ...old
69
+ const rowSelection = {
70
+ ...old
68
71
  };
69
72
  table.getRowModel().rows.forEach(row => {
70
73
  mutateRowIsSelected(rowSelection, row.id, resolvedValue, table);
@@ -77,6 +80,7 @@ const RowSelection = {
77
80
  // rowsById,
78
81
  // options: { selectGroupingRows, selectSubRows },
79
82
  // } = table
83
+
80
84
  // const findSelectedRow = (rows: Row[]) => {
81
85
  // let found
82
86
  // rows.find(d => {
@@ -93,10 +97,13 @@ const RowSelection = {
93
97
  // })
94
98
  // return found
95
99
  // }
100
+
96
101
  // const firstRow = findSelectedRow(rows) || rows[0]
97
102
  // const lastRow = rowsById[rowId]
103
+
98
104
  // let include = false
99
105
  // const selectedRowIds = {}
106
+
100
107
  // const addRow = (row: Row) => {
101
108
  // mutateRowIsSelected(selectedRowIds, row.id, true, {
102
109
  // rowsById,
@@ -104,9 +111,11 @@ const RowSelection = {
104
111
  // selectSubRows: selectSubRows!,
105
112
  // })
106
113
  // }
114
+
107
115
  // table.rows.forEach(row => {
108
116
  // const isFirstRow = row.id === firstRow.id
109
117
  // const isLastRow = row.id === lastRow.id
118
+
110
119
  // if (isFirstRow || isLastRow) {
111
120
  // if (!include) {
112
121
  // include = true
@@ -115,10 +124,12 @@ const RowSelection = {
115
124
  // include = false
116
125
  // }
117
126
  // }
127
+
118
128
  // if (include) {
119
129
  // addRow(row)
120
130
  // }
121
131
  // })
132
+
122
133
  // table.setRowSelection(selectedRowIds)
123
134
  // },
124
135
  getPreSelectedRowModel: () => table.getCoreRowModel(),
@@ -130,7 +141,6 @@ const RowSelection = {
130
141
  rowsById: {}
131
142
  };
132
143
  }
133
-
134
144
  return selectRowsFn(table, rowModel);
135
145
  }, {
136
146
  key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',
@@ -144,7 +154,6 @@ const RowSelection = {
144
154
  rowsById: {}
145
155
  };
146
156
  }
147
-
148
157
  return selectRowsFn(table, rowModel);
149
158
  }, {
150
159
  key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',
@@ -158,36 +167,38 @@ const RowSelection = {
158
167
  rowsById: {}
159
168
  };
160
169
  }
161
-
162
170
  return selectRowsFn(table, rowModel);
163
171
  }, {
164
172
  key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',
165
173
  debug: () => table.options.debugAll ?? table.options.debugTable
166
174
  }),
167
175
  ///
176
+
168
177
  // getGroupingRowCanSelect: rowId => {
169
178
  // const row = table.getRow(rowId)
179
+
170
180
  // if (!row) {
171
181
  // throw new Error()
172
182
  // }
183
+
173
184
  // if (typeof table.options.enableGroupingRowSelection === 'function') {
174
185
  // return table.options.enableGroupingRowSelection(row)
175
186
  // }
187
+
176
188
  // return table.options.enableGroupingRowSelection ?? false
177
189
  // },
190
+
178
191
  getIsAllRowsSelected: () => {
179
192
  const preGroupedFlatRows = table.getFilteredRowModel().flatRows;
180
193
  const {
181
194
  rowSelection
182
195
  } = table.getState();
183
196
  let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);
184
-
185
197
  if (isAllRowsSelected) {
186
198
  if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {
187
199
  isAllRowsSelected = false;
188
200
  }
189
201
  }
190
-
191
202
  return isAllRowsSelected;
192
203
  },
193
204
  getIsAllPageRowsSelected: () => {
@@ -196,11 +207,9 @@ const RowSelection = {
196
207
  rowSelection
197
208
  } = table.getState();
198
209
  let isAllPageRowsSelected = !!paginationFlatRows.length;
199
-
200
210
  if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {
201
211
  isAllPageRowsSelected = false;
202
212
  }
203
-
204
213
  return isAllPageRowsSelected;
205
214
  },
206
215
  getIsSomeRowsSelected: () => {
@@ -229,12 +238,11 @@ const RowSelection = {
229
238
  const isSelected = row.getIsSelected();
230
239
  table.setRowSelection(old => {
231
240
  value = typeof value !== 'undefined' ? value : !isSelected;
232
-
233
241
  if (isSelected === value) {
234
242
  return old;
235
243
  }
236
-
237
- const selectedRowIds = { ...old
244
+ const selectedRowIds = {
245
+ ...old
238
246
  };
239
247
  mutateRowIsSelected(selectedRowIds, row.id, value, table);
240
248
  return selectedRowIds;
@@ -262,28 +270,24 @@ const RowSelection = {
262
270
  if (typeof table.options.enableRowSelection === 'function') {
263
271
  return table.options.enableRowSelection(row);
264
272
  }
265
-
266
273
  return table.options.enableRowSelection ?? true;
267
274
  },
268
275
  getCanSelectSubRows: () => {
269
276
  if (typeof table.options.enableSubRowSelection === 'function') {
270
277
  return table.options.enableSubRowSelection(row);
271
278
  }
272
-
273
279
  return table.options.enableSubRowSelection ?? true;
274
280
  },
275
281
  getCanMultiSelect: () => {
276
282
  if (typeof table.options.enableMultiRowSelection === 'function') {
277
283
  return table.options.enableMultiRowSelection(row);
278
284
  }
279
-
280
285
  return table.options.enableMultiRowSelection ?? true;
281
286
  },
282
287
  getToggleSelectedHandler: () => {
283
288
  const canSelect = row.getCanSelect();
284
289
  return e => {
285
290
  var _target;
286
-
287
291
  if (!canSelect) return;
288
292
  row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);
289
293
  };
@@ -291,63 +295,57 @@ const RowSelection = {
291
295
  };
292
296
  }
293
297
  };
294
-
295
298
  const mutateRowIsSelected = (selectedRowIds, id, value, table) => {
296
299
  var _row$subRows;
300
+ const row = table.getRow(id);
301
+
302
+ // const isGrouped = row.getIsGrouped()
297
303
 
298
- const row = table.getRow(id); // const isGrouped = row.getIsGrouped()
299
304
  // if ( // TODO: enforce grouping row selection rules
300
305
  // !isGrouped ||
301
306
  // (isGrouped && table.options.enableGroupingRowSelection)
302
307
  // ) {
303
-
304
308
  if (value) {
305
309
  if (!row.getCanMultiSelect()) {
306
310
  Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);
307
311
  }
308
-
309
312
  if (row.getCanSelect()) {
310
313
  selectedRowIds[id] = true;
311
314
  }
312
315
  } else {
313
316
  delete selectedRowIds[id];
314
- } // }
315
-
317
+ }
318
+ // }
316
319
 
317
320
  if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {
318
321
  row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, table));
319
322
  }
320
323
  };
321
-
322
324
  function selectRowsFn(table, rowModel) {
323
325
  const rowSelection = table.getState().rowSelection;
324
326
  const newSelectedFlatRows = [];
325
- const newSelectedRowsById = {}; // Filters top level and nested rows
327
+ const newSelectedRowsById = {};
326
328
 
329
+ // Filters top level and nested rows
327
330
  const recurseRows = function (rows, depth) {
328
-
329
331
  return rows.map(row => {
330
332
  var _row$subRows2;
331
-
332
333
  const isSelected = isRowSelected(row, rowSelection);
333
-
334
334
  if (isSelected) {
335
335
  newSelectedFlatRows.push(row);
336
336
  newSelectedRowsById[row.id] = row;
337
337
  }
338
-
339
338
  if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {
340
- row = { ...row,
339
+ row = {
340
+ ...row,
341
341
  subRows: recurseRows(row.subRows)
342
342
  };
343
343
  }
344
-
345
344
  if (isSelected) {
346
345
  return row;
347
346
  }
348
347
  }).filter(Boolean);
349
348
  };
350
-
351
349
  return {
352
350
  rows: recurseRows(rowModel.rows),
353
351
  flatRows: newSelectedFlatRows,
@@ -366,7 +364,6 @@ function isSubRowSelected(row, selection, table) {
366
364
  if (someSelected && !allChildrenSelected) {
367
365
  return;
368
366
  }
369
-
370
367
  if (isRowSelected(subRow, selection)) {
371
368
  someSelected = true;
372
369
  } else {
@@ -375,7 +372,6 @@ function isSubRowSelected(row, selection, table) {
375
372
  });
376
373
  return allChildrenSelected ? 'all' : someSelected ? 'some' : false;
377
374
  }
378
-
379
375
  return false;
380
376
  }
381
377
 
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, RowModel, Updater, RowData } from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TData extends RowData> = {\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TData>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // table: Table<TData>,\n // rowModel: RowModel<TData>\n // ) => RowModel<TData>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getIsAllSubRowsSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport type RowSelectionInstance<TData extends RowData> = {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value?: boolean) => void\n toggleAllPageRowsSelected: (value?: boolean) => void\n getPreSelectedRowModel: () => RowModel<TData>\n getSelectedRowModel: () => RowModel<TData>\n getFilteredSelectedRowModel: () => RowModel<TData>\n getGroupedSelectedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionOptions<TData> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionInstance<TData> => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n table.setRowSelection(\n defaultState ? {} : table.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value =\n typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return\n }\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n table.setRowSelection(old => {\n const resolvedValue =\n typeof value !== 'undefined'\n ? value\n : !table.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getFilteredRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getSortedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllRowsSelected = Boolean(\n preGroupedFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (\n preGroupedFlatRows.some(\n row => row.getCanSelect() && !rowSelection[row.id]\n )\n ) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n const totalSelected = Object.keys(\n table.getState().rowSelection ?? {}\n ).length\n return (\n totalSelected > 0 &&\n totalSelected < table.getFilteredRowModel().flatRows.length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n return table.getIsAllPageRowsSelected()\n ? false\n : paginationFlatRows.some(\n d => d.getIsSelected() || d.getIsSomeSelected()\n )\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = table.getState()\n return isRowSelected(row, rowSelection)\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'some'\n },\n\n getIsAllSubRowsSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'all'\n },\n\n getCanSelect: () => {\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row)\n }\n\n return table.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row)\n }\n\n return table.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row)\n }\n\n return table.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TData extends RowData>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n table: Table<TData>\n) => {\n const row = table.getRow(id)\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key])\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true\n }\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n )\n }\n}\n\nexport function selectRowsFn<TData extends RowData>(\n table: Table<TData>,\n rowModel: RowModel<TData>\n): RowModel<TData> {\n const rowSelection = table.getState().rowSelection\n\n const newSelectedFlatRows: Row<TData>[] = []\n const newSelectedRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TData>[], depth = 0): Row<TData>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection)\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TData>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>\n): boolean {\n return selection[row.id] ?? false\n}\n\nexport function isSubRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>,\n table: Table<TData>\n): boolean | 'some' | 'all' {\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","table","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createTable","setRowSelection","updater","options","resetRowSelection","defaultState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","getCanSelect","id","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","getGroupedSelectedRowModel","getSortedRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","totalSelected","getIsSomePageRowsSelected","d","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","getRow","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
1
+ {"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, RowModel, Updater, RowData } from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TData extends RowData> = {\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TData>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // table: Table<TData>,\n // rowModel: RowModel<TData>\n // ) => RowModel<TData>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getIsAllSubRowsSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport type RowSelectionInstance<TData extends RowData> = {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value?: boolean) => void\n toggleAllPageRowsSelected: (value?: boolean) => void\n getPreSelectedRowModel: () => RowModel<TData>\n getSelectedRowModel: () => RowModel<TData>\n getFilteredSelectedRowModel: () => RowModel<TData>\n getGroupedSelectedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionOptions<TData> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionInstance<TData> => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n table.setRowSelection(\n defaultState ? {} : table.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value =\n typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return\n }\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n table.setRowSelection(old => {\n const resolvedValue =\n typeof value !== 'undefined'\n ? value\n : !table.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getFilteredRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getSortedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllRowsSelected = Boolean(\n preGroupedFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (\n preGroupedFlatRows.some(\n row => row.getCanSelect() && !rowSelection[row.id]\n )\n ) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n const totalSelected = Object.keys(\n table.getState().rowSelection ?? {}\n ).length\n return (\n totalSelected > 0 &&\n totalSelected < table.getFilteredRowModel().flatRows.length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n return table.getIsAllPageRowsSelected()\n ? false\n : paginationFlatRows.some(\n d => d.getIsSelected() || d.getIsSomeSelected()\n )\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = table.getState()\n return isRowSelected(row, rowSelection)\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'some'\n },\n\n getIsAllSubRowsSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'all'\n },\n\n getCanSelect: () => {\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row)\n }\n\n return table.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row)\n }\n\n return table.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row)\n }\n\n return table.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TData extends RowData>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n table: Table<TData>\n) => {\n const row = table.getRow(id)\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key])\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true\n }\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n )\n }\n}\n\nexport function selectRowsFn<TData extends RowData>(\n table: Table<TData>,\n rowModel: RowModel<TData>\n): RowModel<TData> {\n const rowSelection = table.getState().rowSelection\n\n const newSelectedFlatRows: Row<TData>[] = []\n const newSelectedRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TData>[], depth = 0): Row<TData>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection)\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TData>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>\n): boolean {\n return selection[row.id] ?? false\n}\n\nexport function isSubRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>,\n table: Table<TData>\n): boolean | 'some' | 'all' {\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","table","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createTable","setRowSelection","updater","options","resetRowSelection","defaultState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","getCanSelect","id","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","getGroupedSelectedRowModel","getSortedRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","totalSelected","getIsSomePageRowsSelected","d","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","getRow","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
@@ -16,6 +16,7 @@ var sortingFns = require('../sortingFns.js');
16
16
  var utils = require('../utils.js');
17
17
 
18
18
  //
19
+
19
20
  const Sorting = {
20
21
  getInitialState: state => {
21
22
  return {
@@ -41,46 +42,36 @@ const Sorting = {
41
42
  getAutoSortingFn: () => {
42
43
  const firstRows = table.getFilteredRowModel().flatRows.slice(10);
43
44
  let isString = false;
44
-
45
45
  for (const row of firstRows) {
46
46
  const value = row == null ? void 0 : row.getValue(column.id);
47
-
48
47
  if (Object.prototype.toString.call(value) === '[object Date]') {
49
48
  return sortingFns.sortingFns.datetime;
50
49
  }
51
-
52
50
  if (typeof value === 'string') {
53
51
  isString = true;
54
-
55
52
  if (value.split(sortingFns.reSplitAlphaNumeric).length > 1) {
56
53
  return sortingFns.sortingFns.alphanumeric;
57
54
  }
58
55
  }
59
56
  }
60
-
61
57
  if (isString) {
62
58
  return sortingFns.sortingFns.text;
63
59
  }
64
-
65
60
  return sortingFns.sortingFns.basic;
66
61
  },
67
62
  getAutoSortDir: () => {
68
63
  const firstRow = table.getFilteredRowModel().flatRows[0];
69
64
  const value = firstRow == null ? void 0 : firstRow.getValue(column.id);
70
-
71
65
  if (typeof value === 'string') {
72
66
  return 'asc';
73
67
  }
74
-
75
68
  return 'desc';
76
69
  },
77
70
  getSortingFn: () => {
78
71
  var _table$options$sortin;
79
-
80
72
  if (!column) {
81
73
  throw new Error();
82
74
  }
83
-
84
75
  return utils.isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : ((_table$options$sortin = table.options.sortingFns) == null ? void 0 : _table$options$sortin[column.columnDef.sortingFn]) ?? sortingFns.sortingFns[column.columnDef.sortingFn];
85
76
  },
86
77
  toggleSorting: (desc, multi) => {
@@ -92,6 +83,7 @@ const Sorting = {
92
83
  // })
93
84
  // return
94
85
  // }
86
+
95
87
  // this needs to be outside of table.setSorting to be in sync with rerender
96
88
  const nextSortingOrder = column.getNextSortingOrder();
97
89
  const hasManualValue = typeof desc !== 'undefined' && desc !== null;
@@ -99,11 +91,13 @@ const Sorting = {
99
91
  // Find any existing sorting for this column
100
92
  const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);
101
93
  const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);
102
- let newSorting = []; // What should we do with this sort action?
94
+ let newSorting = [];
103
95
 
96
+ // What should we do with this sort action?
104
97
  let sortAction;
105
- let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc'; // Multi-mode
98
+ let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';
106
99
 
100
+ // Multi-mode
107
101
  if (old != null && old.length && column.getCanMultiSort() && multi) {
108
102
  if (existingSorting) {
109
103
  sortAction = 'toggle';
@@ -119,9 +113,9 @@ const Sorting = {
119
113
  } else {
120
114
  sortAction = 'replace';
121
115
  }
122
- } // Handle toggle states that will remove the sorting
123
-
116
+ }
124
117
 
118
+ // Handle toggle states that will remove the sorting
125
119
  if (sortAction === 'toggle') {
126
120
  // If we are "actually" toggling (not a manual set value), should we remove the sorting?
127
121
  if (!hasManualValue) {
@@ -131,23 +125,22 @@ const Sorting = {
131
125
  }
132
126
  }
133
127
  }
134
-
135
128
  if (sortAction === 'add') {
136
129
  newSorting = [...old, {
137
130
  id: column.id,
138
131
  desc: nextDesc
139
- }]; // Take latest n columns
140
-
132
+ }];
133
+ // Take latest n columns
141
134
  newSorting.splice(0, newSorting.length - (table.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER));
142
135
  } else if (sortAction === 'toggle') {
143
136
  // This flips (or sets) the
144
137
  newSorting = old.map(d => {
145
138
  if (d.id === column.id) {
146
- return { ...d,
139
+ return {
140
+ ...d,
147
141
  desc: nextDesc
148
142
  };
149
143
  }
150
-
151
144
  return d;
152
145
  });
153
146
  } else if (sortAction === 'remove') {
@@ -158,7 +151,6 @@ const Sorting = {
158
151
  desc: nextDesc
159
152
  }];
160
153
  }
161
-
162
154
  return newSorting;
163
155
  });
164
156
  },
@@ -169,17 +161,15 @@ const Sorting = {
169
161
  getNextSortingOrder: multi => {
170
162
  const firstSortDirection = column.getFirstSortDir();
171
163
  const isSorted = column.getIsSorted();
172
-
173
164
  if (!isSorted) {
174
165
  return firstSortDirection;
175
166
  }
176
-
177
- if (isSorted !== firstSortDirection && (table.options.enableSortingRemoval ?? true) && ( // If enableSortRemove, enable in general
167
+ if (isSorted !== firstSortDirection && (table.options.enableSortingRemoval ?? true) && (
168
+ // If enableSortRemove, enable in general
178
169
  multi ? table.options.enableMultiRemove ?? true : true) // If multi, don't allow if enableMultiRemove))
179
170
  ) {
180
171
  return false;
181
172
  }
182
-
183
173
  return isSorted === 'desc' ? 'asc' : 'desc';
184
174
  },
185
175
  getCanSort: () => {
@@ -190,13 +180,11 @@ const Sorting = {
190
180
  },
191
181
  getIsSorted: () => {
192
182
  var _table$getState$sorti;
193
-
194
183
  const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);
195
184
  return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';
196
185
  },
197
186
  getSortIndex: () => {
198
187
  var _table$getState$sorti2;
199
-
200
188
  return ((_table$getState$sorti2 = table.getState().sorting) == null ? void 0 : _table$getState$sorti2.findIndex(d => d.id === column.id)) ?? -1;
201
189
  },
202
190
  clearSorting: () => {
@@ -218,7 +206,6 @@ const Sorting = {
218
206
  setSorting: updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater),
219
207
  resetSorting: defaultState => {
220
208
  var _table$initialState;
221
-
222
209
  table.setSorting(defaultState ? [] : ((_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) ?? []);
223
210
  },
224
211
  getPreSortedRowModel: () => table.getGroupedRowModel(),
@@ -226,11 +213,9 @@ const Sorting = {
226
213
  if (!table._getSortedRowModel && table.options.getSortedRowModel) {
227
214
  table._getSortedRowModel = table.options.getSortedRowModel(table);
228
215
  }
229
-
230
216
  if (table.options.manualSorting || !table._getSortedRowModel) {
231
217
  return table.getPreSortedRowModel();
232
218
  }
233
-
234
219
  return table._getSortedRowModel();
235
220
  }
236
221
  };