@tanstack/table-core 8.0.0-alpha.28 → 8.0.0-alpha.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/aggregationTypes.js +1 -0
- package/build/cjs/aggregationTypes.js.map +1 -1
- package/build/cjs/core.js +50 -79
- 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 +14 -18
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +29 -82
- 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 +10 -17
- 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 +11 -17
- 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 +159 -20
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +893 -500
- 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 +11 -1
- package/build/types/createTable.d.ts +2 -4
- 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 +3 -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 +903 -505
- 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 +66 -99
- package/src/createTable.tsx +2 -6
- package/src/features/Expanding.ts +21 -29
- package/src/features/Filters.ts +53 -100
- package/src/features/Grouping.ts +19 -21
- package/src/features/Pagination.ts +19 -28
- package/src/features/RowSelection.ts +5 -3
- package/src/features/Sorting.ts +20 -24
- package/src/index.tsx +8 -6
- package/src/types.ts +4 -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 +193 -21
- 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
package/build/esm/index.js
CHANGED
|
@@ -103,6 +103,32 @@ function functionalUpdate(updater, input) {
|
|
|
103
103
|
}
|
|
104
104
|
function noop() {//
|
|
105
105
|
}
|
|
106
|
+
function getBatchGroups(arr, count) {
|
|
107
|
+
var groups = [{
|
|
108
|
+
start: 0,
|
|
109
|
+
end: count - 1,
|
|
110
|
+
items: []
|
|
111
|
+
}];
|
|
112
|
+
var groupIndex = 0;
|
|
113
|
+
var group = groups[groupIndex];
|
|
114
|
+
|
|
115
|
+
for (var i = 0; i < arr.length; i++) {
|
|
116
|
+
if (i > group.end) {
|
|
117
|
+
groupIndex++;
|
|
118
|
+
groups[groupIndex] = {
|
|
119
|
+
start: i,
|
|
120
|
+
end: i + count - 1,
|
|
121
|
+
items: []
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
group = groups[groupIndex];
|
|
126
|
+
var _item = arr[i];
|
|
127
|
+
group.items.push(_item);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return groups;
|
|
131
|
+
}
|
|
106
132
|
function makeStateUpdater(key, instance) {
|
|
107
133
|
return function (updater) {
|
|
108
134
|
instance.setState(function (old) {
|
|
@@ -145,7 +171,7 @@ function memo(getDeps, fn, opts) {
|
|
|
145
171
|
var result;
|
|
146
172
|
return function () {
|
|
147
173
|
var depTime;
|
|
148
|
-
if (opts.key && opts.debug) depTime =
|
|
174
|
+
if (opts.key && opts.debug) depTime = Date.now();
|
|
149
175
|
var newDeps = getDeps();
|
|
150
176
|
var depsChanged = newDeps.length !== deps.length || newDeps.some(function (dep, index) {
|
|
151
177
|
return deps[index] !== dep;
|
|
@@ -154,15 +180,15 @@ function memo(getDeps, fn, opts) {
|
|
|
154
180
|
if (depsChanged) {
|
|
155
181
|
var oldResult = result;
|
|
156
182
|
var resultTime;
|
|
157
|
-
if (opts.key && opts.debug) resultTime =
|
|
183
|
+
if (opts.key && opts.debug) resultTime = Date.now();
|
|
158
184
|
result = fn.apply(void 0, newDeps);
|
|
159
185
|
deps = newDeps;
|
|
160
186
|
opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result, oldResult);
|
|
161
187
|
|
|
162
188
|
if (opts.key && opts.debug) {
|
|
163
189
|
if (opts != null && opts.debug()) {
|
|
164
|
-
var depEndTime = Math.round((
|
|
165
|
-
var resultEndTime = Math.round((
|
|
190
|
+
var depEndTime = Math.round((Date.now() - depTime) * 100) / 100;
|
|
191
|
+
var resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;
|
|
166
192
|
var resultFpsPercentage = resultEndTime / 16;
|
|
167
193
|
|
|
168
194
|
var pad = function pad(str, num) {
|
|
@@ -200,22 +226,133 @@ function memo(getDeps, fn, opts) {
|
|
|
200
226
|
|
|
201
227
|
return result;
|
|
202
228
|
};
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
229
|
+
}
|
|
230
|
+
function incrementalMemo(getDeps, getInitialValue, schedule, opts) {
|
|
231
|
+
var _opts$timeout;
|
|
232
|
+
|
|
233
|
+
var oldDeps;
|
|
234
|
+
var deps;
|
|
235
|
+
var result;
|
|
236
|
+
var nextResultRef;
|
|
237
|
+
var tasks = [];
|
|
238
|
+
var totalTaskCount = 0;
|
|
239
|
+
var resultStartTime;
|
|
240
|
+
var batchIndex = 0;
|
|
241
|
+
var progress = 0;
|
|
242
|
+
var working = false;
|
|
243
|
+
var callback;
|
|
244
|
+
var timeout = (_opts$timeout = opts.timeout) != null ? _opts$timeout : 100;
|
|
245
|
+
|
|
246
|
+
var onProgress = function onProgress(latestResult, previousResult) {
|
|
247
|
+
progress = 1 - tasks.length / totalTaskCount;
|
|
248
|
+
opts.onProgress(progress, latestResult, previousResult);
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
return function () {
|
|
252
|
+
var scheduleFn = function scheduleFn(workFn) {
|
|
253
|
+
totalTaskCount++;
|
|
254
|
+
tasks.push(workFn);
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
var newDeps = getDeps();
|
|
258
|
+
var first = false;
|
|
259
|
+
|
|
260
|
+
if (!deps) {
|
|
261
|
+
first = true;
|
|
262
|
+
deps = [];
|
|
263
|
+
result = getInitialValue.apply(void 0, newDeps);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
var depsChanged = newDeps.length !== deps.length || newDeps.some(function (dep, index) {
|
|
267
|
+
return deps[index] !== dep;
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
if (depsChanged) {
|
|
271
|
+
cancelIdleCallback(callback);
|
|
272
|
+
oldDeps = deps;
|
|
273
|
+
deps = newDeps;
|
|
274
|
+
totalTaskCount = 0;
|
|
275
|
+
tasks = [];
|
|
276
|
+
nextResultRef = {
|
|
277
|
+
current: getInitialValue.apply(void 0, newDeps)
|
|
278
|
+
};
|
|
279
|
+
resultStartTime = Date.now();
|
|
280
|
+
schedule.apply(void 0, newDeps)(nextResultRef)(scheduleFn);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
var commitResult = function commitResult() {
|
|
284
|
+
cancelIdleCallback(callback);
|
|
285
|
+
|
|
286
|
+
if (opts.key && opts.debug) {
|
|
287
|
+
if (opts != null && opts.debug()) {
|
|
288
|
+
var resultEndTime = Math.round((Date.now() - resultStartTime) * 100) / 100;
|
|
289
|
+
var resultFpsPercentage = resultEndTime / batchIndex / 16;
|
|
290
|
+
console.info("%c\u23F1 " + resultEndTime + " ms / " + batchIndex + " tasks = " + Math.round(resultEndTime / batchIndex) + " ms/task", "\n font-size: .6rem;\n font-weight: bold;\n color: hsl(" + Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120)) + "deg 100% 31%);", opts == null ? void 0 : opts.key, _extends({
|
|
291
|
+
length: oldDeps.length + " -> " + deps.length
|
|
292
|
+
}, deps.map(function (_, index) {
|
|
293
|
+
if (oldDeps[index] !== deps[index]) {
|
|
294
|
+
return [index, oldDeps[index], deps[index]];
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
return false;
|
|
298
|
+
}).filter(Boolean).reduce(function (accu, _ref2) {
|
|
299
|
+
var _extends4;
|
|
300
|
+
|
|
301
|
+
var a = _ref2[0],
|
|
302
|
+
b = _ref2[1];
|
|
303
|
+
return _extends({}, accu, (_extends4 = {}, _extends4[a] = b, _extends4));
|
|
304
|
+
}, {}), {
|
|
305
|
+
parent: parent
|
|
306
|
+
}));
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
working = false;
|
|
311
|
+
var previousResult = result;
|
|
312
|
+
result = nextResultRef.current;
|
|
313
|
+
onProgress(result, previousResult);
|
|
314
|
+
opts.onChange(result, previousResult);
|
|
315
|
+
};
|
|
316
|
+
|
|
317
|
+
if (opts.initialSync && first) {
|
|
318
|
+
batchIndex = 1;
|
|
319
|
+
first = false;
|
|
320
|
+
|
|
321
|
+
for (var i = 0; i < tasks.length; i++) {
|
|
322
|
+
tasks[i]();
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
tasks = [];
|
|
326
|
+
commitResult();
|
|
327
|
+
} else if (!working && tasks.length) {
|
|
328
|
+
cancelIdleCallback(callback);
|
|
329
|
+
working = true;
|
|
330
|
+
batchIndex = 0;
|
|
331
|
+
|
|
332
|
+
var workLoop = function workLoop(deadline) {
|
|
333
|
+
while (tasks.length && deadline.timeRemaining() > 0) {
|
|
334
|
+
tasks.shift()();
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
if (!tasks.length) {
|
|
338
|
+
commitResult();
|
|
339
|
+
} else {
|
|
340
|
+
++batchIndex;
|
|
341
|
+
onProgress(nextResultRef.current, result);
|
|
342
|
+
callback = requestIdleCallback(workLoop, {
|
|
343
|
+
timeout: timeout
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
|
|
348
|
+
callback = requestIdleCallback(workLoop, {
|
|
349
|
+
timeout: timeout
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
return result;
|
|
354
|
+
};
|
|
355
|
+
} // opts?.onChange?.(result, oldResult)
|
|
219
356
|
|
|
220
357
|
//
|
|
221
358
|
var defaultColumnSizing = {
|
|
@@ -546,6 +683,8 @@ var Expanding = {
|
|
|
546
683
|
var registered = false;
|
|
547
684
|
return {
|
|
548
685
|
_notifyExpandedReset: function _notifyExpandedReset() {
|
|
686
|
+
instance._notifyPageIndexReset();
|
|
687
|
+
|
|
549
688
|
if (!registered) {
|
|
550
689
|
registered = true;
|
|
551
690
|
return;
|
|
@@ -651,7 +790,7 @@ var Expanding = {
|
|
|
651
790
|
var initialProps = {
|
|
652
791
|
title: canExpand ? 'Toggle Expanded' : undefined,
|
|
653
792
|
onClick: canExpand ? function (e) {
|
|
654
|
-
e.persist();
|
|
793
|
+
e.persist == null ? void 0 : e.persist();
|
|
655
794
|
instance.toggleRowExpanded(rowId);
|
|
656
795
|
} : undefined
|
|
657
796
|
};
|
|
@@ -661,7 +800,7 @@ var Expanding = {
|
|
|
661
800
|
var initialProps = {
|
|
662
801
|
title: 'Toggle All Expanded',
|
|
663
802
|
onClick: function onClick(e) {
|
|
664
|
-
e.persist();
|
|
803
|
+
e.persist == null ? void 0 : e.persist();
|
|
665
804
|
instance.toggleAllRowsExpanded();
|
|
666
805
|
}
|
|
667
806
|
};
|
|
@@ -697,25 +836,19 @@ var Expanding = {
|
|
|
697
836
|
});
|
|
698
837
|
return maxDepth;
|
|
699
838
|
},
|
|
700
|
-
|
|
701
|
-
return
|
|
702
|
-
},
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
839
|
+
getPreExpandedRowModel: function getPreExpandedRowModel() {
|
|
840
|
+
return instance.getGroupedRowModel();
|
|
841
|
+
},
|
|
842
|
+
getExpandedRowModel: function getExpandedRowModel() {
|
|
843
|
+
if (!instance._getExpandedRowModel && instance.options.getExpandedRowModel) {
|
|
844
|
+
instance._getExpandedRowModel = instance.options.getExpandedRowModel(instance);
|
|
706
845
|
}
|
|
707
846
|
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
key: 'getExpandedRowModel',
|
|
711
|
-
debug: function debug() {
|
|
712
|
-
var _instance$options$deb;
|
|
713
|
-
|
|
714
|
-
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
847
|
+
if (!instance._getExpandedRowModel) {
|
|
848
|
+
return instance.getPreExpandedRowModel();
|
|
715
849
|
}
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
return instance.getGroupedRowModel();
|
|
850
|
+
|
|
851
|
+
return instance._getExpandedRowModel();
|
|
719
852
|
}
|
|
720
853
|
};
|
|
721
854
|
},
|
|
@@ -903,7 +1036,9 @@ var Filters = {
|
|
|
903
1036
|
getInitialState: function getInitialState() {
|
|
904
1037
|
return {
|
|
905
1038
|
columnFilters: [],
|
|
906
|
-
globalFilter: undefined
|
|
1039
|
+
globalFilter: undefined,
|
|
1040
|
+
columnFiltersProgress: 1,
|
|
1041
|
+
globalFilterProgress: 1
|
|
907
1042
|
};
|
|
908
1043
|
},
|
|
909
1044
|
getDefaultOptions: function getDefaultOptions(instance) {
|
|
@@ -1002,6 +1137,8 @@ var Filters = {
|
|
|
1002
1137
|
var registered = false;
|
|
1003
1138
|
return {
|
|
1004
1139
|
_notifyFiltersReset: function _notifyFiltersReset() {
|
|
1140
|
+
instance._notifySortingReset();
|
|
1141
|
+
|
|
1005
1142
|
if (!registered) {
|
|
1006
1143
|
registered = true;
|
|
1007
1144
|
return;
|
|
@@ -1011,16 +1148,12 @@ var Filters = {
|
|
|
1011
1148
|
return;
|
|
1012
1149
|
}
|
|
1013
1150
|
|
|
1014
|
-
if (instance.options.autoResetAll === true) {
|
|
1015
|
-
instance.
|
|
1016
|
-
}
|
|
1017
|
-
if (instance.options.autoResetColumnFilters) {
|
|
1018
|
-
instance.resetColumnFilters();
|
|
1019
|
-
}
|
|
1151
|
+
if (instance.options.autoResetAll === true || instance.options.autoResetColumnFilters) {
|
|
1152
|
+
instance.resetColumnFilters();
|
|
1153
|
+
}
|
|
1020
1154
|
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
}
|
|
1155
|
+
if (instance.options.autoResetAll === true || instance.options.autoResetGlobalFilter) {
|
|
1156
|
+
instance.resetGlobalFilter();
|
|
1024
1157
|
}
|
|
1025
1158
|
},
|
|
1026
1159
|
getColumnAutoFilterFn: function getColumnAutoFilterFn(columnId) {
|
|
@@ -1097,7 +1230,7 @@ var Filters = {
|
|
|
1097
1230
|
instance.options.onGlobalFilterChange == null ? void 0 : instance.options.onGlobalFilterChange(updater, functionalUpdate(updater, instance.getState().globalFilter));
|
|
1098
1231
|
},
|
|
1099
1232
|
resetGlobalFilter: function resetGlobalFilter() {
|
|
1100
|
-
instance.setGlobalFilter(
|
|
1233
|
+
instance.setGlobalFilter(instance.initialState.globalFilter);
|
|
1101
1234
|
},
|
|
1102
1235
|
getColumnCanColumnFilter: function getColumnCanColumnFilter(columnId) {
|
|
1103
1236
|
var _ref3, _ref4, _ref5, _ref6, _ref7, _column$enableAllFilt;
|
|
@@ -1200,84 +1333,31 @@ var Filters = {
|
|
|
1200
1333
|
getPreColumnFilteredRowModel: function getPreColumnFilteredRowModel() {
|
|
1201
1334
|
return instance.getCoreRowModel();
|
|
1202
1335
|
},
|
|
1203
|
-
getColumnFilteredRowModel:
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
if (!(columnFilters != null && columnFilters.length) || !columnFiltersFn) {
|
|
1208
|
-
return rowModel;
|
|
1209
|
-
}
|
|
1210
|
-
|
|
1211
|
-
return columnFiltersFn(instance, rowModel);
|
|
1212
|
-
}(); // Now that each filtered column has it's partially filtered rows,
|
|
1213
|
-
// lets assign the final filtered rows to all of the other columns
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
|
|
1217
|
-
var _instance$getState$co5;
|
|
1218
|
-
|
|
1219
|
-
return !((_instance$getState$co5 = instance.getState().columnFilters) != null && _instance$getState$co5.find(function (d) {
|
|
1220
|
-
return d.id === column.id;
|
|
1221
|
-
}));
|
|
1222
|
-
}); // This essentially enables faceted filter options to be built easily
|
|
1223
|
-
// using every column's preFilteredRows value
|
|
1224
|
-
|
|
1225
|
-
nonFilteredColumns.forEach(function (column) {
|
|
1226
|
-
column.getPreFilteredRows = function () {
|
|
1227
|
-
return columnFilteredRowModel.rows;
|
|
1228
|
-
};
|
|
1229
|
-
});
|
|
1230
|
-
return columnFilteredRowModel;
|
|
1231
|
-
}, {
|
|
1232
|
-
key: 'getColumnFilteredRowModel',
|
|
1233
|
-
debug: function debug() {
|
|
1234
|
-
var _instance$options$deb2;
|
|
1336
|
+
getColumnFilteredRowModel: function getColumnFilteredRowModel() {
|
|
1337
|
+
if (!instance._getColumnFilteredRowModel && instance.options.getColumnFilteredRowModel) {
|
|
1338
|
+
instance._getColumnFilteredRowModel = instance.options.getColumnFilteredRowModel(instance);
|
|
1339
|
+
}
|
|
1235
1340
|
|
|
1236
|
-
|
|
1341
|
+
if (!instance._getColumnFilteredRowModel) {
|
|
1342
|
+
return instance.getPreColumnFilteredRowModel();
|
|
1237
1343
|
}
|
|
1238
|
-
|
|
1344
|
+
|
|
1345
|
+
return instance._getColumnFilteredRowModel();
|
|
1346
|
+
},
|
|
1239
1347
|
getPreGlobalFilteredRowModel: function getPreGlobalFilteredRowModel() {
|
|
1240
1348
|
return instance.getColumnFilteredRowModel();
|
|
1241
1349
|
},
|
|
1242
|
-
getGlobalFilteredRowModel:
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
if (!globalFiltersFn || !globalFilterValue) {
|
|
1247
|
-
return columnFilteredRowModel;
|
|
1248
|
-
}
|
|
1249
|
-
|
|
1250
|
-
return globalFiltersFn(instance, columnFilteredRowModel);
|
|
1251
|
-
}(); // Now that each filtered column has it's partially filtered rows,
|
|
1252
|
-
// lets assign the final filtered rows to all of the other columns
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
|
|
1256
|
-
var _instance$getState$co6;
|
|
1257
|
-
|
|
1258
|
-
return !((_instance$getState$co6 = instance.getState().columnFilters) != null && _instance$getState$co6.find(function (d) {
|
|
1259
|
-
return d.id === column.id;
|
|
1260
|
-
}));
|
|
1261
|
-
}); // This essentially enables faceted filter options to be built easily
|
|
1262
|
-
// using every column's preFilteredRows value
|
|
1263
|
-
|
|
1264
|
-
nonFilteredColumns.forEach(function (column) {
|
|
1265
|
-
column.getPreFilteredRows = function () {
|
|
1266
|
-
return globalFilteredRowModel.rows;
|
|
1267
|
-
};
|
|
1268
|
-
});
|
|
1269
|
-
return globalFilteredRowModel;
|
|
1270
|
-
}, {
|
|
1271
|
-
key: 'getGlobalFilteredRowModel',
|
|
1272
|
-
debug: function debug() {
|
|
1273
|
-
var _instance$options$deb3;
|
|
1350
|
+
getGlobalFilteredRowModel: function getGlobalFilteredRowModel() {
|
|
1351
|
+
if (!instance._getGlobalFilteredRowModel && instance.options.getGlobalFilteredRowModel) {
|
|
1352
|
+
instance._getGlobalFilteredRowModel = instance.options.getGlobalFilteredRowModel(instance);
|
|
1353
|
+
}
|
|
1274
1354
|
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
onChange: function onChange() {
|
|
1278
|
-
instance._notifySortingReset();
|
|
1355
|
+
if (!instance._getGlobalFilteredRowModel) {
|
|
1356
|
+
return instance.getPreGlobalFilteredRowModel();
|
|
1279
1357
|
}
|
|
1280
|
-
|
|
1358
|
+
|
|
1359
|
+
return instance._getGlobalFilteredRowModel();
|
|
1360
|
+
}
|
|
1281
1361
|
};
|
|
1282
1362
|
}
|
|
1283
1363
|
};
|
|
@@ -1442,6 +1522,8 @@ var Grouping = {
|
|
|
1442
1522
|
var registered = false;
|
|
1443
1523
|
return {
|
|
1444
1524
|
_notifyGroupingReset: function _notifyGroupingReset() {
|
|
1525
|
+
instance._notifyExpandedReset();
|
|
1526
|
+
|
|
1445
1527
|
if (!registered) {
|
|
1446
1528
|
registered = true;
|
|
1447
1529
|
return;
|
|
@@ -1541,25 +1623,17 @@ var Grouping = {
|
|
|
1541
1623
|
getPreGroupedRowModel: function getPreGroupedRowModel() {
|
|
1542
1624
|
return instance.getSortedRowModel();
|
|
1543
1625
|
},
|
|
1544
|
-
getGroupedRowModel:
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
if (!groupRowsFn || !grouping.length) {
|
|
1548
|
-
return rowModel;
|
|
1626
|
+
getGroupedRowModel: function getGroupedRowModel() {
|
|
1627
|
+
if (!instance._getGroupedRowModel && instance.options.getGroupedRowModel) {
|
|
1628
|
+
instance._getGroupedRowModel = instance.options.getGroupedRowModel(instance);
|
|
1549
1629
|
}
|
|
1550
1630
|
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
key: 'getGroupedRowModel',
|
|
1554
|
-
debug: function debug() {
|
|
1555
|
-
var _instance$options$deb;
|
|
1556
|
-
|
|
1557
|
-
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
1558
|
-
},
|
|
1559
|
-
onChange: function onChange() {
|
|
1560
|
-
return instance._notifyExpandedReset();
|
|
1631
|
+
if (!instance._getGroupedRowModel) {
|
|
1632
|
+
return instance.getPreGroupedRowModel();
|
|
1561
1633
|
}
|
|
1562
|
-
|
|
1634
|
+
|
|
1635
|
+
return instance._getGroupedRowModel();
|
|
1636
|
+
}
|
|
1563
1637
|
};
|
|
1564
1638
|
},
|
|
1565
1639
|
createRow: function createRow(row, instance) {
|
|
@@ -1802,9 +1876,7 @@ var Pagination = {
|
|
|
1802
1876
|
return instance.getState().pagination.pageIndex > 0;
|
|
1803
1877
|
},
|
|
1804
1878
|
getCanNextPage: function getCanNextPage() {
|
|
1805
|
-
var
|
|
1806
|
-
pageIndex = _instance$getState$pa.pageIndex,
|
|
1807
|
-
pageSize = _instance$getState$pa.pageSize;
|
|
1879
|
+
var pageIndex = instance.getState().pagination.pageIndex;
|
|
1808
1880
|
var pageCount = instance.getPageCount();
|
|
1809
1881
|
|
|
1810
1882
|
if (pageCount === -1) {
|
|
@@ -1815,7 +1887,7 @@ var Pagination = {
|
|
|
1815
1887
|
return false;
|
|
1816
1888
|
}
|
|
1817
1889
|
|
|
1818
|
-
return pageIndex <
|
|
1890
|
+
return pageIndex < pageCount - 1;
|
|
1819
1891
|
},
|
|
1820
1892
|
previousPage: function previousPage() {
|
|
1821
1893
|
return instance.setPageIndex(function (old) {
|
|
@@ -1830,22 +1902,17 @@ var Pagination = {
|
|
|
1830
1902
|
getPrePaginationRowModel: function getPrePaginationRowModel() {
|
|
1831
1903
|
return instance.getExpandedRowModel();
|
|
1832
1904
|
},
|
|
1833
|
-
getPaginationRowModel:
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
if (!paginateRowsFn || !rowModel.rows.length) {
|
|
1837
|
-
return rowModel;
|
|
1905
|
+
getPaginationRowModel: function getPaginationRowModel() {
|
|
1906
|
+
if (!instance._getPaginationRowModel && instance.options.getPaginationRowModel) {
|
|
1907
|
+
instance._getPaginationRowModel = instance.options.getPaginationRowModel(instance);
|
|
1838
1908
|
}
|
|
1839
1909
|
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
key: 'getPaginationRowModel',
|
|
1843
|
-
debug: function debug() {
|
|
1844
|
-
var _instance$options$deb2;
|
|
1845
|
-
|
|
1846
|
-
return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugTable;
|
|
1910
|
+
if (!instance._getPaginationRowModel) {
|
|
1911
|
+
return instance.getPrePaginationRowModel();
|
|
1847
1912
|
}
|
|
1848
|
-
|
|
1913
|
+
|
|
1914
|
+
return instance._getPaginationRowModel();
|
|
1915
|
+
},
|
|
1849
1916
|
getPageCount: function getPageCount() {
|
|
1850
1917
|
var pageCount = instance.getState().pagination.pageCount;
|
|
1851
1918
|
|
|
@@ -2163,7 +2230,9 @@ var RowSelection = {
|
|
|
2163
2230
|
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
2164
2231
|
},
|
|
2165
2232
|
onChange: function onChange() {
|
|
2166
|
-
|
|
2233
|
+
instance.queue(function () {
|
|
2234
|
+
return instance._notifyExpandedReset();
|
|
2235
|
+
});
|
|
2167
2236
|
}
|
|
2168
2237
|
}),
|
|
2169
2238
|
getFilteredSelectedRowModel: memo(function () {
|
|
@@ -2186,7 +2255,9 @@ var RowSelection = {
|
|
|
2186
2255
|
return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugTable;
|
|
2187
2256
|
},
|
|
2188
2257
|
onChange: function onChange() {
|
|
2189
|
-
return instance.
|
|
2258
|
+
return instance.queue(function () {
|
|
2259
|
+
return instance._notifyExpandedReset();
|
|
2260
|
+
});
|
|
2190
2261
|
}
|
|
2191
2262
|
}),
|
|
2192
2263
|
getGroupedSelectedRowModel: memo(function () {
|
|
@@ -2209,7 +2280,9 @@ var RowSelection = {
|
|
|
2209
2280
|
return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugTable;
|
|
2210
2281
|
},
|
|
2211
2282
|
onChange: function onChange() {
|
|
2212
|
-
return instance.
|
|
2283
|
+
return instance.queue(function () {
|
|
2284
|
+
return instance._notifyExpandedReset();
|
|
2285
|
+
});
|
|
2213
2286
|
}
|
|
2214
2287
|
}),
|
|
2215
2288
|
///
|
|
@@ -2655,6 +2728,8 @@ var Sorting = {
|
|
|
2655
2728
|
var registered = false;
|
|
2656
2729
|
return {
|
|
2657
2730
|
_notifySortingReset: function _notifySortingReset() {
|
|
2731
|
+
instance._notifyGroupingReset();
|
|
2732
|
+
|
|
2658
2733
|
if (!registered) {
|
|
2659
2734
|
registered = true;
|
|
2660
2735
|
return;
|
|
@@ -2876,7 +2951,7 @@ var Sorting = {
|
|
|
2876
2951
|
var initialProps = {
|
|
2877
2952
|
title: canSort ? 'Toggle Sorting' : undefined,
|
|
2878
2953
|
onClick: canSort ? function (e) {
|
|
2879
|
-
e.persist();
|
|
2954
|
+
e.persist == null ? void 0 : e.persist();
|
|
2880
2955
|
column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? instance.options.isMultiSortEvent == null ? void 0 : instance.options.isMultiSortEvent(e) : false);
|
|
2881
2956
|
} : undefined
|
|
2882
2957
|
};
|
|
@@ -2885,25 +2960,17 @@ var Sorting = {
|
|
|
2885
2960
|
getPreSortedRowModel: function getPreSortedRowModel() {
|
|
2886
2961
|
return instance.getGlobalFilteredRowModel();
|
|
2887
2962
|
},
|
|
2888
|
-
getSortedRowModel:
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
if (!sortingFn || !(sorting != null && sorting.length)) {
|
|
2892
|
-
return rowModel;
|
|
2963
|
+
getSortedRowModel: function getSortedRowModel() {
|
|
2964
|
+
if (!instance._getSortedRowModel && instance.options.getSortedRowModel) {
|
|
2965
|
+
instance._getSortedRowModel = instance.options.getSortedRowModel(instance);
|
|
2893
2966
|
}
|
|
2894
2967
|
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
key: 'getSortedRowModel',
|
|
2898
|
-
debug: function debug() {
|
|
2899
|
-
var _instance$options$deb;
|
|
2900
|
-
|
|
2901
|
-
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
2902
|
-
},
|
|
2903
|
-
onChange: function onChange() {
|
|
2904
|
-
instance._notifyGroupingReset();
|
|
2968
|
+
if (!instance._getSortedRowModel) {
|
|
2969
|
+
return instance.getPreSortedRowModel();
|
|
2905
2970
|
}
|
|
2906
|
-
|
|
2971
|
+
|
|
2972
|
+
return instance._getSortedRowModel();
|
|
2973
|
+
}
|
|
2907
2974
|
};
|
|
2908
2975
|
}
|
|
2909
2976
|
};
|
|
@@ -3689,20 +3756,50 @@ function createTableInstance(options) {
|
|
|
3689
3756
|
};
|
|
3690
3757
|
|
|
3691
3758
|
instance.options = buildOptions(options);
|
|
3759
|
+
var coreInitialState = {
|
|
3760
|
+
coreProgress: 1
|
|
3761
|
+
};
|
|
3692
3762
|
|
|
3693
|
-
var initialState = _extends({}, features.reduce(function (obj, feature) {
|
|
3763
|
+
var initialState = _extends({}, coreInitialState, features.reduce(function (obj, feature) {
|
|
3694
3764
|
return Object.assign(obj, feature.getInitialState == null ? void 0 : feature.getInitialState());
|
|
3695
3765
|
}, {}), (_options$initialState = options.initialState) != null ? _options$initialState : {});
|
|
3696
3766
|
|
|
3767
|
+
var queued = [];
|
|
3768
|
+
var queuedTimeout;
|
|
3769
|
+
|
|
3697
3770
|
var finalInstance = _extends({}, instance, features.reduce(function (obj, feature) {
|
|
3698
3771
|
return Object.assign(obj, feature.getInstance == null ? void 0 : feature.getInstance(instance));
|
|
3699
3772
|
}, {}), {
|
|
3773
|
+
queue: function queue(cb) {
|
|
3774
|
+
queued.push(cb);
|
|
3775
|
+
|
|
3776
|
+
if (!queuedTimeout) {
|
|
3777
|
+
queuedTimeout = setTimeout(function () {
|
|
3778
|
+
instance.setState(function (old) {
|
|
3779
|
+
return _extends({}, old);
|
|
3780
|
+
});
|
|
3781
|
+
});
|
|
3782
|
+
}
|
|
3783
|
+
},
|
|
3784
|
+
willUpdate: function willUpdate() {
|
|
3785
|
+
clearTimeout(queuedTimeout);
|
|
3786
|
+
|
|
3787
|
+
while (queued.length) {
|
|
3788
|
+
queued.shift()();
|
|
3789
|
+
}
|
|
3790
|
+
},
|
|
3700
3791
|
initialState: initialState,
|
|
3701
3792
|
reset: function reset() {
|
|
3702
3793
|
instance.setState(instance.initialState);
|
|
3703
3794
|
},
|
|
3704
3795
|
setOptions: function setOptions(updater) {
|
|
3705
|
-
|
|
3796
|
+
var newOptions = functionalUpdate(updater, instance.options);
|
|
3797
|
+
|
|
3798
|
+
if (instance.options.mergeOptions) {
|
|
3799
|
+
instance.options = instance.options.mergeOptions(defaultOptions, newOptions);
|
|
3800
|
+
} else {
|
|
3801
|
+
instance.options = buildOptions(newOptions);
|
|
3802
|
+
}
|
|
3706
3803
|
},
|
|
3707
3804
|
render: function render(template, props) {
|
|
3708
3805
|
if (typeof instance.options.render === 'function') {
|
|
@@ -3998,85 +4095,13 @@ function createTableInstance(options) {
|
|
|
3998
4095
|
|
|
3999
4096
|
return row;
|
|
4000
4097
|
},
|
|
4001
|
-
getCoreRowModel:
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
// Access the row model using initial columns
|
|
4005
|
-
var rows = [];
|
|
4006
|
-
var flatRows = [];
|
|
4007
|
-
var rowsById = {};
|
|
4008
|
-
var leafColumns = instance.getAllLeafColumns();
|
|
4009
|
-
|
|
4010
|
-
var accessRow = function accessRow(originalRow, rowIndex, depth, parentRows, parent) {
|
|
4011
|
-
if (depth === void 0) {
|
|
4012
|
-
depth = 0;
|
|
4013
|
-
}
|
|
4014
|
-
|
|
4015
|
-
var id = instance.getRowId(originalRow, rowIndex, parent);
|
|
4016
|
-
|
|
4017
|
-
if (!id) {
|
|
4018
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
4019
|
-
throw new Error("getRowId expected an ID, but got " + id);
|
|
4020
|
-
}
|
|
4021
|
-
}
|
|
4022
|
-
|
|
4023
|
-
var values = {};
|
|
4024
|
-
|
|
4025
|
-
for (var i = 0; i < leafColumns.length; i++) {
|
|
4026
|
-
var _column = leafColumns[i];
|
|
4027
|
-
|
|
4028
|
-
if (_column && _column.accessorFn) {
|
|
4029
|
-
values[_column.id] = _column.accessorFn(originalRow, rowIndex);
|
|
4030
|
-
}
|
|
4031
|
-
} // Make the row
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
|
|
4035
|
-
|
|
4036
|
-
parentRows.push(row); // Keep track of every row in a flat array
|
|
4037
|
-
|
|
4038
|
-
flatRows.push(row); // Also keep track of every row by its ID
|
|
4039
|
-
|
|
4040
|
-
rowsById[id] = row; // Get the original subrows
|
|
4041
|
-
|
|
4042
|
-
if (instance.options.getSubRows) {
|
|
4043
|
-
var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
|
|
4044
|
-
|
|
4045
|
-
if (originalSubRows != null && originalSubRows.length) {
|
|
4046
|
-
row.originalSubRows = originalSubRows;
|
|
4047
|
-
var subRows = [];
|
|
4048
|
-
|
|
4049
|
-
for (var _i = 0; _i < row.originalSubRows.length; _i++) {
|
|
4050
|
-
accessRow(row.originalSubRows[_i], _i, depth + 1, subRows, row);
|
|
4051
|
-
}
|
|
4052
|
-
|
|
4053
|
-
row.subRows = subRows;
|
|
4054
|
-
}
|
|
4055
|
-
}
|
|
4056
|
-
};
|
|
4057
|
-
|
|
4058
|
-
for (var i = 0; i < data.length; i++) {
|
|
4059
|
-
accessRow(data[i], i, 0, rows);
|
|
4098
|
+
getCoreRowModel: function getCoreRowModel() {
|
|
4099
|
+
if (!instance._getCoreRowModel) {
|
|
4100
|
+
instance._getCoreRowModel = instance.options.getCoreRowModel(instance);
|
|
4060
4101
|
}
|
|
4061
4102
|
|
|
4062
|
-
return
|
|
4063
|
-
|
|
4064
|
-
flatRows: flatRows,
|
|
4065
|
-
rowsById: rowsById
|
|
4066
|
-
};
|
|
4067
|
-
}, {
|
|
4068
|
-
key: 'getRowModel',
|
|
4069
|
-
debug: function debug() {
|
|
4070
|
-
var _instance$options$deb10;
|
|
4071
|
-
|
|
4072
|
-
return (_instance$options$deb10 = instance.options.debugAll) != null ? _instance$options$deb10 : instance.options.debugTable;
|
|
4073
|
-
},
|
|
4074
|
-
onChange: function onChange() {
|
|
4075
|
-
instance._notifyFiltersReset();
|
|
4076
|
-
|
|
4077
|
-
instance._notifyRowSelectionReset();
|
|
4078
|
-
}
|
|
4079
|
-
}),
|
|
4103
|
+
return instance._getCoreRowModel();
|
|
4104
|
+
},
|
|
4080
4105
|
// The final calls start at the bottom of the model,
|
|
4081
4106
|
// expanded rows, which then work their way up
|
|
4082
4107
|
getRowModel: function getRowModel() {
|
|
@@ -4179,6 +4204,18 @@ function createTableInstance(options) {
|
|
|
4179
4204
|
return (_instance$getRightHea = (_instance$getRightHea2 = instance.getRightHeaderGroups()[0]) == null ? void 0 : _instance$getRightHea2.headers.reduce(function (sum, header) {
|
|
4180
4205
|
return sum + header.getWidth();
|
|
4181
4206
|
}, 0)) != null ? _instance$getRightHea : 0;
|
|
4207
|
+
},
|
|
4208
|
+
getOverallProgress: function getOverallProgress() {
|
|
4209
|
+
var _instance$getState = instance.getState(),
|
|
4210
|
+
coreProgress = _instance$getState.coreProgress,
|
|
4211
|
+
columnFiltersProgress = _instance$getState.columnFiltersProgress,
|
|
4212
|
+
globalFilterProgress = _instance$getState.globalFilterProgress;
|
|
4213
|
+
|
|
4214
|
+
return mean(function () {
|
|
4215
|
+
return [coreProgress, columnFiltersProgress, globalFilterProgress].filter(function (d) {
|
|
4216
|
+
return d < 1;
|
|
4217
|
+
});
|
|
4218
|
+
});
|
|
4182
4219
|
}
|
|
4183
4220
|
});
|
|
4184
4221
|
|
|
@@ -4247,14 +4284,208 @@ function _createTable(_, __, __options) {
|
|
|
4247
4284
|
};
|
|
4248
4285
|
}
|
|
4249
4286
|
|
|
4250
|
-
function
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
|
|
4287
|
+
function getCoreRowModelSync() {
|
|
4288
|
+
return function (instance) {
|
|
4289
|
+
return memo(function () {
|
|
4290
|
+
return [instance.options.data];
|
|
4291
|
+
}, function (data) {
|
|
4292
|
+
// Access the row model using initial columns
|
|
4293
|
+
var rows = [];
|
|
4294
|
+
var flatRows = [];
|
|
4295
|
+
var rowsById = {};
|
|
4296
|
+
var leafColumns = instance.getAllLeafColumns();
|
|
4297
|
+
|
|
4298
|
+
var accessRow = function accessRow(originalRow, rowIndex, depth, parentRows, parent) {
|
|
4299
|
+
if (depth === void 0) {
|
|
4300
|
+
depth = 0;
|
|
4301
|
+
}
|
|
4302
|
+
|
|
4303
|
+
var id = instance.getRowId(originalRow, rowIndex, parent);
|
|
4304
|
+
|
|
4305
|
+
if (!id) {
|
|
4306
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
4307
|
+
throw new Error("getRowId expected an ID, but got " + id);
|
|
4308
|
+
}
|
|
4309
|
+
}
|
|
4310
|
+
|
|
4311
|
+
var values = {};
|
|
4312
|
+
|
|
4313
|
+
for (var i = 0; i < leafColumns.length; i++) {
|
|
4314
|
+
var column = leafColumns[i];
|
|
4315
|
+
|
|
4316
|
+
if (column && column.accessorFn) {
|
|
4317
|
+
values[column.id] = column.accessorFn(originalRow, rowIndex);
|
|
4318
|
+
}
|
|
4319
|
+
} // Make the row
|
|
4320
|
+
|
|
4321
|
+
|
|
4322
|
+
var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
|
|
4323
|
+
|
|
4324
|
+
parentRows.push(row); // Keep track of every row in a flat array
|
|
4325
|
+
|
|
4326
|
+
flatRows.push(row); // Also keep track of every row by its ID
|
|
4327
|
+
|
|
4328
|
+
rowsById[id] = row; // Get the original subrows
|
|
4329
|
+
|
|
4330
|
+
if (instance.options.getSubRows) {
|
|
4331
|
+
var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
|
|
4332
|
+
|
|
4333
|
+
if (originalSubRows != null && originalSubRows.length) {
|
|
4334
|
+
row.originalSubRows = originalSubRows;
|
|
4335
|
+
var subRows = [];
|
|
4336
|
+
|
|
4337
|
+
for (var _i = 0; _i < row.originalSubRows.length; _i++) {
|
|
4338
|
+
accessRow(row.originalSubRows[_i], _i, depth + 1, subRows, row);
|
|
4339
|
+
}
|
|
4340
|
+
|
|
4341
|
+
row.subRows = subRows;
|
|
4342
|
+
}
|
|
4343
|
+
}
|
|
4344
|
+
};
|
|
4345
|
+
|
|
4346
|
+
for (var i = 0; i < data.length; i++) {
|
|
4347
|
+
accessRow(data[i], i, 0, rows);
|
|
4348
|
+
}
|
|
4349
|
+
|
|
4350
|
+
return {
|
|
4351
|
+
rows: rows,
|
|
4352
|
+
flatRows: flatRows,
|
|
4353
|
+
rowsById: rowsById
|
|
4354
|
+
};
|
|
4355
|
+
}, {
|
|
4356
|
+
key: 'getRowModel',
|
|
4357
|
+
debug: function debug() {
|
|
4358
|
+
var _instance$options$deb;
|
|
4359
|
+
|
|
4360
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
4361
|
+
},
|
|
4362
|
+
onChange: function onChange() {
|
|
4363
|
+
instance.queue(function () {
|
|
4364
|
+
instance._notifyFiltersReset();
|
|
4365
|
+
|
|
4366
|
+
instance._notifyRowSelectionReset();
|
|
4367
|
+
});
|
|
4368
|
+
}
|
|
4369
|
+
});
|
|
4370
|
+
};
|
|
4371
|
+
}
|
|
4372
|
+
|
|
4373
|
+
function getCoreRowModelAsync(opts) {
|
|
4374
|
+
return function (instance) {
|
|
4375
|
+
return incrementalMemo(function () {
|
|
4376
|
+
return [instance.options.data, instance.getAllLeafColumns()];
|
|
4377
|
+
}, function () {
|
|
4378
|
+
var rows = [];
|
|
4379
|
+
var flatRows = [];
|
|
4380
|
+
var rowsById = {};
|
|
4381
|
+
return {
|
|
4382
|
+
rows: rows,
|
|
4383
|
+
flatRows: flatRows,
|
|
4384
|
+
rowsById: rowsById
|
|
4385
|
+
};
|
|
4386
|
+
}, function (data, leafColumns) {
|
|
4387
|
+
return function (rowModelRef) {
|
|
4388
|
+
return function (scheduleTask) {
|
|
4389
|
+
var accessRows = function accessRows(originalRows, depth, parent) {
|
|
4390
|
+
if (depth === void 0) {
|
|
4391
|
+
depth = 0;
|
|
4392
|
+
}
|
|
4393
|
+
|
|
4394
|
+
var batchGroups = getBatchGroups(originalRows, 2000);
|
|
4395
|
+
|
|
4396
|
+
var _loop = function _loop(i) {
|
|
4397
|
+
var batchGroup = batchGroups[i];
|
|
4398
|
+
scheduleTask(function () {
|
|
4399
|
+
for (var _i = 0; _i < batchGroup.items.length; _i++) {
|
|
4400
|
+
var originalRow = batchGroup.items[_i];
|
|
4401
|
+
var rowIndex = batchGroup.start + _i;
|
|
4402
|
+
var id = instance.getRowId(originalRow, rowIndex, parent);
|
|
4403
|
+
|
|
4404
|
+
if (!id) {
|
|
4405
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
4406
|
+
throw new Error("getRowId expected an ID, but got " + id);
|
|
4407
|
+
}
|
|
4408
|
+
}
|
|
4409
|
+
|
|
4410
|
+
var values = {};
|
|
4411
|
+
|
|
4412
|
+
for (var _i2 = 0; _i2 < leafColumns.length; _i2++) {
|
|
4413
|
+
var column = leafColumns[_i2];
|
|
4414
|
+
|
|
4415
|
+
if (column && column.accessorFn) {
|
|
4416
|
+
values[column.id] = column.accessorFn(originalRow, rowIndex);
|
|
4417
|
+
}
|
|
4418
|
+
} // Make the row
|
|
4419
|
+
|
|
4420
|
+
|
|
4421
|
+
var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
|
|
4422
|
+
|
|
4423
|
+
if (parent) {
|
|
4424
|
+
parent.subRows.push(row);
|
|
4425
|
+
} else {
|
|
4426
|
+
rowModelRef.current.rows.push(row);
|
|
4427
|
+
} // Keep track of every row in a flat array
|
|
4428
|
+
|
|
4429
|
+
|
|
4430
|
+
rowModelRef.current.flatRows.push(row); // Also keep track of every row by its ID
|
|
4431
|
+
|
|
4432
|
+
rowModelRef.current.rowsById[id] = row; // Get the original subrows
|
|
4433
|
+
|
|
4434
|
+
if (instance.options.getSubRows) {
|
|
4435
|
+
var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
|
|
4436
|
+
|
|
4437
|
+
if (originalSubRows != null && originalSubRows.length) {
|
|
4438
|
+
row.originalSubRows = originalSubRows;
|
|
4439
|
+
row.subRows = [];
|
|
4440
|
+
accessRows(row.originalSubRows, depth + 1, row);
|
|
4441
|
+
}
|
|
4442
|
+
}
|
|
4443
|
+
}
|
|
4444
|
+
});
|
|
4445
|
+
};
|
|
4446
|
+
|
|
4447
|
+
for (var i = 0; i < batchGroups.length; i++) {
|
|
4448
|
+
_loop(i);
|
|
4449
|
+
}
|
|
4450
|
+
};
|
|
4451
|
+
|
|
4452
|
+
accessRows(data);
|
|
4453
|
+
};
|
|
4454
|
+
};
|
|
4455
|
+
}, {
|
|
4456
|
+
key: 'getRowModel',
|
|
4457
|
+
initialSync: opts == null ? void 0 : opts.initialSync,
|
|
4458
|
+
onProgress: function onProgress(progress) {
|
|
4459
|
+
instance.setState(function (old) {
|
|
4460
|
+
return _extends({}, old, {
|
|
4461
|
+
coreProgress: progress
|
|
4462
|
+
});
|
|
4463
|
+
});
|
|
4464
|
+
},
|
|
4465
|
+
debug: function debug() {
|
|
4466
|
+
var _instance$options$deb;
|
|
4467
|
+
|
|
4468
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
4469
|
+
},
|
|
4470
|
+
onChange: function onChange() {
|
|
4471
|
+
instance.queue(function () {
|
|
4472
|
+
instance._notifyFiltersReset();
|
|
4473
|
+
|
|
4474
|
+
instance._notifyRowSelectionReset();
|
|
4475
|
+
});
|
|
4476
|
+
}
|
|
4477
|
+
});
|
|
4478
|
+
};
|
|
4479
|
+
}
|
|
4480
|
+
|
|
4481
|
+
function filterRowModelFromLeafs(rowsToFilter, filterRows, instance) {
|
|
4482
|
+
var newFilteredFlatRows = [];
|
|
4483
|
+
var newFilteredRowsById = {};
|
|
4484
|
+
|
|
4485
|
+
var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
|
|
4486
|
+
if (depth === void 0) {
|
|
4487
|
+
depth = 0;
|
|
4488
|
+
}
|
|
4258
4489
|
|
|
4259
4490
|
rowsToFilter = rowsToFilter.slice(); // Filter from children up first
|
|
4260
4491
|
|
|
@@ -4330,259 +4561,386 @@ function filterRowModelFromRoot(rowsToFilter, filterRows, instance) {
|
|
|
4330
4561
|
};
|
|
4331
4562
|
}
|
|
4332
4563
|
|
|
4333
|
-
function
|
|
4334
|
-
|
|
4335
|
-
|
|
4336
|
-
|
|
4337
|
-
|
|
4338
|
-
|
|
4339
|
-
|
|
4340
|
-
|
|
4341
|
-
|
|
4564
|
+
function getColumnFilteredRowModelSync() {
|
|
4565
|
+
return function (instance) {
|
|
4566
|
+
return memo(function () {
|
|
4567
|
+
return [instance.getState().columnFilters, instance.getCoreRowModel()];
|
|
4568
|
+
}, function (columnFilters, rowModel) {
|
|
4569
|
+
var columnFilteredRowModel = function () {
|
|
4570
|
+
if (!rowModel.rows.length || !columnFilters) {
|
|
4571
|
+
return rowModel;
|
|
4572
|
+
}
|
|
4342
4573
|
|
|
4343
|
-
|
|
4574
|
+
var filterFromLeafRows = instance.options.filterFromLeafRows;
|
|
4344
4575
|
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
|
|
4348
|
-
|
|
4576
|
+
var filterRows = function filterRows(rowsToFilter, depth) {
|
|
4577
|
+
for (var i = 0; i < columnFilters.length; i++) {
|
|
4578
|
+
var _columnFilters$i = columnFilters[i],
|
|
4579
|
+
columnId = _columnFilters$i.id,
|
|
4580
|
+
filterValue = _columnFilters$i.value; // Find the columnFilters column
|
|
4349
4581
|
|
|
4350
|
-
|
|
4351
|
-
}
|
|
4582
|
+
var column = instance.getColumn(columnId);
|
|
4352
4583
|
|
|
4353
|
-
|
|
4354
|
-
|
|
4355
|
-
|
|
4584
|
+
if (!column) {
|
|
4585
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
4586
|
+
console.warn("Table: Could not find a column with id: " + columnId);
|
|
4587
|
+
}
|
|
4356
4588
|
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
};
|
|
4360
|
-
})();
|
|
4361
|
-
}
|
|
4589
|
+
throw new Error();
|
|
4590
|
+
}
|
|
4362
4591
|
|
|
4363
|
-
|
|
4592
|
+
if (depth === 0) {
|
|
4593
|
+
(function () {
|
|
4594
|
+
var preFilteredRows = [].concat(rowsToFilter);
|
|
4364
4595
|
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
|
|
4596
|
+
column.getPreFilteredRows = function () {
|
|
4597
|
+
return preFilteredRows;
|
|
4598
|
+
};
|
|
4599
|
+
})();
|
|
4600
|
+
}
|
|
4369
4601
|
|
|
4370
|
-
|
|
4371
|
-
} // Pass the rows, id, filterValue and column to the filterFn
|
|
4372
|
-
// to get the filtered rows back
|
|
4602
|
+
var filterFn = instance.getColumnFilterFn(column.id);
|
|
4373
4603
|
|
|
4604
|
+
if (!filterFn) {
|
|
4605
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
4606
|
+
console.warn("Could not find a valid 'column.filterType' for column with the ID: " + column.id + ".");
|
|
4607
|
+
}
|
|
4374
4608
|
|
|
4375
|
-
|
|
4376
|
-
|
|
4609
|
+
continue;
|
|
4610
|
+
} // Pass the rows, id, filterValue and column to the filterFn
|
|
4611
|
+
// to get the filtered rows back
|
|
4377
4612
|
|
|
4378
|
-
return rowsToFilter;
|
|
4379
|
-
};
|
|
4380
4613
|
|
|
4381
|
-
|
|
4382
|
-
|
|
4383
|
-
}
|
|
4614
|
+
rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue);
|
|
4615
|
+
}
|
|
4384
4616
|
|
|
4385
|
-
|
|
4386
|
-
}
|
|
4617
|
+
return rowsToFilter;
|
|
4618
|
+
};
|
|
4387
4619
|
|
|
4388
|
-
|
|
4389
|
-
|
|
4390
|
-
|
|
4391
|
-
var filterFn = instance.getGlobalFilterFn();
|
|
4620
|
+
if (filterFromLeafRows) {
|
|
4621
|
+
return filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
|
|
4622
|
+
}
|
|
4392
4623
|
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
|
|
4396
|
-
}
|
|
4624
|
+
return filterRowModelFromRoot(rowModel.rows, filterRows, instance);
|
|
4625
|
+
}(); // Now that each filtered column has it's partially filtered rows,
|
|
4626
|
+
// lets assign the final filtered rows to all of the other columns
|
|
4397
4627
|
|
|
4398
|
-
return rowModel;
|
|
4399
|
-
}
|
|
4400
4628
|
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
});
|
|
4404
|
-
var filterableColumnIds = filterableColumns.map(function (d) {
|
|
4405
|
-
return d.id;
|
|
4406
|
-
});
|
|
4629
|
+
var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
|
|
4630
|
+
var _instance$getState$co;
|
|
4407
4631
|
|
|
4408
|
-
|
|
4409
|
-
|
|
4410
|
-
|
|
4632
|
+
return !((_instance$getState$co = instance.getState().columnFilters) != null && _instance$getState$co.find(function (d) {
|
|
4633
|
+
return d.id === column.id;
|
|
4634
|
+
}));
|
|
4635
|
+
}); // This essentially enables faceted filter options to be built easily
|
|
4636
|
+
// using every column's preFilteredRows value
|
|
4411
4637
|
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4638
|
+
nonFilteredColumns.forEach(function (column) {
|
|
4639
|
+
column.getPreFilteredRows = function () {
|
|
4640
|
+
return columnFilteredRowModel.rows;
|
|
4641
|
+
};
|
|
4642
|
+
});
|
|
4643
|
+
return columnFilteredRowModel;
|
|
4644
|
+
}, {
|
|
4645
|
+
key: 'getColumnFilteredRowModelSync',
|
|
4646
|
+
debug: function debug() {
|
|
4647
|
+
var _instance$options$deb;
|
|
4415
4648
|
|
|
4416
|
-
|
|
4649
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
4650
|
+
},
|
|
4651
|
+
onChange: function onChange() {
|
|
4652
|
+
instance.queue(function () {
|
|
4653
|
+
instance._notifySortingReset();
|
|
4654
|
+
});
|
|
4655
|
+
}
|
|
4656
|
+
});
|
|
4657
|
+
};
|
|
4417
4658
|
}
|
|
4418
4659
|
|
|
4419
|
-
function
|
|
4420
|
-
|
|
4421
|
-
|
|
4660
|
+
function getGlobalFilteredRowModelSync() {
|
|
4661
|
+
return function (instance) {
|
|
4662
|
+
return memo(function () {
|
|
4663
|
+
return [instance.getState().globalFilter, instance.getCoreRowModel()];
|
|
4664
|
+
}, function (globalFilter, rowModel) {
|
|
4665
|
+
var globalFilteredRowModel = function () {
|
|
4666
|
+
if (!rowModel.rows.length || !globalFilter) {
|
|
4667
|
+
return rowModel;
|
|
4668
|
+
}
|
|
4422
4669
|
|
|
4423
|
-
|
|
4424
|
-
|
|
4425
|
-
});
|
|
4426
|
-
var columnInfoById = {};
|
|
4427
|
-
availableSorting.forEach(function (sortEntry) {
|
|
4428
|
-
var column = instance.getColumn(sortEntry.id);
|
|
4429
|
-
columnInfoById[sortEntry.id] = {
|
|
4430
|
-
sortUndefined: column.sortUndefined,
|
|
4431
|
-
invertSorting: column.invertSorting,
|
|
4432
|
-
sortingFn: instance.getColumnSortingFn(sortEntry.id)
|
|
4433
|
-
};
|
|
4434
|
-
});
|
|
4670
|
+
var filterFromLeafRows = instance.options.filterFromLeafRows;
|
|
4671
|
+
var filterFn = instance.getGlobalFilterFn();
|
|
4435
4672
|
|
|
4436
|
-
|
|
4437
|
-
|
|
4438
|
-
|
|
4439
|
-
var sortedData = rows.slice();
|
|
4440
|
-
sortedData.sort(function (rowA, rowB) {
|
|
4441
|
-
for (var i = 0; i < availableSorting.length; i += 1) {
|
|
4442
|
-
var _sortEntry$desc;
|
|
4443
|
-
|
|
4444
|
-
var sortEntry = availableSorting[i];
|
|
4445
|
-
var columnInfo = columnInfoById[sortEntry.id];
|
|
4446
|
-
var isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;
|
|
4447
|
-
|
|
4448
|
-
if (columnInfo.sortUndefined) {
|
|
4449
|
-
var aValue = rowA.values[sortEntry.id];
|
|
4450
|
-
var bValue = rowB.values[sortEntry.id];
|
|
4451
|
-
var aUndefined = typeof aValue === 'undefined';
|
|
4452
|
-
var bUndefined = typeof bValue === 'undefined';
|
|
4453
|
-
|
|
4454
|
-
if (aUndefined || bUndefined) {
|
|
4455
|
-
return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;
|
|
4673
|
+
if (!filterFn) {
|
|
4674
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
4675
|
+
console.warn("Could not find a valid 'globalFilterType'");
|
|
4456
4676
|
}
|
|
4457
|
-
} // This function should always return in ascending order
|
|
4458
4677
|
|
|
4678
|
+
return rowModel;
|
|
4679
|
+
}
|
|
4459
4680
|
|
|
4460
|
-
var
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
|
|
4681
|
+
var filterableColumns = instance.getAllLeafColumns().filter(function (column) {
|
|
4682
|
+
return column.getCanGlobalFilter();
|
|
4683
|
+
});
|
|
4684
|
+
var filterableColumnIds = filterableColumns.map(function (d) {
|
|
4685
|
+
return d.id;
|
|
4686
|
+
});
|
|
4466
4687
|
|
|
4467
|
-
|
|
4468
|
-
|
|
4469
|
-
|
|
4688
|
+
var filterRows = function filterRows(rows) {
|
|
4689
|
+
return filterFn(rows, filterableColumnIds, globalFilter);
|
|
4690
|
+
};
|
|
4470
4691
|
|
|
4471
|
-
|
|
4692
|
+
if (filterFromLeafRows) {
|
|
4693
|
+
filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
|
|
4472
4694
|
}
|
|
4473
|
-
}
|
|
4474
4695
|
|
|
4475
|
-
|
|
4476
|
-
|
|
4696
|
+
return filterRowModelFromRoot(rowModel.rows, filterRows, instance);
|
|
4697
|
+
}(); // Now that each filtered column has it's partially filtered rows,
|
|
4698
|
+
// lets assign the final filtered rows to all of the other columns
|
|
4477
4699
|
|
|
4478
|
-
sortedData.forEach(function (row) {
|
|
4479
|
-
sortedFlatRows.push(row);
|
|
4480
4700
|
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
}
|
|
4701
|
+
var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
|
|
4702
|
+
var _instance$getState$co;
|
|
4484
4703
|
|
|
4485
|
-
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
4704
|
+
return !((_instance$getState$co = instance.getState().columnFilters) != null && _instance$getState$co.find(function (d) {
|
|
4705
|
+
return d.id === column.id;
|
|
4706
|
+
}));
|
|
4707
|
+
}); // This essentially enables faceted filter options to be built easily
|
|
4708
|
+
// using every column's preFilteredRows value
|
|
4489
4709
|
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
|
|
4493
|
-
|
|
4710
|
+
nonFilteredColumns.forEach(function (column) {
|
|
4711
|
+
column.getPreFilteredRows = function () {
|
|
4712
|
+
return globalFilteredRowModel.rows;
|
|
4713
|
+
};
|
|
4714
|
+
});
|
|
4715
|
+
return globalFilteredRowModel;
|
|
4716
|
+
}, {
|
|
4717
|
+
key: 'getGlobalFilteredRowModelSync',
|
|
4718
|
+
debug: function debug() {
|
|
4719
|
+
var _instance$options$deb;
|
|
4720
|
+
|
|
4721
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
4722
|
+
},
|
|
4723
|
+
onChange: function onChange() {
|
|
4724
|
+
instance.queue(function () {
|
|
4725
|
+
instance._notifySortingReset();
|
|
4726
|
+
});
|
|
4727
|
+
}
|
|
4728
|
+
});
|
|
4494
4729
|
};
|
|
4495
4730
|
}
|
|
4496
4731
|
|
|
4497
|
-
function
|
|
4498
|
-
|
|
4732
|
+
function getSortedRowModelSync() {
|
|
4733
|
+
return function (instance) {
|
|
4734
|
+
return memo(function () {
|
|
4735
|
+
return [instance.getState().sorting, instance.getGlobalFilteredRowModel()];
|
|
4736
|
+
}, function (sorting, rowModel) {
|
|
4737
|
+
if (!rowModel.rows.length || !(sorting != null && sorting.length)) {
|
|
4738
|
+
return rowModel;
|
|
4739
|
+
}
|
|
4740
|
+
|
|
4741
|
+
var sortingState = instance.getState().sorting;
|
|
4742
|
+
var sortedFlatRows = []; // Filter out sortings that correspond to non existing columns
|
|
4499
4743
|
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4744
|
+
var availableSorting = sortingState.filter(function (sort) {
|
|
4745
|
+
return instance.getColumnCanSort(sort.id);
|
|
4746
|
+
});
|
|
4747
|
+
var columnInfoById = {};
|
|
4748
|
+
availableSorting.forEach(function (sortEntry) {
|
|
4749
|
+
var column = instance.getColumn(sortEntry.id);
|
|
4750
|
+
columnInfoById[sortEntry.id] = {
|
|
4751
|
+
sortUndefined: column.sortUndefined,
|
|
4752
|
+
invertSorting: column.invertSorting,
|
|
4753
|
+
sortingFn: instance.getColumnSortingFn(sortEntry.id)
|
|
4754
|
+
};
|
|
4755
|
+
});
|
|
4504
4756
|
|
|
4505
|
-
|
|
4506
|
-
|
|
4507
|
-
|
|
4508
|
-
|
|
4509
|
-
|
|
4510
|
-
|
|
4511
|
-
|
|
4512
|
-
|
|
4757
|
+
var sortData = function sortData(rows) {
|
|
4758
|
+
// This will also perform a stable sorting using the row index
|
|
4759
|
+
// if needed.
|
|
4760
|
+
var sortedData = rows.slice();
|
|
4761
|
+
sortedData.sort(function (rowA, rowB) {
|
|
4762
|
+
for (var i = 0; i < availableSorting.length; i += 1) {
|
|
4763
|
+
var _sortEntry$desc;
|
|
4764
|
+
|
|
4765
|
+
var sortEntry = availableSorting[i];
|
|
4766
|
+
var columnInfo = columnInfoById[sortEntry.id];
|
|
4767
|
+
var isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;
|
|
4768
|
+
|
|
4769
|
+
if (columnInfo.sortUndefined) {
|
|
4770
|
+
var aValue = rowA.values[sortEntry.id];
|
|
4771
|
+
var bValue = rowB.values[sortEntry.id];
|
|
4772
|
+
var aUndefined = typeof aValue === 'undefined';
|
|
4773
|
+
var bUndefined = typeof bValue === 'undefined';
|
|
4774
|
+
|
|
4775
|
+
if (aUndefined || bUndefined) {
|
|
4776
|
+
return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;
|
|
4777
|
+
}
|
|
4778
|
+
} // This function should always return in ascending order
|
|
4513
4779
|
|
|
4514
4780
|
|
|
4515
|
-
|
|
4781
|
+
var sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);
|
|
4516
4782
|
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
|
|
4520
|
-
|
|
4783
|
+
if (sortInt !== 0) {
|
|
4784
|
+
if (isDesc) {
|
|
4785
|
+
sortInt *= -1;
|
|
4786
|
+
}
|
|
4521
4787
|
|
|
4522
|
-
|
|
4523
|
-
|
|
4788
|
+
if (columnInfo.invertSorting) {
|
|
4789
|
+
sortInt *= -1;
|
|
4790
|
+
}
|
|
4791
|
+
|
|
4792
|
+
return sortInt;
|
|
4524
4793
|
}
|
|
4794
|
+
}
|
|
4525
4795
|
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4796
|
+
return rowA.index - rowB.index;
|
|
4797
|
+
}); // If there are sub-rows, sort them
|
|
4798
|
+
|
|
4799
|
+
sortedData.forEach(function (row) {
|
|
4800
|
+
sortedFlatRows.push(row);
|
|
4801
|
+
|
|
4802
|
+
if (!row.subRows || row.subRows.length <= 1) {
|
|
4803
|
+
return;
|
|
4804
|
+
}
|
|
4805
|
+
|
|
4806
|
+
row.subRows = sortData(row.subRows);
|
|
4532
4807
|
});
|
|
4533
|
-
|
|
4534
|
-
|
|
4535
|
-
|
|
4808
|
+
return sortedData;
|
|
4809
|
+
};
|
|
4810
|
+
|
|
4811
|
+
return {
|
|
4812
|
+
rows: sortData(rowModel.rows),
|
|
4813
|
+
flatRows: sortedFlatRows,
|
|
4814
|
+
rowsById: rowModel.rowsById
|
|
4815
|
+
};
|
|
4816
|
+
}, {
|
|
4817
|
+
key: 'getSortedRowModel',
|
|
4818
|
+
debug: function debug() {
|
|
4819
|
+
var _instance$options$deb;
|
|
4820
|
+
|
|
4821
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
4822
|
+
},
|
|
4823
|
+
onChange: function onChange() {
|
|
4824
|
+
instance.queue(function () {
|
|
4825
|
+
instance._notifyGroupingReset();
|
|
4536
4826
|
});
|
|
4537
|
-
throw new Error(process.env.NODE_ENV !== 'production' ? "Table: Invalid column.aggregateType option for column listed above" : '');
|
|
4538
|
-
} else {
|
|
4539
|
-
values[column.id] = null;
|
|
4540
4827
|
}
|
|
4541
4828
|
});
|
|
4542
|
-
return values;
|
|
4543
4829
|
};
|
|
4830
|
+
}
|
|
4544
4831
|
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4832
|
+
function getGroupedRowModelSync() {
|
|
4833
|
+
return function (instance) {
|
|
4834
|
+
return memo(function () {
|
|
4835
|
+
return [instance.getState().grouping, instance.getSortedRowModel()];
|
|
4836
|
+
}, function (grouping, rowModel) {
|
|
4837
|
+
if (!rowModel.rows.length || !grouping.length) {
|
|
4838
|
+
return rowModel;
|
|
4839
|
+
} // Filter the grouping list down to columns that exist
|
|
4551
4840
|
|
|
4552
|
-
var groupUpRecursively = function groupUpRecursively(rows, depth, parentId) {
|
|
4553
|
-
if (depth === void 0) {
|
|
4554
|
-
depth = 0;
|
|
4555
|
-
}
|
|
4556
4841
|
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4842
|
+
var existingGrouping = grouping.filter(function (columnId) {
|
|
4843
|
+
return instance.getColumn(columnId);
|
|
4844
|
+
}); // Find the columns that can or are aggregating
|
|
4845
|
+
// Uses each column to aggregate rows into a single value
|
|
4561
4846
|
|
|
4562
|
-
|
|
4847
|
+
var aggregateRowsToValues = function aggregateRowsToValues(leafRows, groupedRows, depth) {
|
|
4848
|
+
var values = {};
|
|
4849
|
+
instance.getAllLeafColumns().forEach(function (column) {
|
|
4850
|
+
// Don't aggregate columns that are in the grouping
|
|
4851
|
+
if (existingGrouping.includes(column.id)) {
|
|
4852
|
+
values[column.id] = groupedRows[0] ? groupedRows[0].values[column.id] : null;
|
|
4853
|
+
return;
|
|
4854
|
+
} // Aggregate the values
|
|
4563
4855
|
|
|
4564
|
-
var rowGroupsMap = groupBy(rows, columnId); // Peform aggregations for each group
|
|
4565
4856
|
|
|
4566
|
-
|
|
4567
|
-
var groupingValue = _ref[0],
|
|
4568
|
-
groupedRows = _ref[1];
|
|
4569
|
-
var id = columnId + ":" + groupingValue;
|
|
4570
|
-
id = parentId ? parentId + ">" + id : id; // First, Recurse to group sub rows before aggregation
|
|
4857
|
+
var aggregateFn = instance.getColumnAggregationFn(column.id);
|
|
4571
4858
|
|
|
4572
|
-
|
|
4859
|
+
if (aggregateFn) {
|
|
4860
|
+
values[column.id] = aggregateFn(function () {
|
|
4861
|
+
return leafRows.map(function (row) {
|
|
4862
|
+
var columnValue = row.values[column.id];
|
|
4573
4863
|
|
|
4574
|
-
|
|
4575
|
-
|
|
4576
|
-
|
|
4577
|
-
|
|
4578
|
-
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
|
|
4583
|
-
|
|
4584
|
-
|
|
4585
|
-
|
|
4864
|
+
if (!depth && column.aggregateValue) {
|
|
4865
|
+
columnValue = column.aggregateValue(columnValue);
|
|
4866
|
+
}
|
|
4867
|
+
|
|
4868
|
+
return columnValue;
|
|
4869
|
+
});
|
|
4870
|
+
}, function () {
|
|
4871
|
+
return groupedRows.map(function (row) {
|
|
4872
|
+
return row.values[column.id];
|
|
4873
|
+
});
|
|
4874
|
+
});
|
|
4875
|
+
} else if (column.aggregationType) {
|
|
4876
|
+
console.info({
|
|
4877
|
+
column: column
|
|
4878
|
+
});
|
|
4879
|
+
throw new Error(process.env.NODE_ENV !== 'production' ? "Table: Invalid column.aggregateType option for column listed above" : '');
|
|
4880
|
+
} else {
|
|
4881
|
+
values[column.id] = null;
|
|
4882
|
+
}
|
|
4883
|
+
});
|
|
4884
|
+
return values;
|
|
4885
|
+
};
|
|
4886
|
+
|
|
4887
|
+
var groupedFlatRows = [];
|
|
4888
|
+
var groupedRowsById = {}; // const onlyGroupedFlatRows: Row[] = [];
|
|
4889
|
+
// const onlyGroupedRowsById: Record<RowId, Row> = {};
|
|
4890
|
+
// const nonGroupedFlatRows: Row[] = [];
|
|
4891
|
+
// const nonGroupedRowsById: Record<RowId, Row> = {};
|
|
4892
|
+
// Recursively group the data
|
|
4893
|
+
|
|
4894
|
+
var groupUpRecursively = function groupUpRecursively(rows, depth, parentId) {
|
|
4895
|
+
if (depth === void 0) {
|
|
4896
|
+
depth = 0;
|
|
4897
|
+
}
|
|
4898
|
+
|
|
4899
|
+
// This is the last level, just return the rows
|
|
4900
|
+
if (depth === existingGrouping.length) {
|
|
4901
|
+
return rows;
|
|
4902
|
+
}
|
|
4903
|
+
|
|
4904
|
+
var columnId = existingGrouping[depth]; // Group the rows together for this level
|
|
4905
|
+
|
|
4906
|
+
var rowGroupsMap = groupBy(rows, columnId); // Peform aggregations for each group
|
|
4907
|
+
|
|
4908
|
+
var aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(function (_ref, index) {
|
|
4909
|
+
var groupingValue = _ref[0],
|
|
4910
|
+
groupedRows = _ref[1];
|
|
4911
|
+
var id = columnId + ":" + groupingValue;
|
|
4912
|
+
id = parentId ? parentId + ">" + id : id; // First, Recurse to group sub rows before aggregation
|
|
4913
|
+
|
|
4914
|
+
var subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group
|
|
4915
|
+
|
|
4916
|
+
var leafRows = depth ? flattenBy(groupedRows, function (row) {
|
|
4917
|
+
return row.subRows;
|
|
4918
|
+
}) : groupedRows;
|
|
4919
|
+
var values = aggregateRowsToValues(leafRows, groupedRows, depth);
|
|
4920
|
+
var row = instance.createRow(id, undefined, index, depth, values);
|
|
4921
|
+
Object.assign(row, {
|
|
4922
|
+
groupingColumnId: columnId,
|
|
4923
|
+
groupingValue: groupingValue,
|
|
4924
|
+
subRows: subRows,
|
|
4925
|
+
leafRows: leafRows
|
|
4926
|
+
});
|
|
4927
|
+
subRows.forEach(function (subRow) {
|
|
4928
|
+
groupedFlatRows.push(subRow);
|
|
4929
|
+
groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {
|
|
4930
|
+
// onlyGroupedFlatRows.push(subRow);
|
|
4931
|
+
// onlyGroupedRowsById[subRow.id] = subRow;
|
|
4932
|
+
// } else {
|
|
4933
|
+
// nonGroupedFlatRows.push(subRow);
|
|
4934
|
+
// nonGroupedRowsById[subRow.id] = subRow;
|
|
4935
|
+
// }
|
|
4936
|
+
});
|
|
4937
|
+
return row;
|
|
4938
|
+
});
|
|
4939
|
+
return aggregatedGroupedRows;
|
|
4940
|
+
};
|
|
4941
|
+
|
|
4942
|
+
var groupedRows = groupUpRecursively(rowModel.rows, 0, '');
|
|
4943
|
+
groupedRows.forEach(function (subRow) {
|
|
4586
4944
|
groupedFlatRows.push(subRow);
|
|
4587
4945
|
groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {
|
|
4588
4946
|
// onlyGroupedFlatRows.push(subRow);
|
|
@@ -4592,26 +4950,24 @@ function groupRowsFn(instance, sortedRowModel) {
|
|
|
4592
4950
|
// nonGroupedRowsById[subRow.id] = subRow;
|
|
4593
4951
|
// }
|
|
4594
4952
|
});
|
|
4595
|
-
return
|
|
4596
|
-
|
|
4597
|
-
|
|
4598
|
-
|
|
4953
|
+
return {
|
|
4954
|
+
rows: groupedRows,
|
|
4955
|
+
flatRows: groupedFlatRows,
|
|
4956
|
+
rowsById: groupedRowsById
|
|
4957
|
+
};
|
|
4958
|
+
}, {
|
|
4959
|
+
key: 'getGroupedRowModel',
|
|
4960
|
+
debug: function debug() {
|
|
4961
|
+
var _instance$options$deb;
|
|
4599
4962
|
|
|
4600
|
-
|
|
4601
|
-
|
|
4602
|
-
|
|
4603
|
-
|
|
4604
|
-
|
|
4605
|
-
|
|
4606
|
-
|
|
4607
|
-
|
|
4608
|
-
// nonGroupedRowsById[subRow.id] = subRow;
|
|
4609
|
-
// }
|
|
4610
|
-
});
|
|
4611
|
-
return {
|
|
4612
|
-
rows: groupedRows,
|
|
4613
|
-
flatRows: groupedFlatRows,
|
|
4614
|
-
rowsById: groupedRowsById
|
|
4963
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
4964
|
+
},
|
|
4965
|
+
onChange: function onChange() {
|
|
4966
|
+
instance.queue(function () {
|
|
4967
|
+
instance._notifyExpandedReset();
|
|
4968
|
+
});
|
|
4969
|
+
}
|
|
4970
|
+
});
|
|
4615
4971
|
};
|
|
4616
4972
|
}
|
|
4617
4973
|
|
|
@@ -4631,7 +4987,28 @@ function groupBy(rows, columnId) {
|
|
|
4631
4987
|
}, groupMap);
|
|
4632
4988
|
}
|
|
4633
4989
|
|
|
4634
|
-
function
|
|
4990
|
+
function getExpandedRowModel() {
|
|
4991
|
+
return function (instance) {
|
|
4992
|
+
return memo(function () {
|
|
4993
|
+
return [instance.getState().expanded, instance.getGroupedRowModel(), instance.options.paginateExpandedRows];
|
|
4994
|
+
}, function (expanded, rowModel, paginateExpandedRows) {
|
|
4995
|
+
if (!rowModel.rows.length || // Do not expand if rows are not included in pagination
|
|
4996
|
+
!paginateExpandedRows || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {
|
|
4997
|
+
return rowModel;
|
|
4998
|
+
}
|
|
4999
|
+
|
|
5000
|
+
return expandRows(rowModel, instance);
|
|
5001
|
+
}, {
|
|
5002
|
+
key: 'getExpandedRowModel',
|
|
5003
|
+
debug: function debug() {
|
|
5004
|
+
var _instance$options$deb;
|
|
5005
|
+
|
|
5006
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
5007
|
+
}
|
|
5008
|
+
});
|
|
5009
|
+
};
|
|
5010
|
+
}
|
|
5011
|
+
function expandRows(rowModel, instance) {
|
|
4635
5012
|
var expandedRows = [];
|
|
4636
5013
|
|
|
4637
5014
|
var handleRow = function handleRow(row) {
|
|
@@ -4644,39 +5021,55 @@ function expandRowsFn(instance, sortedRowModel) {
|
|
|
4644
5021
|
}
|
|
4645
5022
|
};
|
|
4646
5023
|
|
|
4647
|
-
|
|
5024
|
+
rowModel.rows.forEach(handleRow);
|
|
4648
5025
|
return {
|
|
4649
5026
|
rows: expandedRows,
|
|
4650
|
-
flatRows:
|
|
4651
|
-
rowsById:
|
|
5027
|
+
flatRows: rowModel.flatRows,
|
|
5028
|
+
rowsById: rowModel.rowsById
|
|
4652
5029
|
};
|
|
4653
5030
|
}
|
|
4654
5031
|
|
|
4655
|
-
function
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
|
|
4659
|
-
|
|
4660
|
-
|
|
4661
|
-
|
|
4662
|
-
|
|
4663
|
-
var pageEnd = pageStart + pageSize;
|
|
4664
|
-
rows = rows.slice(pageStart, pageEnd);
|
|
4665
|
-
|
|
4666
|
-
if (!instance.options.paginateExpandedRows) {
|
|
4667
|
-
return expandRowsFn(instance, {
|
|
4668
|
-
rows: rows,
|
|
4669
|
-
flatRows: flatRows,
|
|
4670
|
-
rowsById: rowsById
|
|
4671
|
-
});
|
|
4672
|
-
}
|
|
5032
|
+
function getPaginationRowModel(opts) {
|
|
5033
|
+
return function (instance) {
|
|
5034
|
+
return memo(function () {
|
|
5035
|
+
return [instance.getState().pagination, instance.getExpandedRowModel()];
|
|
5036
|
+
}, function (pagination, rowModel) {
|
|
5037
|
+
if (!rowModel.rows.length) {
|
|
5038
|
+
return rowModel;
|
|
5039
|
+
}
|
|
4673
5040
|
|
|
4674
|
-
|
|
4675
|
-
|
|
4676
|
-
|
|
4677
|
-
|
|
5041
|
+
var pageSize = pagination.pageSize,
|
|
5042
|
+
pageIndex = pagination.pageIndex;
|
|
5043
|
+
var rows = rowModel.rows,
|
|
5044
|
+
flatRows = rowModel.flatRows,
|
|
5045
|
+
rowsById = rowModel.rowsById;
|
|
5046
|
+
var pageStart = pageSize * pageIndex;
|
|
5047
|
+
var pageEnd = pageStart + pageSize;
|
|
5048
|
+
rows = rows.slice(pageStart, pageEnd);
|
|
5049
|
+
|
|
5050
|
+
if (!instance.options.paginateExpandedRows) {
|
|
5051
|
+
return expandRows({
|
|
5052
|
+
rows: rows,
|
|
5053
|
+
flatRows: flatRows,
|
|
5054
|
+
rowsById: rowsById
|
|
5055
|
+
}, instance);
|
|
5056
|
+
}
|
|
5057
|
+
|
|
5058
|
+
return {
|
|
5059
|
+
rows: rows,
|
|
5060
|
+
flatRows: flatRows,
|
|
5061
|
+
rowsById: rowsById
|
|
5062
|
+
};
|
|
5063
|
+
}, {
|
|
5064
|
+
key: 'getPaginationRowModel',
|
|
5065
|
+
debug: function debug() {
|
|
5066
|
+
var _instance$options$deb;
|
|
5067
|
+
|
|
5068
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
5069
|
+
}
|
|
5070
|
+
});
|
|
4678
5071
|
};
|
|
4679
5072
|
}
|
|
4680
5073
|
|
|
4681
|
-
export { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, RowSelection, Sorting, Visibility, buildHeaderGroups,
|
|
5074
|
+
export { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, RowSelection, Sorting, Visibility, buildHeaderGroups, createTableInstance, defaultColumnSizing, expandRows, flattenBy, functionalUpdate, getBatchGroups, getColumnFilteredRowModelSync, getCoreRowModelAsync, getCoreRowModelSync, getExpandedRowModel, getGlobalFilteredRowModelSync, getGroupedRowModelSync, getPaginationRowModel, getSortedRowModelSync, incrementalMemo, init, isFunction, isRowSelected, makeStateUpdater, memo, noop, passiveEventSupported, propGetter, selectRowsFn, shouldAutoRemoveFilter };
|
|
4682
5075
|
//# sourceMappingURL=index.js.map
|