@tanstack/table-core 8.0.0-alpha.65 → 8.0.0-alpha.67
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 +0 -2
- 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 +65 -140
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Columns.js +5 -5
- package/build/cjs/features/Columns.js.map +1 -1
- package/build/cjs/features/Expanding.js +49 -87
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +89 -145
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +30 -58
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js +16 -40
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js +1 -1
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +1 -1
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +70 -95
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +60 -112
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +33 -83
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +16 -39
- package/build/cjs/features/Visibility.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 +2 -2
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFilteredRowModelSync.js +64 -69
- package/build/cjs/utils/getFilteredRowModelSync.js.map +1 -1
- 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 +3 -3
- package/build/cjs/utils/getSortedRowModelSync.js.map +1 -1
- package/build/esm/index.js +546 -924
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +354 -354
- package/build/types/features/ColumnSizing.d.ts +2 -13
- package/build/types/features/Expanding.d.ts +1 -6
- package/build/types/features/Filters.d.ts +12 -14
- package/build/types/features/Grouping.d.ts +0 -7
- package/build/types/features/Pinning.d.ts +0 -4
- package/build/types/features/RowSelection.d.ts +1 -7
- package/build/types/features/Sorting.d.ts +3 -14
- package/build/types/features/Visibility.d.ts +0 -4
- package/build/types/types.d.ts +0 -2
- package/build/umd/index.development.js +534 -912
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/core.ts +0 -2
- package/src/features/Cells.ts +1 -1
- package/src/features/ColumnSizing.ts +67 -125
- package/src/features/Columns.ts +6 -5
- package/src/features/Expanding.ts +58 -105
- package/src/features/Filters.ts +122 -172
- package/src/features/Grouping.ts +36 -60
- package/src/features/Headers.ts +18 -40
- package/src/features/Ordering.ts +1 -1
- package/src/features/Pagination.ts +1 -1
- package/src/features/Pinning.ts +66 -89
- package/src/features/RowSelection.ts +63 -115
- package/src/features/Sorting.ts +36 -94
- package/src/features/Visibility.ts +19 -49
- package/src/types.ts +0 -2
- package/src/utils/getCoreRowModelAsync.ts +1 -1
- package/src/utils/getCoreRowModelSync.ts +1 -1
- package/src/utils/getExpandedRowModel.ts +2 -2
- package/src/utils/getFilteredRowModelAsync.ts +118 -10
- package/src/utils/getFilteredRowModelSync.ts +95 -104
- 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 +4 -4
package/src/features/Filters.ts
CHANGED
|
@@ -32,6 +32,12 @@ export type ColumnFilter = {
|
|
|
32
32
|
value: unknown
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
export type ResolvedColumnFilter<TGenerics extends TableGenerics> = {
|
|
36
|
+
id: string
|
|
37
|
+
resolvedValue: unknown
|
|
38
|
+
filterFn: FilterFn<TGenerics>
|
|
39
|
+
}
|
|
40
|
+
|
|
35
41
|
export type FilterFn<TGenerics extends TableGenerics> = {
|
|
36
42
|
(row: Row<TGenerics>, columnId: string, filterValue: any): boolean
|
|
37
43
|
resolveFilterValue?: TransformFilterValueFn<TGenerics>
|
|
@@ -68,13 +74,15 @@ export type FiltersColumnDef<TGenerics extends TableGenerics> = {
|
|
|
68
74
|
|
|
69
75
|
export type FiltersColumn<TGenerics extends TableGenerics> = {
|
|
70
76
|
filterFn: FilterFnOption<Overwrite<TGenerics, { Value: any }>>
|
|
71
|
-
|
|
77
|
+
getAutoFilterFn: () => FilterFn<TGenerics> | undefined
|
|
78
|
+
getFilterFn: () => FilterFn<TGenerics> | undefined
|
|
79
|
+
setFilterValue: (updater: Updater<any>) => void
|
|
80
|
+
getCanFilter: () => boolean
|
|
72
81
|
getCanGlobalFilter: () => boolean
|
|
73
|
-
getColumnFilterIndex: () => number
|
|
74
|
-
getColumnIsFiltered: () => boolean
|
|
75
|
-
getColumnFilterValue: () => unknown
|
|
76
|
-
setColumnFilterValue: (updater: Updater<any>) => void
|
|
77
82
|
getFacetedRowModel: () => RowModel<TGenerics>
|
|
83
|
+
getIsFiltered: () => boolean
|
|
84
|
+
getFilterValue: () => unknown
|
|
85
|
+
getFilterIndex: () => number
|
|
78
86
|
getFacetedUniqueValues: () => Map<any, number>
|
|
79
87
|
getFacetedMinMaxValues: () => [any, any]
|
|
80
88
|
}
|
|
@@ -105,19 +113,9 @@ export type FiltersOptions<TGenerics extends TableGenerics> = {
|
|
|
105
113
|
}
|
|
106
114
|
|
|
107
115
|
export type FiltersInstance<TGenerics extends TableGenerics> = {
|
|
108
|
-
getColumnAutoFilterFn: (columnId: string) => FilterFn<TGenerics> | undefined
|
|
109
|
-
|
|
110
|
-
getColumnFilterFn: (columnId: string) => FilterFn<TGenerics> | undefined
|
|
111
|
-
|
|
112
116
|
setColumnFilters: (updater: Updater<ColumnFiltersState>) => void
|
|
113
|
-
setColumnFilterValue: (columnId: string, updater: Updater<any>) => void
|
|
114
|
-
resetColumnFilters: () => void
|
|
115
|
-
getColumnCanColumnFilter: (columnId: string) => boolean
|
|
116
|
-
getColumnFacetedRowModel: (columnId: string) => RowModel<TGenerics>
|
|
117
117
|
|
|
118
|
-
|
|
119
|
-
getColumnFilterValue: (columnId: string) => unknown
|
|
120
|
-
getColumnFilterIndex: (columnId: string) => number
|
|
118
|
+
resetColumnFilters: () => void
|
|
121
119
|
|
|
122
120
|
// Column Filters
|
|
123
121
|
getPreFilteredRowModel: () => RowModel<TGenerics>
|
|
@@ -129,7 +127,7 @@ export type FiltersInstance<TGenerics extends TableGenerics> = {
|
|
|
129
127
|
resetGlobalFilter: () => void
|
|
130
128
|
getGlobalAutoFilterFn: () => FilterFn<TGenerics> | undefined
|
|
131
129
|
getGlobalFilterFn: () => FilterFn<TGenerics> | undefined
|
|
132
|
-
|
|
130
|
+
|
|
133
131
|
getGlobalFacetedRowModel: () => RowModel<TGenerics>
|
|
134
132
|
getGlobalFacetedUniqueValues: () => Map<any, number>
|
|
135
133
|
getGlobalFacetedMinMaxValues: () => [number, number]
|
|
@@ -180,13 +178,112 @@ export const Filters: TableFeature = {
|
|
|
180
178
|
): FiltersColumn<TGenerics> => {
|
|
181
179
|
return {
|
|
182
180
|
filterFn: column.filterFn,
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
181
|
+
getAutoFilterFn: () => {
|
|
182
|
+
const firstRow = instance.getCoreRowModel().flatRows[0]
|
|
183
|
+
|
|
184
|
+
const value = firstRow?.values[column.id]
|
|
185
|
+
|
|
186
|
+
if (typeof value === 'string') {
|
|
187
|
+
return filterFns.includesString
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (typeof value === 'number') {
|
|
191
|
+
return filterFns.inNumberRange
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
if (value !== null && typeof value === 'object') {
|
|
195
|
+
return filterFns.equals
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
if (Array.isArray(value)) {
|
|
199
|
+
return filterFns.arrIncludes
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
return filterFns.weakEquals
|
|
203
|
+
},
|
|
204
|
+
getFilterFn: () => {
|
|
205
|
+
const userFilterFns = instance.options.filterFns
|
|
206
|
+
|
|
207
|
+
return isFunction(column.filterFn)
|
|
208
|
+
? column.filterFn
|
|
209
|
+
: column.filterFn === 'auto'
|
|
210
|
+
? column.getAutoFilterFn()
|
|
211
|
+
: (userFilterFns as Record<string, any>)?.[
|
|
212
|
+
column.filterFn as string
|
|
213
|
+
] ??
|
|
214
|
+
(filterFns[
|
|
215
|
+
column.filterFn as BuiltInFilterFn
|
|
216
|
+
] as FilterFn<TGenerics>)
|
|
217
|
+
},
|
|
218
|
+
getCanFilter: () => {
|
|
219
|
+
return (
|
|
220
|
+
(column.enableColumnFilter ?? true) &&
|
|
221
|
+
(instance.options.enableColumnFilters ?? true) &&
|
|
222
|
+
(instance.options.enableFilters ?? true) &&
|
|
223
|
+
!!column.accessorFn
|
|
224
|
+
)
|
|
225
|
+
},
|
|
226
|
+
|
|
227
|
+
getCanGlobalFilter: () => {
|
|
228
|
+
return (
|
|
229
|
+
(column.enableGlobalFilter ?? true) &&
|
|
230
|
+
(instance.options.enableGlobalFilter ?? true) &&
|
|
231
|
+
(instance.options.enableFilters ?? true) &&
|
|
232
|
+
(instance.options.getColumnCanGlobalFilter?.(column) ?? true) &&
|
|
233
|
+
!!column.accessorFn
|
|
234
|
+
)
|
|
235
|
+
},
|
|
236
|
+
|
|
237
|
+
getIsFiltered: () => column.getFilterIndex() > -1,
|
|
238
|
+
|
|
239
|
+
getFilterValue: () =>
|
|
240
|
+
instance.getState().columnFilters?.find(d => d.id === column.id)?.value,
|
|
241
|
+
|
|
242
|
+
getFilterIndex: () =>
|
|
243
|
+
instance.getState().columnFilters?.findIndex(d => d.id === column.id) ??
|
|
244
|
+
-1,
|
|
245
|
+
|
|
246
|
+
setFilterValue: value => {
|
|
247
|
+
instance.setColumnFilters(old => {
|
|
248
|
+
const filterFn = column.getFilterFn()
|
|
249
|
+
const previousfilter = old?.find(d => d.id === column.id)
|
|
250
|
+
|
|
251
|
+
const newFilter = functionalUpdate(
|
|
252
|
+
value,
|
|
253
|
+
previousfilter ? previousfilter.value : undefined
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
//
|
|
257
|
+
if (
|
|
258
|
+
shouldAutoRemoveFilter(
|
|
259
|
+
filterFn as FilterFn<TGenerics>,
|
|
260
|
+
newFilter,
|
|
261
|
+
column
|
|
262
|
+
)
|
|
263
|
+
) {
|
|
264
|
+
return old?.filter(d => d.id !== column.id) ?? []
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
const newFilterObj = { id: column.id, value: newFilter }
|
|
268
|
+
|
|
269
|
+
if (previousfilter) {
|
|
270
|
+
return (
|
|
271
|
+
old?.map(d => {
|
|
272
|
+
if (d.id === column.id) {
|
|
273
|
+
return newFilterObj
|
|
274
|
+
}
|
|
275
|
+
return d
|
|
276
|
+
}) ?? []
|
|
277
|
+
)
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
if (old?.length) {
|
|
281
|
+
return [...old, newFilterObj]
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
return [newFilterObj]
|
|
285
|
+
})
|
|
286
|
+
},
|
|
190
287
|
getFacetedRowModel: memo(
|
|
191
288
|
() => [
|
|
192
289
|
instance.getPreFilteredRowModel(),
|
|
@@ -256,60 +353,9 @@ export const Filters: TableFeature = {
|
|
|
256
353
|
instance: TableInstance<TGenerics>
|
|
257
354
|
): FiltersInstance<TGenerics> => {
|
|
258
355
|
return {
|
|
259
|
-
getColumnAutoFilterFn: columnId => {
|
|
260
|
-
const firstRow = instance.getCoreRowModel().flatRows[0]
|
|
261
|
-
|
|
262
|
-
const value = firstRow?.values[columnId]
|
|
263
|
-
|
|
264
|
-
if (typeof value === 'string') {
|
|
265
|
-
return filterFns.includesString
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
if (typeof value === 'number') {
|
|
269
|
-
return filterFns.inNumberRange
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
if (value !== null && typeof value === 'object') {
|
|
273
|
-
return filterFns.equals
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
if (Array.isArray(value)) {
|
|
277
|
-
return filterFns.arrIncludes
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
return filterFns.weakEquals
|
|
281
|
-
},
|
|
282
|
-
getColumnFacetedRowModel: columnId => {
|
|
283
|
-
const column = instance.getColumn(columnId)
|
|
284
|
-
|
|
285
|
-
if (!column) {
|
|
286
|
-
throw new Error()
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
return column.getFacetedRowModel()
|
|
290
|
-
},
|
|
291
356
|
getGlobalAutoFilterFn: () => {
|
|
292
357
|
return filterFns.includesString
|
|
293
358
|
},
|
|
294
|
-
getColumnFilterFn: columnId => {
|
|
295
|
-
const column = instance.getColumn(columnId)
|
|
296
|
-
const userFilterFns = instance.options.filterFns
|
|
297
|
-
|
|
298
|
-
if (!column) {
|
|
299
|
-
throw new Error()
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
return isFunction(column.filterFn)
|
|
303
|
-
? column.filterFn
|
|
304
|
-
: column.filterFn === 'auto'
|
|
305
|
-
? instance.getColumnAutoFilterFn(columnId)
|
|
306
|
-
: (userFilterFns as Record<string, any>)?.[
|
|
307
|
-
column.filterFn as string
|
|
308
|
-
] ??
|
|
309
|
-
(filterFns[
|
|
310
|
-
column.filterFn as BuiltInFilterFn
|
|
311
|
-
] as FilterFn<TGenerics>)
|
|
312
|
-
},
|
|
313
359
|
|
|
314
360
|
getGlobalFilterFn: () => {
|
|
315
361
|
const { filterFns: userFilterFns, globalFilterFn: globalFilterFn } =
|
|
@@ -335,7 +381,7 @@ export const Filters: TableFeature = {
|
|
|
335
381
|
const column = leafColumns.find(d => d.id === filter.id)
|
|
336
382
|
|
|
337
383
|
if (column) {
|
|
338
|
-
const filterFn =
|
|
384
|
+
const filterFn = column.getFilterFn()
|
|
339
385
|
|
|
340
386
|
if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {
|
|
341
387
|
return false
|
|
@@ -357,102 +403,6 @@ export const Filters: TableFeature = {
|
|
|
357
403
|
instance.setGlobalFilter(instance.initialState.globalFilter)
|
|
358
404
|
},
|
|
359
405
|
|
|
360
|
-
getColumnCanColumnFilter: columnId => {
|
|
361
|
-
const column = instance.getColumn(columnId)
|
|
362
|
-
|
|
363
|
-
if (!column) {
|
|
364
|
-
throw new Error()
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
return (
|
|
368
|
-
(column.enableColumnFilter ?? true) &&
|
|
369
|
-
(instance.options.enableColumnFilters ?? true) &&
|
|
370
|
-
(instance.options.enableFilters ?? true) &&
|
|
371
|
-
!!column.accessorFn
|
|
372
|
-
)
|
|
373
|
-
},
|
|
374
|
-
|
|
375
|
-
getColumnCanGlobalFilter: columnId => {
|
|
376
|
-
const column = instance.getColumn(columnId)
|
|
377
|
-
|
|
378
|
-
if (!column) {
|
|
379
|
-
throw new Error()
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
return (
|
|
383
|
-
(column.enableGlobalFilter ?? true) &&
|
|
384
|
-
(instance.options.enableGlobalFilter ?? true) &&
|
|
385
|
-
(instance.options.enableFilters ?? true) &&
|
|
386
|
-
(instance.options.getColumnCanGlobalFilter?.(column) ?? true) &&
|
|
387
|
-
!!column.accessorFn
|
|
388
|
-
)
|
|
389
|
-
},
|
|
390
|
-
|
|
391
|
-
getColumnIsFiltered: columnId =>
|
|
392
|
-
instance.getColumnFilterIndex(columnId) > -1,
|
|
393
|
-
|
|
394
|
-
getColumnFilterValue: columnId =>
|
|
395
|
-
instance.getState().columnFilters?.find(d => d.id === columnId)?.value,
|
|
396
|
-
|
|
397
|
-
getColumnFilterIndex: columnId =>
|
|
398
|
-
instance.getState().columnFilters?.findIndex(d => d.id === columnId) ??
|
|
399
|
-
-1,
|
|
400
|
-
|
|
401
|
-
setColumnFilterValue: (columnId, value) => {
|
|
402
|
-
if (!columnId) return
|
|
403
|
-
|
|
404
|
-
instance.setColumnFilters(old => {
|
|
405
|
-
const column = instance.getColumn(columnId)
|
|
406
|
-
|
|
407
|
-
if (!column) {
|
|
408
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
409
|
-
console.warn(
|
|
410
|
-
`Table: Could not find a column with id: ${columnId}`
|
|
411
|
-
)
|
|
412
|
-
}
|
|
413
|
-
throw new Error()
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
const filterFn = instance.getColumnFilterFn(column.id)
|
|
417
|
-
const previousfilter = old?.find(d => d.id === columnId)
|
|
418
|
-
|
|
419
|
-
const newFilter = functionalUpdate(
|
|
420
|
-
value,
|
|
421
|
-
previousfilter ? previousfilter.value : undefined
|
|
422
|
-
)
|
|
423
|
-
|
|
424
|
-
//
|
|
425
|
-
if (
|
|
426
|
-
shouldAutoRemoveFilter(
|
|
427
|
-
filterFn as FilterFn<TGenerics>,
|
|
428
|
-
newFilter,
|
|
429
|
-
column
|
|
430
|
-
)
|
|
431
|
-
) {
|
|
432
|
-
return old?.filter(d => d.id !== columnId) ?? []
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
const newFilterObj = { id: columnId, value: newFilter }
|
|
436
|
-
|
|
437
|
-
if (previousfilter) {
|
|
438
|
-
return (
|
|
439
|
-
old?.map(d => {
|
|
440
|
-
if (d.id === columnId) {
|
|
441
|
-
return newFilterObj
|
|
442
|
-
}
|
|
443
|
-
return d
|
|
444
|
-
}) ?? []
|
|
445
|
-
)
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
if (old?.length) {
|
|
449
|
-
return [...old, newFilterObj]
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
return [newFilterObj]
|
|
453
|
-
})
|
|
454
|
-
},
|
|
455
|
-
|
|
456
406
|
resetColumnFilters: () => {
|
|
457
407
|
instance.setColumnFilters(instance.initialState?.columnFilters ?? [])
|
|
458
408
|
},
|
package/src/features/Grouping.ts
CHANGED
|
@@ -49,7 +49,6 @@ export type GroupingColumnDef<TGenerics extends TableGenerics> = {
|
|
|
49
49
|
}
|
|
50
50
|
>
|
|
51
51
|
enableGrouping?: boolean
|
|
52
|
-
defaultCanGroup?: boolean
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
export type GroupingColumn<TGenerics extends TableGenerics> = {
|
|
@@ -104,12 +103,6 @@ export type GroupingInstance<TGenerics extends TableGenerics> = {
|
|
|
104
103
|
) => AggregationFn<TGenerics> | undefined
|
|
105
104
|
setGrouping: (updater: Updater<GroupingState>) => void
|
|
106
105
|
resetGrouping: () => void
|
|
107
|
-
toggleColumnGrouping: (columnId: string) => void
|
|
108
|
-
getColumnCanGroup: (columnId: string) => boolean
|
|
109
|
-
getColumnIsGrouped: (columnId: string) => boolean
|
|
110
|
-
getColumnGroupedIndex: (columnId: string) => number
|
|
111
|
-
getToggleGroupingHandler: (columnId: string) => undefined | (() => void)
|
|
112
|
-
getRowIsGrouped: (rowId: string) => boolean
|
|
113
106
|
getPreGroupedRowModel: () => RowModel<TGenerics>
|
|
114
107
|
getGroupedRowModel: () => RowModel<TGenerics>
|
|
115
108
|
_getGroupedRowModel?: () => RowModel<TGenerics>
|
|
@@ -147,13 +140,41 @@ export const Grouping: TableFeature = {
|
|
|
147
140
|
instance: TableInstance<TGenerics>
|
|
148
141
|
): GroupingColumn<TGenerics> => {
|
|
149
142
|
return {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
143
|
+
toggleGrouping: () => {
|
|
144
|
+
instance.setGrouping(old => {
|
|
145
|
+
// Find any existing grouping for this column
|
|
146
|
+
if (old?.includes(column.id)) {
|
|
147
|
+
return old.filter(d => d !== column.id)
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return [...(old ?? []), column.id]
|
|
151
|
+
})
|
|
152
|
+
},
|
|
153
|
+
|
|
154
|
+
getCanGroup: () => {
|
|
155
|
+
return (
|
|
156
|
+
column.enableGrouping ??
|
|
157
|
+
true ??
|
|
158
|
+
instance.options.enableGrouping ??
|
|
159
|
+
true ??
|
|
160
|
+
!!column.accessorFn
|
|
161
|
+
)
|
|
162
|
+
},
|
|
163
|
+
|
|
164
|
+
getIsGrouped: () => {
|
|
165
|
+
return instance.getState().grouping?.includes(column.id)
|
|
166
|
+
},
|
|
167
|
+
|
|
168
|
+
getGroupedIndex: () => instance.getState().grouping?.indexOf(column.id),
|
|
169
|
+
|
|
170
|
+
getToggleGroupingHandler: () => {
|
|
171
|
+
const canGroup = column.getCanGroup()
|
|
172
|
+
|
|
173
|
+
return () => {
|
|
174
|
+
if (!canGroup) return
|
|
175
|
+
column.toggleGrouping()
|
|
176
|
+
}
|
|
177
|
+
},
|
|
157
178
|
}
|
|
158
179
|
},
|
|
159
180
|
|
|
@@ -198,55 +219,10 @@ export const Grouping: TableFeature = {
|
|
|
198
219
|
|
|
199
220
|
setGrouping: updater => instance.options.onGroupingChange?.(updater),
|
|
200
221
|
|
|
201
|
-
toggleColumnGrouping: columnId => {
|
|
202
|
-
instance.setGrouping(old => {
|
|
203
|
-
// Find any existing grouping for this column
|
|
204
|
-
if (old?.includes(columnId)) {
|
|
205
|
-
return old.filter(d => d !== columnId)
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
return [...(old ?? []), columnId]
|
|
209
|
-
})
|
|
210
|
-
},
|
|
211
|
-
|
|
212
|
-
getColumnCanGroup: columnId => {
|
|
213
|
-
const column = instance.getColumn(columnId)
|
|
214
|
-
|
|
215
|
-
if (!column) {
|
|
216
|
-
throw new Error()
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
return (
|
|
220
|
-
column.enableGrouping ??
|
|
221
|
-
instance.options.enableGrouping ??
|
|
222
|
-
column.defaultCanGroup ??
|
|
223
|
-
!!column.accessorFn
|
|
224
|
-
)
|
|
225
|
-
},
|
|
226
|
-
|
|
227
|
-
getColumnIsGrouped: columnId => {
|
|
228
|
-
return instance.getState().grouping?.includes(columnId)
|
|
229
|
-
},
|
|
230
|
-
|
|
231
|
-
getColumnGroupedIndex: columnId =>
|
|
232
|
-
instance.getState().grouping?.indexOf(columnId),
|
|
233
|
-
|
|
234
222
|
resetGrouping: () => {
|
|
235
223
|
instance.setGrouping(instance.initialState?.grouping ?? [])
|
|
236
224
|
},
|
|
237
225
|
|
|
238
|
-
getToggleGroupingHandler: columnId => {
|
|
239
|
-
const column = instance.getColumn(columnId)
|
|
240
|
-
const canGroup = column.getCanGroup()
|
|
241
|
-
|
|
242
|
-
return () => {
|
|
243
|
-
if (!canGroup) return
|
|
244
|
-
column.toggleGrouping?.()
|
|
245
|
-
}
|
|
246
|
-
},
|
|
247
|
-
|
|
248
|
-
getRowIsGrouped: rowId => !!instance.getRow(rowId)?.groupingColumnId,
|
|
249
|
-
|
|
250
226
|
getPreGroupedRowModel: () => instance.getSortedRowModel(),
|
|
251
227
|
getGroupedRowModel: () => {
|
|
252
228
|
if (
|
|
@@ -271,7 +247,7 @@ export const Grouping: TableFeature = {
|
|
|
271
247
|
instance: TableInstance<TGenerics>
|
|
272
248
|
): GroupingRow => {
|
|
273
249
|
return {
|
|
274
|
-
getIsGrouped: () =>
|
|
250
|
+
getIsGrouped: () => !!row.groupingColumnId,
|
|
275
251
|
}
|
|
276
252
|
},
|
|
277
253
|
|
package/src/features/Headers.ts
CHANGED
|
@@ -72,30 +72,6 @@ export const Headers = {
|
|
|
72
72
|
colSpan: 0,
|
|
73
73
|
rowSpan: 0,
|
|
74
74
|
headerGroup: null!,
|
|
75
|
-
getSize: () => {
|
|
76
|
-
let sum = 0
|
|
77
|
-
|
|
78
|
-
const recurse = (header: CoreHeader<TGenerics>) => {
|
|
79
|
-
if (header.subHeaders.length) {
|
|
80
|
-
header.subHeaders.forEach(recurse)
|
|
81
|
-
} else {
|
|
82
|
-
sum += header.column.getSize() ?? 0
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
recurse(header)
|
|
87
|
-
|
|
88
|
-
return sum
|
|
89
|
-
},
|
|
90
|
-
getStart: () => {
|
|
91
|
-
if (header.index > 0) {
|
|
92
|
-
const prevSiblingHeader =
|
|
93
|
-
header.headerGroup.headers[header.index - 1]
|
|
94
|
-
return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
return 0
|
|
98
|
-
},
|
|
99
75
|
getLeafHeaders: (): Header<TGenerics>[] => {
|
|
100
76
|
const leafHeaders: CoreHeader<TGenerics>[] = []
|
|
101
77
|
|
|
@@ -163,7 +139,7 @@ export const Headers = {
|
|
|
163
139
|
return headerGroups
|
|
164
140
|
},
|
|
165
141
|
{
|
|
166
|
-
key: process.env.NODE_ENV === '
|
|
142
|
+
key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',
|
|
167
143
|
debug: () =>
|
|
168
144
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
169
145
|
}
|
|
@@ -183,7 +159,8 @@ export const Headers = {
|
|
|
183
159
|
return buildHeaderGroups(allColumns, leafColumns, instance, 'center')
|
|
184
160
|
},
|
|
185
161
|
{
|
|
186
|
-
key:
|
|
162
|
+
key:
|
|
163
|
+
process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',
|
|
187
164
|
debug: () =>
|
|
188
165
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
189
166
|
}
|
|
@@ -200,7 +177,7 @@ export const Headers = {
|
|
|
200
177
|
return buildHeaderGroups(allColumns, leafColumns, instance, 'left')
|
|
201
178
|
},
|
|
202
179
|
{
|
|
203
|
-
key: process.env.NODE_ENV === '
|
|
180
|
+
key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',
|
|
204
181
|
debug: () =>
|
|
205
182
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
206
183
|
}
|
|
@@ -217,7 +194,7 @@ export const Headers = {
|
|
|
217
194
|
return buildHeaderGroups(allColumns, leafColumns, instance, 'right')
|
|
218
195
|
},
|
|
219
196
|
{
|
|
220
|
-
key: process.env.NODE_ENV === '
|
|
197
|
+
key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',
|
|
221
198
|
debug: () =>
|
|
222
199
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
223
200
|
}
|
|
@@ -231,7 +208,7 @@ export const Headers = {
|
|
|
231
208
|
return [...headerGroups].reverse()
|
|
232
209
|
},
|
|
233
210
|
{
|
|
234
|
-
key: process.env.NODE_ENV === '
|
|
211
|
+
key: process.env.NODE_ENV === 'development' && 'getFooterGroups',
|
|
235
212
|
debug: () =>
|
|
236
213
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
237
214
|
}
|
|
@@ -243,7 +220,7 @@ export const Headers = {
|
|
|
243
220
|
return [...headerGroups].reverse()
|
|
244
221
|
},
|
|
245
222
|
{
|
|
246
|
-
key: process.env.NODE_ENV === '
|
|
223
|
+
key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',
|
|
247
224
|
debug: () =>
|
|
248
225
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
249
226
|
}
|
|
@@ -255,7 +232,8 @@ export const Headers = {
|
|
|
255
232
|
return [...headerGroups].reverse()
|
|
256
233
|
},
|
|
257
234
|
{
|
|
258
|
-
key:
|
|
235
|
+
key:
|
|
236
|
+
process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',
|
|
259
237
|
debug: () =>
|
|
260
238
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
261
239
|
}
|
|
@@ -267,7 +245,7 @@ export const Headers = {
|
|
|
267
245
|
return [...headerGroups].reverse()
|
|
268
246
|
},
|
|
269
247
|
{
|
|
270
|
-
key: process.env.NODE_ENV === '
|
|
248
|
+
key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',
|
|
271
249
|
debug: () =>
|
|
272
250
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
273
251
|
}
|
|
@@ -285,7 +263,7 @@ export const Headers = {
|
|
|
285
263
|
.flat()
|
|
286
264
|
},
|
|
287
265
|
{
|
|
288
|
-
key: process.env.NODE_ENV === '
|
|
266
|
+
key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',
|
|
289
267
|
debug: () =>
|
|
290
268
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
291
269
|
}
|
|
@@ -301,7 +279,7 @@ export const Headers = {
|
|
|
301
279
|
.flat()
|
|
302
280
|
},
|
|
303
281
|
{
|
|
304
|
-
key: process.env.NODE_ENV === '
|
|
282
|
+
key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',
|
|
305
283
|
debug: () =>
|
|
306
284
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
307
285
|
}
|
|
@@ -317,7 +295,7 @@ export const Headers = {
|
|
|
317
295
|
.flat()
|
|
318
296
|
},
|
|
319
297
|
{
|
|
320
|
-
key: process.env.NODE_ENV === '
|
|
298
|
+
key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',
|
|
321
299
|
debug: () =>
|
|
322
300
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
323
301
|
}
|
|
@@ -333,7 +311,7 @@ export const Headers = {
|
|
|
333
311
|
.flat()
|
|
334
312
|
},
|
|
335
313
|
{
|
|
336
|
-
key: process.env.NODE_ENV === '
|
|
314
|
+
key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',
|
|
337
315
|
debug: () =>
|
|
338
316
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
339
317
|
}
|
|
@@ -347,7 +325,7 @@ export const Headers = {
|
|
|
347
325
|
return flatHeaders.filter(header => !header.subHeaders?.length)
|
|
348
326
|
},
|
|
349
327
|
{
|
|
350
|
-
key: process.env.NODE_ENV === '
|
|
328
|
+
key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',
|
|
351
329
|
debug: () =>
|
|
352
330
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
353
331
|
}
|
|
@@ -359,7 +337,7 @@ export const Headers = {
|
|
|
359
337
|
return flatHeaders.filter(header => !header.subHeaders?.length)
|
|
360
338
|
},
|
|
361
339
|
{
|
|
362
|
-
key: process.env.NODE_ENV === '
|
|
340
|
+
key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',
|
|
363
341
|
debug: () =>
|
|
364
342
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
365
343
|
}
|
|
@@ -371,7 +349,7 @@ export const Headers = {
|
|
|
371
349
|
return flatHeaders.filter(header => !header.subHeaders?.length)
|
|
372
350
|
},
|
|
373
351
|
{
|
|
374
|
-
key: process.env.NODE_ENV === '
|
|
352
|
+
key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',
|
|
375
353
|
debug: () =>
|
|
376
354
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
377
355
|
}
|
|
@@ -395,7 +373,7 @@ export const Headers = {
|
|
|
395
373
|
.flat()
|
|
396
374
|
},
|
|
397
375
|
{
|
|
398
|
-
key: process.env.NODE_ENV === '
|
|
376
|
+
key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',
|
|
399
377
|
debug: () =>
|
|
400
378
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
401
379
|
}
|
package/src/features/Ordering.ts
CHANGED
|
@@ -100,7 +100,7 @@ export const Ordering: TableFeature = {
|
|
|
100
100
|
return orderColumns(orderedColumns, grouping, groupedColumnMode)
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
|
-
key: process.env.NODE_ENV === '
|
|
103
|
+
key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn',
|
|
104
104
|
// debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
105
105
|
}
|
|
106
106
|
),
|
|
@@ -184,7 +184,7 @@ export const Pagination: TableFeature = {
|
|
|
184
184
|
return pageOptions
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
|
-
key: process.env.NODE_ENV === '
|
|
187
|
+
key: process.env.NODE_ENV === 'development' && 'getPageOptions',
|
|
188
188
|
debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
189
189
|
}
|
|
190
190
|
),
|