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

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 (122) 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 +43 -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 +9 -3
  19. package/build/cjs/features/RowSelection.js.map +1 -1
  20. package/build/cjs/features/Sorting.js +10 -16
  21. package/build/cjs/features/Sorting.js.map +1 -1
  22. package/build/cjs/features/Visibility.js.map +1 -1
  23. package/build/cjs/filterTypes.js.map +1 -1
  24. package/build/cjs/index.js +19 -12
  25. package/build/cjs/index.js.map +1 -1
  26. package/build/cjs/sortTypes.js.map +1 -1
  27. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  28. package/build/cjs/utils/getColumnFilteredRowModelSync.js +115 -0
  29. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +1 -0
  30. package/build/cjs/utils/getCoreRowModelAsync.js +127 -0
  31. package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -0
  32. package/build/cjs/utils/getCoreRowModelSync.js +104 -0
  33. package/build/cjs/utils/getCoreRowModelSync.js.map +1 -0
  34. package/build/cjs/utils/getExpandedRowModel.js +61 -0
  35. package/build/cjs/utils/getExpandedRowModel.js.map +1 -0
  36. package/build/cjs/utils/getGlobalFilteredRowModelSync.js +91 -0
  37. package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +1 -0
  38. package/build/cjs/utils/getGroupedRowModel.js +176 -0
  39. package/build/cjs/utils/getGroupedRowModel.js.map +1 -0
  40. package/build/cjs/utils/getPaginationRowModel.js +61 -0
  41. package/build/cjs/utils/getPaginationRowModel.js.map +1 -0
  42. package/build/cjs/utils/getSortedRowModelSync.js +118 -0
  43. package/build/cjs/utils/getSortedRowModelSync.js.map +1 -0
  44. package/build/cjs/utils.js +155 -16
  45. package/build/cjs/utils.js.map +1 -1
  46. package/build/esm/index.js +877 -488
  47. package/build/esm/index.js.map +1 -1
  48. package/build/stats-html.html +1 -1
  49. package/build/stats-react.json +408 -300
  50. package/build/types/aggregationTypes.d.ts +1 -1
  51. package/build/types/core.d.ts +9 -1
  52. package/build/types/features/Expanding.d.ts +2 -1
  53. package/build/types/features/Filters.d.ts +6 -2
  54. package/build/types/features/Grouping.d.ts +3 -2
  55. package/build/types/features/Pagination.d.ts +2 -1
  56. package/build/types/features/Sorting.d.ts +2 -1
  57. package/build/types/index.d.ts +8 -6
  58. package/build/types/types.d.ts +2 -2
  59. package/build/types/utils/getColumnFilteredRowModelAsync.d.ts +4 -0
  60. package/build/types/utils/getColumnFilteredRowModelSync.d.ts +2 -0
  61. package/build/types/utils/getCoreRowModelAsync.d.ts +4 -0
  62. package/build/types/utils/getCoreRowModelSync.d.ts +2 -0
  63. package/build/types/utils/getExpandedRowModel.d.ts +7 -0
  64. package/build/types/utils/getGlobalFilteredRowModelAsync.d.ts +4 -0
  65. package/build/types/utils/getGlobalFilteredRowModelSync.d.ts +2 -0
  66. package/build/types/utils/getGroupedRowModel.d.ts +2 -0
  67. package/build/types/utils/getPaginationRowModel.d.ts +4 -0
  68. package/build/types/utils/{sortRowsQuicksortFn.d.ts → getSortedRowModelAsync.d.ts} +3 -1
  69. package/build/types/utils/getSortedRowModelSync.d.ts +2 -0
  70. package/build/types/utils.d.ts +16 -0
  71. package/build/umd/index.development.js +887 -493
  72. package/build/umd/index.development.js.map +1 -1
  73. package/build/umd/index.production.js +1 -1
  74. package/build/umd/index.production.js.map +1 -1
  75. package/package.json +3 -1
  76. package/src/aggregationTypes.ts +1 -1
  77. package/src/core.tsx +53 -97
  78. package/src/features/Expanding.ts +19 -27
  79. package/src/features/Filters.ts +52 -99
  80. package/src/features/Grouping.ts +19 -21
  81. package/src/features/Pagination.ts +17 -20
  82. package/src/features/RowSelection.ts +5 -3
  83. package/src/features/Sorting.ts +19 -23
  84. package/src/index.tsx +8 -6
  85. package/src/types.ts +3 -1
  86. package/src/utils/getColumnFilteredRowModelAsync.ts +119 -0
  87. package/src/utils/getColumnFilteredRowModelSync.ts +99 -0
  88. package/src/utils/getCoreRowModelAsync.ts +105 -0
  89. package/src/utils/getCoreRowModelSync.ts +107 -0
  90. package/src/utils/getExpandedRowModel.ts +58 -0
  91. package/src/utils/getGlobalFilteredRowModelAsync.ts +97 -0
  92. package/src/utils/getGlobalFilteredRowModelSync.ts +76 -0
  93. package/src/utils/getGroupedRowModel.ts +191 -0
  94. package/src/utils/getPaginationRowModel.ts +45 -0
  95. package/src/utils/getSortedRowModelAsync.ts +201 -0
  96. package/src/utils/getSortedRowModelSync.ts +118 -0
  97. package/src/utils.tsx +189 -16
  98. package/build/cjs/utils/columnFilterRowsFn.js +0 -73
  99. package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
  100. package/build/cjs/utils/expandRowsFn.js +0 -37
  101. package/build/cjs/utils/expandRowsFn.js.map +0 -1
  102. package/build/cjs/utils/globalFilterRowsFn.js +0 -49
  103. package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
  104. package/build/cjs/utils/groupRowsFn.js +0 -155
  105. package/build/cjs/utils/groupRowsFn.js.map +0 -1
  106. package/build/cjs/utils/paginateRowsFn.js +0 -44
  107. package/build/cjs/utils/paginateRowsFn.js.map +0 -1
  108. package/build/cjs/utils/sortRowsFn.js +0 -94
  109. package/build/cjs/utils/sortRowsFn.js.map +0 -1
  110. package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
  111. package/build/types/utils/expandRowsFn.d.ts +0 -2
  112. package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
  113. package/build/types/utils/groupRowsFn.d.ts +0 -2
  114. package/build/types/utils/paginateRowsFn.d.ts +0 -2
  115. package/build/types/utils/sortRowsFn.d.ts +0 -2
  116. package/src/utils/columnFilterRowsFn.ts +0 -56
  117. package/src/utils/expandRowsFn.ts +0 -34
  118. package/src/utils/globalFilterRowsFn.ts +0 -39
  119. package/src/utils/groupRowsFn.ts +0 -174
  120. package/src/utils/paginateRowsFn.ts +0 -28
  121. package/src/utils/sortRowsFn.ts +0 -99
  122. package/src/utils/sortRowsQuicksortFn.ts +0 -174
@@ -109,6 +109,32 @@
109
109
  }
110
110
  function noop() {//
111
111
  }
112
+ function getBatchGroups(arr, count) {
113
+ var groups = [{
114
+ start: 0,
115
+ end: count - 1,
116
+ items: []
117
+ }];
118
+ var groupIndex = 0;
119
+ var group = groups[groupIndex];
120
+
121
+ for (var i = 0; i < arr.length; i++) {
122
+ if (i > group.end) {
123
+ groupIndex++;
124
+ groups[groupIndex] = {
125
+ start: i,
126
+ end: i + count - 1,
127
+ items: []
128
+ };
129
+ }
130
+
131
+ group = groups[groupIndex];
132
+ var _item = arr[i];
133
+ group.items.push(_item);
134
+ }
135
+
136
+ return groups;
137
+ }
112
138
  function makeStateUpdater(key, instance) {
113
139
  return function (updater) {
114
140
  instance.setState(function (old) {
@@ -206,22 +232,133 @@
206
232
 
207
233
  return result;
208
234
  };
209
- } // export function hashString(str: string, seed = 0): string {
210
- // let h1 = 0xdeadbeef ^ seed,
211
- // h2 = 0x41c6ce57 ^ seed
212
- // for (let i = 0, ch; i < str.length; i++) {
213
- // ch = str.charCodeAt(i)
214
- // h1 = Math.imul(h1 ^ ch, 2654435761)
215
- // h2 = Math.imul(h2 ^ ch, 1597334677)
216
- // }
217
- // h1 =
218
- // Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^
219
- // Math.imul(h2 ^ (h2 >>> 13), 3266489909)
220
- // h2 =
221
- // Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^
222
- // Math.imul(h1 ^ (h1 >>> 13), 3266489909)
223
- // return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString()
224
- // }
235
+ }
236
+ function incrementalMemo(getDeps, getInitialValue, schedule, opts) {
237
+ var _opts$timeout;
238
+
239
+ var oldDeps;
240
+ var deps;
241
+ var result;
242
+ var nextResultRef;
243
+ var tasks = [];
244
+ var totalTaskCount = 0;
245
+ var resultStartTime;
246
+ var batchIndex = 0;
247
+ var progress = 0;
248
+ var working = false;
249
+ var callback;
250
+ var timeout = (_opts$timeout = opts.timeout) != null ? _opts$timeout : 100;
251
+
252
+ var onProgress = function onProgress(latestResult, previousResult) {
253
+ progress = 1 - tasks.length / totalTaskCount;
254
+ opts.onProgress(progress, latestResult, previousResult);
255
+ };
256
+
257
+ return function () {
258
+ var scheduleFn = function scheduleFn(workFn) {
259
+ totalTaskCount++;
260
+ tasks.push(workFn);
261
+ };
262
+
263
+ var newDeps = getDeps();
264
+ var first = false;
265
+
266
+ if (!deps) {
267
+ first = true;
268
+ deps = [];
269
+ result = getInitialValue.apply(void 0, newDeps);
270
+ }
271
+
272
+ var depsChanged = newDeps.length !== deps.length || newDeps.some(function (dep, index) {
273
+ return deps[index] !== dep;
274
+ });
275
+
276
+ if (depsChanged) {
277
+ cancelIdleCallback(callback);
278
+ oldDeps = deps;
279
+ deps = newDeps;
280
+ totalTaskCount = 0;
281
+ tasks = [];
282
+ nextResultRef = {
283
+ current: getInitialValue.apply(void 0, newDeps)
284
+ };
285
+ resultStartTime = Date.now();
286
+ schedule.apply(void 0, newDeps)(nextResultRef)(scheduleFn);
287
+ }
288
+
289
+ var commitResult = function commitResult() {
290
+ cancelIdleCallback(callback);
291
+
292
+ if (opts.key && opts.debug) {
293
+ if (opts != null && opts.debug()) {
294
+ var resultEndTime = Math.round((Date.now() - resultStartTime) * 100) / 100;
295
+ var resultFpsPercentage = resultEndTime / batchIndex / 16;
296
+ 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({
297
+ length: oldDeps.length + " -> " + deps.length
298
+ }, deps.map(function (_, index) {
299
+ if (oldDeps[index] !== deps[index]) {
300
+ return [index, oldDeps[index], deps[index]];
301
+ }
302
+
303
+ return false;
304
+ }).filter(Boolean).reduce(function (accu, _ref2) {
305
+ var _extends4;
306
+
307
+ var a = _ref2[0],
308
+ b = _ref2[1];
309
+ return _extends({}, accu, (_extends4 = {}, _extends4[a] = b, _extends4));
310
+ }, {}), {
311
+ parent: parent
312
+ }));
313
+ }
314
+ }
315
+
316
+ working = false;
317
+ var previousResult = result;
318
+ result = nextResultRef.current;
319
+ onProgress(result, previousResult);
320
+ opts.onChange(result, previousResult);
321
+ };
322
+
323
+ if (opts.initialSync && first) {
324
+ batchIndex = 1;
325
+ first = false;
326
+
327
+ for (var i = 0; i < tasks.length; i++) {
328
+ tasks[i]();
329
+ }
330
+
331
+ tasks = [];
332
+ commitResult();
333
+ } else if (!working && tasks.length) {
334
+ cancelIdleCallback(callback);
335
+ working = true;
336
+ batchIndex = 0;
337
+
338
+ var workLoop = function workLoop(deadline) {
339
+ while (tasks.length && deadline.timeRemaining() > 0) {
340
+ tasks.shift()();
341
+ }
342
+
343
+ if (!tasks.length) {
344
+ commitResult();
345
+ } else {
346
+ ++batchIndex;
347
+ onProgress(nextResultRef.current, result);
348
+ callback = requestIdleCallback(workLoop, {
349
+ timeout: timeout
350
+ });
351
+ }
352
+ };
353
+
354
+ callback = requestIdleCallback(workLoop, {
355
+ timeout: timeout
356
+ });
357
+ }
358
+
359
+ return result;
360
+ };
361
+ } // opts?.onChange?.(result, oldResult)
225
362
 
226
363
  //
227
364
  var defaultColumnSizing = {
@@ -552,6 +689,8 @@
552
689
  var registered = false;
553
690
  return {
554
691
  _notifyExpandedReset: function _notifyExpandedReset() {
692
+ instance._notifyPageIndexReset();
693
+
555
694
  if (!registered) {
556
695
  registered = true;
557
696
  return;
@@ -703,25 +842,19 @@
703
842
  });
704
843
  return maxDepth;
705
844
  },
706
- getExpandedRowModel: memo(function () {
707
- return [instance.getState().expanded, instance.getGroupedRowModel(), instance.options.expandRowsFn, instance.options.paginateExpandedRows];
708
- }, function (expanded, rowModel, expandRowsFn, paginateExpandedRows) {
709
- if (!expandRowsFn || // Do not expand if rows are not included in pagination
710
- !paginateExpandedRows || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {
711
- return rowModel;
845
+ getPreExpandedRowModel: function getPreExpandedRowModel() {
846
+ return instance.getGroupedRowModel();
847
+ },
848
+ getExpandedRowModel: function getExpandedRowModel() {
849
+ if (!instance._getExpandedRowModel && instance.options.getExpandedRowModel) {
850
+ instance._getExpandedRowModel = instance.options.getExpandedRowModel(instance);
712
851
  }
713
852
 
714
- return expandRowsFn(instance, rowModel);
715
- }, {
716
- key: 'getExpandedRowModel',
717
- debug: function debug() {
718
- var _instance$options$deb;
719
-
720
- return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
853
+ if (!instance._getExpandedRowModel) {
854
+ return instance.getPreExpandedRowModel();
721
855
  }
722
- }),
723
- getPreExpandedRowModel: function getPreExpandedRowModel() {
724
- return instance.getGroupedRowModel();
856
+
857
+ return instance._getExpandedRowModel();
725
858
  }
726
859
  };
727
860
  },
@@ -909,7 +1042,9 @@
909
1042
  getInitialState: function getInitialState() {
910
1043
  return {
911
1044
  columnFilters: [],
912
- globalFilter: undefined
1045
+ globalFilter: undefined,
1046
+ columnFiltersProgress: 1,
1047
+ globalFilterProgress: 1
913
1048
  };
914
1049
  },
915
1050
  getDefaultOptions: function getDefaultOptions(instance) {
@@ -1008,6 +1143,8 @@
1008
1143
  var registered = false;
1009
1144
  return {
1010
1145
  _notifyFiltersReset: function _notifyFiltersReset() {
1146
+ instance._notifySortingReset();
1147
+
1011
1148
  if (!registered) {
1012
1149
  registered = true;
1013
1150
  return;
@@ -1017,16 +1154,12 @@
1017
1154
  return;
1018
1155
  }
1019
1156
 
1020
- if (instance.options.autoResetAll === true) {
1021
- instance.resetSorting();
1022
- } else {
1023
- if (instance.options.autoResetColumnFilters) {
1024
- instance.resetColumnFilters();
1025
- }
1157
+ if (instance.options.autoResetAll === true || instance.options.autoResetColumnFilters) {
1158
+ instance.resetColumnFilters();
1159
+ }
1026
1160
 
1027
- if (instance.options.autoResetGlobalFilter) {
1028
- instance.resetGlobalFilter();
1029
- }
1161
+ if (instance.options.autoResetAll === true || instance.options.autoResetGlobalFilter) {
1162
+ instance.resetGlobalFilter();
1030
1163
  }
1031
1164
  },
1032
1165
  getColumnAutoFilterFn: function getColumnAutoFilterFn(columnId) {
@@ -1206,84 +1339,31 @@
1206
1339
  getPreColumnFilteredRowModel: function getPreColumnFilteredRowModel() {
1207
1340
  return instance.getCoreRowModel();
1208
1341
  },
1209
- getColumnFilteredRowModel: memo(function () {
1210
- return [instance.getState().columnFilters, instance.getCoreRowModel(), instance.options.columnFilterRowsFn];
1211
- }, function (columnFilters, rowModel, columnFiltersFn) {
1212
- var columnFilteredRowModel = function () {
1213
- if (!(columnFilters != null && columnFilters.length) || !columnFiltersFn) {
1214
- return rowModel;
1215
- }
1216
-
1217
- return columnFiltersFn(instance, rowModel);
1218
- }(); // Now that each filtered column has it's partially filtered rows,
1219
- // lets assign the final filtered rows to all of the other columns
1220
-
1221
-
1222
- var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
1223
- var _instance$getState$co5;
1224
-
1225
- return !((_instance$getState$co5 = instance.getState().columnFilters) != null && _instance$getState$co5.find(function (d) {
1226
- return d.id === column.id;
1227
- }));
1228
- }); // This essentially enables faceted filter options to be built easily
1229
- // using every column's preFilteredRows value
1230
-
1231
- nonFilteredColumns.forEach(function (column) {
1232
- column.getPreFilteredRows = function () {
1233
- return columnFilteredRowModel.rows;
1234
- };
1235
- });
1236
- return columnFilteredRowModel;
1237
- }, {
1238
- key: 'getColumnFilteredRowModel',
1239
- debug: function debug() {
1240
- var _instance$options$deb2;
1342
+ getColumnFilteredRowModel: function getColumnFilteredRowModel() {
1343
+ if (!instance._getColumnFilteredRowModel && instance.options.getColumnFilteredRowModel) {
1344
+ instance._getColumnFilteredRowModel = instance.options.getColumnFilteredRowModel(instance);
1345
+ }
1241
1346
 
1242
- return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugTable;
1347
+ if (!instance._getColumnFilteredRowModel) {
1348
+ return instance.getPreColumnFilteredRowModel();
1243
1349
  }
1244
- }),
1350
+
1351
+ return instance._getColumnFilteredRowModel();
1352
+ },
1245
1353
  getPreGlobalFilteredRowModel: function getPreGlobalFilteredRowModel() {
1246
1354
  return instance.getColumnFilteredRowModel();
1247
1355
  },
1248
- getGlobalFilteredRowModel: memo(function () {
1249
- return [instance.getState().globalFilter, instance.getColumnFilteredRowModel(), instance.options.globalFilterRowsFn];
1250
- }, function (globalFilterValue, columnFilteredRowModel, globalFiltersFn) {
1251
- var globalFilteredRowModel = function () {
1252
- if (!globalFiltersFn || !globalFilterValue) {
1253
- return columnFilteredRowModel;
1254
- }
1255
-
1256
- return globalFiltersFn(instance, columnFilteredRowModel);
1257
- }(); // Now that each filtered column has it's partially filtered rows,
1258
- // lets assign the final filtered rows to all of the other columns
1259
-
1260
-
1261
- var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
1262
- var _instance$getState$co6;
1263
-
1264
- return !((_instance$getState$co6 = instance.getState().columnFilters) != null && _instance$getState$co6.find(function (d) {
1265
- return d.id === column.id;
1266
- }));
1267
- }); // This essentially enables faceted filter options to be built easily
1268
- // using every column's preFilteredRows value
1269
-
1270
- nonFilteredColumns.forEach(function (column) {
1271
- column.getPreFilteredRows = function () {
1272
- return globalFilteredRowModel.rows;
1273
- };
1274
- });
1275
- return globalFilteredRowModel;
1276
- }, {
1277
- key: 'getGlobalFilteredRowModel',
1278
- debug: function debug() {
1279
- var _instance$options$deb3;
1356
+ getGlobalFilteredRowModel: function getGlobalFilteredRowModel() {
1357
+ if (!instance._getGlobalFilteredRowModel && instance.options.getGlobalFilteredRowModel) {
1358
+ instance._getGlobalFilteredRowModel = instance.options.getGlobalFilteredRowModel(instance);
1359
+ }
1280
1360
 
1281
- return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugTable;
1282
- },
1283
- onChange: function onChange() {
1284
- instance._notifySortingReset();
1361
+ if (!instance._getGlobalFilteredRowModel) {
1362
+ return instance.getPreGlobalFilteredRowModel();
1285
1363
  }
1286
- })
1364
+
1365
+ return instance._getGlobalFilteredRowModel();
1366
+ }
1287
1367
  };
1288
1368
  }
1289
1369
  };
@@ -1448,6 +1528,8 @@
1448
1528
  var registered = false;
1449
1529
  return {
1450
1530
  _notifyGroupingReset: function _notifyGroupingReset() {
1531
+ instance._notifyExpandedReset();
1532
+
1451
1533
  if (!registered) {
1452
1534
  registered = true;
1453
1535
  return;
@@ -1547,25 +1629,17 @@
1547
1629
  getPreGroupedRowModel: function getPreGroupedRowModel() {
1548
1630
  return instance.getSortedRowModel();
1549
1631
  },
1550
- getGroupedRowModel: memo(function () {
1551
- return [instance.getState().grouping, instance.getSortedRowModel(), instance.options.groupRowsFn];
1552
- }, function (grouping, rowModel, groupRowsFn) {
1553
- if (!groupRowsFn || !grouping.length) {
1554
- return rowModel;
1632
+ getGroupedRowModel: function getGroupedRowModel() {
1633
+ if (!instance._getGroupedRowModel && instance.options.getGroupedRowModel) {
1634
+ instance._getGroupedRowModel = instance.options.getGroupedRowModel(instance);
1555
1635
  }
1556
1636
 
1557
- return groupRowsFn(instance, rowModel);
1558
- }, {
1559
- key: 'getGroupedRowModel',
1560
- debug: function debug() {
1561
- var _instance$options$deb;
1562
-
1563
- return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
1564
- },
1565
- onChange: function onChange() {
1566
- return instance._notifyExpandedReset();
1637
+ if (!instance._getGroupedRowModel) {
1638
+ return instance.getPreGroupedRowModel();
1567
1639
  }
1568
- })
1640
+
1641
+ return instance._getGroupedRowModel();
1642
+ }
1569
1643
  };
1570
1644
  },
1571
1645
  createRow: function createRow(row, instance) {
@@ -1834,22 +1908,17 @@
1834
1908
  getPrePaginationRowModel: function getPrePaginationRowModel() {
1835
1909
  return instance.getExpandedRowModel();
1836
1910
  },
1837
- getPaginationRowModel: memo(function () {
1838
- return [instance.getState().pagination, instance.getExpandedRowModel(), instance.options.paginateRowsFn];
1839
- }, function (_pagination, rowModel, paginateRowsFn) {
1840
- if (!paginateRowsFn || !rowModel.rows.length) {
1841
- return rowModel;
1911
+ getPaginationRowModel: function getPaginationRowModel() {
1912
+ if (!instance._getPaginationRowModel && instance.options.getPaginationRowModel) {
1913
+ instance._getPaginationRowModel = instance.options.getPaginationRowModel(instance);
1842
1914
  }
1843
1915
 
1844
- return paginateRowsFn(instance, rowModel);
1845
- }, {
1846
- key: 'getPaginationRowModel',
1847
- debug: function debug() {
1848
- var _instance$options$deb2;
1849
-
1850
- return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugTable;
1916
+ if (!instance._getPaginationRowModel) {
1917
+ return instance.getPrePaginationRowModel();
1851
1918
  }
1852
- }),
1919
+
1920
+ return instance._getPaginationRowModel();
1921
+ },
1853
1922
  getPageCount: function getPageCount() {
1854
1923
  var pageCount = instance.getState().pagination.pageCount;
1855
1924
 
@@ -2167,7 +2236,9 @@
2167
2236
  return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
2168
2237
  },
2169
2238
  onChange: function onChange() {
2170
- return instance._notifyExpandedReset();
2239
+ instance.queue(function () {
2240
+ return instance._notifyExpandedReset();
2241
+ });
2171
2242
  }
2172
2243
  }),
2173
2244
  getFilteredSelectedRowModel: memo(function () {
@@ -2190,7 +2261,9 @@
2190
2261
  return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugTable;
2191
2262
  },
2192
2263
  onChange: function onChange() {
2193
- return instance._notifyExpandedReset();
2264
+ return instance.queue(function () {
2265
+ return instance._notifyExpandedReset();
2266
+ });
2194
2267
  }
2195
2268
  }),
2196
2269
  getGroupedSelectedRowModel: memo(function () {
@@ -2213,7 +2286,9 @@
2213
2286
  return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugTable;
2214
2287
  },
2215
2288
  onChange: function onChange() {
2216
- return instance._notifyExpandedReset();
2289
+ return instance.queue(function () {
2290
+ return instance._notifyExpandedReset();
2291
+ });
2217
2292
  }
2218
2293
  }),
2219
2294
  ///
@@ -2659,6 +2734,8 @@
2659
2734
  var registered = false;
2660
2735
  return {
2661
2736
  _notifySortingReset: function _notifySortingReset() {
2737
+ instance._notifyGroupingReset();
2738
+
2662
2739
  if (!registered) {
2663
2740
  registered = true;
2664
2741
  return;
@@ -2889,25 +2966,17 @@
2889
2966
  getPreSortedRowModel: function getPreSortedRowModel() {
2890
2967
  return instance.getGlobalFilteredRowModel();
2891
2968
  },
2892
- getSortedRowModel: memo(function () {
2893
- return [instance.getState().sorting, instance.getGlobalFilteredRowModel(), instance.options.sortRowsFn];
2894
- }, function (sorting, rowModel, sortingFn) {
2895
- if (!sortingFn || !(sorting != null && sorting.length)) {
2896
- return rowModel;
2969
+ getSortedRowModel: function getSortedRowModel() {
2970
+ if (!instance._getSortedRowModel && instance.options.getSortedRowModel) {
2971
+ instance._getSortedRowModel = instance.options.getSortedRowModel(instance);
2897
2972
  }
2898
2973
 
2899
- return sortingFn(instance, rowModel);
2900
- }, {
2901
- key: 'getSortedRowModel',
2902
- debug: function debug() {
2903
- var _instance$options$deb;
2904
-
2905
- return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
2906
- },
2907
- onChange: function onChange() {
2908
- instance._notifyGroupingReset();
2974
+ if (!instance._getSortedRowModel) {
2975
+ return instance.getPreSortedRowModel();
2909
2976
  }
2910
- })
2977
+
2978
+ return instance._getSortedRowModel();
2979
+ }
2911
2980
  };
2912
2981
  }
2913
2982
  };
@@ -3693,14 +3762,38 @@
3693
3762
  };
3694
3763
 
3695
3764
  instance.options = buildOptions(options);
3765
+ var coreInitialState = {
3766
+ coreProgress: 1
3767
+ };
3696
3768
 
3697
- var initialState = _extends({}, features.reduce(function (obj, feature) {
3769
+ var initialState = _extends({}, coreInitialState, features.reduce(function (obj, feature) {
3698
3770
  return Object.assign(obj, feature.getInitialState == null ? void 0 : feature.getInitialState());
3699
3771
  }, {}), (_options$initialState = options.initialState) != null ? _options$initialState : {});
3700
3772
 
3773
+ var queued = [];
3774
+ var queuedTimeout;
3775
+
3701
3776
  var finalInstance = _extends({}, instance, features.reduce(function (obj, feature) {
3702
3777
  return Object.assign(obj, feature.getInstance == null ? void 0 : feature.getInstance(instance));
3703
3778
  }, {}), {
3779
+ queue: function queue(cb) {
3780
+ queued.push(cb);
3781
+
3782
+ if (!queuedTimeout) {
3783
+ queuedTimeout = setTimeout(function () {
3784
+ instance.setState(function (old) {
3785
+ return _extends({}, old);
3786
+ });
3787
+ });
3788
+ }
3789
+ },
3790
+ willUpdate: function willUpdate() {
3791
+ clearTimeout(queuedTimeout);
3792
+
3793
+ while (queued.length) {
3794
+ queued.shift()();
3795
+ }
3796
+ },
3704
3797
  initialState: initialState,
3705
3798
  reset: function reset() {
3706
3799
  instance.setState(instance.initialState);
@@ -4006,85 +4099,13 @@
4006
4099
 
4007
4100
  return row;
4008
4101
  },
4009
- getCoreRowModel: memo(function () {
4010
- return [instance.options.data];
4011
- }, function (data) {
4012
- // Access the row model using initial columns
4013
- var rows = [];
4014
- var flatRows = [];
4015
- var rowsById = {};
4016
- var leafColumns = instance.getAllLeafColumns();
4017
-
4018
- var accessRow = function accessRow(originalRow, rowIndex, depth, parentRows, parent) {
4019
- if (depth === void 0) {
4020
- depth = 0;
4021
- }
4022
-
4023
- var id = instance.getRowId(originalRow, rowIndex, parent);
4024
-
4025
- if (!id) {
4026
- {
4027
- throw new Error("getRowId expected an ID, but got " + id);
4028
- }
4029
- }
4030
-
4031
- var values = {};
4032
-
4033
- for (var i = 0; i < leafColumns.length; i++) {
4034
- var _column = leafColumns[i];
4035
-
4036
- if (_column && _column.accessorFn) {
4037
- values[_column.id] = _column.accessorFn(originalRow, rowIndex);
4038
- }
4039
- } // Make the row
4040
-
4041
-
4042
- var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
4043
-
4044
- parentRows.push(row); // Keep track of every row in a flat array
4045
-
4046
- flatRows.push(row); // Also keep track of every row by its ID
4047
-
4048
- rowsById[id] = row; // Get the original subrows
4049
-
4050
- if (instance.options.getSubRows) {
4051
- var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
4052
-
4053
- if (originalSubRows != null && originalSubRows.length) {
4054
- row.originalSubRows = originalSubRows;
4055
- var subRows = [];
4056
-
4057
- for (var _i = 0; _i < row.originalSubRows.length; _i++) {
4058
- accessRow(row.originalSubRows[_i], _i, depth + 1, subRows, row);
4059
- }
4060
-
4061
- row.subRows = subRows;
4062
- }
4063
- }
4064
- };
4065
-
4066
- for (var i = 0; i < data.length; i++) {
4067
- accessRow(data[i], i, 0, rows);
4102
+ getCoreRowModel: function getCoreRowModel() {
4103
+ if (!instance._getCoreRowModel) {
4104
+ instance._getCoreRowModel = instance.options.getCoreRowModel(instance);
4068
4105
  }
4069
4106
 
4070
- return {
4071
- rows: rows,
4072
- flatRows: flatRows,
4073
- rowsById: rowsById
4074
- };
4075
- }, {
4076
- key: 'getRowModel',
4077
- debug: function debug() {
4078
- var _instance$options$deb10;
4079
-
4080
- return (_instance$options$deb10 = instance.options.debugAll) != null ? _instance$options$deb10 : instance.options.debugTable;
4081
- },
4082
- onChange: function onChange() {
4083
- instance._notifyFiltersReset();
4084
-
4085
- instance._notifyRowSelectionReset();
4086
- }
4087
- }),
4107
+ return instance._getCoreRowModel();
4108
+ },
4088
4109
  // The final calls start at the bottom of the model,
4089
4110
  // expanded rows, which then work their way up
4090
4111
  getRowModel: function getRowModel() {
@@ -4181,6 +4202,18 @@
4181
4202
  return (_instance$getRightHea = (_instance$getRightHea2 = instance.getRightHeaderGroups()[0]) == null ? void 0 : _instance$getRightHea2.headers.reduce(function (sum, header) {
4182
4203
  return sum + header.getWidth();
4183
4204
  }, 0)) != null ? _instance$getRightHea : 0;
4205
+ },
4206
+ getOverallProgress: function getOverallProgress() {
4207
+ var _instance$getState = instance.getState(),
4208
+ coreProgress = _instance$getState.coreProgress,
4209
+ columnFiltersProgress = _instance$getState.columnFiltersProgress,
4210
+ globalFilterProgress = _instance$getState.globalFilterProgress;
4211
+
4212
+ return mean(function () {
4213
+ return [coreProgress, columnFiltersProgress, globalFilterProgress].filter(function (d) {
4214
+ return d < 1;
4215
+ });
4216
+ });
4184
4217
  }
4185
4218
  });
4186
4219
 
@@ -4249,18 +4282,212 @@
4249
4282
  };
4250
4283
  }
4251
4284
 
4252
- function filterRowModelFromLeafs(rowsToFilter, filterRows, instance) {
4253
- var newFilteredFlatRows = [];
4254
- var newFilteredRowsById = {};
4285
+ function getCoreRowModelSync() {
4286
+ return function (instance) {
4287
+ return memo(function () {
4288
+ return [instance.options.data];
4289
+ }, function (data) {
4290
+ // Access the row model using initial columns
4291
+ var rows = [];
4292
+ var flatRows = [];
4293
+ var rowsById = {};
4294
+ var leafColumns = instance.getAllLeafColumns();
4255
4295
 
4256
- var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
4257
- if (depth === void 0) {
4258
- depth = 0;
4259
- }
4296
+ var accessRow = function accessRow(originalRow, rowIndex, depth, parentRows, parent) {
4297
+ if (depth === void 0) {
4298
+ depth = 0;
4299
+ }
4260
4300
 
4261
- rowsToFilter = rowsToFilter.slice(); // Filter from children up first
4301
+ var id = instance.getRowId(originalRow, rowIndex, parent);
4262
4302
 
4263
- for (var i = 0; i < rowsToFilter.length; i++) {
4303
+ if (!id) {
4304
+ {
4305
+ throw new Error("getRowId expected an ID, but got " + id);
4306
+ }
4307
+ }
4308
+
4309
+ var values = {};
4310
+
4311
+ for (var i = 0; i < leafColumns.length; i++) {
4312
+ var column = leafColumns[i];
4313
+
4314
+ if (column && column.accessorFn) {
4315
+ values[column.id] = column.accessorFn(originalRow, rowIndex);
4316
+ }
4317
+ } // Make the row
4318
+
4319
+
4320
+ var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
4321
+
4322
+ parentRows.push(row); // Keep track of every row in a flat array
4323
+
4324
+ flatRows.push(row); // Also keep track of every row by its ID
4325
+
4326
+ rowsById[id] = row; // Get the original subrows
4327
+
4328
+ if (instance.options.getSubRows) {
4329
+ var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
4330
+
4331
+ if (originalSubRows != null && originalSubRows.length) {
4332
+ row.originalSubRows = originalSubRows;
4333
+ var subRows = [];
4334
+
4335
+ for (var _i = 0; _i < row.originalSubRows.length; _i++) {
4336
+ accessRow(row.originalSubRows[_i], _i, depth + 1, subRows, row);
4337
+ }
4338
+
4339
+ row.subRows = subRows;
4340
+ }
4341
+ }
4342
+ };
4343
+
4344
+ for (var i = 0; i < data.length; i++) {
4345
+ accessRow(data[i], i, 0, rows);
4346
+ }
4347
+
4348
+ return {
4349
+ rows: rows,
4350
+ flatRows: flatRows,
4351
+ rowsById: rowsById
4352
+ };
4353
+ }, {
4354
+ key: 'getRowModel',
4355
+ debug: function debug() {
4356
+ var _instance$options$deb;
4357
+
4358
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
4359
+ },
4360
+ onChange: function onChange() {
4361
+ instance.queue(function () {
4362
+ instance._notifyFiltersReset();
4363
+
4364
+ instance._notifyRowSelectionReset();
4365
+ });
4366
+ }
4367
+ });
4368
+ };
4369
+ }
4370
+
4371
+ function getCoreRowModelAsync(opts) {
4372
+ return function (instance) {
4373
+ return incrementalMemo(function () {
4374
+ return [instance.options.data, instance.getAllLeafColumns()];
4375
+ }, function () {
4376
+ var rows = [];
4377
+ var flatRows = [];
4378
+ var rowsById = {};
4379
+ return {
4380
+ rows: rows,
4381
+ flatRows: flatRows,
4382
+ rowsById: rowsById
4383
+ };
4384
+ }, function (data, leafColumns) {
4385
+ return function (rowModelRef) {
4386
+ return function (scheduleTask) {
4387
+ var accessRows = function accessRows(originalRows, depth, parent) {
4388
+ if (depth === void 0) {
4389
+ depth = 0;
4390
+ }
4391
+
4392
+ var batchGroups = getBatchGroups(originalRows, 2000);
4393
+
4394
+ var _loop = function _loop(i) {
4395
+ var batchGroup = batchGroups[i];
4396
+ scheduleTask(function () {
4397
+ for (var _i = 0; _i < batchGroup.items.length; _i++) {
4398
+ var originalRow = batchGroup.items[_i];
4399
+ var rowIndex = batchGroup.start + _i;
4400
+ var id = instance.getRowId(originalRow, rowIndex, parent);
4401
+
4402
+ if (!id) {
4403
+ {
4404
+ throw new Error("getRowId expected an ID, but got " + id);
4405
+ }
4406
+ }
4407
+
4408
+ var values = {};
4409
+
4410
+ for (var _i2 = 0; _i2 < leafColumns.length; _i2++) {
4411
+ var column = leafColumns[_i2];
4412
+
4413
+ if (column && column.accessorFn) {
4414
+ values[column.id] = column.accessorFn(originalRow, rowIndex);
4415
+ }
4416
+ } // Make the row
4417
+
4418
+
4419
+ var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
4420
+
4421
+ if (parent) {
4422
+ parent.subRows.push(row);
4423
+ } else {
4424
+ rowModelRef.current.rows.push(row);
4425
+ } // Keep track of every row in a flat array
4426
+
4427
+
4428
+ rowModelRef.current.flatRows.push(row); // Also keep track of every row by its ID
4429
+
4430
+ rowModelRef.current.rowsById[id] = row; // Get the original subrows
4431
+
4432
+ if (instance.options.getSubRows) {
4433
+ var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
4434
+
4435
+ if (originalSubRows != null && originalSubRows.length) {
4436
+ row.originalSubRows = originalSubRows;
4437
+ row.subRows = [];
4438
+ accessRows(row.originalSubRows, depth + 1, row);
4439
+ }
4440
+ }
4441
+ }
4442
+ });
4443
+ };
4444
+
4445
+ for (var i = 0; i < batchGroups.length; i++) {
4446
+ _loop(i);
4447
+ }
4448
+ };
4449
+
4450
+ accessRows(data);
4451
+ };
4452
+ };
4453
+ }, {
4454
+ key: 'getRowModel',
4455
+ initialSync: opts == null ? void 0 : opts.initialSync,
4456
+ onProgress: function onProgress(progress) {
4457
+ instance.setState(function (old) {
4458
+ return _extends({}, old, {
4459
+ coreProgress: progress
4460
+ });
4461
+ });
4462
+ },
4463
+ debug: function debug() {
4464
+ var _instance$options$deb;
4465
+
4466
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
4467
+ },
4468
+ onChange: function onChange() {
4469
+ instance.queue(function () {
4470
+ instance._notifyFiltersReset();
4471
+
4472
+ instance._notifyRowSelectionReset();
4473
+ });
4474
+ }
4475
+ });
4476
+ };
4477
+ }
4478
+
4479
+ function filterRowModelFromLeafs(rowsToFilter, filterRows, instance) {
4480
+ var newFilteredFlatRows = [];
4481
+ var newFilteredRowsById = {};
4482
+
4483
+ var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
4484
+ if (depth === void 0) {
4485
+ depth = 0;
4486
+ }
4487
+
4488
+ rowsToFilter = rowsToFilter.slice(); // Filter from children up first
4489
+
4490
+ for (var i = 0; i < rowsToFilter.length; i++) {
4264
4491
  var _row$subRows;
4265
4492
 
4266
4493
  var row = rowsToFilter[i];
@@ -4332,259 +4559,386 @@
4332
4559
  };
4333
4560
  }
4334
4561
 
4335
- function columnFilterRowsFn(instance, rowModel) {
4336
- var columnFilters = instance.getState().columnFilters;
4337
- var filterFromLeafRows = instance.options.filterFromLeafRows;
4562
+ function getColumnFilteredRowModelSync() {
4563
+ return function (instance) {
4564
+ return memo(function () {
4565
+ return [instance.getState().columnFilters, instance.getCoreRowModel()];
4566
+ }, function (columnFilters, rowModel) {
4567
+ var columnFilteredRowModel = function () {
4568
+ if (!rowModel.rows.length || !columnFilters) {
4569
+ return rowModel;
4570
+ }
4338
4571
 
4339
- var filterRows = function filterRows(rowsToFilter, depth) {
4340
- for (var i = 0; i < columnFilters.length; i++) {
4341
- var _columnFilters$i = columnFilters[i],
4342
- columnId = _columnFilters$i.id,
4343
- filterValue = _columnFilters$i.value; // Find the columnFilters column
4572
+ var filterFromLeafRows = instance.options.filterFromLeafRows;
4344
4573
 
4345
- var column = instance.getColumn(columnId);
4574
+ var filterRows = function filterRows(rowsToFilter, depth) {
4575
+ for (var i = 0; i < columnFilters.length; i++) {
4576
+ var _columnFilters$i = columnFilters[i],
4577
+ columnId = _columnFilters$i.id,
4578
+ filterValue = _columnFilters$i.value; // Find the columnFilters column
4346
4579
 
4347
- if (!column) {
4348
- {
4349
- console.warn("Table: Could not find a column with id: " + columnId);
4350
- }
4351
-
4352
- throw new Error();
4353
- }
4580
+ var column = instance.getColumn(columnId);
4354
4581
 
4355
- if (depth === 0) {
4356
- (function () {
4357
- var preFilteredRows = [].concat(rowsToFilter);
4582
+ if (!column) {
4583
+ {
4584
+ console.warn("Table: Could not find a column with id: " + columnId);
4585
+ }
4358
4586
 
4359
- column.getPreFilteredRows = function () {
4360
- return preFilteredRows;
4361
- };
4362
- })();
4363
- }
4587
+ throw new Error();
4588
+ }
4364
4589
 
4365
- var filterFn = instance.getColumnFilterFn(column.id);
4590
+ if (depth === 0) {
4591
+ (function () {
4592
+ var preFilteredRows = [].concat(rowsToFilter);
4366
4593
 
4367
- if (!filterFn) {
4368
- {
4369
- console.warn("Could not find a valid 'column.filterType' for column with the ID: " + column.id + ".");
4370
- }
4594
+ column.getPreFilteredRows = function () {
4595
+ return preFilteredRows;
4596
+ };
4597
+ })();
4598
+ }
4371
4599
 
4372
- continue;
4373
- } // Pass the rows, id, filterValue and column to the filterFn
4374
- // to get the filtered rows back
4600
+ var filterFn = instance.getColumnFilterFn(column.id);
4375
4601
 
4602
+ if (!filterFn) {
4603
+ {
4604
+ console.warn("Could not find a valid 'column.filterType' for column with the ID: " + column.id + ".");
4605
+ }
4376
4606
 
4377
- rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue);
4378
- }
4607
+ continue;
4608
+ } // Pass the rows, id, filterValue and column to the filterFn
4609
+ // to get the filtered rows back
4379
4610
 
4380
- return rowsToFilter;
4381
- };
4382
4611
 
4383
- if (filterFromLeafRows) {
4384
- return filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
4385
- }
4612
+ rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue);
4613
+ }
4386
4614
 
4387
- return filterRowModelFromRoot(rowModel.rows, filterRows, instance);
4388
- }
4615
+ return rowsToFilter;
4616
+ };
4389
4617
 
4390
- function globalFilterRowsFn(instance, rowModel) {
4391
- var globalFilter = instance.getState().globalFilter;
4392
- var filterFromLeafRows = instance.options.filterFromLeafRows;
4393
- var filterFn = instance.getGlobalFilterFn();
4618
+ if (filterFromLeafRows) {
4619
+ return filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
4620
+ }
4394
4621
 
4395
- if (!filterFn) {
4396
- {
4397
- console.warn("Could not find a valid 'globalFilterType'");
4398
- }
4622
+ return filterRowModelFromRoot(rowModel.rows, filterRows, instance);
4623
+ }(); // Now that each filtered column has it's partially filtered rows,
4624
+ // lets assign the final filtered rows to all of the other columns
4399
4625
 
4400
- return rowModel;
4401
- }
4402
4626
 
4403
- var filterableColumns = instance.getAllLeafColumns().filter(function (column) {
4404
- return column.getCanGlobalFilter();
4405
- });
4406
- var filterableColumnIds = filterableColumns.map(function (d) {
4407
- return d.id;
4408
- });
4627
+ var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
4628
+ var _instance$getState$co;
4409
4629
 
4410
- var filterRows = function filterRows(rows) {
4411
- return filterFn(rows, filterableColumnIds, globalFilter);
4412
- };
4630
+ return !((_instance$getState$co = instance.getState().columnFilters) != null && _instance$getState$co.find(function (d) {
4631
+ return d.id === column.id;
4632
+ }));
4633
+ }); // This essentially enables faceted filter options to be built easily
4634
+ // using every column's preFilteredRows value
4413
4635
 
4414
- if (filterFromLeafRows) {
4415
- filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
4416
- }
4636
+ nonFilteredColumns.forEach(function (column) {
4637
+ column.getPreFilteredRows = function () {
4638
+ return columnFilteredRowModel.rows;
4639
+ };
4640
+ });
4641
+ return columnFilteredRowModel;
4642
+ }, {
4643
+ key: 'getColumnFilteredRowModelSync',
4644
+ debug: function debug() {
4645
+ var _instance$options$deb;
4417
4646
 
4418
- return filterRowModelFromRoot(rowModel.rows, filterRows, instance);
4647
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
4648
+ },
4649
+ onChange: function onChange() {
4650
+ instance.queue(function () {
4651
+ instance._notifySortingReset();
4652
+ });
4653
+ }
4654
+ });
4655
+ };
4419
4656
  }
4420
4657
 
4421
- function sortRowsFn(instance, rowModel) {
4422
- var sortingState = instance.getState().sorting;
4423
- var sortedFlatRows = []; // Filter out sortings that correspond to non existing columns
4658
+ function getGlobalFilteredRowModelSync() {
4659
+ return function (instance) {
4660
+ return memo(function () {
4661
+ return [instance.getState().globalFilter, instance.getCoreRowModel()];
4662
+ }, function (globalFilter, rowModel) {
4663
+ var globalFilteredRowModel = function () {
4664
+ if (!rowModel.rows.length || !globalFilter) {
4665
+ return rowModel;
4666
+ }
4424
4667
 
4425
- var availableSorting = sortingState.filter(function (sort) {
4426
- return instance.getColumnCanSort(sort.id);
4427
- });
4428
- var columnInfoById = {};
4429
- availableSorting.forEach(function (sortEntry) {
4430
- var column = instance.getColumn(sortEntry.id);
4431
- columnInfoById[sortEntry.id] = {
4432
- sortUndefined: column.sortUndefined,
4433
- invertSorting: column.invertSorting,
4434
- sortingFn: instance.getColumnSortingFn(sortEntry.id)
4435
- };
4436
- });
4668
+ var filterFromLeafRows = instance.options.filterFromLeafRows;
4669
+ var filterFn = instance.getGlobalFilterFn();
4437
4670
 
4438
- var sortData = function sortData(rows) {
4439
- // This will also perform a stable sorting using the row index
4440
- // if needed.
4441
- var sortedData = rows.slice();
4442
- sortedData.sort(function (rowA, rowB) {
4443
- for (var i = 0; i < availableSorting.length; i += 1) {
4444
- var _sortEntry$desc;
4445
-
4446
- var sortEntry = availableSorting[i];
4447
- var columnInfo = columnInfoById[sortEntry.id];
4448
- var isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;
4449
-
4450
- if (columnInfo.sortUndefined) {
4451
- var aValue = rowA.values[sortEntry.id];
4452
- var bValue = rowB.values[sortEntry.id];
4453
- var aUndefined = typeof aValue === 'undefined';
4454
- var bUndefined = typeof bValue === 'undefined';
4455
-
4456
- if (aUndefined || bUndefined) {
4457
- return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;
4671
+ if (!filterFn) {
4672
+ {
4673
+ console.warn("Could not find a valid 'globalFilterType'");
4458
4674
  }
4459
- } // This function should always return in ascending order
4460
4675
 
4676
+ return rowModel;
4677
+ }
4461
4678
 
4462
- var sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);
4463
-
4464
- if (sortInt !== 0) {
4465
- if (isDesc) {
4466
- sortInt *= -1;
4467
- }
4679
+ var filterableColumns = instance.getAllLeafColumns().filter(function (column) {
4680
+ return column.getCanGlobalFilter();
4681
+ });
4682
+ var filterableColumnIds = filterableColumns.map(function (d) {
4683
+ return d.id;
4684
+ });
4468
4685
 
4469
- if (columnInfo.invertSorting) {
4470
- sortInt *= -1;
4471
- }
4686
+ var filterRows = function filterRows(rows) {
4687
+ return filterFn(rows, filterableColumnIds, globalFilter);
4688
+ };
4472
4689
 
4473
- return sortInt;
4690
+ if (filterFromLeafRows) {
4691
+ return filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
4474
4692
  }
4475
- }
4476
4693
 
4477
- return rowA.index - rowB.index;
4478
- }); // If there are sub-rows, sort them
4694
+ return filterRowModelFromRoot(rowModel.rows, filterRows, instance);
4695
+ }(); // Now that each filtered column has it's partially filtered rows,
4696
+ // lets assign the final filtered rows to all of the other columns
4479
4697
 
4480
- sortedData.forEach(function (row) {
4481
- sortedFlatRows.push(row);
4482
4698
 
4483
- if (!row.subRows || row.subRows.length <= 1) {
4484
- return;
4485
- }
4699
+ var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
4700
+ var _instance$getState$co;
4486
4701
 
4487
- row.subRows = sortData(row.subRows);
4488
- });
4489
- return sortedData;
4490
- };
4702
+ return !((_instance$getState$co = instance.getState().columnFilters) != null && _instance$getState$co.find(function (d) {
4703
+ return d.id === column.id;
4704
+ }));
4705
+ }); // This essentially enables faceted filter options to be built easily
4706
+ // using every column's preFilteredRows value
4491
4707
 
4492
- return {
4493
- rows: sortData(rowModel.rows),
4494
- flatRows: sortedFlatRows,
4495
- rowsById: rowModel.rowsById
4708
+ nonFilteredColumns.forEach(function (column) {
4709
+ column.getPreFilteredRows = function () {
4710
+ return globalFilteredRowModel.rows;
4711
+ };
4712
+ });
4713
+ return globalFilteredRowModel;
4714
+ }, {
4715
+ key: 'getGlobalFilteredRowModelSync',
4716
+ debug: function debug() {
4717
+ var _instance$options$deb;
4718
+
4719
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
4720
+ },
4721
+ onChange: function onChange() {
4722
+ instance.queue(function () {
4723
+ instance._notifySortingReset();
4724
+ });
4725
+ }
4726
+ });
4496
4727
  };
4497
4728
  }
4498
4729
 
4499
- function groupRowsFn(instance, sortedRowModel) {
4500
- var groupingState = instance.getState().grouping; // Filter the grouping list down to columns that exist
4730
+ function getSortedRowModelSync() {
4731
+ return function (instance) {
4732
+ return memo(function () {
4733
+ return [instance.getState().sorting, instance.getGlobalFilteredRowModel()];
4734
+ }, function (sorting, rowModel) {
4735
+ if (!rowModel.rows.length || !(sorting != null && sorting.length)) {
4736
+ return rowModel;
4737
+ }
4501
4738
 
4502
- var existingGrouping = groupingState.filter(function (columnId) {
4503
- return instance.getColumn(columnId);
4504
- }); // Find the columns that can or are aggregating
4505
- // Uses each column to aggregate rows into a single value
4739
+ var sortingState = instance.getState().sorting;
4740
+ var sortedFlatRows = []; // Filter out sortings that correspond to non existing columns
4506
4741
 
4507
- var aggregateRowsToValues = function aggregateRowsToValues(leafRows, groupedRows, depth) {
4508
- var values = {};
4509
- instance.getAllLeafColumns().forEach(function (column) {
4510
- // Don't aggregate columns that are in the grouping
4511
- if (existingGrouping.includes(column.id)) {
4512
- values[column.id] = groupedRows[0] ? groupedRows[0].values[column.id] : null;
4513
- return;
4514
- } // Aggregate the values
4742
+ var availableSorting = sortingState.filter(function (sort) {
4743
+ return instance.getColumnCanSort(sort.id);
4744
+ });
4745
+ var columnInfoById = {};
4746
+ availableSorting.forEach(function (sortEntry) {
4747
+ var column = instance.getColumn(sortEntry.id);
4748
+ columnInfoById[sortEntry.id] = {
4749
+ sortUndefined: column.sortUndefined,
4750
+ invertSorting: column.invertSorting,
4751
+ sortingFn: instance.getColumnSortingFn(sortEntry.id)
4752
+ };
4753
+ });
4515
4754
 
4755
+ var sortData = function sortData(rows) {
4756
+ // This will also perform a stable sorting using the row index
4757
+ // if needed.
4758
+ var sortedData = rows.slice();
4759
+ sortedData.sort(function (rowA, rowB) {
4760
+ for (var i = 0; i < availableSorting.length; i += 1) {
4761
+ var _sortEntry$desc;
4762
+
4763
+ var sortEntry = availableSorting[i];
4764
+ var columnInfo = columnInfoById[sortEntry.id];
4765
+ var isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;
4766
+
4767
+ if (columnInfo.sortUndefined) {
4768
+ var aValue = rowA.values[sortEntry.id];
4769
+ var bValue = rowB.values[sortEntry.id];
4770
+ var aUndefined = typeof aValue === 'undefined';
4771
+ var bUndefined = typeof bValue === 'undefined';
4772
+
4773
+ if (aUndefined || bUndefined) {
4774
+ return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;
4775
+ }
4776
+ } // This function should always return in ascending order
4516
4777
 
4517
- var aggregateFn = instance.getColumnAggregationFn(column.id);
4518
4778
 
4519
- if (aggregateFn) {
4520
- values[column.id] = aggregateFn(function () {
4521
- return leafRows.map(function (row) {
4522
- var columnValue = row.values[column.id];
4779
+ var sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);
4780
+
4781
+ if (sortInt !== 0) {
4782
+ if (isDesc) {
4783
+ sortInt *= -1;
4784
+ }
4523
4785
 
4524
- if (!depth && column.aggregateValue) {
4525
- columnValue = column.aggregateValue(columnValue);
4786
+ if (columnInfo.invertSorting) {
4787
+ sortInt *= -1;
4788
+ }
4789
+
4790
+ return sortInt;
4526
4791
  }
4792
+ }
4527
4793
 
4528
- return columnValue;
4529
- });
4530
- }, function () {
4531
- return groupedRows.map(function (row) {
4532
- return row.values[column.id];
4533
- });
4794
+ return rowA.index - rowB.index;
4795
+ }); // If there are sub-rows, sort them
4796
+
4797
+ sortedData.forEach(function (row) {
4798
+ sortedFlatRows.push(row);
4799
+
4800
+ if (!row.subRows || row.subRows.length <= 1) {
4801
+ return;
4802
+ }
4803
+
4804
+ row.subRows = sortData(row.subRows);
4534
4805
  });
4535
- } else if (column.aggregationType) {
4536
- console.info({
4537
- column: column
4806
+ return sortedData;
4807
+ };
4808
+
4809
+ return {
4810
+ rows: sortData(rowModel.rows),
4811
+ flatRows: sortedFlatRows,
4812
+ rowsById: rowModel.rowsById
4813
+ };
4814
+ }, {
4815
+ key: 'getSortedRowModel',
4816
+ debug: function debug() {
4817
+ var _instance$options$deb;
4818
+
4819
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
4820
+ },
4821
+ onChange: function onChange() {
4822
+ instance.queue(function () {
4823
+ instance._notifyGroupingReset();
4538
4824
  });
4539
- throw new Error("Table: Invalid column.aggregateType option for column listed above" );
4540
- } else {
4541
- values[column.id] = null;
4542
4825
  }
4543
4826
  });
4544
- return values;
4545
4827
  };
4828
+ }
4546
4829
 
4547
- var groupedFlatRows = [];
4548
- var groupedRowsById = {}; // const onlyGroupedFlatRows: Row[] = [];
4549
- // const onlyGroupedRowsById: Record<RowId, Row> = {};
4550
- // const nonGroupedFlatRows: Row[] = [];
4551
- // const nonGroupedRowsById: Record<RowId, Row> = {};
4552
- // Recursively group the data
4830
+ function getGroupedRowModelSync() {
4831
+ return function (instance) {
4832
+ return memo(function () {
4833
+ return [instance.getState().grouping, instance.getSortedRowModel()];
4834
+ }, function (grouping, rowModel) {
4835
+ if (!rowModel.rows.length || !grouping.length) {
4836
+ return rowModel;
4837
+ } // Filter the grouping list down to columns that exist
4553
4838
 
4554
- var groupUpRecursively = function groupUpRecursively(rows, depth, parentId) {
4555
- if (depth === void 0) {
4556
- depth = 0;
4557
- }
4558
4839
 
4559
- // This is the last level, just return the rows
4560
- if (depth === existingGrouping.length) {
4561
- return rows;
4562
- }
4840
+ var existingGrouping = grouping.filter(function (columnId) {
4841
+ return instance.getColumn(columnId);
4842
+ }); // Find the columns that can or are aggregating
4843
+ // Uses each column to aggregate rows into a single value
4844
+
4845
+ var aggregateRowsToValues = function aggregateRowsToValues(leafRows, groupedRows, depth) {
4846
+ var values = {};
4847
+ instance.getAllLeafColumns().forEach(function (column) {
4848
+ // Don't aggregate columns that are in the grouping
4849
+ if (existingGrouping.includes(column.id)) {
4850
+ values[column.id] = groupedRows[0] ? groupedRows[0].values[column.id] : null;
4851
+ return;
4852
+ } // Aggregate the values
4563
4853
 
4564
- var columnId = existingGrouping[depth]; // Group the rows together for this level
4565
4854
 
4566
- var rowGroupsMap = groupBy(rows, columnId); // Peform aggregations for each group
4855
+ var aggregateFn = instance.getColumnAggregationFn(column.id);
4567
4856
 
4568
- var aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(function (_ref, index) {
4569
- var groupingValue = _ref[0],
4570
- groupedRows = _ref[1];
4571
- var id = columnId + ":" + groupingValue;
4572
- id = parentId ? parentId + ">" + id : id; // First, Recurse to group sub rows before aggregation
4857
+ if (aggregateFn) {
4858
+ values[column.id] = aggregateFn(function () {
4859
+ return leafRows.map(function (row) {
4860
+ var columnValue = row.values[column.id];
4573
4861
 
4574
- var subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group
4862
+ if (!depth && column.aggregateValue) {
4863
+ columnValue = column.aggregateValue(columnValue);
4864
+ }
4575
4865
 
4576
- var leafRows = depth ? flattenBy(groupedRows, function (row) {
4577
- return row.subRows;
4578
- }) : groupedRows;
4579
- var values = aggregateRowsToValues(leafRows, groupedRows, depth);
4580
- var row = instance.createRow(id, undefined, index, depth, values);
4581
- Object.assign(row, {
4582
- groupingColumnId: columnId,
4583
- groupingValue: groupingValue,
4584
- subRows: subRows,
4585
- leafRows: leafRows
4586
- });
4587
- subRows.forEach(function (subRow) {
4866
+ return columnValue;
4867
+ });
4868
+ }, function () {
4869
+ return groupedRows.map(function (row) {
4870
+ return row.values[column.id];
4871
+ });
4872
+ });
4873
+ } else if (column.aggregationType) {
4874
+ console.info({
4875
+ column: column
4876
+ });
4877
+ throw new Error("Table: Invalid column.aggregateType option for column listed above" );
4878
+ } else {
4879
+ values[column.id] = null;
4880
+ }
4881
+ });
4882
+ return values;
4883
+ };
4884
+
4885
+ var groupedFlatRows = [];
4886
+ var groupedRowsById = {}; // const onlyGroupedFlatRows: Row[] = [];
4887
+ // const onlyGroupedRowsById: Record<RowId, Row> = {};
4888
+ // const nonGroupedFlatRows: Row[] = [];
4889
+ // const nonGroupedRowsById: Record<RowId, Row> = {};
4890
+ // Recursively group the data
4891
+
4892
+ var groupUpRecursively = function groupUpRecursively(rows, depth, parentId) {
4893
+ if (depth === void 0) {
4894
+ depth = 0;
4895
+ }
4896
+
4897
+ // This is the last level, just return the rows
4898
+ if (depth === existingGrouping.length) {
4899
+ return rows;
4900
+ }
4901
+
4902
+ var columnId = existingGrouping[depth]; // Group the rows together for this level
4903
+
4904
+ var rowGroupsMap = groupBy(rows, columnId); // Peform aggregations for each group
4905
+
4906
+ var aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(function (_ref, index) {
4907
+ var groupingValue = _ref[0],
4908
+ groupedRows = _ref[1];
4909
+ var id = columnId + ":" + groupingValue;
4910
+ id = parentId ? parentId + ">" + id : id; // First, Recurse to group sub rows before aggregation
4911
+
4912
+ var subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group
4913
+
4914
+ var leafRows = depth ? flattenBy(groupedRows, function (row) {
4915
+ return row.subRows;
4916
+ }) : groupedRows;
4917
+ var values = aggregateRowsToValues(leafRows, groupedRows, depth);
4918
+ var row = instance.createRow(id, undefined, index, depth, values);
4919
+ Object.assign(row, {
4920
+ groupingColumnId: columnId,
4921
+ groupingValue: groupingValue,
4922
+ subRows: subRows,
4923
+ leafRows: leafRows
4924
+ });
4925
+ subRows.forEach(function (subRow) {
4926
+ groupedFlatRows.push(subRow);
4927
+ groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {
4928
+ // onlyGroupedFlatRows.push(subRow);
4929
+ // onlyGroupedRowsById[subRow.id] = subRow;
4930
+ // } else {
4931
+ // nonGroupedFlatRows.push(subRow);
4932
+ // nonGroupedRowsById[subRow.id] = subRow;
4933
+ // }
4934
+ });
4935
+ return row;
4936
+ });
4937
+ return aggregatedGroupedRows;
4938
+ };
4939
+
4940
+ var groupedRows = groupUpRecursively(rowModel.rows, 0, '');
4941
+ groupedRows.forEach(function (subRow) {
4588
4942
  groupedFlatRows.push(subRow);
4589
4943
  groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {
4590
4944
  // onlyGroupedFlatRows.push(subRow);
@@ -4594,26 +4948,24 @@
4594
4948
  // nonGroupedRowsById[subRow.id] = subRow;
4595
4949
  // }
4596
4950
  });
4597
- return row;
4598
- });
4599
- return aggregatedGroupedRows;
4600
- };
4951
+ return {
4952
+ rows: groupedRows,
4953
+ flatRows: groupedFlatRows,
4954
+ rowsById: groupedRowsById
4955
+ };
4956
+ }, {
4957
+ key: 'getGroupedRowModel',
4958
+ debug: function debug() {
4959
+ var _instance$options$deb;
4601
4960
 
4602
- var groupedRows = groupUpRecursively(sortedRowModel.rows, 0, '');
4603
- groupedRows.forEach(function (subRow) {
4604
- groupedFlatRows.push(subRow);
4605
- groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {
4606
- // onlyGroupedFlatRows.push(subRow);
4607
- // onlyGroupedRowsById[subRow.id] = subRow;
4608
- // } else {
4609
- // nonGroupedFlatRows.push(subRow);
4610
- // nonGroupedRowsById[subRow.id] = subRow;
4611
- // }
4612
- });
4613
- return {
4614
- rows: groupedRows,
4615
- flatRows: groupedFlatRows,
4616
- rowsById: groupedRowsById
4961
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
4962
+ },
4963
+ onChange: function onChange() {
4964
+ instance.queue(function () {
4965
+ instance._notifyExpandedReset();
4966
+ });
4967
+ }
4968
+ });
4617
4969
  };
4618
4970
  }
4619
4971
 
@@ -4633,7 +4985,28 @@
4633
4985
  }, groupMap);
4634
4986
  }
4635
4987
 
4636
- function expandRowsFn(instance, sortedRowModel) {
4988
+ function getExpandedRowModel() {
4989
+ return function (instance) {
4990
+ return memo(function () {
4991
+ return [instance.getState().expanded, instance.getGroupedRowModel(), instance.options.paginateExpandedRows];
4992
+ }, function (expanded, rowModel, paginateExpandedRows) {
4993
+ if (!rowModel.rows.length || // Do not expand if rows are not included in pagination
4994
+ !paginateExpandedRows || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {
4995
+ return rowModel;
4996
+ }
4997
+
4998
+ return expandRows(rowModel, instance);
4999
+ }, {
5000
+ key: 'getExpandedRowModel',
5001
+ debug: function debug() {
5002
+ var _instance$options$deb;
5003
+
5004
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
5005
+ }
5006
+ });
5007
+ };
5008
+ }
5009
+ function expandRows(rowModel, instance) {
4637
5010
  var expandedRows = [];
4638
5011
 
4639
5012
  var handleRow = function handleRow(row) {
@@ -4646,37 +5019,53 @@
4646
5019
  }
4647
5020
  };
4648
5021
 
4649
- sortedRowModel.rows.forEach(handleRow);
5022
+ rowModel.rows.forEach(handleRow);
4650
5023
  return {
4651
5024
  rows: expandedRows,
4652
- flatRows: sortedRowModel.flatRows,
4653
- rowsById: sortedRowModel.rowsById
5025
+ flatRows: rowModel.flatRows,
5026
+ rowsById: rowModel.rowsById
4654
5027
  };
4655
5028
  }
4656
5029
 
4657
- function paginateRowsFn(instance, rowModel) {
4658
- var _instance$getState$pa = instance.getState().pagination,
4659
- pageSize = _instance$getState$pa.pageSize,
4660
- pageIndex = _instance$getState$pa.pageIndex;
4661
- var rows = rowModel.rows,
4662
- flatRows = rowModel.flatRows,
4663
- rowsById = rowModel.rowsById;
4664
- var pageStart = pageSize * pageIndex;
4665
- var pageEnd = pageStart + pageSize;
4666
- rows = rows.slice(pageStart, pageEnd);
4667
-
4668
- if (!instance.options.paginateExpandedRows) {
4669
- return expandRowsFn(instance, {
4670
- rows: rows,
4671
- flatRows: flatRows,
4672
- rowsById: rowsById
4673
- });
4674
- }
5030
+ function getPaginationRowModel(opts) {
5031
+ return function (instance) {
5032
+ return memo(function () {
5033
+ return [instance.getState().pagination, instance.getExpandedRowModel()];
5034
+ }, function (pagination, rowModel) {
5035
+ if (!rowModel.rows.length) {
5036
+ return rowModel;
5037
+ }
4675
5038
 
4676
- return {
4677
- rows: rows,
4678
- flatRows: flatRows,
4679
- rowsById: rowsById
5039
+ var pageSize = pagination.pageSize,
5040
+ pageIndex = pagination.pageIndex;
5041
+ var rows = rowModel.rows,
5042
+ flatRows = rowModel.flatRows,
5043
+ rowsById = rowModel.rowsById;
5044
+ var pageStart = pageSize * pageIndex;
5045
+ var pageEnd = pageStart + pageSize;
5046
+ rows = rows.slice(pageStart, pageEnd);
5047
+
5048
+ if (!instance.options.paginateExpandedRows) {
5049
+ return expandRows({
5050
+ rows: rows,
5051
+ flatRows: flatRows,
5052
+ rowsById: rowsById
5053
+ }, instance);
5054
+ }
5055
+
5056
+ return {
5057
+ rows: rows,
5058
+ flatRows: flatRows,
5059
+ rowsById: rowsById
5060
+ };
5061
+ }, {
5062
+ key: 'getPaginationRowModel',
5063
+ debug: function debug() {
5064
+ var _instance$options$deb;
5065
+
5066
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
5067
+ }
5068
+ });
4680
5069
  };
4681
5070
  }
4682
5071
 
@@ -4692,26 +5081,31 @@
4692
5081
  exports.Sorting = Sorting;
4693
5082
  exports.Visibility = Visibility;
4694
5083
  exports.buildHeaderGroups = buildHeaderGroups;
4695
- exports.columnFilterRowsFn = columnFilterRowsFn;
4696
5084
  exports.createTableInstance = createTableInstance;
4697
5085
  exports.defaultColumnSizing = defaultColumnSizing;
4698
- exports.expandRowsFn = expandRowsFn;
5086
+ exports.expandRows = expandRows;
4699
5087
  exports.flattenBy = flattenBy;
4700
5088
  exports.functionalUpdate = functionalUpdate;
4701
- exports.globalFilterRowsFn = globalFilterRowsFn;
4702
- exports.groupRowsFn = groupRowsFn;
5089
+ exports.getBatchGroups = getBatchGroups;
5090
+ exports.getColumnFilteredRowModelSync = getColumnFilteredRowModelSync;
5091
+ exports.getCoreRowModelAsync = getCoreRowModelAsync;
5092
+ exports.getCoreRowModelSync = getCoreRowModelSync;
5093
+ exports.getExpandedRowModel = getExpandedRowModel;
5094
+ exports.getGlobalFilteredRowModelSync = getGlobalFilteredRowModelSync;
5095
+ exports.getGroupedRowModelSync = getGroupedRowModelSync;
5096
+ exports.getPaginationRowModel = getPaginationRowModel;
5097
+ exports.getSortedRowModelSync = getSortedRowModelSync;
5098
+ exports.incrementalMemo = incrementalMemo;
4703
5099
  exports.init = init;
4704
5100
  exports.isFunction = isFunction;
4705
5101
  exports.isRowSelected = isRowSelected;
4706
5102
  exports.makeStateUpdater = makeStateUpdater;
4707
5103
  exports.memo = memo;
4708
5104
  exports.noop = noop;
4709
- exports.paginateRowsFn = paginateRowsFn;
4710
5105
  exports.passiveEventSupported = passiveEventSupported;
4711
5106
  exports.propGetter = propGetter;
4712
5107
  exports.selectRowsFn = selectRowsFn;
4713
5108
  exports.shouldAutoRemoveFilter = shouldAutoRemoveFilter;
4714
- exports.sortRowsFn = sortRowsFn;
4715
5109
 
4716
5110
  Object.defineProperty(exports, '__esModule', { value: true });
4717
5111