@tanstack/react-table 8.0.0-alpha.2 → 8.0.0-alpha.20

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 (99) 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 +96 -12
  4. package/build/cjs/index.js.map +1 -1
  5. package/build/esm/index.js +40 -3663
  6. package/build/esm/index.js.map +1 -1
  7. package/build/stats-html.html +1 -1
  8. package/build/stats-react.json +28 -676
  9. package/build/types/index.d.ts +13 -7
  10. package/build/umd/index.development.js +50 -3665
  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 +104 -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 -519
  19. package/build/cjs/core.js.map +0 -1
  20. package/build/cjs/createTable.js +0 -103
  21. package/build/cjs/createTable.js.map +0 -1
  22. package/build/cjs/features/ColumnSizing.js +0 -331
  23. package/build/cjs/features/ColumnSizing.js.map +0 -1
  24. package/build/cjs/features/Expanding.js +0 -234
  25. package/build/cjs/features/Expanding.js.map +0 -1
  26. package/build/cjs/features/Filters.js +0 -396
  27. package/build/cjs/features/Filters.js.map +0 -1
  28. package/build/cjs/features/Grouping.js +0 -228
  29. package/build/cjs/features/Grouping.js.map +0 -1
  30. package/build/cjs/features/Headers.js +0 -486
  31. package/build/cjs/features/Headers.js.map +0 -1
  32. package/build/cjs/features/Ordering.js +0 -83
  33. package/build/cjs/features/Ordering.js.map +0 -1
  34. package/build/cjs/features/Pinning.js +0 -163
  35. package/build/cjs/features/Pinning.js.map +0 -1
  36. package/build/cjs/features/Sorting.js +0 -269
  37. package/build/cjs/features/Sorting.js.map +0 -1
  38. package/build/cjs/features/Visibility.js +0 -160
  39. package/build/cjs/features/Visibility.js.map +0 -1
  40. package/build/cjs/filterTypes.js +0 -172
  41. package/build/cjs/filterTypes.js.map +0 -1
  42. package/build/cjs/sortTypes.js +0 -121
  43. package/build/cjs/sortTypes.js.map +0 -1
  44. package/build/cjs/utils/columnFilterRowsFn.js +0 -130
  45. package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
  46. package/build/cjs/utils/expandRowsFn.js +0 -38
  47. package/build/cjs/utils/expandRowsFn.js.map +0 -1
  48. package/build/cjs/utils/globalFilterRowsFn.js +0 -100
  49. package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
  50. package/build/cjs/utils/groupRowsFn.js +0 -154
  51. package/build/cjs/utils/groupRowsFn.js.map +0 -1
  52. package/build/cjs/utils/sortRowsFn.js +0 -93
  53. package/build/cjs/utils/sortRowsFn.js.map +0 -1
  54. package/build/cjs/utils.js +0 -143
  55. package/build/cjs/utils.js.map +0 -1
  56. package/build/types/aggregationTypes.d.ts +0 -22
  57. package/build/types/core.d.ts +0 -126
  58. package/build/types/createTable.d.ts +0 -35
  59. package/build/types/features/ColumnSizing.d.ts +0 -73
  60. package/build/types/features/Expanding.d.ts +0 -52
  61. package/build/types/features/Filters.d.ts +0 -93
  62. package/build/types/features/Grouping.d.ts +0 -82
  63. package/build/types/features/Headers.d.ts +0 -41
  64. package/build/types/features/Ordering.d.ts +0 -19
  65. package/build/types/features/Pinning.d.ts +0 -39
  66. package/build/types/features/Sorting.d.ts +0 -75
  67. package/build/types/features/Visibility.d.ts +0 -47
  68. package/build/types/filterTypes.d.ts +0 -50
  69. package/build/types/sortTypes.d.ts +0 -17
  70. package/build/types/types.d.ts +0 -124
  71. package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
  72. package/build/types/utils/expandRowsFn.d.ts +0 -2
  73. package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
  74. package/build/types/utils/groupRowsFn.d.ts +0 -2
  75. package/build/types/utils/sortRowsFn.d.ts +0 -2
  76. package/build/types/utils.d.ts +0 -24
  77. package/src/aggregationTypes.ts +0 -115
  78. package/src/core.tsx +0 -1232
  79. package/src/createTable.tsx +0 -181
  80. package/src/features/ColumnSizing.ts +0 -482
  81. package/src/features/Expanding.ts +0 -388
  82. package/src/features/Filters.ts +0 -707
  83. package/src/features/Grouping.ts +0 -451
  84. package/src/features/Headers.ts +0 -944
  85. package/src/features/Ordering.ts +0 -134
  86. package/src/features/Pinning.ts +0 -213
  87. package/src/features/Sorting.ts +0 -487
  88. package/src/features/Visibility.ts +0 -281
  89. package/src/features/withPagination.oldts +0 -208
  90. package/src/features/withRowSelection.oldts +0 -467
  91. package/src/filterTypes.ts +0 -251
  92. package/src/sortTypes.ts +0 -159
  93. package/src/types.ts +0 -314
  94. package/src/utils/columnFilterRowsFn.ts +0 -162
  95. package/src/utils/expandRowsFn.ts +0 -53
  96. package/src/utils/globalFilterRowsFn.ts +0 -129
  97. package/src/utils/groupRowsFn.ts +0 -196
  98. package/src/utils/sortRowsFn.ts +0 -115
  99. package/src/utils.tsx +0 -249
@@ -9,12 +9,10 @@
9
9
  * @license MIT
10
10
  */
11
11
  (function (global, factory) {
12
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :
13
- typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :
14
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactTable = {}, global.React));
15
- })(this, (function (exports, React) { 'use strict';
16
-
17
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('@tanstack/table-core')) :
13
+ typeof define === 'function' && define.amd ? define(['exports', 'react', '@tanstack/table-core'], factory) :
14
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactTable = {}, global.React, global.TableCore));
15
+ })(this, (function (exports, React, tableCore) { 'use strict';
18
16
 
19
17
  function _interopNamespace(e) {
20
18
  if (e && e.__esModule) return e;
@@ -34,284 +32,8 @@
34
32
  return Object.freeze(n);
35
33
  }
36
34
 
37
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
38
35
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
39
36
 
40
- var columnFilterRowsFn = function columnFilterRowsFn(instance, columnFilters, rowModel) {
41
- var newFilteredFlatRows = [];
42
- var newFilteredRowsById = {};
43
- var filterFromChildrenUp = instance.options.filterFromChildrenUp;
44
-
45
- var filterRows = function filterRows(rowsToFilter, depth) {
46
- columnFilters.forEach(function (_ref) {
47
- var columnId = _ref.id,
48
- filterValue = _ref.value;
49
- // Find the columnFilters column
50
- var column = instance.getColumn(columnId);
51
-
52
- if (!column) {
53
- {
54
- console.warn("React-Table: Could not find a column with id: " + columnId);
55
- }
56
-
57
- throw new Error();
58
- }
59
-
60
- if (depth === 0) {
61
- var preFilteredRows = [].concat(rowsToFilter);
62
-
63
- column.getPreFilteredRows = function () {
64
- return preFilteredRows;
65
- };
66
- }
67
-
68
- var filterFn = instance.getColumnFilterFn(column.id);
69
-
70
- if (!filterFn) {
71
- {
72
- console.warn("Could not find a valid 'column.filterType' for column with the ID: " + column.id + ".");
73
- }
74
-
75
- return;
76
- } // Pass the rows, id, filterValue and column to the filterFn
77
- // to get the filtered rows back
78
-
79
-
80
- rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue);
81
- });
82
- return rowsToFilter;
83
- };
84
-
85
- if (filterFromChildrenUp) {
86
- var _recurseFilterRows = function _recurseFilterRows(rowsToFilter, depth) {
87
- if (depth === void 0) {
88
- depth = 0;
89
- }
90
-
91
- // Filter from children up
92
- rowsToFilter = rowsToFilter.filter(function (row) {
93
- var _row$subRows;
94
-
95
- if (!((_row$subRows = row.subRows) != null && _row$subRows.length)) {
96
- return true;
97
- }
98
-
99
- row.subRows = _recurseFilterRows(row.subRows, depth + 1);
100
- return row.subRows.length;
101
- });
102
- rowsToFilter = filterRows(rowsToFilter, depth); // Apply the filter to any subRows
103
-
104
- rowsToFilter.forEach(function (row) {
105
- newFilteredFlatRows.push(row);
106
- newFilteredRowsById[row.id] = row;
107
- });
108
- return rowsToFilter;
109
- };
110
-
111
- return {
112
- rows: _recurseFilterRows(rowModel.rows),
113
- flatRows: newFilteredFlatRows,
114
- rowsById: newFilteredRowsById
115
- };
116
- } // Filters top level and nested rows
117
-
118
-
119
- var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
120
- if (depth === void 0) {
121
- depth = 0;
122
- }
123
-
124
- // Filter from parents downward
125
- rowsToFilter = filterRows(rowsToFilter, depth); // Apply the filter to any subRows
126
- // We technically could do this recursively in the above loop,
127
- // but that would severely hinder the API for the user, since they
128
- // would be required to do that recursion in some scenarios
129
-
130
- rowsToFilter.forEach(function (row) {
131
- newFilteredFlatRows.push(row);
132
- newFilteredRowsById[row.id] = row;
133
-
134
- if (!filterFromChildrenUp) {
135
- var _row$subRows2;
136
-
137
- if (!((_row$subRows2 = row.subRows) != null && _row$subRows2.length)) {
138
- return;
139
- }
140
-
141
- row.subRows = recurseFilterRows(row.subRows, depth + 1);
142
- }
143
- });
144
- return rowsToFilter;
145
- };
146
-
147
- return {
148
- rows: recurseFilterRows(rowModel.rows),
149
- flatRows: newFilteredFlatRows,
150
- rowsById: newFilteredRowsById
151
- };
152
- };
153
-
154
- var globalFilterRowsFn = function globalFilterRowsFn(instance, globalFilter, rowModel) {
155
- var newFilteredFlatRows = [];
156
- var newFilteredRowsById = {};
157
- var filterFromChildrenUp = instance.options.filterFromChildrenUp;
158
- var filterFn = instance.getGlobalFilterFn();
159
-
160
- if (!filterFn) {
161
- {
162
- console.warn("Could not find a valid 'globalFilterType'");
163
- }
164
-
165
- return rowModel;
166
- }
167
-
168
- var filterableColumns = instance.getAllLeafColumns().filter(function (column) {
169
- return column.getCanGlobalFilter();
170
- });
171
- var filterableColumnIds = filterableColumns.map(function (d) {
172
- return d.id;
173
- });
174
-
175
- if (filterFromChildrenUp) {
176
- var _recurseFilterRows = function _recurseFilterRows(rowsToFilter, depth) {
177
-
178
- // Filter from children up
179
- rowsToFilter = rowsToFilter.filter(function (row) {
180
- var _row$subRows;
181
-
182
- if (!((_row$subRows = row.subRows) != null && _row$subRows.length)) {
183
- return true;
184
- }
185
-
186
- row.subRows = _recurseFilterRows(row.subRows);
187
- return row.subRows.length;
188
- });
189
- rowsToFilter = filterFn(rowsToFilter, filterableColumnIds, globalFilter); // Apply the filter to any subRows
190
-
191
- rowsToFilter.forEach(function (row) {
192
- newFilteredFlatRows.push(row);
193
- newFilteredRowsById[row.id] = row;
194
- });
195
- return rowsToFilter;
196
- };
197
-
198
- return {
199
- rows: _recurseFilterRows(rowModel.rows),
200
- flatRows: newFilteredFlatRows,
201
- rowsById: newFilteredRowsById
202
- };
203
- } // Filters top level and nested rows
204
-
205
-
206
- var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
207
-
208
- // Filter from parents downward
209
- rowsToFilter = filterFn(rowsToFilter, filterableColumnIds, globalFilter); // Apply the filter to any subRows
210
- // We technically could do this recursively in the above loop,
211
- // but that would severely hinder the API for the user, since they
212
- // would be required to do that recursion in some scenarios
213
-
214
- rowsToFilter.forEach(function (row) {
215
- newFilteredFlatRows.push(row);
216
- newFilteredRowsById[row.id] = row;
217
-
218
- if (!filterFromChildrenUp) {
219
- var _row$subRows2;
220
-
221
- if (!((_row$subRows2 = row.subRows) != null && _row$subRows2.length)) {
222
- return;
223
- }
224
-
225
- row.subRows = recurseFilterRows(row.subRows);
226
- }
227
- });
228
- return rowsToFilter;
229
- };
230
-
231
- return {
232
- rows: recurseFilterRows(rowModel.rows),
233
- flatRows: newFilteredFlatRows,
234
- rowsById: newFilteredRowsById
235
- };
236
- };
237
-
238
- var sortRowsFn = function sortRowsFn(instance, sortingState, rowModel) {
239
- var sortedFlatRows = []; // Filter out sortings that correspond to non existing columns
240
-
241
- var availableSorting = sortingState.filter(function (sort) {
242
- return instance.getColumnCanSort(sort.id);
243
- });
244
- var columnInfoById = {};
245
- availableSorting.forEach(function (sortEntry) {
246
- var column = instance.getColumn(sortEntry.id);
247
- columnInfoById[sortEntry.id] = {
248
- sortUndefined: column.sortUndefined,
249
- invertSorting: column.invertSorting,
250
- sortingFn: instance.getColumnSortingFn(sortEntry.id)
251
- };
252
- });
253
-
254
- var sortData = function sortData(rows) {
255
- // This will also perform a stable sorting using the row index
256
- // if needed.
257
- var sortedData = rows.slice();
258
- sortedData.sort(function (rowA, rowB) {
259
- for (var i = 0; i < availableSorting.length; i += 1) {
260
- var _sortEntry$desc;
261
-
262
- var sortEntry = availableSorting[i];
263
- var columnInfo = columnInfoById[sortEntry.id];
264
- var isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;
265
-
266
- if (columnInfo.sortUndefined) {
267
- var aValue = rowA.values[sortEntry.id];
268
- var bValue = rowB.values[sortEntry.id];
269
- var aUndefined = typeof aValue === 'undefined';
270
- var bUndefined = typeof bValue === 'undefined';
271
-
272
- if (aUndefined || bUndefined) {
273
- return aUndefined && bUndefined ? 0 : aUndefined ? 1 : -1;
274
- }
275
- } // This function should always return in ascending order
276
-
277
-
278
- var sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);
279
-
280
- if (sortInt !== 0) {
281
- if (isDesc) {
282
- sortInt *= -1;
283
- }
284
-
285
- if (columnInfo.invertSorting) {
286
- sortInt *= -1;
287
- }
288
-
289
- return sortInt;
290
- }
291
- }
292
-
293
- return rowA.index - rowB.index;
294
- }); // If there are sub-rows, sort them
295
-
296
- sortedData.forEach(function (row) {
297
- sortedFlatRows.push(row);
298
-
299
- if (!row.subRows || row.subRows.length <= 1) {
300
- return;
301
- }
302
-
303
- row.subRows = sortData(row.subRows);
304
- });
305
- return sortedData;
306
- };
307
-
308
- return {
309
- rows: sortData(rowModel.rows),
310
- flatRows: sortedFlatRows,
311
- rowsById: rowModel.rowsById
312
- };
313
- };
314
-
315
37
  function _extends() {
316
38
  _extends = Object.assign || function (target) {
317
39
  for (var i = 1; i < arguments.length; i++) {
@@ -330,161 +52,9 @@
330
52
  return _extends.apply(this, arguments);
331
53
  }
332
54
 
333
- function _objectWithoutPropertiesLoose(source, excluded) {
334
- if (source == null) return {};
335
- var target = {};
336
- var sourceKeys = Object.keys(source);
337
- var key, i;
338
-
339
- for (i = 0; i < sourceKeys.length; i++) {
340
- key = sourceKeys[i];
341
- if (excluded.indexOf(key) >= 0) continue;
342
- target[key] = source[key];
343
- }
344
-
345
- return target;
346
- }
347
-
348
- function _unsupportedIterableToArray(o, minLen) {
349
- if (!o) return;
350
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
351
- var n = Object.prototype.toString.call(o).slice(8, -1);
352
- if (n === "Object" && o.constructor) n = o.constructor.name;
353
- if (n === "Map" || n === "Set") return Array.from(o);
354
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
355
- }
356
-
357
- function _arrayLikeToArray(arr, len) {
358
- if (len == null || len > arr.length) len = arr.length;
359
-
360
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
361
-
362
- return arr2;
363
- }
364
-
365
- function _createForOfIteratorHelperLoose(o, allowArrayLike) {
366
- var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
367
- if (it) return (it = it.call(o)).next.bind(it);
368
-
369
- if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
370
- if (it) o = it;
371
- var i = 0;
372
- return function () {
373
- if (i >= o.length) return {
374
- done: true
375
- };
376
- return {
377
- done: false,
378
- value: o[i++]
379
- };
380
- };
381
- }
382
-
383
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
384
- }
385
-
386
- function _toPrimitive(input, hint) {
387
- if (typeof input !== "object" || input === null) return input;
388
- var prim = input[Symbol.toPrimitive];
389
-
390
- if (prim !== undefined) {
391
- var res = prim.call(input, hint || "default");
392
- if (typeof res !== "object") return res;
393
- throw new TypeError("@@toPrimitive must return a primitive value.");
394
- }
395
-
396
- return (hint === "string" ? String : Number)(input);
397
- }
398
-
399
- function _toPropertyKey(arg) {
400
- var key = _toPrimitive(arg, "string");
401
-
402
- return typeof key === "symbol" ? key : String(key);
403
- }
404
-
405
- function functionalUpdate(updater, input) {
406
- return typeof updater === 'function' ? updater(input) : updater;
407
- }
408
- function makeStateUpdater(key, instance) {
409
- return function (updater) {
410
- instance.setState(function (old) {
411
- var _extends2;
412
-
413
- return _extends({}, old, (_extends2 = {}, _extends2[key] = functionalUpdate(updater, old[key]), _extends2));
414
- });
415
- };
416
- } // SSR has issues with useLayoutEffect still, so use useEffect during SSR
417
-
418
- typeof document !== 'undefined' ? React__default["default"].useLayoutEffect : React__default["default"].useEffect;
419
- function isFunction(d) {
420
- return d instanceof Function;
421
- }
422
- function flattenBy(arr, getChildren) {
423
- var flat = [];
424
-
425
- var recurse = function recurse(subArr) {
426
- subArr.forEach(function (item) {
427
- flat.push(item);
428
- var children = getChildren(item);
429
-
430
- if (children != null && children.length) {
431
- recurse(children);
432
- }
433
- });
434
- };
435
-
436
- recurse(arr);
437
- return flat;
438
- }
439
- // @ts-ignore // Just rely on the type, not the implementation
440
- var propGetter = function propGetter(initial, getter) {
441
- if (isFunction(getter)) {
442
- return getter(initial);
443
- }
444
-
445
- return _extends({}, initial, getter != null ? getter : {});
55
+ var render = function render(Comp, props) {
56
+ return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React__namespace.createElement(Comp, props) : Comp;
446
57
  };
447
- function memo(getDeps, fn, key, debug) {
448
- var deps = [];
449
- var result;
450
- return function () {
451
- var newDeps = getDeps();
452
- var newSerializedDeps = newDeps;
453
- var oldSerializedDeps = deps;
454
- var depsChanged = newSerializedDeps.length !== oldSerializedDeps.length || newSerializedDeps.some(function (dep, index) {
455
- return oldSerializedDeps[index] !== dep;
456
- });
457
-
458
- if (depsChanged) {
459
- if (debug) {
460
- console.info(key, _extends({
461
- length: oldSerializedDeps.length + " -> " + newSerializedDeps.length
462
- }, newSerializedDeps.map(function (_, index) {
463
- if (oldSerializedDeps[index] !== newSerializedDeps[index]) {
464
- return [index, oldSerializedDeps[index], newSerializedDeps[index]];
465
- }
466
-
467
- return false;
468
- }).filter(Boolean).reduce(function (accu, curr) {
469
- var _extends3;
470
-
471
- return _extends({}, accu, (_extends3 = {}, _extends3[curr[0]] = curr.slice(1), _extends3));
472
- }, {}), {
473
- parent: parent
474
- }));
475
- }
476
-
477
- result = fn.apply(void 0, newDeps);
478
- deps = newSerializedDeps;
479
- }
480
-
481
- return result;
482
- };
483
- } // Copied from: https://github.com/jonschlinkert/is-plain-object
484
-
485
- function flexRender(Comp, props) {
486
- return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React__default["default"].createElement(Comp, props) : Comp;
487
- }
488
58
 
489
59
  function isReactComponent(component) {
490
60
  return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);
@@ -499,3249 +69,64 @@
499
69
 
500
70
  function isExoticComponent(component) {
501
71
  return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);
502
- } // export function hashString(str: string, seed = 0): string {
503
- // let h1 = 0xdeadbeef ^ seed,
504
- // h2 = 0x41c6ce57 ^ seed
505
- // for (let i = 0, ch; i < str.length; i++) {
506
- // ch = str.charCodeAt(i)
507
- // h1 = Math.imul(h1 ^ ch, 2654435761)
508
- // h2 = Math.imul(h2 ^ ch, 1597334677)
509
- // }
510
- // h1 =
511
- // Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^
512
- // Math.imul(h2 ^ (h2 >>> 13), 3266489909)
513
- // h2 =
514
- // Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^
515
- // Math.imul(h1 ^ (h1 >>> 13), 3266489909)
516
- // return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString()
517
- // }
518
-
519
- var groupRowsFn = function groupRowsFn(instance, groupingState, sortedRowModel) {
520
- // Filter the grouping list down to columns that exist
521
- var existingGrouping = groupingState.filter(function (columnId) {
522
- return instance.getColumn(columnId);
523
- }); // Find the columns that can or are aggregating
524
- // Uses each column to aggregate rows into a single value
525
-
526
- var aggregateRowsToValues = function aggregateRowsToValues(leafRows, groupedRows, depth) {
527
- var values = {};
528
- instance.getAllLeafColumns().forEach(function (column) {
529
- // Don't aggregate columns that are in the grouping
530
- if (existingGrouping.includes(column.id)) {
531
- values[column.id] = groupedRows[0] ? groupedRows[0].values[column.id] : null;
532
- return;
533
- } // Aggregate the values
534
-
535
-
536
- var aggregateFn = instance.getColumnAggregationFn(column.id);
537
-
538
- if (aggregateFn) {
539
- // Get the columnValues to aggregate
540
- var groupedValues = groupedRows.map(function (row) {
541
- return row.values[column.id];
542
- }); // Get the columnValues to aggregate
543
-
544
- var leafValues = leafRows.map(function (row) {
545
- var columnValue = row.values[column.id];
546
-
547
- if (!depth && column.aggregateValue) {
548
- columnValue = column.aggregateValue(columnValue);
549
- }
550
-
551
- return columnValue;
552
- });
553
- values[column.id] = aggregateFn(leafValues, groupedValues);
554
- } else if (column.aggregationType) {
555
- console.info({
556
- column: column
557
- });
558
- throw new Error("React Table: Invalid column.aggregateType option for column listed above" );
559
- } else {
560
- values[column.id] = null;
561
- }
562
- });
563
- return values;
564
- };
565
-
566
- var groupedFlatRows = [];
567
- var groupedRowsById = {}; // const onlyGroupedFlatRows: Row[] = [];
568
- // const onlyGroupedRowsById: Record<RowId, Row> = {};
569
- // const nonGroupedFlatRows: Row[] = [];
570
- // const nonGroupedRowsById: Record<RowId, Row> = {};
571
- // Recursively group the data
572
-
573
- var groupUpRecursively = function groupUpRecursively(rows, depth, parentId) {
574
- if (depth === void 0) {
575
- depth = 0;
576
- }
577
-
578
- // This is the last level, just return the rows
579
- if (depth === existingGrouping.length) {
580
- return rows;
581
- }
582
-
583
- var columnId = existingGrouping[depth]; // Group the rows together for this level
584
-
585
- var rowGroupsMap = groupBy(rows, columnId); // Peform aggregations for each group
586
-
587
- var aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(function (_ref, index) {
588
- var groupingValue = _ref[0],
589
- groupedRows = _ref[1];
590
- var id = columnId + ":" + groupingValue;
591
- id = parentId ? parentId + ">" + id : id; // First, Recurse to group sub rows before aggregation
592
-
593
- var subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group
594
-
595
- var leafRows = depth ? flattenBy(groupedRows, function (row) {
596
- return row.leafRows;
597
- }) : groupedRows;
598
- var values = aggregateRowsToValues(leafRows, groupedRows, depth);
599
- var row = instance.createRow(id, undefined, index, depth, values);
600
- Object.assign(row, {
601
- groupingColumnId: columnId,
602
- groupingValue: groupingValue,
603
- subRows: subRows,
604
- leafRows: leafRows
605
- });
606
- subRows.forEach(function (subRow) {
607
- groupedFlatRows.push(subRow);
608
- groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {
609
- // onlyGroupedFlatRows.push(subRow);
610
- // onlyGroupedRowsById[subRow.id] = subRow;
611
- // } else {
612
- // nonGroupedFlatRows.push(subRow);
613
- // nonGroupedRowsById[subRow.id] = subRow;
614
- // }
615
- });
616
- return row;
617
- });
618
- return aggregatedGroupedRows;
619
- };
620
-
621
- var groupedRows = groupUpRecursively(sortedRowModel.rows, 0, '');
622
- groupedRows.forEach(function (subRow) {
623
- groupedFlatRows.push(subRow);
624
- groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {
625
- // onlyGroupedFlatRows.push(subRow);
626
- // onlyGroupedRowsById[subRow.id] = subRow;
627
- // } else {
628
- // nonGroupedFlatRows.push(subRow);
629
- // nonGroupedRowsById[subRow.id] = subRow;
630
- // }
631
- });
632
- return {
633
- rows: groupedRows,
634
- flatRows: groupedFlatRows,
635
- rowsById: groupedRowsById
636
- };
637
- };
638
-
639
- function groupBy(rows, columnId) {
640
- var groupMap = new Map();
641
- return rows.reduce(function (map, row) {
642
- var resKey = "" + row.values[columnId];
643
- var previous = map.get(resKey);
644
-
645
- if (!previous) {
646
- map.set(resKey, [row]);
647
- } else {
648
- map.set(resKey, [].concat(previous, [row]));
649
- }
650
-
651
- return map;
652
- }, groupMap);
653
- }
654
-
655
- var expandRowsFn = function expandRowsFn(instance, _expandedState, sortedRowModel) {
656
- var expandedRows = [];
657
- var expandSubRows = instance.options.expandSubRows;
658
-
659
- var handleRow = function handleRow(row) {
660
- var _row$subRows;
661
-
662
- expandedRows.push(row);
663
-
664
- if (expandSubRows && (_row$subRows = row.subRows) != null && _row$subRows.length && instance.getIsRowExpanded(row.id)) {
665
- row.subRows.forEach(handleRow);
666
- }
667
- };
668
-
669
- sortedRowModel.rows.forEach(handleRow);
670
- return {
671
- rows: expandedRows,
672
- flatRows: sortedRowModel.flatRows,
673
- rowsById: sortedRowModel.rowsById
674
- };
675
- };
676
-
677
- //
678
- function getInitialState$7() {
679
- return {
680
- columnVisibility: {}
681
- };
682
- }
683
- function getDefaultOptions$7(instance) {
684
- return {
685
- onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance)
686
- };
687
72
  }
688
- function getDefaultColumn$3() {
689
- return {
690
- defaultIsVisible: true
691
- };
692
- }
693
- function createColumn$5(column, instance) {
694
- return {
695
- getCanHide: function getCanHide() {
696
- return instance.getColumnCanHide(column.id);
697
- },
698
- getIsVisible: function getIsVisible() {
699
- return instance.getColumnIsVisible(column.id);
700
- },
701
- toggleVisibility: function toggleVisibility(value) {
702
- return instance.toggleColumnVisibility(column.id, value);
703
- },
704
- getToggleVisibilityProps: function getToggleVisibilityProps(userProps) {
705
- var props = {
706
- type: 'checkbox',
707
- checked: column.getIsVisible == null ? void 0 : column.getIsVisible(),
708
- title: 'Toggle Column Visibility',
709
- onChange: function onChange(e) {
710
- column.toggleVisibility == null ? void 0 : column.toggleVisibility(e.target.checked);
711
- }
712
- };
713
- return propGetter(props, userProps);
714
- }
715
- };
716
- }
717
- function getInstance$8(instance) {
718
- return {
719
- getVisibleFlatColumns: memo(function () {
720
- return [instance.getAllFlatColumns(), instance.getAllFlatColumns().filter(function (d) {
721
- return d.getIsVisible == null ? void 0 : d.getIsVisible();
722
- }).map(function (d) {
723
- return d.id;
724
- }).join('_')];
725
- }, function (allFlatColumns) {
726
- return allFlatColumns.filter(function (d) {
727
- return d.getIsVisible == null ? void 0 : d.getIsVisible();
728
- });
729
- }, 'getVisibleFlatColumns', instance.options.debug),
730
- getVisibleLeafColumns: memo(function () {
731
- return [instance.getAllLeafColumns(), instance.getAllLeafColumns().filter(function (d) {
732
- return d.getIsVisible == null ? void 0 : d.getIsVisible();
733
- }).map(function (d) {
734
- return d.id;
735
- }).join('_')];
736
- }, function (allFlatColumns) {
737
- return allFlatColumns.filter(function (d) {
738
- return d.getIsVisible == null ? void 0 : d.getIsVisible();
739
- });
740
- }, 'getVisibleLeafColumns', instance.options.debug),
741
- setColumnVisibility: function setColumnVisibility(updater) {
742
- return instance.options.onColumnVisibilityChange == null ? void 0 : instance.options.onColumnVisibilityChange(updater, functionalUpdate(updater, instance.getState().columnVisibility));
743
- },
744
- toggleColumnVisibility: function toggleColumnVisibility(columnId, value) {
745
- if (!columnId) return;
746
-
747
- if (instance.getColumnCanHide(columnId)) {
748
- instance.setColumnVisibility(function (old) {
749
- var _extends2;
750
-
751
- return _extends({}, old, (_extends2 = {}, _extends2[columnId] = value != null ? value : !instance.getColumnIsVisible(columnId), _extends2));
752
- });
753
- }
754
- },
755
- toggleAllColumnsVisible: function toggleAllColumnsVisible(value) {
756
- var _value;
757
-
758
- value = (_value = value) != null ? _value : !instance.getIsAllColumnsVisible();
759
- instance.setColumnVisibility(instance.getAllLeafColumns().reduce(function (obj, column) {
760
- var _extends3;
761
-
762
- return _extends({}, obj, (_extends3 = {}, _extends3[column.id] = !value ? !(column.getCanHide != null && column.getCanHide()) : value, _extends3));
763
- }, {}));
764
- },
765
- getColumnIsVisible: function getColumnIsVisible(columnId) {
766
- var _ref, _instance$getState$co, _instance$getState$co2;
767
-
768
- var column = instance.getColumn(columnId);
769
-
770
- if (!column) {
771
- throw new Error();
772
- }
773
-
774
- 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;
775
- },
776
- getColumnCanHide: function getColumnCanHide(columnId) {
777
- var _ref2, _ref3, _instance$options$ena;
778
-
779
- var column = instance.getColumn(columnId);
780
-
781
- if (!column) {
782
- throw new Error();
783
- }
784
-
785
- return (_ref2 = (_ref3 = (_instance$options$ena = instance.options.enableHiding) != null ? _instance$options$ena : column.enableHiding) != null ? _ref3 : column.defaultCanHide) != null ? _ref2 : true;
786
- },
787
- getIsAllColumnsVisible: function getIsAllColumnsVisible() {
788
- return !instance.getAllLeafColumns().some(function (column) {
789
- return !(column.getIsVisible != null && column.getIsVisible());
790
- });
791
- },
792
- getIsSomeColumnsVisible: function getIsSomeColumnsVisible() {
793
- return instance.getAllLeafColumns().some(function (column) {
794
- return column.getIsVisible == null ? void 0 : column.getIsVisible();
795
- });
796
- },
797
- getToggleAllColumnsVisibilityProps: function getToggleAllColumnsVisibilityProps(userProps) {
798
- var props = {
799
- onChange: function onChange(e) {
800
- var _e$target;
801
-
802
- instance.toggleAllColumnsVisible((_e$target = e.target) == null ? void 0 : _e$target.checked);
803
- },
804
- type: 'checkbox',
805
- title: 'Toggle visibility for all columns',
806
- checked: instance.getIsAllColumnsVisible(),
807
- indeterminate: !instance.getIsAllColumnsVisible() && instance.getIsSomeColumnsVisible() ? 'indeterminate' : undefined
808
- };
809
- return propGetter(props, userProps);
810
- }
811
- };
812
- }
813
-
814
- var aggregationTypes = {
815
- sum: sum,
816
- min: min,
817
- max: max,
818
- extent: extent,
819
- mean: mean,
820
- median: median,
821
- unique: unique,
822
- uniqueCount: uniqueCount,
823
- count: count
824
- };
825
-
826
- function sum(_leafValues, childValues) {
827
- // It's faster to just add the aggregations together instead of
828
- // process leaf nodes individually
829
- return childValues.reduce(function (sum, next) {
830
- return sum + (typeof next === 'number' ? next : 0);
831
- }, 0);
832
- }
833
-
834
- function min(_leafValues, childValues) {
835
- var min;
836
-
837
- for (var _iterator = _createForOfIteratorHelperLoose(childValues), _step; !(_step = _iterator()).done;) {
838
- var value = _step.value;
839
-
840
- if (value != null && (min > value || min === undefined && value >= value)) {
841
- min = value;
842
- }
843
- }
844
73
 
845
- return min;
846
- }
74
+ var _init = tableCore.init({
75
+ render: render
76
+ }),
77
+ createTable = _init.createTable,
78
+ createTableFactory = _init.createTableFactory;
79
+ function useTable(table, options) {
80
+ var _table$__options;
847
81
 
848
- function max(_leafValues, childValues) {
849
- var max;
82
+ // Compose in the generic options to the user options
83
+ var resolvedOptions = _extends({}, (_table$__options = table.__options) != null ? _table$__options : {}, {
84
+ state: {},
85
+ // Dummy state
86
+ onStateChange: function onStateChange() {},
87
+ // noop
88
+ render: render
89
+ }, options); // Create a new table instance and store it in state
850
90
 
851
- for (var _iterator2 = _createForOfIteratorHelperLoose(childValues), _step2; !(_step2 = _iterator2()).done;) {
852
- var value = _step2.value;
853
91
 
854
- if (value != null && (max < value || max === undefined && value >= value)) {
855
- max = value;
856
- }
857
- }
92
+ var _React$useState = React__namespace.useState(function () {
93
+ return tableCore.createTableInstance(resolvedOptions);
94
+ }),
95
+ instance = _React$useState[0]; // By default, manage table state here using the instance's initial state
858
96
 
859
- return max;
860
- }
861
97
 
862
- function extent(_leafValues, childValues) {
863
- var min;
864
- var max;
98
+ var _React$useState2 = React__namespace.useState(function () {
99
+ return instance.initialState;
100
+ }),
101
+ state = _React$useState2[0],
102
+ setState = _React$useState2[1]; // Compose the default state above with any user state. This will allow the user
103
+ // to only control a subset of the state if desired.
865
104
 
866
- for (var _iterator3 = _createForOfIteratorHelperLoose(childValues), _step3; !(_step3 = _iterator3()).done;) {
867
- var value = _step3.value;
868
105
 
869
- if (value != null) {
870
- if (min === undefined) {
871
- if (value >= value) min = max = value;
872
- } else {
873
- if (min > value) min = value;
874
- if (max < value) max = value;
106
+ instance.setOptions(function (prev) {
107
+ return _extends({}, prev, options, {
108
+ state: _extends({}, state, options.state),
109
+ // Similarly, we'll maintain both our internal state and any user-provided
110
+ // state.
111
+ onStateChange: function onStateChange(updater) {
112
+ setState(updater);
113
+ options.onStateChange == null ? void 0 : options.onStateChange(updater);
875
114
  }
876
- }
877
- }
878
-
879
- return [min, max];
880
- }
881
-
882
- function mean(leafValues) {
883
- var count = 0;
884
- var sum = 0;
885
-
886
- for (var _iterator4 = _createForOfIteratorHelperLoose(leafValues), _step4; !(_step4 = _iterator4()).done;) {
887
- var value = _step4.value;
888
-
889
- if (value != null && (value = +value) >= value) {
890
- ++count, sum += value;
891
- }
892
- }
893
-
894
- if (count) return sum / count;
895
- return;
896
- }
897
-
898
- function median(values) {
899
- if (!values.length) {
900
- return;
901
- }
902
-
903
- var min = 0;
904
- var max = 0;
905
- values.forEach(function (value) {
906
- if (typeof value === 'number') {
907
- min = Math.min(min, value);
908
- max = Math.max(max, value);
909
- }
115
+ });
910
116
  });
911
- return (min + max) / 2;
912
- }
913
-
914
- function unique(values) {
915
- return Array.from(new Set(values).values());
916
- }
917
-
918
- function uniqueCount(values) {
919
- return new Set(values).size;
920
- }
921
-
922
- function count(values) {
923
- return values.length;
924
- }
925
-
926
- //
927
- function getDefaultColumn$2() {
928
- return {
929
- aggregationType: 'auto'
930
- };
931
- }
932
- function getInitialState$6() {
933
- return {
934
- grouping: []
935
- };
936
- }
937
- function getDefaultOptions$6(instance) {
938
- return {
939
- onGroupingChange: makeStateUpdater('grouping', instance),
940
- autoResetGrouping: true,
941
- groupedColumnMode: 'reorder'
942
- };
943
- }
944
- function createColumn$4(column, instance) {
945
- return {
946
- aggregationType: column.aggregationType,
947
- getCanGroup: function getCanGroup() {
948
- return instance.getColumnCanGroup(column.id);
949
- },
950
- getGroupedIndex: function getGroupedIndex() {
951
- return instance.getColumnGroupedIndex(column.id);
952
- },
953
- getIsGrouped: function getIsGrouped() {
954
- return instance.getColumnIsGrouped(column.id);
955
- },
956
- toggleGrouping: function toggleGrouping() {
957
- return instance.toggleColumnGrouping(column.id);
958
- },
959
- getToggleGroupingProps: function getToggleGroupingProps(userProps) {
960
- return instance.getToggleGroupingProps(column.id, userProps);
961
- }
962
- };
963
- }
964
- function getInstance$7(instance) {
965
- return {
966
- getColumnAutoAggregationFn: function getColumnAutoAggregationFn(columnId) {
967
- var firstRow = instance.getCoreFlatRows()[0];
968
- var value = firstRow == null ? void 0 : firstRow.values[columnId];
969
-
970
- if (typeof value === 'number') {
971
- return aggregationTypes.sum;
972
- }
973
-
974
- if (Object.prototype.toString.call(value) === '[object Date]') {
975
- return aggregationTypes.extent;
976
- }
977
-
978
- return aggregationTypes.count;
979
- },
980
- getColumnAggregationFn: function getColumnAggregationFn(columnId) {
981
- var _ref;
982
-
983
- var column = instance.getColumn(columnId);
984
- var userAggregationTypes = instance.options.aggregationTypes;
985
-
986
- if (!column) {
987
- throw new Error();
988
- }
989
-
990
- 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];
991
- },
992
- setGrouping: function setGrouping(updater) {
993
- return instance.options.onGroupingChange == null ? void 0 : instance.options.onGroupingChange(updater, functionalUpdate(updater, instance.getState().grouping));
994
- },
995
- toggleColumnGrouping: function toggleColumnGrouping(columnId) {
996
- instance.setGrouping(function (old) {
997
- // Find any existing grouping for this column
998
- if (old != null && old.includes(columnId)) {
999
- return old.filter(function (d) {
1000
- return d !== columnId;
1001
- });
1002
- }
1003
-
1004
- return [].concat(old != null ? old : [], [columnId]);
1005
- });
1006
- },
1007
- getColumnCanGroup: function getColumnCanGroup(columnId) {
1008
- var _ref2, _ref3, _column$enableGroupin;
1009
-
1010
- var column = instance.getColumn(columnId);
1011
-
1012
- if (!column) {
1013
- throw new Error();
1014
- }
1015
-
1016
- return (_ref2 = (_ref3 = (_column$enableGroupin = column.enableGrouping) != null ? _column$enableGroupin : instance.options.enableGrouping) != null ? _ref3 : column.defaultCanGroup) != null ? _ref2 : !!column.accessorFn;
1017
- },
1018
- getColumnIsGrouped: function getColumnIsGrouped(columnId) {
1019
- var _instance$getState$gr;
1020
-
1021
- return (_instance$getState$gr = instance.getState().grouping) == null ? void 0 : _instance$getState$gr.includes(columnId);
1022
- },
1023
- getColumnGroupedIndex: function getColumnGroupedIndex(columnId) {
1024
- var _instance$getState$gr2;
1025
-
1026
- return (_instance$getState$gr2 = instance.getState().grouping) == null ? void 0 : _instance$getState$gr2.indexOf(columnId);
1027
- },
1028
- resetGrouping: function resetGrouping() {
1029
- var _instance$options$ini, _instance$options, _instance$options$ini2;
1030
-
1031
- 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 : []);
1032
- },
1033
- getToggleGroupingProps: function getToggleGroupingProps(columnId, userProps) {
1034
- var column = instance.getColumn(columnId);
1035
-
1036
- if (!column) {
1037
- return;
1038
- }
1039
-
1040
- var canGroup = column.getCanGroup();
1041
- var initialProps = {
1042
- title: canGroup ? 'Toggle Grouping' : undefined,
1043
- onClick: canGroup ? function (e) {
1044
- e.persist();
1045
- column.toggleGrouping == null ? void 0 : column.toggleGrouping();
1046
- } : undefined
1047
- };
1048
- return propGetter(initialProps, userProps);
1049
- },
1050
- getRowIsGrouped: function getRowIsGrouped(rowId) {
1051
- var _instance$getRow;
1052
-
1053
- return !!((_instance$getRow = instance.getRow(rowId)) != null && _instance$getRow.groupingColumnId);
1054
- },
1055
- getGroupedRowModel: memo(function () {
1056
- return [instance.getState().grouping, instance.getSortedRowModel(), instance.options.groupRowsFn];
1057
- }, function (grouping, rowModel, groupRowsFn) {
1058
- if (!groupRowsFn || !grouping.length) {
1059
- return rowModel;
1060
- }
1061
-
1062
- if (instance.options.debug) console.info('Grouping...');
1063
- return groupRowsFn(instance, grouping, rowModel);
1064
- }, 'getGroupedRowModel', instance.options.debug),
1065
- getPreGroupedRows: function getPreGroupedRows() {
1066
- return instance.getSortedRowModel().rows;
1067
- },
1068
- getPreGroupedFlatRows: function getPreGroupedFlatRows() {
1069
- return instance.getSortedRowModel().flatRows;
1070
- },
1071
- getPreGroupedRowsById: function getPreGroupedRowsById() {
1072
- return instance.getSortedRowModel().rowsById;
1073
- },
1074
- getGroupedRows: function getGroupedRows() {
1075
- return instance.getGroupedRowModel().rows;
1076
- },
1077
- getGroupedFlatRows: function getGroupedFlatRows() {
1078
- return instance.getGroupedRowModel().flatRows;
1079
- },
1080
- getGroupedRowsById: function getGroupedRowsById() {
1081
- return instance.getGroupedRowModel().rowsById;
1082
- }
1083
- };
1084
- }
1085
- function createRow$2(row, instance) {
1086
- return {
1087
- getIsGrouped: function getIsGrouped() {
1088
- return instance.getRowIsGrouped(row.id);
1089
- }
1090
- };
1091
- }
1092
- function createCell(cell, column, row, _instance) {
1093
- return {
1094
- getIsGrouped: function getIsGrouped() {
1095
- return column.getIsGrouped() && column.id === row.groupingColumnId;
1096
- },
1097
- getIsPlaceholder: function getIsPlaceholder() {
1098
- return !cell.getIsGrouped() && column.getIsGrouped();
1099
- },
1100
- getIsAggregated: function getIsAggregated() {
1101
- var _row$subRows;
1102
-
1103
- return !cell.getIsGrouped() && !cell.getIsPlaceholder() && ((_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length) > 1;
1104
- }
1105
- };
1106
- }
1107
- function orderColumns(leafColumns, grouping, groupedColumnMode) {
1108
- if (!(grouping != null && grouping.length) || !groupedColumnMode) {
1109
- return leafColumns;
1110
- }
1111
-
1112
- var nonGroupingColumns = leafColumns.filter(function (col) {
1113
- return !grouping.includes(col.id);
1114
- });
1115
-
1116
- if (groupedColumnMode === 'remove') {
1117
- return nonGroupingColumns;
1118
- }
1119
-
1120
- var groupingColumns = grouping.map(function (g) {
1121
- return leafColumns.find(function (col) {
1122
- return col.id === g;
1123
- });
1124
- }).filter(Boolean);
1125
- return [].concat(groupingColumns, nonGroupingColumns);
1126
- }
1127
-
1128
- //
1129
- function getInitialState$5() {
1130
- return {
1131
- columnOrder: []
1132
- };
1133
- }
1134
- function getDefaultOptions$5(instance) {
1135
- return {
1136
- onColumnOrderChange: makeStateUpdater('columnOrder', instance)
1137
- };
1138
- }
1139
- function getInstance$6(instance) {
1140
- return {
1141
- setColumnOrder: function setColumnOrder(updater) {
1142
- return instance.options.onColumnOrderChange == null ? void 0 : instance.options.onColumnOrderChange(updater, functionalUpdate(updater, instance.getState().columnOrder));
1143
- },
1144
- resetColumnOrder: function resetColumnOrder() {
1145
- var _instance$initialStat;
1146
-
1147
- instance.setColumnOrder((_instance$initialStat = instance.initialState.columnOrder) != null ? _instance$initialStat : []);
1148
- },
1149
- getOrderColumnsFn: memo(function () {
1150
- return [instance.getState().columnOrder, instance.getState().grouping, instance.options.groupedColumnMode];
1151
- }, function (columnOrder, grouping, groupedColumnMode) {
1152
- return function (columns) {
1153
- // Sort grouped columns to the start of the column list
1154
- // before the headers are built
1155
- var orderedColumns = []; // If there is no order, return the normal columns
1156
-
1157
- if (!(columnOrder != null && columnOrder.length)) {
1158
- orderedColumns = columns;
1159
- } else {
1160
- var columnOrderCopy = [].concat(columnOrder); // If there is an order, make a copy of the columns
1161
-
1162
- var columnsCopy = [].concat(columns); // And make a new ordered array of the columns
1163
- // Loop over the columns and place them in order into the new array
1164
-
1165
- var _loop = function _loop() {
1166
- var targetColumnId = columnOrderCopy.shift();
1167
- var foundIndex = columnsCopy.findIndex(function (d) {
1168
- return d.id === targetColumnId;
1169
- });
1170
-
1171
- if (foundIndex > -1) {
1172
- orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);
1173
- }
1174
- };
1175
-
1176
- while (columnsCopy.length && columnOrderCopy.length) {
1177
- _loop();
1178
- } // If there are any columns left, add them to the end
1179
-
1180
-
1181
- orderedColumns = [].concat(orderedColumns, columnsCopy);
1182
- }
1183
-
1184
- return orderColumns(orderedColumns, grouping, groupedColumnMode);
1185
- };
1186
- }, 'getOrderColumnsFn', instance.options.debug)
1187
- };
1188
- }
1189
-
1190
- //
1191
- function getInitialState$4() {
1192
- return {
1193
- columnPinning: {
1194
- left: [],
1195
- right: []
1196
- }
1197
- };
1198
- }
1199
- function getDefaultOptions$4(instance) {
1200
- return {
1201
- onColumnPinningChange: makeStateUpdater('columnPinning', instance)
1202
- };
1203
- }
1204
- function createColumn$3(column, instance) {
1205
- return {
1206
- getCanPin: function getCanPin() {
1207
- return instance.getColumnCanPin(column.id);
1208
- },
1209
- getPinnedIndex: function getPinnedIndex() {
1210
- return instance.getColumnPinnedIndex(column.id);
1211
- },
1212
- getIsPinned: function getIsPinned() {
1213
- return instance.getColumnIsPinned(column.id);
1214
- },
1215
- pin: function pin(position) {
1216
- return instance.pinColumn(column.id, position);
1217
- }
1218
- };
1219
- }
1220
- function getInstance$5(instance) {
1221
- return {
1222
- setColumnPinning: function setColumnPinning(updater) {
1223
- return instance.options.onColumnPinningChange == null ? void 0 : instance.options.onColumnPinningChange(updater, functionalUpdate(updater, instance.getState().columnPinning));
1224
- },
1225
- resetColumnPinning: function resetColumnPinning() {
1226
- var _instance$options$ini, _instance$options$ini2;
1227
-
1228
- return instance.setColumnPinning((_instance$options$ini = (_instance$options$ini2 = instance.options.initialState) == null ? void 0 : _instance$options$ini2.columnPinning) != null ? _instance$options$ini : {});
1229
- },
1230
- pinColumn: function pinColumn(columnId, position) {
1231
- var column = instance.getColumn(columnId);
1232
- var columnIds = column == null ? void 0 : column.getLeafColumns().map(function (d) {
1233
- return d.id;
1234
- }).filter(Boolean);
1235
- instance.setColumnPinning(function (old) {
1236
- var _old$left3, _old$right3;
1237
-
1238
- if (position === 'right') {
1239
- var _old$left, _old$right;
1240
-
1241
- return {
1242
- left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(function (d) {
1243
- return !(columnIds != null && columnIds.includes(d));
1244
- }),
1245
- right: [].concat(((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(function (d) {
1246
- return !(columnIds != null && columnIds.includes(d));
1247
- }), columnIds)
1248
- };
1249
- }
1250
-
1251
- if (position === 'left') {
1252
- var _old$left2, _old$right2;
1253
-
1254
- return {
1255
- left: [].concat(((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(function (d) {
1256
- return !(columnIds != null && columnIds.includes(d));
1257
- }), columnIds),
1258
- right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(function (d) {
1259
- return !(columnIds != null && columnIds.includes(d));
1260
- })
1261
- };
1262
- }
1263
-
1264
- return {
1265
- left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(function (d) {
1266
- return !(columnIds != null && columnIds.includes(d));
1267
- }),
1268
- right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(function (d) {
1269
- return !(columnIds != null && columnIds.includes(d));
1270
- })
1271
- };
1272
- });
1273
- },
1274
- getColumnCanPin: function getColumnCanPin(columnId) {
1275
- var column = instance.getColumn(columnId);
1276
-
1277
- if (!column) {
1278
- throw new Error();
1279
- }
1280
-
1281
- var leafColumns = column.getLeafColumns();
1282
- return leafColumns.some(function (d) {
1283
- var _ref, _ref2, _d$enablePinning;
1284
-
1285
- return (_ref = (_ref2 = (_d$enablePinning = d.enablePinning) != null ? _d$enablePinning : instance.options.enablePinning) != null ? _ref2 : d.defaultCanPin) != null ? _ref : !!d.accessorFn;
1286
- });
1287
- },
1288
- getColumnIsPinned: function getColumnIsPinned(columnId) {
1289
- var column = instance.getColumn(columnId);
1290
-
1291
- if (!column) {
1292
- throw new Error();
1293
- }
1294
-
1295
- var leafColumnIds = column.getLeafColumns().map(function (d) {
1296
- return d.id;
1297
- });
1298
- var _instance$getState$co = instance.getState().columnPinning,
1299
- left = _instance$getState$co.left,
1300
- right = _instance$getState$co.right;
1301
- var isLeft = leafColumnIds.some(function (d) {
1302
- return left == null ? void 0 : left.includes(d);
1303
- });
1304
- var isRight = leafColumnIds.some(function (d) {
1305
- return right == null ? void 0 : right.includes(d);
1306
- });
1307
-
1308
- if (isLeft && isRight) {
1309
- return 'both';
1310
- }
1311
-
1312
- return isLeft ? 'left' : isRight ? 'right' : false;
1313
- },
1314
- getColumnPinnedIndex: function getColumnPinnedIndex(columnId) {
1315
- var _instance$getState$co2, _instance$getState$co3, _instance$getState$co4;
1316
-
1317
- var position = instance.getColumnIsPinned(columnId);
1318
-
1319
- if (position === 'both') {
1320
- {
1321
- console.warn("Column " + columnId + " has leaf columns that are pinned on both sides");
1322
- }
1323
-
1324
- throw new Error();
1325
- }
1326
-
1327
- 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;
1328
- }
1329
- };
1330
- }
1331
-
1332
- //
1333
- var defaultColumnSizing = {
1334
- width: 150,
1335
- minWidth: 20,
1336
- maxWidth: Number.MAX_SAFE_INTEGER
1337
- };
1338
- function getInitialState$3() {
1339
- return {
1340
- columnSizing: {},
1341
- columnSizingInfo: {
1342
- startOffset: null,
1343
- startSize: null,
1344
- deltaOffset: null,
1345
- deltaPercentage: null,
1346
- isResizingColumn: false,
1347
- columnSizingStart: []
1348
- }
1349
- };
1350
- }
1351
- function getDefaultOptions$3(instance) {
1352
- return {
1353
- columnResizeMode: 'onEnd',
1354
- onColumnSizingChange: makeStateUpdater('columnSizing', instance),
1355
- onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance)
1356
- };
1357
- }
1358
- function getInstance$4(instance) {
1359
- return {
1360
- setColumnSizing: function setColumnSizing(updater) {
1361
- return instance.options.onColumnSizingChange == null ? void 0 : instance.options.onColumnSizingChange(updater, functionalUpdate(updater, instance.getState().columnSizing));
1362
- },
1363
- setColumnSizingInfo: function setColumnSizingInfo(updater) {
1364
- return instance.options.onColumnSizingInfoChange == null ? void 0 : instance.options.onColumnSizingInfoChange(updater, functionalUpdate(updater, instance.getState().columnSizingInfo));
1365
- },
1366
- resetColumnSizing: function resetColumnSizing() {
1367
- var _instance$initialStat;
1368
-
1369
- instance.setColumnSizing((_instance$initialStat = instance.initialState.columnSizing) != null ? _instance$initialStat : {});
1370
- },
1371
- resetHeaderSizeInfo: function resetHeaderSizeInfo() {
1372
- var _instance$initialStat2;
1373
-
1374
- instance.setColumnSizingInfo((_instance$initialStat2 = instance.initialState.columnSizingInfo) != null ? _instance$initialStat2 : {});
1375
- },
1376
- resetColumnSize: function resetColumnSize(columnId) {
1377
- instance.setColumnSizing(function (_ref) {
1378
- _ref[columnId];
1379
- var rest = _objectWithoutPropertiesLoose(_ref, [columnId].map(_toPropertyKey));
1380
-
1381
- return rest;
1382
- });
1383
- },
1384
- resetHeaderSize: function resetHeaderSize(headerId) {
1385
- var header = instance.getHeader(headerId);
1386
-
1387
- if (!header) {
1388
- return;
1389
- }
1390
-
1391
- return instance.resetColumnSize(header.column.id);
1392
- },
1393
- getHeaderCanResize: function getHeaderCanResize(headerId) {
1394
- var header = instance.getHeader(headerId);
1395
-
1396
- if (!header) {
1397
- throw new Error();
1398
- }
1399
-
1400
- return instance.getColumnCanResize(header.column.id);
1401
- },
1402
- getColumnCanResize: function getColumnCanResize(columnId) {
1403
- var _ref2, _ref3, _column$enableResizin;
1404
-
1405
- var column = instance.getColumn(columnId);
1406
-
1407
- if (!column) {
1408
- throw new Error();
1409
- }
1410
-
1411
- return (_ref2 = (_ref3 = (_column$enableResizin = column.enableResizing) != null ? _column$enableResizin : instance.options.enableColumnResizing) != null ? _ref3 : column.defaultCanResize) != null ? _ref2 : true;
1412
- },
1413
- getColumnIsResizing: function getColumnIsResizing(columnId) {
1414
- var column = instance.getColumn(columnId);
1415
-
1416
- if (!column) {
1417
- throw new Error();
1418
- }
1419
-
1420
- return instance.getState().columnSizingInfo.isResizingColumn === columnId;
1421
- },
1422
- getHeaderIsResizing: function getHeaderIsResizing(headerId) {
1423
- var header = instance.getHeader(headerId);
1424
-
1425
- if (!header) {
1426
- throw new Error();
1427
- }
1428
-
1429
- return instance.getColumnIsResizing(header.column.id);
1430
- },
1431
- getHeaderResizerProps: function getHeaderResizerProps(headerId, userProps) {
1432
- var header = instance.getHeader(headerId);
1433
-
1434
- if (!header) {
1435
- return;
1436
- }
1437
-
1438
- var column = instance.getColumn(header.column.id);
1439
-
1440
- if (!column) {
1441
- return;
1442
- }
1443
-
1444
- var canResize = column.getCanResize();
1445
-
1446
- var onResizeStart = function onResizeStart(e) {
1447
- if (isTouchStartEvent(e)) {
1448
- // lets not respond to multiple touches (e.g. 2 or 3 fingers)
1449
- if (e.touches && e.touches.length > 1) {
1450
- return;
1451
- }
1452
- }
1453
-
1454
- var columnSizingStart = header.getLeafHeaders().map(function (d) {
1455
- return [d.column.id, d.getWidth()];
1456
- });
1457
- var clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;
1458
-
1459
- var updateOffset = function updateOffset(eventType, clientXPos) {
1460
- if (typeof clientXPos !== 'number') {
1461
- return;
1462
- }
1463
-
1464
- var newColumnSizing = {};
1465
- instance.setColumnSizingInfo(function (old) {
1466
- var _old$startOffset, _old$startSize;
1467
-
1468
- var deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);
1469
- var deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);
1470
- old.columnSizingStart.forEach(function (_ref4) {
1471
- var columnId = _ref4[0],
1472
- headerWidth = _ref4[1];
1473
- newColumnSizing[columnId] = Math.max(headerWidth + headerWidth * deltaPercentage, 0);
1474
- });
1475
- return _extends({}, old, {
1476
- deltaOffset: deltaOffset,
1477
- deltaPercentage: deltaPercentage
1478
- });
1479
- });
1480
-
1481
- if (instance.options.columnResizeMode === 'onChange' || eventType === 'end') {
1482
- instance.setColumnSizing(function (old) {
1483
- return _extends({}, old, newColumnSizing);
1484
- });
1485
- }
1486
- };
1487
-
1488
- var onMove = function onMove(clientXPos) {
1489
- return updateOffset('move', clientXPos);
1490
- };
1491
-
1492
- var onEnd = function onEnd(clientXPos) {
1493
- updateOffset('end', clientXPos);
1494
- instance.setColumnSizingInfo(function (old) {
1495
- return _extends({}, old, {
1496
- isResizingColumn: false,
1497
- startOffset: null,
1498
- startSize: null,
1499
- deltaOffset: null,
1500
- deltaPercentage: null,
1501
- columnSizingStart: []
1502
- });
1503
- });
1504
- };
1505
-
1506
- var mouseEvents = {
1507
- moveHandler: function moveHandler(e) {
1508
- return onMove(e.clientX);
1509
- },
1510
- upHandler: function upHandler(e) {
1511
- document.removeEventListener('mousemove', mouseEvents.moveHandler);
1512
- document.removeEventListener('mouseup', mouseEvents.upHandler);
1513
- onEnd(e.clientX);
1514
- }
1515
- };
1516
- var touchEvents = {
1517
- moveHandler: function moveHandler(e) {
1518
- if (e.cancelable) {
1519
- e.preventDefault();
1520
- e.stopPropagation();
1521
- }
1522
-
1523
- onMove(e.touches[0].clientX);
1524
- return false;
1525
- },
1526
- upHandler: function upHandler(e) {
1527
- document.removeEventListener('touchmove', touchEvents.moveHandler);
1528
- document.removeEventListener('touchend', touchEvents.upHandler);
1529
-
1530
- if (e.cancelable) {
1531
- e.preventDefault();
1532
- e.stopPropagation();
1533
- }
1534
-
1535
- onEnd(e.touches[0].clientX);
1536
- }
1537
- };
1538
- var passiveIfSupported = passiveEventSupported() ? {
1539
- passive: false
1540
- } : false;
1541
-
1542
- if (isTouchStartEvent(e)) {
1543
- document.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);
1544
- document.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);
1545
- } else {
1546
- document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);
1547
- document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);
1548
- }
1549
-
1550
- instance.setColumnSizingInfo(function (old) {
1551
- return _extends({}, old, {
1552
- startOffset: clientX,
1553
- startSize: header.getWidth(),
1554
- deltaOffset: 0,
1555
- deltaPercentage: 0,
1556
- columnSizingStart: columnSizingStart,
1557
- isResizingColumn: header.column.id
1558
- });
1559
- });
1560
- };
1561
-
1562
- var initialProps = canResize ? {
1563
- title: 'Toggle Grouping',
1564
- draggable: false,
1565
- role: 'separator',
1566
- onMouseDown: function onMouseDown(e) {
1567
- e.persist();
1568
- onResizeStart(e);
1569
- },
1570
- onTouchStart: function onTouchStart(e) {
1571
- e.persist();
1572
- onResizeStart(e);
1573
- }
1574
- } : {};
1575
- return propGetter(initialProps, userProps);
1576
- }
1577
- };
1578
- }
1579
- function createColumn$2(column, instance) {
1580
- return {
1581
- getIsResizing: function getIsResizing() {
1582
- return instance.getColumnIsResizing(column.id);
1583
- },
1584
- getCanResize: function getCanResize() {
1585
- return instance.getColumnCanResize(column.id);
1586
- },
1587
- resetSize: function resetSize() {
1588
- return instance.resetColumnSize(column.id);
1589
- }
1590
- };
1591
- }
1592
- function createHeader(header, instance) {
1593
- return {
1594
- getIsResizing: function getIsResizing() {
1595
- return instance.getHeaderIsResizing(header.id);
1596
- },
1597
- getCanResize: function getCanResize() {
1598
- return instance.getHeaderCanResize(header.id);
1599
- },
1600
- getResizerProps: function getResizerProps(userProps) {
1601
- return instance.getHeaderResizerProps(header.id, userProps);
1602
- },
1603
- resetSize: function resetSize() {
1604
- return instance.resetHeaderSize(header.id);
1605
- }
1606
- };
1607
- }
1608
- var passiveSupported = null;
1609
- function passiveEventSupported() {
1610
- if (typeof passiveSupported === 'boolean') return passiveSupported;
1611
- var supported = false;
1612
-
1613
- try {
1614
- var options = {
1615
- get passive() {
1616
- supported = true;
1617
- return false;
1618
- }
1619
-
1620
- };
1621
-
1622
- var noop = function noop() {};
1623
-
1624
- window.addEventListener('test', noop, options);
1625
- window.removeEventListener('test', noop);
1626
- } catch (err) {
1627
- supported = false;
1628
- }
1629
-
1630
- passiveSupported = supported;
1631
- return passiveSupported;
1632
- }
1633
-
1634
- function isTouchStartEvent(e) {
1635
- return e.type === 'touchstart';
1636
- }
1637
-
1638
- //
1639
- function createRow$1(row, instance) {
1640
- return {
1641
- _getAllVisibleCells: memo(function () {
1642
- return [row.getAllCells().filter(function (cell) {
1643
- return cell.column.getIsVisible();
1644
- }).map(function (d) {
1645
- return d.id;
1646
- }).join('_')];
1647
- }, function (_) {
1648
- return row.getAllCells().filter(function (cell) {
1649
- return cell.column.getIsVisible();
1650
- });
1651
- }, 'row._getAllVisibleCells', instance.options.debug),
1652
- getVisibleCells: memo(function () {
1653
- return [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()];
1654
- }, function (left, center, right) {
1655
- return [].concat(left, center, right);
1656
- }, 'row.getVisibleCells', instance.options.debug),
1657
- getCenterVisibleCells: memo(function () {
1658
- return [row._getAllVisibleCells(), instance.getState().columnPinning.left, instance.getState().columnPinning.right];
1659
- }, function (allCells, left, right) {
1660
- var leftAndRight = [].concat(left != null ? left : [], right != null ? right : []);
1661
- return allCells.filter(function (d) {
1662
- return !leftAndRight.includes(d.columnId);
1663
- });
1664
- }, 'row.getCenterVisibleCells', instance.options.debug),
1665
- getLeftVisibleCells: memo(function () {
1666
- return [row._getAllVisibleCells(), instance.getState().columnPinning.left,,];
1667
- }, function (allCells, left) {
1668
- var cells = (left != null ? left : []).map(function (columnId) {
1669
- return allCells.find(function (cell) {
1670
- return cell.columnId === columnId;
1671
- });
1672
- }).filter(Boolean);
1673
- return cells;
1674
- }, 'row.getLeftVisibleCells', instance.options.debug),
1675
- getRightVisibleCells: memo(function () {
1676
- return [row._getAllVisibleCells(), instance.getState().columnPinning.right];
1677
- }, function (allCells, right) {
1678
- var cells = (right != null ? right : []).map(function (columnId) {
1679
- return allCells.find(function (cell) {
1680
- return cell.columnId === columnId;
1681
- });
1682
- }).filter(Boolean);
1683
- return cells;
1684
- }, 'row.getRightVisibleCells', instance.options.debug)
1685
- };
1686
- }
1687
- function getInstance$3(instance) {
1688
- return {
1689
- createHeader: function createHeader$1(column, options) {
1690
- var _options$id;
1691
-
1692
- var id = (_options$id = options.id) != null ? _options$id : column.id;
1693
- var header = {
1694
- id: id,
1695
- column: column,
1696
- isPlaceholder: options.isPlaceholder,
1697
- placeholderId: options.placeholderId,
1698
- depth: options.depth,
1699
- subHeaders: [],
1700
- colSpan: 0,
1701
- rowSpan: 0,
1702
- getWidth: function getWidth() {
1703
- var sum = 0;
1704
-
1705
- var recurse = function recurse(header) {
1706
- if (header.subHeaders.length) {
1707
- header.subHeaders.forEach(recurse);
1708
- } else {
1709
- var _header$column$getWid;
1710
-
1711
- sum += (_header$column$getWid = header.column.getWidth()) != null ? _header$column$getWid : 0;
1712
- }
1713
- };
1714
-
1715
- recurse(header);
1716
- return sum;
1717
- },
1718
- getLeafHeaders: function getLeafHeaders() {
1719
- var leafHeaders = [];
1720
-
1721
- var recurseHeader = function recurseHeader(h) {
1722
- if (h.subHeaders && h.subHeaders.length) {
1723
- h.subHeaders.map(recurseHeader);
1724
- }
1725
-
1726
- leafHeaders.push(h);
1727
- };
1728
-
1729
- recurseHeader(header);
1730
- return leafHeaders;
1731
- },
1732
- getHeaderProps: function getHeaderProps(userProps) {
1733
- return instance.getHeaderProps(header.id, userProps);
1734
- },
1735
- getFooterProps: function getFooterProps(userProps) {
1736
- return instance.getFooterProps(header.id, userProps);
1737
- },
1738
- renderHeader: function renderHeader() {
1739
- return flexRender(column.header, {
1740
- header: header,
1741
- column: column
1742
- });
1743
- },
1744
- renderFooter: function renderFooter() {
1745
- return flexRender(column.footer, {
1746
- header: header,
1747
- column: column
1748
- });
1749
- }
1750
- };
1751
- header = Object.assign(header, createHeader(header, instance)); // Yes, we have to convert instance to uknown, because we know more than the compiler here.
1752
-
1753
- return header;
1754
- },
1755
- // Header Groups
1756
- getHeaderGroups: memo(function () {
1757
- return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right];
1758
- }, function (allColumns, leafColumns, left, right) {
1759
- var leftColumns = leafColumns.filter(function (column) {
1760
- return left == null ? void 0 : left.includes(column.id);
1761
- });
1762
- var rightColumns = leafColumns.filter(function (column) {
1763
- return right == null ? void 0 : right.includes(column.id);
1764
- });
1765
- var centerColumns = leafColumns.filter(function (column) {
1766
- return !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id));
1767
- });
1768
- var headerGroups = buildHeaderGroups(allColumns, [].concat(leftColumns, centerColumns, rightColumns), instance);
1769
- return headerGroups;
1770
- }, 'getHeaderGroups', instance.options.debug),
1771
- getCenterHeaderGroups: memo(function () {
1772
- return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right];
1773
- }, function (allColumns, leafColumns, left, right) {
1774
- leafColumns = leafColumns.filter(function (column) {
1775
- return !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id));
1776
- });
1777
- return buildHeaderGroups(allColumns, leafColumns, instance, 'center');
1778
- }, 'getCenterHeaderGroups', instance.options.debug),
1779
- getLeftHeaderGroups: memo(function () {
1780
- return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left];
1781
- }, function (allColumns, leafColumns, left) {
1782
- leafColumns = leafColumns.filter(function (column) {
1783
- return left == null ? void 0 : left.includes(column.id);
1784
- });
1785
- return buildHeaderGroups(allColumns, leafColumns, instance, 'left');
1786
- }, 'getLeftHeaderGroups', instance.options.debug),
1787
- getRightHeaderGroups: memo(function () {
1788
- return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.right];
1789
- }, function (allColumns, leafColumns, right) {
1790
- leafColumns = leafColumns.filter(function (column) {
1791
- return right == null ? void 0 : right.includes(column.id);
1792
- });
1793
- return buildHeaderGroups(allColumns, leafColumns, instance, 'right');
1794
- }, 'getRightHeaderGroups', instance.options.debug),
1795
- // Footer Groups
1796
- getFooterGroups: memo(function () {
1797
- return [instance.getHeaderGroups()];
1798
- }, function (headerGroups) {
1799
- return [].concat(headerGroups).reverse();
1800
- }, 'getFooterGroups', instance.options.debug),
1801
- getLeftFooterGroups: memo(function () {
1802
- return [instance.getLeftHeaderGroups()];
1803
- }, function (headerGroups) {
1804
- return [].concat(headerGroups).reverse();
1805
- }, 'getLeftFooterGroups', instance.options.debug),
1806
- getCenterFooterGroups: memo(function () {
1807
- return [instance.getCenterHeaderGroups()];
1808
- }, function (headerGroups) {
1809
- return [].concat(headerGroups).reverse();
1810
- }, 'getCenterFooterGroups', instance.options.debug),
1811
- getRightFooterGroups: memo(function () {
1812
- return [instance.getRightHeaderGroups()];
1813
- }, function (headerGroups) {
1814
- return [].concat(headerGroups).reverse();
1815
- }, 'getRightFooterGroups', instance.options.debug),
1816
- // Flat Headers
1817
- getFlatHeaders: memo(function () {
1818
- return [instance.getHeaderGroups()];
1819
- }, function (headerGroups) {
1820
- return headerGroups.map(function (headerGroup) {
1821
- return headerGroup.headers;
1822
- }).flat();
1823
- }, 'getFlatHeaders', instance.options.debug),
1824
- getLeftFlatHeaders: memo(function () {
1825
- return [instance.getLeftHeaderGroups()];
1826
- }, function (left) {
1827
- return left.map(function (headerGroup) {
1828
- return headerGroup.headers;
1829
- }).flat();
1830
- }, 'getLeftFlatHeaders', instance.options.debug),
1831
- getCenterFlatHeaders: memo(function () {
1832
- return [instance.getCenterHeaderGroups()];
1833
- }, function (left) {
1834
- return left.map(function (headerGroup) {
1835
- return headerGroup.headers;
1836
- }).flat();
1837
- }, 'getCenterFlatHeaders', instance.options.debug),
1838
- getRightFlatHeaders: memo(function () {
1839
- return [instance.getRightHeaderGroups()];
1840
- }, function (left) {
1841
- return left.map(function (headerGroup) {
1842
- return headerGroup.headers;
1843
- }).flat();
1844
- }, 'getRightFlatHeaders', instance.options.debug),
1845
- // Leaf Headers
1846
- getCenterLeafHeaders: memo(function () {
1847
- return [instance.getCenterFlatHeaders()];
1848
- }, function (flatHeaders) {
1849
- return flatHeaders.filter(function (header) {
1850
- var _header$subHeaders;
1851
-
1852
- return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);
1853
- });
1854
- }, 'getCenterLeafHeaders', instance.options.debug),
1855
- getLeftLeafHeaders: memo(function () {
1856
- return [instance.getLeftFlatHeaders()];
1857
- }, function (flatHeaders) {
1858
- return flatHeaders.filter(function (header) {
1859
- var _header$subHeaders2;
1860
-
1861
- return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);
1862
- });
1863
- }, 'getLeftLeafHeaders', instance.options.debug),
1864
- getRightLeafHeaders: memo(function () {
1865
- return [instance.getRightFlatHeaders()];
1866
- }, function (flatHeaders) {
1867
- return flatHeaders.filter(function (header) {
1868
- var _header$subHeaders3;
1869
-
1870
- return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);
1871
- });
1872
- }, 'getRightLeafHeaders', instance.options.debug),
1873
- getLeafHeaders: memo(function () {
1874
- return [instance.getLeftHeaderGroups(), instance.getCenterHeaderGroups(), instance.getRightHeaderGroups()];
1875
- }, function (left, center, right) {
1876
- var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;
1877
-
1878
- 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) {
1879
- return header.getLeafHeaders();
1880
- }).flat();
1881
- }, 'getLeafHeaders', instance.options.debug),
1882
- getHeader: function getHeader(id) {
1883
- var header = [].concat(instance.getFlatHeaders(), instance.getCenterFlatHeaders(), instance.getLeftFlatHeaders(), instance.getRightFlatHeaders()).find(function (d) {
1884
- return d.id === id;
1885
- });
1886
-
1887
- if (!header) {
1888
- {
1889
- console.warn("Could not find header with id: " + id);
1890
- }
1891
-
1892
- throw new Error();
1893
- }
1894
-
1895
- return header;
1896
- },
1897
- getHeaderGroupProps: function getHeaderGroupProps(id, userProps) {
1898
- var headerGroup = instance.getHeaderGroups().find(function (d) {
1899
- return d.id === id;
1900
- });
1901
-
1902
- if (!headerGroup) {
1903
- return;
1904
- }
1905
-
1906
- return propGetter({
1907
- key: headerGroup.id,
1908
- role: 'row'
1909
- }, userProps);
1910
- },
1911
- getFooterGroupProps: function getFooterGroupProps(id, userProps) {
1912
- var headerGroup = instance.getFooterGroups().find(function (d) {
1913
- return d.id === id;
1914
- });
1915
-
1916
- if (!headerGroup) {
1917
- return;
1918
- }
1919
-
1920
- var initialProps = {
1921
- key: headerGroup.id,
1922
- role: 'row'
1923
- };
1924
- return propGetter(initialProps, userProps);
1925
- },
1926
- getHeaderProps: function getHeaderProps(id, userProps) {
1927
- var header = instance.getHeader(id);
1928
-
1929
- if (!header) {
1930
- throw new Error();
1931
- }
1932
-
1933
- var initialProps = {
1934
- key: header.id,
1935
- role: 'columnheader',
1936
- colSpan: header.colSpan,
1937
- rowSpan: header.rowSpan
1938
- };
1939
- return propGetter(initialProps, userProps);
1940
- },
1941
- getFooterProps: function getFooterProps(id, userProps) {
1942
- var header = instance.getHeader(id);
1943
-
1944
- if (!header) {
1945
- return;
1946
- }
1947
-
1948
- var initialProps = {
1949
- key: header.id,
1950
- role: 'columnfooter',
1951
- colSpan: header.colSpan,
1952
- rowSpan: header.rowSpan
1953
- };
1954
- return propGetter(initialProps, userProps);
1955
- },
1956
- getTotalWidth: function getTotalWidth() {
1957
- var width = 0;
1958
- instance.getVisibleLeafColumns().forEach(function (column) {
1959
- var _column$getWidth;
1960
-
1961
- width += (_column$getWidth = column.getWidth()) != null ? _column$getWidth : 0;
1962
- });
1963
- return width;
1964
- }
1965
- };
1966
- }
1967
- function buildHeaderGroups(allColumns, columnsToGroup, instance, headerFamily) {
1968
- var _headerGroups$0$heade, _headerGroups$;
1969
-
1970
- // Find the max depth of the columns:
1971
- // build the leaf column row
1972
- // build each buffer row going up
1973
- // placeholder for non-existent level
1974
- // real column for existing level
1975
- var maxDepth = 0;
1976
-
1977
- var findMaxDepth = function findMaxDepth(columns, depth) {
1978
- if (depth === void 0) {
1979
- depth = 1;
1980
- }
1981
-
1982
- maxDepth = Math.max(maxDepth, depth);
1983
- columns.filter(function (column) {
1984
- return column.getIsVisible();
1985
- }).forEach(function (column) {
1986
- var _column$columns;
1987
-
1988
- if ((_column$columns = column.columns) != null && _column$columns.length) {
1989
- findMaxDepth(column.columns, depth + 1);
1990
- }
1991
- }, 0);
1992
- };
1993
-
1994
- findMaxDepth(allColumns);
1995
- var headerGroups = [];
1996
-
1997
- var createHeaderGroup = function createHeaderGroup(headersToGroup, depth) {
1998
- // The header group we are creating
1999
- var headerGroup = {
2000
- depth: depth,
2001
- id: [headerFamily, "" + depth].filter(Boolean).join('_'),
2002
- headers: [],
2003
- getHeaderGroupProps: function getHeaderGroupProps(getterValue) {
2004
- return instance.getHeaderGroupProps("" + depth, getterValue);
2005
- },
2006
- getFooterGroupProps: function getFooterGroupProps(getterValue) {
2007
- return instance.getFooterGroupProps("" + depth, getterValue);
2008
- }
2009
- }; // The parent columns we're going to scan next
2010
-
2011
- var parentHeaders = []; // Scan each column for parents
2012
-
2013
- headersToGroup.forEach(function (headerToGroup) {
2014
- // What is the latest (last) parent column?
2015
- var latestParentHeader = [].concat(parentHeaders).reverse()[0];
2016
- var isLeafHeader = headerToGroup.column.depth === headerGroup.depth;
2017
- var column;
2018
- var isPlaceholder = false;
2019
-
2020
- if (isLeafHeader && headerToGroup.column.parent) {
2021
- // The parent header is new
2022
- column = headerToGroup.column.parent;
2023
- } else {
2024
- // The parent header is repeated
2025
- column = headerToGroup.column;
2026
- isPlaceholder = true;
2027
- }
2028
-
2029
- var header = instance.createHeader(column, {
2030
- id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),
2031
- isPlaceholder: isPlaceholder,
2032
- placeholderId: isPlaceholder ? "" + parentHeaders.filter(function (d) {
2033
- return d.column === column;
2034
- }).length : undefined,
2035
- depth: depth
2036
- });
2037
-
2038
- if (!latestParentHeader || latestParentHeader.column !== header.column) {
2039
- header.subHeaders.push(headerToGroup);
2040
- parentHeaders.push(header);
2041
- } else {
2042
- latestParentHeader.subHeaders.push(headerToGroup);
2043
- } // if (!headerToGroup.isPlaceholder) {
2044
- // headerToGroup.column.header = headerToGroup;
2045
- // }
2046
-
2047
-
2048
- headerGroup.headers.push(headerToGroup);
2049
- });
2050
- headerGroups.push(headerGroup);
2051
-
2052
- if (depth > 0) {
2053
- createHeaderGroup(parentHeaders, depth - 1);
2054
- }
2055
- };
2056
-
2057
- var bottomHeaders = columnsToGroup.map(function (column) {
2058
- return instance.createHeader(column, {
2059
- depth: maxDepth
2060
- });
2061
- });
2062
- createHeaderGroup(bottomHeaders, maxDepth - 1);
2063
- headerGroups.reverse(); // headerGroups = headerGroups.filter(headerGroup => {
2064
- // return !headerGroup.headers.every(header => header.isPlaceholder)
2065
- // })
2066
-
2067
- var recurseHeadersForSpans = function recurseHeadersForSpans(headers) {
2068
- var filteredHeaders = headers.filter(function (header) {
2069
- return header.column.getIsVisible();
2070
- });
2071
- return filteredHeaders.map(function (header) {
2072
- var colSpan = 0;
2073
- var rowSpan = 0;
2074
- var childRowSpans = [0];
2075
-
2076
- if (header.subHeaders && header.subHeaders.length) {
2077
- childRowSpans = [];
2078
- recurseHeadersForSpans(header.subHeaders).forEach(function (_ref) {
2079
- var childColSpan = _ref.colSpan,
2080
- childRowSpan = _ref.rowSpan;
2081
- colSpan += childColSpan;
2082
- childRowSpans.push(childRowSpan);
2083
- });
2084
- } else {
2085
- colSpan = 1;
2086
- }
2087
-
2088
- var minChildRowSpan = Math.min.apply(Math, childRowSpans);
2089
- rowSpan = rowSpan + minChildRowSpan;
2090
- header.colSpan = colSpan > 0 ? colSpan : undefined;
2091
- header.rowSpan = rowSpan > 0 ? rowSpan : undefined;
2092
- return {
2093
- colSpan: colSpan,
2094
- rowSpan: rowSpan
2095
- };
2096
- });
2097
- };
2098
-
2099
- recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);
2100
- return headerGroups;
2101
- }
2102
-
2103
- var filterTypes = {
2104
- includesString: includesString,
2105
- includesStringSensitive: includesStringSensitive,
2106
- equalsString: equalsString,
2107
- equalsStringSensitive: equalsStringSensitive,
2108
- arrIncludes: arrIncludes,
2109
- arrIncludesAll: arrIncludesAll,
2110
- equals: equals,
2111
- weakEquals: weakEquals,
2112
- betweenNumberRange: betweenNumberRange
2113
- };
2114
-
2115
- function includesString(rows, columnIds, filterValue) {
2116
- var search = String(filterValue).toLowerCase();
2117
- rows = rows.filter(function (row) {
2118
- return columnIds.some(function (id) {
2119
- return String(row.values[id]).toLowerCase().includes(search);
2120
- });
2121
- });
2122
- return rows;
2123
- }
2124
-
2125
- includesString.autoRemove = function (val) {
2126
- return testFalsey(val);
2127
- };
2128
-
2129
- function includesStringSensitive(rows, columnIds, filterValue) {
2130
- var search = String(filterValue);
2131
- rows = rows.filter(function (row) {
2132
- return columnIds.some(function (id) {
2133
- return String(row.values[id]).includes(search);
2134
- });
2135
- });
2136
- return rows;
2137
- }
2138
-
2139
- includesStringSensitive.autoRemove = function (val) {
2140
- return testFalsey(val);
2141
- };
2142
-
2143
- function equalsString(rows, columnIds, filterValue) {
2144
- var search = String(filterValue).toLowerCase();
2145
- return rows.filter(function (row) {
2146
- return columnIds.some(function (id) {
2147
- var rowValue = row.values[id];
2148
- return rowValue !== undefined ? String(rowValue).toLowerCase() === search : true;
2149
- });
2150
- });
2151
- }
2152
-
2153
- equalsString.autoRemove = function (val) {
2154
- return testFalsey(val);
2155
- };
2156
-
2157
- function equalsStringSensitive(rows, columnIds, filterValue) {
2158
- var search = String(filterValue);
2159
- return rows.filter(function (row) {
2160
- return columnIds.some(function (id) {
2161
- var rowValue = row.values[id];
2162
- return rowValue !== undefined ? String(rowValue) === search : true;
2163
- });
2164
- });
2165
- }
2166
-
2167
- equalsStringSensitive.autoRemove = function (val) {
2168
- return testFalsey(val);
2169
- };
2170
-
2171
- function arrIncludes(rows, columnIds, filterValue) {
2172
- return rows.filter(function (row) {
2173
- return columnIds.some(function (id) {
2174
- var rowValue = row.values[id];
2175
- return rowValue.includes(filterValue);
2176
- });
2177
- });
2178
- }
2179
-
2180
- arrIncludes.autoRemove = function (val) {
2181
- return testFalsey(val) || !(val != null && val.length);
2182
- };
2183
-
2184
- function arrIncludesAll(rows, columnIds, filterValue) {
2185
- return rows.filter(function (row) {
2186
- return columnIds.some(function (id) {
2187
- var rowValue = row.values[id];
2188
- return rowValue && rowValue.length && filterValue.every(function (val) {
2189
- return rowValue.includes(val);
2190
- });
2191
- });
2192
- });
2193
- }
2194
-
2195
- arrIncludesAll.autoRemove = function (val) {
2196
- return testFalsey(val) || !(val != null && val.length);
2197
- };
2198
-
2199
- function equals(rows, columnIds, filterValue) {
2200
- return rows.filter(function (row) {
2201
- return columnIds.some(function (id) {
2202
- var rowValue = row.values[id];
2203
- return rowValue === filterValue;
2204
- });
2205
- });
2206
- }
2207
-
2208
- equals.autoRemove = function (val) {
2209
- return testFalsey(val);
2210
- };
2211
-
2212
- function weakEquals(rows, columnIds, filterValue) {
2213
- return rows.filter(function (row) {
2214
- return columnIds.some(function (id) {
2215
- var rowValue = row.values[id]; // eslint-disable-next-line eqeqeq
2216
-
2217
- return rowValue == filterValue;
2218
- });
2219
- });
2220
- }
2221
-
2222
- weakEquals.autoRemove = function (val) {
2223
- return testFalsey(val);
2224
- };
2225
-
2226
- function betweenNumberRange(rows, columnIds, filterValue) {
2227
- var _ref = filterValue || [],
2228
- unsafeMin = _ref[0],
2229
- unsafeMax = _ref[1];
2230
-
2231
- var parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;
2232
- var parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;
2233
- var min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;
2234
- var max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;
2235
-
2236
- if (min > max) {
2237
- var temp = min;
2238
- min = max;
2239
- max = temp;
2240
- }
2241
-
2242
- return rows.filter(function (row) {
2243
- return columnIds.some(function (id) {
2244
- var rowValue = row.values[id];
2245
- return rowValue >= min && rowValue <= max;
2246
- });
2247
- });
2248
- }
2249
-
2250
- betweenNumberRange.autoRemove = function (val) {
2251
- return testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);
2252
- }; // Utils
2253
-
2254
-
2255
- function testFalsey(val) {
2256
- return val === undefined || val === null || val === '';
2257
- }
2258
-
2259
- //
2260
- function getDefaultColumn$1() {
2261
- return {
2262
- filterType: 'auto'
2263
- };
2264
- }
2265
- function getInitialState$2() {
2266
- return {
2267
- columnFilters: [],
2268
- globalFilter: undefined
2269
- };
2270
- }
2271
- function getDefaultOptions$2(instance) {
2272
- return {
2273
- onColumnFiltersChange: makeStateUpdater('columnFilters', instance),
2274
- onGlobalFilterChange: makeStateUpdater('globalFilter', instance),
2275
- autoResetColumnFilters: true,
2276
- filterFromChildrenUp: true,
2277
- autoResetGlobalFilter: true,
2278
- globalFilterType: 'auto',
2279
- getColumnCanGlobalFilterFn: function getColumnCanGlobalFilterFn(column) {
2280
- var _instance$getCoreFlat, _instance$getCoreFlat2;
2281
-
2282
- var value = (_instance$getCoreFlat = instance.getCoreFlatRows()[0]) == null ? void 0 : (_instance$getCoreFlat2 = _instance$getCoreFlat.getAllCellsByColumnId()[column.id]) == null ? void 0 : _instance$getCoreFlat2.value;
2283
- return typeof value === 'string';
2284
- }
2285
- };
2286
- }
2287
- function createColumn$1(column, instance) {
2288
- var getFacetInfo = memo(function () {
2289
- return [column.getPreFilteredRows()];
2290
- }, function (rows) {
2291
- var _rows$0$values$column, _rows$, _rows$0$values$column2, _rows$2;
2292
-
2293
- if (rows === void 0) {
2294
- rows = [];
2295
- }
2296
-
2297
- var preFilteredUniqueValues = new Map();
2298
- 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];
2299
-
2300
- for (var i = 0; i < rows.length; i++) {
2301
- var _rows$i;
2302
-
2303
- var _value = (_rows$i = rows[i]) == null ? void 0 : _rows$i.values[column.id];
2304
-
2305
- if (preFilteredUniqueValues.has(_value)) {
2306
- var _preFilteredUniqueVal;
2307
-
2308
- preFilteredUniqueValues.set(_value, ((_preFilteredUniqueVal = preFilteredUniqueValues.get(_value)) != null ? _preFilteredUniqueVal : 0) + 1);
2309
- } else {
2310
- preFilteredUniqueValues.set(_value, 1);
2311
- }
2312
-
2313
- if (_value < preFilteredMinMaxValues[0]) {
2314
- preFilteredMinMaxValues[0] = _value;
2315
- } else if (_value > preFilteredMinMaxValues[1]) {
2316
- preFilteredMinMaxValues[1] = _value;
2317
- }
2318
- }
2319
-
2320
- return {
2321
- preFilteredUniqueValues: preFilteredUniqueValues,
2322
- preFilteredMinMaxValues: preFilteredMinMaxValues
2323
- };
2324
- }, 'column.getFacetInfo', instance.options.debug);
2325
- return {
2326
- filterType: column.filterType,
2327
- getCanColumnFilter: function getCanColumnFilter() {
2328
- return instance.getColumnCanColumnFilter(column.id);
2329
- },
2330
- getCanGlobalFilter: function getCanGlobalFilter() {
2331
- return instance.getColumnCanGlobalFilter(column.id);
2332
- },
2333
- getColumnFilterIndex: function getColumnFilterIndex() {
2334
- return instance.getColumnFilterIndex(column.id);
2335
- },
2336
- getIsColumnFiltered: function getIsColumnFiltered() {
2337
- return instance.getColumnIsFiltered(column.id);
2338
- },
2339
- getColumnFilterValue: function getColumnFilterValue() {
2340
- return instance.getColumnFilterValue(column.id);
2341
- },
2342
- setColumnFilterValue: function setColumnFilterValue(val) {
2343
- return instance.setColumnFilterValue(column.id, val);
2344
- },
2345
- getPreFilteredUniqueValues: function getPreFilteredUniqueValues() {
2346
- return getFacetInfo().preFilteredUniqueValues;
2347
- },
2348
- getPreFilteredMinMaxValues: function getPreFilteredMinMaxValues() {
2349
- return getFacetInfo().preFilteredMinMaxValues;
2350
- },
2351
- getPreFilteredRows: function getPreFilteredRows() {
2352
- return undefined;
2353
- }
2354
- };
2355
- }
2356
- function getInstance$2(instance) {
2357
- return {
2358
- getColumnAutoFilterFn: function getColumnAutoFilterFn(columnId) {
2359
- var firstRow = instance.getCoreFlatRows()[0];
2360
- var value = firstRow == null ? void 0 : firstRow.values[columnId];
2361
-
2362
- if (typeof value === 'string') {
2363
- return filterTypes.includesString;
2364
- }
2365
-
2366
- if (typeof value === 'number') {
2367
- return filterTypes.betweenNumberRange;
2368
- }
2369
-
2370
- if (value !== null && typeof value === 'object') {
2371
- return filterTypes.equals;
2372
- }
2373
-
2374
- if (Array.isArray(value)) {
2375
- return filterTypes.arrIncludes;
2376
- }
2377
-
2378
- return filterTypes.weakEquals;
2379
- },
2380
- getGlobalAutoFilterFn: function getGlobalAutoFilterFn() {
2381
- return filterTypes.includesString;
2382
- },
2383
- getColumnFilterFn: function getColumnFilterFn(columnId) {
2384
- var _ref;
2385
-
2386
- var column = instance.getColumn(columnId);
2387
- var userFilterTypes = instance.options.filterTypes;
2388
-
2389
- if (!column) {
2390
- throw new Error();
2391
- }
2392
-
2393
- 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];
2394
- },
2395
- getGlobalFilterFn: function getGlobalFilterFn() {
2396
- var _ref2;
2397
-
2398
- var _instance$options = instance.options,
2399
- userFilterTypes = _instance$options.filterTypes,
2400
- globalFilterType = _instance$options.globalFilterType;
2401
- return isFunction(globalFilterType) ? globalFilterType : globalFilterType === 'auto' ? instance.getGlobalAutoFilterFn() : (_ref2 = userFilterTypes == null ? void 0 : userFilterTypes[globalFilterType]) != null ? _ref2 : filterTypes[globalFilterType];
2402
- },
2403
- setColumnFilters: function setColumnFilters(updater) {
2404
- var leafColumns = instance.getAllLeafColumns();
2405
-
2406
- var updateFn = function updateFn(old) {
2407
- var _functionalUpdate;
2408
-
2409
- return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(function (filter) {
2410
- var column = leafColumns.find(function (d) {
2411
- return d.id === filter.id;
2412
- });
2413
-
2414
- if (column) {
2415
- var filterFn = instance.getColumnFilterFn(column.id);
2416
-
2417
- if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {
2418
- return false;
2419
- }
2420
- }
2421
-
2422
- return true;
2423
- });
2424
- };
2425
-
2426
- instance.options.onColumnFiltersChange == null ? void 0 : instance.options.onColumnFiltersChange(updateFn, updateFn(instance.getState().columnFilters));
2427
- },
2428
- setGlobalFilter: function setGlobalFilter(updater) {
2429
- instance.options.onGlobalFilterChange == null ? void 0 : instance.options.onGlobalFilterChange(updater, functionalUpdate(updater, instance.getState().globalFilter));
2430
- },
2431
- resetGlobalFilter: function resetGlobalFilter() {
2432
- instance.setGlobalFilter(undefined);
2433
- },
2434
- getColumnCanColumnFilter: function getColumnCanColumnFilter(columnId) {
2435
- var _ref3, _ref4, _ref5, _ref6, _ref7, _column$enableAllFilt;
2436
-
2437
- var column = instance.getColumn(columnId);
2438
-
2439
- if (!column) {
2440
- throw new Error();
2441
- }
2442
-
2443
- 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;
2444
- },
2445
- getColumnCanGlobalFilter: function getColumnCanGlobalFilter(columnId) {
2446
- var _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _instance$options$ena;
2447
-
2448
- var column = instance.getColumn(columnId);
2449
-
2450
- if (!column) {
2451
- throw new Error();
2452
- }
2453
-
2454
- 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;
2455
- },
2456
- getColumnIsFiltered: function getColumnIsFiltered(columnId) {
2457
- return instance.getColumnFilterIndex(columnId) > -1;
2458
- },
2459
- getColumnFilterValue: function getColumnFilterValue(columnId) {
2460
- var _instance$getState$co, _instance$getState$co2;
2461
-
2462
- return (_instance$getState$co = instance.getState().columnFilters) == null ? void 0 : (_instance$getState$co2 = _instance$getState$co.find(function (d) {
2463
- return d.id === columnId;
2464
- })) == null ? void 0 : _instance$getState$co2.value;
2465
- },
2466
- getColumnFilterIndex: function getColumnFilterIndex(columnId) {
2467
- var _instance$getState$co3, _instance$getState$co4;
2468
-
2469
- return (_instance$getState$co3 = (_instance$getState$co4 = instance.getState().columnFilters) == null ? void 0 : _instance$getState$co4.findIndex(function (d) {
2470
- return d.id === columnId;
2471
- })) != null ? _instance$getState$co3 : -1;
2472
- },
2473
- setColumnFilterValue: function setColumnFilterValue(columnId, value) {
2474
- if (!columnId) return;
2475
- instance.setColumnFilters(function (old) {
2476
- var column = instance.getColumn(columnId);
2477
-
2478
- if (!column) {
2479
- {
2480
- console.warn("React-Table: Could not find a column with id: " + columnId);
2481
- }
2482
-
2483
- throw new Error();
2484
- }
2485
-
2486
- var filterFn = instance.getColumnFilterFn(column.id);
2487
- var previousfilter = old == null ? void 0 : old.find(function (d) {
2488
- return d.id === columnId;
2489
- });
2490
- var newFilter = functionalUpdate(value, previousfilter ? previousfilter.value : undefined); //
2491
-
2492
- if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {
2493
- var _old$filter;
2494
-
2495
- return (_old$filter = old == null ? void 0 : old.filter(function (d) {
2496
- return d.id !== columnId;
2497
- })) != null ? _old$filter : [];
2498
- }
2499
-
2500
- var newFilterObj = {
2501
- id: columnId,
2502
- value: newFilter
2503
- };
2504
-
2505
- if (previousfilter) {
2506
- var _old$map;
2507
-
2508
- return (_old$map = old == null ? void 0 : old.map(function (d) {
2509
- if (d.id === columnId) {
2510
- return newFilterObj;
2511
- }
2512
-
2513
- return d;
2514
- })) != null ? _old$map : [];
2515
- }
2516
-
2517
- if (old != null && old.length) {
2518
- return [].concat(old, [newFilterObj]);
2519
- }
2520
-
2521
- return [newFilterObj];
2522
- });
2523
- },
2524
- resetColumnFilters: function resetColumnFilters() {
2525
- var _instance$options$ini, _instance$options2, _instance$options2$in;
2526
-
2527
- 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 : []);
2528
- },
2529
- getColumnFilteredRowModel: memo(function () {
2530
- return [instance.getState().columnFilters, instance.getCoreRowModel(), instance.options.columnFilterRowsFn];
2531
- }, function (columnFilters, rowModel, columnFiltersFn) {
2532
- var columnFilteredRowModel = function () {
2533
- if (!(columnFilters != null && columnFilters.length) || !columnFiltersFn) {
2534
- return rowModel;
2535
- }
2536
-
2537
- if (instance.options.debug) console.info('Column Filtering...');
2538
- return columnFiltersFn(instance, columnFilters, rowModel);
2539
- }(); // Now that each filtered column has it's partially filtered rows,
2540
- // lets assign the final filtered rows to all of the other columns
2541
-
2542
-
2543
- var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
2544
- var _instance$getState$co5;
2545
-
2546
- return !((_instance$getState$co5 = instance.getState().columnFilters) != null && _instance$getState$co5.find(function (d) {
2547
- return d.id === column.id;
2548
- }));
2549
- }); // This essentially enables faceted filter options to be built easily
2550
- // using every column's preFilteredRows value
2551
-
2552
- nonFilteredColumns.forEach(function (column) {
2553
- column.getPreFilteredRows = function () {
2554
- return columnFilteredRowModel.rows;
2555
- };
2556
- });
2557
- return columnFilteredRowModel;
2558
- }, 'getColumnFilteredRowModel', instance.options.debug),
2559
- getPreColumnFilteredRows: function getPreColumnFilteredRows() {
2560
- return instance.getCoreRowModel().rows;
2561
- },
2562
- getPreColumnFilteredFlatRows: function getPreColumnFilteredFlatRows() {
2563
- return instance.getCoreRowModel().flatRows;
2564
- },
2565
- getPreColumnFilteredRowsById: function getPreColumnFilteredRowsById() {
2566
- return instance.getCoreRowModel().rowsById;
2567
- },
2568
- getColumnFilteredRows: function getColumnFilteredRows() {
2569
- return instance.getColumnFilteredRowModel().rows;
2570
- },
2571
- getColumnFilteredFlatRows: function getColumnFilteredFlatRows() {
2572
- return instance.getColumnFilteredRowModel().flatRows;
2573
- },
2574
- getColumnFilteredRowsById: function getColumnFilteredRowsById() {
2575
- return instance.getColumnFilteredRowModel().rowsById;
2576
- },
2577
- getGlobalFilteredRowModel: memo(function () {
2578
- return [instance.getState().globalFilter, instance.getColumnFilteredRowModel(), instance.options.globalFilterRowsFn];
2579
- }, function (globalFilterValue, columnFilteredRowModel, globalFiltersFn) {
2580
- var globalFilteredRowModel = function () {
2581
- if (!globalFiltersFn || !globalFilterValue) {
2582
- return columnFilteredRowModel;
2583
- }
2584
-
2585
- if (instance.options.debug) console.info('Global Filtering...');
2586
- return globalFiltersFn(instance, globalFilterValue, columnFilteredRowModel);
2587
- }(); // Now that each filtered column has it's partially filtered rows,
2588
- // lets assign the final filtered rows to all of the other columns
2589
-
2590
-
2591
- var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
2592
- var _instance$getState$co6;
2593
-
2594
- return !((_instance$getState$co6 = instance.getState().columnFilters) != null && _instance$getState$co6.find(function (d) {
2595
- return d.id === column.id;
2596
- }));
2597
- }); // This essentially enables faceted filter options to be built easily
2598
- // using every column's preFilteredRows value
2599
-
2600
- nonFilteredColumns.forEach(function (column) {
2601
- column.getPreFilteredRows = function () {
2602
- return globalFilteredRowModel.rows;
2603
- };
2604
- });
2605
- return globalFilteredRowModel;
2606
- }, 'getGlobalFilteredRowModel', instance.options.debug),
2607
- getPreGlobalFilteredRows: function getPreGlobalFilteredRows() {
2608
- return instance.getColumnFilteredRowModel().rows;
2609
- },
2610
- getPreGlobalFilteredFlatRows: function getPreGlobalFilteredFlatRows() {
2611
- return instance.getColumnFilteredRowModel().flatRows;
2612
- },
2613
- getPreGlobalFilteredRowsById: function getPreGlobalFilteredRowsById() {
2614
- return instance.getColumnFilteredRowModel().rowsById;
2615
- },
2616
- getGlobalFilteredRows: function getGlobalFilteredRows() {
2617
- return instance.getGlobalFilteredRowModel().rows;
2618
- },
2619
- getGlobalFilteredFlatRows: function getGlobalFilteredFlatRows() {
2620
- return instance.getGlobalFilteredRowModel().flatRows;
2621
- },
2622
- getGlobalFilteredRowsById: function getGlobalFilteredRowsById() {
2623
- return instance.getGlobalFilteredRowModel().rowsById;
2624
- }
2625
- };
2626
- }
2627
- function shouldAutoRemoveFilter(filterFn, value, column) {
2628
- return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;
2629
- }
2630
-
2631
- var reSplitAlphaNumeric = /([0-9]+)/gm;
2632
- var sortTypes = {
2633
- alphanumeric: alphanumeric,
2634
- alphanumericCaseSensitive: alphanumericCaseSensitive,
2635
- text: text,
2636
- textCaseSensitive: textCaseSensitive,
2637
- datetime: datetime,
2638
- basic: basic
2639
- };
2640
-
2641
- function alphanumeric(rowA, rowB, columnId) {
2642
- return compareAlphanumeric(toString(rowA.values[columnId]).toLowerCase(), toString(rowB.values[columnId]).toLowerCase());
2643
- }
2644
-
2645
- function alphanumericCaseSensitive(rowA, rowB, columnId) {
2646
- return compareAlphanumeric(toString(rowA.values[columnId]), toString(rowB.values[columnId]));
2647
- } // Mixed sorting is slow, but very inclusive of many edge cases.
2648
- // It handles numbers, mixed alphanumeric combinations, and even
2649
- // null, undefined, and Infinity
2650
-
2651
-
2652
- function compareAlphanumeric(aStr, bStr) {
2653
- // Split on number groups, but keep the delimiter
2654
- // Then remove falsey split values
2655
- var a = aStr.split(reSplitAlphaNumeric).filter(Boolean);
2656
- var b = bStr.split(reSplitAlphaNumeric).filter(Boolean); // While
2657
-
2658
- while (a.length && b.length) {
2659
- var aa = a.shift();
2660
- var bb = b.shift();
2661
- var an = parseInt(aa, 10);
2662
- var bn = parseInt(bb, 10);
2663
- var combo = [an, bn].sort(); // Both are string
2664
-
2665
- if (isNaN(combo[0])) {
2666
- if (aa > bb) {
2667
- return 1;
2668
- }
2669
-
2670
- if (bb > aa) {
2671
- return -1;
2672
- }
2673
-
2674
- continue;
2675
- } // One is a string, one is a number
2676
-
2677
-
2678
- if (isNaN(combo[1])) {
2679
- return isNaN(an) ? -1 : 1;
2680
- } // Both are numbers
2681
-
2682
-
2683
- if (an > bn) {
2684
- return 1;
2685
- }
2686
-
2687
- if (bn > an) {
2688
- return -1;
2689
- }
2690
- }
2691
-
2692
- return a.length - b.length;
2693
- } // The text filter is more basic (less numeric support)
2694
- // but is much faster
2695
-
2696
-
2697
- function text(rowA, rowB, columnId) {
2698
- return compareBasic(toString(rowA.values[columnId]).toLowerCase(), toString(rowB.values[columnId]).toLowerCase());
2699
- } // The text filter is more basic (less numeric support)
2700
- // but is much faster
2701
-
2702
-
2703
- function textCaseSensitive(rowA, rowB, columnId) {
2704
- return compareBasic(toString(rowA.values[columnId]), toString(rowB.values[columnId]));
2705
- }
2706
-
2707
- function datetime(rowA, rowB, columnId) {
2708
- return compareBasic(rowA.values[columnId].getTime(), rowB.values[columnId].getTime());
2709
- }
2710
-
2711
- function basic(rowA, rowB, columnId) {
2712
- return compareBasic(rowA.values[columnId], rowB.values[columnId]);
2713
- } // Utils
2714
-
2715
-
2716
- function compareBasic(a, b) {
2717
- return a === b ? 0 : a > b ? 1 : -1;
2718
- }
2719
-
2720
- function toString(a) {
2721
- if (typeof a === 'number') {
2722
- if (isNaN(a) || a === Infinity || a === -Infinity) {
2723
- return '';
2724
- }
2725
-
2726
- return String(a);
2727
- }
2728
-
2729
- if (typeof a === 'string') {
2730
- return a;
2731
- }
2732
-
2733
- return '';
2734
- }
2735
-
2736
- //
2737
- function getDefaultColumn() {
2738
- return {
2739
- sortType: 'auto'
2740
- };
2741
- }
2742
- function getInitialState$1() {
2743
- return {
2744
- sorting: []
2745
- };
2746
- }
2747
- function getDefaultOptions$1(instance) {
2748
- return {
2749
- onSortingChange: makeStateUpdater('sorting', instance),
2750
- autoResetSorting: true
2751
- };
2752
- }
2753
- function createColumn(column, instance) {
2754
- return {
2755
- sortType: column.sortType,
2756
- getCanSort: function getCanSort() {
2757
- return instance.getColumnCanSort(column.id);
2758
- },
2759
- getCanMultiSort: function getCanMultiSort() {
2760
- return instance.getColumnCanMultiSort(column.id);
2761
- },
2762
- getSortIndex: function getSortIndex() {
2763
- return instance.getColumnSortIndex(column.id);
2764
- },
2765
- getIsSorted: function getIsSorted() {
2766
- return instance.getColumnIsSorted(column.id);
2767
- },
2768
- toggleSorting: function toggleSorting(desc, isMulti) {
2769
- return instance.toggleColumnSorting(column.id, desc, isMulti);
2770
- },
2771
- getToggleSortingProps: function getToggleSortingProps(userProps) {
2772
- return instance.getToggleSortingProps(column.id, userProps);
2773
- }
2774
- };
2775
- }
2776
- function getInstance$1(instance) {
2777
- return {
2778
- getColumnAutoSortingFn: function getColumnAutoSortingFn(columnId) {
2779
- var firstRow = instance.getGlobalFilteredRowModel().flatRows[0];
2780
- var value = firstRow == null ? void 0 : firstRow.values[columnId];
2781
-
2782
- if (typeof value === 'string') {
2783
- return sortTypes.alphanumeric;
2784
- }
2785
-
2786
- if (Object.prototype.toString.call(value) === '[object Date]') {
2787
- return sortTypes.datetime;
2788
- }
2789
-
2790
- return sortTypes.basic;
2791
- },
2792
- getColumnSortingFn: function getColumnSortingFn(columnId) {
2793
- var _ref;
2794
-
2795
- var column = instance.getColumn(columnId);
2796
- var userSortTypes = instance.options.sortTypes;
2797
-
2798
- if (!column) {
2799
- throw new Error();
2800
- }
2801
-
2802
- return isFunction(column.sortType) ? column.sortType : column.sortType === 'auto' ? instance.getColumnAutoFilterFn(columnId) : (_ref = userSortTypes == null ? void 0 : userSortTypes[column.sortType]) != null ? _ref : sortTypes[column.sortType];
2803
- },
2804
- setSorting: function setSorting(updater) {
2805
- return instance.options.onSortingChange == null ? void 0 : instance.options.onSortingChange(updater, functionalUpdate(updater, instance.getState().sorting));
2806
- },
2807
- toggleColumnSorting: function toggleColumnSorting(columnId, desc, multi) {
2808
- var column = instance.getColumn(columnId);
2809
-
2810
- if (!column) {
2811
- throw new Error();
2812
- }
2813
-
2814
- instance.setSorting(function (old) {
2815
- var _column$sortDescFirst, _instance$options$ena, _instance$options$ena2;
2816
-
2817
- // Find any existing sorting for this column
2818
- var existingSorting = old == null ? void 0 : old.find(function (d) {
2819
- return d.id === columnId;
2820
- });
2821
- var existingIndex = old == null ? void 0 : old.findIndex(function (d) {
2822
- return d.id === columnId;
2823
- });
2824
- var hasDescDefined = typeof desc !== 'undefined' && desc !== null;
2825
- var newSorting = []; // What should we do with this sort action?
2826
-
2827
- var sortAction;
2828
-
2829
- if (!column.getCanMultiSort() && multi) {
2830
- if (existingSorting) {
2831
- sortAction = 'toggle';
2832
- } else {
2833
- sortAction = 'add';
2834
- }
2835
- } else {
2836
- // Normal mode
2837
- if (old != null && old.length && existingIndex !== old.length - 1) {
2838
- sortAction = 'replace';
2839
- } else if (existingSorting) {
2840
- sortAction = 'toggle';
2841
- } else {
2842
- sortAction = 'replace';
2843
- }
2844
- }
2845
-
2846
- var sortDescFirst = (_column$sortDescFirst = column.sortDescFirst) != null ? _column$sortDescFirst : instance.options.sortDescFirst; // Handle toggle states that will remove the sorting
2847
-
2848
- if (sortAction === 'toggle' && ( // Must be toggling
2849
- (_instance$options$ena = instance.options.enableSortingRemoval) != null ? _instance$options$ena : true) && // If enableSortRemove, enable in general
2850
- !hasDescDefined && ( // Must not be setting desc
2851
- multi ? (_instance$options$ena2 = instance.options.enableMultiRemove) != null ? _instance$options$ena2 : true : true) && ( // If multi, don't allow if enableMultiRemove
2852
- existingSorting != null && existingSorting.desc // Finally, detect if it should indeed be removed
2853
- ? !sortDescFirst : sortDescFirst)) {
2854
- sortAction = 'remove';
2855
- }
2856
-
2857
- if (sortAction === 'replace') {
2858
- newSorting = [{
2859
- id: columnId,
2860
- desc: hasDescDefined ? desc : !!sortDescFirst
2861
- }];
2862
- } else if (sortAction === 'add' && old != null && old.length) {
2863
- var _instance$options$max;
2864
-
2865
- newSorting = [].concat(old, [{
2866
- id: columnId,
2867
- desc: hasDescDefined ? desc : !!sortDescFirst
2868
- }]); // Take latest n columns
2869
-
2870
- newSorting.splice(0, newSorting.length - ((_instance$options$max = instance.options.maxMultiSortColCount) != null ? _instance$options$max : Number.MAX_SAFE_INTEGER));
2871
- } else if (sortAction === 'toggle' && old != null && old.length) {
2872
- // This flips (or sets) the
2873
- newSorting = old.map(function (d) {
2874
- if (d.id === columnId) {
2875
- return _extends({}, d, {
2876
- desc: hasDescDefined ? desc : !(existingSorting != null && existingSorting.desc)
2877
- });
2878
- }
2879
-
2880
- return d;
2881
- });
2882
- } else if (sortAction === 'remove' && old != null && old.length) {
2883
- newSorting = old.filter(function (d) {
2884
- return d.id !== columnId;
2885
- });
2886
- }
2887
-
2888
- return newSorting;
2889
- });
2890
- },
2891
- getColumnCanSort: function getColumnCanSort(columnId) {
2892
- var _ref2, _ref3, _column$enableSorting;
2893
-
2894
- var column = instance.getColumn(columnId);
2895
-
2896
- if (!column) {
2897
- throw new Error();
2898
- }
2899
-
2900
- return (_ref2 = (_ref3 = (_column$enableSorting = column.enableSorting) != null ? _column$enableSorting : instance.options.enableSorting) != null ? _ref3 : column.defaultCanSort) != null ? _ref2 : !!column.accessorFn;
2901
- },
2902
- getColumnCanMultiSort: function getColumnCanMultiSort(columnId) {
2903
- var _ref4, _column$enableMultiSo;
2904
-
2905
- var column = instance.getColumn(columnId);
2906
-
2907
- if (!column) {
2908
- throw new Error();
2909
- }
2910
-
2911
- return (_ref4 = (_column$enableMultiSo = column.enableMultiSort) != null ? _column$enableMultiSo : instance.options.enableMultiSort) != null ? _ref4 : !!column.accessorFn;
2912
- },
2913
- getColumnIsSorted: function getColumnIsSorted(columnId) {
2914
- var _instance$getState$so;
2915
-
2916
- var columnSort = (_instance$getState$so = instance.getState().sorting) == null ? void 0 : _instance$getState$so.find(function (d) {
2917
- return d.id === columnId;
2918
- });
2919
- return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';
2920
- },
2921
- getColumnSortIndex: function getColumnSortIndex(columnId) {
2922
- var _instance$getState$so2, _instance$getState$so3;
2923
-
2924
- return (_instance$getState$so2 = (_instance$getState$so3 = instance.getState().sorting) == null ? void 0 : _instance$getState$so3.findIndex(function (d) {
2925
- return d.id === columnId;
2926
- })) != null ? _instance$getState$so2 : -1;
2927
- },
2928
- resetSorting: function resetSorting() {
2929
- var _instance$options$ini, _instance$options, _instance$options$ini2;
2930
-
2931
- 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 : []);
2932
- },
2933
- getToggleSortingProps: function getToggleSortingProps(columnId, userProps) {
2934
- var column = instance.getColumn(columnId);
2935
-
2936
- if (!column) {
2937
- throw new Error();
2938
- }
2939
-
2940
- var canSort = column.getCanSort();
2941
- var initialProps = {
2942
- title: canSort ? 'Toggle Sorting' : undefined,
2943
- onClick: canSort ? function (e) {
2944
- e.persist();
2945
- column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? instance.options.isMultiSortEvent == null ? void 0 : instance.options.isMultiSortEvent(e) : false);
2946
- } : undefined
2947
- };
2948
- return propGetter(initialProps, userProps);
2949
- },
2950
- getSortedRowModel: memo(function () {
2951
- return [instance.getState().sorting, instance.getGlobalFilteredRowModel(), instance.options.sortRowsFn];
2952
- }, function (sorting, rowModel, sortingFn) {
2953
- if (!sortingFn || !(sorting != null && sorting.length)) {
2954
- return rowModel;
2955
- }
2956
-
2957
- if (instance.options.debug) console.info('Sorting...');
2958
- return sortingFn(instance, sorting, rowModel);
2959
- }, 'getSortedRowModel', instance.options.debug),
2960
- getPreSortedRows: function getPreSortedRows() {
2961
- return instance.getGlobalFilteredRowModel().rows;
2962
- },
2963
- getPreSortedFlatRows: function getPreSortedFlatRows() {
2964
- return instance.getGlobalFilteredRowModel().flatRows;
2965
- },
2966
- getPreSortedRowsById: function getPreSortedRowsById() {
2967
- return instance.getGlobalFilteredRowModel().rowsById;
2968
- },
2969
- getSortedRows: function getSortedRows() {
2970
- return instance.getSortedRowModel().rows;
2971
- },
2972
- getSortedFlatRows: function getSortedFlatRows() {
2973
- return instance.getSortedRowModel().flatRows;
2974
- },
2975
- getSortedRowsById: function getSortedRowsById() {
2976
- return instance.getSortedRowModel().rowsById;
2977
- }
2978
- };
2979
- }
2980
-
2981
- //
2982
- function getInitialState() {
2983
- return {
2984
- expanded: {}
2985
- };
2986
- }
2987
- function getDefaultOptions(instance) {
2988
- return {
2989
- onExpandedChange: makeStateUpdater('expanded', instance),
2990
- autoResetExpanded: true,
2991
- getIsRowExpanded: function getIsRowExpanded(row) {
2992
- return !!(row == null ? void 0 : row.original).expanded;
2993
- },
2994
- expandSubRows: true,
2995
- paginateExpandedRows: true
2996
- };
2997
- }
2998
- function getInstance(instance) {
2999
- return {
3000
- setExpanded: function setExpanded(updater) {
3001
- return instance.options.onExpandedChange == null ? void 0 : instance.options.onExpandedChange(updater, functionalUpdate(updater, instance.getState().expanded));
3002
- },
3003
- toggleRowExpanded: function toggleRowExpanded(rowId, expanded) {
3004
- if (!rowId) return;
3005
- instance.setExpanded(function (old) {
3006
- var _old, _expanded;
3007
-
3008
- if (old === void 0) {
3009
- old = {};
3010
- }
3011
-
3012
- var exists = old === true ? true : !!((_old = old) != null && _old[rowId]);
3013
- var oldExpanded = {};
3014
-
3015
- if (old === true) {
3016
- Object.keys(instance.getRowsById()).forEach(function (rowId) {
3017
- oldExpanded[rowId] = true;
3018
- });
3019
- } else {
3020
- oldExpanded = old;
3021
- }
3022
-
3023
- expanded = (_expanded = expanded) != null ? _expanded : !exists;
3024
-
3025
- if (!exists && expanded) {
3026
- var _extends2;
3027
-
3028
- return _extends({}, oldExpanded, (_extends2 = {}, _extends2[rowId] = true, _extends2));
3029
- }
3030
-
3031
- if (exists && !expanded) {
3032
- var _oldExpanded = oldExpanded;
3033
- _oldExpanded[rowId];
3034
- var rest = _objectWithoutPropertiesLoose(_oldExpanded, [rowId].map(_toPropertyKey));
3035
-
3036
- return rest;
3037
- }
3038
-
3039
- return old;
3040
- });
3041
- },
3042
- toggleAllRowsExpanded: function toggleAllRowsExpanded(expanded) {
3043
- if (expanded != null ? expanded : !instance.getIsAllRowsExpanded()) {
3044
- instance.setExpanded(true);
3045
- } else {
3046
- instance.setExpanded({});
3047
- }
3048
- },
3049
- resetExpanded: function resetExpanded() {
3050
- var _instance$options$ini, _instance$options, _instance$options$ini2;
3051
-
3052
- 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 : {});
3053
- },
3054
- getIsRowExpanded: function getIsRowExpanded(rowId) {
3055
- var _instance$options$get;
3056
-
3057
- var row = instance.getRow(rowId);
3058
-
3059
- if (!row) {
3060
- {
3061
- console.warn("[ReactTable] getIsRowExpanded: no row found with id " + rowId);
3062
- }
3063
-
3064
- throw new Error();
3065
- }
3066
-
3067
- var expanded = instance.getState().expanded;
3068
- 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]));
3069
- },
3070
- getRowCanExpand: function getRowCanExpand(rowId) {
3071
- var _ref, _ref2, _instance$options$get2, _row$subRows;
3072
-
3073
- var row = instance.getRow(rowId);
3074
-
3075
- if (!row) {
3076
- {
3077
- console.warn("[ReactTable] getRowCanExpand: no row found with id " + rowId);
3078
- }
3079
-
3080
- throw new Error();
3081
- }
3082
-
3083
- 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);
3084
- },
3085
- getToggleExpandedProps: function getToggleExpandedProps(rowId, userProps) {
3086
- var row = instance.getRow(rowId);
3087
-
3088
- if (!row) {
3089
- return;
3090
- }
3091
-
3092
- var canExpand = instance.getRowCanExpand(rowId);
3093
- var initialProps = {
3094
- title: canExpand ? 'Toggle Expanded' : undefined,
3095
- onClick: canExpand ? function (e) {
3096
- e.persist();
3097
- instance.toggleRowExpanded(rowId);
3098
- } : undefined
3099
- };
3100
- return propGetter(initialProps, userProps);
3101
- },
3102
- getToggleAllRowsExpandedProps: function getToggleAllRowsExpandedProps(userProps) {
3103
- var initialProps = {
3104
- title: 'Toggle All Expanded',
3105
- onClick: function onClick(e) {
3106
- e.persist();
3107
- instance.toggleAllRowsExpanded();
3108
- }
3109
- };
3110
- return propGetter(initialProps, userProps);
3111
- },
3112
- getIsAllRowsExpanded: function getIsAllRowsExpanded() {
3113
- var expanded = instance.getState().expanded; // If expanded is true, save some cycles and return true
3114
-
3115
- if (expanded === true) {
3116
- return true;
3117
- } // If any row is not expanded, return false
3118
-
3119
-
3120
- if (Object.keys(instance.getRowsById()).some(function (id) {
3121
- return !instance.getIsRowExpanded(id);
3122
- })) {
3123
- return false;
3124
- } // They must all be expanded :shrug:
3125
-
3126
-
3127
- return true;
3128
- },
3129
- getExpandedDepth: function getExpandedDepth() {
3130
- var maxDepth = 0;
3131
- var rowIds = instance.getState().expanded === true ? Object.keys(instance.getRowsById()) : Object.keys(instance.getState().expanded);
3132
- rowIds.forEach(function (id) {
3133
- var splitId = id.split('.');
3134
- maxDepth = Math.max(maxDepth, splitId.length);
3135
- });
3136
- return maxDepth;
3137
- },
3138
- getExpandedRowModel: memo(function () {
3139
- return [instance.getState().expanded, instance.getGroupedRowModel(), instance.options.expandRowsFn, instance.options.paginateExpandedRows];
3140
- }, function (expanded, rowModel, expandRowsFn, paginateExpandedRows) {
3141
- if (!expandRowsFn || // Do not expand if rows are not included in pagination
3142
- !paginateExpandedRows || !Object.keys(expanded != null ? expanded : {}).length) {
3143
- return rowModel;
3144
- }
3145
-
3146
- if (instance.options.debug) console.info('Expanding...');
3147
- return expandRowsFn(instance, expanded, rowModel);
3148
- }, 'getExpandedRowModel', instance.options.debug),
3149
- getPreExpandedRows: function getPreExpandedRows() {
3150
- return instance.getGroupedRowModel().rows;
3151
- },
3152
- getPreExpandedFlatRows: function getPreExpandedFlatRows() {
3153
- return instance.getGroupedRowModel().flatRows;
3154
- },
3155
- getPreExpandedRowsById: function getPreExpandedRowsById() {
3156
- return instance.getGroupedRowModel().rowsById;
3157
- },
3158
- getExpandedRows: function getExpandedRows() {
3159
- return instance.getExpandedRowModel().rows;
3160
- },
3161
- getExpandedFlatRows: function getExpandedFlatRows() {
3162
- return instance.getExpandedRowModel().flatRows;
3163
- },
3164
- getExpandedRowsById: function getExpandedRowsById() {
3165
- return instance.getExpandedRowModel().rowsById;
3166
- }
3167
- };
3168
- }
3169
- function createRow(row, instance) {
3170
- return {
3171
- toggleExpanded: function toggleExpanded(expanded) {
3172
- return void instance.toggleRowExpanded(row.id, expanded);
3173
- },
3174
- getIsExpanded: function getIsExpanded() {
3175
- return instance.getIsRowExpanded(row.id);
3176
- },
3177
- getCanExpand: function getCanExpand() {
3178
- return row.subRows && !!row.subRows.length;
3179
- },
3180
- getToggleExpandedProps: function getToggleExpandedProps(userProps) {
3181
- var initialProps = {
3182
- title: 'Toggle Row Expanded',
3183
- onClick: function onClick(e) {
3184
- e.stopPropagation();
3185
- instance.toggleRowExpanded(row.id);
3186
- }
3187
- };
3188
- return propGetter(initialProps, userProps);
3189
- }
3190
- };
3191
- }
3192
-
3193
- function createTableInstance(options, rerender) {
3194
- var _options$initialState;
3195
-
3196
- if (options.debug) {
3197
- console.info('Creating React Table Instance...');
3198
- }
3199
-
3200
- var instance = {};
3201
-
3202
- var defaultOptions = _extends({}, getDefaultOptions$7(instance), getDefaultOptions$5(instance), getDefaultOptions$4(instance), getDefaultOptions$2(instance), getDefaultOptions$1(instance), getDefaultOptions$6(instance), getDefaultOptions(instance), getDefaultOptions$3(instance));
3203
-
3204
- var defaultState = {};
3205
-
3206
- var buildOptions = function buildOptions(options) {
3207
- return _extends({
3208
- state: defaultState
3209
- }, defaultOptions, options);
3210
- };
3211
-
3212
- instance.options = buildOptions(options);
3213
-
3214
- var initialState = _extends({}, getInitialState$7(), getInitialState$5(), getInitialState$4(), getInitialState$2(), getInitialState$1(), getInitialState$6(), getInitialState(), getInitialState$3(), (_options$initialState = options.initialState) != null ? _options$initialState : {});
3215
-
3216
- var finalInstance = _extends({}, instance, getInstance$8(instance), getInstance$6(instance), getInstance$5(instance), getInstance$3(instance), getInstance$2(instance), getInstance$1(instance), getInstance$7(instance), getInstance(instance), getInstance$4(instance), {
3217
- rerender: rerender,
3218
- initialState: initialState,
3219
- internalState: initialState,
3220
- reset: function reset() {
3221
- instance.setState(instance.initialState);
3222
- },
3223
- updateOptions: function updateOptions(newOptions) {
3224
- instance.options = buildOptions(newOptions);
3225
- },
3226
- getRowId: function getRowId(_, index, parent) {
3227
- return "" + (parent ? [parent.id, index].join('.') : index);
3228
- },
3229
- getState: function getState() {
3230
- return _extends({}, instance.internalState, instance.options.state);
3231
- },
3232
- setState: function setState(updater, shouldRerender) {
3233
- if (shouldRerender === void 0) {
3234
- shouldRerender = true;
3235
- }
3236
-
3237
- var newState = functionalUpdate(updater, instance.internalState);
3238
- var onStateChange = instance.options.onStateChange;
3239
- instance.internalState = newState;
3240
-
3241
- if (onStateChange) {
3242
- onStateChange(newState);
3243
- return;
3244
- }
3245
-
3246
- if (shouldRerender) {
3247
- instance.rerender();
3248
- }
3249
- },
3250
- getDefaultColumn: memo(function () {
3251
- return [instance.options.defaultColumn];
3252
- }, function (defaultColumn) {
3253
- var _defaultColumn;
3254
-
3255
- defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};
3256
- return _extends({
3257
- header: function header(props) {
3258
- return props.header.column.id;
3259
- },
3260
- footer: function footer(props) {
3261
- return props.header.column.id;
3262
- },
3263
- cell: function cell(_ref) {
3264
- var _ref$value = _ref.value,
3265
- value = _ref$value === void 0 ? '' : _ref$value;
3266
- return typeof value === 'boolean' ? value.toString() : value;
3267
- }
3268
- }, getDefaultColumn$3(), getDefaultColumn$1(), getDefaultColumn(), getDefaultColumn$2(), defaultColumn);
3269
- }, 'getDefaultColumn', instance.options.debug),
3270
- getColumnDefs: function getColumnDefs() {
3271
- return instance.options.columns;
3272
- },
3273
- createColumn: function createColumn$6(columnDef, depth, parent) {
3274
- var _ref2, _columnDef$id;
3275
-
3276
- var defaultColumn = instance.getDefaultColumn();
3277
- var id = (_ref2 = (_columnDef$id = columnDef.id) != null ? _columnDef$id : columnDef.accessorKey) != null ? _ref2 : typeof columnDef.header === 'string' ? columnDef.header : undefined;
3278
- var accessorFn;
3279
-
3280
- if (columnDef.accessorFn) {
3281
- accessorFn = columnDef.accessorFn;
3282
- } else if (columnDef.accessorKey) {
3283
- accessorFn = function accessorFn(originalRow) {
3284
- return originalRow[columnDef.accessorKey];
3285
- };
3286
- }
3287
-
3288
- if (!id) {
3289
- {
3290
- throw new Error(columnDef.accessorFn ? "Columns require an id when using an accessorFn" : "Columns require an id when using a non-string header");
3291
- }
3292
- }
3293
-
3294
- var column = _extends({}, defaultColumnSizing, defaultColumn, columnDef, {
3295
- id: "" + id,
3296
- accessorFn: accessorFn,
3297
- parent: parent,
3298
- depth: depth,
3299
- columnDef: columnDef,
3300
- columns: [],
3301
- getWidth: function getWidth() {
3302
- return instance.getColumnWidth(column.id);
3303
- },
3304
- getFlatColumns: memo(function () {
3305
- return [true];
3306
- }, function () {
3307
- var _column$columns;
3308
-
3309
- return [column].concat((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(function (d) {
3310
- return d.getFlatColumns();
3311
- }));
3312
- }, 'column.getFlatColumns', instance.options.debug),
3313
- getLeafColumns: memo(function () {
3314
- return [instance.getOrderColumnsFn()];
3315
- }, function (orderColumns) {
3316
- var _column$columns2;
3317
-
3318
- if ((_column$columns2 = column.columns) != null && _column$columns2.length) {
3319
- var leafColumns = column.columns.flatMap(function (column) {
3320
- return column.getLeafColumns();
3321
- });
3322
- return orderColumns(leafColumns);
3323
- }
3324
-
3325
- return [column];
3326
- }, 'column.getLeafColumns', instance.options.debug)
3327
- });
3328
-
3329
- column = Object.assign(column, createColumn$5(column, instance), createColumn$3(column, instance), createColumn$1(column, instance), createColumn(column, instance), createColumn$4(column, instance), createColumn$2(column, instance)); // Yes, we have to convert instance to uknown, because we know more than the compiler here.
3330
-
3331
- return column;
3332
- },
3333
- getAllColumns: memo(function () {
3334
- return [instance.getColumnDefs()];
3335
- }, function (columnDefs) {
3336
- if (instance.options.debug) console.info('Building Columns...');
3337
-
3338
- var recurseColumns = function recurseColumns(columnDefs, parent, depth) {
3339
- if (depth === void 0) {
3340
- depth = 0;
3341
- }
3342
-
3343
- return columnDefs.map(function (columnDef) {
3344
- var column = instance.createColumn(columnDef, depth, parent);
3345
- column.columns = columnDef.columns ? recurseColumns(columnDef.columns, column, depth + 1) : [];
3346
- return column;
3347
- });
3348
- };
3349
-
3350
- return recurseColumns(columnDefs);
3351
- }, 'getAllColumns', instance.options.debug),
3352
- getAllFlatColumns: memo(function () {
3353
- return [instance.getAllColumns()];
3354
- }, function (allColumns) {
3355
- return allColumns.flatMap(function (column) {
3356
- return column.getFlatColumns();
3357
- });
3358
- }, 'getAllFlatColumns', instance.options.debug),
3359
- getAllFlatColumnsById: memo(function () {
3360
- return [instance.getAllFlatColumns()];
3361
- }, function (flatColumns) {
3362
- return flatColumns.reduce(function (acc, column) {
3363
- acc[column.id] = column;
3364
- return acc;
3365
- }, {});
3366
- }, 'getAllFlatColumnsById', instance.options.debug),
3367
- getAllLeafColumns: memo(function () {
3368
- return [instance.getAllColumns(), instance.getOrderColumnsFn()];
3369
- }, function (allColumns, orderColumns) {
3370
- var leafColumns = allColumns.flatMap(function (column) {
3371
- return column.getLeafColumns();
3372
- });
3373
- return orderColumns(leafColumns);
3374
- }, 'getAllLeafColumns', instance.options.debug),
3375
- getColumn: function getColumn(columnId) {
3376
- var column = instance.getAllFlatColumnsById()[columnId];
3377
-
3378
- if (!column) {
3379
- {
3380
- console.warn("[React Table] Column with id " + columnId + " does not exist.");
3381
- }
3382
-
3383
- throw new Error();
3384
- }
3385
-
3386
- return column;
3387
- },
3388
- getColumnWidth: function getColumnWidth(columnId) {
3389
- var _column$minWidth, _ref3, _column$maxWidth;
3390
-
3391
- var column = instance.getColumn(columnId);
3392
-
3393
- if (!column) {
3394
- throw new Error();
3395
- }
3396
-
3397
- var columnSize = instance.getState().columnSizing[column.id];
3398
- 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);
3399
- },
3400
- createCell: function createCell$1(row, column, value) {
3401
- var cell = {
3402
- id: row.id + "_" + column.id,
3403
- rowId: row.id,
3404
- columnId: column.id,
3405
- row: row,
3406
- column: column,
3407
- value: value,
3408
- getCellProps: function getCellProps(userProps) {
3409
- return instance.getCellProps(row.id, column.id, userProps);
3410
- },
3411
- renderCell: function renderCell() {
3412
- return flexRender(column.cell, {
3413
- column: column,
3414
- cell: cell,
3415
- value: value
3416
- });
3417
- }
3418
- };
3419
- Object.assign(cell, _extends({}, createCell(cell, column, row)));
3420
- return cell;
3421
- },
3422
- createRow: function createRow$3(id, original, rowIndex, depth, values) {
3423
- var row = {
3424
- id: id,
3425
- index: rowIndex,
3426
- original: original,
3427
- depth: depth,
3428
- values: values,
3429
- subRows: [],
3430
- leafRows: [],
3431
- getRowProps: function getRowProps(userProps) {
3432
- return instance.getRowProps(row.id, userProps);
3433
- },
3434
- getAllCells: undefined,
3435
- getAllCellsByColumnId: undefined
3436
- };
3437
- row.getAllCells = memo(function () {
3438
- return [instance.getAllLeafColumns()];
3439
- }, function (leafColumns) {
3440
- return leafColumns.map(function (column) {
3441
- return instance.createCell(row, column, row.values[column.id]);
3442
- });
3443
- }, 'row.getAllCells' , instance.options.debug);
3444
- row.getAllCellsByColumnId = memo(function () {
3445
- return [row.getAllCells()];
3446
- }, function (allCells) {
3447
- return allCells.reduce(function (acc, cell) {
3448
- acc[cell.columnId] = cell;
3449
- return acc;
3450
- }, {});
3451
- }, 'row.getAllCellsByColumnId', instance.options.debug);
3452
- row = Object.assign(row, createRow$1(row, instance), createRow$2(row, instance), createRow(row, instance));
3453
- return row;
3454
- },
3455
- getCoreRowModel: memo(function () {
3456
- return [instance.options.data];
3457
- }, function (data) {
3458
- if (instance.options.debug) console.info('Accessing...'); // Auto-reset data-dependent states if configured
3459
-
3460
- if (instance.options.autoResetColumnFilters && // @ts-ignore
3461
- instance.getRowModelNonFirst) {
3462
- instance.resetColumnFilters();
3463
- }
3464
-
3465
- if (instance.options.autoResetGlobalFilter && // @ts-ignore
3466
- instance.getRowModelNonFirst) {
3467
- instance.resetGlobalFilter();
3468
- }
3469
-
3470
- if (instance.options.autoResetSorting && // @ts-ignore
3471
- instance.getRowModelNonFirst) {
3472
- instance.resetSorting();
3473
- }
3474
-
3475
- if (instance.options.autoResetGrouping && // @ts-ignore
3476
- instance.getRowModelNonFirst) {
3477
- instance.resetGrouping();
3478
- }
3479
-
3480
- if (instance.options.autoResetExpanded && // @ts-ignore
3481
- instance.getRowModelNonFirst) {
3482
- instance.resetExpanded();
3483
- } // @ts-ignore
3484
-
3485
-
3486
- instance.getRowModelNonFirst = true; // Access the row model using initial columns
3487
-
3488
- var rows = [];
3489
- var flatRows = [];
3490
- var rowsById = {};
3491
- var leafColumns = instance.getAllLeafColumns();
3492
-
3493
- var accessRow = function accessRow(originalRow, rowIndex, depth, parentRows, parent) {
3494
- if (depth === void 0) {
3495
- depth = 0;
3496
- }
3497
-
3498
- var id = instance.getRowId(originalRow, rowIndex, parent);
3499
-
3500
- if (!id) {
3501
- {
3502
- throw new Error("getRowId expected an ID, but got " + id);
3503
- }
3504
- }
3505
-
3506
- var values = {};
3507
-
3508
- for (var i = 0; i < leafColumns.length; i++) {
3509
- var _column = leafColumns[i];
3510
-
3511
- if (_column && _column.accessorFn) {
3512
- values[_column.id] = _column.accessorFn(originalRow, rowIndex);
3513
- }
3514
- } // Make the row
3515
-
3516
-
3517
- var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
3518
-
3519
- parentRows.push(row); // Keep track of every row in a flat array
3520
-
3521
- flatRows.push(row); // Also keep track of every row by its ID
3522
-
3523
- rowsById[id] = row; // Get the original subrows
3524
-
3525
- if (instance.options.getSubRows) {
3526
- var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
3527
-
3528
- if (originalSubRows != null && originalSubRows.length) {
3529
- row.originalSubRows = originalSubRows;
3530
- var subRows = [];
3531
-
3532
- for (var _i = 0; _i < row.originalSubRows.length; _i++) {
3533
- accessRow(row.originalSubRows[_i], _i, depth + 1, subRows, row);
3534
- } // Keep the new subRows array on the row
3535
-
3536
-
3537
- row.subRows = subRows;
3538
- row.leafRows = flattenBy(subRows, function (d) {
3539
- return d.leafRows;
3540
- });
3541
- }
3542
- }
3543
- };
3544
-
3545
- for (var i = 0; i < data.length; i++) {
3546
- accessRow(data[i], i, 0, rows);
3547
- }
3548
-
3549
- return {
3550
- rows: rows,
3551
- flatRows: flatRows,
3552
- rowsById: rowsById
3553
- };
3554
- }, 'getRowModel', instance.options.debug),
3555
- // The standard
3556
- getCoreRows: function getCoreRows() {
3557
- return instance.getCoreRowModel().rows;
3558
- },
3559
- getCoreFlatRows: function getCoreFlatRows() {
3560
- return instance.getCoreRowModel().flatRows;
3561
- },
3562
- getCoreRowsById: function getCoreRowsById() {
3563
- return instance.getCoreRowModel().rowsById;
3564
- },
3565
- // The final calls start at the bottom of the model,
3566
- // expanded rows, which then work their way up
3567
- getRowModel: function getRowModel() {
3568
- return instance.getExpandedRowModel();
3569
- },
3570
- getRows: function getRows() {
3571
- return instance.getRowModel().rows;
3572
- },
3573
- getFlatRows: function getFlatRows() {
3574
- return instance.getRowModel().flatRows;
3575
- },
3576
- getRowsById: function getRowsById() {
3577
- return instance.getRowModel().rowsById;
3578
- },
3579
- getRow: function getRow(id) {
3580
- var row = instance.getRowsById()[id];
3581
-
3582
- if (!row) {
3583
- {
3584
- throw new Error("getRow expected an ID, but got " + id);
3585
- }
3586
- }
3587
-
3588
- return row;
3589
- },
3590
- getCell: function getCell(rowId, columnId) {
3591
- var row = instance.getRow(rowId);
3592
-
3593
- if (!row) {
3594
- {
3595
- throw new Error("[React Table] could not find row with id " + rowId);
3596
- }
3597
- }
3598
-
3599
- var cell = row.getAllCellsByColumnId()[columnId];
3600
-
3601
- if (!cell) {
3602
- {
3603
- throw new Error("[React Table] could not find cell " + columnId + " in row " + rowId);
3604
- }
3605
- }
3606
-
3607
- return cell;
3608
- },
3609
- getTableProps: function getTableProps(userProps) {
3610
- return propGetter({
3611
- role: 'table'
3612
- }, userProps);
3613
- },
3614
- getTableBodyProps: function getTableBodyProps(userProps) {
3615
- return propGetter({
3616
- role: 'rowgroup'
3617
- }, userProps);
3618
- },
3619
- getRowProps: function getRowProps(rowId, userProps) {
3620
- var row = instance.getRow(rowId);
3621
-
3622
- if (!row) {
3623
- return;
3624
- }
3625
-
3626
- return propGetter({
3627
- key: row.id,
3628
- role: 'row'
3629
- }, userProps);
3630
- },
3631
- getCellProps: function getCellProps(rowId, columnId, userProps) {
3632
- var cell = instance.getCell(rowId, columnId);
3633
-
3634
- if (!cell) {
3635
- return;
3636
- }
3637
-
3638
- return propGetter({
3639
- key: cell.id,
3640
- role: 'gridcell'
3641
- }, userProps);
3642
- },
3643
- getTableWidth: function getTableWidth() {
3644
- var _instance$getHeaderGr, _instance$getHeaderGr2;
3645
-
3646
- return (_instance$getHeaderGr = (_instance$getHeaderGr2 = instance.getHeaderGroups()[0]) == null ? void 0 : _instance$getHeaderGr2.headers.reduce(function (sum, header) {
3647
- return sum + header.getWidth();
3648
- }, 0)) != null ? _instance$getHeaderGr : 0;
3649
- },
3650
- getLeftTableWidth: function getLeftTableWidth() {
3651
- var _instance$getLeftHead, _instance$getLeftHead2;
3652
-
3653
- return (_instance$getLeftHead = (_instance$getLeftHead2 = instance.getLeftHeaderGroups()[0]) == null ? void 0 : _instance$getLeftHead2.headers.reduce(function (sum, header) {
3654
- return sum + header.getWidth();
3655
- }, 0)) != null ? _instance$getLeftHead : 0;
3656
- },
3657
- getCenterTableWidth: function getCenterTableWidth() {
3658
- var _instance$getCenterHe, _instance$getCenterHe2;
3659
-
3660
- return (_instance$getCenterHe = (_instance$getCenterHe2 = instance.getCenterHeaderGroups()[0]) == null ? void 0 : _instance$getCenterHe2.headers.reduce(function (sum, header) {
3661
- return sum + header.getWidth();
3662
- }, 0)) != null ? _instance$getCenterHe : 0;
3663
- },
3664
- getRightTableWidth: function getRightTableWidth() {
3665
- var _instance$getRightHea, _instance$getRightHea2;
3666
-
3667
- return (_instance$getRightHea = (_instance$getRightHea2 = instance.getRightHeaderGroups()[0]) == null ? void 0 : _instance$getRightHea2.headers.reduce(function (sum, header) {
3668
- return sum + header.getWidth();
3669
- }, 0)) != null ? _instance$getRightHea : 0;
3670
- }
3671
- });
3672
-
3673
- return Object.assign(instance, finalInstance);
3674
- }
3675
-
3676
- function createTable() {
3677
- return {
3678
- RowType: function RowType() {
3679
- return createTable();
3680
- },
3681
- FilterFns: function FilterFns() {
3682
- return createTable();
3683
- },
3684
- SortingFns: function SortingFns() {
3685
- return createTable();
3686
- },
3687
- AggregationFns: function AggregationFns() {
3688
- return createTable();
3689
- },
3690
- createColumns: function createColumns(columns) {
3691
- return columns;
3692
- },
3693
- createColumn: function createColumn(accessor, column) {
3694
- column = _extends({}, column, {
3695
- id: column.id
3696
- });
3697
-
3698
- if (typeof accessor === 'string') {
3699
- var _column$id;
3700
-
3701
- return _extends({}, column, {
3702
- id: (_column$id = column.id) != null ? _column$id : accessor,
3703
- accessorKey: accessor,
3704
- __generated: true
3705
- });
3706
- }
3707
-
3708
- if (typeof accessor === 'function') {
3709
- return _extends({}, column, {
3710
- accessorFn: accessor,
3711
- __generated: true
3712
- });
3713
- }
3714
-
3715
- throw new Error('Invalid accessor');
3716
- },
3717
- createGroup: function createGroup(column) {
3718
- return _extends({}, column, {
3719
- __generated: true
3720
- });
3721
- },
3722
- useTable: function useTable(options) {
3723
- var instanceRef = React__namespace.useRef(undefined);
3724
- var rerender = React__namespace.useReducer(function () {
3725
- return {};
3726
- }, {})[1];
3727
-
3728
- if (!instanceRef.current) {
3729
- instanceRef.current = createTableInstance(options, rerender);
3730
- }
3731
-
3732
- instanceRef.current.updateOptions(options);
3733
- return instanceRef.current;
3734
- },
3735
- types: undefined
3736
- };
117
+ return instance;
3737
118
  }
3738
119
 
3739
- exports.columnFilterRowsFn = columnFilterRowsFn;
3740
120
  exports.createTable = createTable;
3741
- exports.expandRowsFn = expandRowsFn;
3742
- exports.globalFilterRowsFn = globalFilterRowsFn;
3743
- exports.groupRowsFn = groupRowsFn;
3744
- exports.sortRowsFn = sortRowsFn;
121
+ exports.createTableFactory = createTableFactory;
122
+ exports.render = render;
123
+ exports.useTable = useTable;
124
+ Object.keys(tableCore).forEach(function (k) {
125
+ if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
126
+ enumerable: true,
127
+ get: function () { return tableCore[k]; }
128
+ });
129
+ });
3745
130
 
3746
131
  Object.defineProperty(exports, '__esModule', { value: true });
3747
132