@tanstack/table-core 8.0.0-alpha.30 → 8.0.0-alpha.32

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 (120) hide show
  1. package/build/cjs/aggregationTypes.js +1 -0
  2. package/build/cjs/aggregationTypes.js.map +1 -1
  3. package/build/cjs/core.js +22 -78
  4. package/build/cjs/core.js.map +1 -1
  5. package/build/cjs/createTable.js.map +1 -1
  6. package/build/cjs/features/ColumnSizing.js.map +1 -1
  7. package/build/cjs/features/Expanding.js +12 -16
  8. package/build/cjs/features/Expanding.js.map +1 -1
  9. package/build/cjs/features/Filters.js +28 -81
  10. package/build/cjs/features/Filters.js.map +1 -1
  11. package/build/cjs/features/Grouping.js +10 -16
  12. package/build/cjs/features/Grouping.js.map +1 -1
  13. package/build/cjs/features/Headers.js.map +1 -1
  14. package/build/cjs/features/Ordering.js.map +1 -1
  15. package/build/cjs/features/Pagination.js +8 -13
  16. package/build/cjs/features/Pagination.js.map +1 -1
  17. package/build/cjs/features/Pinning.js.map +1 -1
  18. package/build/cjs/features/RowSelection.js.map +1 -1
  19. package/build/cjs/features/Sorting.js +10 -16
  20. package/build/cjs/features/Sorting.js.map +1 -1
  21. package/build/cjs/features/Visibility.js.map +1 -1
  22. package/build/cjs/filterTypes.js.map +1 -1
  23. package/build/cjs/index.js +19 -12
  24. package/build/cjs/index.js.map +1 -1
  25. package/build/cjs/sortTypes.js.map +1 -1
  26. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  27. package/build/cjs/utils/getColumnFilteredRowModelSync.js +113 -0
  28. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +1 -0
  29. package/build/cjs/utils/getCoreRowModelAsync.js +125 -0
  30. package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -0
  31. package/build/cjs/utils/getCoreRowModelSync.js +102 -0
  32. package/build/cjs/utils/getCoreRowModelSync.js.map +1 -0
  33. package/build/cjs/utils/getExpandedRowModel.js +61 -0
  34. package/build/cjs/utils/getExpandedRowModel.js.map +1 -0
  35. package/build/cjs/utils/getGlobalFilteredRowModelSync.js +89 -0
  36. package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +1 -0
  37. package/build/cjs/utils/getGroupedRowModel.js +174 -0
  38. package/build/cjs/utils/getGroupedRowModel.js.map +1 -0
  39. package/build/cjs/utils/getPaginationRowModel.js +61 -0
  40. package/build/cjs/utils/getPaginationRowModel.js.map +1 -0
  41. package/build/cjs/utils/getSortedRowModelSync.js +116 -0
  42. package/build/cjs/utils/getSortedRowModelSync.js.map +1 -0
  43. package/build/cjs/utils.js +155 -16
  44. package/build/cjs/utils.js.map +1 -1
  45. package/build/esm/index.js +841 -491
  46. package/build/esm/index.js.map +1 -1
  47. package/build/stats-html.html +1 -1
  48. package/build/stats-react.json +406 -298
  49. package/build/types/aggregationTypes.d.ts +1 -1
  50. package/build/types/core.d.ts +7 -1
  51. package/build/types/features/Expanding.d.ts +2 -1
  52. package/build/types/features/Filters.d.ts +6 -2
  53. package/build/types/features/Grouping.d.ts +3 -2
  54. package/build/types/features/Pagination.d.ts +2 -1
  55. package/build/types/features/Sorting.d.ts +2 -1
  56. package/build/types/index.d.ts +8 -6
  57. package/build/types/types.d.ts +2 -2
  58. package/build/types/utils/getColumnFilteredRowModelAsync.d.ts +4 -0
  59. package/build/types/utils/getColumnFilteredRowModelSync.d.ts +2 -0
  60. package/build/types/utils/getCoreRowModelAsync.d.ts +4 -0
  61. package/build/types/utils/getCoreRowModelSync.d.ts +2 -0
  62. package/build/types/utils/getExpandedRowModel.d.ts +7 -0
  63. package/build/types/utils/getGlobalFilteredRowModelAsync.d.ts +4 -0
  64. package/build/types/utils/getGlobalFilteredRowModelSync.d.ts +2 -0
  65. package/build/types/utils/getGroupedRowModel.d.ts +2 -0
  66. package/build/types/utils/getPaginationRowModel.d.ts +4 -0
  67. package/build/types/utils/{sortRowsQuicksortFn.d.ts → getSortedRowModelAsync.d.ts} +3 -1
  68. package/build/types/utils/getSortedRowModelSync.d.ts +2 -0
  69. package/build/types/utils.d.ts +16 -0
  70. package/build/umd/index.development.js +851 -496
  71. package/build/umd/index.development.js.map +1 -1
  72. package/build/umd/index.production.js +1 -1
  73. package/build/umd/index.production.js.map +1 -1
  74. package/package.json +1 -1
  75. package/src/aggregationTypes.ts +1 -1
  76. package/src/core.tsx +33 -97
  77. package/src/features/Expanding.ts +19 -27
  78. package/src/features/Filters.ts +52 -99
  79. package/src/features/Grouping.ts +19 -21
  80. package/src/features/Pagination.ts +17 -20
  81. package/src/features/Sorting.ts +19 -23
  82. package/src/index.tsx +8 -6
  83. package/src/types.ts +3 -1
  84. package/src/utils/getColumnFilteredRowModelAsync.ts +117 -0
  85. package/src/utils/getColumnFilteredRowModelSync.ts +97 -0
  86. package/src/utils/getCoreRowModelAsync.ts +103 -0
  87. package/src/utils/getCoreRowModelSync.ts +105 -0
  88. package/src/utils/getExpandedRowModel.ts +58 -0
  89. package/src/utils/getGlobalFilteredRowModelAsync.ts +95 -0
  90. package/src/utils/getGlobalFilteredRowModelSync.ts +74 -0
  91. package/src/utils/getGroupedRowModel.ts +187 -0
  92. package/src/utils/getPaginationRowModel.ts +45 -0
  93. package/src/utils/getSortedRowModelAsync.ts +199 -0
  94. package/src/utils/getSortedRowModelSync.ts +116 -0
  95. package/src/utils.tsx +189 -16
  96. package/build/cjs/utils/columnFilterRowsFn.js +0 -73
  97. package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
  98. package/build/cjs/utils/expandRowsFn.js +0 -37
  99. package/build/cjs/utils/expandRowsFn.js.map +0 -1
  100. package/build/cjs/utils/globalFilterRowsFn.js +0 -49
  101. package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
  102. package/build/cjs/utils/groupRowsFn.js +0 -155
  103. package/build/cjs/utils/groupRowsFn.js.map +0 -1
  104. package/build/cjs/utils/paginateRowsFn.js +0 -44
  105. package/build/cjs/utils/paginateRowsFn.js.map +0 -1
  106. package/build/cjs/utils/sortRowsFn.js +0 -94
  107. package/build/cjs/utils/sortRowsFn.js.map +0 -1
  108. package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
  109. package/build/types/utils/expandRowsFn.d.ts +0 -2
  110. package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
  111. package/build/types/utils/groupRowsFn.d.ts +0 -2
  112. package/build/types/utils/paginateRowsFn.d.ts +0 -2
  113. package/build/types/utils/sortRowsFn.d.ts +0 -2
  114. package/src/utils/columnFilterRowsFn.ts +0 -56
  115. package/src/utils/expandRowsFn.ts +0 -34
  116. package/src/utils/globalFilterRowsFn.ts +0 -39
  117. package/src/utils/groupRowsFn.ts +0 -174
  118. package/src/utils/paginateRowsFn.ts +0 -28
  119. package/src/utils/sortRowsFn.ts +0 -99
  120. package/src/utils/sortRowsQuicksortFn.ts +0 -174
@@ -103,6 +103,32 @@ function functionalUpdate(updater, input) {
103
103
  }
104
104
  function noop() {//
105
105
  }
106
+ function getBatchGroups(arr, count) {
107
+ var groups = [{
108
+ start: 0,
109
+ end: count - 1,
110
+ items: []
111
+ }];
112
+ var groupIndex = 0;
113
+ var group = groups[groupIndex];
114
+
115
+ for (var i = 0; i < arr.length; i++) {
116
+ if (i > group.end) {
117
+ groupIndex++;
118
+ groups[groupIndex] = {
119
+ start: i,
120
+ end: i + count - 1,
121
+ items: []
122
+ };
123
+ }
124
+
125
+ group = groups[groupIndex];
126
+ var _item = arr[i];
127
+ group.items.push(_item);
128
+ }
129
+
130
+ return groups;
131
+ }
106
132
  function makeStateUpdater(key, instance) {
107
133
  return function (updater) {
108
134
  instance.setState(function (old) {
@@ -200,22 +226,133 @@ function memo(getDeps, fn, opts) {
200
226
 
201
227
  return result;
202
228
  };
203
- } // export function hashString(str: string, seed = 0): string {
204
- // let h1 = 0xdeadbeef ^ seed,
205
- // h2 = 0x41c6ce57 ^ seed
206
- // for (let i = 0, ch; i < str.length; i++) {
207
- // ch = str.charCodeAt(i)
208
- // h1 = Math.imul(h1 ^ ch, 2654435761)
209
- // h2 = Math.imul(h2 ^ ch, 1597334677)
210
- // }
211
- // h1 =
212
- // Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^
213
- // Math.imul(h2 ^ (h2 >>> 13), 3266489909)
214
- // h2 =
215
- // Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^
216
- // Math.imul(h1 ^ (h1 >>> 13), 3266489909)
217
- // return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString()
218
- // }
229
+ }
230
+ function incrementalMemo(getDeps, getInitialValue, schedule, opts) {
231
+ var _opts$timeout;
232
+
233
+ var oldDeps;
234
+ var deps;
235
+ var result;
236
+ var nextResultRef;
237
+ var tasks = [];
238
+ var totalTaskCount = 0;
239
+ var resultStartTime;
240
+ var batchIndex = 0;
241
+ var progress = 0;
242
+ var working = false;
243
+ var callback;
244
+ var timeout = (_opts$timeout = opts.timeout) != null ? _opts$timeout : 100;
245
+
246
+ var onProgress = function onProgress(latestResult, previousResult) {
247
+ progress = 1 - tasks.length / totalTaskCount;
248
+ opts.onProgress(progress, latestResult, previousResult);
249
+ };
250
+
251
+ return function () {
252
+ var scheduleFn = function scheduleFn(workFn) {
253
+ totalTaskCount++;
254
+ tasks.push(workFn);
255
+ };
256
+
257
+ var newDeps = getDeps();
258
+ var first = false;
259
+
260
+ if (!deps) {
261
+ first = true;
262
+ deps = [];
263
+ result = getInitialValue.apply(void 0, newDeps);
264
+ }
265
+
266
+ var depsChanged = newDeps.length !== deps.length || newDeps.some(function (dep, index) {
267
+ return deps[index] !== dep;
268
+ });
269
+
270
+ if (depsChanged) {
271
+ cancelIdleCallback(callback);
272
+ oldDeps = deps;
273
+ deps = newDeps;
274
+ totalTaskCount = 0;
275
+ tasks = [];
276
+ nextResultRef = {
277
+ current: getInitialValue.apply(void 0, newDeps)
278
+ };
279
+ resultStartTime = Date.now();
280
+ schedule.apply(void 0, newDeps)(nextResultRef)(scheduleFn);
281
+ }
282
+
283
+ var commitResult = function commitResult() {
284
+ cancelIdleCallback(callback);
285
+
286
+ if (opts.key && opts.debug) {
287
+ if (opts != null && opts.debug()) {
288
+ var resultEndTime = Math.round((Date.now() - resultStartTime) * 100) / 100;
289
+ var resultFpsPercentage = resultEndTime / batchIndex / 16;
290
+ console.info("%c\u23F1 " + resultEndTime + " ms / " + batchIndex + " tasks = " + Math.round(resultEndTime / batchIndex) + " ms/task", "\n font-size: .6rem;\n font-weight: bold;\n color: hsl(" + Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120)) + "deg 100% 31%);", opts == null ? void 0 : opts.key, _extends({
291
+ length: oldDeps.length + " -> " + deps.length
292
+ }, deps.map(function (_, index) {
293
+ if (oldDeps[index] !== deps[index]) {
294
+ return [index, oldDeps[index], deps[index]];
295
+ }
296
+
297
+ return false;
298
+ }).filter(Boolean).reduce(function (accu, _ref2) {
299
+ var _extends4;
300
+
301
+ var a = _ref2[0],
302
+ b = _ref2[1];
303
+ return _extends({}, accu, (_extends4 = {}, _extends4[a] = b, _extends4));
304
+ }, {}), {
305
+ parent: parent
306
+ }));
307
+ }
308
+ }
309
+
310
+ working = false;
311
+ var previousResult = result;
312
+ result = nextResultRef.current;
313
+ onProgress(result, previousResult);
314
+ opts.onChange(result, previousResult);
315
+ };
316
+
317
+ if (opts.initialSync && first) {
318
+ batchIndex = 1;
319
+ first = false;
320
+
321
+ for (var i = 0; i < tasks.length; i++) {
322
+ tasks[i]();
323
+ }
324
+
325
+ tasks = [];
326
+ commitResult();
327
+ } else if (!working && tasks.length) {
328
+ cancelIdleCallback(callback);
329
+ working = true;
330
+ batchIndex = 0;
331
+
332
+ var workLoop = function workLoop(deadline) {
333
+ while (tasks.length && deadline.timeRemaining() > 0) {
334
+ tasks.shift()();
335
+ }
336
+
337
+ if (!tasks.length) {
338
+ commitResult();
339
+ } else {
340
+ ++batchIndex;
341
+ onProgress(nextResultRef.current, result);
342
+ callback = requestIdleCallback(workLoop, {
343
+ timeout: timeout
344
+ });
345
+ }
346
+ };
347
+
348
+ callback = requestIdleCallback(workLoop, {
349
+ timeout: timeout
350
+ });
351
+ }
352
+
353
+ return result;
354
+ };
355
+ } // opts?.onChange?.(result, oldResult)
219
356
 
220
357
  //
221
358
  var defaultColumnSizing = {
@@ -546,6 +683,8 @@ var Expanding = {
546
683
  var registered = false;
547
684
  return {
548
685
  _notifyExpandedReset: function _notifyExpandedReset() {
686
+ instance._notifyPageIndexReset();
687
+
549
688
  if (!registered) {
550
689
  registered = true;
551
690
  return;
@@ -697,25 +836,19 @@ var Expanding = {
697
836
  });
698
837
  return maxDepth;
699
838
  },
700
- getExpandedRowModel: memo(function () {
701
- return [instance.getState().expanded, instance.getGroupedRowModel(), instance.options.expandRowsFn, instance.options.paginateExpandedRows];
702
- }, function (expanded, rowModel, expandRowsFn, paginateExpandedRows) {
703
- if (!expandRowsFn || // Do not expand if rows are not included in pagination
704
- !paginateExpandedRows || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {
705
- return rowModel;
839
+ getPreExpandedRowModel: function getPreExpandedRowModel() {
840
+ return instance.getGroupedRowModel();
841
+ },
842
+ getExpandedRowModel: function getExpandedRowModel() {
843
+ if (!instance._getExpandedRowModel && instance.options.getExpandedRowModel) {
844
+ instance._getExpandedRowModel = instance.options.getExpandedRowModel(instance);
706
845
  }
707
846
 
708
- return expandRowsFn(instance, rowModel);
709
- }, {
710
- key: 'getExpandedRowModel',
711
- debug: function debug() {
712
- var _instance$options$deb;
713
-
714
- return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
847
+ if (!instance._getExpandedRowModel) {
848
+ return instance.getPreExpandedRowModel();
715
849
  }
716
- }),
717
- getPreExpandedRowModel: function getPreExpandedRowModel() {
718
- return instance.getGroupedRowModel();
850
+
851
+ return instance._getExpandedRowModel();
719
852
  }
720
853
  };
721
854
  },
@@ -903,7 +1036,9 @@ var Filters = {
903
1036
  getInitialState: function getInitialState() {
904
1037
  return {
905
1038
  columnFilters: [],
906
- globalFilter: undefined
1039
+ globalFilter: undefined,
1040
+ columnFiltersProgress: 1,
1041
+ globalFilterProgress: 1
907
1042
  };
908
1043
  },
909
1044
  getDefaultOptions: function getDefaultOptions(instance) {
@@ -1002,6 +1137,8 @@ var Filters = {
1002
1137
  var registered = false;
1003
1138
  return {
1004
1139
  _notifyFiltersReset: function _notifyFiltersReset() {
1140
+ instance._notifySortingReset();
1141
+
1005
1142
  if (!registered) {
1006
1143
  registered = true;
1007
1144
  return;
@@ -1011,16 +1148,12 @@ var Filters = {
1011
1148
  return;
1012
1149
  }
1013
1150
 
1014
- if (instance.options.autoResetAll === true) {
1015
- instance.resetSorting();
1016
- } else {
1017
- if (instance.options.autoResetColumnFilters) {
1018
- instance.resetColumnFilters();
1019
- }
1151
+ if (instance.options.autoResetAll === true || instance.options.autoResetColumnFilters) {
1152
+ instance.resetColumnFilters();
1153
+ }
1020
1154
 
1021
- if (instance.options.autoResetGlobalFilter) {
1022
- instance.resetGlobalFilter();
1023
- }
1155
+ if (instance.options.autoResetAll === true || instance.options.autoResetGlobalFilter) {
1156
+ instance.resetGlobalFilter();
1024
1157
  }
1025
1158
  },
1026
1159
  getColumnAutoFilterFn: function getColumnAutoFilterFn(columnId) {
@@ -1200,84 +1333,31 @@ var Filters = {
1200
1333
  getPreColumnFilteredRowModel: function getPreColumnFilteredRowModel() {
1201
1334
  return instance.getCoreRowModel();
1202
1335
  },
1203
- getColumnFilteredRowModel: memo(function () {
1204
- return [instance.getState().columnFilters, instance.getCoreRowModel(), instance.options.columnFilterRowsFn];
1205
- }, function (columnFilters, rowModel, columnFiltersFn) {
1206
- var columnFilteredRowModel = function () {
1207
- if (!(columnFilters != null && columnFilters.length) || !columnFiltersFn) {
1208
- return rowModel;
1209
- }
1210
-
1211
- return columnFiltersFn(instance, rowModel);
1212
- }(); // Now that each filtered column has it's partially filtered rows,
1213
- // lets assign the final filtered rows to all of the other columns
1214
-
1215
-
1216
- var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
1217
- var _instance$getState$co5;
1218
-
1219
- return !((_instance$getState$co5 = instance.getState().columnFilters) != null && _instance$getState$co5.find(function (d) {
1220
- return d.id === column.id;
1221
- }));
1222
- }); // This essentially enables faceted filter options to be built easily
1223
- // using every column's preFilteredRows value
1224
-
1225
- nonFilteredColumns.forEach(function (column) {
1226
- column.getPreFilteredRows = function () {
1227
- return columnFilteredRowModel.rows;
1228
- };
1229
- });
1230
- return columnFilteredRowModel;
1231
- }, {
1232
- key: 'getColumnFilteredRowModel',
1233
- debug: function debug() {
1234
- var _instance$options$deb2;
1336
+ getColumnFilteredRowModel: function getColumnFilteredRowModel() {
1337
+ if (!instance._getColumnFilteredRowModel && instance.options.getColumnFilteredRowModel) {
1338
+ instance._getColumnFilteredRowModel = instance.options.getColumnFilteredRowModel(instance);
1339
+ }
1235
1340
 
1236
- return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugTable;
1341
+ if (!instance._getColumnFilteredRowModel) {
1342
+ return instance.getPreColumnFilteredRowModel();
1237
1343
  }
1238
- }),
1344
+
1345
+ return instance._getColumnFilteredRowModel();
1346
+ },
1239
1347
  getPreGlobalFilteredRowModel: function getPreGlobalFilteredRowModel() {
1240
1348
  return instance.getColumnFilteredRowModel();
1241
1349
  },
1242
- getGlobalFilteredRowModel: memo(function () {
1243
- return [instance.getState().globalFilter, instance.getColumnFilteredRowModel(), instance.options.globalFilterRowsFn];
1244
- }, function (globalFilterValue, columnFilteredRowModel, globalFiltersFn) {
1245
- var globalFilteredRowModel = function () {
1246
- if (!globalFiltersFn || !globalFilterValue) {
1247
- return columnFilteredRowModel;
1248
- }
1249
-
1250
- return globalFiltersFn(instance, columnFilteredRowModel);
1251
- }(); // Now that each filtered column has it's partially filtered rows,
1252
- // lets assign the final filtered rows to all of the other columns
1253
-
1254
-
1255
- var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
1256
- var _instance$getState$co6;
1257
-
1258
- return !((_instance$getState$co6 = instance.getState().columnFilters) != null && _instance$getState$co6.find(function (d) {
1259
- return d.id === column.id;
1260
- }));
1261
- }); // This essentially enables faceted filter options to be built easily
1262
- // using every column's preFilteredRows value
1263
-
1264
- nonFilteredColumns.forEach(function (column) {
1265
- column.getPreFilteredRows = function () {
1266
- return globalFilteredRowModel.rows;
1267
- };
1268
- });
1269
- return globalFilteredRowModel;
1270
- }, {
1271
- key: 'getGlobalFilteredRowModel',
1272
- debug: function debug() {
1273
- var _instance$options$deb3;
1350
+ getGlobalFilteredRowModel: function getGlobalFilteredRowModel() {
1351
+ if (!instance._getGlobalFilteredRowModel && instance.options.getGlobalFilteredRowModel) {
1352
+ instance._getGlobalFilteredRowModel = instance.options.getGlobalFilteredRowModel(instance);
1353
+ }
1274
1354
 
1275
- return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugTable;
1276
- },
1277
- onChange: function onChange() {
1278
- instance._notifySortingReset();
1355
+ if (!instance._getGlobalFilteredRowModel) {
1356
+ return instance.getPreGlobalFilteredRowModel();
1279
1357
  }
1280
- })
1358
+
1359
+ return instance._getGlobalFilteredRowModel();
1360
+ }
1281
1361
  };
1282
1362
  }
1283
1363
  };
@@ -1442,6 +1522,8 @@ var Grouping = {
1442
1522
  var registered = false;
1443
1523
  return {
1444
1524
  _notifyGroupingReset: function _notifyGroupingReset() {
1525
+ instance._notifyExpandedReset();
1526
+
1445
1527
  if (!registered) {
1446
1528
  registered = true;
1447
1529
  return;
@@ -1541,25 +1623,17 @@ var Grouping = {
1541
1623
  getPreGroupedRowModel: function getPreGroupedRowModel() {
1542
1624
  return instance.getSortedRowModel();
1543
1625
  },
1544
- getGroupedRowModel: memo(function () {
1545
- return [instance.getState().grouping, instance.getSortedRowModel(), instance.options.groupRowsFn];
1546
- }, function (grouping, rowModel, groupRowsFn) {
1547
- if (!groupRowsFn || !grouping.length) {
1548
- return rowModel;
1626
+ getGroupedRowModel: function getGroupedRowModel() {
1627
+ if (!instance._getGroupedRowModel && instance.options.getGroupedRowModel) {
1628
+ instance._getGroupedRowModel = instance.options.getGroupedRowModel(instance);
1549
1629
  }
1550
1630
 
1551
- return groupRowsFn(instance, rowModel);
1552
- }, {
1553
- key: 'getGroupedRowModel',
1554
- debug: function debug() {
1555
- var _instance$options$deb;
1556
-
1557
- return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
1558
- },
1559
- onChange: function onChange() {
1560
- return instance._notifyExpandedReset();
1631
+ if (!instance._getGroupedRowModel) {
1632
+ return instance.getPreGroupedRowModel();
1561
1633
  }
1562
- })
1634
+
1635
+ return instance._getGroupedRowModel();
1636
+ }
1563
1637
  };
1564
1638
  },
1565
1639
  createRow: function createRow(row, instance) {
@@ -1828,22 +1902,17 @@ var Pagination = {
1828
1902
  getPrePaginationRowModel: function getPrePaginationRowModel() {
1829
1903
  return instance.getExpandedRowModel();
1830
1904
  },
1831
- getPaginationRowModel: memo(function () {
1832
- return [instance.getState().pagination, instance.getExpandedRowModel(), instance.options.paginateRowsFn];
1833
- }, function (_pagination, rowModel, paginateRowsFn) {
1834
- if (!paginateRowsFn || !rowModel.rows.length) {
1835
- return rowModel;
1905
+ getPaginationRowModel: function getPaginationRowModel() {
1906
+ if (!instance._getPaginationRowModel && instance.options.getPaginationRowModel) {
1907
+ instance._getPaginationRowModel = instance.options.getPaginationRowModel(instance);
1836
1908
  }
1837
1909
 
1838
- return paginateRowsFn(instance, rowModel);
1839
- }, {
1840
- key: 'getPaginationRowModel',
1841
- debug: function debug() {
1842
- var _instance$options$deb2;
1843
-
1844
- return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugTable;
1910
+ if (!instance._getPaginationRowModel) {
1911
+ return instance.getPrePaginationRowModel();
1845
1912
  }
1846
- }),
1913
+
1914
+ return instance._getPaginationRowModel();
1915
+ },
1847
1916
  getPageCount: function getPageCount() {
1848
1917
  var pageCount = instance.getState().pagination.pageCount;
1849
1918
 
@@ -2653,6 +2722,8 @@ var Sorting = {
2653
2722
  var registered = false;
2654
2723
  return {
2655
2724
  _notifySortingReset: function _notifySortingReset() {
2725
+ instance._notifyGroupingReset();
2726
+
2656
2727
  if (!registered) {
2657
2728
  registered = true;
2658
2729
  return;
@@ -2883,25 +2954,17 @@ var Sorting = {
2883
2954
  getPreSortedRowModel: function getPreSortedRowModel() {
2884
2955
  return instance.getGlobalFilteredRowModel();
2885
2956
  },
2886
- getSortedRowModel: memo(function () {
2887
- return [instance.getState().sorting, instance.getGlobalFilteredRowModel(), instance.options.sortRowsFn];
2888
- }, function (sorting, rowModel, sortingFn) {
2889
- if (!sortingFn || !(sorting != null && sorting.length)) {
2890
- return rowModel;
2957
+ getSortedRowModel: function getSortedRowModel() {
2958
+ if (!instance._getSortedRowModel && instance.options.getSortedRowModel) {
2959
+ instance._getSortedRowModel = instance.options.getSortedRowModel(instance);
2891
2960
  }
2892
2961
 
2893
- return sortingFn(instance, rowModel);
2894
- }, {
2895
- key: 'getSortedRowModel',
2896
- debug: function debug() {
2897
- var _instance$options$deb;
2898
-
2899
- return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
2900
- },
2901
- onChange: function onChange() {
2902
- instance._notifyGroupingReset();
2962
+ if (!instance._getSortedRowModel) {
2963
+ return instance.getPreSortedRowModel();
2903
2964
  }
2904
- })
2965
+
2966
+ return instance._getSortedRowModel();
2967
+ }
2905
2968
  };
2906
2969
  }
2907
2970
  };
@@ -3687,8 +3750,11 @@ function createTableInstance(options) {
3687
3750
  };
3688
3751
 
3689
3752
  instance.options = buildOptions(options);
3753
+ var coreInitialState = {
3754
+ coreProgress: 1
3755
+ };
3690
3756
 
3691
- var initialState = _extends({}, features.reduce(function (obj, feature) {
3757
+ var initialState = _extends({}, coreInitialState, features.reduce(function (obj, feature) {
3692
3758
  return Object.assign(obj, feature.getInitialState == null ? void 0 : feature.getInitialState());
3693
3759
  }, {}), (_options$initialState = options.initialState) != null ? _options$initialState : {});
3694
3760
 
@@ -4002,85 +4068,13 @@ function createTableInstance(options) {
4002
4068
 
4003
4069
  return row;
4004
4070
  },
4005
- getCoreRowModel: memo(function () {
4006
- return [instance.options.data];
4007
- }, function (data) {
4008
- // Access the row model using initial columns
4009
- var rows = [];
4010
- var flatRows = [];
4011
- var rowsById = {};
4012
- var leafColumns = instance.getAllLeafColumns();
4013
-
4014
- var accessRow = function accessRow(originalRow, rowIndex, depth, parentRows, parent) {
4015
- if (depth === void 0) {
4016
- depth = 0;
4017
- }
4018
-
4019
- var id = instance.getRowId(originalRow, rowIndex, parent);
4020
-
4021
- if (!id) {
4022
- if (process.env.NODE_ENV !== 'production') {
4023
- throw new Error("getRowId expected an ID, but got " + id);
4024
- }
4025
- }
4026
-
4027
- var values = {};
4028
-
4029
- for (var i = 0; i < leafColumns.length; i++) {
4030
- var _column = leafColumns[i];
4031
-
4032
- if (_column && _column.accessorFn) {
4033
- values[_column.id] = _column.accessorFn(originalRow, rowIndex);
4034
- }
4035
- } // Make the row
4036
-
4037
-
4038
- var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
4039
-
4040
- parentRows.push(row); // Keep track of every row in a flat array
4041
-
4042
- flatRows.push(row); // Also keep track of every row by its ID
4043
-
4044
- rowsById[id] = row; // Get the original subrows
4045
-
4046
- if (instance.options.getSubRows) {
4047
- var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
4048
-
4049
- if (originalSubRows != null && originalSubRows.length) {
4050
- row.originalSubRows = originalSubRows;
4051
- var subRows = [];
4052
-
4053
- for (var _i = 0; _i < row.originalSubRows.length; _i++) {
4054
- accessRow(row.originalSubRows[_i], _i, depth + 1, subRows, row);
4055
- }
4056
-
4057
- row.subRows = subRows;
4058
- }
4059
- }
4060
- };
4061
-
4062
- for (var i = 0; i < data.length; i++) {
4063
- accessRow(data[i], i, 0, rows);
4071
+ getCoreRowModel: function getCoreRowModel() {
4072
+ if (!instance._getCoreRowModel) {
4073
+ instance._getCoreRowModel = instance.options.getCoreRowModel(instance);
4064
4074
  }
4065
4075
 
4066
- return {
4067
- rows: rows,
4068
- flatRows: flatRows,
4069
- rowsById: rowsById
4070
- };
4071
- }, {
4072
- key: 'getRowModel',
4073
- debug: function debug() {
4074
- var _instance$options$deb10;
4075
-
4076
- return (_instance$options$deb10 = instance.options.debugAll) != null ? _instance$options$deb10 : instance.options.debugTable;
4077
- },
4078
- onChange: function onChange() {
4079
- instance._notifyFiltersReset();
4080
-
4081
- instance._notifyRowSelectionReset();
4082
- }
4083
- }),
4076
+ return instance._getCoreRowModel();
4077
+ },
4084
4078
  // The final calls start at the bottom of the model,
4085
4079
  // expanded rows, which then work their way up
4086
4080
  getRowModel: function getRowModel() {
@@ -4183,6 +4177,18 @@ function createTableInstance(options) {
4183
4177
  return (_instance$getRightHea = (_instance$getRightHea2 = instance.getRightHeaderGroups()[0]) == null ? void 0 : _instance$getRightHea2.headers.reduce(function (sum, header) {
4184
4178
  return sum + header.getWidth();
4185
4179
  }, 0)) != null ? _instance$getRightHea : 0;
4180
+ },
4181
+ getOverallProgress: function getOverallProgress() {
4182
+ var _instance$getState = instance.getState(),
4183
+ coreProgress = _instance$getState.coreProgress,
4184
+ columnFiltersProgress = _instance$getState.columnFiltersProgress,
4185
+ globalFilterProgress = _instance$getState.globalFilterProgress;
4186
+
4187
+ return mean(function () {
4188
+ return [coreProgress, columnFiltersProgress, globalFilterProgress].filter(function (d) {
4189
+ return d < 1;
4190
+ });
4191
+ });
4186
4192
  }
4187
4193
  });
4188
4194
 
@@ -4251,25 +4257,215 @@ function _createTable(_, __, __options) {
4251
4257
  };
4252
4258
  }
4253
4259
 
4254
- function filterRowModelFromLeafs(rowsToFilter, filterRows, instance) {
4255
- var newFilteredFlatRows = [];
4256
- var newFilteredRowsById = {};
4260
+ function getCoreRowModelSync() {
4261
+ return function (instance) {
4262
+ return memo(function () {
4263
+ return [instance.options.data];
4264
+ }, function (data) {
4265
+ // Access the row model using initial columns
4266
+ var rows = [];
4267
+ var flatRows = [];
4268
+ var rowsById = {};
4269
+ var leafColumns = instance.getAllLeafColumns();
4257
4270
 
4258
- var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
4259
- if (depth === void 0) {
4260
- depth = 0;
4261
- }
4271
+ var accessRow = function accessRow(originalRow, rowIndex, depth, parentRows, parent) {
4272
+ if (depth === void 0) {
4273
+ depth = 0;
4274
+ }
4262
4275
 
4263
- rowsToFilter = rowsToFilter.slice(); // Filter from children up first
4276
+ var id = instance.getRowId(originalRow, rowIndex, parent);
4264
4277
 
4265
- for (var i = 0; i < rowsToFilter.length; i++) {
4266
- var _row$subRows;
4278
+ if (!id) {
4279
+ if (process.env.NODE_ENV !== 'production') {
4280
+ throw new Error("getRowId expected an ID, but got " + id);
4281
+ }
4282
+ }
4267
4283
 
4268
- var row = rowsToFilter[i];
4284
+ var values = {};
4269
4285
 
4270
- if (!((_row$subRows = row.subRows) != null && _row$subRows.length)) {
4271
- continue;
4272
- }
4286
+ for (var i = 0; i < leafColumns.length; i++) {
4287
+ var column = leafColumns[i];
4288
+
4289
+ if (column && column.accessorFn) {
4290
+ values[column.id] = column.accessorFn(originalRow, rowIndex);
4291
+ }
4292
+ } // Make the row
4293
+
4294
+
4295
+ var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
4296
+
4297
+ parentRows.push(row); // Keep track of every row in a flat array
4298
+
4299
+ flatRows.push(row); // Also keep track of every row by its ID
4300
+
4301
+ rowsById[id] = row; // Get the original subrows
4302
+
4303
+ if (instance.options.getSubRows) {
4304
+ var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
4305
+
4306
+ if (originalSubRows != null && originalSubRows.length) {
4307
+ row.originalSubRows = originalSubRows;
4308
+ var subRows = [];
4309
+
4310
+ for (var _i = 0; _i < row.originalSubRows.length; _i++) {
4311
+ accessRow(row.originalSubRows[_i], _i, depth + 1, subRows, row);
4312
+ }
4313
+
4314
+ row.subRows = subRows;
4315
+ }
4316
+ }
4317
+ };
4318
+
4319
+ for (var i = 0; i < data.length; i++) {
4320
+ accessRow(data[i], i, 0, rows);
4321
+ }
4322
+
4323
+ return {
4324
+ rows: rows,
4325
+ flatRows: flatRows,
4326
+ rowsById: rowsById
4327
+ };
4328
+ }, {
4329
+ key: 'getRowModel',
4330
+ debug: function debug() {
4331
+ var _instance$options$deb;
4332
+
4333
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
4334
+ },
4335
+ onChange: function onChange() {
4336
+ instance._notifyFiltersReset();
4337
+
4338
+ instance._notifyRowSelectionReset();
4339
+ }
4340
+ });
4341
+ };
4342
+ }
4343
+
4344
+ function getCoreRowModelAsync(opts) {
4345
+ return function (instance) {
4346
+ return incrementalMemo(function () {
4347
+ return [instance.options.data, instance.getAllLeafColumns()];
4348
+ }, function () {
4349
+ var rows = [];
4350
+ var flatRows = [];
4351
+ var rowsById = {};
4352
+ return {
4353
+ rows: rows,
4354
+ flatRows: flatRows,
4355
+ rowsById: rowsById
4356
+ };
4357
+ }, function (data, leafColumns) {
4358
+ return function (rowModelRef) {
4359
+ return function (scheduleTask) {
4360
+ var accessRows = function accessRows(originalRows, depth, parent) {
4361
+ if (depth === void 0) {
4362
+ depth = 0;
4363
+ }
4364
+
4365
+ var batchGroups = getBatchGroups(originalRows, 2000);
4366
+
4367
+ var _loop = function _loop(i) {
4368
+ var batchGroup = batchGroups[i];
4369
+ scheduleTask(function () {
4370
+ for (var _i = 0; _i < batchGroup.items.length; _i++) {
4371
+ var originalRow = batchGroup.items[_i];
4372
+ var rowIndex = batchGroup.start + _i;
4373
+ var id = instance.getRowId(originalRow, rowIndex, parent);
4374
+
4375
+ if (!id) {
4376
+ if (process.env.NODE_ENV !== 'production') {
4377
+ throw new Error("getRowId expected an ID, but got " + id);
4378
+ }
4379
+ }
4380
+
4381
+ var values = {};
4382
+
4383
+ for (var _i2 = 0; _i2 < leafColumns.length; _i2++) {
4384
+ var column = leafColumns[_i2];
4385
+
4386
+ if (column && column.accessorFn) {
4387
+ values[column.id] = column.accessorFn(originalRow, rowIndex);
4388
+ }
4389
+ } // Make the row
4390
+
4391
+
4392
+ var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
4393
+
4394
+ if (parent) {
4395
+ parent.subRows.push(row);
4396
+ } else {
4397
+ rowModelRef.current.rows.push(row);
4398
+ } // Keep track of every row in a flat array
4399
+
4400
+
4401
+ rowModelRef.current.flatRows.push(row); // Also keep track of every row by its ID
4402
+
4403
+ rowModelRef.current.rowsById[id] = row; // Get the original subrows
4404
+
4405
+ if (instance.options.getSubRows) {
4406
+ var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
4407
+
4408
+ if (originalSubRows != null && originalSubRows.length) {
4409
+ row.originalSubRows = originalSubRows;
4410
+ row.subRows = [];
4411
+ accessRows(row.originalSubRows, depth + 1, row);
4412
+ }
4413
+ }
4414
+ }
4415
+ });
4416
+ };
4417
+
4418
+ for (var i = 0; i < batchGroups.length; i++) {
4419
+ _loop(i);
4420
+ }
4421
+ };
4422
+
4423
+ accessRows(data);
4424
+ };
4425
+ };
4426
+ }, {
4427
+ key: 'getRowModel',
4428
+ initialSync: opts == null ? void 0 : opts.initialSync,
4429
+ onProgress: function onProgress(progress) {
4430
+ instance.setState(function (old) {
4431
+ return _extends({}, old, {
4432
+ coreProgress: progress
4433
+ });
4434
+ });
4435
+ },
4436
+ debug: function debug() {
4437
+ var _instance$options$deb;
4438
+
4439
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
4440
+ },
4441
+ onChange: function onChange() {
4442
+ instance._notifyFiltersReset();
4443
+
4444
+ instance._notifyRowSelectionReset();
4445
+ }
4446
+ });
4447
+ };
4448
+ }
4449
+
4450
+ function filterRowModelFromLeafs(rowsToFilter, filterRows, instance) {
4451
+ var newFilteredFlatRows = [];
4452
+ var newFilteredRowsById = {};
4453
+
4454
+ var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
4455
+ if (depth === void 0) {
4456
+ depth = 0;
4457
+ }
4458
+
4459
+ rowsToFilter = rowsToFilter.slice(); // Filter from children up first
4460
+
4461
+ for (var i = 0; i < rowsToFilter.length; i++) {
4462
+ var _row$subRows;
4463
+
4464
+ var row = rowsToFilter[i];
4465
+
4466
+ if (!((_row$subRows = row.subRows) != null && _row$subRows.length)) {
4467
+ continue;
4468
+ }
4273
4469
 
4274
4470
  rowsToFilter[i] = instance.createRow(row.id, row.original, row.index, row.depth, row.values);
4275
4471
  rowsToFilter[i].subRows = recurseFilterRows(row.subRows, depth + 1);
@@ -4334,259 +4530,380 @@ function filterRowModelFromRoot(rowsToFilter, filterRows, instance) {
4334
4530
  };
4335
4531
  }
4336
4532
 
4337
- function columnFilterRowsFn(instance, rowModel) {
4338
- var columnFilters = instance.getState().columnFilters;
4339
- var filterFromLeafRows = instance.options.filterFromLeafRows;
4340
-
4341
- var filterRows = function filterRows(rowsToFilter, depth) {
4342
- for (var i = 0; i < columnFilters.length; i++) {
4343
- var _columnFilters$i = columnFilters[i],
4344
- columnId = _columnFilters$i.id,
4345
- filterValue = _columnFilters$i.value; // Find the columnFilters column
4533
+ function getColumnFilteredRowModelSync() {
4534
+ return function (instance) {
4535
+ return memo(function () {
4536
+ return [instance.getState().columnFilters, instance.getCoreRowModel()];
4537
+ }, function (columnFilters, rowModel) {
4538
+ var columnFilteredRowModel = function () {
4539
+ if (!rowModel.rows.length || !columnFilters) {
4540
+ return rowModel;
4541
+ }
4346
4542
 
4347
- var column = instance.getColumn(columnId);
4543
+ var filterFromLeafRows = instance.options.filterFromLeafRows;
4348
4544
 
4349
- if (!column) {
4350
- if (process.env.NODE_ENV !== 'production') {
4351
- console.warn("Table: Could not find a column with id: " + columnId);
4352
- }
4545
+ var filterRows = function filterRows(rowsToFilter, depth) {
4546
+ for (var i = 0; i < columnFilters.length; i++) {
4547
+ var _columnFilters$i = columnFilters[i],
4548
+ columnId = _columnFilters$i.id,
4549
+ filterValue = _columnFilters$i.value; // Find the columnFilters column
4353
4550
 
4354
- throw new Error();
4355
- }
4551
+ var column = instance.getColumn(columnId);
4356
4552
 
4357
- if (depth === 0) {
4358
- (function () {
4359
- var preFilteredRows = [].concat(rowsToFilter);
4553
+ if (!column) {
4554
+ if (process.env.NODE_ENV !== 'production') {
4555
+ console.warn("Table: Could not find a column with id: " + columnId);
4556
+ }
4360
4557
 
4361
- column.getPreFilteredRows = function () {
4362
- return preFilteredRows;
4363
- };
4364
- })();
4365
- }
4558
+ throw new Error();
4559
+ }
4366
4560
 
4367
- var filterFn = instance.getColumnFilterFn(column.id);
4561
+ if (depth === 0) {
4562
+ (function () {
4563
+ var preFilteredRows = [].concat(rowsToFilter);
4368
4564
 
4369
- if (!filterFn) {
4370
- if (process.env.NODE_ENV !== 'production') {
4371
- console.warn("Could not find a valid 'column.filterType' for column with the ID: " + column.id + ".");
4372
- }
4565
+ column.getPreFilteredRows = function () {
4566
+ return preFilteredRows;
4567
+ };
4568
+ })();
4569
+ }
4373
4570
 
4374
- continue;
4375
- } // Pass the rows, id, filterValue and column to the filterFn
4376
- // to get the filtered rows back
4571
+ var filterFn = instance.getColumnFilterFn(column.id);
4377
4572
 
4573
+ if (!filterFn) {
4574
+ if (process.env.NODE_ENV !== 'production') {
4575
+ console.warn("Could not find a valid 'column.filterType' for column with the ID: " + column.id + ".");
4576
+ }
4378
4577
 
4379
- rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue);
4380
- }
4578
+ continue;
4579
+ } // Pass the rows, id, filterValue and column to the filterFn
4580
+ // to get the filtered rows back
4381
4581
 
4382
- return rowsToFilter;
4383
- };
4384
4582
 
4385
- if (filterFromLeafRows) {
4386
- return filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
4387
- }
4583
+ rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue);
4584
+ }
4388
4585
 
4389
- return filterRowModelFromRoot(rowModel.rows, filterRows, instance);
4390
- }
4586
+ return rowsToFilter;
4587
+ };
4391
4588
 
4392
- function globalFilterRowsFn(instance, rowModel) {
4393
- var globalFilter = instance.getState().globalFilter;
4394
- var filterFromLeafRows = instance.options.filterFromLeafRows;
4395
- var filterFn = instance.getGlobalFilterFn();
4589
+ if (filterFromLeafRows) {
4590
+ return filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
4591
+ }
4396
4592
 
4397
- if (!filterFn) {
4398
- if (process.env.NODE_ENV !== 'production') {
4399
- console.warn("Could not find a valid 'globalFilterType'");
4400
- }
4593
+ return filterRowModelFromRoot(rowModel.rows, filterRows, instance);
4594
+ }(); // Now that each filtered column has it's partially filtered rows,
4595
+ // lets assign the final filtered rows to all of the other columns
4401
4596
 
4402
- return rowModel;
4403
- }
4404
4597
 
4405
- var filterableColumns = instance.getAllLeafColumns().filter(function (column) {
4406
- return column.getCanGlobalFilter();
4407
- });
4408
- var filterableColumnIds = filterableColumns.map(function (d) {
4409
- return d.id;
4410
- });
4598
+ var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
4599
+ var _instance$getState$co;
4411
4600
 
4412
- var filterRows = function filterRows(rows) {
4413
- return filterFn(rows, filterableColumnIds, globalFilter);
4414
- };
4601
+ return !((_instance$getState$co = instance.getState().columnFilters) != null && _instance$getState$co.find(function (d) {
4602
+ return d.id === column.id;
4603
+ }));
4604
+ }); // This essentially enables faceted filter options to be built easily
4605
+ // using every column's preFilteredRows value
4415
4606
 
4416
- if (filterFromLeafRows) {
4417
- filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
4418
- }
4607
+ nonFilteredColumns.forEach(function (column) {
4608
+ column.getPreFilteredRows = function () {
4609
+ return columnFilteredRowModel.rows;
4610
+ };
4611
+ });
4612
+ return columnFilteredRowModel;
4613
+ }, {
4614
+ key: 'getColumnFilteredRowModelSync',
4615
+ debug: function debug() {
4616
+ var _instance$options$deb;
4419
4617
 
4420
- return filterRowModelFromRoot(rowModel.rows, filterRows, instance);
4618
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
4619
+ },
4620
+ onChange: function onChange() {
4621
+ instance._notifySortingReset();
4622
+ }
4623
+ });
4624
+ };
4421
4625
  }
4422
4626
 
4423
- function sortRowsFn(instance, rowModel) {
4424
- var sortingState = instance.getState().sorting;
4425
- var sortedFlatRows = []; // Filter out sortings that correspond to non existing columns
4627
+ function getGlobalFilteredRowModelSync() {
4628
+ return function (instance) {
4629
+ return memo(function () {
4630
+ return [instance.getState().globalFilter, instance.getCoreRowModel()];
4631
+ }, function (globalFilter, rowModel) {
4632
+ var globalFilteredRowModel = function () {
4633
+ if (!rowModel.rows.length || !globalFilter) {
4634
+ return rowModel;
4635
+ }
4426
4636
 
4427
- var availableSorting = sortingState.filter(function (sort) {
4428
- return instance.getColumnCanSort(sort.id);
4429
- });
4430
- var columnInfoById = {};
4431
- availableSorting.forEach(function (sortEntry) {
4432
- var column = instance.getColumn(sortEntry.id);
4433
- columnInfoById[sortEntry.id] = {
4434
- sortUndefined: column.sortUndefined,
4435
- invertSorting: column.invertSorting,
4436
- sortingFn: instance.getColumnSortingFn(sortEntry.id)
4437
- };
4438
- });
4637
+ var filterFromLeafRows = instance.options.filterFromLeafRows;
4638
+ var filterFn = instance.getGlobalFilterFn();
4439
4639
 
4440
- var sortData = function sortData(rows) {
4441
- // This will also perform a stable sorting using the row index
4442
- // if needed.
4443
- var sortedData = rows.slice();
4444
- sortedData.sort(function (rowA, rowB) {
4445
- for (var i = 0; i < availableSorting.length; i += 1) {
4446
- var _sortEntry$desc;
4447
-
4448
- var sortEntry = availableSorting[i];
4449
- var columnInfo = columnInfoById[sortEntry.id];
4450
- var isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;
4451
-
4452
- if (columnInfo.sortUndefined) {
4453
- var aValue = rowA.values[sortEntry.id];
4454
- var bValue = rowB.values[sortEntry.id];
4455
- var aUndefined = typeof aValue === 'undefined';
4456
- var bUndefined = typeof bValue === 'undefined';
4457
-
4458
- if (aUndefined || bUndefined) {
4459
- return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;
4640
+ if (!filterFn) {
4641
+ if (process.env.NODE_ENV !== 'production') {
4642
+ console.warn("Could not find a valid 'globalFilterType'");
4460
4643
  }
4461
- } // This function should always return in ascending order
4462
4644
 
4645
+ return rowModel;
4646
+ }
4463
4647
 
4464
- var sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);
4465
-
4466
- if (sortInt !== 0) {
4467
- if (isDesc) {
4468
- sortInt *= -1;
4469
- }
4648
+ var filterableColumns = instance.getAllLeafColumns().filter(function (column) {
4649
+ return column.getCanGlobalFilter();
4650
+ });
4651
+ var filterableColumnIds = filterableColumns.map(function (d) {
4652
+ return d.id;
4653
+ });
4470
4654
 
4471
- if (columnInfo.invertSorting) {
4472
- sortInt *= -1;
4473
- }
4655
+ var filterRows = function filterRows(rows) {
4656
+ return filterFn(rows, filterableColumnIds, globalFilter);
4657
+ };
4474
4658
 
4475
- return sortInt;
4659
+ if (filterFromLeafRows) {
4660
+ filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
4476
4661
  }
4477
- }
4478
4662
 
4479
- return rowA.index - rowB.index;
4480
- }); // If there are sub-rows, sort them
4663
+ return filterRowModelFromRoot(rowModel.rows, filterRows, instance);
4664
+ }(); // Now that each filtered column has it's partially filtered rows,
4665
+ // lets assign the final filtered rows to all of the other columns
4481
4666
 
4482
- sortedData.forEach(function (row) {
4483
- sortedFlatRows.push(row);
4484
4667
 
4485
- if (!row.subRows || row.subRows.length <= 1) {
4486
- return;
4487
- }
4668
+ var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
4669
+ var _instance$getState$co;
4488
4670
 
4489
- row.subRows = sortData(row.subRows);
4490
- });
4491
- return sortedData;
4492
- };
4671
+ return !((_instance$getState$co = instance.getState().columnFilters) != null && _instance$getState$co.find(function (d) {
4672
+ return d.id === column.id;
4673
+ }));
4674
+ }); // This essentially enables faceted filter options to be built easily
4675
+ // using every column's preFilteredRows value
4493
4676
 
4494
- return {
4495
- rows: sortData(rowModel.rows),
4496
- flatRows: sortedFlatRows,
4497
- rowsById: rowModel.rowsById
4677
+ nonFilteredColumns.forEach(function (column) {
4678
+ column.getPreFilteredRows = function () {
4679
+ return globalFilteredRowModel.rows;
4680
+ };
4681
+ });
4682
+ return globalFilteredRowModel;
4683
+ }, {
4684
+ key: 'getGlobalFilteredRowModelSync',
4685
+ debug: function debug() {
4686
+ var _instance$options$deb;
4687
+
4688
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
4689
+ },
4690
+ onChange: function onChange() {
4691
+ instance._notifySortingReset();
4692
+ }
4693
+ });
4498
4694
  };
4499
4695
  }
4500
4696
 
4501
- function groupRowsFn(instance, sortedRowModel) {
4502
- var groupingState = instance.getState().grouping; // Filter the grouping list down to columns that exist
4697
+ function getSortedRowModelSync() {
4698
+ return function (instance) {
4699
+ return memo(function () {
4700
+ return [instance.getState().sorting, instance.getGlobalFilteredRowModel()];
4701
+ }, function (sorting, rowModel) {
4702
+ if (!rowModel.rows.length || !(sorting != null && sorting.length)) {
4703
+ return rowModel;
4704
+ }
4503
4705
 
4504
- var existingGrouping = groupingState.filter(function (columnId) {
4505
- return instance.getColumn(columnId);
4506
- }); // Find the columns that can or are aggregating
4507
- // Uses each column to aggregate rows into a single value
4706
+ var sortingState = instance.getState().sorting;
4707
+ var sortedFlatRows = []; // Filter out sortings that correspond to non existing columns
4508
4708
 
4509
- var aggregateRowsToValues = function aggregateRowsToValues(leafRows, groupedRows, depth) {
4510
- var values = {};
4511
- instance.getAllLeafColumns().forEach(function (column) {
4512
- // Don't aggregate columns that are in the grouping
4513
- if (existingGrouping.includes(column.id)) {
4514
- values[column.id] = groupedRows[0] ? groupedRows[0].values[column.id] : null;
4515
- return;
4516
- } // Aggregate the values
4709
+ var availableSorting = sortingState.filter(function (sort) {
4710
+ return instance.getColumnCanSort(sort.id);
4711
+ });
4712
+ var columnInfoById = {};
4713
+ availableSorting.forEach(function (sortEntry) {
4714
+ var column = instance.getColumn(sortEntry.id);
4715
+ columnInfoById[sortEntry.id] = {
4716
+ sortUndefined: column.sortUndefined,
4717
+ invertSorting: column.invertSorting,
4718
+ sortingFn: instance.getColumnSortingFn(sortEntry.id)
4719
+ };
4720
+ });
4517
4721
 
4722
+ var sortData = function sortData(rows) {
4723
+ // This will also perform a stable sorting using the row index
4724
+ // if needed.
4725
+ var sortedData = rows.slice();
4726
+ sortedData.sort(function (rowA, rowB) {
4727
+ for (var i = 0; i < availableSorting.length; i += 1) {
4728
+ var _sortEntry$desc;
4729
+
4730
+ var sortEntry = availableSorting[i];
4731
+ var columnInfo = columnInfoById[sortEntry.id];
4732
+ var isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;
4733
+
4734
+ if (columnInfo.sortUndefined) {
4735
+ var aValue = rowA.values[sortEntry.id];
4736
+ var bValue = rowB.values[sortEntry.id];
4737
+ var aUndefined = typeof aValue === 'undefined';
4738
+ var bUndefined = typeof bValue === 'undefined';
4739
+
4740
+ if (aUndefined || bUndefined) {
4741
+ return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;
4742
+ }
4743
+ } // This function should always return in ascending order
4518
4744
 
4519
- var aggregateFn = instance.getColumnAggregationFn(column.id);
4520
4745
 
4521
- if (aggregateFn) {
4522
- values[column.id] = aggregateFn(function () {
4523
- return leafRows.map(function (row) {
4524
- var columnValue = row.values[column.id];
4746
+ var sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);
4747
+
4748
+ if (sortInt !== 0) {
4749
+ if (isDesc) {
4750
+ sortInt *= -1;
4751
+ }
4525
4752
 
4526
- if (!depth && column.aggregateValue) {
4527
- columnValue = column.aggregateValue(columnValue);
4753
+ if (columnInfo.invertSorting) {
4754
+ sortInt *= -1;
4755
+ }
4756
+
4757
+ return sortInt;
4528
4758
  }
4759
+ }
4529
4760
 
4530
- return columnValue;
4531
- });
4532
- }, function () {
4533
- return groupedRows.map(function (row) {
4534
- return row.values[column.id];
4535
- });
4536
- });
4537
- } else if (column.aggregationType) {
4538
- console.info({
4539
- column: column
4761
+ return rowA.index - rowB.index;
4762
+ }); // If there are sub-rows, sort them
4763
+
4764
+ sortedData.forEach(function (row) {
4765
+ sortedFlatRows.push(row);
4766
+
4767
+ if (!row.subRows || row.subRows.length <= 1) {
4768
+ return;
4769
+ }
4770
+
4771
+ row.subRows = sortData(row.subRows);
4540
4772
  });
4541
- throw new Error(process.env.NODE_ENV !== 'production' ? "Table: Invalid column.aggregateType option for column listed above" : '');
4542
- } else {
4543
- values[column.id] = null;
4773
+ return sortedData;
4774
+ };
4775
+
4776
+ return {
4777
+ rows: sortData(rowModel.rows),
4778
+ flatRows: sortedFlatRows,
4779
+ rowsById: rowModel.rowsById
4780
+ };
4781
+ }, {
4782
+ key: 'getSortedRowModel',
4783
+ debug: function debug() {
4784
+ var _instance$options$deb;
4785
+
4786
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
4787
+ },
4788
+ onChange: function onChange() {
4789
+ instance._notifyGroupingReset();
4544
4790
  }
4545
4791
  });
4546
- return values;
4547
4792
  };
4793
+ }
4548
4794
 
4549
- var groupedFlatRows = [];
4550
- var groupedRowsById = {}; // const onlyGroupedFlatRows: Row[] = [];
4551
- // const onlyGroupedRowsById: Record<RowId, Row> = {};
4552
- // const nonGroupedFlatRows: Row[] = [];
4553
- // const nonGroupedRowsById: Record<RowId, Row> = {};
4554
- // Recursively group the data
4795
+ function getGroupedRowModelSync() {
4796
+ return function (instance) {
4797
+ return memo(function () {
4798
+ return [instance.getState().grouping, instance.getSortedRowModel()];
4799
+ }, function (grouping, rowModel) {
4800
+ if (!rowModel.rows.length || !grouping.length) {
4801
+ return rowModel;
4802
+ } // Filter the grouping list down to columns that exist
4555
4803
 
4556
- var groupUpRecursively = function groupUpRecursively(rows, depth, parentId) {
4557
- if (depth === void 0) {
4558
- depth = 0;
4559
- }
4560
4804
 
4561
- // This is the last level, just return the rows
4562
- if (depth === existingGrouping.length) {
4563
- return rows;
4564
- }
4805
+ var existingGrouping = grouping.filter(function (columnId) {
4806
+ return instance.getColumn(columnId);
4807
+ }); // Find the columns that can or are aggregating
4808
+ // Uses each column to aggregate rows into a single value
4809
+
4810
+ var aggregateRowsToValues = function aggregateRowsToValues(leafRows, groupedRows, depth) {
4811
+ var values = {};
4812
+ instance.getAllLeafColumns().forEach(function (column) {
4813
+ // Don't aggregate columns that are in the grouping
4814
+ if (existingGrouping.includes(column.id)) {
4815
+ values[column.id] = groupedRows[0] ? groupedRows[0].values[column.id] : null;
4816
+ return;
4817
+ } // Aggregate the values
4565
4818
 
4566
- var columnId = existingGrouping[depth]; // Group the rows together for this level
4567
4819
 
4568
- var rowGroupsMap = groupBy(rows, columnId); // Peform aggregations for each group
4820
+ var aggregateFn = instance.getColumnAggregationFn(column.id);
4569
4821
 
4570
- var aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(function (_ref, index) {
4571
- var groupingValue = _ref[0],
4572
- groupedRows = _ref[1];
4573
- var id = columnId + ":" + groupingValue;
4574
- id = parentId ? parentId + ">" + id : id; // First, Recurse to group sub rows before aggregation
4822
+ if (aggregateFn) {
4823
+ values[column.id] = aggregateFn(function () {
4824
+ return leafRows.map(function (row) {
4825
+ var columnValue = row.values[column.id];
4575
4826
 
4576
- var subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group
4827
+ if (!depth && column.aggregateValue) {
4828
+ columnValue = column.aggregateValue(columnValue);
4829
+ }
4577
4830
 
4578
- var leafRows = depth ? flattenBy(groupedRows, function (row) {
4579
- return row.subRows;
4580
- }) : groupedRows;
4581
- var values = aggregateRowsToValues(leafRows, groupedRows, depth);
4582
- var row = instance.createRow(id, undefined, index, depth, values);
4583
- Object.assign(row, {
4584
- groupingColumnId: columnId,
4585
- groupingValue: groupingValue,
4586
- subRows: subRows,
4587
- leafRows: leafRows
4588
- });
4589
- subRows.forEach(function (subRow) {
4831
+ return columnValue;
4832
+ });
4833
+ }, function () {
4834
+ return groupedRows.map(function (row) {
4835
+ return row.values[column.id];
4836
+ });
4837
+ });
4838
+ } else if (column.aggregationType) {
4839
+ console.info({
4840
+ column: column
4841
+ });
4842
+ throw new Error(process.env.NODE_ENV !== 'production' ? "Table: Invalid column.aggregateType option for column listed above" : '');
4843
+ } else {
4844
+ values[column.id] = null;
4845
+ }
4846
+ });
4847
+ return values;
4848
+ };
4849
+
4850
+ var groupedFlatRows = [];
4851
+ var groupedRowsById = {}; // const onlyGroupedFlatRows: Row[] = [];
4852
+ // const onlyGroupedRowsById: Record<RowId, Row> = {};
4853
+ // const nonGroupedFlatRows: Row[] = [];
4854
+ // const nonGroupedRowsById: Record<RowId, Row> = {};
4855
+ // Recursively group the data
4856
+
4857
+ var groupUpRecursively = function groupUpRecursively(rows, depth, parentId) {
4858
+ if (depth === void 0) {
4859
+ depth = 0;
4860
+ }
4861
+
4862
+ // This is the last level, just return the rows
4863
+ if (depth === existingGrouping.length) {
4864
+ return rows;
4865
+ }
4866
+
4867
+ var columnId = existingGrouping[depth]; // Group the rows together for this level
4868
+
4869
+ var rowGroupsMap = groupBy(rows, columnId); // Peform aggregations for each group
4870
+
4871
+ var aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(function (_ref, index) {
4872
+ var groupingValue = _ref[0],
4873
+ groupedRows = _ref[1];
4874
+ var id = columnId + ":" + groupingValue;
4875
+ id = parentId ? parentId + ">" + id : id; // First, Recurse to group sub rows before aggregation
4876
+
4877
+ var subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group
4878
+
4879
+ var leafRows = depth ? flattenBy(groupedRows, function (row) {
4880
+ return row.subRows;
4881
+ }) : groupedRows;
4882
+ var values = aggregateRowsToValues(leafRows, groupedRows, depth);
4883
+ var row = instance.createRow(id, undefined, index, depth, values);
4884
+ Object.assign(row, {
4885
+ groupingColumnId: columnId,
4886
+ groupingValue: groupingValue,
4887
+ subRows: subRows,
4888
+ leafRows: leafRows
4889
+ });
4890
+ subRows.forEach(function (subRow) {
4891
+ groupedFlatRows.push(subRow);
4892
+ groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {
4893
+ // onlyGroupedFlatRows.push(subRow);
4894
+ // onlyGroupedRowsById[subRow.id] = subRow;
4895
+ // } else {
4896
+ // nonGroupedFlatRows.push(subRow);
4897
+ // nonGroupedRowsById[subRow.id] = subRow;
4898
+ // }
4899
+ });
4900
+ return row;
4901
+ });
4902
+ return aggregatedGroupedRows;
4903
+ };
4904
+
4905
+ var groupedRows = groupUpRecursively(rowModel.rows, 0, '');
4906
+ groupedRows.forEach(function (subRow) {
4590
4907
  groupedFlatRows.push(subRow);
4591
4908
  groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {
4592
4909
  // onlyGroupedFlatRows.push(subRow);
@@ -4596,26 +4913,22 @@ function groupRowsFn(instance, sortedRowModel) {
4596
4913
  // nonGroupedRowsById[subRow.id] = subRow;
4597
4914
  // }
4598
4915
  });
4599
- return row;
4600
- });
4601
- return aggregatedGroupedRows;
4602
- };
4916
+ return {
4917
+ rows: groupedRows,
4918
+ flatRows: groupedFlatRows,
4919
+ rowsById: groupedRowsById
4920
+ };
4921
+ }, {
4922
+ key: 'getGroupedRowModel',
4923
+ debug: function debug() {
4924
+ var _instance$options$deb;
4603
4925
 
4604
- var groupedRows = groupUpRecursively(sortedRowModel.rows, 0, '');
4605
- groupedRows.forEach(function (subRow) {
4606
- groupedFlatRows.push(subRow);
4607
- groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {
4608
- // onlyGroupedFlatRows.push(subRow);
4609
- // onlyGroupedRowsById[subRow.id] = subRow;
4610
- // } else {
4611
- // nonGroupedFlatRows.push(subRow);
4612
- // nonGroupedRowsById[subRow.id] = subRow;
4613
- // }
4614
- });
4615
- return {
4616
- rows: groupedRows,
4617
- flatRows: groupedFlatRows,
4618
- rowsById: groupedRowsById
4926
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
4927
+ },
4928
+ onChange: function onChange() {
4929
+ return instance._notifyExpandedReset();
4930
+ }
4931
+ });
4619
4932
  };
4620
4933
  }
4621
4934
 
@@ -4635,7 +4948,28 @@ function groupBy(rows, columnId) {
4635
4948
  }, groupMap);
4636
4949
  }
4637
4950
 
4638
- function expandRowsFn(instance, sortedRowModel) {
4951
+ function getExpandedRowModel() {
4952
+ return function (instance) {
4953
+ return memo(function () {
4954
+ return [instance.getState().expanded, instance.getGroupedRowModel(), instance.options.paginateExpandedRows];
4955
+ }, function (expanded, rowModel, paginateExpandedRows) {
4956
+ if (!rowModel.rows.length || // Do not expand if rows are not included in pagination
4957
+ !paginateExpandedRows || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {
4958
+ return rowModel;
4959
+ }
4960
+
4961
+ return expandRows(rowModel, instance);
4962
+ }, {
4963
+ key: 'getExpandedRowModel',
4964
+ debug: function debug() {
4965
+ var _instance$options$deb;
4966
+
4967
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
4968
+ }
4969
+ });
4970
+ };
4971
+ }
4972
+ function expandRows(rowModel, instance) {
4639
4973
  var expandedRows = [];
4640
4974
 
4641
4975
  var handleRow = function handleRow(row) {
@@ -4648,39 +4982,55 @@ function expandRowsFn(instance, sortedRowModel) {
4648
4982
  }
4649
4983
  };
4650
4984
 
4651
- sortedRowModel.rows.forEach(handleRow);
4985
+ rowModel.rows.forEach(handleRow);
4652
4986
  return {
4653
4987
  rows: expandedRows,
4654
- flatRows: sortedRowModel.flatRows,
4655
- rowsById: sortedRowModel.rowsById
4988
+ flatRows: rowModel.flatRows,
4989
+ rowsById: rowModel.rowsById
4656
4990
  };
4657
4991
  }
4658
4992
 
4659
- function paginateRowsFn(instance, rowModel) {
4660
- var _instance$getState$pa = instance.getState().pagination,
4661
- pageSize = _instance$getState$pa.pageSize,
4662
- pageIndex = _instance$getState$pa.pageIndex;
4663
- var rows = rowModel.rows,
4664
- flatRows = rowModel.flatRows,
4665
- rowsById = rowModel.rowsById;
4666
- var pageStart = pageSize * pageIndex;
4667
- var pageEnd = pageStart + pageSize;
4668
- rows = rows.slice(pageStart, pageEnd);
4669
-
4670
- if (!instance.options.paginateExpandedRows) {
4671
- return expandRowsFn(instance, {
4672
- rows: rows,
4673
- flatRows: flatRows,
4674
- rowsById: rowsById
4675
- });
4676
- }
4993
+ function getPaginationRowModel(opts) {
4994
+ return function (instance) {
4995
+ return memo(function () {
4996
+ return [instance.getState().pagination, instance.getExpandedRowModel()];
4997
+ }, function (pagination, rowModel) {
4998
+ if (!rowModel.rows.length) {
4999
+ return rowModel;
5000
+ }
4677
5001
 
4678
- return {
4679
- rows: rows,
4680
- flatRows: flatRows,
4681
- rowsById: rowsById
5002
+ var pageSize = pagination.pageSize,
5003
+ pageIndex = pagination.pageIndex;
5004
+ var rows = rowModel.rows,
5005
+ flatRows = rowModel.flatRows,
5006
+ rowsById = rowModel.rowsById;
5007
+ var pageStart = pageSize * pageIndex;
5008
+ var pageEnd = pageStart + pageSize;
5009
+ rows = rows.slice(pageStart, pageEnd);
5010
+
5011
+ if (!instance.options.paginateExpandedRows) {
5012
+ return expandRows({
5013
+ rows: rows,
5014
+ flatRows: flatRows,
5015
+ rowsById: rowsById
5016
+ }, instance);
5017
+ }
5018
+
5019
+ return {
5020
+ rows: rows,
5021
+ flatRows: flatRows,
5022
+ rowsById: rowsById
5023
+ };
5024
+ }, {
5025
+ key: 'getPaginationRowModel',
5026
+ debug: function debug() {
5027
+ var _instance$options$deb;
5028
+
5029
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
5030
+ }
5031
+ });
4682
5032
  };
4683
5033
  }
4684
5034
 
4685
- export { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, RowSelection, Sorting, Visibility, buildHeaderGroups, columnFilterRowsFn, createTableInstance, defaultColumnSizing, expandRowsFn, flattenBy, functionalUpdate, globalFilterRowsFn, groupRowsFn, init, isFunction, isRowSelected, makeStateUpdater, memo, noop, paginateRowsFn, passiveEventSupported, propGetter, selectRowsFn, shouldAutoRemoveFilter, sortRowsFn };
5035
+ export { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, RowSelection, Sorting, Visibility, buildHeaderGroups, createTableInstance, defaultColumnSizing, expandRows, flattenBy, functionalUpdate, getBatchGroups, getColumnFilteredRowModelSync, getCoreRowModelAsync, getCoreRowModelSync, getExpandedRowModel, getGlobalFilteredRowModelSync, getGroupedRowModelSync, getPaginationRowModel, getSortedRowModelSync, incrementalMemo, init, isFunction, isRowSelected, makeStateUpdater, memo, noop, passiveEventSupported, propGetter, selectRowsFn, shouldAutoRemoveFilter };
4686
5036
  //# sourceMappingURL=index.js.map