@tanstack/table-core 8.0.0-alpha.22 → 8.0.0-alpha.23
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 +21 -19
- package/build/cjs/aggregationTypes.js.map +1 -1
- package/build/cjs/core.js +8 -8
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/features/Expanding.js +1 -8
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +1 -1
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/RowSelection.js +3 -3
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/utils/columnFilterRowsFn.js +20 -78
- package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +100 -0
- package/build/cjs/utils/filterRowsUtils.js.map +1 -0
- package/build/cjs/utils/globalFilterRowsFn.js +10 -62
- package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/groupRowsFn.js +15 -15
- package/build/cjs/utils/groupRowsFn.js.map +1 -1
- package/build/cjs/utils/sortRowsFn.js +1 -1
- package/build/cjs/utils/sortRowsFn.js.map +1 -1
- package/build/esm/index.js +156 -192
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +301 -268
- package/build/types/aggregationTypes.d.ts +9 -9
- package/build/types/core.d.ts +1 -1
- package/build/types/features/Filters.d.ts +1 -1
- package/build/types/features/Grouping.d.ts +1 -1
- package/build/types/utils/filterRowsUtils.d.ts +3 -0
- package/build/types/utils/sortRowsQuicksortFn.d.ts +11 -0
- package/build/umd/index.development.js +156 -192
- 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 +1 -1
- package/src/aggregationTypes.ts +23 -19
- package/src/core.tsx +3 -5
- package/src/features/Expanding.ts +2 -10
- package/src/features/Filters.ts +2 -2
- package/src/features/Grouping.ts +2 -2
- package/src/features/RowSelection.ts +1 -3
- package/src/utils/columnFilterRowsFn.ts +12 -73
- package/src/utils/filterRowsUtils.ts +107 -0
- package/src/utils/globalFilterRowsFn.ts +10 -66
- package/src/utils/groupRowsFn.ts +14 -16
- package/src/utils/sortRowsFn.ts +6 -8
- package/src/utils/sortRowsQuicksortFn.ts +174 -0
package/build/esm/index.js
CHANGED
|
@@ -382,18 +382,18 @@ var aggregationTypes = {
|
|
|
382
382
|
count: count
|
|
383
383
|
};
|
|
384
384
|
|
|
385
|
-
function sum(
|
|
385
|
+
function sum(_getLeafValues, getChildValues) {
|
|
386
386
|
// It's faster to just add the aggregations together instead of
|
|
387
387
|
// process leaf nodes individually
|
|
388
|
-
return
|
|
388
|
+
return getChildValues().reduce(function (sum, next) {
|
|
389
389
|
return sum + (typeof next === 'number' ? next : 0);
|
|
390
390
|
}, 0);
|
|
391
391
|
}
|
|
392
392
|
|
|
393
|
-
function min(
|
|
393
|
+
function min(_getLeafValues, getChildValues) {
|
|
394
394
|
var min;
|
|
395
395
|
|
|
396
|
-
for (var _iterator = _createForOfIteratorHelperLoose(
|
|
396
|
+
for (var _iterator = _createForOfIteratorHelperLoose(getChildValues()), _step; !(_step = _iterator()).done;) {
|
|
397
397
|
var value = _step.value;
|
|
398
398
|
|
|
399
399
|
if (value != null && (min > value || min === undefined && value >= value)) {
|
|
@@ -404,10 +404,10 @@ function min(_leafValues, childValues) {
|
|
|
404
404
|
return min;
|
|
405
405
|
}
|
|
406
406
|
|
|
407
|
-
function max(
|
|
407
|
+
function max(_getLeafValues, getChildValues) {
|
|
408
408
|
var max;
|
|
409
409
|
|
|
410
|
-
for (var _iterator2 = _createForOfIteratorHelperLoose(
|
|
410
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(getChildValues()), _step2; !(_step2 = _iterator2()).done;) {
|
|
411
411
|
var value = _step2.value;
|
|
412
412
|
|
|
413
413
|
if (value != null && (max < value || max === undefined && value >= value)) {
|
|
@@ -418,11 +418,11 @@ function max(_leafValues, childValues) {
|
|
|
418
418
|
return max;
|
|
419
419
|
}
|
|
420
420
|
|
|
421
|
-
function extent(
|
|
421
|
+
function extent(_getLeafValues, getChildValues) {
|
|
422
422
|
var min;
|
|
423
423
|
var max;
|
|
424
424
|
|
|
425
|
-
for (var _iterator3 = _createForOfIteratorHelperLoose(
|
|
425
|
+
for (var _iterator3 = _createForOfIteratorHelperLoose(getChildValues()), _step3; !(_step3 = _iterator3()).done;) {
|
|
426
426
|
var value = _step3.value;
|
|
427
427
|
|
|
428
428
|
if (value != null) {
|
|
@@ -438,11 +438,11 @@ function extent(_leafValues, childValues) {
|
|
|
438
438
|
return [min, max];
|
|
439
439
|
}
|
|
440
440
|
|
|
441
|
-
function mean(
|
|
441
|
+
function mean(getLeafValues) {
|
|
442
442
|
var count = 0;
|
|
443
443
|
var sum = 0;
|
|
444
444
|
|
|
445
|
-
for (var _iterator4 = _createForOfIteratorHelperLoose(
|
|
445
|
+
for (var _iterator4 = _createForOfIteratorHelperLoose(getLeafValues()), _step4; !(_step4 = _iterator4()).done;) {
|
|
446
446
|
var value = _step4.value;
|
|
447
447
|
|
|
448
448
|
if (value != null && (value = +value) >= value) {
|
|
@@ -454,14 +454,16 @@ function mean(leafValues) {
|
|
|
454
454
|
return;
|
|
455
455
|
}
|
|
456
456
|
|
|
457
|
-
function median(
|
|
458
|
-
|
|
457
|
+
function median(getLeafValues) {
|
|
458
|
+
var leafValues = getLeafValues();
|
|
459
|
+
|
|
460
|
+
if (!leafValues.length) {
|
|
459
461
|
return;
|
|
460
462
|
}
|
|
461
463
|
|
|
462
464
|
var min = 0;
|
|
463
465
|
var max = 0;
|
|
464
|
-
|
|
466
|
+
leafValues.forEach(function (value) {
|
|
465
467
|
if (typeof value === 'number') {
|
|
466
468
|
min = Math.min(min, value);
|
|
467
469
|
max = Math.max(max, value);
|
|
@@ -470,16 +472,16 @@ function median(values) {
|
|
|
470
472
|
return (min + max) / 2;
|
|
471
473
|
}
|
|
472
474
|
|
|
473
|
-
function unique(
|
|
474
|
-
return Array.from(new Set(
|
|
475
|
+
function unique(getLeafValues) {
|
|
476
|
+
return Array.from(new Set(getLeafValues()).values());
|
|
475
477
|
}
|
|
476
478
|
|
|
477
|
-
function uniqueCount(
|
|
478
|
-
return new Set(
|
|
479
|
+
function uniqueCount(getLeafValues) {
|
|
480
|
+
return new Set(getLeafValues()).size;
|
|
479
481
|
}
|
|
480
482
|
|
|
481
|
-
function count(
|
|
482
|
-
return
|
|
483
|
+
function count(getLeafValues) {
|
|
484
|
+
return getLeafValues().length;
|
|
483
485
|
}
|
|
484
486
|
|
|
485
487
|
//
|
|
@@ -1983,7 +1985,7 @@ var Filters = {
|
|
|
1983
1985
|
onColumnFiltersChange: makeStateUpdater('columnFilters', instance),
|
|
1984
1986
|
onGlobalFilterChange: makeStateUpdater('globalFilter', instance),
|
|
1985
1987
|
autoResetColumnFilters: true,
|
|
1986
|
-
|
|
1988
|
+
filterFromLeafRows: true,
|
|
1987
1989
|
autoResetGlobalFilter: true,
|
|
1988
1990
|
globalFilterType: 'auto',
|
|
1989
1991
|
getColumnCanGlobalFilterFn: function getColumnCanGlobalFilterFn(column) {
|
|
@@ -2970,14 +2972,7 @@ var Expanding = {
|
|
|
2970
2972
|
return row.subRows && !!row.subRows.length;
|
|
2971
2973
|
},
|
|
2972
2974
|
getToggleExpandedProps: function getToggleExpandedProps(userProps) {
|
|
2973
|
-
|
|
2974
|
-
title: 'Toggle Row Expanded',
|
|
2975
|
-
onClick: function onClick(e) {
|
|
2976
|
-
e.stopPropagation();
|
|
2977
|
-
instance.toggleRowExpanded(row.id);
|
|
2978
|
-
}
|
|
2979
|
-
};
|
|
2980
|
-
return propGetter(initialProps, userProps);
|
|
2975
|
+
return instance.getToggleExpandedProps(row.id, userProps);
|
|
2981
2976
|
}
|
|
2982
2977
|
};
|
|
2983
2978
|
}
|
|
@@ -3204,10 +3199,10 @@ var RowSelection = {
|
|
|
3204
3199
|
},
|
|
3205
3200
|
toggleAllRowsSelected: function toggleAllRowsSelected(value) {
|
|
3206
3201
|
instance.setRowSelection(function (old) {
|
|
3207
|
-
value = typeof value !== 'undefined' ? value : !instance.getIsAllRowsSelected();
|
|
3208
|
-
|
|
3202
|
+
value = typeof value !== 'undefined' ? value : !instance.getIsAllRowsSelected();
|
|
3203
|
+
|
|
3204
|
+
var rowSelection = _extends({}, old);
|
|
3209
3205
|
|
|
3210
|
-
var rowSelection = Object.assign({}, old);
|
|
3211
3206
|
var preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows; // We don't use `mutateRowIsSelected` here for performance reasons.
|
|
3212
3207
|
// All of the rows are flat already, so it wouldn't be worth it
|
|
3213
3208
|
|
|
@@ -3951,7 +3946,11 @@ function createTableInstance(options) {
|
|
|
3951
3946
|
depth: depth,
|
|
3952
3947
|
values: values,
|
|
3953
3948
|
subRows: [],
|
|
3954
|
-
|
|
3949
|
+
getLeafRows: function getLeafRows() {
|
|
3950
|
+
return flattenBy(row.subRows, function (d) {
|
|
3951
|
+
return d.subRows;
|
|
3952
|
+
});
|
|
3953
|
+
},
|
|
3955
3954
|
getRowProps: function getRowProps(userProps) {
|
|
3956
3955
|
return instance.getRowProps(row.id, userProps);
|
|
3957
3956
|
},
|
|
@@ -4045,13 +4044,9 @@ function createTableInstance(options) {
|
|
|
4045
4044
|
|
|
4046
4045
|
for (var _i = 0; _i < row.originalSubRows.length; _i++) {
|
|
4047
4046
|
accessRow(row.originalSubRows[_i], _i, depth + 1, subRows, row);
|
|
4048
|
-
}
|
|
4049
|
-
|
|
4047
|
+
}
|
|
4050
4048
|
|
|
4051
4049
|
row.subRows = subRows;
|
|
4052
|
-
row.leafRows = flattenBy(subRows, function (d) {
|
|
4053
|
-
return d.leafRows;
|
|
4054
|
-
});
|
|
4055
4050
|
}
|
|
4056
4051
|
}
|
|
4057
4052
|
};
|
|
@@ -4073,9 +4068,9 @@ function createTableInstance(options) {
|
|
|
4073
4068
|
return (_instance$options$deb10 = instance.options.debugAll) != null ? _instance$options$deb10 : instance.options.debugTable;
|
|
4074
4069
|
},
|
|
4075
4070
|
onChange: function onChange() {
|
|
4076
|
-
instance._notifyRowSelectionReset();
|
|
4077
|
-
|
|
4078
4071
|
instance._notifyFiltersReset();
|
|
4072
|
+
|
|
4073
|
+
instance._notifyRowSelectionReset();
|
|
4079
4074
|
}
|
|
4080
4075
|
}),
|
|
4081
4076
|
// The final calls start at the bottom of the model,
|
|
@@ -4243,126 +4238,147 @@ function _createTable(_, __, __options) {
|
|
|
4243
4238
|
};
|
|
4244
4239
|
}
|
|
4245
4240
|
|
|
4246
|
-
function
|
|
4247
|
-
var columnFilters = instance.getState().columnFilters;
|
|
4241
|
+
function filterRowModelFromLeafs(rowsToFilter, filterRows, instance) {
|
|
4248
4242
|
var newFilteredFlatRows = [];
|
|
4249
4243
|
var newFilteredRowsById = {};
|
|
4250
|
-
var filterFromChildrenUp = instance.options.filterFromChildrenUp;
|
|
4251
4244
|
|
|
4252
|
-
var
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
|
|
4256
|
-
// Find the columnFilters column
|
|
4257
|
-
var column = instance.getColumn(columnId);
|
|
4245
|
+
var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
|
|
4246
|
+
if (depth === void 0) {
|
|
4247
|
+
depth = 0;
|
|
4248
|
+
}
|
|
4258
4249
|
|
|
4259
|
-
|
|
4260
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
4261
|
-
console.warn("Table: Could not find a column with id: " + columnId);
|
|
4262
|
-
}
|
|
4250
|
+
rowsToFilter = rowsToFilter.slice(); // Filter from children up first
|
|
4263
4251
|
|
|
4264
|
-
|
|
4265
|
-
|
|
4252
|
+
for (var i = 0; i < rowsToFilter.length; i++) {
|
|
4253
|
+
var _row$subRows;
|
|
4266
4254
|
|
|
4267
|
-
|
|
4268
|
-
var preFilteredRows = [].concat(rowsToFilter);
|
|
4255
|
+
var row = rowsToFilter[i];
|
|
4269
4256
|
|
|
4270
|
-
|
|
4271
|
-
|
|
4272
|
-
};
|
|
4257
|
+
if (!((_row$subRows = row.subRows) != null && _row$subRows.length)) {
|
|
4258
|
+
continue;
|
|
4273
4259
|
}
|
|
4274
4260
|
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
if (!filterFn) {
|
|
4278
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
4279
|
-
console.warn("Could not find a valid 'column.filterType' for column with the ID: " + column.id + ".");
|
|
4280
|
-
}
|
|
4261
|
+
rowsToFilter[i] = instance.createRow(row.id, row.original, row.index, row.depth, row.values);
|
|
4262
|
+
rowsToFilter[i].subRows = recurseFilterRows(row.subRows, depth + 1);
|
|
4281
4263
|
|
|
4282
|
-
|
|
4283
|
-
|
|
4284
|
-
|
|
4264
|
+
if (!rowsToFilter[i].subRows.length) {
|
|
4265
|
+
rowsToFilter.splice(i, 1);
|
|
4266
|
+
i--;
|
|
4267
|
+
}
|
|
4268
|
+
}
|
|
4285
4269
|
|
|
4270
|
+
rowsToFilter = filterRows(rowsToFilter, depth); // Apply the filter to any subRows
|
|
4286
4271
|
|
|
4287
|
-
|
|
4272
|
+
rowsToFilter.forEach(function (row) {
|
|
4273
|
+
newFilteredFlatRows.push(row);
|
|
4274
|
+
newFilteredRowsById[row.id] = row;
|
|
4288
4275
|
});
|
|
4289
4276
|
return rowsToFilter;
|
|
4290
4277
|
};
|
|
4291
4278
|
|
|
4292
|
-
|
|
4293
|
-
|
|
4294
|
-
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
|
|
4302
|
-
if (!((_row$subRows = row.subRows) != null && _row$subRows.length)) {
|
|
4303
|
-
return true;
|
|
4304
|
-
}
|
|
4305
|
-
|
|
4306
|
-
row.subRows = _recurseFilterRows(row.subRows, depth + 1);
|
|
4307
|
-
return row.subRows.length;
|
|
4308
|
-
});
|
|
4309
|
-
rowsToFilter = filterRows(rowsToFilter, depth); // Apply the filter to any subRows
|
|
4310
|
-
|
|
4311
|
-
rowsToFilter.forEach(function (row) {
|
|
4312
|
-
newFilteredFlatRows.push(row);
|
|
4313
|
-
newFilteredRowsById[row.id] = row;
|
|
4314
|
-
});
|
|
4315
|
-
return rowsToFilter;
|
|
4316
|
-
};
|
|
4317
|
-
|
|
4318
|
-
return {
|
|
4319
|
-
rows: _recurseFilterRows(rowModel.rows),
|
|
4320
|
-
flatRows: newFilteredFlatRows,
|
|
4321
|
-
rowsById: newFilteredRowsById
|
|
4322
|
-
};
|
|
4323
|
-
} // Filters top level and nested rows
|
|
4324
|
-
|
|
4279
|
+
return {
|
|
4280
|
+
rows: recurseFilterRows(rowsToFilter),
|
|
4281
|
+
flatRows: newFilteredFlatRows,
|
|
4282
|
+
rowsById: newFilteredRowsById
|
|
4283
|
+
};
|
|
4284
|
+
}
|
|
4285
|
+
function filterRowModelFromRoot(rowsToFilter, filterRows, instance) {
|
|
4286
|
+
var newFilteredFlatRows = [];
|
|
4287
|
+
var newFilteredRowsById = {}; // Filters top level and nested rows
|
|
4325
4288
|
|
|
4326
4289
|
var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
|
|
4327
4290
|
if (depth === void 0) {
|
|
4328
4291
|
depth = 0;
|
|
4329
4292
|
}
|
|
4330
4293
|
|
|
4331
|
-
// Filter from parents downward
|
|
4294
|
+
// Filter from parents downward first
|
|
4332
4295
|
rowsToFilter = filterRows(rowsToFilter, depth); // Apply the filter to any subRows
|
|
4333
|
-
// We technically could do this recursively in the above loop,
|
|
4334
|
-
// but that would severely hinder the API for the user, since they
|
|
4335
|
-
// would be required to do that recursion in some scenarios
|
|
4336
4296
|
|
|
4337
|
-
rowsToFilter.
|
|
4297
|
+
for (var i = 0; i < rowsToFilter.length; i++) {
|
|
4298
|
+
var _row$subRows2;
|
|
4299
|
+
|
|
4300
|
+
var row = rowsToFilter[i];
|
|
4338
4301
|
newFilteredFlatRows.push(row);
|
|
4339
4302
|
newFilteredRowsById[row.id] = row;
|
|
4340
4303
|
|
|
4341
|
-
if (!
|
|
4342
|
-
|
|
4304
|
+
if (!((_row$subRows2 = row.subRows) != null && _row$subRows2.length)) {
|
|
4305
|
+
rowsToFilter.splice(i, 1);
|
|
4306
|
+
i--;
|
|
4307
|
+
continue;
|
|
4308
|
+
}
|
|
4343
4309
|
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
|
|
4310
|
+
rowsToFilter[i] = instance.createRow(row.id, row.original, row.index, row.depth, row.values);
|
|
4311
|
+
rowsToFilter[i].subRows = recurseFilterRows(row.subRows, depth + 1);
|
|
4312
|
+
}
|
|
4347
4313
|
|
|
4348
|
-
row.subRows = recurseFilterRows(row.subRows, depth + 1);
|
|
4349
|
-
}
|
|
4350
|
-
});
|
|
4351
4314
|
return rowsToFilter;
|
|
4352
4315
|
};
|
|
4353
4316
|
|
|
4354
4317
|
return {
|
|
4355
|
-
rows: recurseFilterRows(
|
|
4318
|
+
rows: recurseFilterRows(rowsToFilter),
|
|
4356
4319
|
flatRows: newFilteredFlatRows,
|
|
4357
4320
|
rowsById: newFilteredRowsById
|
|
4358
4321
|
};
|
|
4359
4322
|
}
|
|
4360
4323
|
|
|
4324
|
+
function columnFilterRowsFn(instance, rowModel) {
|
|
4325
|
+
var columnFilters = instance.getState().columnFilters;
|
|
4326
|
+
var filterFromLeafRows = instance.options.filterFromLeafRows;
|
|
4327
|
+
|
|
4328
|
+
var filterRows = function filterRows(rowsToFilter, depth) {
|
|
4329
|
+
for (var i = 0; i < columnFilters.length; i++) {
|
|
4330
|
+
var _columnFilters$i = columnFilters[i],
|
|
4331
|
+
columnId = _columnFilters$i.id,
|
|
4332
|
+
filterValue = _columnFilters$i.value; // Find the columnFilters column
|
|
4333
|
+
|
|
4334
|
+
var column = instance.getColumn(columnId);
|
|
4335
|
+
|
|
4336
|
+
if (!column) {
|
|
4337
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
4338
|
+
console.warn("Table: Could not find a column with id: " + columnId);
|
|
4339
|
+
}
|
|
4340
|
+
|
|
4341
|
+
throw new Error();
|
|
4342
|
+
}
|
|
4343
|
+
|
|
4344
|
+
if (depth === 0) {
|
|
4345
|
+
(function () {
|
|
4346
|
+
var preFilteredRows = [].concat(rowsToFilter);
|
|
4347
|
+
|
|
4348
|
+
column.getPreFilteredRows = function () {
|
|
4349
|
+
return preFilteredRows;
|
|
4350
|
+
};
|
|
4351
|
+
})();
|
|
4352
|
+
}
|
|
4353
|
+
|
|
4354
|
+
var filterFn = instance.getColumnFilterFn(column.id);
|
|
4355
|
+
|
|
4356
|
+
if (!filterFn) {
|
|
4357
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
4358
|
+
console.warn("Could not find a valid 'column.filterType' for column with the ID: " + column.id + ".");
|
|
4359
|
+
}
|
|
4360
|
+
|
|
4361
|
+
continue;
|
|
4362
|
+
} // Pass the rows, id, filterValue and column to the filterFn
|
|
4363
|
+
// to get the filtered rows back
|
|
4364
|
+
|
|
4365
|
+
|
|
4366
|
+
rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue);
|
|
4367
|
+
}
|
|
4368
|
+
|
|
4369
|
+
return rowsToFilter;
|
|
4370
|
+
};
|
|
4371
|
+
|
|
4372
|
+
if (filterFromLeafRows) {
|
|
4373
|
+
return filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
|
|
4374
|
+
}
|
|
4375
|
+
|
|
4376
|
+
return filterRowModelFromRoot(rowModel.rows, filterRows, instance);
|
|
4377
|
+
}
|
|
4378
|
+
|
|
4361
4379
|
function globalFilterRowsFn(instance, rowModel) {
|
|
4362
4380
|
var globalFilter = instance.getState().globalFilter;
|
|
4363
|
-
var
|
|
4364
|
-
var newFilteredRowsById = {};
|
|
4365
|
-
var filterFromChildrenUp = instance.options.filterFromChildrenUp;
|
|
4381
|
+
var filterFromLeafRows = instance.options.filterFromLeafRows;
|
|
4366
4382
|
var filterFn = instance.getGlobalFilterFn();
|
|
4367
4383
|
|
|
4368
4384
|
if (!filterFn) {
|
|
@@ -4380,67 +4396,15 @@ function globalFilterRowsFn(instance, rowModel) {
|
|
|
4380
4396
|
return d.id;
|
|
4381
4397
|
});
|
|
4382
4398
|
|
|
4383
|
-
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
// Filter from children up
|
|
4387
|
-
rowsToFilter = rowsToFilter.filter(function (row) {
|
|
4388
|
-
var _row$subRows;
|
|
4389
|
-
|
|
4390
|
-
if (!((_row$subRows = row.subRows) != null && _row$subRows.length)) {
|
|
4391
|
-
return true;
|
|
4392
|
-
}
|
|
4393
|
-
|
|
4394
|
-
row.subRows = _recurseFilterRows(row.subRows);
|
|
4395
|
-
return row.subRows.length;
|
|
4396
|
-
});
|
|
4397
|
-
rowsToFilter = filterFn(rowsToFilter, filterableColumnIds, globalFilter); // Apply the filter to any subRows
|
|
4398
|
-
|
|
4399
|
-
rowsToFilter.forEach(function (row) {
|
|
4400
|
-
newFilteredFlatRows.push(row);
|
|
4401
|
-
newFilteredRowsById[row.id] = row;
|
|
4402
|
-
});
|
|
4403
|
-
return rowsToFilter;
|
|
4404
|
-
};
|
|
4405
|
-
|
|
4406
|
-
return {
|
|
4407
|
-
rows: _recurseFilterRows(rowModel.rows),
|
|
4408
|
-
flatRows: newFilteredFlatRows,
|
|
4409
|
-
rowsById: newFilteredRowsById
|
|
4410
|
-
};
|
|
4411
|
-
} // Filters top level and nested rows
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
|
|
4415
|
-
|
|
4416
|
-
// Filter from parents downward
|
|
4417
|
-
rowsToFilter = filterFn(rowsToFilter, filterableColumnIds, globalFilter); // Apply the filter to any subRows
|
|
4418
|
-
// We technically could do this recursively in the above loop,
|
|
4419
|
-
// but that would severely hinder the API for the user, since they
|
|
4420
|
-
// would be required to do that recursion in some scenarios
|
|
4421
|
-
|
|
4422
|
-
rowsToFilter.forEach(function (row) {
|
|
4423
|
-
newFilteredFlatRows.push(row);
|
|
4424
|
-
newFilteredRowsById[row.id] = row;
|
|
4425
|
-
|
|
4426
|
-
if (!filterFromChildrenUp) {
|
|
4427
|
-
var _row$subRows2;
|
|
4428
|
-
|
|
4429
|
-
if (!((_row$subRows2 = row.subRows) != null && _row$subRows2.length)) {
|
|
4430
|
-
return;
|
|
4431
|
-
}
|
|
4432
|
-
|
|
4433
|
-
row.subRows = recurseFilterRows(row.subRows);
|
|
4434
|
-
}
|
|
4435
|
-
});
|
|
4436
|
-
return rowsToFilter;
|
|
4399
|
+
var filterRows = function filterRows(rows) {
|
|
4400
|
+
return filterFn(rows, filterableColumnIds, globalFilter);
|
|
4437
4401
|
};
|
|
4438
4402
|
|
|
4439
|
-
|
|
4440
|
-
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
|
|
4403
|
+
if (filterFromLeafRows) {
|
|
4404
|
+
filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
|
|
4405
|
+
}
|
|
4406
|
+
|
|
4407
|
+
return filterRowModelFromRoot(rowModel.rows, filterRows, instance);
|
|
4444
4408
|
}
|
|
4445
4409
|
|
|
4446
4410
|
function sortRowsFn(instance, rowModel) {
|
|
@@ -4479,7 +4443,7 @@ function sortRowsFn(instance, rowModel) {
|
|
|
4479
4443
|
var bUndefined = typeof bValue === 'undefined';
|
|
4480
4444
|
|
|
4481
4445
|
if (aUndefined || bUndefined) {
|
|
4482
|
-
return aUndefined && bUndefined ? 0 : aUndefined ?
|
|
4446
|
+
return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;
|
|
4483
4447
|
}
|
|
4484
4448
|
} // This function should always return in ascending order
|
|
4485
4449
|
|
|
@@ -4542,21 +4506,21 @@ function groupRowsFn(instance, sortedRowModel) {
|
|
|
4542
4506
|
var aggregateFn = instance.getColumnAggregationFn(column.id);
|
|
4543
4507
|
|
|
4544
4508
|
if (aggregateFn) {
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
}); // Get the columnValues to aggregate
|
|
4549
|
-
|
|
4550
|
-
var leafValues = leafRows.map(function (row) {
|
|
4551
|
-
var columnValue = row.values[column.id];
|
|
4509
|
+
values[column.id] = aggregateFn(function () {
|
|
4510
|
+
return leafRows.map(function (row) {
|
|
4511
|
+
var columnValue = row.values[column.id];
|
|
4552
4512
|
|
|
4553
|
-
|
|
4554
|
-
|
|
4555
|
-
|
|
4513
|
+
if (!depth && column.aggregateValue) {
|
|
4514
|
+
columnValue = column.aggregateValue(columnValue);
|
|
4515
|
+
}
|
|
4556
4516
|
|
|
4557
|
-
|
|
4517
|
+
return columnValue;
|
|
4518
|
+
});
|
|
4519
|
+
}, function () {
|
|
4520
|
+
return groupedRows.map(function (row) {
|
|
4521
|
+
return row.values[column.id];
|
|
4522
|
+
});
|
|
4558
4523
|
});
|
|
4559
|
-
values[column.id] = aggregateFn(leafValues, groupedValues);
|
|
4560
4524
|
} else if (column.aggregationType) {
|
|
4561
4525
|
console.info({
|
|
4562
4526
|
column: column
|
|
@@ -4599,7 +4563,7 @@ function groupRowsFn(instance, sortedRowModel) {
|
|
|
4599
4563
|
var subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group
|
|
4600
4564
|
|
|
4601
4565
|
var leafRows = depth ? flattenBy(groupedRows, function (row) {
|
|
4602
|
-
return row.
|
|
4566
|
+
return row.subRows;
|
|
4603
4567
|
}) : groupedRows;
|
|
4604
4568
|
var values = aggregateRowsToValues(leafRows, groupedRows, depth);
|
|
4605
4569
|
var row = instance.createRow(id, undefined, index, depth, values);
|