@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.
- package/build/cjs/aggregationTypes.js +1 -0
- package/build/cjs/aggregationTypes.js.map +1 -1
- package/build/cjs/core.js +43 -78
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +12 -16
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +28 -81
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +10 -16
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +8 -13
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +9 -3
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +10 -16
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterTypes.js.map +1 -1
- package/build/cjs/index.js +19 -12
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/sortTypes.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getColumnFilteredRowModelSync.js +115 -0
- package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +1 -0
- package/build/cjs/utils/getCoreRowModelAsync.js +127 -0
- package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -0
- package/build/cjs/utils/getCoreRowModelSync.js +104 -0
- package/build/cjs/utils/getCoreRowModelSync.js.map +1 -0
- package/build/cjs/utils/getExpandedRowModel.js +61 -0
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -0
- package/build/cjs/utils/getGlobalFilteredRowModelSync.js +91 -0
- package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +1 -0
- package/build/cjs/utils/getGroupedRowModel.js +176 -0
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -0
- package/build/cjs/utils/getPaginationRowModel.js +61 -0
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -0
- package/build/cjs/utils/getSortedRowModelSync.js +118 -0
- package/build/cjs/utils/getSortedRowModelSync.js.map +1 -0
- package/build/cjs/utils.js +155 -16
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +877 -488
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +408 -300
- package/build/types/aggregationTypes.d.ts +1 -1
- package/build/types/core.d.ts +9 -1
- package/build/types/features/Expanding.d.ts +2 -1
- package/build/types/features/Filters.d.ts +6 -2
- package/build/types/features/Grouping.d.ts +3 -2
- package/build/types/features/Pagination.d.ts +2 -1
- package/build/types/features/Sorting.d.ts +2 -1
- package/build/types/index.d.ts +8 -6
- package/build/types/types.d.ts +2 -2
- package/build/types/utils/getColumnFilteredRowModelAsync.d.ts +4 -0
- package/build/types/utils/getColumnFilteredRowModelSync.d.ts +2 -0
- package/build/types/utils/getCoreRowModelAsync.d.ts +4 -0
- package/build/types/utils/getCoreRowModelSync.d.ts +2 -0
- package/build/types/utils/getExpandedRowModel.d.ts +7 -0
- package/build/types/utils/getGlobalFilteredRowModelAsync.d.ts +4 -0
- package/build/types/utils/getGlobalFilteredRowModelSync.d.ts +2 -0
- package/build/types/utils/getGroupedRowModel.d.ts +2 -0
- package/build/types/utils/getPaginationRowModel.d.ts +4 -0
- package/build/types/utils/{sortRowsQuicksortFn.d.ts → getSortedRowModelAsync.d.ts} +3 -1
- package/build/types/utils/getSortedRowModelSync.d.ts +2 -0
- package/build/types/utils.d.ts +16 -0
- package/build/umd/index.development.js +887 -493
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +3 -1
- package/src/aggregationTypes.ts +1 -1
- package/src/core.tsx +53 -97
- package/src/features/Expanding.ts +19 -27
- package/src/features/Filters.ts +52 -99
- package/src/features/Grouping.ts +19 -21
- package/src/features/Pagination.ts +17 -20
- package/src/features/RowSelection.ts +5 -3
- package/src/features/Sorting.ts +19 -23
- package/src/index.tsx +8 -6
- package/src/types.ts +3 -1
- package/src/utils/getColumnFilteredRowModelAsync.ts +119 -0
- package/src/utils/getColumnFilteredRowModelSync.ts +99 -0
- package/src/utils/getCoreRowModelAsync.ts +105 -0
- package/src/utils/getCoreRowModelSync.ts +107 -0
- package/src/utils/getExpandedRowModel.ts +58 -0
- package/src/utils/getGlobalFilteredRowModelAsync.ts +97 -0
- package/src/utils/getGlobalFilteredRowModelSync.ts +76 -0
- package/src/utils/getGroupedRowModel.ts +191 -0
- package/src/utils/getPaginationRowModel.ts +45 -0
- package/src/utils/getSortedRowModelAsync.ts +201 -0
- package/src/utils/getSortedRowModelSync.ts +118 -0
- package/src/utils.tsx +189 -16
- package/build/cjs/utils/columnFilterRowsFn.js +0 -73
- package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
- package/build/cjs/utils/expandRowsFn.js +0 -37
- package/build/cjs/utils/expandRowsFn.js.map +0 -1
- package/build/cjs/utils/globalFilterRowsFn.js +0 -49
- package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
- package/build/cjs/utils/groupRowsFn.js +0 -155
- package/build/cjs/utils/groupRowsFn.js.map +0 -1
- package/build/cjs/utils/paginateRowsFn.js +0 -44
- package/build/cjs/utils/paginateRowsFn.js.map +0 -1
- package/build/cjs/utils/sortRowsFn.js +0 -94
- package/build/cjs/utils/sortRowsFn.js.map +0 -1
- package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
- package/build/types/utils/expandRowsFn.d.ts +0 -2
- package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
- package/build/types/utils/groupRowsFn.d.ts +0 -2
- package/build/types/utils/paginateRowsFn.d.ts +0 -2
- package/build/types/utils/sortRowsFn.d.ts +0 -2
- package/src/utils/columnFilterRowsFn.ts +0 -56
- package/src/utils/expandRowsFn.ts +0 -34
- package/src/utils/globalFilterRowsFn.ts +0 -39
- package/src/utils/groupRowsFn.ts +0 -174
- package/src/utils/paginateRowsFn.ts +0 -28
- package/src/utils/sortRowsFn.ts +0 -99
- 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
|
-
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
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
|
-
|
|
707
|
-
return
|
|
708
|
-
},
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
1022
|
-
}
|
|
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
|
-
|
|
1028
|
-
|
|
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:
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
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
|
-
|
|
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:
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
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
|
-
|
|
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:
|
|
1551
|
-
|
|
1552
|
-
|
|
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
|
-
|
|
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:
|
|
1838
|
-
|
|
1839
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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:
|
|
2893
|
-
|
|
2894
|
-
|
|
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
|
-
|
|
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:
|
|
4010
|
-
|
|
4011
|
-
|
|
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
|
-
|
|
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
|
|
4253
|
-
|
|
4254
|
-
|
|
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
|
-
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
|
|
4296
|
+
var accessRow = function accessRow(originalRow, rowIndex, depth, parentRows, parent) {
|
|
4297
|
+
if (depth === void 0) {
|
|
4298
|
+
depth = 0;
|
|
4299
|
+
}
|
|
4260
4300
|
|
|
4261
|
-
|
|
4301
|
+
var id = instance.getRowId(originalRow, rowIndex, parent);
|
|
4262
4302
|
|
|
4263
|
-
|
|
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
|
|
4336
|
-
|
|
4337
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
4356
|
-
|
|
4357
|
-
|
|
4582
|
+
if (!column) {
|
|
4583
|
+
{
|
|
4584
|
+
console.warn("Table: Could not find a column with id: " + columnId);
|
|
4585
|
+
}
|
|
4358
4586
|
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
};
|
|
4362
|
-
})();
|
|
4363
|
-
}
|
|
4587
|
+
throw new Error();
|
|
4588
|
+
}
|
|
4364
4589
|
|
|
4365
|
-
|
|
4590
|
+
if (depth === 0) {
|
|
4591
|
+
(function () {
|
|
4592
|
+
var preFilteredRows = [].concat(rowsToFilter);
|
|
4366
4593
|
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4594
|
+
column.getPreFilteredRows = function () {
|
|
4595
|
+
return preFilteredRows;
|
|
4596
|
+
};
|
|
4597
|
+
})();
|
|
4598
|
+
}
|
|
4371
4599
|
|
|
4372
|
-
|
|
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
|
-
|
|
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
|
-
|
|
4384
|
-
|
|
4385
|
-
}
|
|
4612
|
+
rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue);
|
|
4613
|
+
}
|
|
4386
4614
|
|
|
4387
|
-
|
|
4388
|
-
|
|
4615
|
+
return rowsToFilter;
|
|
4616
|
+
};
|
|
4389
4617
|
|
|
4390
|
-
|
|
4391
|
-
|
|
4392
|
-
|
|
4393
|
-
var filterFn = instance.getGlobalFilterFn();
|
|
4618
|
+
if (filterFromLeafRows) {
|
|
4619
|
+
return filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
|
|
4620
|
+
}
|
|
4394
4621
|
|
|
4395
|
-
|
|
4396
|
-
|
|
4397
|
-
|
|
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
|
-
|
|
4404
|
-
|
|
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
|
-
|
|
4411
|
-
|
|
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
|
-
|
|
4415
|
-
|
|
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
|
-
|
|
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
|
|
4422
|
-
|
|
4423
|
-
|
|
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
|
-
|
|
4426
|
-
|
|
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
|
-
|
|
4439
|
-
|
|
4440
|
-
|
|
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
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
|
|
4466
|
-
|
|
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
|
-
|
|
4470
|
-
|
|
4471
|
-
|
|
4686
|
+
var filterRows = function filterRows(rows) {
|
|
4687
|
+
return filterFn(rows, filterableColumnIds, globalFilter);
|
|
4688
|
+
};
|
|
4472
4689
|
|
|
4473
|
-
|
|
4690
|
+
if (filterFromLeafRows) {
|
|
4691
|
+
return filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
|
|
4474
4692
|
}
|
|
4475
|
-
}
|
|
4476
4693
|
|
|
4477
|
-
|
|
4478
|
-
|
|
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
|
-
|
|
4484
|
-
|
|
4485
|
-
}
|
|
4699
|
+
var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
|
|
4700
|
+
var _instance$getState$co;
|
|
4486
4701
|
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
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
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
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
|
|
4500
|
-
|
|
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
|
-
|
|
4503
|
-
|
|
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
|
-
|
|
4508
|
-
|
|
4509
|
-
|
|
4510
|
-
|
|
4511
|
-
|
|
4512
|
-
|
|
4513
|
-
|
|
4514
|
-
|
|
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
|
-
|
|
4520
|
-
|
|
4521
|
-
|
|
4522
|
-
|
|
4779
|
+
var sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);
|
|
4780
|
+
|
|
4781
|
+
if (sortInt !== 0) {
|
|
4782
|
+
if (isDesc) {
|
|
4783
|
+
sortInt *= -1;
|
|
4784
|
+
}
|
|
4523
4785
|
|
|
4524
|
-
|
|
4525
|
-
|
|
4786
|
+
if (columnInfo.invertSorting) {
|
|
4787
|
+
sortInt *= -1;
|
|
4788
|
+
}
|
|
4789
|
+
|
|
4790
|
+
return sortInt;
|
|
4526
4791
|
}
|
|
4792
|
+
}
|
|
4527
4793
|
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
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
|
-
|
|
4536
|
-
|
|
4537
|
-
|
|
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
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
|
|
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
|
-
|
|
4560
|
-
|
|
4561
|
-
|
|
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
|
-
|
|
4855
|
+
var aggregateFn = instance.getColumnAggregationFn(column.id);
|
|
4567
4856
|
|
|
4568
|
-
|
|
4569
|
-
|
|
4570
|
-
|
|
4571
|
-
|
|
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
|
-
|
|
4862
|
+
if (!depth && column.aggregateValue) {
|
|
4863
|
+
columnValue = column.aggregateValue(columnValue);
|
|
4864
|
+
}
|
|
4575
4865
|
|
|
4576
|
-
|
|
4577
|
-
|
|
4578
|
-
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
|
|
4583
|
-
|
|
4584
|
-
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
|
|
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
|
|
4598
|
-
|
|
4599
|
-
|
|
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
|
-
|
|
4603
|
-
|
|
4604
|
-
|
|
4605
|
-
|
|
4606
|
-
|
|
4607
|
-
|
|
4608
|
-
|
|
4609
|
-
|
|
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
|
|
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
|
-
|
|
5022
|
+
rowModel.rows.forEach(handleRow);
|
|
4650
5023
|
return {
|
|
4651
5024
|
rows: expandedRows,
|
|
4652
|
-
flatRows:
|
|
4653
|
-
rowsById:
|
|
5025
|
+
flatRows: rowModel.flatRows,
|
|
5026
|
+
rowsById: rowModel.rowsById
|
|
4654
5027
|
};
|
|
4655
5028
|
}
|
|
4656
5029
|
|
|
4657
|
-
function
|
|
4658
|
-
|
|
4659
|
-
|
|
4660
|
-
|
|
4661
|
-
|
|
4662
|
-
|
|
4663
|
-
|
|
4664
|
-
|
|
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
|
-
|
|
4677
|
-
|
|
4678
|
-
|
|
4679
|
-
|
|
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.
|
|
5086
|
+
exports.expandRows = expandRows;
|
|
4699
5087
|
exports.flattenBy = flattenBy;
|
|
4700
5088
|
exports.functionalUpdate = functionalUpdate;
|
|
4701
|
-
exports.
|
|
4702
|
-
exports.
|
|
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
|
|