@tanstack/table-core 8.0.0-alpha.62 → 8.0.0-alpha.65
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.js +8 -5
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/features/Cells.js +1 -1
- package/build/cjs/features/Cells.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +3 -3
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Columns.js +7 -7
- package/build/cjs/features/Columns.js.map +1 -1
- package/build/cjs/features/Expanding.js +3 -3
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +158 -80
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +24 -22
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js +16 -16
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js +6 -5
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +5 -5
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +17 -78
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +8 -8
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +8 -8
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +5 -5
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +51 -108
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/index.js +5 -4
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +21 -0
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getCoreRowModelAsync.js +1 -1
- package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -1
- package/build/cjs/utils/getCoreRowModelSync.js +1 -1
- package/build/cjs/utils/getCoreRowModelSync.js.map +1 -1
- package/build/cjs/utils/getExpandedRowModel.js +1 -1
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFilteredRowModelSync.js +130 -0
- package/build/cjs/utils/getFilteredRowModelSync.js.map +1 -0
- package/build/cjs/utils/getGroupedRowModel.js +1 -1
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js +1 -1
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModelSync.js +1 -1
- package/build/cjs/utils/getSortedRowModelSync.js.map +1 -1
- package/build/cjs/utils.js +2 -6
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +491 -573
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +388 -402
- package/build/types/features/Expanding.d.ts +2 -7
- package/build/types/features/Filters.d.ts +27 -29
- package/build/types/features/Grouping.d.ts +3 -11
- package/build/types/features/Ordering.d.ts +2 -6
- package/build/types/features/Pinning.d.ts +2 -15
- package/build/types/features/RowSelection.d.ts +3 -8
- package/build/types/features/Sorting.d.ts +2 -8
- package/build/types/features/Visibility.d.ts +2 -11
- package/build/types/filterFns.d.ts +10 -52
- package/build/types/index.d.ts +1 -2
- package/build/types/types.d.ts +2 -2
- package/build/types/utils/filterRowsUtils.d.ts +1 -0
- package/build/types/utils/{getColumnFilteredRowModelAsync.d.ts → getFilteredRowModelAsync.d.ts} +1 -1
- package/build/types/utils/getFilteredRowModelSync.d.ts +2 -0
- package/build/types/utils.d.ts +2 -2
- package/build/umd/index.development.js +494 -574
- 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 +2 -1
- package/src/core.ts +6 -5
- package/src/features/Cells.ts +3 -1
- package/src/features/ColumnSizing.ts +2 -1
- package/src/features/Columns.ts +11 -7
- package/src/features/Expanding.ts +4 -2
- package/src/features/Filters.ts +216 -116
- package/src/features/Grouping.ts +23 -21
- package/src/features/Headers.ts +16 -16
- package/src/features/Ordering.ts +7 -9
- package/src/features/Pagination.ts +4 -3
- package/src/features/Pinning.ts +16 -80
- package/src/features/RowSelection.ts +14 -9
- package/src/features/Sorting.ts +12 -12
- package/src/features/Visibility.ts +7 -4
- package/src/filterFns.ts +74 -147
- package/src/index.ts +1 -2
- package/src/types.ts +2 -0
- package/src/utils/filterRowsUtils.ts +24 -0
- package/src/utils/getCoreRowModelAsync.ts +1 -1
- package/src/utils/getCoreRowModelSync.ts +1 -1
- package/src/utils/getExpandedRowModel.ts +1 -1
- package/src/utils/getFilteredRowModelAsync.ts +49 -0
- package/src/utils/getFilteredRowModelSync.ts +150 -0
- package/src/utils/getGroupedRowModel.ts +1 -1
- package/src/utils/getPaginationRowModel.ts +1 -1
- package/src/utils/getSortedRowModelAsync.ts +1 -1
- package/src/utils/getSortedRowModelSync.ts +1 -1
- package/src/utils.ts +2 -4
- package/build/cjs/utils/getColumnFilteredRowModelSync.js +0 -115
- package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +0 -1
- package/build/cjs/utils/getGlobalFilteredRowModelSync.js +0 -91
- package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +0 -1
- package/build/types/utils/getColumnFilteredRowModelSync.d.ts +0 -2
- package/build/types/utils/getGlobalFilteredRowModelAsync.d.ts +0 -4
- package/build/types/utils/getGlobalFilteredRowModelSync.d.ts +0 -2
- package/src/utils/getColumnFilteredRowModelAsync.ts +0 -118
- package/src/utils/getColumnFilteredRowModelSync.ts +0 -102
- package/src/utils/getGlobalFilteredRowModelAsync.ts +0 -96
- package/src/utils/getGlobalFilteredRowModelSync.ts +0 -79
|
@@ -12,8 +12,10 @@
|
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
|
+
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
15
16
|
var filterFns = require('../filterFns.js');
|
|
16
17
|
var utils = require('../utils.js');
|
|
18
|
+
var filterRowsUtils = require('../utils/filterRowsUtils.js');
|
|
17
19
|
|
|
18
20
|
//
|
|
19
21
|
var Filters = {
|
|
@@ -22,13 +24,13 @@ var Filters = {
|
|
|
22
24
|
filterFn: 'auto'
|
|
23
25
|
};
|
|
24
26
|
},
|
|
25
|
-
getInitialState: function getInitialState() {
|
|
26
|
-
return {
|
|
27
|
+
getInitialState: function getInitialState(state) {
|
|
28
|
+
return _rollupPluginBabelHelpers["extends"]({
|
|
27
29
|
columnFilters: [],
|
|
28
30
|
globalFilter: undefined,
|
|
29
31
|
columnFiltersProgress: 1,
|
|
30
32
|
globalFilterProgress: 1
|
|
31
|
-
};
|
|
33
|
+
}, state);
|
|
32
34
|
},
|
|
33
35
|
getDefaultOptions: function getDefaultOptions(instance) {
|
|
34
36
|
return {
|
|
@@ -36,7 +38,7 @@ var Filters = {
|
|
|
36
38
|
onGlobalFilterChange: utils.makeStateUpdater('globalFilter', instance),
|
|
37
39
|
filterFromLeafRows: true,
|
|
38
40
|
globalFilterFn: 'auto',
|
|
39
|
-
|
|
41
|
+
getColumnCanGlobalFilter: function getColumnCanGlobalFilter(column) {
|
|
40
42
|
var _instance$getCoreRowM, _instance$getCoreRowM2;
|
|
41
43
|
|
|
42
44
|
var value = (_instance$getCoreRowM = instance.getCoreRowModel().flatRows[0]) == null ? void 0 : (_instance$getCoreRowM2 = _instance$getCoreRowM.getAllCellsByColumnId()[column.id]) == null ? void 0 : _instance$getCoreRowM2.value;
|
|
@@ -45,50 +47,6 @@ var Filters = {
|
|
|
45
47
|
};
|
|
46
48
|
},
|
|
47
49
|
createColumn: function createColumn(column, instance) {
|
|
48
|
-
var getFacetInfo = utils.memo(function () {
|
|
49
|
-
return [column.getPreFilteredRows()];
|
|
50
|
-
}, function (rows) {
|
|
51
|
-
var _rows$0$values$column, _rows$, _rows$0$values$column2, _rows$2;
|
|
52
|
-
|
|
53
|
-
if (rows === void 0) {
|
|
54
|
-
rows = [];
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
var preFilteredUniqueValues = new Map();
|
|
58
|
-
var preFilteredMinMaxValues = [(_rows$0$values$column = (_rows$ = rows[0]) == null ? void 0 : _rows$.values[column.id]) != null ? _rows$0$values$column : null, (_rows$0$values$column2 = (_rows$2 = rows[0]) == null ? void 0 : _rows$2.values[column.id]) != null ? _rows$0$values$column2 : null];
|
|
59
|
-
|
|
60
|
-
for (var i = 0; i < rows.length; i++) {
|
|
61
|
-
var _rows$i;
|
|
62
|
-
|
|
63
|
-
var _value = (_rows$i = rows[i]) == null ? void 0 : _rows$i.values[column.id];
|
|
64
|
-
|
|
65
|
-
if (preFilteredUniqueValues.has(_value)) {
|
|
66
|
-
var _preFilteredUniqueVal;
|
|
67
|
-
|
|
68
|
-
preFilteredUniqueValues.set(_value, ((_preFilteredUniqueVal = preFilteredUniqueValues.get(_value)) != null ? _preFilteredUniqueVal : 0) + 1);
|
|
69
|
-
} else {
|
|
70
|
-
preFilteredUniqueValues.set(_value, 1);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (_value < preFilteredMinMaxValues[0]) {
|
|
74
|
-
preFilteredMinMaxValues[0] = _value;
|
|
75
|
-
} else if (_value > preFilteredMinMaxValues[1]) {
|
|
76
|
-
preFilteredMinMaxValues[1] = _value;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return {
|
|
81
|
-
preFilteredUniqueValues: preFilteredUniqueValues,
|
|
82
|
-
preFilteredMinMaxValues: preFilteredMinMaxValues
|
|
83
|
-
};
|
|
84
|
-
}, {
|
|
85
|
-
key: 'column.getFacetInfo',
|
|
86
|
-
debug: function debug() {
|
|
87
|
-
var _instance$options$deb;
|
|
88
|
-
|
|
89
|
-
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugColumns;
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
50
|
return {
|
|
93
51
|
filterFn: column.filterFn,
|
|
94
52
|
getCanColumnFilter: function getCanColumnFilter() {
|
|
@@ -109,15 +67,57 @@ var Filters = {
|
|
|
109
67
|
setColumnFilterValue: function setColumnFilterValue(val) {
|
|
110
68
|
return instance.setColumnFilterValue(column.id, val);
|
|
111
69
|
},
|
|
112
|
-
|
|
113
|
-
return
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
70
|
+
getFacetedRowModel: utils.memo(function () {
|
|
71
|
+
return [instance.getPreFilteredRowModel(), instance.getState().columnFilters, instance.getState().globalFilter, // Include this to force the filtered facet info to be calculated
|
|
72
|
+
instance.getFilteredRowModel()];
|
|
73
|
+
}, function (rowModel, columnFilters, globalFilter, _) {
|
|
74
|
+
if (!(columnFilters != null && columnFilters.length) && !globalFilter) {
|
|
75
|
+
return rowModel;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return filterRowsUtils.filterRows(rowModel.rows, [].concat(columnFilters.map(function (d) {
|
|
79
|
+
return d.id;
|
|
80
|
+
}).filter(function (d) {
|
|
81
|
+
return d !== column.id;
|
|
82
|
+
}), [globalFilter ? '__global__' : undefined]).filter(Boolean), instance);
|
|
83
|
+
}, {
|
|
84
|
+
key: process.env.NODE_ENV === 'production' && 'getFacetedRowModel_' + column.id,
|
|
85
|
+
debug: function debug() {
|
|
86
|
+
var _instance$options$deb;
|
|
87
|
+
|
|
88
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugColumns;
|
|
89
|
+
}
|
|
90
|
+
}),
|
|
91
|
+
getFacetedUniqueValues: utils.memo(function () {
|
|
92
|
+
return [column.getFacetedRowModel()];
|
|
93
|
+
}, function (facetedRowModel) {
|
|
94
|
+
return getRowModelUniqueValues(facetedRowModel, column.id);
|
|
95
|
+
}, {
|
|
96
|
+
key: process.env.NODE_ENV === 'production' && 'column.getFacetedUniqueValues',
|
|
97
|
+
debug: function debug() {
|
|
98
|
+
var _instance$options$deb2;
|
|
99
|
+
|
|
100
|
+
return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugColumns;
|
|
101
|
+
}
|
|
102
|
+
}),
|
|
103
|
+
getFacetedMinMaxValues: utils.memo(function () {
|
|
104
|
+
return [column.getFacetedRowModel()];
|
|
105
|
+
}, function (facetedRowModel) {
|
|
106
|
+
return getRowModelMinMaxValues(facetedRowModel, column.id);
|
|
107
|
+
}, {
|
|
108
|
+
key: process.env.NODE_ENV === 'production' && 'column.getFacetedMinMaxValues',
|
|
109
|
+
debug: function debug() {
|
|
110
|
+
var _instance$options$deb3;
|
|
111
|
+
|
|
112
|
+
return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugColumns;
|
|
113
|
+
}
|
|
114
|
+
})
|
|
115
|
+
};
|
|
116
|
+
},
|
|
117
|
+
createRow: function createRow(row, instance) {
|
|
118
|
+
return {
|
|
119
|
+
columnFilterMap: {},
|
|
120
|
+
subRowsByFacetId: {}
|
|
121
121
|
};
|
|
122
122
|
},
|
|
123
123
|
createInstance: function createInstance(instance) {
|
|
@@ -131,7 +131,7 @@ var Filters = {
|
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
if (typeof value === 'number') {
|
|
134
|
-
return filterFns.filterFns.
|
|
134
|
+
return filterFns.filterFns.inNumberRange;
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
if (value !== null && typeof value === 'object') {
|
|
@@ -144,6 +144,15 @@ var Filters = {
|
|
|
144
144
|
|
|
145
145
|
return filterFns.filterFns.weakEquals;
|
|
146
146
|
},
|
|
147
|
+
getColumnFacetedRowModel: function getColumnFacetedRowModel(columnId) {
|
|
148
|
+
var column = instance.getColumn(columnId);
|
|
149
|
+
|
|
150
|
+
if (!column) {
|
|
151
|
+
throw new Error();
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return column.getFacetedRowModel();
|
|
155
|
+
},
|
|
147
156
|
getGlobalAutoFilterFn: function getGlobalAutoFilterFn() {
|
|
148
157
|
return filterFns.filterFns.includesString;
|
|
149
158
|
},
|
|
@@ -199,7 +208,7 @@ var Filters = {
|
|
|
199
208
|
instance.setGlobalFilter(instance.initialState.globalFilter);
|
|
200
209
|
},
|
|
201
210
|
getColumnCanColumnFilter: function getColumnCanColumnFilter(columnId) {
|
|
202
|
-
var
|
|
211
|
+
var _column$enableColumnF, _instance$options$ena, _instance$options$ena2;
|
|
203
212
|
|
|
204
213
|
var column = instance.getColumn(columnId);
|
|
205
214
|
|
|
@@ -207,10 +216,10 @@ var Filters = {
|
|
|
207
216
|
throw new Error();
|
|
208
217
|
}
|
|
209
218
|
|
|
210
|
-
return (
|
|
219
|
+
return ((_column$enableColumnF = column.enableColumnFilter) != null ? _column$enableColumnF : true) && ((_instance$options$ena = instance.options.enableColumnFilters) != null ? _instance$options$ena : true) && ((_instance$options$ena2 = instance.options.enableFilters) != null ? _instance$options$ena2 : true) && !!column.accessorFn;
|
|
211
220
|
},
|
|
212
221
|
getColumnCanGlobalFilter: function getColumnCanGlobalFilter(columnId) {
|
|
213
|
-
var
|
|
222
|
+
var _column$enableGlobalF, _instance$options$ena3, _instance$options$ena4, _instance$options$get;
|
|
214
223
|
|
|
215
224
|
var column = instance.getColumn(columnId);
|
|
216
225
|
|
|
@@ -218,7 +227,7 @@ var Filters = {
|
|
|
218
227
|
throw new Error();
|
|
219
228
|
}
|
|
220
229
|
|
|
221
|
-
return (
|
|
230
|
+
return ((_column$enableGlobalF = column.enableGlobalFilter) != null ? _column$enableGlobalF : true) && ((_instance$options$ena3 = instance.options.enableGlobalFilter) != null ? _instance$options$ena3 : true) && ((_instance$options$ena4 = instance.options.enableFilters) != null ? _instance$options$ena4 : true) && ((_instance$options$get = instance.options.getColumnCanGlobalFilter == null ? void 0 : instance.options.getColumnCanGlobalFilter(column)) != null ? _instance$options$get : true) && !!column.accessorFn;
|
|
222
231
|
},
|
|
223
232
|
getColumnIsFiltered: function getColumnIsFiltered(columnId) {
|
|
224
233
|
return instance.getColumnFilterIndex(columnId) > -1;
|
|
@@ -293,41 +302,110 @@ var Filters = {
|
|
|
293
302
|
|
|
294
303
|
instance.setColumnFilters((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.columnFilters) != null ? _instance$initialStat : []);
|
|
295
304
|
},
|
|
296
|
-
|
|
305
|
+
getPreFilteredRowModel: function getPreFilteredRowModel() {
|
|
297
306
|
return instance.getCoreRowModel();
|
|
298
307
|
},
|
|
299
|
-
|
|
300
|
-
if (!instance.
|
|
301
|
-
instance.
|
|
308
|
+
getFilteredRowModel: function getFilteredRowModel() {
|
|
309
|
+
if (!instance._getFilteredRowModel && instance.options.getFilteredRowModel) {
|
|
310
|
+
instance._getFilteredRowModel = instance.options.getFilteredRowModel(instance);
|
|
302
311
|
}
|
|
303
312
|
|
|
304
|
-
if (instance.options.
|
|
305
|
-
return instance.
|
|
313
|
+
if (instance.options.manualFiltering || !instance._getFilteredRowModel) {
|
|
314
|
+
return instance.getPreFilteredRowModel();
|
|
306
315
|
}
|
|
307
316
|
|
|
308
|
-
return instance.
|
|
317
|
+
return instance._getFilteredRowModel();
|
|
309
318
|
},
|
|
310
|
-
|
|
311
|
-
return instance.
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
if (!
|
|
315
|
-
|
|
319
|
+
getGlobalFacetedRowModel: utils.memo(function () {
|
|
320
|
+
return [instance.getPreFilteredRowModel(), instance.getState().columnFilters, instance.getState().globalFilter, // Include this to force the filtered facet info to be calculated
|
|
321
|
+
instance.getFilteredRowModel()];
|
|
322
|
+
}, function (rowModel, columnFilters, globalFilter, _) {
|
|
323
|
+
if (!(columnFilters != null && columnFilters.length) && !globalFilter) {
|
|
324
|
+
return rowModel;
|
|
316
325
|
}
|
|
317
326
|
|
|
318
|
-
|
|
319
|
-
return
|
|
320
|
-
}
|
|
327
|
+
return filterRowsUtils.filterRows(rowModel.rows, columnFilters.map(function (d) {
|
|
328
|
+
return d.id;
|
|
329
|
+
}), instance);
|
|
330
|
+
}, {
|
|
331
|
+
key: process.env.NODE_ENV === 'production' && 'getGlobalFacetedRowModel',
|
|
332
|
+
debug: function debug() {
|
|
333
|
+
var _instance$options$deb4;
|
|
321
334
|
|
|
322
|
-
|
|
323
|
-
|
|
335
|
+
return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : instance.options.debugColumns;
|
|
336
|
+
}
|
|
337
|
+
}),
|
|
338
|
+
getGlobalFacetedUniqueValues: utils.memo(function () {
|
|
339
|
+
return [instance.getGlobalFacetedRowModel()];
|
|
340
|
+
}, function (facetedRowModel) {
|
|
341
|
+
return getRowModelUniqueValues(facetedRowModel, '__global__');
|
|
342
|
+
}, {
|
|
343
|
+
key: process.env.NODE_ENV === 'production' && 'getGlobalFacetedUniqueValues',
|
|
344
|
+
debug: function debug() {
|
|
345
|
+
var _instance$options$deb5;
|
|
346
|
+
|
|
347
|
+
return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : instance.options.debugColumns;
|
|
348
|
+
}
|
|
349
|
+
}),
|
|
350
|
+
getGlobalFacetedMinMaxValues: utils.memo(function () {
|
|
351
|
+
return [instance.getGlobalFacetedRowModel()];
|
|
352
|
+
}, function (facetedRowModel) {
|
|
353
|
+
return getRowModelMinMaxValues(facetedRowModel, '__global__');
|
|
354
|
+
}, {
|
|
355
|
+
key: process.env.NODE_ENV === 'production' && 'getGlobalFacetedMinMaxValues',
|
|
356
|
+
debug: function debug() {
|
|
357
|
+
var _instance$options$deb6;
|
|
358
|
+
|
|
359
|
+
return (_instance$options$deb6 = instance.options.debugAll) != null ? _instance$options$deb6 : instance.options.debugColumns;
|
|
360
|
+
}
|
|
361
|
+
})
|
|
324
362
|
};
|
|
325
363
|
}
|
|
326
364
|
};
|
|
327
365
|
function shouldAutoRemoveFilter(filterFn, value, column) {
|
|
328
366
|
return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;
|
|
329
367
|
}
|
|
368
|
+
function getRowModelMinMaxValues(rowModel, columnId) {
|
|
369
|
+
var _rowModel$flatRows$0$, _rowModel$flatRows$, _rowModel$flatRows$0$2, _rowModel$flatRows$2;
|
|
370
|
+
|
|
371
|
+
var facetedMinMaxValues = [(_rowModel$flatRows$0$ = (_rowModel$flatRows$ = rowModel.flatRows[0]) == null ? void 0 : _rowModel$flatRows$.values[columnId]) != null ? _rowModel$flatRows$0$ : null, (_rowModel$flatRows$0$2 = (_rowModel$flatRows$2 = rowModel.flatRows[0]) == null ? void 0 : _rowModel$flatRows$2.values[columnId]) != null ? _rowModel$flatRows$0$2 : null];
|
|
372
|
+
|
|
373
|
+
for (var i = 0; i < rowModel.flatRows.length; i++) {
|
|
374
|
+
var _rowModel$flatRows$i;
|
|
375
|
+
|
|
376
|
+
var _value = (_rowModel$flatRows$i = rowModel.flatRows[i]) == null ? void 0 : _rowModel$flatRows$i.values[columnId];
|
|
377
|
+
|
|
378
|
+
if (_value < facetedMinMaxValues[0]) {
|
|
379
|
+
facetedMinMaxValues[0] = _value;
|
|
380
|
+
} else if (_value > facetedMinMaxValues[1]) {
|
|
381
|
+
facetedMinMaxValues[1] = _value;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
return facetedMinMaxValues;
|
|
386
|
+
}
|
|
387
|
+
function getRowModelUniqueValues(rowModel, columnId) {
|
|
388
|
+
var facetedUniqueValues = new Map();
|
|
389
|
+
|
|
390
|
+
for (var i = 0; i < rowModel.flatRows.length; i++) {
|
|
391
|
+
var _rowModel$flatRows$i2;
|
|
392
|
+
|
|
393
|
+
var _value2 = (_rowModel$flatRows$i2 = rowModel.flatRows[i]) == null ? void 0 : _rowModel$flatRows$i2.values[columnId];
|
|
394
|
+
|
|
395
|
+
if (facetedUniqueValues.has(_value2)) {
|
|
396
|
+
var _facetedUniqueValues$;
|
|
397
|
+
|
|
398
|
+
facetedUniqueValues.set(_value2, ((_facetedUniqueValues$ = facetedUniqueValues.get(_value2)) != null ? _facetedUniqueValues$ : 0) + 1);
|
|
399
|
+
} else {
|
|
400
|
+
facetedUniqueValues.set(_value2, 1);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
return facetedUniqueValues;
|
|
405
|
+
}
|
|
330
406
|
|
|
331
407
|
exports.Filters = Filters;
|
|
408
|
+
exports.getRowModelMinMaxValues = getRowModelMinMaxValues;
|
|
409
|
+
exports.getRowModelUniqueValues = getRowModelUniqueValues;
|
|
332
410
|
exports.shouldAutoRemoveFilter = shouldAutoRemoveFilter;
|
|
333
411
|
//# sourceMappingURL=Filters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n} from '../types'\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n} from '../utils'\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n columnFiltersProgress: number\n globalFilterProgress: number\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\n/*\nA filter function is any function that takes an array of rows and returns an array of rows. Because filter functions can be used for both column and global filters, they are passed an array of columnIds to filter on. \n*/\n\nexport type FilterFn<TGenerics extends TableGenerics> = {\n (rows: Row<TGenerics>[], columnIds: string[], filterValue: any): any\n autoRemove?: ColumnFilterAutoRemoveTestFn<TGenerics>\n}\n\nexport type ColumnFilterAutoRemoveTestFn<TGenerics extends TableGenerics> = (\n value: unknown,\n column?: Column<TGenerics>\n) => boolean\n\nexport type CustomFilterFns<TGenerics extends TableGenerics> = Record<\n string,\n FilterFn<TGenerics>\n>\n\nexport type FilterFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInFilterFn\n | keyof TGenerics['FilterFns']\n | FilterFn<TGenerics>\n\nexport type FiltersColumnDef<TGenerics extends TableGenerics> = {\n filterFn?: FilterFnOption<Overwrite<TGenerics, { Value: any }>>\n enableAllFilters?: boolean\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n defaultCanFilter?: boolean\n defaultCanColumnFilter?: boolean\n defaultCanGlobalFilter?: boolean\n}\n\nexport type FiltersColumn<TGenerics extends TableGenerics> = {\n filterFn: FilterFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanColumnFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getColumnFilterIndex: () => number\n getColumnIsFiltered: () => boolean\n getColumnFilterValue: () => unknown\n setColumnFilterValue: (updater: Updater<any>) => void\n getPreFilteredRows: () => Row<TGenerics>[] | undefined\n getPreFilteredUniqueValues: () => Map<any, number>\n getPreFilteredMinMaxValues: () => [any, any]\n}\n\nexport type FiltersOptions<TGenerics extends TableGenerics> = {\n filterFromLeafRows?: boolean\n filterFns?: TGenerics['FilterFns']\n enableFilters?: boolean\n // Column\n manualColumnFiltering?: boolean\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n getColumnFilteredRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n // Global\n manualGlobalFiltering?: boolean\n globalFilterFn?: FilterFnOption<TGenerics>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getGlobalFilteredRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n getColumnCanGlobalFilterFn?: (column: Column<TGenerics>) => boolean\n}\n\nexport type FiltersInstance<TGenerics extends TableGenerics> = {\n getColumnAutoFilterFn: (columnId: string) => FilterFn<TGenerics> | undefined\n\n getColumnFilterFn: (columnId: string) => FilterFn<TGenerics> | undefined\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n setColumnFilterValue: (columnId: string, updater: Updater<any>) => void\n resetColumnFilters: () => void\n getColumnCanColumnFilter: (columnId: string) => boolean\n\n getColumnIsFiltered: (columnId: string) => boolean\n getColumnFilterValue: (columnId: string) => unknown\n getColumnFilterIndex: (columnId: string) => number\n\n // Column Filters\n getPreColumnFilteredRowModel: () => RowModel<TGenerics>\n getColumnFilteredRowModel: () => RowModel<TGenerics>\n _getColumnFilteredRowModel?: () => RowModel<TGenerics>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: () => void\n getGlobalAutoFilterFn: () => FilterFn<TGenerics> | undefined\n getGlobalFilterFn: () => FilterFn<TGenerics> | undefined\n getColumnCanGlobalFilter: (columnId: string) => boolean\n getPreGlobalFilteredRowModel: () => RowModel<TGenerics>\n getGlobalFilteredRowModel: () => RowModel<TGenerics>\n _getGlobalFilteredRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Filters = {\n getDefaultColumn: <\n TGenerics extends TableGenerics\n >(): FiltersColumnDef<TGenerics> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n columnFiltersProgress: 1,\n globalFilterProgress: 1,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): FiltersOptions<TGenerics> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', instance),\n onGlobalFilterChange: makeStateUpdater('globalFilter', instance),\n filterFromLeafRows: true,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilterFn: column => {\n const value = instance\n .getCoreRowModel()\n .flatRows[0]?.getAllCellsByColumnId()[column.id]?.value\n\n return typeof value === 'string'\n },\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): FiltersColumn<TGenerics> => {\n const getFacetInfo = memo(\n () => [column.getPreFilteredRows()],\n (rows = []) => {\n let preFilteredUniqueValues = new Map<any, number>()\n\n let preFilteredMinMaxValues: [any, any] = [\n rows[0]?.values[column.id] ?? null,\n rows[0]?.values[column.id] ?? null,\n ]\n\n for (let i = 0; i < rows.length; i++) {\n const value = rows[i]?.values[column.id]\n\n if (preFilteredUniqueValues.has(value)) {\n preFilteredUniqueValues.set(\n value,\n (preFilteredUniqueValues.get(value) ?? 0) + 1\n )\n } else {\n preFilteredUniqueValues.set(value, 1)\n }\n\n if (value < preFilteredMinMaxValues[0]) {\n preFilteredMinMaxValues[0] = value\n } else if (value > preFilteredMinMaxValues[1]) {\n preFilteredMinMaxValues[1] = value\n }\n }\n\n return {\n preFilteredUniqueValues,\n preFilteredMinMaxValues,\n }\n },\n {\n key: 'column.getFacetInfo',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n )\n\n return {\n filterFn: column.filterFn,\n getCanColumnFilter: () => instance.getColumnCanColumnFilter(column.id),\n getCanGlobalFilter: () => instance.getColumnCanGlobalFilter(column.id),\n getColumnFilterIndex: () => instance.getColumnFilterIndex(column.id),\n getColumnIsFiltered: () => instance.getColumnIsFiltered(column.id),\n getColumnFilterValue: () => instance.getColumnFilterValue(column.id),\n setColumnFilterValue: val =>\n instance.setColumnFilterValue(column.id, val),\n getPreFilteredUniqueValues: () => getFacetInfo().preFilteredUniqueValues,\n getPreFilteredMinMaxValues: () => getFacetInfo().preFilteredMinMaxValues,\n getPreFilteredRows: () => undefined,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): FiltersInstance<TGenerics> => {\n return {\n getColumnAutoFilterFn: columnId => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return filterFns.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns.betweenNumberRange\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes\n }\n\n return filterFns.weakEquals\n },\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n getColumnFilterFn: columnId => {\n const column = instance.getColumn(columnId)\n const userFilterFns = instance.options.filterFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.filterFn)\n ? column.filterFn\n : column.filterFn === 'auto'\n ? instance.getColumnAutoFilterFn(columnId)\n : (userFilterFns as Record<string, any>)?.[\n column.filterFn as string\n ] ??\n (filterFns[\n column.filterFn as BuiltInFilterFn\n ] as FilterFn<TGenerics>)\n },\n\n getGlobalFilterFn: () => {\n const { filterFns: userFilterFns, globalFilterFn: globalFilterFn } =\n instance.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? instance.getGlobalAutoFilterFn()\n : (userFilterFns as Record<string, any>)?.[\n globalFilterFn as string\n ] ??\n (filterFns[\n globalFilterFn as BuiltInFilterFn\n ] as FilterFn<TGenerics>)\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = instance.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = instance.getColumnFilterFn(column.id)\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n instance.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n instance.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: () => {\n instance.setGlobalFilter(instance.initialState.globalFilter)\n },\n\n getColumnCanColumnFilter: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableAllFilters ??\n column.enableColumnFilter ??\n instance.options.enableFilters ??\n instance.options.enableColumnFilters ??\n column.defaultCanColumnFilter ??\n column.defaultCanFilter ??\n !!column.accessorFn\n )\n },\n\n getColumnCanGlobalFilter: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n ((instance.options.enableFilters ??\n instance.options.enableGlobalFilter ??\n column.enableAllFilters ??\n column.enableGlobalFilter ??\n column.defaultCanGlobalFilter ??\n column.defaultCanFilter ??\n !!column.accessorFn) &&\n instance.options.getColumnCanGlobalFilterFn?.(column)) ??\n true\n )\n },\n\n getColumnIsFiltered: columnId =>\n instance.getColumnFilterIndex(columnId) > -1,\n\n getColumnFilterValue: columnId =>\n instance.getState().columnFilters?.find(d => d.id === columnId)?.value,\n\n getColumnFilterIndex: columnId =>\n instance.getState().columnFilters?.findIndex(d => d.id === columnId) ??\n -1,\n\n setColumnFilterValue: (columnId, value) => {\n if (!columnId) return\n\n instance.setColumnFilters(old => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Table: Could not find a column with id: ${columnId}`\n )\n }\n throw new Error()\n }\n\n const filterFn = instance.getColumnFilterFn(column.id)\n const previousfilter = old?.find(d => d.id === columnId)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TGenerics>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== columnId) ?? []\n }\n\n const newFilterObj = { id: columnId, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === columnId) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n\n resetColumnFilters: () => {\n instance.setColumnFilters(instance.initialState?.columnFilters ?? [])\n },\n\n getPreColumnFilteredRowModel: () => instance.getCoreRowModel(),\n getColumnFilteredRowModel: () => {\n if (\n !instance._getColumnFilteredRowModel &&\n instance.options.getColumnFilteredRowModel\n ) {\n instance._getColumnFilteredRowModel =\n instance.options.getColumnFilteredRowModel(instance)\n }\n\n if (\n instance.options.manualColumnFiltering ||\n !instance._getColumnFilteredRowModel\n ) {\n return instance.getPreColumnFilteredRowModel()\n }\n\n return instance._getColumnFilteredRowModel()\n },\n getPreGlobalFilteredRowModel: () => instance.getColumnFilteredRowModel(),\n getGlobalFilteredRowModel: () => {\n if (\n !instance._getGlobalFilteredRowModel &&\n instance.options.getGlobalFilteredRowModel\n ) {\n instance._getGlobalFilteredRowModel =\n instance.options.getGlobalFilteredRowModel(instance)\n }\n\n if (\n instance.options.manualGlobalFiltering ||\n !instance._getGlobalFilteredRowModel\n ) {\n return instance.getPreGlobalFilteredRowModel()\n }\n\n return instance._getGlobalFilteredRowModel()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TGenerics extends TableGenerics>(\n filterFn?: FilterFn<TGenerics>,\n value?: any,\n column?: Column<TGenerics>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"names":["Filters","getDefaultColumn","filterFn","getInitialState","columnFilters","globalFilter","undefined","columnFiltersProgress","globalFilterProgress","getDefaultOptions","instance","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilterFn","column","value","getCoreRowModel","flatRows","getAllCellsByColumnId","id","createColumn","getFacetInfo","memo","getPreFilteredRows","rows","preFilteredUniqueValues","Map","preFilteredMinMaxValues","values","i","length","has","set","get","key","debug","options","debugAll","debugColumns","getCanColumnFilter","getColumnCanColumnFilter","getCanGlobalFilter","getColumnCanGlobalFilter","getColumnFilterIndex","getColumnIsFiltered","getColumnFilterValue","setColumnFilterValue","val","getPreFilteredUniqueValues","getPreFilteredMinMaxValues","createInstance","getColumnAutoFilterFn","columnId","firstRow","filterFns","includesString","betweenNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getGlobalAutoFilterFn","getColumnFilterFn","getColumn","userFilterFns","Error","isFunction","getGlobalFilterFn","setColumnFilters","updater","leafColumns","getAllLeafColumns","updateFn","old","functionalUpdate","filter","find","d","shouldAutoRemoveFilter","setGlobalFilter","resetGlobalFilter","initialState","enableAllFilters","enableColumnFilter","enableFilters","enableColumnFilters","defaultCanColumnFilter","defaultCanFilter","accessorFn","enableGlobalFilter","defaultCanGlobalFilter","getState","findIndex","process","env","NODE_ENV","console","warn","previousfilter","newFilter","newFilterObj","map","resetColumnFilters","getPreColumnFilteredRowModel","getColumnFilteredRowModel","_getColumnFilteredRowModel","manualColumnFiltering","getPreGlobalFilteredRowModel","getGlobalFilteredRowModel","_getGlobalFilteredRowModel","manualGlobalFiltering","autoRemove"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n TableFeature,\n} from '../types'\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n} from '../utils'\nimport { filterRows } from '../utils/filterRowsUtils'\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n columnFiltersProgress: number\n globalFilterProgress: number\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type FilterFn<TGenerics extends TableGenerics> = {\n (row: Row<TGenerics>, columnId: string, filterValue: any): boolean\n resolveFilterValue?: TransformFilterValueFn<TGenerics>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TGenerics>\n}\n\nexport type TransformFilterValueFn<TGenerics extends TableGenerics> = (\n value: any,\n column?: Column<TGenerics>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TGenerics extends TableGenerics> = (\n value: any,\n column?: Column<TGenerics>\n) => boolean\n\nexport type CustomFilterFns<TGenerics extends TableGenerics> = Record<\n string,\n FilterFn<TGenerics>\n>\n\nexport type FilterFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInFilterFn\n | keyof TGenerics['FilterFns']\n | FilterFn<TGenerics>\n\nexport type FiltersColumnDef<TGenerics extends TableGenerics> = {\n filterFn?: FilterFnOption<Overwrite<TGenerics, { Value: any }>>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n enableFaceting?: boolean\n}\n\nexport type FiltersColumn<TGenerics extends TableGenerics> = {\n filterFn: FilterFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanColumnFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getColumnFilterIndex: () => number\n getColumnIsFiltered: () => boolean\n getColumnFilterValue: () => unknown\n setColumnFilterValue: (updater: Updater<any>) => void\n getFacetedRowModel: () => RowModel<TGenerics>\n getFacetedUniqueValues: () => Map<any, number>\n getFacetedMinMaxValues: () => [any, any]\n}\n\nexport type FiltersRow<TGenerics extends TableGenerics> = {\n columnFilterMap: Record<string, boolean>\n subRowsByFacetId: Record<string, Row<TGenerics>[]>\n}\n\nexport type FiltersOptions<TGenerics extends TableGenerics> = {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n filterFns?: TGenerics['FilterFns']\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n getFilteredRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n\n // Global\n globalFilterFn?: FilterFnOption<TGenerics>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TGenerics>) => boolean\n}\n\nexport type FiltersInstance<TGenerics extends TableGenerics> = {\n getColumnAutoFilterFn: (columnId: string) => FilterFn<TGenerics> | undefined\n\n getColumnFilterFn: (columnId: string) => FilterFn<TGenerics> | undefined\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n setColumnFilterValue: (columnId: string, updater: Updater<any>) => void\n resetColumnFilters: () => void\n getColumnCanColumnFilter: (columnId: string) => boolean\n getColumnFacetedRowModel: (columnId: string) => RowModel<TGenerics>\n\n getColumnIsFiltered: (columnId: string) => boolean\n getColumnFilterValue: (columnId: string) => unknown\n getColumnFilterIndex: (columnId: string) => number\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TGenerics>\n getFilteredRowModel: () => RowModel<TGenerics>\n _getFilteredRowModel?: () => RowModel<TGenerics>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: () => void\n getGlobalAutoFilterFn: () => FilterFn<TGenerics> | undefined\n getGlobalFilterFn: () => FilterFn<TGenerics> | undefined\n getColumnCanGlobalFilter: (columnId: string) => boolean\n getGlobalFacetedRowModel: () => RowModel<TGenerics>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumn: <\n TGenerics extends TableGenerics\n >(): FiltersColumnDef<TGenerics> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n columnFiltersProgress: 1,\n globalFilterProgress: 1,\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): FiltersOptions<TGenerics> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', instance),\n onGlobalFilterChange: makeStateUpdater('globalFilter', instance),\n filterFromLeafRows: true,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = instance\n .getCoreRowModel()\n .flatRows[0]?.getAllCellsByColumnId()[column.id]?.value\n\n return typeof value === 'string'\n },\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): FiltersColumn<TGenerics> => {\n return {\n filterFn: column.filterFn,\n getCanColumnFilter: () => instance.getColumnCanColumnFilter(column.id),\n getCanGlobalFilter: () => instance.getColumnCanGlobalFilter(column.id),\n getColumnFilterIndex: () => instance.getColumnFilterIndex(column.id),\n getColumnIsFiltered: () => instance.getColumnIsFiltered(column.id),\n getColumnFilterValue: () => instance.getColumnFilterValue(column.id),\n setColumnFilterValue: val =>\n instance.setColumnFilterValue(column.id, val),\n getFacetedRowModel: memo(\n () => [\n instance.getPreFilteredRowModel(),\n instance.getState().columnFilters,\n instance.getState().globalFilter,\n // Include this to force the filtered facet info to be calculated\n instance.getFilteredRowModel(),\n ],\n (rowModel, columnFilters, globalFilter, _) => {\n if (!columnFilters?.length && !globalFilter) {\n return rowModel\n }\n\n return filterRows(\n rowModel.rows,\n [\n ...columnFilters.map(d => d.id).filter(d => d !== column.id),\n globalFilter ? '__global__' : undefined,\n ].filter(Boolean) as string[],\n instance\n )\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFacetedRowModel_' + column.id,\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getFacetedUniqueValues: memo(\n () => [column.getFacetedRowModel()],\n facetedRowModel => getRowModelUniqueValues(facetedRowModel, column.id),\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'column.getFacetedUniqueValues',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getFacetedMinMaxValues: memo(\n () => [column.getFacetedRowModel()],\n facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'column.getFacetedMinMaxValues',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): FiltersRow<TGenerics> => {\n return {\n columnFilterMap: {},\n subRowsByFacetId: {},\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): FiltersInstance<TGenerics> => {\n return {\n getColumnAutoFilterFn: columnId => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return filterFns.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes\n }\n\n return filterFns.weakEquals\n },\n getColumnFacetedRowModel: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return column.getFacetedRowModel()\n },\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n getColumnFilterFn: columnId => {\n const column = instance.getColumn(columnId)\n const userFilterFns = instance.options.filterFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.filterFn)\n ? column.filterFn\n : column.filterFn === 'auto'\n ? instance.getColumnAutoFilterFn(columnId)\n : (userFilterFns as Record<string, any>)?.[\n column.filterFn as string\n ] ??\n (filterFns[\n column.filterFn as BuiltInFilterFn\n ] as FilterFn<TGenerics>)\n },\n\n getGlobalFilterFn: () => {\n const { filterFns: userFilterFns, globalFilterFn: globalFilterFn } =\n instance.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? instance.getGlobalAutoFilterFn()\n : (userFilterFns as Record<string, any>)?.[\n globalFilterFn as string\n ] ??\n (filterFns[\n globalFilterFn as BuiltInFilterFn\n ] as FilterFn<TGenerics>)\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = instance.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = instance.getColumnFilterFn(column.id)\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n instance.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n instance.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: () => {\n instance.setGlobalFilter(instance.initialState.globalFilter)\n },\n\n getColumnCanColumnFilter: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n (column.enableColumnFilter ?? true) &&\n (instance.options.enableColumnFilters ?? true) &&\n (instance.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getColumnCanGlobalFilter: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n (column.enableGlobalFilter ?? true) &&\n (instance.options.enableGlobalFilter ?? true) &&\n (instance.options.enableFilters ?? true) &&\n (instance.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getColumnIsFiltered: columnId =>\n instance.getColumnFilterIndex(columnId) > -1,\n\n getColumnFilterValue: columnId =>\n instance.getState().columnFilters?.find(d => d.id === columnId)?.value,\n\n getColumnFilterIndex: columnId =>\n instance.getState().columnFilters?.findIndex(d => d.id === columnId) ??\n -1,\n\n setColumnFilterValue: (columnId, value) => {\n if (!columnId) return\n\n instance.setColumnFilters(old => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Table: Could not find a column with id: ${columnId}`\n )\n }\n throw new Error()\n }\n\n const filterFn = instance.getColumnFilterFn(column.id)\n const previousfilter = old?.find(d => d.id === columnId)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TGenerics>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== columnId) ?? []\n }\n\n const newFilterObj = { id: columnId, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === columnId) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n\n resetColumnFilters: () => {\n instance.setColumnFilters(instance.initialState?.columnFilters ?? [])\n },\n\n getPreFilteredRowModel: () => instance.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (\n !instance._getFilteredRowModel &&\n instance.options.getFilteredRowModel\n ) {\n instance._getFilteredRowModel =\n instance.options.getFilteredRowModel(instance)\n }\n\n if (\n instance.options.manualFiltering ||\n !instance._getFilteredRowModel\n ) {\n return instance.getPreFilteredRowModel()\n }\n\n return instance._getFilteredRowModel()\n },\n\n getGlobalFacetedRowModel: memo(\n () => [\n instance.getPreFilteredRowModel(),\n instance.getState().columnFilters,\n instance.getState().globalFilter,\n // Include this to force the filtered facet info to be calculated\n instance.getFilteredRowModel(),\n ],\n (rowModel, columnFilters, globalFilter, _) => {\n if (!columnFilters?.length && !globalFilter) {\n return rowModel\n }\n\n return filterRows(\n rowModel.rows,\n columnFilters.map(d => d.id),\n instance\n )\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'getGlobalFacetedRowModel',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getGlobalFacetedUniqueValues: memo(\n () => [instance.getGlobalFacetedRowModel()],\n facetedRowModel =>\n getRowModelUniqueValues(facetedRowModel, '__global__'),\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGlobalFacetedUniqueValues',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getGlobalFacetedMinMaxValues: memo(\n () => [instance.getGlobalFacetedRowModel()],\n facetedRowModel =>\n getRowModelMinMaxValues(facetedRowModel, '__global__'),\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGlobalFacetedMinMaxValues',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TGenerics extends TableGenerics>(\n filterFn?: FilterFn<TGenerics>,\n value?: any,\n column?: Column<TGenerics>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n\nexport function getRowModelMinMaxValues<TGenerics extends TableGenerics>(\n rowModel: RowModel<TGenerics>,\n columnId: string\n) {\n let facetedMinMaxValues: [any, any] = [\n rowModel.flatRows[0]?.values[columnId] ?? null,\n rowModel.flatRows[0]?.values[columnId] ?? null,\n ]\n\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n const value = rowModel.flatRows[i]?.values[columnId]\n\n if (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value\n }\n }\n\n return facetedMinMaxValues\n}\n\nexport function getRowModelUniqueValues<TGenerics extends TableGenerics>(\n rowModel: RowModel<TGenerics>,\n columnId: string\n) {\n let facetedUniqueValues = new Map<any, number>()\n\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n const value = rowModel.flatRows[i]?.values[columnId]\n\n if (facetedUniqueValues.has(value)) {\n facetedUniqueValues.set(value, (facetedUniqueValues.get(value) ?? 0) + 1)\n } else {\n facetedUniqueValues.set(value, 1)\n }\n }\n\n return facetedUniqueValues\n}\n"],"names":["Filters","getDefaultColumn","filterFn","getInitialState","state","_extends","columnFilters","globalFilter","undefined","columnFiltersProgress","globalFilterProgress","getDefaultOptions","instance","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","getAllCellsByColumnId","id","createColumn","getCanColumnFilter","getColumnCanColumnFilter","getCanGlobalFilter","getColumnFilterIndex","getColumnIsFiltered","getColumnFilterValue","setColumnFilterValue","val","getFacetedRowModel","memo","getPreFilteredRowModel","getState","getFilteredRowModel","rowModel","_","length","filterRows","rows","map","d","filter","Boolean","key","process","env","NODE_ENV","debug","options","debugAll","debugColumns","getFacetedUniqueValues","facetedRowModel","getRowModelUniqueValues","getFacetedMinMaxValues","getRowModelMinMaxValues","createRow","row","columnFilterMap","subRowsByFacetId","createInstance","getColumnAutoFilterFn","columnId","firstRow","values","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getColumnFacetedRowModel","getColumn","Error","getGlobalAutoFilterFn","getColumnFilterFn","userFilterFns","isFunction","getGlobalFilterFn","setColumnFilters","updater","leafColumns","getAllLeafColumns","updateFn","old","functionalUpdate","find","shouldAutoRemoveFilter","setGlobalFilter","resetGlobalFilter","initialState","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","enableGlobalFilter","findIndex","console","warn","previousfilter","newFilter","newFilterObj","resetColumnFilters","_getFilteredRowModel","manualFiltering","getGlobalFacetedRowModel","getGlobalFacetedUniqueValues","getGlobalFacetedMinMaxValues","autoRemove","facetedMinMaxValues","i","facetedUniqueValues","Map","has","set","get"],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
|
+
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
15
16
|
var aggregationFns = require('../aggregationFns.js');
|
|
16
17
|
var utils = require('../utils.js');
|
|
17
18
|
|
|
@@ -22,10 +23,10 @@ var Grouping = {
|
|
|
22
23
|
aggregationFn: 'auto'
|
|
23
24
|
};
|
|
24
25
|
},
|
|
25
|
-
getInitialState: function getInitialState() {
|
|
26
|
-
return {
|
|
26
|
+
getInitialState: function getInitialState(state) {
|
|
27
|
+
return _rollupPluginBabelHelpers["extends"]({
|
|
27
28
|
grouping: []
|
|
28
|
-
};
|
|
29
|
+
}, state);
|
|
29
30
|
},
|
|
30
31
|
getDefaultOptions: function getDefaultOptions(instance) {
|
|
31
32
|
return {
|
|
@@ -184,28 +185,29 @@ var Grouping = {
|
|
|
184
185
|
}) : null;
|
|
185
186
|
}
|
|
186
187
|
};
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
var nonGroupingColumns = leafColumns.filter(function (col) {
|
|
194
|
-
return !grouping.includes(col.id);
|
|
195
|
-
});
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
function orderColumns(leafColumns, grouping, groupedColumnMode) {
|
|
191
|
+
if (!(grouping != null && grouping.length) || !groupedColumnMode) {
|
|
192
|
+
return leafColumns;
|
|
193
|
+
}
|
|
196
194
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
195
|
+
var nonGroupingColumns = leafColumns.filter(function (col) {
|
|
196
|
+
return !grouping.includes(col.id);
|
|
197
|
+
});
|
|
200
198
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
return col.id === g;
|
|
204
|
-
});
|
|
205
|
-
}).filter(Boolean);
|
|
206
|
-
return [].concat(groupingColumns, nonGroupingColumns);
|
|
199
|
+
if (groupedColumnMode === 'remove') {
|
|
200
|
+
return nonGroupingColumns;
|
|
207
201
|
}
|
|
208
|
-
|
|
202
|
+
|
|
203
|
+
var groupingColumns = grouping.map(function (g) {
|
|
204
|
+
return leafColumns.find(function (col) {
|
|
205
|
+
return col.id === g;
|
|
206
|
+
});
|
|
207
|
+
}).filter(Boolean);
|
|
208
|
+
return [].concat(groupingColumns, nonGroupingColumns);
|
|
209
|
+
}
|
|
209
210
|
|
|
210
211
|
exports.Grouping = Grouping;
|
|
212
|
+
exports.orderColumns = orderColumns;
|
|
211
213
|
//# sourceMappingURL=Grouping.js.map
|