@tanstack/react-table 8.0.0-alpha.3 → 8.0.0-alpha.34

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 (107) hide show
  1. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -78
  2. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  3. package/build/cjs/index.js +99 -12
  4. package/build/cjs/index.js.map +1 -1
  5. package/build/esm/index.js +41 -4686
  6. package/build/esm/index.js.map +1 -1
  7. package/build/stats-html.html +1 -1
  8. package/build/stats-react.json +29 -747
  9. package/build/types/index.d.ts +13 -7
  10. package/build/umd/index.development.js +51 -4688
  11. package/build/umd/index.development.js.map +1 -1
  12. package/build/umd/index.production.js +1 -1
  13. package/build/umd/index.production.js.map +1 -1
  14. package/package.json +4 -1
  15. package/src/index.tsx +107 -7
  16. package/build/cjs/aggregationTypes.js +0 -130
  17. package/build/cjs/aggregationTypes.js.map +0 -1
  18. package/build/cjs/core.js +0 -552
  19. package/build/cjs/core.js.map +0 -1
  20. package/build/cjs/createTable.js +0 -108
  21. package/build/cjs/createTable.js.map +0 -1
  22. package/build/cjs/features/ColumnSizing.js +0 -317
  23. package/build/cjs/features/ColumnSizing.js.map +0 -1
  24. package/build/cjs/features/Expanding.js +0 -255
  25. package/build/cjs/features/Expanding.js.map +0 -1
  26. package/build/cjs/features/Filters.js +0 -445
  27. package/build/cjs/features/Filters.js.map +0 -1
  28. package/build/cjs/features/Grouping.js +0 -249
  29. package/build/cjs/features/Grouping.js.map +0 -1
  30. package/build/cjs/features/Headers.js +0 -549
  31. package/build/cjs/features/Headers.js.map +0 -1
  32. package/build/cjs/features/Ordering.js +0 -86
  33. package/build/cjs/features/Ordering.js.map +0 -1
  34. package/build/cjs/features/Pagination.js +0 -194
  35. package/build/cjs/features/Pagination.js.map +0 -1
  36. package/build/cjs/features/Pinning.js +0 -149
  37. package/build/cjs/features/Pinning.js.map +0 -1
  38. package/build/cjs/features/RowSelection.js +0 -541
  39. package/build/cjs/features/RowSelection.js.map +0 -1
  40. package/build/cjs/features/Sorting.js +0 -327
  41. package/build/cjs/features/Sorting.js.map +0 -1
  42. package/build/cjs/features/Visibility.js +0 -166
  43. package/build/cjs/features/Visibility.js.map +0 -1
  44. package/build/cjs/filterTypes.js +0 -172
  45. package/build/cjs/filterTypes.js.map +0 -1
  46. package/build/cjs/sortTypes.js +0 -122
  47. package/build/cjs/sortTypes.js.map +0 -1
  48. package/build/cjs/utils/columnFilterRowsFn.js +0 -131
  49. package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
  50. package/build/cjs/utils/expandRowsFn.js +0 -38
  51. package/build/cjs/utils/expandRowsFn.js.map +0 -1
  52. package/build/cjs/utils/globalFilterRowsFn.js +0 -101
  53. package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
  54. package/build/cjs/utils/groupRowsFn.js +0 -155
  55. package/build/cjs/utils/groupRowsFn.js.map +0 -1
  56. package/build/cjs/utils/sortRowsFn.js +0 -94
  57. package/build/cjs/utils/sortRowsFn.js.map +0 -1
  58. package/build/cjs/utils.js +0 -146
  59. package/build/cjs/utils.js.map +0 -1
  60. package/build/types/aggregationTypes.d.ts +0 -22
  61. package/build/types/core.d.ts +0 -111
  62. package/build/types/createTable.d.ts +0 -53
  63. package/build/types/features/ColumnSizing.d.ts +0 -67
  64. package/build/types/features/Expanding.d.ts +0 -53
  65. package/build/types/features/Filters.d.ts +0 -98
  66. package/build/types/features/Grouping.d.ts +0 -82
  67. package/build/types/features/Headers.d.ts +0 -41
  68. package/build/types/features/Ordering.d.ts +0 -19
  69. package/build/types/features/Pagination.d.ts +0 -43
  70. package/build/types/features/Pinning.d.ts +0 -39
  71. package/build/types/features/RowSelection.d.ts +0 -66
  72. package/build/types/features/Sorting.d.ts +0 -78
  73. package/build/types/features/Visibility.d.ts +0 -47
  74. package/build/types/filterTypes.d.ts +0 -50
  75. package/build/types/sortTypes.d.ts +0 -18
  76. package/build/types/types.d.ts +0 -127
  77. package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
  78. package/build/types/utils/expandRowsFn.d.ts +0 -2
  79. package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
  80. package/build/types/utils/groupRowsFn.d.ts +0 -2
  81. package/build/types/utils/paginateRowsFn.d.ts +0 -2
  82. package/build/types/utils/sortRowsFn.d.ts +0 -2
  83. package/build/types/utils.d.ts +0 -28
  84. package/src/aggregationTypes.ts +0 -115
  85. package/src/core.tsx +0 -1182
  86. package/src/createTable.tsx +0 -241
  87. package/src/features/ColumnSizing.ts +0 -453
  88. package/src/features/Expanding.ts +0 -404
  89. package/src/features/Filters.ts +0 -762
  90. package/src/features/Grouping.ts +0 -466
  91. package/src/features/Headers.ts +0 -912
  92. package/src/features/Ordering.ts +0 -133
  93. package/src/features/Pagination.ts +0 -314
  94. package/src/features/Pinning.ts +0 -200
  95. package/src/features/RowSelection.ts +0 -831
  96. package/src/features/Sorting.ts +0 -547
  97. package/src/features/Visibility.ts +0 -279
  98. package/src/filterTypes.ts +0 -251
  99. package/src/sortTypes.ts +0 -159
  100. package/src/types.ts +0 -331
  101. package/src/utils/columnFilterRowsFn.ts +0 -155
  102. package/src/utils/expandRowsFn.ts +0 -50
  103. package/src/utils/globalFilterRowsFn.ts +0 -122
  104. package/src/utils/groupRowsFn.ts +0 -194
  105. package/src/utils/paginateRowsFn.ts +0 -34
  106. package/src/utils/sortRowsFn.ts +0 -115
  107. package/src/utils.tsx +0 -257
@@ -9,285 +9,8 @@
9
9
  * @license MIT
10
10
  */
11
11
  import * as React from 'react';
12
- import React__default from 'react';
13
-
14
- function columnFilterRowsFn(instance, rowModel) {
15
- var columnFilters = instance.getState().columnFilters;
16
- var newFilteredFlatRows = [];
17
- var newFilteredRowsById = {};
18
- var filterFromChildrenUp = instance.options.filterFromChildrenUp;
19
-
20
- var filterRows = function filterRows(rowsToFilter, depth) {
21
- columnFilters.forEach(function (_ref) {
22
- var columnId = _ref.id,
23
- filterValue = _ref.value;
24
- // Find the columnFilters column
25
- var column = instance.getColumn(columnId);
26
-
27
- if (!column) {
28
- if (process.env.NODE_ENV !== 'production') {
29
- console.warn("React-Table: Could not find a column with id: " + columnId);
30
- }
31
-
32
- throw new Error();
33
- }
34
-
35
- if (depth === 0) {
36
- var preFilteredRows = [].concat(rowsToFilter);
37
-
38
- column.getPreFilteredRows = function () {
39
- return preFilteredRows;
40
- };
41
- }
42
-
43
- var filterFn = instance.getColumnFilterFn(column.id);
44
-
45
- if (!filterFn) {
46
- if (process.env.NODE_ENV !== 'production') {
47
- console.warn("Could not find a valid 'column.filterType' for column with the ID: " + column.id + ".");
48
- }
49
-
50
- return;
51
- } // Pass the rows, id, filterValue and column to the filterFn
52
- // to get the filtered rows back
53
-
54
-
55
- rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue);
56
- });
57
- return rowsToFilter;
58
- };
59
-
60
- if (filterFromChildrenUp) {
61
- var _recurseFilterRows = function _recurseFilterRows(rowsToFilter, depth) {
62
- if (depth === void 0) {
63
- depth = 0;
64
- }
65
-
66
- // Filter from children up
67
- rowsToFilter = rowsToFilter.filter(function (row) {
68
- var _row$subRows;
69
-
70
- if (!((_row$subRows = row.subRows) != null && _row$subRows.length)) {
71
- return true;
72
- }
73
-
74
- row.subRows = _recurseFilterRows(row.subRows, depth + 1);
75
- return row.subRows.length;
76
- });
77
- rowsToFilter = filterRows(rowsToFilter, depth); // Apply the filter to any subRows
78
-
79
- rowsToFilter.forEach(function (row) {
80
- newFilteredFlatRows.push(row);
81
- newFilteredRowsById[row.id] = row;
82
- });
83
- return rowsToFilter;
84
- };
85
-
86
- return {
87
- rows: _recurseFilterRows(rowModel.rows),
88
- flatRows: newFilteredFlatRows,
89
- rowsById: newFilteredRowsById
90
- };
91
- } // Filters top level and nested rows
92
-
93
-
94
- var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
95
- if (depth === void 0) {
96
- depth = 0;
97
- }
98
-
99
- // Filter from parents downward
100
- rowsToFilter = filterRows(rowsToFilter, depth); // Apply the filter to any subRows
101
- // We technically could do this recursively in the above loop,
102
- // but that would severely hinder the API for the user, since they
103
- // would be required to do that recursion in some scenarios
104
-
105
- rowsToFilter.forEach(function (row) {
106
- newFilteredFlatRows.push(row);
107
- newFilteredRowsById[row.id] = row;
108
-
109
- if (!filterFromChildrenUp) {
110
- var _row$subRows2;
111
-
112
- if (!((_row$subRows2 = row.subRows) != null && _row$subRows2.length)) {
113
- return;
114
- }
115
-
116
- row.subRows = recurseFilterRows(row.subRows, depth + 1);
117
- }
118
- });
119
- return rowsToFilter;
120
- };
121
-
122
- return {
123
- rows: recurseFilterRows(rowModel.rows),
124
- flatRows: newFilteredFlatRows,
125
- rowsById: newFilteredRowsById
126
- };
127
- }
128
-
129
- function globalFilterRowsFn(instance, rowModel) {
130
- var globalFilter = instance.getState().globalFilter;
131
- var newFilteredFlatRows = [];
132
- var newFilteredRowsById = {};
133
- var filterFromChildrenUp = instance.options.filterFromChildrenUp;
134
- var filterFn = instance.getGlobalFilterFn();
135
-
136
- if (!filterFn) {
137
- if (process.env.NODE_ENV !== 'production') {
138
- console.warn("Could not find a valid 'globalFilterType'");
139
- }
140
-
141
- return rowModel;
142
- }
143
-
144
- var filterableColumns = instance.getAllLeafColumns().filter(function (column) {
145
- return column.getCanGlobalFilter();
146
- });
147
- var filterableColumnIds = filterableColumns.map(function (d) {
148
- return d.id;
149
- });
150
-
151
- if (filterFromChildrenUp) {
152
- var _recurseFilterRows = function _recurseFilterRows(rowsToFilter, depth) {
153
-
154
- // Filter from children up
155
- rowsToFilter = rowsToFilter.filter(function (row) {
156
- var _row$subRows;
157
-
158
- if (!((_row$subRows = row.subRows) != null && _row$subRows.length)) {
159
- return true;
160
- }
161
-
162
- row.subRows = _recurseFilterRows(row.subRows);
163
- return row.subRows.length;
164
- });
165
- rowsToFilter = filterFn(rowsToFilter, filterableColumnIds, globalFilter); // Apply the filter to any subRows
166
-
167
- rowsToFilter.forEach(function (row) {
168
- newFilteredFlatRows.push(row);
169
- newFilteredRowsById[row.id] = row;
170
- });
171
- return rowsToFilter;
172
- };
173
-
174
- return {
175
- rows: _recurseFilterRows(rowModel.rows),
176
- flatRows: newFilteredFlatRows,
177
- rowsById: newFilteredRowsById
178
- };
179
- } // Filters top level and nested rows
180
-
181
-
182
- var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
183
-
184
- // Filter from parents downward
185
- rowsToFilter = filterFn(rowsToFilter, filterableColumnIds, globalFilter); // Apply the filter to any subRows
186
- // We technically could do this recursively in the above loop,
187
- // but that would severely hinder the API for the user, since they
188
- // would be required to do that recursion in some scenarios
189
-
190
- rowsToFilter.forEach(function (row) {
191
- newFilteredFlatRows.push(row);
192
- newFilteredRowsById[row.id] = row;
193
-
194
- if (!filterFromChildrenUp) {
195
- var _row$subRows2;
196
-
197
- if (!((_row$subRows2 = row.subRows) != null && _row$subRows2.length)) {
198
- return;
199
- }
200
-
201
- row.subRows = recurseFilterRows(row.subRows);
202
- }
203
- });
204
- return rowsToFilter;
205
- };
206
-
207
- return {
208
- rows: recurseFilterRows(rowModel.rows),
209
- flatRows: newFilteredFlatRows,
210
- rowsById: newFilteredRowsById
211
- };
212
- }
213
-
214
- function sortRowsFn(instance, rowModel) {
215
- var sortingState = instance.getState().sorting;
216
- var sortedFlatRows = []; // Filter out sortings that correspond to non existing columns
217
-
218
- var availableSorting = sortingState.filter(function (sort) {
219
- return instance.getColumnCanSort(sort.id);
220
- });
221
- var columnInfoById = {};
222
- availableSorting.forEach(function (sortEntry) {
223
- var column = instance.getColumn(sortEntry.id);
224
- columnInfoById[sortEntry.id] = {
225
- sortUndefined: column.sortUndefined,
226
- invertSorting: column.invertSorting,
227
- sortingFn: instance.getColumnSortingFn(sortEntry.id)
228
- };
229
- });
230
-
231
- var sortData = function sortData(rows) {
232
- // This will also perform a stable sorting using the row index
233
- // if needed.
234
- var sortedData = rows.slice();
235
- sortedData.sort(function (rowA, rowB) {
236
- for (var i = 0; i < availableSorting.length; i += 1) {
237
- var _sortEntry$desc;
238
-
239
- var sortEntry = availableSorting[i];
240
- var columnInfo = columnInfoById[sortEntry.id];
241
- var isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;
242
-
243
- if (columnInfo.sortUndefined) {
244
- var aValue = rowA.values[sortEntry.id];
245
- var bValue = rowB.values[sortEntry.id];
246
- var aUndefined = typeof aValue === 'undefined';
247
- var bUndefined = typeof bValue === 'undefined';
248
-
249
- if (aUndefined || bUndefined) {
250
- return aUndefined && bUndefined ? 0 : aUndefined ? 1 : -1;
251
- }
252
- } // This function should always return in ascending order
253
-
254
-
255
- var sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);
256
-
257
- if (sortInt !== 0) {
258
- if (isDesc) {
259
- sortInt *= -1;
260
- }
261
-
262
- if (columnInfo.invertSorting) {
263
- sortInt *= -1;
264
- }
265
-
266
- return sortInt;
267
- }
268
- }
269
-
270
- return rowA.index - rowB.index;
271
- }); // If there are sub-rows, sort them
272
-
273
- sortedData.forEach(function (row) {
274
- sortedFlatRows.push(row);
275
-
276
- if (!row.subRows || row.subRows.length <= 1) {
277
- return;
278
- }
279
-
280
- row.subRows = sortData(row.subRows);
281
- });
282
- return sortedData;
283
- };
284
-
285
- return {
286
- rows: sortData(rowModel.rows),
287
- flatRows: sortedFlatRows,
288
- rowsById: rowModel.rowsById
289
- };
290
- }
12
+ import { init, createTableInstance } from '@tanstack/table-core';
13
+ export * from '@tanstack/table-core';
291
14
 
292
15
  function _extends() {
293
16
  _extends = Object.assign || function (target) {
@@ -307,164 +30,9 @@ function _extends() {
307
30
  return _extends.apply(this, arguments);
308
31
  }
309
32
 
310
- function _objectWithoutPropertiesLoose(source, excluded) {
311
- if (source == null) return {};
312
- var target = {};
313
- var sourceKeys = Object.keys(source);
314
- var key, i;
315
-
316
- for (i = 0; i < sourceKeys.length; i++) {
317
- key = sourceKeys[i];
318
- if (excluded.indexOf(key) >= 0) continue;
319
- target[key] = source[key];
320
- }
321
-
322
- return target;
323
- }
324
-
325
- function _unsupportedIterableToArray(o, minLen) {
326
- if (!o) return;
327
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
328
- var n = Object.prototype.toString.call(o).slice(8, -1);
329
- if (n === "Object" && o.constructor) n = o.constructor.name;
330
- if (n === "Map" || n === "Set") return Array.from(o);
331
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
332
- }
333
-
334
- function _arrayLikeToArray(arr, len) {
335
- if (len == null || len > arr.length) len = arr.length;
336
-
337
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
338
-
339
- return arr2;
340
- }
341
-
342
- function _createForOfIteratorHelperLoose(o, allowArrayLike) {
343
- var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
344
- if (it) return (it = it.call(o)).next.bind(it);
345
-
346
- if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
347
- if (it) o = it;
348
- var i = 0;
349
- return function () {
350
- if (i >= o.length) return {
351
- done: true
352
- };
353
- return {
354
- done: false,
355
- value: o[i++]
356
- };
357
- };
358
- }
359
-
360
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
361
- }
362
-
363
- function _toPrimitive(input, hint) {
364
- if (typeof input !== "object" || input === null) return input;
365
- var prim = input[Symbol.toPrimitive];
366
-
367
- if (prim !== undefined) {
368
- var res = prim.call(input, hint || "default");
369
- if (typeof res !== "object") return res;
370
- throw new TypeError("@@toPrimitive must return a primitive value.");
371
- }
372
-
373
- return (hint === "string" ? String : Number)(input);
374
- }
375
-
376
- function _toPropertyKey(arg) {
377
- var key = _toPrimitive(arg, "string");
378
-
379
- return typeof key === "symbol" ? key : String(key);
380
- }
381
-
382
- function functionalUpdate(updater, input) {
383
- return typeof updater === 'function' ? updater(input) : updater;
384
- }
385
- function makeStateUpdater(key, instance) {
386
- return function (updater) {
387
- instance.setState(function (old) {
388
- var _extends2;
389
-
390
- return _extends({}, old, (_extends2 = {}, _extends2[key] = functionalUpdate(updater, old[key]), _extends2));
391
- });
392
- };
393
- } // SSR has issues with useLayoutEffect still, so use useEffect during SSR
394
-
395
- typeof document !== 'undefined' ? React__default.useLayoutEffect : React__default.useEffect;
396
- function isFunction(d) {
397
- return d instanceof Function;
398
- }
399
- function flattenBy(arr, getChildren) {
400
- var flat = [];
401
-
402
- var recurse = function recurse(subArr) {
403
- subArr.forEach(function (item) {
404
- flat.push(item);
405
- var children = getChildren(item);
406
-
407
- if (children != null && children.length) {
408
- recurse(children);
409
- }
410
- });
411
- };
412
-
413
- recurse(arr);
414
- return flat;
415
- }
416
- // @ts-ignore // Just rely on the type, not the implementation
417
- var propGetter = function propGetter(initial, getter) {
418
- if (isFunction(getter)) {
419
- return getter(initial);
420
- }
421
-
422
- return _extends({}, initial, getter != null ? getter : {});
33
+ var render = function render(Comp, props) {
34
+ return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React.createElement(Comp, props) : Comp;
423
35
  };
424
- function memo(getDeps, fn, opts) {
425
- var deps = [];
426
- var result;
427
- return function () {
428
- var newDeps = getDeps();
429
- var newSerializedDeps = newDeps;
430
- var oldSerializedDeps = deps;
431
- var depsChanged = newSerializedDeps.length !== oldSerializedDeps.length || newSerializedDeps.some(function (dep, index) {
432
- return oldSerializedDeps[index] !== dep;
433
- });
434
-
435
- if (depsChanged) {
436
- if (opts != null && opts.debug) {
437
- console.info(opts == null ? void 0 : opts.key, _extends({
438
- length: oldSerializedDeps.length + " -> " + newSerializedDeps.length
439
- }, newSerializedDeps.map(function (_, index) {
440
- if (oldSerializedDeps[index] !== newSerializedDeps[index]) {
441
- return [index, oldSerializedDeps[index], newSerializedDeps[index]];
442
- }
443
-
444
- return false;
445
- }).filter(Boolean).reduce(function (accu, curr) {
446
- var _extends3;
447
-
448
- return _extends({}, accu, (_extends3 = {}, _extends3[curr[0]] = curr.slice(1), _extends3));
449
- }, {}), {
450
- parent: parent
451
- }));
452
- }
453
-
454
- var oldResult = result;
455
- result = fn.apply(void 0, newDeps);
456
- deps = newSerializedDeps;
457
- opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result, oldResult);
458
- oldResult = undefined;
459
- }
460
-
461
- return result;
462
- };
463
- } // Copied from: https://github.com/jonschlinkert/is-plain-object
464
-
465
- function flexRender(Comp, props) {
466
- return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React__default.createElement(Comp, props) : Comp;
467
- }
468
36
 
469
37
  function isReactComponent(component) {
470
38
  return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);
@@ -479,4269 +47,56 @@ function isClassComponent(component) {
479
47
 
480
48
  function isExoticComponent(component) {
481
49
  return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);
482
- } // export function hashString(str: string, seed = 0): string {
483
- // let h1 = 0xdeadbeef ^ seed,
484
- // h2 = 0x41c6ce57 ^ seed
485
- // for (let i = 0, ch; i < str.length; i++) {
486
- // ch = str.charCodeAt(i)
487
- // h1 = Math.imul(h1 ^ ch, 2654435761)
488
- // h2 = Math.imul(h2 ^ ch, 1597334677)
489
- // }
490
- // h1 =
491
- // Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^
492
- // Math.imul(h2 ^ (h2 >>> 13), 3266489909)
493
- // h2 =
494
- // Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^
495
- // Math.imul(h1 ^ (h1 >>> 13), 3266489909)
496
- // return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString()
497
- // }
498
-
499
- function groupRowsFn(instance, sortedRowModel) {
500
- var groupingState = instance.getState().grouping; // Filter the grouping list down to columns that exist
50
+ }
501
51
 
502
- var existingGrouping = groupingState.filter(function (columnId) {
503
- return instance.getColumn(columnId);
504
- }); // Find the columns that can or are aggregating
505
- // Uses each column to aggregate rows into a single value
52
+ var _init = init({
53
+ render: render
54
+ }),
55
+ createTable = _init.createTable,
56
+ createTableFactory = _init.createTableFactory;
57
+ function useTableInstance(table, options) {
58
+ var _table$__options;
506
59
 
507
- var aggregateRowsToValues = function aggregateRowsToValues(leafRows, groupedRows, depth) {
508
- var values = {};
509
- instance.getAllLeafColumns().forEach(function (column) {
510
- // Don't aggregate columns that are in the grouping
511
- if (existingGrouping.includes(column.id)) {
512
- values[column.id] = groupedRows[0] ? groupedRows[0].values[column.id] : null;
513
- return;
514
- } // Aggregate the values
60
+ // Compose in the generic options to the user options
61
+ var resolvedOptions = _extends({}, (_table$__options = table.__options) != null ? _table$__options : {}, {
62
+ state: {},
63
+ // Dummy state
64
+ onStateChange: function onStateChange() {},
65
+ // noop
66
+ render: render
67
+ }, options); // Create a new table instance and store it in state
515
68
 
516
69
 
517
- var aggregateFn = instance.getColumnAggregationFn(column.id);
70
+ var _React$useState = React.useState(function () {
71
+ return createTableInstance(resolvedOptions);
72
+ }),
73
+ instance = _React$useState[0]; // By default, manage table state here using the instance's initial state
518
74
 
519
- if (aggregateFn) {
520
- // Get the columnValues to aggregate
521
- var groupedValues = groupedRows.map(function (row) {
522
- return row.values[column.id];
523
- }); // Get the columnValues to aggregate
524
75
 
525
- var leafValues = leafRows.map(function (row) {
526
- var columnValue = row.values[column.id];
76
+ var _React$useState2 = React.useState(function () {
77
+ return instance.initialState;
78
+ }),
79
+ state = _React$useState2[0],
80
+ setState = _React$useState2[1]; // Compose the default state above with any user state. This will allow the user
81
+ // to only control a subset of the state if desired.
527
82
 
528
- if (!depth && column.aggregateValue) {
529
- columnValue = column.aggregateValue(columnValue);
530
- }
531
83
 
532
- return columnValue;
533
- });
534
- values[column.id] = aggregateFn(leafValues, groupedValues);
535
- } else if (column.aggregationType) {
536
- console.info({
537
- column: column
538
- });
539
- throw new Error(process.env.NODE_ENV !== 'production' ? "React Table: Invalid column.aggregateType option for column listed above" : '');
540
- } else {
541
- values[column.id] = null;
84
+ instance.setOptions(function (prev) {
85
+ return _extends({}, prev, options, {
86
+ state: _extends({}, state, options.state),
87
+ // Similarly, we'll maintain both our internal state and any user-provided
88
+ // state.
89
+ onStateChange: function onStateChange(updater) {
90
+ setState(updater);
91
+ options.onStateChange == null ? void 0 : options.onStateChange(updater);
542
92
  }
543
93
  });
544
- return values;
545
- };
546
-
547
- var groupedFlatRows = [];
548
- var groupedRowsById = {}; // const onlyGroupedFlatRows: Row[] = [];
549
- // const onlyGroupedRowsById: Record<RowId, Row> = {};
550
- // const nonGroupedFlatRows: Row[] = [];
551
- // const nonGroupedRowsById: Record<RowId, Row> = {};
552
- // Recursively group the data
553
-
554
- var groupUpRecursively = function groupUpRecursively(rows, depth, parentId) {
555
- if (depth === void 0) {
556
- depth = 0;
557
- }
558
-
559
- // This is the last level, just return the rows
560
- if (depth === existingGrouping.length) {
561
- return rows;
562
- }
563
-
564
- var columnId = existingGrouping[depth]; // Group the rows together for this level
565
-
566
- var rowGroupsMap = groupBy(rows, columnId); // Peform aggregations for each group
567
-
568
- var aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(function (_ref, index) {
569
- var groupingValue = _ref[0],
570
- groupedRows = _ref[1];
571
- var id = columnId + ":" + groupingValue;
572
- id = parentId ? parentId + ">" + id : id; // First, Recurse to group sub rows before aggregation
573
-
574
- var subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group
575
-
576
- var leafRows = depth ? flattenBy(groupedRows, function (row) {
577
- return row.leafRows;
578
- }) : groupedRows;
579
- var values = aggregateRowsToValues(leafRows, groupedRows, depth);
580
- var row = instance.createRow(id, undefined, index, depth, values);
581
- Object.assign(row, {
582
- groupingColumnId: columnId,
583
- groupingValue: groupingValue,
584
- subRows: subRows,
585
- leafRows: leafRows
586
- });
587
- subRows.forEach(function (subRow) {
588
- groupedFlatRows.push(subRow);
589
- groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {
590
- // onlyGroupedFlatRows.push(subRow);
591
- // onlyGroupedRowsById[subRow.id] = subRow;
592
- // } else {
593
- // nonGroupedFlatRows.push(subRow);
594
- // nonGroupedRowsById[subRow.id] = subRow;
595
- // }
596
- });
597
- return row;
598
- });
599
- return aggregatedGroupedRows;
600
- };
601
-
602
- var groupedRows = groupUpRecursively(sortedRowModel.rows, 0, '');
603
- groupedRows.forEach(function (subRow) {
604
- groupedFlatRows.push(subRow);
605
- groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {
606
- // onlyGroupedFlatRows.push(subRow);
607
- // onlyGroupedRowsById[subRow.id] = subRow;
608
- // } else {
609
- // nonGroupedFlatRows.push(subRow);
610
- // nonGroupedRowsById[subRow.id] = subRow;
611
- // }
612
94
  });
613
- return {
614
- rows: groupedRows,
615
- flatRows: groupedFlatRows,
616
- rowsById: groupedRowsById
617
- };
618
- }
619
-
620
- function groupBy(rows, columnId) {
621
- var groupMap = new Map();
622
- return rows.reduce(function (map, row) {
623
- var resKey = "" + row.values[columnId];
624
- var previous = map.get(resKey);
625
-
626
- if (!previous) {
627
- map.set(resKey, [row]);
628
- } else {
629
- map.set(resKey, [].concat(previous, [row]));
630
- }
631
-
632
- return map;
633
- }, groupMap);
634
- }
635
-
636
- function expandRowsFn(instance, sortedRowModel) {
637
- var expandedRows = [];
638
- var expandSubRows = instance.options.expandSubRows;
639
-
640
- var handleRow = function handleRow(row) {
641
- var _row$subRows;
642
-
643
- expandedRows.push(row);
644
-
645
- if (expandSubRows && (_row$subRows = row.subRows) != null && _row$subRows.length && instance.getIsRowExpanded(row.id)) {
646
- row.subRows.forEach(handleRow);
647
- }
648
- };
649
-
650
- sortedRowModel.rows.forEach(handleRow);
651
- return {
652
- rows: expandedRows,
653
- flatRows: sortedRowModel.flatRows,
654
- rowsById: sortedRowModel.rowsById
655
- };
656
- }
657
-
658
- //
659
- function getInitialState$9() {
660
- return {
661
- columnVisibility: {}
662
- };
663
- }
664
- function getDefaultOptions$9(instance) {
665
- return {
666
- onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance)
667
- };
668
- }
669
- function getDefaultColumn$3() {
670
- return {
671
- defaultIsVisible: true
672
- };
673
- }
674
- function createColumn$5(column, instance) {
675
- return {
676
- getCanHide: function getCanHide() {
677
- return instance.getColumnCanHide(column.id);
678
- },
679
- getIsVisible: function getIsVisible() {
680
- return instance.getColumnIsVisible(column.id);
681
- },
682
- toggleVisibility: function toggleVisibility(value) {
683
- return instance.toggleColumnVisibility(column.id, value);
684
- },
685
- getToggleVisibilityProps: function getToggleVisibilityProps(userProps) {
686
- var props = {
687
- type: 'checkbox',
688
- checked: column.getIsVisible == null ? void 0 : column.getIsVisible(),
689
- title: 'Toggle Column Visibility',
690
- onChange: function onChange(e) {
691
- column.toggleVisibility == null ? void 0 : column.toggleVisibility(e.target.checked);
692
- }
693
- };
694
- return propGetter(props, userProps);
695
- }
696
- };
697
- }
698
- function getInstance$a(instance) {
699
- return {
700
- getVisibleFlatColumns: memo(function () {
701
- return [instance.getAllFlatColumns(), instance.getAllFlatColumns().filter(function (d) {
702
- return d.getIsVisible == null ? void 0 : d.getIsVisible();
703
- }).map(function (d) {
704
- return d.id;
705
- }).join('_')];
706
- }, function (allFlatColumns) {
707
- return allFlatColumns.filter(function (d) {
708
- return d.getIsVisible == null ? void 0 : d.getIsVisible();
709
- });
710
- }, {
711
- key: 'getVisibleFlatColumns',
712
- debug: instance.options.debug
713
- }),
714
- getVisibleLeafColumns: memo(function () {
715
- return [instance.getAllLeafColumns(), instance.getAllLeafColumns().filter(function (d) {
716
- return d.getIsVisible == null ? void 0 : d.getIsVisible();
717
- }).map(function (d) {
718
- return d.id;
719
- }).join('_')];
720
- }, function (allFlatColumns) {
721
- return allFlatColumns.filter(function (d) {
722
- return d.getIsVisible == null ? void 0 : d.getIsVisible();
723
- });
724
- }, {
725
- key: 'getVisibleLeafColumns',
726
- debug: instance.options.debug
727
- }),
728
- setColumnVisibility: function setColumnVisibility(updater) {
729
- return instance.options.onColumnVisibilityChange == null ? void 0 : instance.options.onColumnVisibilityChange(updater, functionalUpdate(updater, instance.getState().columnVisibility));
730
- },
731
- toggleColumnVisibility: function toggleColumnVisibility(columnId, value) {
732
- if (!columnId) return;
733
-
734
- if (instance.getColumnCanHide(columnId)) {
735
- instance.setColumnVisibility(function (old) {
736
- var _extends2;
737
-
738
- return _extends({}, old, (_extends2 = {}, _extends2[columnId] = value != null ? value : !instance.getColumnIsVisible(columnId), _extends2));
739
- });
740
- }
741
- },
742
- toggleAllColumnsVisible: function toggleAllColumnsVisible(value) {
743
- var _value;
744
-
745
- value = (_value = value) != null ? _value : !instance.getIsAllColumnsVisible();
746
- instance.setColumnVisibility(instance.getAllLeafColumns().reduce(function (obj, column) {
747
- var _extends3;
748
-
749
- return _extends({}, obj, (_extends3 = {}, _extends3[column.id] = !value ? !(column.getCanHide != null && column.getCanHide()) : value, _extends3));
750
- }, {}));
751
- },
752
- getColumnIsVisible: function getColumnIsVisible(columnId) {
753
- var _ref, _instance$getState$co, _instance$getState$co2;
754
-
755
- var column = instance.getColumn(columnId);
756
-
757
- if (!column) {
758
- throw new Error();
759
- }
760
-
761
- return (_ref = (_instance$getState$co = (_instance$getState$co2 = instance.getState().columnVisibility) == null ? void 0 : _instance$getState$co2[columnId]) != null ? _instance$getState$co : column.defaultIsVisible) != null ? _ref : true;
762
- },
763
- getColumnCanHide: function getColumnCanHide(columnId) {
764
- var _ref2, _ref3, _instance$options$ena;
765
-
766
- var column = instance.getColumn(columnId);
767
-
768
- if (!column) {
769
- throw new Error();
770
- }
771
-
772
- return (_ref2 = (_ref3 = (_instance$options$ena = instance.options.enableHiding) != null ? _instance$options$ena : column.enableHiding) != null ? _ref3 : column.defaultCanHide) != null ? _ref2 : true;
773
- },
774
- getIsAllColumnsVisible: function getIsAllColumnsVisible() {
775
- return !instance.getAllLeafColumns().some(function (column) {
776
- return !(column.getIsVisible != null && column.getIsVisible());
777
- });
778
- },
779
- getIsSomeColumnsVisible: function getIsSomeColumnsVisible() {
780
- return instance.getAllLeafColumns().some(function (column) {
781
- return column.getIsVisible == null ? void 0 : column.getIsVisible();
782
- });
783
- },
784
- getToggleAllColumnsVisibilityProps: function getToggleAllColumnsVisibilityProps(userProps) {
785
- var props = {
786
- onChange: function onChange(e) {
787
- var _e$target;
788
-
789
- instance.toggleAllColumnsVisible((_e$target = e.target) == null ? void 0 : _e$target.checked);
790
- },
791
- type: 'checkbox',
792
- title: 'Toggle visibility for all columns',
793
- checked: instance.getIsAllColumnsVisible(),
794
- indeterminate: !instance.getIsAllColumnsVisible() && instance.getIsSomeColumnsVisible() ? 'indeterminate' : undefined
795
- };
796
- return propGetter(props, userProps);
797
- }
798
- };
799
- }
800
-
801
- var Visibility = /*#__PURE__*/Object.freeze({
802
- __proto__: null,
803
- getInitialState: getInitialState$9,
804
- getDefaultOptions: getDefaultOptions$9,
805
- getDefaultColumn: getDefaultColumn$3,
806
- createColumn: createColumn$5,
807
- getInstance: getInstance$a
808
- });
809
-
810
- var aggregationTypes = {
811
- sum: sum,
812
- min: min,
813
- max: max,
814
- extent: extent,
815
- mean: mean,
816
- median: median,
817
- unique: unique,
818
- uniqueCount: uniqueCount,
819
- count: count
820
- };
821
-
822
- function sum(_leafValues, childValues) {
823
- // It's faster to just add the aggregations together instead of
824
- // process leaf nodes individually
825
- return childValues.reduce(function (sum, next) {
826
- return sum + (typeof next === 'number' ? next : 0);
827
- }, 0);
828
- }
829
-
830
- function min(_leafValues, childValues) {
831
- var min;
832
-
833
- for (var _iterator = _createForOfIteratorHelperLoose(childValues), _step; !(_step = _iterator()).done;) {
834
- var value = _step.value;
835
-
836
- if (value != null && (min > value || min === undefined && value >= value)) {
837
- min = value;
838
- }
839
- }
840
-
841
- return min;
842
- }
843
-
844
- function max(_leafValues, childValues) {
845
- var max;
846
-
847
- for (var _iterator2 = _createForOfIteratorHelperLoose(childValues), _step2; !(_step2 = _iterator2()).done;) {
848
- var value = _step2.value;
849
-
850
- if (value != null && (max < value || max === undefined && value >= value)) {
851
- max = value;
852
- }
853
- }
854
-
855
- return max;
856
- }
857
-
858
- function extent(_leafValues, childValues) {
859
- var min;
860
- var max;
861
-
862
- for (var _iterator3 = _createForOfIteratorHelperLoose(childValues), _step3; !(_step3 = _iterator3()).done;) {
863
- var value = _step3.value;
864
-
865
- if (value != null) {
866
- if (min === undefined) {
867
- if (value >= value) min = max = value;
868
- } else {
869
- if (min > value) min = value;
870
- if (max < value) max = value;
871
- }
872
- }
873
- }
874
-
875
- return [min, max];
876
- }
877
-
878
- function mean(leafValues) {
879
- var count = 0;
880
- var sum = 0;
881
-
882
- for (var _iterator4 = _createForOfIteratorHelperLoose(leafValues), _step4; !(_step4 = _iterator4()).done;) {
883
- var value = _step4.value;
884
-
885
- if (value != null && (value = +value) >= value) {
886
- ++count, sum += value;
887
- }
888
- }
889
-
890
- if (count) return sum / count;
891
- return;
892
- }
893
-
894
- function median(values) {
895
- if (!values.length) {
896
- return;
897
- }
898
-
899
- var min = 0;
900
- var max = 0;
901
- values.forEach(function (value) {
902
- if (typeof value === 'number') {
903
- min = Math.min(min, value);
904
- max = Math.max(max, value);
905
- }
906
- });
907
- return (min + max) / 2;
908
- }
909
-
910
- function unique(values) {
911
- return Array.from(new Set(values).values());
912
- }
913
-
914
- function uniqueCount(values) {
915
- return new Set(values).size;
916
- }
917
-
918
- function count(values) {
919
- return values.length;
920
- }
921
-
922
- //
923
- function getDefaultColumn$2() {
924
- return {
925
- aggregationType: 'auto'
926
- };
927
- }
928
- function getInitialState$8() {
929
- return {
930
- grouping: []
931
- };
932
- }
933
- function getDefaultOptions$8(instance) {
934
- return {
935
- onGroupingChange: makeStateUpdater('grouping', instance),
936
- autoResetGrouping: true,
937
- groupedColumnMode: 'reorder'
938
- };
939
- }
940
- function createColumn$4(column, instance) {
941
- return {
942
- aggregationType: column.aggregationType,
943
- getCanGroup: function getCanGroup() {
944
- return instance.getColumnCanGroup(column.id);
945
- },
946
- getGroupedIndex: function getGroupedIndex() {
947
- return instance.getColumnGroupedIndex(column.id);
948
- },
949
- getIsGrouped: function getIsGrouped() {
950
- return instance.getColumnIsGrouped(column.id);
951
- },
952
- toggleGrouping: function toggleGrouping() {
953
- return instance.toggleColumnGrouping(column.id);
954
- },
955
- getToggleGroupingProps: function getToggleGroupingProps(userProps) {
956
- return instance.getToggleGroupingProps(column.id, userProps);
957
- }
958
- };
959
- }
960
- function getInstance$9(instance) {
961
- var registered = false;
962
- return {
963
- _notifyGroupingReset: function _notifyGroupingReset() {
964
- if (!registered) {
965
- registered = true;
966
- return;
967
- }
968
-
969
- if (instance.options.autoResetAll === false) {
970
- return;
971
- }
972
-
973
- if (instance.options.autoResetAll === true || instance.options.autoResetGrouping) {
974
- instance.resetGrouping();
975
- }
976
- },
977
- getColumnAutoAggregationFn: function getColumnAutoAggregationFn(columnId) {
978
- var firstRow = instance.getCoreFlatRows()[0];
979
- var value = firstRow == null ? void 0 : firstRow.values[columnId];
980
-
981
- if (typeof value === 'number') {
982
- return aggregationTypes.sum;
983
- }
984
-
985
- if (Object.prototype.toString.call(value) === '[object Date]') {
986
- return aggregationTypes.extent;
987
- }
988
-
989
- return aggregationTypes.count;
990
- },
991
- getColumnAggregationFn: function getColumnAggregationFn(columnId) {
992
- var _ref;
993
-
994
- var column = instance.getColumn(columnId);
995
- var userAggregationTypes = instance.options.aggregationTypes;
996
-
997
- if (!column) {
998
- throw new Error();
999
- }
1000
-
1001
- return isFunction(column.aggregationType) ? column.aggregationType : column.aggregationType === 'auto' ? instance.getColumnAutoFilterFn(columnId) : (_ref = userAggregationTypes == null ? void 0 : userAggregationTypes[column.aggregationType]) != null ? _ref : aggregationTypes[column.aggregationType];
1002
- },
1003
- setGrouping: function setGrouping(updater) {
1004
- return instance.options.onGroupingChange == null ? void 0 : instance.options.onGroupingChange(updater, functionalUpdate(updater, instance.getState().grouping));
1005
- },
1006
- toggleColumnGrouping: function toggleColumnGrouping(columnId) {
1007
- instance.setGrouping(function (old) {
1008
- // Find any existing grouping for this column
1009
- if (old != null && old.includes(columnId)) {
1010
- return old.filter(function (d) {
1011
- return d !== columnId;
1012
- });
1013
- }
1014
-
1015
- return [].concat(old != null ? old : [], [columnId]);
1016
- });
1017
- },
1018
- getColumnCanGroup: function getColumnCanGroup(columnId) {
1019
- var _ref2, _ref3, _column$enableGroupin;
1020
-
1021
- var column = instance.getColumn(columnId);
1022
-
1023
- if (!column) {
1024
- throw new Error();
1025
- }
1026
-
1027
- return (_ref2 = (_ref3 = (_column$enableGroupin = column.enableGrouping) != null ? _column$enableGroupin : instance.options.enableGrouping) != null ? _ref3 : column.defaultCanGroup) != null ? _ref2 : !!column.accessorFn;
1028
- },
1029
- getColumnIsGrouped: function getColumnIsGrouped(columnId) {
1030
- var _instance$getState$gr;
1031
-
1032
- return (_instance$getState$gr = instance.getState().grouping) == null ? void 0 : _instance$getState$gr.includes(columnId);
1033
- },
1034
- getColumnGroupedIndex: function getColumnGroupedIndex(columnId) {
1035
- var _instance$getState$gr2;
1036
-
1037
- return (_instance$getState$gr2 = instance.getState().grouping) == null ? void 0 : _instance$getState$gr2.indexOf(columnId);
1038
- },
1039
- resetGrouping: function resetGrouping() {
1040
- var _instance$options$ini, _instance$options, _instance$options$ini2;
1041
-
1042
- instance.setGrouping((_instance$options$ini = (_instance$options = instance.options) == null ? void 0 : (_instance$options$ini2 = _instance$options.initialState) == null ? void 0 : _instance$options$ini2.grouping) != null ? _instance$options$ini : []);
1043
- },
1044
- getToggleGroupingProps: function getToggleGroupingProps(columnId, userProps) {
1045
- var column = instance.getColumn(columnId);
1046
-
1047
- if (!column) {
1048
- return;
1049
- }
1050
-
1051
- var canGroup = column.getCanGroup();
1052
- var initialProps = {
1053
- title: canGroup ? 'Toggle Grouping' : undefined,
1054
- onClick: canGroup ? function (e) {
1055
- e.persist();
1056
- column.toggleGrouping == null ? void 0 : column.toggleGrouping();
1057
- } : undefined
1058
- };
1059
- return propGetter(initialProps, userProps);
1060
- },
1061
- getRowIsGrouped: function getRowIsGrouped(rowId) {
1062
- var _instance$getRow;
1063
-
1064
- return !!((_instance$getRow = instance.getRow(rowId)) != null && _instance$getRow.groupingColumnId);
1065
- },
1066
- getGroupedRowModel: memo(function () {
1067
- return [instance.getState().grouping, instance.getSortedRowModel(), instance.options.groupRowsFn];
1068
- }, function (grouping, rowModel, groupRowsFn) {
1069
- if (!groupRowsFn || !grouping.length) {
1070
- return rowModel;
1071
- }
1072
-
1073
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Grouping...');
1074
- return groupRowsFn(instance, rowModel);
1075
- }, {
1076
- key: 'getGroupedRowModel',
1077
- debug: instance.options.debug,
1078
- onChange: function onChange() {
1079
- return instance._notifyExpandedReset();
1080
- }
1081
- }),
1082
- getPreGroupedRows: function getPreGroupedRows() {
1083
- return instance.getSortedRowModel().rows;
1084
- },
1085
- getPreGroupedFlatRows: function getPreGroupedFlatRows() {
1086
- return instance.getSortedRowModel().flatRows;
1087
- },
1088
- getPreGroupedRowsById: function getPreGroupedRowsById() {
1089
- return instance.getSortedRowModel().rowsById;
1090
- },
1091
- getGroupedRows: function getGroupedRows() {
1092
- return instance.getGroupedRowModel().rows;
1093
- },
1094
- getGroupedFlatRows: function getGroupedFlatRows() {
1095
- return instance.getGroupedRowModel().flatRows;
1096
- },
1097
- getGroupedRowsById: function getGroupedRowsById() {
1098
- return instance.getGroupedRowModel().rowsById;
1099
- }
1100
- };
1101
- }
1102
- function createRow$3(row, instance) {
1103
- return {
1104
- getIsGrouped: function getIsGrouped() {
1105
- return instance.getRowIsGrouped(row.id);
1106
- }
1107
- };
1108
- }
1109
- function createCell(cell, column, row, _instance) {
1110
- return {
1111
- getIsGrouped: function getIsGrouped() {
1112
- return column.getIsGrouped() && column.id === row.groupingColumnId;
1113
- },
1114
- getIsPlaceholder: function getIsPlaceholder() {
1115
- return !cell.getIsGrouped() && column.getIsGrouped();
1116
- },
1117
- getIsAggregated: function getIsAggregated() {
1118
- var _row$subRows;
1119
-
1120
- return !cell.getIsGrouped() && !cell.getIsPlaceholder() && ((_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length) > 1;
1121
- }
1122
- };
1123
- }
1124
- function orderColumns(leafColumns, grouping, groupedColumnMode) {
1125
- if (!(grouping != null && grouping.length) || !groupedColumnMode) {
1126
- return leafColumns;
1127
- }
1128
-
1129
- var nonGroupingColumns = leafColumns.filter(function (col) {
1130
- return !grouping.includes(col.id);
1131
- });
1132
-
1133
- if (groupedColumnMode === 'remove') {
1134
- return nonGroupingColumns;
1135
- }
1136
-
1137
- var groupingColumns = grouping.map(function (g) {
1138
- return leafColumns.find(function (col) {
1139
- return col.id === g;
1140
- });
1141
- }).filter(Boolean);
1142
- return [].concat(groupingColumns, nonGroupingColumns);
1143
- }
1144
-
1145
- var Grouping = /*#__PURE__*/Object.freeze({
1146
- __proto__: null,
1147
- getDefaultColumn: getDefaultColumn$2,
1148
- getInitialState: getInitialState$8,
1149
- getDefaultOptions: getDefaultOptions$8,
1150
- createColumn: createColumn$4,
1151
- getInstance: getInstance$9,
1152
- createRow: createRow$3,
1153
- createCell: createCell,
1154
- orderColumns: orderColumns
1155
- });
1156
-
1157
- //
1158
- function getInitialState$7() {
1159
- return {
1160
- columnOrder: []
1161
- };
1162
- }
1163
- function getDefaultOptions$7(instance) {
1164
- return {
1165
- onColumnOrderChange: makeStateUpdater('columnOrder', instance)
1166
- };
1167
- }
1168
- function getInstance$8(instance) {
1169
- return {
1170
- setColumnOrder: function setColumnOrder(updater) {
1171
- return instance.options.onColumnOrderChange == null ? void 0 : instance.options.onColumnOrderChange(updater, functionalUpdate(updater, instance.getState().columnOrder));
1172
- },
1173
- resetColumnOrder: function resetColumnOrder() {
1174
- var _instance$initialStat;
1175
-
1176
- instance.setColumnOrder((_instance$initialStat = instance.initialState.columnOrder) != null ? _instance$initialStat : []);
1177
- },
1178
- getOrderColumnsFn: memo(function () {
1179
- return [instance.getState().columnOrder, instance.getState().grouping, instance.options.groupedColumnMode];
1180
- }, function (columnOrder, grouping, groupedColumnMode) {
1181
- return function (columns) {
1182
- // Sort grouped columns to the start of the column list
1183
- // before the headers are built
1184
- var orderedColumns = []; // If there is no order, return the normal columns
1185
-
1186
- if (!(columnOrder != null && columnOrder.length)) {
1187
- orderedColumns = columns;
1188
- } else {
1189
- var columnOrderCopy = [].concat(columnOrder); // If there is an order, make a copy of the columns
1190
-
1191
- var columnsCopy = [].concat(columns); // And make a new ordered array of the columns
1192
- // Loop over the columns and place them in order into the new array
1193
-
1194
- var _loop = function _loop() {
1195
- var targetColumnId = columnOrderCopy.shift();
1196
- var foundIndex = columnsCopy.findIndex(function (d) {
1197
- return d.id === targetColumnId;
1198
- });
1199
-
1200
- if (foundIndex > -1) {
1201
- orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);
1202
- }
1203
- };
1204
-
1205
- while (columnsCopy.length && columnOrderCopy.length) {
1206
- _loop();
1207
- } // If there are any columns left, add them to the end
1208
-
1209
-
1210
- orderedColumns = [].concat(orderedColumns, columnsCopy);
1211
- }
1212
-
1213
- return orderColumns(orderedColumns, grouping, groupedColumnMode);
1214
- };
1215
- }, {
1216
- key: 'getOrderColumnsFn',
1217
- debug: instance.options.debug
1218
- })
1219
- };
1220
- }
1221
-
1222
- var Ordering = /*#__PURE__*/Object.freeze({
1223
- __proto__: null,
1224
- getInitialState: getInitialState$7,
1225
- getDefaultOptions: getDefaultOptions$7,
1226
- getInstance: getInstance$8
1227
- });
1228
-
1229
- //
1230
- function getInitialState$6() {
1231
- return {
1232
- columnPinning: {
1233
- left: [],
1234
- right: []
1235
- }
1236
- };
1237
- }
1238
- function getDefaultOptions$6(instance) {
1239
- return {
1240
- onColumnPinningChange: makeStateUpdater('columnPinning', instance)
1241
- };
1242
- }
1243
- function createColumn$3(column, instance) {
1244
- return {
1245
- getCanPin: function getCanPin() {
1246
- return instance.getColumnCanPin(column.id);
1247
- },
1248
- getPinnedIndex: function getPinnedIndex() {
1249
- return instance.getColumnPinnedIndex(column.id);
1250
- },
1251
- getIsPinned: function getIsPinned() {
1252
- return instance.getColumnIsPinned(column.id);
1253
- },
1254
- pin: function pin(position) {
1255
- return instance.pinColumn(column.id, position);
1256
- }
1257
- };
1258
- }
1259
- function getInstance$7(instance) {
1260
- return {
1261
- setColumnPinning: function setColumnPinning(updater) {
1262
- return instance.options.onColumnPinningChange == null ? void 0 : instance.options.onColumnPinningChange(updater, functionalUpdate(updater, instance.getState().columnPinning));
1263
- },
1264
- resetColumnPinning: function resetColumnPinning() {
1265
- var _instance$options$ini, _instance$options$ini2;
1266
-
1267
- return instance.setColumnPinning((_instance$options$ini = (_instance$options$ini2 = instance.options.initialState) == null ? void 0 : _instance$options$ini2.columnPinning) != null ? _instance$options$ini : {});
1268
- },
1269
- pinColumn: function pinColumn(columnId, position) {
1270
- var column = instance.getColumn(columnId);
1271
- var columnIds = column == null ? void 0 : column.getLeafColumns().map(function (d) {
1272
- return d.id;
1273
- }).filter(Boolean);
1274
- instance.setColumnPinning(function (old) {
1275
- var _old$left3, _old$right3;
1276
-
1277
- if (position === 'right') {
1278
- var _old$left, _old$right;
1279
-
1280
- return {
1281
- left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(function (d) {
1282
- return !(columnIds != null && columnIds.includes(d));
1283
- }),
1284
- right: [].concat(((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(function (d) {
1285
- return !(columnIds != null && columnIds.includes(d));
1286
- }), columnIds)
1287
- };
1288
- }
1289
-
1290
- if (position === 'left') {
1291
- var _old$left2, _old$right2;
1292
-
1293
- return {
1294
- left: [].concat(((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(function (d) {
1295
- return !(columnIds != null && columnIds.includes(d));
1296
- }), columnIds),
1297
- right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(function (d) {
1298
- return !(columnIds != null && columnIds.includes(d));
1299
- })
1300
- };
1301
- }
1302
-
1303
- return {
1304
- left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(function (d) {
1305
- return !(columnIds != null && columnIds.includes(d));
1306
- }),
1307
- right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(function (d) {
1308
- return !(columnIds != null && columnIds.includes(d));
1309
- })
1310
- };
1311
- });
1312
- },
1313
- getColumnCanPin: function getColumnCanPin(columnId) {
1314
- var column = instance.getColumn(columnId);
1315
-
1316
- if (!column) {
1317
- throw new Error();
1318
- }
1319
-
1320
- var leafColumns = column.getLeafColumns();
1321
- return leafColumns.some(function (d) {
1322
- var _ref, _ref2, _d$enablePinning;
1323
-
1324
- return (_ref = (_ref2 = (_d$enablePinning = d.enablePinning) != null ? _d$enablePinning : instance.options.enablePinning) != null ? _ref2 : d.defaultCanPin) != null ? _ref : !!d.accessorFn;
1325
- });
1326
- },
1327
- getColumnIsPinned: function getColumnIsPinned(columnId) {
1328
- var column = instance.getColumn(columnId);
1329
-
1330
- if (!column) {
1331
- throw new Error();
1332
- }
1333
-
1334
- var leafColumnIds = column.getLeafColumns().map(function (d) {
1335
- return d.id;
1336
- });
1337
- var _instance$getState$co = instance.getState().columnPinning,
1338
- left = _instance$getState$co.left,
1339
- right = _instance$getState$co.right;
1340
- var isLeft = leafColumnIds.some(function (d) {
1341
- return left == null ? void 0 : left.includes(d);
1342
- });
1343
- var isRight = leafColumnIds.some(function (d) {
1344
- return right == null ? void 0 : right.includes(d);
1345
- });
1346
- return isLeft ? 'left' : isRight ? 'right' : false;
1347
- },
1348
- getColumnPinnedIndex: function getColumnPinnedIndex(columnId) {
1349
- var _instance$getState$co2, _instance$getState$co3, _instance$getState$co4;
1350
-
1351
- var position = instance.getColumnIsPinned(columnId);
1352
- return position ? (_instance$getState$co2 = (_instance$getState$co3 = instance.getState().columnPinning) == null ? void 0 : (_instance$getState$co4 = _instance$getState$co3[position]) == null ? void 0 : _instance$getState$co4.indexOf(columnId)) != null ? _instance$getState$co2 : -1 : 0;
1353
- }
1354
- };
1355
- }
1356
-
1357
- var Pinning = /*#__PURE__*/Object.freeze({
1358
- __proto__: null,
1359
- getInitialState: getInitialState$6,
1360
- getDefaultOptions: getDefaultOptions$6,
1361
- createColumn: createColumn$3,
1362
- getInstance: getInstance$7
1363
- });
1364
-
1365
- //
1366
- function createRow$2(row, instance) {
1367
- return {
1368
- _getAllVisibleCells: memo(function () {
1369
- return [row.getAllCells().filter(function (cell) {
1370
- return cell.column.getIsVisible();
1371
- }).map(function (d) {
1372
- return d.id;
1373
- }).join('_')];
1374
- }, function (_) {
1375
- return row.getAllCells().filter(function (cell) {
1376
- return cell.column.getIsVisible();
1377
- });
1378
- }, {
1379
- key: 'row._getAllVisibleCells',
1380
- debug: instance.options.debug
1381
- }),
1382
- getVisibleCells: memo(function () {
1383
- return [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()];
1384
- }, function (left, center, right) {
1385
- return [].concat(left, center, right);
1386
- }, {
1387
- key: 'row.getVisibleCells',
1388
- debug: instance.options.debug
1389
- }),
1390
- getCenterVisibleCells: memo(function () {
1391
- return [row._getAllVisibleCells(), instance.getState().columnPinning.left, instance.getState().columnPinning.right];
1392
- }, function (allCells, left, right) {
1393
- var leftAndRight = [].concat(left != null ? left : [], right != null ? right : []);
1394
- return allCells.filter(function (d) {
1395
- return !leftAndRight.includes(d.columnId);
1396
- });
1397
- }, {
1398
- key: 'row.getCenterVisibleCells',
1399
- debug: instance.options.debug
1400
- }),
1401
- getLeftVisibleCells: memo(function () {
1402
- return [row._getAllVisibleCells(), instance.getState().columnPinning.left,,];
1403
- }, function (allCells, left) {
1404
- var cells = (left != null ? left : []).map(function (columnId) {
1405
- return allCells.find(function (cell) {
1406
- return cell.columnId === columnId;
1407
- });
1408
- }).filter(Boolean);
1409
- return cells;
1410
- }, {
1411
- key: 'row.getLeftVisibleCells',
1412
- debug: instance.options.debug
1413
- }),
1414
- getRightVisibleCells: memo(function () {
1415
- return [row._getAllVisibleCells(), instance.getState().columnPinning.right];
1416
- }, function (allCells, right) {
1417
- var cells = (right != null ? right : []).map(function (columnId) {
1418
- return allCells.find(function (cell) {
1419
- return cell.columnId === columnId;
1420
- });
1421
- }).filter(Boolean);
1422
- return cells;
1423
- }, {
1424
- key: 'row.getRightVisibleCells',
1425
- debug: instance.options.debug
1426
- })
1427
- };
1428
- }
1429
- function getInstance$6(instance) {
1430
- return {
1431
- createHeader: function createHeader(column, options) {
1432
- var _options$id;
1433
-
1434
- var id = (_options$id = options.id) != null ? _options$id : column.id;
1435
- var header = {
1436
- id: id,
1437
- column: column,
1438
- isPlaceholder: options.isPlaceholder,
1439
- placeholderId: options.placeholderId,
1440
- depth: options.depth,
1441
- subHeaders: [],
1442
- colSpan: 0,
1443
- rowSpan: 0,
1444
- getWidth: function getWidth() {
1445
- var sum = 0;
1446
-
1447
- var recurse = function recurse(header) {
1448
- if (header.subHeaders.length) {
1449
- header.subHeaders.forEach(recurse);
1450
- } else {
1451
- var _header$column$getWid;
1452
-
1453
- sum += (_header$column$getWid = header.column.getWidth()) != null ? _header$column$getWid : 0;
1454
- }
1455
- };
1456
-
1457
- recurse(header);
1458
- return sum;
1459
- },
1460
- getLeafHeaders: function getLeafHeaders() {
1461
- var leafHeaders = [];
1462
-
1463
- var recurseHeader = function recurseHeader(h) {
1464
- if (h.subHeaders && h.subHeaders.length) {
1465
- h.subHeaders.map(recurseHeader);
1466
- }
1467
-
1468
- leafHeaders.push(h);
1469
- };
1470
-
1471
- recurseHeader(header);
1472
- return leafHeaders;
1473
- },
1474
- getHeaderProps: function getHeaderProps(userProps) {
1475
- return instance.getHeaderProps(header.id, userProps);
1476
- },
1477
- getFooterProps: function getFooterProps(userProps) {
1478
- return instance.getFooterProps(header.id, userProps);
1479
- },
1480
- renderHeader: function renderHeader() {
1481
- return flexRender(column.header, {
1482
- instance: instance,
1483
- header: header,
1484
- column: column
1485
- });
1486
- },
1487
- renderFooter: function renderFooter() {
1488
- return flexRender(column.footer, {
1489
- instance: instance,
1490
- header: header,
1491
- column: column
1492
- });
1493
- }
1494
- }; // Yes, we have to convert instance to uknown, because we know more than the compiler here.
1495
-
1496
- return header;
1497
- },
1498
- // Header Groups
1499
- getHeaderGroups: memo(function () {
1500
- return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right];
1501
- }, function (allColumns, leafColumns, left, right) {
1502
- var leftColumns = leafColumns.filter(function (column) {
1503
- return left == null ? void 0 : left.includes(column.id);
1504
- });
1505
- var rightColumns = leafColumns.filter(function (column) {
1506
- return right == null ? void 0 : right.includes(column.id);
1507
- });
1508
- var centerColumns = leafColumns.filter(function (column) {
1509
- return !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id));
1510
- });
1511
- var headerGroups = buildHeaderGroups(allColumns, [].concat(leftColumns, centerColumns, rightColumns), instance);
1512
- return headerGroups;
1513
- }, {
1514
- key: 'getHeaderGroups',
1515
- debug: instance.options.debug
1516
- }),
1517
- getCenterHeaderGroups: memo(function () {
1518
- return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right];
1519
- }, function (allColumns, leafColumns, left, right) {
1520
- leafColumns = leafColumns.filter(function (column) {
1521
- return !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id));
1522
- });
1523
- return buildHeaderGroups(allColumns, leafColumns, instance, 'center');
1524
- }, {
1525
- key: 'getCenterHeaderGroups',
1526
- debug: instance.options.debug
1527
- }),
1528
- getLeftHeaderGroups: memo(function () {
1529
- return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left];
1530
- }, function (allColumns, leafColumns, left) {
1531
- leafColumns = leafColumns.filter(function (column) {
1532
- return left == null ? void 0 : left.includes(column.id);
1533
- });
1534
- return buildHeaderGroups(allColumns, leafColumns, instance, 'left');
1535
- }, {
1536
- key: 'getLeftHeaderGroups',
1537
- debug: instance.options.debug
1538
- }),
1539
- getRightHeaderGroups: memo(function () {
1540
- return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.right];
1541
- }, function (allColumns, leafColumns, right) {
1542
- leafColumns = leafColumns.filter(function (column) {
1543
- return right == null ? void 0 : right.includes(column.id);
1544
- });
1545
- return buildHeaderGroups(allColumns, leafColumns, instance, 'right');
1546
- }, {
1547
- key: 'getRightHeaderGroups',
1548
- debug: instance.options.debug
1549
- }),
1550
- // Footer Groups
1551
- getFooterGroups: memo(function () {
1552
- return [instance.getHeaderGroups()];
1553
- }, function (headerGroups) {
1554
- return [].concat(headerGroups).reverse();
1555
- }, {
1556
- key: 'getFooterGroups',
1557
- debug: instance.options.debug
1558
- }),
1559
- getLeftFooterGroups: memo(function () {
1560
- return [instance.getLeftHeaderGroups()];
1561
- }, function (headerGroups) {
1562
- return [].concat(headerGroups).reverse();
1563
- }, {
1564
- key: 'getLeftFooterGroups',
1565
- debug: instance.options.debug
1566
- }),
1567
- getCenterFooterGroups: memo(function () {
1568
- return [instance.getCenterHeaderGroups()];
1569
- }, function (headerGroups) {
1570
- return [].concat(headerGroups).reverse();
1571
- }, {
1572
- key: 'getCenterFooterGroups',
1573
- debug: instance.options.debug
1574
- }),
1575
- getRightFooterGroups: memo(function () {
1576
- return [instance.getRightHeaderGroups()];
1577
- }, function (headerGroups) {
1578
- return [].concat(headerGroups).reverse();
1579
- }, {
1580
- key: 'getRightFooterGroups',
1581
- debug: instance.options.debug
1582
- }),
1583
- // Flat Headers
1584
- getFlatHeaders: memo(function () {
1585
- return [instance.getHeaderGroups()];
1586
- }, function (headerGroups) {
1587
- return headerGroups.map(function (headerGroup) {
1588
- return headerGroup.headers;
1589
- }).flat();
1590
- }, {
1591
- key: 'getFlatHeaders',
1592
- debug: instance.options.debug
1593
- }),
1594
- getLeftFlatHeaders: memo(function () {
1595
- return [instance.getLeftHeaderGroups()];
1596
- }, function (left) {
1597
- return left.map(function (headerGroup) {
1598
- return headerGroup.headers;
1599
- }).flat();
1600
- }, {
1601
- key: 'getLeftFlatHeaders',
1602
- debug: instance.options.debug
1603
- }),
1604
- getCenterFlatHeaders: memo(function () {
1605
- return [instance.getCenterHeaderGroups()];
1606
- }, function (left) {
1607
- return left.map(function (headerGroup) {
1608
- return headerGroup.headers;
1609
- }).flat();
1610
- }, {
1611
- key: 'getCenterFlatHeaders',
1612
- debug: instance.options.debug
1613
- }),
1614
- getRightFlatHeaders: memo(function () {
1615
- return [instance.getRightHeaderGroups()];
1616
- }, function (left) {
1617
- return left.map(function (headerGroup) {
1618
- return headerGroup.headers;
1619
- }).flat();
1620
- }, {
1621
- key: 'getRightFlatHeaders',
1622
- debug: instance.options.debug
1623
- }),
1624
- // Leaf Headers
1625
- getCenterLeafHeaders: memo(function () {
1626
- return [instance.getCenterFlatHeaders()];
1627
- }, function (flatHeaders) {
1628
- return flatHeaders.filter(function (header) {
1629
- var _header$subHeaders;
1630
-
1631
- return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);
1632
- });
1633
- }, {
1634
- key: 'getCenterLeafHeaders',
1635
- debug: instance.options.debug
1636
- }),
1637
- getLeftLeafHeaders: memo(function () {
1638
- return [instance.getLeftFlatHeaders()];
1639
- }, function (flatHeaders) {
1640
- return flatHeaders.filter(function (header) {
1641
- var _header$subHeaders2;
1642
-
1643
- return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);
1644
- });
1645
- }, {
1646
- key: 'getLeftLeafHeaders',
1647
- debug: instance.options.debug
1648
- }),
1649
- getRightLeafHeaders: memo(function () {
1650
- return [instance.getRightFlatHeaders()];
1651
- }, function (flatHeaders) {
1652
- return flatHeaders.filter(function (header) {
1653
- var _header$subHeaders3;
1654
-
1655
- return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);
1656
- });
1657
- }, {
1658
- key: 'getRightLeafHeaders',
1659
- debug: instance.options.debug
1660
- }),
1661
- getLeafHeaders: memo(function () {
1662
- return [instance.getLeftHeaderGroups(), instance.getCenterHeaderGroups(), instance.getRightHeaderGroups()];
1663
- }, function (left, center, right) {
1664
- var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;
1665
-
1666
- return [].concat((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : [], (_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : [], (_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : []).map(function (header) {
1667
- return header.getLeafHeaders();
1668
- }).flat();
1669
- }, {
1670
- key: 'getLeafHeaders',
1671
- debug: instance.options.debug
1672
- }),
1673
- getHeader: function getHeader(id) {
1674
- var header = [].concat(instance.getFlatHeaders(), instance.getCenterFlatHeaders(), instance.getLeftFlatHeaders(), instance.getRightFlatHeaders()).find(function (d) {
1675
- return d.id === id;
1676
- });
1677
-
1678
- if (!header) {
1679
- if (process.env.NODE_ENV !== 'production') {
1680
- console.warn("Could not find header with id: " + id);
1681
- }
1682
-
1683
- throw new Error();
1684
- }
1685
-
1686
- return header;
1687
- },
1688
- getHeaderGroupProps: function getHeaderGroupProps(id, userProps) {
1689
- var headerGroup = instance.getHeaderGroups().find(function (d) {
1690
- return d.id === id;
1691
- });
1692
-
1693
- if (!headerGroup) {
1694
- return;
1695
- }
1696
-
1697
- return propGetter({
1698
- key: headerGroup.id,
1699
- role: 'row'
1700
- }, userProps);
1701
- },
1702
- getFooterGroupProps: function getFooterGroupProps(id, userProps) {
1703
- var headerGroup = instance.getFooterGroups().find(function (d) {
1704
- return d.id === id;
1705
- });
1706
-
1707
- if (!headerGroup) {
1708
- return;
1709
- }
1710
-
1711
- var initialProps = {
1712
- key: headerGroup.id,
1713
- role: 'row'
1714
- };
1715
- return propGetter(initialProps, userProps);
1716
- },
1717
- getHeaderProps: function getHeaderProps(id, userProps) {
1718
- var header = instance.getHeader(id);
1719
-
1720
- if (!header) {
1721
- throw new Error();
1722
- }
1723
-
1724
- var initialProps = {
1725
- key: header.id,
1726
- role: 'columnheader',
1727
- colSpan: header.colSpan,
1728
- rowSpan: header.rowSpan
1729
- };
1730
- return propGetter(initialProps, userProps);
1731
- },
1732
- getFooterProps: function getFooterProps(id, userProps) {
1733
- var header = instance.getHeader(id);
1734
-
1735
- if (!header) {
1736
- return;
1737
- }
1738
-
1739
- var initialProps = {
1740
- key: header.id,
1741
- role: 'columnfooter',
1742
- colSpan: header.colSpan,
1743
- rowSpan: header.rowSpan
1744
- };
1745
- return propGetter(initialProps, userProps);
1746
- },
1747
- getTotalWidth: function getTotalWidth() {
1748
- var width = 0;
1749
- instance.getVisibleLeafColumns().forEach(function (column) {
1750
- var _column$getWidth;
1751
-
1752
- width += (_column$getWidth = column.getWidth()) != null ? _column$getWidth : 0;
1753
- });
1754
- return width;
1755
- }
1756
- };
1757
- }
1758
- function buildHeaderGroups(allColumns, columnsToGroup, instance, headerFamily) {
1759
- var _headerGroups$0$heade, _headerGroups$;
1760
-
1761
- // Find the max depth of the columns:
1762
- // build the leaf column row
1763
- // build each buffer row going up
1764
- // placeholder for non-existent level
1765
- // real column for existing level
1766
- var maxDepth = 0;
1767
-
1768
- var findMaxDepth = function findMaxDepth(columns, depth) {
1769
- if (depth === void 0) {
1770
- depth = 1;
1771
- }
1772
-
1773
- maxDepth = Math.max(maxDepth, depth);
1774
- columns.filter(function (column) {
1775
- return column.getIsVisible();
1776
- }).forEach(function (column) {
1777
- var _column$columns;
1778
-
1779
- if ((_column$columns = column.columns) != null && _column$columns.length) {
1780
- findMaxDepth(column.columns, depth + 1);
1781
- }
1782
- }, 0);
1783
- };
1784
-
1785
- findMaxDepth(allColumns);
1786
- var headerGroups = [];
1787
-
1788
- var createHeaderGroup = function createHeaderGroup(headersToGroup, depth) {
1789
- // The header group we are creating
1790
- var headerGroup = {
1791
- depth: depth,
1792
- id: [headerFamily, "" + depth].filter(Boolean).join('_'),
1793
- headers: [],
1794
- getHeaderGroupProps: function getHeaderGroupProps(getterValue) {
1795
- return instance.getHeaderGroupProps("" + depth, getterValue);
1796
- },
1797
- getFooterGroupProps: function getFooterGroupProps(getterValue) {
1798
- return instance.getFooterGroupProps("" + depth, getterValue);
1799
- }
1800
- }; // The parent columns we're going to scan next
1801
-
1802
- var parentHeaders = []; // Scan each column for parents
1803
-
1804
- headersToGroup.forEach(function (headerToGroup) {
1805
- // What is the latest (last) parent column?
1806
- var latestParentHeader = [].concat(parentHeaders).reverse()[0];
1807
- var isLeafHeader = headerToGroup.column.depth === headerGroup.depth;
1808
- var column;
1809
- var isPlaceholder = false;
1810
-
1811
- if (isLeafHeader && headerToGroup.column.parent) {
1812
- // The parent header is new
1813
- column = headerToGroup.column.parent;
1814
- } else {
1815
- // The parent header is repeated
1816
- column = headerToGroup.column;
1817
- isPlaceholder = true;
1818
- }
1819
-
1820
- var header = instance.createHeader(column, {
1821
- id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),
1822
- isPlaceholder: isPlaceholder,
1823
- placeholderId: isPlaceholder ? "" + parentHeaders.filter(function (d) {
1824
- return d.column === column;
1825
- }).length : undefined,
1826
- depth: depth
1827
- });
1828
-
1829
- if (!latestParentHeader || latestParentHeader.column !== header.column) {
1830
- header.subHeaders.push(headerToGroup);
1831
- parentHeaders.push(header);
1832
- } else {
1833
- latestParentHeader.subHeaders.push(headerToGroup);
1834
- } // if (!headerToGroup.isPlaceholder) {
1835
- // headerToGroup.column.header = headerToGroup;
1836
- // }
1837
-
1838
-
1839
- headerGroup.headers.push(headerToGroup);
1840
- });
1841
- headerGroups.push(headerGroup);
1842
-
1843
- if (depth > 0) {
1844
- createHeaderGroup(parentHeaders, depth - 1);
1845
- }
1846
- };
1847
-
1848
- var bottomHeaders = columnsToGroup.map(function (column) {
1849
- return instance.createHeader(column, {
1850
- depth: maxDepth
1851
- });
1852
- });
1853
- createHeaderGroup(bottomHeaders, maxDepth - 1);
1854
- headerGroups.reverse(); // headerGroups = headerGroups.filter(headerGroup => {
1855
- // return !headerGroup.headers.every(header => header.isPlaceholder)
1856
- // })
1857
-
1858
- var recurseHeadersForSpans = function recurseHeadersForSpans(headers) {
1859
- var filteredHeaders = headers.filter(function (header) {
1860
- return header.column.getIsVisible();
1861
- });
1862
- return filteredHeaders.map(function (header) {
1863
- var colSpan = 0;
1864
- var rowSpan = 0;
1865
- var childRowSpans = [0];
1866
-
1867
- if (header.subHeaders && header.subHeaders.length) {
1868
- childRowSpans = [];
1869
- recurseHeadersForSpans(header.subHeaders).forEach(function (_ref) {
1870
- var childColSpan = _ref.colSpan,
1871
- childRowSpan = _ref.rowSpan;
1872
- colSpan += childColSpan;
1873
- childRowSpans.push(childRowSpan);
1874
- });
1875
- } else {
1876
- colSpan = 1;
1877
- }
1878
-
1879
- var minChildRowSpan = Math.min.apply(Math, childRowSpans);
1880
- rowSpan = rowSpan + minChildRowSpan;
1881
- header.colSpan = colSpan > 0 ? colSpan : undefined;
1882
- header.rowSpan = rowSpan > 0 ? rowSpan : undefined;
1883
- return {
1884
- colSpan: colSpan,
1885
- rowSpan: rowSpan
1886
- };
1887
- });
1888
- };
1889
-
1890
- recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);
1891
- return headerGroups;
1892
- }
1893
-
1894
- var Headers = /*#__PURE__*/Object.freeze({
1895
- __proto__: null,
1896
- createRow: createRow$2,
1897
- getInstance: getInstance$6,
1898
- buildHeaderGroups: buildHeaderGroups
1899
- });
1900
-
1901
- var filterTypes = {
1902
- includesString: includesString,
1903
- includesStringSensitive: includesStringSensitive,
1904
- equalsString: equalsString,
1905
- equalsStringSensitive: equalsStringSensitive,
1906
- arrIncludes: arrIncludes,
1907
- arrIncludesAll: arrIncludesAll,
1908
- equals: equals,
1909
- weakEquals: weakEquals,
1910
- betweenNumberRange: betweenNumberRange
1911
- };
1912
-
1913
- function includesString(rows, columnIds, filterValue) {
1914
- var search = String(filterValue).toLowerCase();
1915
- rows = rows.filter(function (row) {
1916
- return columnIds.some(function (id) {
1917
- return String(row.values[id]).toLowerCase().includes(search);
1918
- });
1919
- });
1920
- return rows;
1921
- }
1922
-
1923
- includesString.autoRemove = function (val) {
1924
- return testFalsey(val);
1925
- };
1926
-
1927
- function includesStringSensitive(rows, columnIds, filterValue) {
1928
- var search = String(filterValue);
1929
- rows = rows.filter(function (row) {
1930
- return columnIds.some(function (id) {
1931
- return String(row.values[id]).includes(search);
1932
- });
1933
- });
1934
- return rows;
1935
- }
1936
-
1937
- includesStringSensitive.autoRemove = function (val) {
1938
- return testFalsey(val);
1939
- };
1940
-
1941
- function equalsString(rows, columnIds, filterValue) {
1942
- var search = String(filterValue).toLowerCase();
1943
- return rows.filter(function (row) {
1944
- return columnIds.some(function (id) {
1945
- var rowValue = row.values[id];
1946
- return rowValue !== undefined ? String(rowValue).toLowerCase() === search : true;
1947
- });
1948
- });
1949
- }
1950
-
1951
- equalsString.autoRemove = function (val) {
1952
- return testFalsey(val);
1953
- };
1954
-
1955
- function equalsStringSensitive(rows, columnIds, filterValue) {
1956
- var search = String(filterValue);
1957
- return rows.filter(function (row) {
1958
- return columnIds.some(function (id) {
1959
- var rowValue = row.values[id];
1960
- return rowValue !== undefined ? String(rowValue) === search : true;
1961
- });
1962
- });
1963
- }
1964
-
1965
- equalsStringSensitive.autoRemove = function (val) {
1966
- return testFalsey(val);
1967
- };
1968
-
1969
- function arrIncludes(rows, columnIds, filterValue) {
1970
- return rows.filter(function (row) {
1971
- return columnIds.some(function (id) {
1972
- var rowValue = row.values[id];
1973
- return rowValue.includes(filterValue);
1974
- });
1975
- });
1976
- }
1977
-
1978
- arrIncludes.autoRemove = function (val) {
1979
- return testFalsey(val) || !(val != null && val.length);
1980
- };
1981
-
1982
- function arrIncludesAll(rows, columnIds, filterValue) {
1983
- return rows.filter(function (row) {
1984
- return columnIds.some(function (id) {
1985
- var rowValue = row.values[id];
1986
- return rowValue && rowValue.length && filterValue.every(function (val) {
1987
- return rowValue.includes(val);
1988
- });
1989
- });
1990
- });
1991
- }
1992
-
1993
- arrIncludesAll.autoRemove = function (val) {
1994
- return testFalsey(val) || !(val != null && val.length);
1995
- };
1996
-
1997
- function equals(rows, columnIds, filterValue) {
1998
- return rows.filter(function (row) {
1999
- return columnIds.some(function (id) {
2000
- var rowValue = row.values[id];
2001
- return rowValue === filterValue;
2002
- });
2003
- });
2004
- }
2005
-
2006
- equals.autoRemove = function (val) {
2007
- return testFalsey(val);
2008
- };
2009
-
2010
- function weakEquals(rows, columnIds, filterValue) {
2011
- return rows.filter(function (row) {
2012
- return columnIds.some(function (id) {
2013
- var rowValue = row.values[id]; // eslint-disable-next-line eqeqeq
2014
-
2015
- return rowValue == filterValue;
2016
- });
2017
- });
2018
- }
2019
-
2020
- weakEquals.autoRemove = function (val) {
2021
- return testFalsey(val);
2022
- };
2023
-
2024
- function betweenNumberRange(rows, columnIds, filterValue) {
2025
- var _ref = filterValue || [],
2026
- unsafeMin = _ref[0],
2027
- unsafeMax = _ref[1];
2028
-
2029
- var parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;
2030
- var parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;
2031
- var min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;
2032
- var max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;
2033
-
2034
- if (min > max) {
2035
- var temp = min;
2036
- min = max;
2037
- max = temp;
2038
- }
2039
-
2040
- return rows.filter(function (row) {
2041
- return columnIds.some(function (id) {
2042
- var rowValue = row.values[id];
2043
- return rowValue >= min && rowValue <= max;
2044
- });
2045
- });
2046
- }
2047
-
2048
- betweenNumberRange.autoRemove = function (val) {
2049
- return testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);
2050
- }; // Utils
2051
-
2052
-
2053
- function testFalsey(val) {
2054
- return val === undefined || val === null || val === '';
2055
- }
2056
-
2057
- //
2058
- function getDefaultColumn$1() {
2059
- return {
2060
- filterType: 'auto'
2061
- };
2062
- }
2063
- function getInitialState$5() {
2064
- return {
2065
- columnFilters: [],
2066
- globalFilter: undefined
2067
- };
2068
- }
2069
- function getDefaultOptions$5(instance) {
2070
- return {
2071
- onColumnFiltersChange: makeStateUpdater('columnFilters', instance),
2072
- onGlobalFilterChange: makeStateUpdater('globalFilter', instance),
2073
- autoResetColumnFilters: true,
2074
- filterFromChildrenUp: true,
2075
- autoResetGlobalFilter: true,
2076
- globalFilterType: 'auto',
2077
- getColumnCanGlobalFilterFn: function getColumnCanGlobalFilterFn(column) {
2078
- var _instance$getCoreFlat, _instance$getCoreFlat2;
2079
-
2080
- var value = (_instance$getCoreFlat = instance.getCoreFlatRows()[0]) == null ? void 0 : (_instance$getCoreFlat2 = _instance$getCoreFlat.getAllCellsByColumnId()[column.id]) == null ? void 0 : _instance$getCoreFlat2.value;
2081
- return typeof value === 'string';
2082
- }
2083
- };
2084
- }
2085
- function createColumn$2(column, instance) {
2086
- var getFacetInfo = memo(function () {
2087
- return [column.getPreFilteredRows()];
2088
- }, function (rows) {
2089
- var _rows$0$values$column, _rows$, _rows$0$values$column2, _rows$2;
2090
-
2091
- if (rows === void 0) {
2092
- rows = [];
2093
- }
2094
-
2095
- var preFilteredUniqueValues = new Map();
2096
- var preFilteredMinMaxValues = [(_rows$0$values$column = (_rows$ = rows[0]) == null ? void 0 : _rows$.values[column.id]) != null ? _rows$0$values$column : null, (_rows$0$values$column2 = (_rows$2 = rows[0]) == null ? void 0 : _rows$2.values[column.id]) != null ? _rows$0$values$column2 : null];
2097
-
2098
- for (var i = 0; i < rows.length; i++) {
2099
- var _rows$i;
2100
-
2101
- var _value = (_rows$i = rows[i]) == null ? void 0 : _rows$i.values[column.id];
2102
-
2103
- if (preFilteredUniqueValues.has(_value)) {
2104
- var _preFilteredUniqueVal;
2105
-
2106
- preFilteredUniqueValues.set(_value, ((_preFilteredUniqueVal = preFilteredUniqueValues.get(_value)) != null ? _preFilteredUniqueVal : 0) + 1);
2107
- } else {
2108
- preFilteredUniqueValues.set(_value, 1);
2109
- }
2110
-
2111
- if (_value < preFilteredMinMaxValues[0]) {
2112
- preFilteredMinMaxValues[0] = _value;
2113
- } else if (_value > preFilteredMinMaxValues[1]) {
2114
- preFilteredMinMaxValues[1] = _value;
2115
- }
2116
- }
2117
-
2118
- return {
2119
- preFilteredUniqueValues: preFilteredUniqueValues,
2120
- preFilteredMinMaxValues: preFilteredMinMaxValues
2121
- };
2122
- }, {
2123
- key: 'column.getFacetInfo',
2124
- debug: instance.options.debug
2125
- });
2126
- return {
2127
- filterType: column.filterType,
2128
- getCanColumnFilter: function getCanColumnFilter() {
2129
- return instance.getColumnCanColumnFilter(column.id);
2130
- },
2131
- getCanGlobalFilter: function getCanGlobalFilter() {
2132
- return instance.getColumnCanGlobalFilter(column.id);
2133
- },
2134
- getColumnFilterIndex: function getColumnFilterIndex() {
2135
- return instance.getColumnFilterIndex(column.id);
2136
- },
2137
- getIsColumnFiltered: function getIsColumnFiltered() {
2138
- return instance.getColumnIsFiltered(column.id);
2139
- },
2140
- getColumnFilterValue: function getColumnFilterValue() {
2141
- return instance.getColumnFilterValue(column.id);
2142
- },
2143
- setColumnFilterValue: function setColumnFilterValue(val) {
2144
- return instance.setColumnFilterValue(column.id, val);
2145
- },
2146
- getPreFilteredUniqueValues: function getPreFilteredUniqueValues() {
2147
- return getFacetInfo().preFilteredUniqueValues;
2148
- },
2149
- getPreFilteredMinMaxValues: function getPreFilteredMinMaxValues() {
2150
- return getFacetInfo().preFilteredMinMaxValues;
2151
- },
2152
- getPreFilteredRows: function getPreFilteredRows() {
2153
- return undefined;
2154
- }
2155
- };
2156
- }
2157
- function getInstance$5(instance) {
2158
- var registered = false;
2159
- return {
2160
- _notifyFiltersReset: function _notifyFiltersReset() {
2161
- if (!registered) {
2162
- registered = true;
2163
- return;
2164
- }
2165
-
2166
- if (instance.options.autoResetAll === false) {
2167
- return;
2168
- }
2169
-
2170
- if (instance.options.autoResetAll === true) {
2171
- instance.resetSorting();
2172
- } else {
2173
- if (instance.options.autoResetColumnFilters) {
2174
- instance.resetColumnFilters();
2175
- }
2176
-
2177
- if (instance.options.autoResetGlobalFilter) {
2178
- instance.resetGlobalFilter();
2179
- }
2180
- }
2181
- },
2182
- getColumnAutoFilterFn: function getColumnAutoFilterFn(columnId) {
2183
- var firstRow = instance.getCoreFlatRows()[0];
2184
- var value = firstRow == null ? void 0 : firstRow.values[columnId];
2185
-
2186
- if (typeof value === 'string') {
2187
- return filterTypes.includesString;
2188
- }
2189
-
2190
- if (typeof value === 'number') {
2191
- return filterTypes.betweenNumberRange;
2192
- }
2193
-
2194
- if (value !== null && typeof value === 'object') {
2195
- return filterTypes.equals;
2196
- }
2197
-
2198
- if (Array.isArray(value)) {
2199
- return filterTypes.arrIncludes;
2200
- }
2201
-
2202
- return filterTypes.weakEquals;
2203
- },
2204
- getGlobalAutoFilterFn: function getGlobalAutoFilterFn() {
2205
- return filterTypes.includesString;
2206
- },
2207
- getColumnFilterFn: function getColumnFilterFn(columnId) {
2208
- var _ref;
2209
-
2210
- var column = instance.getColumn(columnId);
2211
- var userFilterTypes = instance.options.filterTypes;
2212
-
2213
- if (!column) {
2214
- throw new Error();
2215
- }
2216
-
2217
- return isFunction(column.filterType) ? column.filterType : column.filterType === 'auto' ? instance.getColumnAutoFilterFn(columnId) : (_ref = userFilterTypes == null ? void 0 : userFilterTypes[column.filterType]) != null ? _ref : filterTypes[column.filterType];
2218
- },
2219
- getGlobalFilterFn: function getGlobalFilterFn() {
2220
- var _ref2;
2221
-
2222
- var _instance$options = instance.options,
2223
- userFilterTypes = _instance$options.filterTypes,
2224
- globalFilterType = _instance$options.globalFilterType;
2225
- return isFunction(globalFilterType) ? globalFilterType : globalFilterType === 'auto' ? instance.getGlobalAutoFilterFn() : (_ref2 = userFilterTypes == null ? void 0 : userFilterTypes[globalFilterType]) != null ? _ref2 : filterTypes[globalFilterType];
2226
- },
2227
- setColumnFilters: function setColumnFilters(updater) {
2228
- var leafColumns = instance.getAllLeafColumns();
2229
-
2230
- var updateFn = function updateFn(old) {
2231
- var _functionalUpdate;
2232
-
2233
- return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(function (filter) {
2234
- var column = leafColumns.find(function (d) {
2235
- return d.id === filter.id;
2236
- });
2237
-
2238
- if (column) {
2239
- var filterFn = instance.getColumnFilterFn(column.id);
2240
-
2241
- if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {
2242
- return false;
2243
- }
2244
- }
2245
-
2246
- return true;
2247
- });
2248
- };
2249
-
2250
- instance.options.onColumnFiltersChange == null ? void 0 : instance.options.onColumnFiltersChange(updateFn, updateFn(instance.getState().columnFilters));
2251
- },
2252
- setGlobalFilter: function setGlobalFilter(updater) {
2253
- instance.options.onGlobalFilterChange == null ? void 0 : instance.options.onGlobalFilterChange(updater, functionalUpdate(updater, instance.getState().globalFilter));
2254
- },
2255
- resetGlobalFilter: function resetGlobalFilter() {
2256
- instance.setGlobalFilter(undefined);
2257
- },
2258
- getColumnCanColumnFilter: function getColumnCanColumnFilter(columnId) {
2259
- var _ref3, _ref4, _ref5, _ref6, _ref7, _column$enableAllFilt;
2260
-
2261
- var column = instance.getColumn(columnId);
2262
-
2263
- if (!column) {
2264
- throw new Error();
2265
- }
2266
-
2267
- return (_ref3 = (_ref4 = (_ref5 = (_ref6 = (_ref7 = (_column$enableAllFilt = column.enableAllFilters) != null ? _column$enableAllFilt : column.enableColumnFilter) != null ? _ref7 : instance.options.enableFilters) != null ? _ref6 : instance.options.enableColumnFilters) != null ? _ref5 : column.defaultCanFilter) != null ? _ref4 : column.defaultCanColumnFilter) != null ? _ref3 : !!column.accessorFn;
2268
- },
2269
- getColumnCanGlobalFilter: function getColumnCanGlobalFilter(columnId) {
2270
- var _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _instance$options$ena;
2271
-
2272
- var column = instance.getColumn(columnId);
2273
-
2274
- if (!column) {
2275
- throw new Error();
2276
- }
2277
-
2278
- return (_ref8 = ((_ref9 = (_ref10 = (_ref11 = (_ref12 = (_ref13 = (_instance$options$ena = instance.options.enableFilters) != null ? _instance$options$ena : instance.options.enableGlobalFilter) != null ? _ref13 : column.enableAllFilters) != null ? _ref12 : column.enableGlobalFilter) != null ? _ref11 : column.defaultCanFilter) != null ? _ref10 : column.defaultCanGlobalFilter) != null ? _ref9 : !!column.accessorFn) && (instance.options.getColumnCanGlobalFilterFn == null ? void 0 : instance.options.getColumnCanGlobalFilterFn(column))) != null ? _ref8 : true;
2279
- },
2280
- getColumnIsFiltered: function getColumnIsFiltered(columnId) {
2281
- return instance.getColumnFilterIndex(columnId) > -1;
2282
- },
2283
- getColumnFilterValue: function getColumnFilterValue(columnId) {
2284
- var _instance$getState$co, _instance$getState$co2;
2285
-
2286
- return (_instance$getState$co = instance.getState().columnFilters) == null ? void 0 : (_instance$getState$co2 = _instance$getState$co.find(function (d) {
2287
- return d.id === columnId;
2288
- })) == null ? void 0 : _instance$getState$co2.value;
2289
- },
2290
- getColumnFilterIndex: function getColumnFilterIndex(columnId) {
2291
- var _instance$getState$co3, _instance$getState$co4;
2292
-
2293
- return (_instance$getState$co3 = (_instance$getState$co4 = instance.getState().columnFilters) == null ? void 0 : _instance$getState$co4.findIndex(function (d) {
2294
- return d.id === columnId;
2295
- })) != null ? _instance$getState$co3 : -1;
2296
- },
2297
- setColumnFilterValue: function setColumnFilterValue(columnId, value) {
2298
- if (!columnId) return;
2299
- instance.setColumnFilters(function (old) {
2300
- var column = instance.getColumn(columnId);
2301
-
2302
- if (!column) {
2303
- if (process.env.NODE_ENV !== 'production') {
2304
- console.warn("React-Table: Could not find a column with id: " + columnId);
2305
- }
2306
-
2307
- throw new Error();
2308
- }
2309
-
2310
- var filterFn = instance.getColumnFilterFn(column.id);
2311
- var previousfilter = old == null ? void 0 : old.find(function (d) {
2312
- return d.id === columnId;
2313
- });
2314
- var newFilter = functionalUpdate(value, previousfilter ? previousfilter.value : undefined); //
2315
-
2316
- if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {
2317
- var _old$filter;
2318
-
2319
- return (_old$filter = old == null ? void 0 : old.filter(function (d) {
2320
- return d.id !== columnId;
2321
- })) != null ? _old$filter : [];
2322
- }
2323
-
2324
- var newFilterObj = {
2325
- id: columnId,
2326
- value: newFilter
2327
- };
2328
-
2329
- if (previousfilter) {
2330
- var _old$map;
2331
-
2332
- return (_old$map = old == null ? void 0 : old.map(function (d) {
2333
- if (d.id === columnId) {
2334
- return newFilterObj;
2335
- }
2336
-
2337
- return d;
2338
- })) != null ? _old$map : [];
2339
- }
2340
-
2341
- if (old != null && old.length) {
2342
- return [].concat(old, [newFilterObj]);
2343
- }
2344
-
2345
- return [newFilterObj];
2346
- });
2347
- },
2348
- resetColumnFilters: function resetColumnFilters() {
2349
- var _instance$options$ini, _instance$options2, _instance$options2$in;
2350
-
2351
- instance.setColumnFilters((_instance$options$ini = (_instance$options2 = instance.options) == null ? void 0 : (_instance$options2$in = _instance$options2.initialState) == null ? void 0 : _instance$options2$in.columnFilters) != null ? _instance$options$ini : []);
2352
- },
2353
- getColumnFilteredRowModel: memo(function () {
2354
- return [instance.getState().columnFilters, instance.getCoreRowModel(), instance.options.columnFilterRowsFn];
2355
- }, function (columnFilters, rowModel, columnFiltersFn) {
2356
- var columnFilteredRowModel = function () {
2357
- if (!(columnFilters != null && columnFilters.length) || !columnFiltersFn) {
2358
- return rowModel;
2359
- }
2360
-
2361
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Column Filtering...');
2362
- return columnFiltersFn(instance, rowModel);
2363
- }(); // Now that each filtered column has it's partially filtered rows,
2364
- // lets assign the final filtered rows to all of the other columns
2365
-
2366
-
2367
- var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
2368
- var _instance$getState$co5;
2369
-
2370
- return !((_instance$getState$co5 = instance.getState().columnFilters) != null && _instance$getState$co5.find(function (d) {
2371
- return d.id === column.id;
2372
- }));
2373
- }); // This essentially enables faceted filter options to be built easily
2374
- // using every column's preFilteredRows value
2375
-
2376
- nonFilteredColumns.forEach(function (column) {
2377
- column.getPreFilteredRows = function () {
2378
- return columnFilteredRowModel.rows;
2379
- };
2380
- });
2381
- return columnFilteredRowModel;
2382
- }, {
2383
- key: 'getColumnFilteredRowModel',
2384
- debug: instance.options.debug
2385
- }),
2386
- // These might be easier to remember than "column" filtered rows
2387
- getPreFilteredRowModel: function getPreFilteredRowModel() {
2388
- return instance.getCoreRowModel();
2389
- },
2390
- getPreFilteredRows: function getPreFilteredRows() {
2391
- return instance.getCoreRowModel().rows;
2392
- },
2393
- getPreFilteredFlatRows: function getPreFilteredFlatRows() {
2394
- return instance.getCoreRowModel().flatRows;
2395
- },
2396
- getPreFilteredRowsById: function getPreFilteredRowsById() {
2397
- return instance.getCoreRowModel().rowsById;
2398
- },
2399
- // Pre Column Filter
2400
- getPreColumnFilteredRows: function getPreColumnFilteredRows() {
2401
- return instance.getCoreRowModel().rows;
2402
- },
2403
- getPreColumnFilteredFlatRows: function getPreColumnFilteredFlatRows() {
2404
- return instance.getCoreRowModel().flatRows;
2405
- },
2406
- getPreColumnFilteredRowsById: function getPreColumnFilteredRowsById() {
2407
- return instance.getCoreRowModel().rowsById;
2408
- },
2409
- getColumnFilteredRows: function getColumnFilteredRows() {
2410
- return instance.getColumnFilteredRowModel().rows;
2411
- },
2412
- getColumnFilteredFlatRows: function getColumnFilteredFlatRows() {
2413
- return instance.getColumnFilteredRowModel().flatRows;
2414
- },
2415
- getColumnFilteredRowsById: function getColumnFilteredRowsById() {
2416
- return instance.getColumnFilteredRowModel().rowsById;
2417
- },
2418
- getGlobalFilteredRowModel: memo(function () {
2419
- return [instance.getState().globalFilter, instance.getColumnFilteredRowModel(), instance.options.globalFilterRowsFn];
2420
- }, function (globalFilterValue, columnFilteredRowModel, globalFiltersFn) {
2421
- var globalFilteredRowModel = function () {
2422
- if (!globalFiltersFn || !globalFilterValue) {
2423
- return columnFilteredRowModel;
2424
- }
2425
-
2426
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Global Filtering...');
2427
- return globalFiltersFn(instance, columnFilteredRowModel);
2428
- }(); // Now that each filtered column has it's partially filtered rows,
2429
- // lets assign the final filtered rows to all of the other columns
2430
-
2431
-
2432
- var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
2433
- var _instance$getState$co6;
2434
-
2435
- return !((_instance$getState$co6 = instance.getState().columnFilters) != null && _instance$getState$co6.find(function (d) {
2436
- return d.id === column.id;
2437
- }));
2438
- }); // This essentially enables faceted filter options to be built easily
2439
- // using every column's preFilteredRows value
2440
-
2441
- nonFilteredColumns.forEach(function (column) {
2442
- column.getPreFilteredRows = function () {
2443
- return globalFilteredRowModel.rows;
2444
- };
2445
- });
2446
- return globalFilteredRowModel;
2447
- }, {
2448
- key: 'getGlobalFilteredRowModel',
2449
- debug: instance.options.debug,
2450
- onChange: function onChange() {
2451
- return instance._notifySortingReset();
2452
- }
2453
- }),
2454
- getPreGlobalFilteredRows: function getPreGlobalFilteredRows() {
2455
- return instance.getColumnFilteredRowModel().rows;
2456
- },
2457
- getPreGlobalFilteredFlatRows: function getPreGlobalFilteredFlatRows() {
2458
- return instance.getColumnFilteredRowModel().flatRows;
2459
- },
2460
- getPreGlobalFilteredRowsById: function getPreGlobalFilteredRowsById() {
2461
- return instance.getColumnFilteredRowModel().rowsById;
2462
- },
2463
- getGlobalFilteredRows: function getGlobalFilteredRows() {
2464
- return instance.getGlobalFilteredRowModel().rows;
2465
- },
2466
- getGlobalFilteredFlatRows: function getGlobalFilteredFlatRows() {
2467
- return instance.getGlobalFilteredRowModel().flatRows;
2468
- },
2469
- getGlobalFilteredRowsById: function getGlobalFilteredRowsById() {
2470
- return instance.getGlobalFilteredRowModel().rowsById;
2471
- }
2472
- };
2473
- }
2474
- function shouldAutoRemoveFilter(filterFn, value, column) {
2475
- return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;
2476
- }
2477
-
2478
- var Filters = /*#__PURE__*/Object.freeze({
2479
- __proto__: null,
2480
- getDefaultColumn: getDefaultColumn$1,
2481
- getInitialState: getInitialState$5,
2482
- getDefaultOptions: getDefaultOptions$5,
2483
- createColumn: createColumn$2,
2484
- getInstance: getInstance$5,
2485
- shouldAutoRemoveFilter: shouldAutoRemoveFilter
2486
- });
2487
-
2488
- var reSplitAlphaNumeric = /([0-9]+)/gm;
2489
- var sortTypes = {
2490
- alphanumeric: alphanumeric,
2491
- alphanumericCaseSensitive: alphanumericCaseSensitive,
2492
- text: text,
2493
- textCaseSensitive: textCaseSensitive,
2494
- datetime: datetime,
2495
- basic: basic
2496
- };
2497
-
2498
- function alphanumeric(rowA, rowB, columnId) {
2499
- return compareAlphanumeric(toString(rowA.values[columnId]).toLowerCase(), toString(rowB.values[columnId]).toLowerCase());
2500
- }
2501
-
2502
- function alphanumericCaseSensitive(rowA, rowB, columnId) {
2503
- return compareAlphanumeric(toString(rowA.values[columnId]), toString(rowB.values[columnId]));
2504
- } // Mixed sorting is slow, but very inclusive of many edge cases.
2505
- // It handles numbers, mixed alphanumeric combinations, and even
2506
- // null, undefined, and Infinity
2507
-
2508
-
2509
- function compareAlphanumeric(aStr, bStr) {
2510
- // Split on number groups, but keep the delimiter
2511
- // Then remove falsey split values
2512
- var a = aStr.split(reSplitAlphaNumeric).filter(Boolean);
2513
- var b = bStr.split(reSplitAlphaNumeric).filter(Boolean); // While
2514
-
2515
- while (a.length && b.length) {
2516
- var aa = a.shift();
2517
- var bb = b.shift();
2518
- var an = parseInt(aa, 10);
2519
- var bn = parseInt(bb, 10);
2520
- var combo = [an, bn].sort(); // Both are string
2521
-
2522
- if (isNaN(combo[0])) {
2523
- if (aa > bb) {
2524
- return 1;
2525
- }
2526
-
2527
- if (bb > aa) {
2528
- return -1;
2529
- }
2530
-
2531
- continue;
2532
- } // One is a string, one is a number
2533
-
2534
-
2535
- if (isNaN(combo[1])) {
2536
- return isNaN(an) ? -1 : 1;
2537
- } // Both are numbers
2538
-
2539
-
2540
- if (an > bn) {
2541
- return 1;
2542
- }
2543
-
2544
- if (bn > an) {
2545
- return -1;
2546
- }
2547
- }
2548
-
2549
- return a.length - b.length;
2550
- } // The text filter is more basic (less numeric support)
2551
- // but is much faster
2552
-
2553
-
2554
- function text(rowA, rowB, columnId) {
2555
- return compareBasic(toString(rowA.values[columnId]).toLowerCase(), toString(rowB.values[columnId]).toLowerCase());
2556
- } // The text filter is more basic (less numeric support)
2557
- // but is much faster
2558
-
2559
-
2560
- function textCaseSensitive(rowA, rowB, columnId) {
2561
- return compareBasic(toString(rowA.values[columnId]), toString(rowB.values[columnId]));
2562
- }
2563
-
2564
- function datetime(rowA, rowB, columnId) {
2565
- return compareBasic(rowA.values[columnId].getTime(), rowB.values[columnId].getTime());
2566
- }
2567
-
2568
- function basic(rowA, rowB, columnId) {
2569
- return compareBasic(rowA.values[columnId], rowB.values[columnId]);
2570
- } // Utils
2571
-
2572
-
2573
- function compareBasic(a, b) {
2574
- return a === b ? 0 : a > b ? 1 : -1;
2575
- }
2576
-
2577
- function toString(a) {
2578
- if (typeof a === 'number') {
2579
- if (isNaN(a) || a === Infinity || a === -Infinity) {
2580
- return '';
2581
- }
2582
-
2583
- return String(a);
2584
- }
2585
-
2586
- if (typeof a === 'string') {
2587
- return a;
2588
- }
2589
-
2590
- return '';
2591
- }
2592
-
2593
- //
2594
- function getDefaultColumn() {
2595
- return {
2596
- sortType: 'auto'
2597
- };
2598
- }
2599
- function getInitialState$4() {
2600
- return {
2601
- sorting: []
2602
- };
2603
- }
2604
- function getDefaultOptions$4(instance) {
2605
- return {
2606
- onSortingChange: makeStateUpdater('sorting', instance),
2607
- autoResetSorting: true,
2608
- isMultiSortEvent: function isMultiSortEvent(e) {
2609
- return e.shiftKey;
2610
- }
2611
- };
2612
- }
2613
- function createColumn$1(column, instance) {
2614
- return {
2615
- sortType: column.sortType,
2616
- getCanSort: function getCanSort() {
2617
- return instance.getColumnCanSort(column.id);
2618
- },
2619
- getCanMultiSort: function getCanMultiSort() {
2620
- return instance.getColumnCanMultiSort(column.id);
2621
- },
2622
- getSortIndex: function getSortIndex() {
2623
- return instance.getColumnSortIndex(column.id);
2624
- },
2625
- getIsSorted: function getIsSorted() {
2626
- return instance.getColumnIsSorted(column.id);
2627
- },
2628
- toggleSorting: function toggleSorting(desc, isMulti) {
2629
- return instance.toggleColumnSorting(column.id, desc, isMulti);
2630
- },
2631
- getToggleSortingProps: function getToggleSortingProps(userProps) {
2632
- return instance.getToggleSortingProps(column.id, userProps);
2633
- }
2634
- };
2635
- }
2636
- function getInstance$4(instance) {
2637
- var registered = false;
2638
- return {
2639
- _notifySortingReset: function _notifySortingReset() {
2640
- if (!registered) {
2641
- registered = true;
2642
- return;
2643
- }
2644
-
2645
- if (instance.options.autoResetAll === false) {
2646
- return;
2647
- }
2648
-
2649
- if (instance.options.autoResetAll === true || instance.options.autoResetSorting) {
2650
- instance.resetSorting();
2651
- }
2652
- },
2653
- getColumnAutoSortingFn: function getColumnAutoSortingFn(columnId) {
2654
- var firstRows = instance.getGlobalFilteredRowModel().flatRows.slice(100);
2655
- var isString = false;
2656
-
2657
- for (var _iterator = _createForOfIteratorHelperLoose(firstRows), _step; !(_step = _iterator()).done;) {
2658
- var row = _step.value;
2659
- var value = row == null ? void 0 : row.values[columnId];
2660
-
2661
- if (Object.prototype.toString.call(value) === '[object Date]') {
2662
- return sortTypes.datetime;
2663
- }
2664
-
2665
- if (typeof value === 'string') {
2666
- isString = true;
2667
-
2668
- if (value.split(reSplitAlphaNumeric).length > 1) {
2669
- return sortTypes.alphanumeric;
2670
- }
2671
- }
2672
- }
2673
-
2674
- if (isString) {
2675
- return sortTypes.text;
2676
- }
2677
-
2678
- return sortTypes.basic;
2679
- },
2680
- getColumnAutoSortDir: function getColumnAutoSortDir(columnId) {
2681
- var firstRow = instance.getGlobalFilteredRowModel().flatRows[0];
2682
- var value = firstRow == null ? void 0 : firstRow.values[columnId];
2683
-
2684
- if (typeof value === 'string') {
2685
- return 'asc';
2686
- }
2687
-
2688
- return 'desc';
2689
- },
2690
- getColumnSortingFn: function getColumnSortingFn(columnId) {
2691
- var _ref;
2692
-
2693
- var column = instance.getColumn(columnId);
2694
- var userSortTypes = instance.options.sortTypes;
2695
-
2696
- if (!column) {
2697
- throw new Error();
2698
- }
2699
-
2700
- return isFunction(column.sortType) ? column.sortType : column.sortType === 'auto' ? instance.getColumnAutoSortingFn(columnId) : (_ref = userSortTypes == null ? void 0 : userSortTypes[column.sortType]) != null ? _ref : sortTypes[column.sortType];
2701
- },
2702
- setSorting: function setSorting(updater) {
2703
- return instance.options.onSortingChange == null ? void 0 : instance.options.onSortingChange(updater, functionalUpdate(updater, instance.getState().sorting));
2704
- },
2705
- toggleColumnSorting: function toggleColumnSorting(columnId, desc, multi) {
2706
- var column = instance.getColumn(columnId);
2707
-
2708
- if (!column) {
2709
- throw new Error();
2710
- } // if (column.columns.length) {
2711
- // column.columns.forEach((c, i) => {
2712
- // if (c.id) {
2713
- // instance.toggleColumnSorting(c.id, undefined, multi || !!i)
2714
- // }
2715
- // })
2716
- // return
2717
- // }
2718
-
2719
-
2720
- instance.setSorting(function (old) {
2721
- var _ref2, _column$sortDescFirst, _instance$options$ena, _instance$options$ena2;
2722
-
2723
- // Find any existing sorting for this column
2724
- var existingSorting = old == null ? void 0 : old.find(function (d) {
2725
- return d.id === columnId;
2726
- });
2727
- var existingIndex = old == null ? void 0 : old.findIndex(function (d) {
2728
- return d.id === columnId;
2729
- });
2730
- var hasDescDefined = typeof desc !== 'undefined' && desc !== null;
2731
- var newSorting = []; // What should we do with this sort action?
2732
-
2733
- var sortAction;
2734
-
2735
- if (column.getCanMultiSort() && multi) {
2736
- if (existingSorting) {
2737
- sortAction = 'toggle';
2738
- } else {
2739
- sortAction = 'add';
2740
- }
2741
- } else {
2742
- // Normal mode
2743
- if (old != null && old.length && existingIndex !== old.length - 1) {
2744
- sortAction = 'replace';
2745
- } else if (existingSorting) {
2746
- sortAction = 'toggle';
2747
- } else {
2748
- sortAction = 'replace';
2749
- }
2750
- }
2751
-
2752
- var sortDescFirst = (_ref2 = (_column$sortDescFirst = column.sortDescFirst) != null ? _column$sortDescFirst : instance.options.sortDescFirst) != null ? _ref2 : instance.getColumnAutoSortDir(columnId) === 'desc'; // Handle toggle states that will remove the sorting
2753
-
2754
- if (sortAction === 'toggle' && ( // Must be toggling
2755
- (_instance$options$ena = instance.options.enableSortingRemoval) != null ? _instance$options$ena : true) && // If enableSortRemove, enable in general
2756
- !hasDescDefined && ( // Must not be setting desc
2757
- multi ? (_instance$options$ena2 = instance.options.enableMultiRemove) != null ? _instance$options$ena2 : true : true) && ( // If multi, don't allow if enableMultiRemove
2758
- existingSorting != null && existingSorting.desc // Finally, detect if it should indeed be removed
2759
- ? !sortDescFirst : sortDescFirst)) {
2760
- sortAction = 'remove';
2761
- }
2762
-
2763
- if (sortAction === 'replace') {
2764
- newSorting = [{
2765
- id: columnId,
2766
- desc: hasDescDefined ? desc : !!sortDescFirst
2767
- }];
2768
- } else if (sortAction === 'add' && old != null && old.length) {
2769
- var _instance$options$max;
2770
-
2771
- newSorting = [].concat(old, [{
2772
- id: columnId,
2773
- desc: hasDescDefined ? desc : !!sortDescFirst
2774
- }]); // Take latest n columns
2775
-
2776
- newSorting.splice(0, newSorting.length - ((_instance$options$max = instance.options.maxMultiSortColCount) != null ? _instance$options$max : Number.MAX_SAFE_INTEGER));
2777
- } else if (sortAction === 'toggle' && old != null && old.length) {
2778
- // This flips (or sets) the
2779
- newSorting = old.map(function (d) {
2780
- if (d.id === columnId) {
2781
- return _extends({}, d, {
2782
- desc: hasDescDefined ? desc : !(existingSorting != null && existingSorting.desc)
2783
- });
2784
- }
2785
-
2786
- return d;
2787
- });
2788
- } else if (sortAction === 'remove' && old != null && old.length) {
2789
- newSorting = old.filter(function (d) {
2790
- return d.id !== columnId;
2791
- });
2792
- }
2793
-
2794
- return newSorting;
2795
- });
2796
- },
2797
- getColumnCanSort: function getColumnCanSort(columnId) {
2798
- var _ref3, _ref4, _column$enableSorting;
2799
-
2800
- var column = instance.getColumn(columnId);
2801
-
2802
- if (!column) {
2803
- throw new Error();
2804
- }
2805
-
2806
- return (_ref3 = (_ref4 = (_column$enableSorting = column.enableSorting) != null ? _column$enableSorting : instance.options.enableSorting) != null ? _ref4 : column.defaultCanSort) != null ? _ref3 : !!column.accessorFn // (!!column.accessorFn ||
2807
- // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??
2808
- // false
2809
- ;
2810
- },
2811
- getColumnCanMultiSort: function getColumnCanMultiSort(columnId) {
2812
- var _ref5, _column$enableMultiSo;
2813
-
2814
- var column = instance.getColumn(columnId);
2815
-
2816
- if (!column) {
2817
- throw new Error();
2818
- }
2819
-
2820
- return (_ref5 = (_column$enableMultiSo = column.enableMultiSort) != null ? _column$enableMultiSo : instance.options.enableMultiSort) != null ? _ref5 : !!column.accessorFn;
2821
- },
2822
- getColumnIsSorted: function getColumnIsSorted(columnId) {
2823
- var _instance$getState$so;
2824
-
2825
- var columnSort = (_instance$getState$so = instance.getState().sorting) == null ? void 0 : _instance$getState$so.find(function (d) {
2826
- return d.id === columnId;
2827
- });
2828
- return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';
2829
- },
2830
- getColumnSortIndex: function getColumnSortIndex(columnId) {
2831
- var _instance$getState$so2, _instance$getState$so3;
2832
-
2833
- return (_instance$getState$so2 = (_instance$getState$so3 = instance.getState().sorting) == null ? void 0 : _instance$getState$so3.findIndex(function (d) {
2834
- return d.id === columnId;
2835
- })) != null ? _instance$getState$so2 : -1;
2836
- },
2837
- resetSorting: function resetSorting() {
2838
- var _instance$options$ini, _instance$options, _instance$options$ini2;
2839
-
2840
- instance.setSorting((_instance$options$ini = (_instance$options = instance.options) == null ? void 0 : (_instance$options$ini2 = _instance$options.initialState) == null ? void 0 : _instance$options$ini2.sorting) != null ? _instance$options$ini : []);
2841
- },
2842
- getToggleSortingProps: function getToggleSortingProps(columnId, userProps) {
2843
- var column = instance.getColumn(columnId);
2844
-
2845
- if (!column) {
2846
- throw new Error();
2847
- }
2848
-
2849
- var canSort = column.getCanSort();
2850
- var initialProps = {
2851
- title: canSort ? 'Toggle Sorting' : undefined,
2852
- onClick: canSort ? function (e) {
2853
- e.persist();
2854
- column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? instance.options.isMultiSortEvent == null ? void 0 : instance.options.isMultiSortEvent(e) : false);
2855
- } : undefined
2856
- };
2857
- return propGetter(initialProps, userProps);
2858
- },
2859
- getSortedRowModel: memo(function () {
2860
- return [instance.getState().sorting, instance.getGlobalFilteredRowModel(), instance.options.sortRowsFn];
2861
- }, function (sorting, rowModel, sortingFn) {
2862
- if (!sortingFn || !(sorting != null && sorting.length)) {
2863
- return rowModel;
2864
- }
2865
-
2866
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Sorting...');
2867
- return sortingFn(instance, rowModel);
2868
- }, {
2869
- key: 'getSortedRowModel',
2870
- debug: instance.options.debug,
2871
- onChange: function onChange() {
2872
- return instance._notifyGroupingReset();
2873
- }
2874
- }),
2875
- getPreSortedRows: function getPreSortedRows() {
2876
- return instance.getGlobalFilteredRowModel().rows;
2877
- },
2878
- getPreSortedFlatRows: function getPreSortedFlatRows() {
2879
- return instance.getGlobalFilteredRowModel().flatRows;
2880
- },
2881
- getPreSortedRowsById: function getPreSortedRowsById() {
2882
- return instance.getGlobalFilteredRowModel().rowsById;
2883
- },
2884
- getSortedRows: function getSortedRows() {
2885
- return instance.getSortedRowModel().rows;
2886
- },
2887
- getSortedFlatRows: function getSortedFlatRows() {
2888
- return instance.getSortedRowModel().flatRows;
2889
- },
2890
- getSortedRowsById: function getSortedRowsById() {
2891
- return instance.getSortedRowModel().rowsById;
2892
- }
2893
- };
2894
- }
2895
-
2896
- var Sorting = /*#__PURE__*/Object.freeze({
2897
- __proto__: null,
2898
- getDefaultColumn: getDefaultColumn,
2899
- getInitialState: getInitialState$4,
2900
- getDefaultOptions: getDefaultOptions$4,
2901
- createColumn: createColumn$1,
2902
- getInstance: getInstance$4
2903
- });
2904
-
2905
- //
2906
- function getInitialState$3() {
2907
- return {
2908
- expanded: {}
2909
- };
2910
- }
2911
- function getDefaultOptions$3(instance) {
2912
- return {
2913
- onExpandedChange: makeStateUpdater('expanded', instance),
2914
- autoResetExpanded: true,
2915
- getIsRowExpanded: function getIsRowExpanded(row) {
2916
- return !!(row == null ? void 0 : row.original).expanded;
2917
- },
2918
- expandSubRows: true,
2919
- paginateExpandedRows: true
2920
- };
2921
- }
2922
- function getInstance$3(instance) {
2923
- var registered = false;
2924
- return {
2925
- _notifyExpandedReset: function _notifyExpandedReset() {
2926
- if (!registered) {
2927
- registered = true;
2928
- return;
2929
- }
2930
-
2931
- if (instance.options.autoResetAll === false) {
2932
- return;
2933
- }
2934
-
2935
- if (instance.options.autoResetAll === true || instance.options.autoResetExpanded) {
2936
- instance.resetExpanded();
2937
- }
2938
- },
2939
- setExpanded: function setExpanded(updater) {
2940
- return instance.options.onExpandedChange == null ? void 0 : instance.options.onExpandedChange(updater, functionalUpdate(updater, instance.getState().expanded));
2941
- },
2942
- toggleRowExpanded: function toggleRowExpanded(rowId, expanded) {
2943
- if (!rowId) return;
2944
- instance.setExpanded(function (old) {
2945
- var _old, _expanded;
2946
-
2947
- if (old === void 0) {
2948
- old = {};
2949
- }
2950
-
2951
- var exists = old === true ? true : !!((_old = old) != null && _old[rowId]);
2952
- var oldExpanded = {};
2953
-
2954
- if (old === true) {
2955
- Object.keys(instance.getRowsById()).forEach(function (rowId) {
2956
- oldExpanded[rowId] = true;
2957
- });
2958
- } else {
2959
- oldExpanded = old;
2960
- }
2961
-
2962
- expanded = (_expanded = expanded) != null ? _expanded : !exists;
2963
-
2964
- if (!exists && expanded) {
2965
- var _extends2;
2966
-
2967
- return _extends({}, oldExpanded, (_extends2 = {}, _extends2[rowId] = true, _extends2));
2968
- }
2969
-
2970
- if (exists && !expanded) {
2971
- var _oldExpanded = oldExpanded;
2972
- _oldExpanded[rowId];
2973
- var rest = _objectWithoutPropertiesLoose(_oldExpanded, [rowId].map(_toPropertyKey));
2974
-
2975
- return rest;
2976
- }
2977
-
2978
- return old;
2979
- });
2980
- },
2981
- toggleAllRowsExpanded: function toggleAllRowsExpanded(expanded) {
2982
- if (expanded != null ? expanded : !instance.getIsAllRowsExpanded()) {
2983
- instance.setExpanded(true);
2984
- } else {
2985
- instance.setExpanded({});
2986
- }
2987
- },
2988
- resetExpanded: function resetExpanded() {
2989
- var _instance$options$ini, _instance$options, _instance$options$ini2;
2990
-
2991
- instance.setExpanded((_instance$options$ini = (_instance$options = instance.options) == null ? void 0 : (_instance$options$ini2 = _instance$options.initialState) == null ? void 0 : _instance$options$ini2.expanded) != null ? _instance$options$ini : {});
2992
- },
2993
- getIsRowExpanded: function getIsRowExpanded(rowId) {
2994
- var _instance$options$get;
2995
-
2996
- var row = instance.getRow(rowId);
2997
-
2998
- if (!row) {
2999
- if (process.env.NODE_ENV !== 'production') {
3000
- console.warn("[ReactTable] getIsRowExpanded: no row found with id " + rowId);
3001
- }
3002
-
3003
- throw new Error();
3004
- }
3005
-
3006
- var expanded = instance.getState().expanded;
3007
- return !!((_instance$options$get = instance.options.getIsRowExpanded == null ? void 0 : instance.options.getIsRowExpanded(row)) != null ? _instance$options$get : expanded || (expanded == null ? void 0 : expanded[rowId]));
3008
- },
3009
- getRowCanExpand: function getRowCanExpand(rowId) {
3010
- var _ref, _ref2, _instance$options$get2, _row$subRows;
3011
-
3012
- var row = instance.getRow(rowId);
3013
-
3014
- if (!row) {
3015
- if (process.env.NODE_ENV !== 'production') {
3016
- console.warn("[ReactTable] getRowCanExpand: no row found with id " + rowId);
3017
- }
3018
-
3019
- throw new Error();
3020
- }
3021
-
3022
- return (_ref = (_ref2 = (_instance$options$get2 = instance.options.getRowCanExpand == null ? void 0 : instance.options.getRowCanExpand(row)) != null ? _instance$options$get2 : instance.options.enableExpanded) != null ? _ref2 : instance.options.defaultCanExpand) != null ? _ref : !!((_row$subRows = row.subRows) != null && _row$subRows.length);
3023
- },
3024
- getToggleExpandedProps: function getToggleExpandedProps(rowId, userProps) {
3025
- var row = instance.getRow(rowId);
3026
-
3027
- if (!row) {
3028
- return;
3029
- }
3030
-
3031
- var canExpand = instance.getRowCanExpand(rowId);
3032
- var initialProps = {
3033
- title: canExpand ? 'Toggle Expanded' : undefined,
3034
- onClick: canExpand ? function (e) {
3035
- e.persist();
3036
- instance.toggleRowExpanded(rowId);
3037
- } : undefined
3038
- };
3039
- return propGetter(initialProps, userProps);
3040
- },
3041
- getToggleAllRowsExpandedProps: function getToggleAllRowsExpandedProps(userProps) {
3042
- var initialProps = {
3043
- title: 'Toggle All Expanded',
3044
- onClick: function onClick(e) {
3045
- e.persist();
3046
- instance.toggleAllRowsExpanded();
3047
- }
3048
- };
3049
- return propGetter(initialProps, userProps);
3050
- },
3051
- getIsAllRowsExpanded: function getIsAllRowsExpanded() {
3052
- var expanded = instance.getState().expanded; // If expanded is true, save some cycles and return true
3053
-
3054
- if (expanded === true) {
3055
- return true;
3056
- } // If any row is not expanded, return false
3057
-
3058
-
3059
- if (Object.keys(instance.getRowsById()).some(function (id) {
3060
- return !instance.getIsRowExpanded(id);
3061
- })) {
3062
- return false;
3063
- } // They must all be expanded :shrug:
3064
-
3065
-
3066
- return true;
3067
- },
3068
- getExpandedDepth: function getExpandedDepth() {
3069
- var maxDepth = 0;
3070
- var rowIds = instance.getState().expanded === true ? Object.keys(instance.getRowsById()) : Object.keys(instance.getState().expanded);
3071
- rowIds.forEach(function (id) {
3072
- var splitId = id.split('.');
3073
- maxDepth = Math.max(maxDepth, splitId.length);
3074
- });
3075
- return maxDepth;
3076
- },
3077
- getExpandedRowModel: memo(function () {
3078
- return [instance.getState().expanded, instance.getGroupedRowModel(), instance.options.expandRowsFn, instance.options.paginateExpandedRows];
3079
- }, function (expanded, rowModel, expandRowsFn, paginateExpandedRows) {
3080
- if (!expandRowsFn || // Do not expand if rows are not included in pagination
3081
- !paginateExpandedRows || !Object.keys(expanded != null ? expanded : {}).length) {
3082
- return rowModel;
3083
- }
3084
-
3085
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Expanding...');
3086
- return expandRowsFn(instance, rowModel);
3087
- }, {
3088
- key: 'getExpandedRowModel',
3089
- debug: instance.options.debug,
3090
- onChange: function onChange() {
3091
- return instance._notifyPageIndexReset();
3092
- }
3093
- }),
3094
- getPreExpandedRows: function getPreExpandedRows() {
3095
- return instance.getGroupedRowModel().rows;
3096
- },
3097
- getPreExpandedFlatRows: function getPreExpandedFlatRows() {
3098
- return instance.getGroupedRowModel().flatRows;
3099
- },
3100
- getPreExpandedRowsById: function getPreExpandedRowsById() {
3101
- return instance.getGroupedRowModel().rowsById;
3102
- },
3103
- getExpandedRows: function getExpandedRows() {
3104
- return instance.getExpandedRowModel().rows;
3105
- },
3106
- getExpandedFlatRows: function getExpandedFlatRows() {
3107
- return instance.getExpandedRowModel().flatRows;
3108
- },
3109
- getExpandedRowsById: function getExpandedRowsById() {
3110
- return instance.getExpandedRowModel().rowsById;
3111
- }
3112
- };
3113
- }
3114
- function createRow$1(row, instance) {
3115
- return {
3116
- toggleExpanded: function toggleExpanded(expanded) {
3117
- return void instance.toggleRowExpanded(row.id, expanded);
3118
- },
3119
- getIsExpanded: function getIsExpanded() {
3120
- return instance.getIsRowExpanded(row.id);
3121
- },
3122
- getCanExpand: function getCanExpand() {
3123
- return row.subRows && !!row.subRows.length;
3124
- },
3125
- getToggleExpandedProps: function getToggleExpandedProps(userProps) {
3126
- var initialProps = {
3127
- title: 'Toggle Row Expanded',
3128
- onClick: function onClick(e) {
3129
- e.stopPropagation();
3130
- instance.toggleRowExpanded(row.id);
3131
- }
3132
- };
3133
- return propGetter(initialProps, userProps);
3134
- }
3135
- };
3136
- }
3137
-
3138
- var Expanding = /*#__PURE__*/Object.freeze({
3139
- __proto__: null,
3140
- getInitialState: getInitialState$3,
3141
- getDefaultOptions: getDefaultOptions$3,
3142
- getInstance: getInstance$3,
3143
- createRow: createRow$1
3144
- });
3145
-
3146
- //
3147
- var defaultColumnSizing = {
3148
- width: 150,
3149
- minWidth: 20,
3150
- maxWidth: Number.MAX_SAFE_INTEGER
3151
- };
3152
- function getInitialState$2() {
3153
- return {
3154
- columnSizing: {},
3155
- columnSizingInfo: {
3156
- startOffset: null,
3157
- startSize: null,
3158
- deltaOffset: null,
3159
- deltaPercentage: null,
3160
- isResizingColumn: false,
3161
- columnSizingStart: []
3162
- }
3163
- };
3164
- }
3165
- function getDefaultOptions$2(instance) {
3166
- return {
3167
- columnResizeMode: 'onEnd',
3168
- onColumnSizingChange: makeStateUpdater('columnSizing', instance),
3169
- onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance)
3170
- };
3171
- }
3172
- function getInstance$2(instance) {
3173
- return {
3174
- setColumnSizing: function setColumnSizing(updater) {
3175
- return instance.options.onColumnSizingChange == null ? void 0 : instance.options.onColumnSizingChange(updater, functionalUpdate(updater, instance.getState().columnSizing));
3176
- },
3177
- setColumnSizingInfo: function setColumnSizingInfo(updater) {
3178
- return instance.options.onColumnSizingInfoChange == null ? void 0 : instance.options.onColumnSizingInfoChange(updater, functionalUpdate(updater, instance.getState().columnSizingInfo));
3179
- },
3180
- resetColumnSizing: function resetColumnSizing() {
3181
- var _instance$initialStat;
3182
-
3183
- instance.setColumnSizing((_instance$initialStat = instance.initialState.columnSizing) != null ? _instance$initialStat : {});
3184
- },
3185
- resetHeaderSizeInfo: function resetHeaderSizeInfo() {
3186
- var _instance$initialStat2;
3187
-
3188
- instance.setColumnSizingInfo((_instance$initialStat2 = instance.initialState.columnSizingInfo) != null ? _instance$initialStat2 : {});
3189
- },
3190
- resetColumnSize: function resetColumnSize(columnId) {
3191
- instance.setColumnSizing(function (_ref) {
3192
- _ref[columnId];
3193
- var rest = _objectWithoutPropertiesLoose(_ref, [columnId].map(_toPropertyKey));
3194
-
3195
- return rest;
3196
- });
3197
- },
3198
- resetHeaderSize: function resetHeaderSize(headerId) {
3199
- var header = instance.getHeader(headerId);
3200
-
3201
- if (!header) {
3202
- return;
3203
- }
3204
-
3205
- return instance.resetColumnSize(header.column.id);
3206
- },
3207
- getHeaderCanResize: function getHeaderCanResize(headerId) {
3208
- var header = instance.getHeader(headerId);
3209
-
3210
- if (!header) {
3211
- throw new Error();
3212
- }
3213
-
3214
- return instance.getColumnCanResize(header.column.id);
3215
- },
3216
- getColumnCanResize: function getColumnCanResize(columnId) {
3217
- var _ref2, _ref3, _column$enableResizin;
3218
-
3219
- var column = instance.getColumn(columnId);
3220
-
3221
- if (!column) {
3222
- throw new Error();
3223
- }
3224
-
3225
- return (_ref2 = (_ref3 = (_column$enableResizin = column.enableResizing) != null ? _column$enableResizin : instance.options.enableColumnResizing) != null ? _ref3 : column.defaultCanResize) != null ? _ref2 : true;
3226
- },
3227
- getColumnIsResizing: function getColumnIsResizing(columnId) {
3228
- var column = instance.getColumn(columnId);
3229
-
3230
- if (!column) {
3231
- throw new Error();
3232
- }
3233
-
3234
- return instance.getState().columnSizingInfo.isResizingColumn === columnId;
3235
- },
3236
- getHeaderIsResizing: function getHeaderIsResizing(headerId) {
3237
- var header = instance.getHeader(headerId);
3238
-
3239
- if (!header) {
3240
- throw new Error();
3241
- }
3242
-
3243
- return instance.getColumnIsResizing(header.column.id);
3244
- },
3245
- getColumnResizerProps: function getColumnResizerProps(headerId, userProps) {
3246
- var header = instance.getHeader(headerId);
3247
-
3248
- if (!header) {
3249
- return;
3250
- }
3251
-
3252
- var column = instance.getColumn(header.column.id);
3253
-
3254
- if (!column) {
3255
- return;
3256
- }
3257
-
3258
- var canResize = column.getCanResize();
3259
-
3260
- var onResizeStart = function onResizeStart(e) {
3261
- if (isTouchStartEvent(e)) {
3262
- // lets not respond to multiple touches (e.g. 2 or 3 fingers)
3263
- if (e.touches && e.touches.length > 1) {
3264
- return;
3265
- }
3266
- }
3267
-
3268
- var columnSizingStart = header.getLeafHeaders().map(function (d) {
3269
- return [d.column.id, d.getWidth()];
3270
- });
3271
- var clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;
3272
-
3273
- var updateOffset = function updateOffset(eventType, clientXPos) {
3274
- if (typeof clientXPos !== 'number') {
3275
- return;
3276
- }
3277
-
3278
- var newColumnSizing = {};
3279
- instance.setColumnSizingInfo(function (old) {
3280
- var _old$startOffset, _old$startSize;
3281
-
3282
- var deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);
3283
- var deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);
3284
- old.columnSizingStart.forEach(function (_ref4) {
3285
- var columnId = _ref4[0],
3286
- headerWidth = _ref4[1];
3287
- newColumnSizing[columnId] = Math.max(headerWidth + headerWidth * deltaPercentage, 0);
3288
- });
3289
- return _extends({}, old, {
3290
- deltaOffset: deltaOffset,
3291
- deltaPercentage: deltaPercentage
3292
- });
3293
- });
3294
-
3295
- if (instance.options.columnResizeMode === 'onChange' || eventType === 'end') {
3296
- instance.setColumnSizing(function (old) {
3297
- return _extends({}, old, newColumnSizing);
3298
- });
3299
- }
3300
- };
3301
-
3302
- var onMove = function onMove(clientXPos) {
3303
- return updateOffset('move', clientXPos);
3304
- };
3305
-
3306
- var onEnd = function onEnd(clientXPos) {
3307
- updateOffset('end', clientXPos);
3308
- instance.setColumnSizingInfo(function (old) {
3309
- return _extends({}, old, {
3310
- isResizingColumn: false,
3311
- startOffset: null,
3312
- startSize: null,
3313
- deltaOffset: null,
3314
- deltaPercentage: null,
3315
- columnSizingStart: []
3316
- });
3317
- });
3318
- };
3319
-
3320
- var mouseEvents = {
3321
- moveHandler: function moveHandler(e) {
3322
- return onMove(e.clientX);
3323
- },
3324
- upHandler: function upHandler(e) {
3325
- document.removeEventListener('mousemove', mouseEvents.moveHandler);
3326
- document.removeEventListener('mouseup', mouseEvents.upHandler);
3327
- onEnd(e.clientX);
3328
- }
3329
- };
3330
- var touchEvents = {
3331
- moveHandler: function moveHandler(e) {
3332
- if (e.cancelable) {
3333
- e.preventDefault();
3334
- e.stopPropagation();
3335
- }
3336
-
3337
- onMove(e.touches[0].clientX);
3338
- return false;
3339
- },
3340
- upHandler: function upHandler(e) {
3341
- document.removeEventListener('touchmove', touchEvents.moveHandler);
3342
- document.removeEventListener('touchend', touchEvents.upHandler);
3343
-
3344
- if (e.cancelable) {
3345
- e.preventDefault();
3346
- e.stopPropagation();
3347
- }
3348
-
3349
- onEnd(e.touches[0].clientX);
3350
- }
3351
- };
3352
- var passiveIfSupported = passiveEventSupported() ? {
3353
- passive: false
3354
- } : false;
3355
-
3356
- if (isTouchStartEvent(e)) {
3357
- document.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);
3358
- document.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);
3359
- } else {
3360
- document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);
3361
- document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);
3362
- }
3363
-
3364
- instance.setColumnSizingInfo(function (old) {
3365
- return _extends({}, old, {
3366
- startOffset: clientX,
3367
- startSize: header.getWidth(),
3368
- deltaOffset: 0,
3369
- deltaPercentage: 0,
3370
- columnSizingStart: columnSizingStart,
3371
- isResizingColumn: header.column.id
3372
- });
3373
- });
3374
- };
3375
-
3376
- var initialProps = canResize ? {
3377
- title: 'Toggle Grouping',
3378
- draggable: false,
3379
- role: 'separator',
3380
- onMouseDown: function onMouseDown(e) {
3381
- e.persist();
3382
- onResizeStart(e);
3383
- },
3384
- onTouchStart: function onTouchStart(e) {
3385
- e.persist();
3386
- onResizeStart(e);
3387
- }
3388
- } : {};
3389
- return propGetter(initialProps, userProps);
3390
- }
3391
- };
3392
- }
3393
- function createColumn(column, instance) {
3394
- return {
3395
- getIsResizing: function getIsResizing() {
3396
- return instance.getColumnIsResizing(column.id);
3397
- },
3398
- getCanResize: function getCanResize() {
3399
- return instance.getColumnCanResize(column.id);
3400
- },
3401
- resetSize: function resetSize() {
3402
- return instance.resetColumnSize(column.id);
3403
- },
3404
- getResizerProps: function getResizerProps(userProps) {
3405
- return instance.getColumnResizerProps(column.id, userProps);
3406
- }
3407
- };
3408
- }
3409
- var passiveSupported = null;
3410
- function passiveEventSupported() {
3411
- if (typeof passiveSupported === 'boolean') return passiveSupported;
3412
- var supported = false;
3413
-
3414
- try {
3415
- var options = {
3416
- get passive() {
3417
- supported = true;
3418
- return false;
3419
- }
3420
-
3421
- };
3422
-
3423
- var noop = function noop() {};
3424
-
3425
- window.addEventListener('test', noop, options);
3426
- window.removeEventListener('test', noop);
3427
- } catch (err) {
3428
- supported = false;
3429
- }
3430
-
3431
- passiveSupported = supported;
3432
- return passiveSupported;
3433
- }
3434
-
3435
- function isTouchStartEvent(e) {
3436
- return e.type === 'touchstart';
3437
- }
3438
-
3439
- var ColumnSizing = /*#__PURE__*/Object.freeze({
3440
- __proto__: null,
3441
- defaultColumnSizing: defaultColumnSizing,
3442
- getInitialState: getInitialState$2,
3443
- getDefaultOptions: getDefaultOptions$2,
3444
- getInstance: getInstance$2,
3445
- createColumn: createColumn,
3446
- passiveEventSupported: passiveEventSupported
3447
- });
3448
-
3449
- //
3450
- function getInitialState$1() {
3451
- return {
3452
- pagination: {
3453
- pageIndex: 0,
3454
- pageSize: 10,
3455
- pageCount: -1
3456
- }
3457
- };
3458
- }
3459
- function getDefaultOptions$1(instance) {
3460
- return {
3461
- onPaginationChange: makeStateUpdater('pagination', instance),
3462
- autoResetPageIndex: true
3463
- };
3464
- }
3465
- function getInstance$1(instance) {
3466
- var registered = false;
3467
- return {
3468
- _notifyPageIndexReset: function _notifyPageIndexReset() {
3469
- if (!registered) {
3470
- registered = true;
3471
- return;
3472
- }
3473
-
3474
- if (instance.options.autoResetAll === false) {
3475
- return;
3476
- }
3477
-
3478
- if (instance.options.autoResetAll === true || instance.options.autoResetPageIndex) {
3479
- instance.resetPageSize();
3480
- }
3481
- },
3482
- setPagination: function setPagination(updater) {
3483
- var safeUpdater = function safeUpdater(old) {
3484
- functionalUpdate(old, updater);
3485
-
3486
- if (!instance.options.paginateRowsFn) {
3487
- var _instance$getPreExpan;
3488
-
3489
- return _extends({}, old, {
3490
- pageCount: (_instance$getPreExpan = instance.getPreExpandedRows()) != null && _instance$getPreExpan.length ? Math.ceil(instance.getPreExpandedRows().length / instance.getState().pagination.pageSize) : 0
3491
- });
3492
- }
3493
-
3494
- return old;
3495
- };
3496
-
3497
- return instance.options.onPaginationChange == null ? void 0 : instance.options.onPaginationChange(safeUpdater, functionalUpdate(safeUpdater, instance.getState().pagination));
3498
- },
3499
- resetPagination: function resetPagination() {
3500
- var _instance$initialStat;
3501
-
3502
- instance.setPagination((_instance$initialStat = instance.initialState.pagination) != null ? _instance$initialStat : {
3503
- pageIndex: 0,
3504
- pageSize: 10,
3505
- pageCount: -1
3506
- });
3507
- },
3508
- setPageIndex: function setPageIndex(updater) {
3509
- instance.setPagination(function (old) {
3510
- var newPageIndex = functionalUpdate(updater, old.pageIndex);
3511
- var maxPageIndex = old.pageCount > 0 ? old.pageCount - 1 : Number.MAX_SAFE_INTEGER;
3512
- return _extends({}, old, {
3513
- pageIndex: Math.min(Math.max(0, newPageIndex), maxPageIndex)
3514
- });
3515
- });
3516
- },
3517
- resetPageIndex: function resetPageIndex() {
3518
- instance.setPageIndex(0);
3519
- },
3520
- resetPageSize: function resetPageSize() {
3521
- var _instance$options$ini, _instance$options$ini2, _instance$options$ini3;
3522
-
3523
- instance.setPageSize((_instance$options$ini = (_instance$options$ini2 = instance.options.initialState) == null ? void 0 : (_instance$options$ini3 = _instance$options$ini2.pagination) == null ? void 0 : _instance$options$ini3.pageSize) != null ? _instance$options$ini : 10);
3524
- },
3525
- setPageSize: function setPageSize(updater) {
3526
- instance.setPagination(function (old) {
3527
- var pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));
3528
- var topRowIndex = old.pageSize * old.pageIndex;
3529
- var pageIndex = Math.floor(topRowIndex / pageSize);
3530
- return _extends({}, old, {
3531
- pageIndex: pageIndex,
3532
- pageSize: pageSize
3533
- });
3534
- });
3535
- },
3536
- setPageCount: function setPageCount(updater) {
3537
- return instance.setPagination(function (old) {
3538
- return _extends({}, old, {
3539
- pageCount: Math.max(-1, functionalUpdate(updater, old.pageCount))
3540
- });
3541
- });
3542
- },
3543
- getPageOptions: memo(function () {
3544
- return [instance.getState().pagination.pageSize, instance.getState().pagination.pageCount];
3545
- }, function (pageSize, pageCount) {
3546
- var pageOptions = [];
3547
-
3548
- if (pageCount > 0) {
3549
- pageOptions = [].concat(new Array(pageCount)).fill(null).map(function (_, i) {
3550
- return i;
3551
- });
3552
- }
3553
-
3554
- return pageOptions;
3555
- }, {
3556
- key: 'getPageOptions',
3557
- debug: instance.options.debug
3558
- }),
3559
- getCanPreviousPage: function getCanPreviousPage() {
3560
- return instance.getState().pagination.pageIndex > 0;
3561
- },
3562
- getCanNextPage: function getCanNextPage() {
3563
- var _instance$getState$pa = instance.getState().pagination,
3564
- pageIndex = _instance$getState$pa.pageIndex,
3565
- pageCount = _instance$getState$pa.pageCount,
3566
- pageSize = _instance$getState$pa.pageSize;
3567
-
3568
- if (pageCount === -1) {
3569
- return true;
3570
- }
3571
-
3572
- if (pageCount === 0) {
3573
- return false;
3574
- }
3575
-
3576
- return pageIndex < Math.ceil(instance.getPrePaginationRows().length / pageSize) - 1;
3577
- },
3578
- gotoPreviousPage: function gotoPreviousPage() {
3579
- return instance.setPageIndex == null ? void 0 : instance.setPageIndex(function (old) {
3580
- return old - 1;
3581
- });
3582
- },
3583
- gotoNextPage: function gotoNextPage() {
3584
- return instance.setPageIndex == null ? void 0 : instance.setPageIndex(function (old) {
3585
- return old + 1;
3586
- });
3587
- },
3588
- getPaginationRowModel: memo(function () {
3589
- return [instance.getState().pagination, instance.getExpandedRowModel(), instance.options.paginateRowsFn];
3590
- }, function (_pagination, rowModel, paginateRowsFn) {
3591
- if (!paginateRowsFn || !rowModel.rows.length) {
3592
- return rowModel;
3593
- }
3594
-
3595
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Paginating...');
3596
- return paginateRowsFn(instance, rowModel);
3597
- }, {
3598
- key: 'getPaginationRowModel',
3599
- debug: instance.options.debug
3600
- }),
3601
- getPrePaginationRows: function getPrePaginationRows() {
3602
- return instance.getExpandedRowModel().rows;
3603
- },
3604
- getPrePaginationFlatRows: function getPrePaginationFlatRows() {
3605
- return instance.getExpandedRowModel().flatRows;
3606
- },
3607
- getPrePaginationRowsById: function getPrePaginationRowsById() {
3608
- return instance.getExpandedRowModel().rowsById;
3609
- },
3610
- getPaginationRows: function getPaginationRows() {
3611
- return instance.getPaginationRowModel().rows;
3612
- },
3613
- getPaginationFlatRows: function getPaginationFlatRows() {
3614
- return instance.getPaginationRowModel().flatRows;
3615
- },
3616
- getPaginationRowsById: function getPaginationRowsById() {
3617
- return instance.getPaginationRowModel().rowsById;
3618
- }
3619
- };
3620
- }
3621
-
3622
- var Pagination = /*#__PURE__*/Object.freeze({
3623
- __proto__: null,
3624
- getInitialState: getInitialState$1,
3625
- getDefaultOptions: getDefaultOptions$1,
3626
- getInstance: getInstance$1
3627
- });
3628
-
3629
- //
3630
- function getInitialState() {
3631
- return {
3632
- rowSelection: {}
3633
- };
3634
- }
3635
- function getDefaultOptions(instance) {
3636
- return {
3637
- onRowSelectionChange: makeStateUpdater('rowSelection', instance),
3638
- autoResetRowSelection: true,
3639
- enableRowSelection: true,
3640
- enableMultiRowSelection: true,
3641
- enableSubRowSelection: true // enableGroupingRowSelection: false,
3642
- // isAdditiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.metaKey,
3643
- // isInclusiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.shiftKey,
3644
-
3645
- };
3646
- }
3647
- function getInstance(instance) {
3648
- var registered = false; // const pageRows = instance.getPageRows()
3649
-
3650
- return {
3651
- _notifyRowSelectionReset: function _notifyRowSelectionReset() {
3652
- if (!registered) {
3653
- registered = true;
3654
- return;
3655
- }
3656
-
3657
- if (instance.options.autoResetAll === false) {
3658
- return;
3659
- }
3660
-
3661
- if (instance.options.autoResetAll === true || instance.options.autoResetRowSelection) {
3662
- instance.resetRowSelection();
3663
- }
3664
- },
3665
- setRowSelection: function setRowSelection(updater) {
3666
- return instance.options.onRowSelectionChange == null ? void 0 : instance.options.onRowSelectionChange(updater, functionalUpdate(updater, instance.getState().rowSelection));
3667
- },
3668
- resetRowSelection: function resetRowSelection() {
3669
- var _getInitialState$rowS;
3670
-
3671
- return instance.setRowSelection((_getInitialState$rowS = getInitialState().rowSelection) != null ? _getInitialState$rowS : {});
3672
- },
3673
- toggleAllRowsSelected: function toggleAllRowsSelected(value) {
3674
- instance.setRowSelection(function (old) {
3675
- value = typeof value !== 'undefined' ? value : !instance.getIsAllRowsSelected(); // Only remove/add the rows that are visible on the screen
3676
- // Leave all the other rows that are selected alone.
3677
-
3678
- var rowSelection = Object.assign({}, old);
3679
- var preGroupedFlatRows = instance.getPreGroupedFlatRows(); // We don't use `mutateRowIsSelected` here for performance reasons.
3680
- // All of the rows are flat already, so it wouldn't be worth it
3681
-
3682
- if (value) {
3683
- preGroupedFlatRows.forEach(function (row) {
3684
- rowSelection[row.id] = true;
3685
- });
3686
- } else {
3687
- preGroupedFlatRows.forEach(function (row) {
3688
- delete rowSelection[row.id];
3689
- });
3690
- }
3691
-
3692
- return rowSelection;
3693
- });
3694
- },
3695
- toggleAllPageRowsSelected: function toggleAllPageRowsSelected(value) {
3696
- return instance.setRowSelection(function (old) {
3697
- typeof value !== 'undefined' ? value : !instance.getIsAllPageRowsSelected();
3698
-
3699
- var rowSelection = _extends({}, old);
3700
-
3701
- instance.getRows().forEach(function (row) {
3702
- mutateRowIsSelected(rowSelection, row.id, value, instance);
3703
- });
3704
- return rowSelection;
3705
- });
3706
- },
3707
- toggleRowSelected: function toggleRowSelected(rowId, value) {
3708
- var row = instance.getRow(rowId);
3709
- var isSelected = row.getIsSelected();
3710
- instance.setRowSelection(function (old) {
3711
- value = typeof value !== 'undefined' ? value : !isSelected;
3712
-
3713
- if (isSelected === value) {
3714
- return old;
3715
- }
3716
-
3717
- var selectedRowIds = _extends({}, old);
3718
-
3719
- mutateRowIsSelected(selectedRowIds, rowId, value, instance);
3720
- return selectedRowIds;
3721
- });
3722
- },
3723
- // addRowSelectionRange: rowId => {
3724
- // const {
3725
- // rows,
3726
- // rowsById,
3727
- // options: { selectGroupingRows, selectSubRows },
3728
- // } = instance
3729
- // const findSelectedRow = (rows: Row[]) => {
3730
- // let found
3731
- // rows.find(d => {
3732
- // if (d.getIsSelected()) {
3733
- // found = d
3734
- // return true
3735
- // }
3736
- // const subFound = findSelectedRow(d.subRows || [])
3737
- // if (subFound) {
3738
- // found = subFound
3739
- // return true
3740
- // }
3741
- // return false
3742
- // })
3743
- // return found
3744
- // }
3745
- // const firstRow = findSelectedRow(rows) || rows[0]
3746
- // const lastRow = rowsById[rowId]
3747
- // let include = false
3748
- // const selectedRowIds = {}
3749
- // const addRow = (row: Row) => {
3750
- // mutateRowIsSelected(selectedRowIds, row.id, true, {
3751
- // rowsById,
3752
- // selectGroupingRows: selectGroupingRows!,
3753
- // selectSubRows: selectSubRows!,
3754
- // })
3755
- // }
3756
- // instance.rows.forEach(row => {
3757
- // const isFirstRow = row.id === firstRow.id
3758
- // const isLastRow = row.id === lastRow.id
3759
- // if (isFirstRow || isLastRow) {
3760
- // if (!include) {
3761
- // include = true
3762
- // } else if (include) {
3763
- // addRow(row)
3764
- // include = false
3765
- // }
3766
- // }
3767
- // if (include) {
3768
- // addRow(row)
3769
- // }
3770
- // })
3771
- // instance.setRowSelection(selectedRowIds)
3772
- // },
3773
- getSelectedRowModel: memo(function () {
3774
- return [instance.getState().rowSelection, instance.getCoreRowModel()];
3775
- }, function (rowSelection, rowModel) {
3776
- if (!Object.keys(rowSelection).length) {
3777
- return {
3778
- rows: [],
3779
- flatRows: [],
3780
- rowsById: {}
3781
- };
3782
- }
3783
-
3784
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Selecting...');
3785
- return selectRowsFn(instance, rowModel);
3786
- }, {
3787
- key: 'getSelectedRowModel',
3788
- debug: instance.options.debug,
3789
- onChange: function onChange() {
3790
- return instance._notifyExpandedReset();
3791
- }
3792
- }),
3793
- getSelectedRows: function getSelectedRows() {
3794
- return instance.getSelectedRowModel().rows;
3795
- },
3796
- getSelectedFlatRows: function getSelectedFlatRows() {
3797
- return instance.getSelectedRowModel().flatRows;
3798
- },
3799
- getSelectedRowsById: function getSelectedRowsById() {
3800
- return instance.getSelectedRowModel().rowsById;
3801
- },
3802
- getFilteredSelectedRowModel: memo(function () {
3803
- return [instance.getState().rowSelection, instance.getGlobalFilteredRowModel()];
3804
- }, function (rowSelection, rowModel) {
3805
- if (!Object.keys(rowSelection).length) {
3806
- return {
3807
- rows: [],
3808
- flatRows: [],
3809
- rowsById: {}
3810
- };
3811
- }
3812
-
3813
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Selecting...');
3814
- return selectRowsFn(instance, rowModel);
3815
- }, {
3816
- key: 'getFilteredSelectedRowModel',
3817
- debug: instance.options.debug,
3818
- onChange: function onChange() {
3819
- return instance._notifyExpandedReset();
3820
- }
3821
- }),
3822
- getFilteredSelectedRows: function getFilteredSelectedRows() {
3823
- return instance.getFilteredSelectedRowModel().rows;
3824
- },
3825
- getFilteredSelectedFlatRows: function getFilteredSelectedFlatRows() {
3826
- return instance.getFilteredSelectedRowModel().flatRows;
3827
- },
3828
- getFilteredSelectedRowsById: function getFilteredSelectedRowsById() {
3829
- return instance.getFilteredSelectedRowModel().rowsById;
3830
- },
3831
- getGroupedSelectedRowModel: memo(function () {
3832
- return [instance.getState().rowSelection, instance.getGroupedRowModel()];
3833
- }, function (rowSelection, rowModel) {
3834
- if (!Object.keys(rowSelection).length) {
3835
- return {
3836
- rows: [],
3837
- flatRows: [],
3838
- rowsById: {}
3839
- };
3840
- }
3841
-
3842
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Selecting...');
3843
- return selectRowsFn(instance, rowModel);
3844
- }, {
3845
- key: 'getGroupedSelectedRowModel',
3846
- debug: instance.options.debug,
3847
- onChange: function onChange() {
3848
- return instance._notifyExpandedReset();
3849
- }
3850
- }),
3851
- getGroupedSelectedRows: function getGroupedSelectedRows() {
3852
- return instance.getGroupedSelectedRowModel().rows;
3853
- },
3854
- getGroupedSelectedFlatRows: function getGroupedSelectedFlatRows() {
3855
- return instance.getGroupedSelectedRowModel().flatRows;
3856
- },
3857
- getGroupedSelectedRowsById: function getGroupedSelectedRowsById() {
3858
- return instance.getGroupedSelectedRowModel().rowsById;
3859
- },
3860
- ///
3861
- getRowIsSelected: function getRowIsSelected(rowId) {
3862
- var _instance$getState = instance.getState(),
3863
- rowSelection = _instance$getState.rowSelection;
3864
-
3865
- var row = instance.getRow(rowId);
3866
-
3867
- if (!row) {
3868
- throw new Error();
3869
- }
3870
-
3871
- return isRowSelected(row, rowSelection) === true;
3872
- },
3873
- getRowIsSomeSelected: function getRowIsSomeSelected(rowId) {
3874
- var _instance$getState2 = instance.getState(),
3875
- rowSelection = _instance$getState2.rowSelection;
3876
-
3877
- var row = instance.getRow(rowId);
3878
-
3879
- if (!row) {
3880
- throw new Error();
3881
- }
3882
-
3883
- return isRowSelected(row, rowSelection) === 'some';
3884
- },
3885
- getRowCanSelect: function getRowCanSelect(rowId) {
3886
- var _instance$options$ena;
3887
-
3888
- var row = instance.getRow(rowId);
3889
-
3890
- if (!row) {
3891
- throw new Error();
3892
- }
3893
-
3894
- if (typeof instance.options.enableRowSelection === 'function') {
3895
- return instance.options.enableRowSelection(row);
3896
- }
3897
-
3898
- return (_instance$options$ena = instance.options.enableRowSelection) != null ? _instance$options$ena : true;
3899
- },
3900
- getRowCanSelectSubRows: function getRowCanSelectSubRows(rowId) {
3901
- var _instance$options$ena2;
3902
-
3903
- var row = instance.getRow(rowId);
3904
-
3905
- if (!row) {
3906
- throw new Error();
3907
- }
3908
-
3909
- if (typeof instance.options.enableSubRowSelection === 'function') {
3910
- return instance.options.enableSubRowSelection(row);
3911
- }
3912
-
3913
- return (_instance$options$ena2 = instance.options.enableSubRowSelection) != null ? _instance$options$ena2 : true;
3914
- },
3915
- getRowCanMultiSelect: function getRowCanMultiSelect(rowId) {
3916
- var _instance$options$ena3;
3917
-
3918
- var row = instance.getRow(rowId);
3919
-
3920
- if (!row) {
3921
- throw new Error();
3922
- }
3923
-
3924
- if (typeof instance.options.enableMultiRowSelection === 'function') {
3925
- return instance.options.enableMultiRowSelection(row);
3926
- }
3927
-
3928
- return (_instance$options$ena3 = instance.options.enableMultiRowSelection) != null ? _instance$options$ena3 : true;
3929
- },
3930
- // getGroupingRowCanSelect: rowId => {
3931
- // const row = instance.getRow(rowId)
3932
- // if (!row) {
3933
- // throw new Error()
3934
- // }
3935
- // if (typeof instance.options.enableGroupingRowSelection === 'function') {
3936
- // return instance.options.enableGroupingRowSelection(row)
3937
- // }
3938
- // return instance.options.enableGroupingRowSelection ?? false
3939
- // },
3940
- getIsAllRowsSelected: function getIsAllRowsSelected() {
3941
- var preFilteredFlatRows = instance.getPreGlobalFilteredFlatRows();
3942
-
3943
- var _instance$getState3 = instance.getState(),
3944
- rowSelection = _instance$getState3.rowSelection;
3945
-
3946
- var isAllRowsSelected = Boolean(preFilteredFlatRows.length && Object.keys(rowSelection).length);
3947
-
3948
- if (isAllRowsSelected) {
3949
- if (preFilteredFlatRows.some(function (row) {
3950
- return !rowSelection[row.id];
3951
- })) {
3952
- isAllRowsSelected = false;
3953
- }
3954
- }
3955
-
3956
- return isAllRowsSelected;
3957
- },
3958
- getIsAllPageRowsSelected: function getIsAllPageRowsSelected() {
3959
- var paginationFlatRows = instance.getPaginationFlatRows();
3960
-
3961
- var _instance$getState4 = instance.getState(),
3962
- rowSelection = _instance$getState4.rowSelection;
3963
-
3964
- var isAllPageRowsSelected = !!paginationFlatRows.length;
3965
-
3966
- if (isAllPageRowsSelected && paginationFlatRows.some(function (row) {
3967
- return !rowSelection[row.id];
3968
- })) {
3969
- isAllPageRowsSelected = false;
3970
- }
3971
-
3972
- return isAllPageRowsSelected;
3973
- },
3974
- getIsSomeRowsSelected: function getIsSomeRowsSelected() {
3975
- var _instance$getState$ro;
3976
-
3977
- return !instance.getIsAllRowsSelected() && !!Object.keys((_instance$getState$ro = instance.getState().rowSelection) != null ? _instance$getState$ro : {}).length;
3978
- },
3979
- getIsSomePageRowsSelected: function getIsSomePageRowsSelected() {
3980
- var paginationFlatRows = instance.getPaginationFlatRows();
3981
- return instance.getIsAllPageRowsSelected() ? false : !!(paginationFlatRows != null && paginationFlatRows.length);
3982
- },
3983
- getToggleRowSelectedProps: function getToggleRowSelectedProps(rowId, userProps) {
3984
- var row = instance.getRow(rowId);
3985
- var isSelected = row.getIsSelected();
3986
- var isSomeSelected = row.getIsSomeSelected();
3987
- var canSelect = row.getCanSelect();
3988
- var initialProps = {
3989
- onChange: canSelect ? function (e) {
3990
- row.toggleSelected(e.target.checked);
3991
- } : undefined,
3992
- checked: isSelected,
3993
- title: 'Toggle Row Selected',
3994
- indeterminate: isSomeSelected // onChange: forInput
3995
- // ? (e: Event) => e.stopPropagation()
3996
- // : (e: Event) => {
3997
- // if (instance.options.isAdditiveSelectEvent(e)) {
3998
- // row.toggleSelected()
3999
- // } else if (instance.options.isInclusiveSelectEvent(e)) {
4000
- // instance.addRowSelectionRange(row.id)
4001
- // } else {
4002
- // instance.setRowSelection({})
4003
- // row.toggleSelected()
4004
- // }
4005
- // if (props.onClick) props.onClick(e)
4006
- // },
4007
-
4008
- };
4009
- return propGetter(initialProps, userProps);
4010
- },
4011
- getToggleAllRowsSelectedProps: function getToggleAllRowsSelectedProps(userProps) {
4012
- var isSomeRowsSelected = instance.getIsSomeRowsSelected();
4013
- var isAllRowsSelected = instance.getIsAllRowsSelected();
4014
- var initialProps = {
4015
- onChange: function onChange(e) {
4016
- instance.toggleAllRowsSelected(e.target.checked);
4017
- },
4018
- checked: isAllRowsSelected,
4019
- title: 'Toggle All Rows Selected',
4020
- indeterminate: isSomeRowsSelected
4021
- };
4022
- return propGetter(initialProps, userProps);
4023
- },
4024
- getToggleAllPageRowsSelectedProps: function getToggleAllPageRowsSelectedProps(userProps) {
4025
- var isSomePageRowsSelected = instance.getIsSomePageRowsSelected();
4026
- var isAllPageRowsSelected = instance.getIsAllPageRowsSelected();
4027
- var initialProps = {
4028
- onChange: function onChange(e) {
4029
- instance.toggleAllPageRowsSelected(e.target.checked);
4030
- },
4031
- checked: isAllPageRowsSelected,
4032
- title: 'Toggle All Current Page Rows Selected',
4033
- indeterminate: isSomePageRowsSelected
4034
- };
4035
- return propGetter(initialProps, userProps);
4036
- }
4037
- };
4038
- }
4039
- function createRow(row, instance) {
4040
- return {
4041
- getIsSelected: function getIsSelected() {
4042
- return instance.getRowIsSelected(row.id);
4043
- },
4044
- getIsSomeSelected: function getIsSomeSelected() {
4045
- return instance.getRowIsSomeSelected(row.id);
4046
- },
4047
- toggleSelected: function toggleSelected(value) {
4048
- return instance.toggleRowSelected(row.id, value);
4049
- },
4050
- getToggleSelectedProps: function getToggleSelectedProps(userProps) {
4051
- return instance.getToggleRowSelectedProps(row.id, userProps);
4052
- },
4053
- getCanMultiSelect: function getCanMultiSelect() {
4054
- return instance.getRowCanMultiSelect(row.id);
4055
- },
4056
- getCanSelect: function getCanSelect() {
4057
- return instance.getRowCanSelect(row.id);
4058
- }
4059
- };
4060
- }
4061
-
4062
- var mutateRowIsSelected = function mutateRowIsSelected(selectedRowIds, id, value, instance) {
4063
- var _row$subRows;
4064
-
4065
- var row = instance.getRow(id);
4066
- row.getIsGrouped(); // if ( // TODO: enforce grouping row selection rules
4067
- // !isGrouped ||
4068
- // (isGrouped && instance.options.enableGroupingRowSelection)
4069
- // ) {
4070
-
4071
- if (value) {
4072
- selectedRowIds[id] = true;
4073
- } else {
4074
- delete selectedRowIds[id];
4075
- } // }
4076
-
4077
-
4078
- if ((_row$subRows = row.subRows) != null && _row$subRows.length && instance.getRowCanSelectSubRows(row.id)) {
4079
- row.subRows.forEach(function (row) {
4080
- return mutateRowIsSelected(selectedRowIds, row.id, value, instance);
4081
- });
4082
- }
4083
- };
4084
-
4085
- function selectRowsFn(instance, rowModel) {
4086
- var rowSelection = instance.getState().rowSelection;
4087
- var newSelectedFlatRows = [];
4088
- var newSelectedRowsById = {}; // Filters top level and nested rows
4089
-
4090
- var recurseRows = function recurseRows(rows, depth) {
4091
-
4092
- return rows.map(function (row) {
4093
- var _row$subRows2;
4094
-
4095
- var isSelected = isRowSelected(row, rowSelection) === true;
4096
-
4097
- if (isSelected) {
4098
- newSelectedFlatRows.push(row);
4099
- newSelectedRowsById[row.id] = row;
4100
- }
4101
-
4102
- if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {
4103
- row = _extends({}, row, {
4104
- subRows: recurseRows(row.subRows)
4105
- });
4106
- }
4107
-
4108
- if (isSelected) {
4109
- return row;
4110
- }
4111
- }).filter(Boolean);
4112
- };
4113
-
4114
- return {
4115
- rows: recurseRows(rowModel.rows),
4116
- flatRows: newSelectedFlatRows,
4117
- rowsById: newSelectedRowsById
4118
- };
4119
- }
4120
- function isRowSelected(row, selection, instance) {
4121
- if (selection[row.id]) {
4122
- return true;
4123
- }
4124
-
4125
- if (row.subRows && row.subRows.length) {
4126
- var allChildrenSelected = true;
4127
- var someSelected = false;
4128
- row.subRows.forEach(function (subRow) {
4129
- // Bail out early if we know both of these
4130
- if (someSelected && !allChildrenSelected) {
4131
- return;
4132
- }
4133
-
4134
- if (isRowSelected(subRow, selection)) {
4135
- someSelected = true;
4136
- } else {
4137
- allChildrenSelected = false;
4138
- }
4139
- });
4140
- return allChildrenSelected ? true : someSelected ? 'some' : false;
4141
- }
4142
-
4143
- return false;
4144
- }
4145
-
4146
- var RowSelection = /*#__PURE__*/Object.freeze({
4147
- __proto__: null,
4148
- getInitialState: getInitialState,
4149
- getDefaultOptions: getDefaultOptions,
4150
- getInstance: getInstance,
4151
- createRow: createRow,
4152
- selectRowsFn: selectRowsFn,
4153
- isRowSelected: isRowSelected
4154
- });
4155
-
4156
- var features = [Visibility, Ordering, Pinning, Headers, Filters, Sorting, Grouping, Expanding, ColumnSizing, Pagination, RowSelection];
4157
- function createTableInstance(options, rerender) {
4158
- var _options$initialState;
4159
-
4160
- if (process.env.NODE_ENV !== 'production' && options.debug) {
4161
- console.info('Creating React Table Instance...');
4162
- }
4163
-
4164
- var instance = {};
4165
- var defaultOptions = features.reduce(function (obj, feature) {
4166
- return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(instance));
4167
- }, {});
4168
- var defaultState = {};
4169
-
4170
- var buildOptions = function buildOptions(options) {
4171
- return _extends({
4172
- state: defaultState
4173
- }, defaultOptions, options);
4174
- };
4175
-
4176
- instance.options = buildOptions(options);
4177
-
4178
- var initialState = _extends({}, features.reduce(function (obj, feature) {
4179
- return Object.assign(obj, feature.getInitialState == null ? void 0 : feature.getInitialState());
4180
- }, {}), (_options$initialState = options.initialState) != null ? _options$initialState : {});
4181
-
4182
- var finalInstance = _extends({}, instance, features.reduce(function (obj, feature) {
4183
- return Object.assign(obj, feature.getInstance == null ? void 0 : feature.getInstance(instance));
4184
- }, {}), {
4185
- rerender: rerender,
4186
- initialState: initialState,
4187
- internalState: initialState,
4188
- reset: function reset() {
4189
- instance.setState(instance.initialState);
4190
- },
4191
- updateOptions: function updateOptions(newOptions) {
4192
- instance.options = buildOptions(newOptions);
4193
- },
4194
- getRowId: function getRowId(_, index, parent) {
4195
- return "" + (parent ? [parent.id, index].join('.') : index);
4196
- },
4197
- getState: function getState() {
4198
- var state = _extends({}, instance.internalState, instance.options.state);
4199
-
4200
- return state;
4201
- },
4202
- setState: function setState(updater, shouldRerender) {
4203
- if (shouldRerender === void 0) {
4204
- shouldRerender = true;
4205
- }
4206
-
4207
- var onStateChange = instance.options.onStateChange;
4208
- var internalState = instance.internalState;
4209
- var newState = functionalUpdate(updater, internalState);
4210
- instance.internalState = newState;
4211
-
4212
- if (onStateChange) {
4213
- onStateChange(newState);
4214
- return;
4215
- }
4216
-
4217
- if (shouldRerender) {
4218
- instance.rerender();
4219
- }
4220
- },
4221
- getDefaultColumn: memo(function () {
4222
- return [instance.options.defaultColumn];
4223
- }, function (defaultColumn) {
4224
- var _defaultColumn;
4225
-
4226
- defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};
4227
- return _extends({
4228
- header: function header(props) {
4229
- return props.header.column.id;
4230
- },
4231
- footer: function footer(props) {
4232
- return props.header.column.id;
4233
- },
4234
- cell: function cell(_ref) {
4235
- var _ref$value = _ref.value,
4236
- value = _ref$value === void 0 ? '' : _ref$value;
4237
- return typeof value === 'boolean' ? value.toString() : value;
4238
- }
4239
- }, features.reduce(function (obj, feature) {
4240
- return Object.assign(obj, feature.getDefaultColumn == null ? void 0 : feature.getDefaultColumn());
4241
- }, {}), defaultColumn);
4242
- }, {
4243
- debug: instance.options.debug,
4244
- key: 'getDefaultColumn'
4245
- }),
4246
- getColumnDefs: function getColumnDefs() {
4247
- return instance.options.columns;
4248
- },
4249
- createColumn: function createColumn(columnDef, depth, parent) {
4250
- var _ref2, _columnDef$id;
4251
-
4252
- var defaultColumn = instance.getDefaultColumn();
4253
- var id = (_ref2 = (_columnDef$id = columnDef.id) != null ? _columnDef$id : columnDef.accessorKey) != null ? _ref2 : typeof columnDef.header === 'string' ? columnDef.header : undefined;
4254
- var accessorFn;
4255
-
4256
- if (columnDef.accessorFn) {
4257
- accessorFn = columnDef.accessorFn;
4258
- } else if (columnDef.accessorKey) {
4259
- accessorFn = function accessorFn(originalRow) {
4260
- return originalRow[columnDef.accessorKey];
4261
- };
4262
- }
4263
-
4264
- if (!id) {
4265
- if (process.env.NODE_ENV !== 'production') {
4266
- throw new Error(columnDef.accessorFn ? "Columns require an id when using an accessorFn" : "Columns require an id when using a non-string header");
4267
- }
4268
-
4269
- throw new Error();
4270
- }
4271
-
4272
- var column = _extends({}, defaultColumnSizing, defaultColumn, columnDef, {
4273
- id: "" + id,
4274
- accessorFn: accessorFn,
4275
- parent: parent,
4276
- depth: depth,
4277
- columnDef: columnDef,
4278
- columns: [],
4279
- getWidth: function getWidth() {
4280
- return instance.getColumnWidth(column.id);
4281
- },
4282
- getFlatColumns: memo(function () {
4283
- return [true];
4284
- }, function () {
4285
- var _column$columns;
4286
-
4287
- return [column].concat((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(function (d) {
4288
- return d.getFlatColumns();
4289
- }));
4290
- }, {
4291
- key: 'column.getFlatColumns',
4292
- debug: instance.options.debug
4293
- }),
4294
- getLeafColumns: memo(function () {
4295
- return [instance.getOrderColumnsFn()];
4296
- }, function (orderColumns) {
4297
- var _column$columns2;
4298
-
4299
- if ((_column$columns2 = column.columns) != null && _column$columns2.length) {
4300
- var leafColumns = column.columns.flatMap(function (column) {
4301
- return column.getLeafColumns();
4302
- });
4303
- return orderColumns(leafColumns);
4304
- }
4305
-
4306
- return [column];
4307
- }, {
4308
- key: 'column.getLeafColumns',
4309
- debug: instance.options.debug
4310
- })
4311
- });
4312
-
4313
- column = features.reduce(function (obj, feature) {
4314
- return Object.assign(obj, feature.createColumn == null ? void 0 : feature.createColumn(column, instance));
4315
- }, column); // Yes, we have to convert instance to uknown, because we know more than the compiler here.
4316
-
4317
- return column;
4318
- },
4319
- getAllColumns: memo(function () {
4320
- return [instance.getColumnDefs()];
4321
- }, function (columnDefs) {
4322
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Building Columns...');
4323
-
4324
- var recurseColumns = function recurseColumns(columnDefs, parent, depth) {
4325
- if (depth === void 0) {
4326
- depth = 0;
4327
- }
4328
-
4329
- return columnDefs.map(function (columnDef) {
4330
- var column = instance.createColumn(columnDef, depth, parent);
4331
- column.columns = columnDef.columns ? recurseColumns(columnDef.columns, column, depth + 1) : [];
4332
- return column;
4333
- });
4334
- };
4335
-
4336
- return recurseColumns(columnDefs);
4337
- }, {
4338
- key: 'getAllColumns',
4339
- debug: instance.options.debug
4340
- }),
4341
- getAllFlatColumns: memo(function () {
4342
- return [instance.getAllColumns()];
4343
- }, function (allColumns) {
4344
- return allColumns.flatMap(function (column) {
4345
- return column.getFlatColumns();
4346
- });
4347
- }, {
4348
- key: 'getAllFlatColumns',
4349
- debug: instance.options.debug
4350
- }),
4351
- getAllFlatColumnsById: memo(function () {
4352
- return [instance.getAllFlatColumns()];
4353
- }, function (flatColumns) {
4354
- return flatColumns.reduce(function (acc, column) {
4355
- acc[column.id] = column;
4356
- return acc;
4357
- }, {});
4358
- }, {
4359
- key: 'getAllFlatColumnsById',
4360
- debug: instance.options.debug
4361
- }),
4362
- getAllLeafColumns: memo(function () {
4363
- return [instance.getAllColumns(), instance.getOrderColumnsFn()];
4364
- }, function (allColumns, orderColumns) {
4365
- var leafColumns = allColumns.flatMap(function (column) {
4366
- return column.getLeafColumns();
4367
- });
4368
- return orderColumns(leafColumns);
4369
- }, {
4370
- key: 'getAllLeafColumns',
4371
- debug: instance.options.debug
4372
- }),
4373
- getColumn: function getColumn(columnId) {
4374
- var column = instance.getAllFlatColumnsById()[columnId];
4375
-
4376
- if (!column) {
4377
- if (process.env.NODE_ENV !== 'production') {
4378
- console.warn("[React Table] Column with id " + columnId + " does not exist.");
4379
- }
4380
-
4381
- throw new Error();
4382
- }
4383
-
4384
- return column;
4385
- },
4386
- getColumnWidth: function getColumnWidth(columnId) {
4387
- var _column$minWidth, _ref3, _column$maxWidth;
4388
-
4389
- var column = instance.getColumn(columnId);
4390
-
4391
- if (!column) {
4392
- throw new Error();
4393
- }
4394
-
4395
- var columnSize = instance.getState().columnSizing[column.id];
4396
- return Math.min(Math.max((_column$minWidth = column.minWidth) != null ? _column$minWidth : defaultColumnSizing.minWidth, (_ref3 = columnSize != null ? columnSize : column.width) != null ? _ref3 : defaultColumnSizing.width), (_column$maxWidth = column.maxWidth) != null ? _column$maxWidth : defaultColumnSizing.maxWidth);
4397
- },
4398
- createCell: function createCell(row, column, value) {
4399
- var cell = {
4400
- id: row.id + "_" + column.id,
4401
- rowId: row.id,
4402
- columnId: column.id,
4403
- row: row,
4404
- column: column,
4405
- value: value,
4406
- getCellProps: function getCellProps(userProps) {
4407
- return instance.getCellProps(row.id, column.id, userProps);
4408
- },
4409
- renderCell: function renderCell() {
4410
- return flexRender(column.cell, {
4411
- instance: instance,
4412
- column: column,
4413
- row: row,
4414
- cell: cell,
4415
- value: value
4416
- });
4417
- }
4418
- };
4419
- features.forEach(function (feature) {
4420
- Object.assign(cell, feature.createCell == null ? void 0 : feature.createCell(cell, column, row, instance));
4421
- }, {});
4422
- return cell;
4423
- },
4424
- createRow: function createRow(id, original, rowIndex, depth, values) {
4425
- var row = {
4426
- id: id,
4427
- index: rowIndex,
4428
- original: original,
4429
- depth: depth,
4430
- values: values,
4431
- subRows: [],
4432
- leafRows: [],
4433
- getRowProps: function getRowProps(userProps) {
4434
- return instance.getRowProps(row.id, userProps);
4435
- },
4436
- getAllCells: undefined,
4437
- getAllCellsByColumnId: undefined
4438
- };
4439
- row.getAllCells = memo(function () {
4440
- return [instance.getAllLeafColumns()];
4441
- }, function (leafColumns) {
4442
- return leafColumns.map(function (column) {
4443
- return instance.createCell(row, column, row.values[column.id]);
4444
- });
4445
- }, {
4446
- key: process.env.NODE_ENV !== 'production' ? 'row.getAllCells' : '',
4447
- debug: instance.options.debug
4448
- });
4449
- row.getAllCellsByColumnId = memo(function () {
4450
- return [row.getAllCells()];
4451
- }, function (allCells) {
4452
- return allCells.reduce(function (acc, cell) {
4453
- acc[cell.columnId] = cell;
4454
- return acc;
4455
- }, {});
4456
- }, {
4457
- key: 'row.getAllCellsByColumnId',
4458
- debug: instance.options.debug
4459
- });
4460
- features.forEach(function (feature) {
4461
- Object.assign(row, feature.createRow == null ? void 0 : feature.createRow(row, instance));
4462
- });
4463
- return row;
4464
- },
4465
- getCoreRowModel: memo(function () {
4466
- return [instance.options.data];
4467
- }, function (data) {
4468
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Accessing...'); // Access the row model using initial columns
4469
-
4470
- var rows = [];
4471
- var flatRows = [];
4472
- var rowsById = {};
4473
- var leafColumns = instance.getAllLeafColumns();
4474
-
4475
- var accessRow = function accessRow(originalRow, rowIndex, depth, parentRows, parent) {
4476
- if (depth === void 0) {
4477
- depth = 0;
4478
- }
4479
-
4480
- var id = instance.getRowId(originalRow, rowIndex, parent);
4481
-
4482
- if (!id) {
4483
- if (process.env.NODE_ENV !== 'production') {
4484
- throw new Error("getRowId expected an ID, but got " + id);
4485
- }
4486
- }
4487
-
4488
- var values = {};
4489
-
4490
- for (var i = 0; i < leafColumns.length; i++) {
4491
- var _column = leafColumns[i];
4492
-
4493
- if (_column && _column.accessorFn) {
4494
- values[_column.id] = _column.accessorFn(originalRow, rowIndex);
4495
- }
4496
- } // Make the row
4497
-
4498
-
4499
- var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
4500
-
4501
- parentRows.push(row); // Keep track of every row in a flat array
4502
-
4503
- flatRows.push(row); // Also keep track of every row by its ID
4504
-
4505
- rowsById[id] = row; // Get the original subrows
4506
-
4507
- if (instance.options.getSubRows) {
4508
- var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
4509
-
4510
- if (originalSubRows != null && originalSubRows.length) {
4511
- row.originalSubRows = originalSubRows;
4512
- var subRows = [];
4513
-
4514
- for (var _i = 0; _i < row.originalSubRows.length; _i++) {
4515
- accessRow(row.originalSubRows[_i], _i, depth + 1, subRows, row);
4516
- } // Keep the new subRows array on the row
4517
-
4518
-
4519
- row.subRows = subRows;
4520
- row.leafRows = flattenBy(subRows, function (d) {
4521
- return d.leafRows;
4522
- });
4523
- }
4524
- }
4525
- };
4526
-
4527
- for (var i = 0; i < data.length; i++) {
4528
- accessRow(data[i], i, 0, rows);
4529
- }
4530
-
4531
- return {
4532
- rows: rows,
4533
- flatRows: flatRows,
4534
- rowsById: rowsById
4535
- };
4536
- }, {
4537
- key: 'getRowModel',
4538
- debug: instance.options.debug,
4539
- onChange: function onChange() {
4540
- instance._notifyRowSelectionReset();
4541
-
4542
- instance._notifyFiltersReset();
4543
- }
4544
- }),
4545
- // The standard
4546
- getCoreRows: function getCoreRows() {
4547
- return instance.getCoreRowModel().rows;
4548
- },
4549
- getCoreFlatRows: function getCoreFlatRows() {
4550
- return instance.getCoreRowModel().flatRows;
4551
- },
4552
- getCoreRowsById: function getCoreRowsById() {
4553
- return instance.getCoreRowModel().rowsById;
4554
- },
4555
- // The final calls start at the bottom of the model,
4556
- // expanded rows, which then work their way up
4557
- getRowModel: function getRowModel() {
4558
- return instance.getExpandedRowModel();
4559
- },
4560
- getRows: function getRows() {
4561
- return instance.getRowModel().rows;
4562
- },
4563
- getFlatRows: function getFlatRows() {
4564
- return instance.getRowModel().flatRows;
4565
- },
4566
- getRowsById: function getRowsById() {
4567
- return instance.getRowModel().rowsById;
4568
- },
4569
- getRow: function getRow(id) {
4570
- var row = instance.getRowsById()[id];
4571
-
4572
- if (!row) {
4573
- if (process.env.NODE_ENV !== 'production') {
4574
- throw new Error("getRow expected an ID, but got " + id);
4575
- }
4576
-
4577
- throw new Error();
4578
- }
4579
-
4580
- return row;
4581
- },
4582
- getCell: function getCell(rowId, columnId) {
4583
- var row = instance.getRow(rowId);
4584
-
4585
- if (!row) {
4586
- if (process.env.NODE_ENV !== 'production') {
4587
- throw new Error("[React Table] could not find row with id " + rowId);
4588
- }
4589
-
4590
- throw new Error();
4591
- }
4592
-
4593
- var cell = row.getAllCellsByColumnId()[columnId];
4594
-
4595
- if (!cell) {
4596
- if (process.env.NODE_ENV !== 'production') {
4597
- throw new Error("[React Table] could not find cell " + columnId + " in row " + rowId);
4598
- }
4599
-
4600
- throw new Error();
4601
- }
4602
-
4603
- return cell;
4604
- },
4605
- getTableProps: function getTableProps(userProps) {
4606
- return propGetter({
4607
- role: 'table'
4608
- }, userProps);
4609
- },
4610
- getTableBodyProps: function getTableBodyProps(userProps) {
4611
- return propGetter({
4612
- role: 'rowgroup'
4613
- }, userProps);
4614
- },
4615
- getRowProps: function getRowProps(rowId, userProps) {
4616
- var row = instance.getRow(rowId);
4617
-
4618
- if (!row) {
4619
- return;
4620
- }
4621
-
4622
- return propGetter({
4623
- key: row.id,
4624
- role: 'row'
4625
- }, userProps);
4626
- },
4627
- getCellProps: function getCellProps(rowId, columnId, userProps) {
4628
- var cell = instance.getCell(rowId, columnId);
4629
-
4630
- if (!cell) {
4631
- return;
4632
- }
4633
-
4634
- return propGetter({
4635
- key: cell.id,
4636
- role: 'gridcell'
4637
- }, userProps);
4638
- },
4639
- getTableWidth: function getTableWidth() {
4640
- var _instance$getHeaderGr, _instance$getHeaderGr2;
4641
-
4642
- return (_instance$getHeaderGr = (_instance$getHeaderGr2 = instance.getHeaderGroups()[0]) == null ? void 0 : _instance$getHeaderGr2.headers.reduce(function (sum, header) {
4643
- return sum + header.getWidth();
4644
- }, 0)) != null ? _instance$getHeaderGr : 0;
4645
- },
4646
- getLeftTableWidth: function getLeftTableWidth() {
4647
- var _instance$getLeftHead, _instance$getLeftHead2;
4648
-
4649
- return (_instance$getLeftHead = (_instance$getLeftHead2 = instance.getLeftHeaderGroups()[0]) == null ? void 0 : _instance$getLeftHead2.headers.reduce(function (sum, header) {
4650
- return sum + header.getWidth();
4651
- }, 0)) != null ? _instance$getLeftHead : 0;
4652
- },
4653
- getCenterTableWidth: function getCenterTableWidth() {
4654
- var _instance$getCenterHe, _instance$getCenterHe2;
4655
-
4656
- return (_instance$getCenterHe = (_instance$getCenterHe2 = instance.getCenterHeaderGroups()[0]) == null ? void 0 : _instance$getCenterHe2.headers.reduce(function (sum, header) {
4657
- return sum + header.getWidth();
4658
- }, 0)) != null ? _instance$getCenterHe : 0;
4659
- },
4660
- getRightTableWidth: function getRightTableWidth() {
4661
- var _instance$getRightHea, _instance$getRightHea2;
4662
-
4663
- return (_instance$getRightHea = (_instance$getRightHea2 = instance.getRightHeaderGroups()[0]) == null ? void 0 : _instance$getRightHea2.headers.reduce(function (sum, header) {
4664
- return sum + header.getWidth();
4665
- }, 0)) != null ? _instance$getRightHea : 0;
4666
- }
4667
- });
4668
-
4669
- instance = Object.assign(instance, finalInstance); // This won't trigger a rerender yet, but it will force
4670
- // pagination derivation to run (particularly pageSize detection)
4671
-
4672
- instance.setPagination(function (d) {
4673
- return d;
95
+ React.useLayoutEffect(function () {
96
+ instance.willUpdate();
4674
97
  });
4675
98
  return instance;
4676
99
  }
4677
100
 
4678
- function createTable() {
4679
- return {
4680
- RowType: function RowType() {
4681
- return createTable();
4682
- },
4683
- FilterFns: function FilterFns() {
4684
- return createTable();
4685
- },
4686
- SortingFns: function SortingFns() {
4687
- return createTable();
4688
- },
4689
- AggregationFns: function AggregationFns() {
4690
- return createTable();
4691
- },
4692
- createColumns: function createColumns(columns) {
4693
- return columns;
4694
- },
4695
- createDisplayColumn: function createDisplayColumn(column) {
4696
- return _extends({}, column, {
4697
- __generated: true
4698
- });
4699
- },
4700
- createGroup: function createGroup(column) {
4701
- return _extends({}, column, {
4702
- __generated: true
4703
- });
4704
- },
4705
- createDataColumn: function createDataColumn(accessor, column) {
4706
- column = _extends({}, column, {
4707
- id: column.id
4708
- });
4709
-
4710
- if (typeof accessor === 'string') {
4711
- var _column$id;
4712
-
4713
- return _extends({}, column, {
4714
- id: (_column$id = column.id) != null ? _column$id : accessor,
4715
- accessorKey: accessor,
4716
- __generated: true
4717
- });
4718
- }
4719
-
4720
- if (typeof accessor === 'function') {
4721
- return _extends({}, column, {
4722
- accessorFn: accessor,
4723
- __generated: true
4724
- });
4725
- }
4726
-
4727
- throw new Error('Invalid accessor');
4728
- },
4729
- useTable: function useTable(options) {
4730
- var instanceRef = React.useRef(undefined);
4731
- var rerender = React.useReducer(function () {
4732
- return {};
4733
- }, {})[1];
4734
-
4735
- if (!instanceRef.current) {
4736
- instanceRef.current = createTableInstance(options, rerender);
4737
- }
4738
-
4739
- instanceRef.current.updateOptions(options);
4740
- return instanceRef.current;
4741
- },
4742
- types: undefined
4743
- };
4744
- }
4745
-
4746
- export { columnFilterRowsFn, createTable, expandRowsFn, globalFilterRowsFn, groupRowsFn, sortRowsFn };
101
+ export { createTable, createTableFactory, render, useTableInstance };
4747
102
  //# sourceMappingURL=index.js.map