@tanstack/table-core 8.5.13 → 8.5.16
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/aggregationFns.js +0 -15
- package/build/cjs/aggregationFns.js.map +1 -1
- package/build/cjs/columnHelper.js +10 -2
- package/build/cjs/columnHelper.js.map +1 -1
- package/build/cjs/core/cell.js +2 -9
- package/build/cjs/core/cell.js.map +1 -1
- package/build/cjs/core/column.js +9 -27
- package/build/cjs/core/column.js.map +1 -1
- package/build/cjs/core/headers.js +45 -129
- package/build/cjs/core/headers.js.map +1 -1
- package/build/cjs/core/row.js +4 -21
- package/build/cjs/core/row.js.map +1 -1
- package/build/cjs/core/table.js +26 -73
- package/build/cjs/core/table.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +56 -67
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +18 -34
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +19 -55
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +9 -26
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js +14 -13
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +20 -43
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +26 -66
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +44 -74
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +25 -50
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +14 -32
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +3 -28
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/sortingFns.js +24 -31
- package/build/cjs/sortingFns.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +7 -19
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +12 -18
- package/build/cjs/utils/getCoreRowModel.js.map +1 -1
- package/build/cjs/utils/getExpandedRowModel.js +2 -12
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +1 -11
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/cjs/utils/getFacetedRowModel.js +1 -9
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedUniqueValues.js +2 -12
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
- package/build/cjs/utils/getFilteredRowModel.js +14 -34
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
- package/build/cjs/utils/getGroupedRowModel.js +25 -35
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js +1 -11
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +8 -23
- package/build/cjs/utils/getSortedRowModel.js.map +1 -1
- package/build/cjs/utils.js +11 -14
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +452 -993
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +44 -34
- package/build/stats-react.json +371 -371
- package/build/umd/index.development.js +452 -991
- 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/features/ColumnSizing.ts +11 -1
- package/src/features/Expanding.ts +1 -1
|
@@ -16,6 +16,7 @@ var filterFns = require('../filterFns.js');
|
|
|
16
16
|
var utils = require('../utils.js');
|
|
17
17
|
|
|
18
18
|
//
|
|
19
|
+
|
|
19
20
|
const Filters = {
|
|
20
21
|
getDefaultColumnDef: () => {
|
|
21
22
|
return {
|
|
@@ -39,7 +40,6 @@ const Filters = {
|
|
|
39
40
|
globalFilterFn: 'auto',
|
|
40
41
|
getColumnCanGlobalFilter: column => {
|
|
41
42
|
var _table$getCoreRowMode, _table$getCoreRowMode2;
|
|
42
|
-
|
|
43
43
|
const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null ? void 0 : (_table$getCoreRowMode2 = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode2.getValue();
|
|
44
44
|
return typeof value === 'string' || typeof value === 'number';
|
|
45
45
|
}
|
|
@@ -50,88 +50,67 @@ const Filters = {
|
|
|
50
50
|
getAutoFilterFn: () => {
|
|
51
51
|
const firstRow = table.getCoreRowModel().flatRows[0];
|
|
52
52
|
const value = firstRow == null ? void 0 : firstRow.getValue(column.id);
|
|
53
|
-
|
|
54
53
|
if (typeof value === 'string') {
|
|
55
54
|
return filterFns.filterFns.includesString;
|
|
56
55
|
}
|
|
57
|
-
|
|
58
56
|
if (typeof value === 'number') {
|
|
59
57
|
return filterFns.filterFns.inNumberRange;
|
|
60
58
|
}
|
|
61
|
-
|
|
62
59
|
if (typeof value === 'boolean') {
|
|
63
60
|
return filterFns.filterFns.equals;
|
|
64
61
|
}
|
|
65
|
-
|
|
66
62
|
if (value !== null && typeof value === 'object') {
|
|
67
63
|
return filterFns.filterFns.equals;
|
|
68
64
|
}
|
|
69
|
-
|
|
70
65
|
if (Array.isArray(value)) {
|
|
71
66
|
return filterFns.filterFns.arrIncludes;
|
|
72
67
|
}
|
|
73
|
-
|
|
74
68
|
return filterFns.filterFns.weakEquals;
|
|
75
69
|
},
|
|
76
70
|
getFilterFn: () => {
|
|
77
|
-
var _table$options$filter
|
|
78
|
-
|
|
79
|
-
return utils.isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns.filterFns[column.columnDef.filterFn];
|
|
71
|
+
var _table$options$filter;
|
|
72
|
+
return utils.isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : ((_table$options$filter = table.options.filterFns) == null ? void 0 : _table$options$filter[column.columnDef.filterFn]) ?? filterFns.filterFns[column.columnDef.filterFn];
|
|
80
73
|
},
|
|
81
74
|
getCanFilter: () => {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;
|
|
75
|
+
return (column.columnDef.enableColumnFilter ?? true) && (table.options.enableColumnFilters ?? true) && (table.options.enableFilters ?? true) && !!column.accessorFn;
|
|
85
76
|
},
|
|
86
77
|
getCanGlobalFilter: () => {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
return ((_column$columnDef$ena2 = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena2 : true) && ((_table$options$enable3 = table.options.enableGlobalFilter) != null ? _table$options$enable3 : true) && ((_table$options$enable4 = table.options.enableFilters) != null ? _table$options$enable4 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;
|
|
78
|
+
return (column.columnDef.enableGlobalFilter ?? true) && (table.options.enableGlobalFilter ?? true) && (table.options.enableFilters ?? true) && ((table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) ?? true) && !!column.accessorFn;
|
|
90
79
|
},
|
|
91
80
|
getIsFiltered: () => column.getFilterIndex() > -1,
|
|
92
81
|
getFilterValue: () => {
|
|
93
82
|
var _table$getState$colum, _table$getState$colum2;
|
|
94
|
-
|
|
95
83
|
return (_table$getState$colum = table.getState().columnFilters) == null ? void 0 : (_table$getState$colum2 = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum2.value;
|
|
96
84
|
},
|
|
97
85
|
getFilterIndex: () => {
|
|
98
|
-
var _table$getState$colum3
|
|
99
|
-
|
|
100
|
-
return (_table$getState$colum3 = (_table$getState$colum4 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum4.findIndex(d => d.id === column.id)) != null ? _table$getState$colum3 : -1;
|
|
86
|
+
var _table$getState$colum3;
|
|
87
|
+
return ((_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex(d => d.id === column.id)) ?? -1;
|
|
101
88
|
},
|
|
102
89
|
setFilterValue: value => {
|
|
103
90
|
table.setColumnFilters(old => {
|
|
104
91
|
const filterFn = column.getFilterFn();
|
|
105
92
|
const previousfilter = old == null ? void 0 : old.find(d => d.id === column.id);
|
|
106
|
-
const newFilter = utils.functionalUpdate(value, previousfilter ? previousfilter.value : undefined);
|
|
93
|
+
const newFilter = utils.functionalUpdate(value, previousfilter ? previousfilter.value : undefined);
|
|
107
94
|
|
|
95
|
+
//
|
|
108
96
|
if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];
|
|
97
|
+
return (old == null ? void 0 : old.filter(d => d.id !== column.id)) ?? [];
|
|
112
98
|
}
|
|
113
|
-
|
|
114
99
|
const newFilterObj = {
|
|
115
100
|
id: column.id,
|
|
116
101
|
value: newFilter
|
|
117
102
|
};
|
|
118
|
-
|
|
119
103
|
if (previousfilter) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
return (_old$map = old == null ? void 0 : old.map(d => {
|
|
104
|
+
return (old == null ? void 0 : old.map(d => {
|
|
123
105
|
if (d.id === column.id) {
|
|
124
106
|
return newFilterObj;
|
|
125
107
|
}
|
|
126
|
-
|
|
127
108
|
return d;
|
|
128
|
-
}))
|
|
109
|
+
})) ?? [];
|
|
129
110
|
}
|
|
130
|
-
|
|
131
111
|
if (old != null && old.length) {
|
|
132
112
|
return [...old, newFilterObj];
|
|
133
113
|
}
|
|
134
|
-
|
|
135
114
|
return [newFilterObj];
|
|
136
115
|
});
|
|
137
116
|
},
|
|
@@ -140,7 +119,6 @@ const Filters = {
|
|
|
140
119
|
if (!column._getFacetedRowModel) {
|
|
141
120
|
return table.getPreFilteredRowModel();
|
|
142
121
|
}
|
|
143
|
-
|
|
144
122
|
return column._getFacetedRowModel();
|
|
145
123
|
},
|
|
146
124
|
_getFacetedUniqueValues: table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id),
|
|
@@ -148,7 +126,6 @@ const Filters = {
|
|
|
148
126
|
if (!column._getFacetedUniqueValues) {
|
|
149
127
|
return new Map();
|
|
150
128
|
}
|
|
151
|
-
|
|
152
129
|
return column._getFacetedUniqueValues();
|
|
153
130
|
},
|
|
154
131
|
_getFacetedMinMaxValues: table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id),
|
|
@@ -156,13 +133,13 @@ const Filters = {
|
|
|
156
133
|
if (!column._getFacetedMinMaxValues) {
|
|
157
134
|
return undefined;
|
|
158
135
|
}
|
|
159
|
-
|
|
160
136
|
return column._getFacetedMinMaxValues();
|
|
161
|
-
}
|
|
137
|
+
}
|
|
138
|
+
// () => [column.getFacetedRowModel()],
|
|
162
139
|
// facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),
|
|
163
|
-
|
|
164
140
|
};
|
|
165
141
|
},
|
|
142
|
+
|
|
166
143
|
createRow: (row, table) => {
|
|
167
144
|
return {
|
|
168
145
|
columnFilters: {},
|
|
@@ -175,34 +152,27 @@ const Filters = {
|
|
|
175
152
|
return filterFns.filterFns.includesString;
|
|
176
153
|
},
|
|
177
154
|
getGlobalFilterFn: () => {
|
|
178
|
-
var _table$options$
|
|
179
|
-
|
|
155
|
+
var _table$options$filter2;
|
|
180
156
|
const {
|
|
181
157
|
globalFilterFn: globalFilterFn
|
|
182
158
|
} = table.options;
|
|
183
|
-
return utils.isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : (
|
|
159
|
+
return utils.isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : ((_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[globalFilterFn]) ?? filterFns.filterFns[globalFilterFn];
|
|
184
160
|
},
|
|
185
161
|
setColumnFilters: updater => {
|
|
186
162
|
const leafColumns = table.getAllLeafColumns();
|
|
187
|
-
|
|
188
163
|
const updateFn = old => {
|
|
189
164
|
var _functionalUpdate;
|
|
190
|
-
|
|
191
165
|
return (_functionalUpdate = utils.functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {
|
|
192
166
|
const column = leafColumns.find(d => d.id === filter.id);
|
|
193
|
-
|
|
194
167
|
if (column) {
|
|
195
168
|
const filterFn = column.getFilterFn();
|
|
196
|
-
|
|
197
169
|
if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {
|
|
198
170
|
return false;
|
|
199
171
|
}
|
|
200
172
|
}
|
|
201
|
-
|
|
202
173
|
return true;
|
|
203
174
|
});
|
|
204
175
|
};
|
|
205
|
-
|
|
206
176
|
table.options.onColumnFiltersChange == null ? void 0 : table.options.onColumnFiltersChange(updateFn);
|
|
207
177
|
},
|
|
208
178
|
setGlobalFilter: updater => {
|
|
@@ -212,20 +182,17 @@ const Filters = {
|
|
|
212
182
|
table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);
|
|
213
183
|
},
|
|
214
184
|
resetColumnFilters: defaultState => {
|
|
215
|
-
var _table$initialState
|
|
216
|
-
|
|
217
|
-
table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);
|
|
185
|
+
var _table$initialState;
|
|
186
|
+
table.setColumnFilters(defaultState ? [] : ((_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) ?? []);
|
|
218
187
|
},
|
|
219
188
|
getPreFilteredRowModel: () => table.getCoreRowModel(),
|
|
220
189
|
getFilteredRowModel: () => {
|
|
221
190
|
if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {
|
|
222
191
|
table._getFilteredRowModel = table.options.getFilteredRowModel(table);
|
|
223
192
|
}
|
|
224
|
-
|
|
225
193
|
if (table.options.manualFiltering || !table._getFilteredRowModel) {
|
|
226
194
|
return table.getPreFilteredRowModel();
|
|
227
195
|
}
|
|
228
|
-
|
|
229
196
|
return table._getFilteredRowModel();
|
|
230
197
|
},
|
|
231
198
|
_getGlobalFacetedRowModel: table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__'),
|
|
@@ -233,7 +200,6 @@ const Filters = {
|
|
|
233
200
|
if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {
|
|
234
201
|
return table.getPreFilteredRowModel();
|
|
235
202
|
}
|
|
236
|
-
|
|
237
203
|
return table._getGlobalFacetedRowModel();
|
|
238
204
|
},
|
|
239
205
|
_getGlobalFacetedUniqueValues: table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__'),
|
|
@@ -241,7 +207,6 @@ const Filters = {
|
|
|
241
207
|
if (!table._getGlobalFacetedUniqueValues) {
|
|
242
208
|
return new Map();
|
|
243
209
|
}
|
|
244
|
-
|
|
245
210
|
return table._getGlobalFacetedUniqueValues();
|
|
246
211
|
},
|
|
247
212
|
_getGlobalFacetedMinMaxValues: table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__'),
|
|
@@ -249,7 +214,6 @@ const Filters = {
|
|
|
249
214
|
if (!table._getGlobalFacetedMinMaxValues) {
|
|
250
215
|
return;
|
|
251
216
|
}
|
|
252
|
-
|
|
253
217
|
return table._getGlobalFacetedMinMaxValues();
|
|
254
218
|
}
|
|
255
219
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n FilterFns,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type ResolvedColumnFilter<TData extends RowData> = {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport type FilterFn<TData extends RowData> = {\n (\n row: Row<TData>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: FilterMeta) => void\n ): boolean\n\n resolveFilterValue?: TransformFilterValueFn<TData>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TData>\n}\n\nexport type TransformFilterValueFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => boolean\n\nexport type CustomFilterFns<TData extends RowData> = Record<\n string,\n FilterFn<TData>\n>\n\nexport type FilterFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInFilterFn\n | keyof FilterFns\n | FilterFn<TData>\n\nexport type FiltersColumnDef<TData extends RowData> = {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport type FiltersColumn<TData extends RowData> = {\n getAutoFilterFn: () => FilterFn<TData> | undefined\n getFilterFn: () => FilterFn<TData> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TData>\n _getFacetedRowModel?: () => RowModel<TData>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport type FiltersRow<TData extends RowData> = {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\nexport type FiltersOptions<TData extends RowData> = {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TData>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n table: Table<TData>,\n columnId: string\n ) => () => RowModel<TData>\n getFacetedUniqueValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => undefined | [number, number]\n} & (keyof FilterFns extends never\n ? {\n filterFns?: Record<string, FilterFn<any>>\n }\n : {\n filterFns: Record<keyof FilterFns, FilterFn<any>>\n })\n\nexport type FiltersInstance<TData extends RowData> = {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TData>\n getFilteredRowModel: () => RowModel<TData>\n _getFilteredRowModel?: () => RowModel<TData>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TData> | undefined\n getGlobalFilterFn: () => FilterFn<TData> | undefined\n getGlobalFacetedRowModel: () => RowModel<TData>\n _getGlobalFacetedRowModel?: () => RowModel<TData>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): FiltersColumnDef<TData> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): FiltersOptions<TData> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n }\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): FiltersColumn<TData> => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\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 (typeof value === 'boolean') {\n return filterFns.equals\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 getFilterFn: () => {\n return isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column.getAutoFilterFn()\n : table.options.filterFns?.[column.columnDef.filterFn as string] ??\n filterFns[column.columnDef.filterFn as BuiltInFilterFn]\n },\n getCanFilter: () => {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (table.options.enableColumnFilters ?? true) &&\n (table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (table.options.enableGlobalFilter ?? true) &&\n (table.options.enableFilters ?? true) &&\n (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n table.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n table.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn()\n const previousfilter = old?.find(d => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TData>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== column.id) ?? []\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === column.id) {\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 _getFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): FiltersRow<TData> => {\n return {\n columnFilters: {},\n columnFiltersMeta: {},\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): FiltersInstance<TData> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { globalFilterFn: globalFilterFn } = table.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table.getGlobalAutoFilterFn()\n : table.options.filterFns?.[globalFilterFn as string] ??\n filterFns[globalFilterFn as BuiltInFilterFn]\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = table.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 = column.getFilterFn()\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(\n defaultState ? undefined : table.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n table.setColumnFilters(\n defaultState ? [] : table.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table)\n }\n\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return table._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return table._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TData extends RowData>(\n filterFn?: FilterFn<TData>,\n value?: any,\n column?: Column<TData, unknown>\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","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","table","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","isFunction","columnDef","options","getCanFilter","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","getState","find","d","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","filter","newFilterObj","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","updater","leafColumns","getAllLeafColumns","updateFn","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","getFilteredRowModel","_getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n FilterFns,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type ResolvedColumnFilter<TData extends RowData> = {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport type FilterFn<TData extends RowData> = {\n (\n row: Row<TData>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: FilterMeta) => void\n ): boolean\n\n resolveFilterValue?: TransformFilterValueFn<TData>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TData>\n}\n\nexport type TransformFilterValueFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => boolean\n\nexport type CustomFilterFns<TData extends RowData> = Record<\n string,\n FilterFn<TData>\n>\n\nexport type FilterFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInFilterFn\n | keyof FilterFns\n | FilterFn<TData>\n\nexport type FiltersColumnDef<TData extends RowData> = {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport type FiltersColumn<TData extends RowData> = {\n getAutoFilterFn: () => FilterFn<TData> | undefined\n getFilterFn: () => FilterFn<TData> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TData>\n _getFacetedRowModel?: () => RowModel<TData>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport type FiltersRow<TData extends RowData> = {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\nexport type FiltersOptions<TData extends RowData> = {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TData>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n table: Table<TData>,\n columnId: string\n ) => () => RowModel<TData>\n getFacetedUniqueValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => undefined | [number, number]\n} & (keyof FilterFns extends never\n ? {\n filterFns?: Record<string, FilterFn<any>>\n }\n : {\n filterFns: Record<keyof FilterFns, FilterFn<any>>\n })\n\nexport type FiltersInstance<TData extends RowData> = {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TData>\n getFilteredRowModel: () => RowModel<TData>\n _getFilteredRowModel?: () => RowModel<TData>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TData> | undefined\n getGlobalFilterFn: () => FilterFn<TData> | undefined\n getGlobalFacetedRowModel: () => RowModel<TData>\n _getGlobalFacetedRowModel?: () => RowModel<TData>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): FiltersColumnDef<TData> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): FiltersOptions<TData> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n }\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): FiltersColumn<TData> => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\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 (typeof value === 'boolean') {\n return filterFns.equals\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 getFilterFn: () => {\n return isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column.getAutoFilterFn()\n : table.options.filterFns?.[column.columnDef.filterFn as string] ??\n filterFns[column.columnDef.filterFn as BuiltInFilterFn]\n },\n getCanFilter: () => {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (table.options.enableColumnFilters ?? true) &&\n (table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (table.options.enableGlobalFilter ?? true) &&\n (table.options.enableFilters ?? true) &&\n (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n table.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n table.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn()\n const previousfilter = old?.find(d => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TData>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== column.id) ?? []\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === column.id) {\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 _getFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): FiltersRow<TData> => {\n return {\n columnFilters: {},\n columnFiltersMeta: {},\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): FiltersInstance<TData> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { globalFilterFn: globalFilterFn } = table.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table.getGlobalAutoFilterFn()\n : table.options.filterFns?.[globalFilterFn as string] ??\n filterFns[globalFilterFn as BuiltInFilterFn]\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = table.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 = column.getFilterFn()\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(\n defaultState ? undefined : table.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n table.setColumnFilters(\n defaultState ? [] : table.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table)\n }\n\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return table._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return table._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TData extends RowData>(\n filterFn?: FilterFn<TData>,\n value?: any,\n column?: Column<TData, unknown>\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","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","table","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","isFunction","columnDef","options","getCanFilter","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","getState","find","d","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","filter","newFilterObj","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","updater","leafColumns","getAllLeafColumns","updateFn","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","getFilteredRowModel","_getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
|
|
@@ -16,13 +16,13 @@ var aggregationFns = require('../aggregationFns.js');
|
|
|
16
16
|
var utils = require('../utils.js');
|
|
17
17
|
|
|
18
18
|
//
|
|
19
|
+
|
|
19
20
|
const Grouping = {
|
|
20
21
|
getDefaultColumnDef: () => {
|
|
21
22
|
return {
|
|
22
23
|
aggregatedCell: props => {
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
return (_toString = (_props$getValue = props.getValue()) == null ? void 0 : _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;
|
|
24
|
+
var _props$getValue;
|
|
25
|
+
return ((_props$getValue = props.getValue()) == null ? void 0 : _props$getValue.toString == null ? void 0 : _props$getValue.toString()) ?? null;
|
|
26
26
|
},
|
|
27
27
|
aggregationFn: 'auto'
|
|
28
28
|
};
|
|
@@ -47,23 +47,18 @@ const Grouping = {
|
|
|
47
47
|
if (old != null && old.includes(column.id)) {
|
|
48
48
|
return old.filter(d => d !== column.id);
|
|
49
49
|
}
|
|
50
|
-
|
|
51
|
-
return [...(old != null ? old : []), column.id];
|
|
50
|
+
return [...(old ?? []), column.id];
|
|
52
51
|
});
|
|
53
52
|
},
|
|
54
53
|
getCanGroup: () => {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
return (_ref = (_ref2 = (_ref3 = (_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) != null ? _ref3 : table.options.enableGrouping) != null ? _ref2 : true) != null ? _ref : !!column.accessorFn;
|
|
54
|
+
return column.columnDef.enableGrouping ?? true ?? table.options.enableGrouping ?? true ?? !!column.accessorFn;
|
|
58
55
|
},
|
|
59
56
|
getIsGrouped: () => {
|
|
60
57
|
var _table$getState$group;
|
|
61
|
-
|
|
62
58
|
return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);
|
|
63
59
|
},
|
|
64
60
|
getGroupedIndex: () => {
|
|
65
61
|
var _table$getState$group2;
|
|
66
|
-
|
|
67
62
|
return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);
|
|
68
63
|
},
|
|
69
64
|
getToggleGroupingHandler: () => {
|
|
@@ -76,23 +71,19 @@ const Grouping = {
|
|
|
76
71
|
getAutoAggregationFn: () => {
|
|
77
72
|
const firstRow = table.getCoreRowModel().flatRows[0];
|
|
78
73
|
const value = firstRow == null ? void 0 : firstRow.getValue(column.id);
|
|
79
|
-
|
|
80
74
|
if (typeof value === 'number') {
|
|
81
75
|
return aggregationFns.aggregationFns.sum;
|
|
82
76
|
}
|
|
83
|
-
|
|
84
77
|
if (Object.prototype.toString.call(value) === '[object Date]') {
|
|
85
78
|
return aggregationFns.aggregationFns.extent;
|
|
86
79
|
}
|
|
87
80
|
},
|
|
88
81
|
getAggregationFn: () => {
|
|
89
|
-
var _table$options$aggreg
|
|
90
|
-
|
|
82
|
+
var _table$options$aggreg;
|
|
91
83
|
if (!column) {
|
|
92
84
|
throw new Error();
|
|
93
85
|
}
|
|
94
|
-
|
|
95
|
-
return utils.isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns.aggregationFns[column.columnDef.aggregationFn];
|
|
86
|
+
return utils.isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : ((_table$options$aggreg = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg[column.columnDef.aggregationFn]) ?? aggregationFns.aggregationFns[column.columnDef.aggregationFn];
|
|
96
87
|
}
|
|
97
88
|
};
|
|
98
89
|
},
|
|
@@ -100,20 +91,17 @@ const Grouping = {
|
|
|
100
91
|
return {
|
|
101
92
|
setGrouping: updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater),
|
|
102
93
|
resetGrouping: defaultState => {
|
|
103
|
-
var _table$initialState
|
|
104
|
-
|
|
105
|
-
table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);
|
|
94
|
+
var _table$initialState;
|
|
95
|
+
table.setGrouping(defaultState ? [] : ((_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) ?? []);
|
|
106
96
|
},
|
|
107
97
|
getPreGroupedRowModel: () => table.getFilteredRowModel(),
|
|
108
98
|
getGroupedRowModel: () => {
|
|
109
99
|
if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {
|
|
110
100
|
table._getGroupedRowModel = table.options.getGroupedRowModel(table);
|
|
111
101
|
}
|
|
112
|
-
|
|
113
102
|
if (table.options.manualGrouping || !table._getGroupedRowModel) {
|
|
114
103
|
return table.getPreGroupedRowModel();
|
|
115
104
|
}
|
|
116
|
-
|
|
117
105
|
return table._getGroupedRowModel();
|
|
118
106
|
}
|
|
119
107
|
};
|
|
@@ -125,13 +113,11 @@ const Grouping = {
|
|
|
125
113
|
};
|
|
126
114
|
},
|
|
127
115
|
createCell: (cell, column, row, table) => {
|
|
128
|
-
|
|
129
116
|
return {
|
|
130
117
|
getIsGrouped: () => column.getIsGrouped() && column.id === row.groupingColumnId,
|
|
131
118
|
getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),
|
|
132
119
|
getIsAggregated: () => {
|
|
133
120
|
var _row$subRows;
|
|
134
|
-
|
|
135
121
|
return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);
|
|
136
122
|
}
|
|
137
123
|
};
|
|
@@ -141,13 +127,10 @@ function orderColumns(leafColumns, grouping, groupedColumnMode) {
|
|
|
141
127
|
if (!(grouping != null && grouping.length) || !groupedColumnMode) {
|
|
142
128
|
return leafColumns;
|
|
143
129
|
}
|
|
144
|
-
|
|
145
130
|
const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));
|
|
146
|
-
|
|
147
131
|
if (groupedColumnMode === 'remove') {
|
|
148
132
|
return nonGroupingColumns;
|
|
149
133
|
}
|
|
150
|
-
|
|
151
134
|
const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);
|
|
152
135
|
return [...groupingColumns, ...nonGroupingColumns];
|
|
153
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n ColumnDefTemplate,\n RowData,\n AggregationFns,\n} from '../types'\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type GroupingState = string[]\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TData extends RowData> = (\n columnId: string,\n leafRows: Row<TData>[],\n childRows: Row<TData>[]\n) => any\n\nexport type CustomAggregationFns = Record<string, AggregationFn<any>>\n\nexport type AggregationFnOption<TData extends RowData> =\n | 'auto'\n | keyof AggregationFns\n | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport type GroupingColumnDef<TData extends RowData, TValue> = {\n aggregationFn?: AggregationFnOption<TData>\n aggregatedCell?: ColumnDefTemplate<\n ReturnType<Cell<TData, TValue>['getContext']>\n >\n enableGrouping?: boolean\n}\n\nexport type GroupingColumn<TData extends RowData> = {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TData> | undefined\n getAggregationFn: () => AggregationFn<TData> | undefined\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport type GroupingCell = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\nexport type GroupingOptions = {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n} & (keyof AggregationFns extends never\n ? {\n aggregationFns?: Record<string, AggregationFn<any>>\n }\n : {\n aggregationFns: Record<keyof AggregationFns, AggregationFn<any>>\n })\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type GroupingInstance<TData extends RowData> = {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TData>\n getGroupedRowModel: () => RowModel<TData>\n _getGroupedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<\n TData,\n unknown\n > => {\n return {\n aggregatedCell: props => (props.getValue() as any)?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): GroupingOptions => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): GroupingColumn<TData> => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n table.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return table.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => table.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : table.options.aggregationFns?.[\n column.columnDef.aggregationFn as string\n ] ??\n aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ]\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(row: Row<TData>): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","columnDef","enableGrouping","options","accessorFn","getIsGrouped","getState","getGroupedIndex","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","Error","isFunction","createTable","updater","resetGrouping","defaultState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n ColumnDefTemplate,\n RowData,\n AggregationFns,\n} from '../types'\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type GroupingState = string[]\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TData extends RowData> = (\n columnId: string,\n leafRows: Row<TData>[],\n childRows: Row<TData>[]\n) => any\n\nexport type CustomAggregationFns = Record<string, AggregationFn<any>>\n\nexport type AggregationFnOption<TData extends RowData> =\n | 'auto'\n | keyof AggregationFns\n | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport type GroupingColumnDef<TData extends RowData, TValue> = {\n aggregationFn?: AggregationFnOption<TData>\n aggregatedCell?: ColumnDefTemplate<\n ReturnType<Cell<TData, TValue>['getContext']>\n >\n enableGrouping?: boolean\n}\n\nexport type GroupingColumn<TData extends RowData> = {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TData> | undefined\n getAggregationFn: () => AggregationFn<TData> | undefined\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport type GroupingCell = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\nexport type GroupingOptions = {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n} & (keyof AggregationFns extends never\n ? {\n aggregationFns?: Record<string, AggregationFn<any>>\n }\n : {\n aggregationFns: Record<keyof AggregationFns, AggregationFn<any>>\n })\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type GroupingInstance<TData extends RowData> = {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TData>\n getGroupedRowModel: () => RowModel<TData>\n _getGroupedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<\n TData,\n unknown\n > => {\n return {\n aggregatedCell: props => (props.getValue() as any)?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): GroupingOptions => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): GroupingColumn<TData> => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n table.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return table.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => table.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : table.options.aggregationFns?.[\n column.columnDef.aggregationFn as string\n ] ??\n aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ]\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(row: Row<TData>): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","columnDef","enableGrouping","options","accessorFn","getIsGrouped","getState","getGroupedIndex","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","Error","isFunction","createTable","updater","resetGrouping","defaultState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ var utils = require('../utils.js');
|
|
|
16
16
|
var Grouping = require('./Grouping.js');
|
|
17
17
|
|
|
18
18
|
//
|
|
19
|
+
|
|
19
20
|
const Ordering = {
|
|
20
21
|
getInitialState: state => {
|
|
21
22
|
return {
|
|
@@ -32,40 +33,40 @@ const Ordering = {
|
|
|
32
33
|
return {
|
|
33
34
|
setColumnOrder: updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater),
|
|
34
35
|
resetColumnOrder: defaultState => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);
|
|
36
|
+
table.setColumnOrder(defaultState ? [] : table.initialState.columnOrder ?? []);
|
|
38
37
|
},
|
|
39
38
|
_getOrderColumnsFn: utils.memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {
|
|
40
39
|
// Sort grouped columns to the start of the column list
|
|
41
40
|
// before the headers are built
|
|
42
|
-
let orderedColumns = [];
|
|
41
|
+
let orderedColumns = [];
|
|
43
42
|
|
|
43
|
+
// If there is no order, return the normal columns
|
|
44
44
|
if (!(columnOrder != null && columnOrder.length)) {
|
|
45
45
|
orderedColumns = columns;
|
|
46
46
|
} else {
|
|
47
|
-
const columnOrderCopy = [...columnOrder];
|
|
47
|
+
const columnOrderCopy = [...columnOrder];
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
// If there is an order, make a copy of the columns
|
|
50
|
+
const columnsCopy = [...columns];
|
|
51
51
|
|
|
52
|
+
// And make a new ordered array of the columns
|
|
53
|
+
|
|
54
|
+
// Loop over the columns and place them in order into the new array
|
|
52
55
|
while (columnsCopy.length && columnOrderCopy.length) {
|
|
53
56
|
const targetColumnId = columnOrderCopy.shift();
|
|
54
57
|
const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);
|
|
55
|
-
|
|
56
58
|
if (foundIndex > -1) {
|
|
57
59
|
orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);
|
|
58
60
|
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
+
}
|
|
61
62
|
|
|
63
|
+
// If there are any columns left, add them to the end
|
|
62
64
|
orderedColumns = [...orderedColumns, ...columnsCopy];
|
|
63
65
|
}
|
|
64
|
-
|
|
65
66
|
return Grouping.orderColumns(orderedColumns, grouping, groupedColumnMode);
|
|
66
67
|
}, {
|
|
67
|
-
key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn'
|
|
68
|
-
|
|
68
|
+
key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn'
|
|
69
|
+
// debug: () => table.options.debugAll ?? table.options.debugTable,
|
|
69
70
|
})
|
|
70
71
|
};
|
|
71
72
|
}
|