@tanstack/table-core 8.0.0-beta.2 → 8.0.0-beta.5
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/core/cell.js +7 -1
- package/build/cjs/core/cell.js.map +1 -1
- package/build/cjs/core/instance.js +2 -2
- package/build/cjs/core/instance.js.map +1 -1
- package/build/cjs/features/Filters.js +1 -2
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +19 -6
- 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/features/Sorting.js +27 -9
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/utils/getGroupedRowModel.js +0 -5
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js +19 -5
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/esm/index.js +78 -33
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +322 -322
- package/build/types/core/instance.d.ts +1 -0
- package/build/types/features/Filters.d.ts +0 -3
- package/build/types/features/Grouping.d.ts +0 -3
- package/build/types/features/RowSelection.d.ts +2 -2
- package/build/types/features/Sorting.d.ts +1 -0
- package/build/types/types.d.ts +1 -1
- package/build/umd/index.development.js +78 -33
- 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/core/cell.ts +4 -1
- package/src/core/instance.ts +2 -1
- package/src/features/Filters.ts +5 -7
- package/src/features/Grouping.ts +19 -10
- package/src/features/RowSelection.ts +7 -5
- package/src/features/Sorting.ts +27 -12
- package/src/types.ts +1 -1
- package/src/utils/getGroupedRowModel.ts +0 -7
- package/src/utils/getPaginationRowModel.ts +21 -6
package/build/esm/index.js
CHANGED
|
@@ -1094,7 +1094,6 @@ const Filters = {
|
|
|
1094
1094
|
},
|
|
1095
1095
|
createColumn: (column, instance) => {
|
|
1096
1096
|
return {
|
|
1097
|
-
filterFn: column.filterFn,
|
|
1098
1097
|
getAutoFilterFn: () => {
|
|
1099
1098
|
const firstRow = instance.getCoreRowModel().flatRows[0];
|
|
1100
1099
|
const value = firstRow == null ? void 0 : firstRow.getValue(column.id);
|
|
@@ -1125,7 +1124,7 @@ const Filters = {
|
|
|
1125
1124
|
var _ref;
|
|
1126
1125
|
|
|
1127
1126
|
const userFilterFns = instance.options.filterFns;
|
|
1128
|
-
return isFunction(column.filterFn) ? column.filterFn : column.filterFn === 'auto' ? column.getAutoFilterFn() : (_ref = userFilterFns == null ? void 0 : userFilterFns[column.filterFn]) != null ? _ref : filterFns[column.filterFn];
|
|
1127
|
+
return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : (_ref = userFilterFns == null ? void 0 : userFilterFns[column.columnDef.filterFn]) != null ? _ref : filterFns[column.columnDef.filterFn];
|
|
1129
1128
|
},
|
|
1130
1129
|
getCanFilter: () => {
|
|
1131
1130
|
var _column$columnDef$ena, _instance$options$ena, _instance$options$ena2;
|
|
@@ -1414,6 +1413,11 @@ const aggregationFns = {
|
|
|
1414
1413
|
const Grouping = {
|
|
1415
1414
|
getDefaultColumnDef: () => {
|
|
1416
1415
|
return {
|
|
1416
|
+
aggregatedCell: props => {
|
|
1417
|
+
var _props$getValue$toStr, _props$getValue;
|
|
1418
|
+
|
|
1419
|
+
return (_props$getValue$toStr = (_props$getValue = props.getValue()) == null ? void 0 : _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _props$getValue$toStr : null;
|
|
1420
|
+
},
|
|
1417
1421
|
aggregationFn: 'auto'
|
|
1418
1422
|
};
|
|
1419
1423
|
},
|
|
@@ -1474,8 +1478,6 @@ const Grouping = {
|
|
|
1474
1478
|
if (Object.prototype.toString.call(value) === '[object Date]') {
|
|
1475
1479
|
return aggregationFns.extent;
|
|
1476
1480
|
}
|
|
1477
|
-
|
|
1478
|
-
return aggregationFns.count;
|
|
1479
1481
|
},
|
|
1480
1482
|
getAggregationFn: () => {
|
|
1481
1483
|
var _ref4;
|
|
@@ -1486,7 +1488,7 @@ const Grouping = {
|
|
|
1486
1488
|
throw new Error();
|
|
1487
1489
|
}
|
|
1488
1490
|
|
|
1489
|
-
return isFunction(column.aggregationFn) ? column.aggregationFn : column.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_ref4 = userAggregationFns == null ? void 0 : userAggregationFns[column.aggregationFn]) != null ? _ref4 : aggregationFns[column.aggregationFn];
|
|
1491
|
+
return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_ref4 = userAggregationFns == null ? void 0 : userAggregationFns[column.columnDef.aggregationFn]) != null ? _ref4 : aggregationFns[column.columnDef.aggregationFn];
|
|
1490
1492
|
}
|
|
1491
1493
|
};
|
|
1492
1494
|
},
|
|
@@ -1519,6 +1521,12 @@ const Grouping = {
|
|
|
1519
1521
|
};
|
|
1520
1522
|
},
|
|
1521
1523
|
createCell: (cell, column, row, instance) => {
|
|
1524
|
+
const getRenderValue = () => {
|
|
1525
|
+
var _cell$getValue;
|
|
1526
|
+
|
|
1527
|
+
return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : instance.options.renderFallbackValue;
|
|
1528
|
+
};
|
|
1529
|
+
|
|
1522
1530
|
return {
|
|
1523
1531
|
getIsGrouped: () => column.getIsGrouped() && column.id === row.groupingColumnId,
|
|
1524
1532
|
getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),
|
|
@@ -1528,15 +1536,19 @@ const Grouping = {
|
|
|
1528
1536
|
return !cell.getIsGrouped() && !cell.getIsPlaceholder() && ((_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length) > 1;
|
|
1529
1537
|
},
|
|
1530
1538
|
renderAggregatedCell: () => {
|
|
1531
|
-
|
|
1539
|
+
if (process.env.NODE_ENV === 'development') {
|
|
1540
|
+
if (!column.columnDef.aggregatedCell) {
|
|
1541
|
+
console.warn('A columnDef.aggregatedCell template is recommended for displaying aggregated values.');
|
|
1542
|
+
}
|
|
1543
|
+
}
|
|
1532
1544
|
|
|
1533
|
-
const template =
|
|
1545
|
+
const template = column.columnDef.aggregatedCell || column.columnDef.cell;
|
|
1534
1546
|
return template ? instance._render(template, {
|
|
1535
1547
|
instance,
|
|
1536
1548
|
column,
|
|
1537
1549
|
row,
|
|
1538
1550
|
cell,
|
|
1539
|
-
getValue:
|
|
1551
|
+
getValue: getRenderValue
|
|
1540
1552
|
}) : null;
|
|
1541
1553
|
}
|
|
1542
1554
|
};
|
|
@@ -2006,11 +2018,11 @@ const RowSelection = {
|
|
|
2006
2018
|
});
|
|
2007
2019
|
},
|
|
2008
2020
|
toggleAllPageRowsSelected: value => instance.setRowSelection(old => {
|
|
2009
|
-
typeof value !== 'undefined' ? value : !instance.getIsAllPageRowsSelected();
|
|
2021
|
+
const resolvedValue = typeof value !== 'undefined' ? value : !instance.getIsAllPageRowsSelected();
|
|
2010
2022
|
const rowSelection = { ...old
|
|
2011
2023
|
};
|
|
2012
2024
|
instance.getRowModel().rows.forEach(row => {
|
|
2013
|
-
mutateRowIsSelected(rowSelection, row.id,
|
|
2025
|
+
mutateRowIsSelected(rowSelection, row.id, resolvedValue, instance);
|
|
2014
2026
|
});
|
|
2015
2027
|
return rowSelection;
|
|
2016
2028
|
}),
|
|
@@ -2165,7 +2177,7 @@ const RowSelection = {
|
|
|
2165
2177
|
},
|
|
2166
2178
|
getIsSomePageRowsSelected: () => {
|
|
2167
2179
|
const paginationFlatRows = instance.getPaginationRowModel().flatRows;
|
|
2168
|
-
return instance.getIsAllPageRowsSelected() ? false :
|
|
2180
|
+
return instance.getIsAllPageRowsSelected() ? false : paginationFlatRows.some(d => d.getIsSelected() || d.getIsSomeSelected());
|
|
2169
2181
|
},
|
|
2170
2182
|
getToggleAllRowsSelectedHandler: () => {
|
|
2171
2183
|
return e => {
|
|
@@ -2519,8 +2531,10 @@ const Sorting = {
|
|
|
2519
2531
|
// })
|
|
2520
2532
|
// return
|
|
2521
2533
|
// }
|
|
2534
|
+
// this needs to be outside of instance.setSorting to be in sync with rerender
|
|
2535
|
+
const nextSortingOrder = column.getNextSortingOrder();
|
|
2522
2536
|
instance.setSorting(old => {
|
|
2523
|
-
var
|
|
2537
|
+
var _instance$options$ena, _instance$options$ena2;
|
|
2524
2538
|
|
|
2525
2539
|
// Find any existing sorting for this column
|
|
2526
2540
|
const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);
|
|
@@ -2545,30 +2559,29 @@ const Sorting = {
|
|
|
2545
2559
|
} else {
|
|
2546
2560
|
sortAction = 'replace';
|
|
2547
2561
|
}
|
|
2548
|
-
}
|
|
2562
|
+
} // Handle toggle states that will remove the sorting
|
|
2549
2563
|
|
|
2550
|
-
const sortDescFirst = (_ref2 = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : instance.options.sortDescFirst) != null ? _ref2 : column.getAutoSortDir() === 'desc'; // Handle toggle states that will remove the sorting
|
|
2551
2564
|
|
|
2552
2565
|
if (sortAction === 'toggle' && ( // Must be toggling
|
|
2553
2566
|
(_instance$options$ena = instance.options.enableSortingRemoval) != null ? _instance$options$ena : true) && // If enableSortRemove, enable in general
|
|
2554
2567
|
!hasDescDefined && ( // Must not be setting desc
|
|
2555
|
-
multi ? (_instance$options$ena2 = instance.options.enableMultiRemove) != null ? _instance$options$ena2 : true : true) &&
|
|
2556
|
-
|
|
2557
|
-
|
|
2568
|
+
multi ? (_instance$options$ena2 = instance.options.enableMultiRemove) != null ? _instance$options$ena2 : true : true) && // If multi, don't allow if enableMultiRemove
|
|
2569
|
+
!nextSortingOrder // Finally, detect if it should indeed be removed
|
|
2570
|
+
) {
|
|
2558
2571
|
sortAction = 'remove';
|
|
2559
2572
|
}
|
|
2560
2573
|
|
|
2561
2574
|
if (sortAction === 'replace') {
|
|
2562
2575
|
newSorting = [{
|
|
2563
2576
|
id: column.id,
|
|
2564
|
-
desc: hasDescDefined ? desc :
|
|
2577
|
+
desc: hasDescDefined ? desc : nextSortingOrder === 'desc'
|
|
2565
2578
|
}];
|
|
2566
2579
|
} else if (sortAction === 'add' && old != null && old.length) {
|
|
2567
2580
|
var _instance$options$max;
|
|
2568
2581
|
|
|
2569
2582
|
newSorting = [...old, {
|
|
2570
2583
|
id: column.id,
|
|
2571
|
-
desc: hasDescDefined ? desc :
|
|
2584
|
+
desc: hasDescDefined ? desc : nextSortingOrder === 'desc'
|
|
2572
2585
|
}]; // Take latest n columns
|
|
2573
2586
|
|
|
2574
2587
|
newSorting.splice(0, newSorting.length - ((_instance$options$max = instance.options.maxMultiSortColCount) != null ? _instance$options$max : Number.MAX_SAFE_INTEGER));
|
|
@@ -2577,7 +2590,7 @@ const Sorting = {
|
|
|
2577
2590
|
newSorting = old.map(d => {
|
|
2578
2591
|
if (d.id === column.id) {
|
|
2579
2592
|
return { ...d,
|
|
2580
|
-
desc: hasDescDefined ? desc :
|
|
2593
|
+
desc: hasDescDefined ? desc : nextSortingOrder === 'desc'
|
|
2581
2594
|
};
|
|
2582
2595
|
}
|
|
2583
2596
|
|
|
@@ -2590,6 +2603,23 @@ const Sorting = {
|
|
|
2590
2603
|
return newSorting;
|
|
2591
2604
|
});
|
|
2592
2605
|
},
|
|
2606
|
+
getNextSortingOrder: () => {
|
|
2607
|
+
var _ref2, _column$columnDef$sor;
|
|
2608
|
+
|
|
2609
|
+
const sortDescFirst = (_ref2 = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : instance.options.sortDescFirst) != null ? _ref2 : column.getAutoSortDir() === 'desc';
|
|
2610
|
+
const firstSortDirection = sortDescFirst ? 'desc' : 'asc';
|
|
2611
|
+
const isSorted = column.getIsSorted();
|
|
2612
|
+
|
|
2613
|
+
if (!isSorted) {
|
|
2614
|
+
return firstSortDirection;
|
|
2615
|
+
}
|
|
2616
|
+
|
|
2617
|
+
if (isSorted === firstSortDirection) {
|
|
2618
|
+
return isSorted === 'desc' ? 'asc' : 'desc';
|
|
2619
|
+
} else {
|
|
2620
|
+
return false;
|
|
2621
|
+
}
|
|
2622
|
+
},
|
|
2593
2623
|
getCanSort: () => {
|
|
2594
2624
|
var _column$columnDef$ena, _instance$options$ena3;
|
|
2595
2625
|
|
|
@@ -2883,9 +2913,9 @@ function createTableInstance(options) {
|
|
|
2883
2913
|
header: props => props.header.column.id,
|
|
2884
2914
|
footer: props => props.header.column.id,
|
|
2885
2915
|
cell: props => {
|
|
2886
|
-
var _props$getValue$toStr, _props$getValue
|
|
2916
|
+
var _props$getValue$toStr, _props$getValue;
|
|
2887
2917
|
|
|
2888
|
-
return (_props$getValue$toStr = (_props$getValue
|
|
2918
|
+
return (_props$getValue$toStr = (_props$getValue = props.getValue()) == null ? void 0 : _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _props$getValue$toStr : null;
|
|
2889
2919
|
},
|
|
2890
2920
|
...instance._features.reduce((obj, feature) => {
|
|
2891
2921
|
return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());
|
|
@@ -3039,6 +3069,12 @@ function createTable(_, __, options) {
|
|
|
3039
3069
|
}
|
|
3040
3070
|
|
|
3041
3071
|
function createCell(instance, row, column, columnId) {
|
|
3072
|
+
const getRenderValue = () => {
|
|
3073
|
+
var _cell$getValue;
|
|
3074
|
+
|
|
3075
|
+
return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : instance.options.renderFallbackValue;
|
|
3076
|
+
};
|
|
3077
|
+
|
|
3042
3078
|
const cell = {
|
|
3043
3079
|
id: row.id + "_" + column.id,
|
|
3044
3080
|
row,
|
|
@@ -3050,7 +3086,7 @@ function createCell(instance, row, column, columnId) {
|
|
|
3050
3086
|
column,
|
|
3051
3087
|
row,
|
|
3052
3088
|
cell: cell,
|
|
3053
|
-
getValue:
|
|
3089
|
+
getValue: getRenderValue
|
|
3054
3090
|
}) : null;
|
|
3055
3091
|
}
|
|
3056
3092
|
};
|
|
@@ -3656,11 +3692,6 @@ function getGroupedRowModel() {
|
|
|
3656
3692
|
if (aggregateFn) {
|
|
3657
3693
|
row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);
|
|
3658
3694
|
return row._groupingValuesCache[columnId];
|
|
3659
|
-
} else if (column.aggregationFn) {
|
|
3660
|
-
console.info({
|
|
3661
|
-
column
|
|
3662
|
-
});
|
|
3663
|
-
throw new Error(process.env.NODE_ENV !== 'production' ? "Table: Invalid column.aggregateType option for column listed above" : '');
|
|
3664
3695
|
}
|
|
3665
3696
|
}
|
|
3666
3697
|
});
|
|
@@ -3784,20 +3815,34 @@ function getPaginationRowModel(opts) {
|
|
|
3784
3815
|
const pageStart = pageSize * pageIndex;
|
|
3785
3816
|
const pageEnd = pageStart + pageSize;
|
|
3786
3817
|
rows = rows.slice(pageStart, pageEnd);
|
|
3818
|
+
let paginatedRowModel;
|
|
3787
3819
|
|
|
3788
3820
|
if (!instance.options.paginateExpandedRows) {
|
|
3789
|
-
|
|
3821
|
+
paginatedRowModel = expandRows({
|
|
3790
3822
|
rows,
|
|
3791
3823
|
flatRows,
|
|
3792
3824
|
rowsById
|
|
3793
3825
|
});
|
|
3826
|
+
} else {
|
|
3827
|
+
paginatedRowModel = {
|
|
3828
|
+
rows,
|
|
3829
|
+
flatRows,
|
|
3830
|
+
rowsById
|
|
3831
|
+
};
|
|
3794
3832
|
}
|
|
3795
3833
|
|
|
3796
|
-
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3834
|
+
paginatedRowModel.flatRows = [];
|
|
3835
|
+
|
|
3836
|
+
const handleRow = row => {
|
|
3837
|
+
paginatedRowModel.flatRows.push(row);
|
|
3838
|
+
|
|
3839
|
+
if (row.subRows.length) {
|
|
3840
|
+
row.subRows.forEach(handleRow);
|
|
3841
|
+
}
|
|
3800
3842
|
};
|
|
3843
|
+
|
|
3844
|
+
paginatedRowModel.rows.forEach(handleRow);
|
|
3845
|
+
return paginatedRowModel;
|
|
3801
3846
|
}, {
|
|
3802
3847
|
key: process.env.NODE_ENV === 'development' && 'getPaginationRowModel',
|
|
3803
3848
|
debug: () => {
|