@tanstack/react-table 8.0.0-alpha.1 → 8.0.0-alpha.4
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 +118 -59
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js +11 -6
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +317 -0
- package/build/cjs/features/ColumnSizing.js.map +1 -0
- package/build/cjs/features/Expanding.js +23 -2
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +54 -5
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +23 -2
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js +88 -22
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js +4 -1
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +198 -0
- package/build/cjs/features/Pagination.js.map +1 -0
- package/build/cjs/features/Pinning.js +0 -14
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +541 -0
- package/build/cjs/features/RowSelection.js.map +1 -0
- package/build/cjs/features/Sorting.js +76 -18
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +8 -2
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/index.js +2 -0
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/sortTypes.js +1 -0
- package/build/cjs/sortTypes.js.map +1 -1
- package/build/cjs/utils/columnFilterRowsFn.js +3 -2
- package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/expandRowsFn.js +2 -2
- package/build/cjs/utils/expandRowsFn.js.map +1 -1
- package/build/cjs/utils/globalFilterRowsFn.js +3 -2
- package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/groupRowsFn.js +4 -3
- package/build/cjs/utils/groupRowsFn.js.map +1 -1
- package/build/cjs/utils/paginateRowsFn.js +44 -0
- package/build/cjs/utils/paginateRowsFn.js.map +1 -0
- package/build/cjs/utils/sortRowsFn.js +3 -2
- package/build/cjs/utils/sortRowsFn.js.map +1 -1
- package/build/cjs/utils.js +6 -3
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +1613 -225
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +363 -217
- package/build/types/core.d.ts +14 -25
- package/build/types/createTable.d.ts +21 -3
- package/build/types/features/ColumnSizing.d.ts +67 -0
- package/build/types/features/Expanding.d.ts +2 -1
- package/build/types/features/Filters.d.ts +7 -2
- package/build/types/features/Grouping.d.ts +2 -2
- package/build/types/features/Ordering.d.ts +1 -1
- package/build/types/features/Pagination.d.ts +44 -0
- package/build/types/features/Pinning.d.ts +3 -3
- package/build/types/features/RowSelection.d.ts +66 -0
- package/build/types/features/Sorting.d.ts +5 -2
- package/build/types/index.d.ts +1 -0
- package/build/types/sortTypes.d.ts +5 -4
- package/build/types/types.d.ts +13 -8
- package/build/types/utils/columnFilterRowsFn.d.ts +2 -2
- package/build/types/utils/expandRowsFn.d.ts +2 -2
- package/build/types/utils/globalFilterRowsFn.d.ts +2 -2
- package/build/types/utils/groupRowsFn.d.ts +2 -2
- package/build/types/utils/paginateRowsFn.d.ts +2 -0
- package/build/types/utils/sortRowsFn.d.ts +2 -2
- package/build/types/utils.d.ts +7 -3
- package/build/umd/index.development.js +1613 -224
- 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.tsx +252 -265
- package/src/createTable.tsx +69 -9
- package/src/features/ColumnSizing.ts +453 -0
- package/src/features/Expanding.ts +27 -11
- package/src/features/Filters.ts +75 -20
- package/src/features/Grouping.ts +27 -12
- package/src/features/Headers.ts +55 -50
- package/src/features/Ordering.ts +2 -3
- package/src/features/Pagination.ts +327 -0
- package/src/features/Pinning.ts +3 -16
- package/src/features/RowSelection.ts +831 -0
- package/src/features/Sorting.ts +82 -22
- package/src/features/Visibility.ts +2 -4
- package/src/index.tsx +1 -0
- package/src/sortTypes.ts +1 -1
- package/src/types.ts +55 -9
- package/src/utils/columnFilterRowsFn.ts +5 -12
- package/src/utils/expandRowsFn.ts +2 -5
- package/src/utils/globalFilterRowsFn.ts +3 -10
- package/src/utils/groupRowsFn.ts +3 -5
- package/src/utils/paginateRowsFn.ts +34 -0
- package/src/utils/sortRowsFn.ts +5 -5
- package/src/utils.tsx +20 -6
- package/src/features/withColumnResizing.oldts +0 -281
- package/src/features/withPagination.oldts +0 -208
- package/src/features/withRowSelection.oldts +0 -467
package/src/features/Filters.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { RowModel } from '..'
|
|
2
2
|
import { BuiltInFilterType, filterTypes } from '../filterTypes'
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
Column,
|
|
5
|
+
Listener,
|
|
6
|
+
OnChangeFn,
|
|
7
|
+
ReactTable,
|
|
8
|
+
Row,
|
|
9
|
+
Updater,
|
|
10
|
+
} from '../types'
|
|
4
11
|
import { functionalUpdate, isFunction, makeStateUpdater, memo } from '../utils'
|
|
5
12
|
|
|
6
13
|
export type ColumnFilter = {
|
|
@@ -106,7 +113,6 @@ export type FiltersOptions<
|
|
|
106
113
|
enableColumnFilters?: boolean
|
|
107
114
|
columnFilterRowsFn?: (
|
|
108
115
|
instance: ReactTable<any, any, any, any, any>,
|
|
109
|
-
columnFilters: ColumnFiltersState,
|
|
110
116
|
coreRowModel: RowModel<any, any, any, any, any>
|
|
111
117
|
) => RowModel<any, any, any, any, any>
|
|
112
118
|
// Global
|
|
@@ -117,14 +123,7 @@ export type FiltersOptions<
|
|
|
117
123
|
enableGlobalFilter?: boolean
|
|
118
124
|
globalFilterRowsFn?: (
|
|
119
125
|
instance: ReactTable<any, any, any, any, any>,
|
|
120
|
-
|
|
121
|
-
columnFilteredRowModel: RowModel<
|
|
122
|
-
TData,
|
|
123
|
-
TValue,
|
|
124
|
-
TFilterFns,
|
|
125
|
-
TSortingFns,
|
|
126
|
-
TAggregationFns
|
|
127
|
-
>
|
|
126
|
+
rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
128
127
|
) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
129
128
|
getColumnCanGlobalFilterFn?: (
|
|
130
129
|
column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
@@ -138,6 +137,7 @@ export type FiltersInstance<
|
|
|
138
137
|
TSortingFns,
|
|
139
138
|
TAggregationFns
|
|
140
139
|
> = {
|
|
140
|
+
_notifyFiltersReset: () => void
|
|
141
141
|
getColumnAutoFilterFn: (
|
|
142
142
|
columnId: string
|
|
143
143
|
) => FilterFn<any, any, any, any, any> | undefined
|
|
@@ -164,6 +164,31 @@ export type FiltersInstance<
|
|
|
164
164
|
TSortingFns,
|
|
165
165
|
TAggregationFns
|
|
166
166
|
>
|
|
167
|
+
getPreFilteredRowModel: () => RowModel<
|
|
168
|
+
TData,
|
|
169
|
+
TValue,
|
|
170
|
+
TFilterFns,
|
|
171
|
+
TSortingFns,
|
|
172
|
+
TAggregationFns
|
|
173
|
+
>
|
|
174
|
+
getPreFilteredRows: () => Row<
|
|
175
|
+
TData,
|
|
176
|
+
TValue,
|
|
177
|
+
TFilterFns,
|
|
178
|
+
TSortingFns,
|
|
179
|
+
TAggregationFns
|
|
180
|
+
>[]
|
|
181
|
+
getPreFilteredFlatRows: () => Row<
|
|
182
|
+
TData,
|
|
183
|
+
TValue,
|
|
184
|
+
TFilterFns,
|
|
185
|
+
TSortingFns,
|
|
186
|
+
TAggregationFns
|
|
187
|
+
>[]
|
|
188
|
+
getPreFilteredRowsById: () => Record<
|
|
189
|
+
string,
|
|
190
|
+
Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
191
|
+
>
|
|
167
192
|
getPreColumnFilteredRows: () => Row<
|
|
168
193
|
TData,
|
|
169
194
|
TValue,
|
|
@@ -337,8 +362,7 @@ export function createColumn<
|
|
|
337
362
|
preFilteredMinMaxValues,
|
|
338
363
|
}
|
|
339
364
|
},
|
|
340
|
-
'column.getFacetInfo',
|
|
341
|
-
instance.options.debug
|
|
365
|
+
{ key: 'column.getFacetInfo', debug: instance.options.debug }
|
|
342
366
|
)
|
|
343
367
|
|
|
344
368
|
return {
|
|
@@ -364,7 +388,30 @@ export function getInstance<
|
|
|
364
388
|
>(
|
|
365
389
|
instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
366
390
|
): FiltersInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {
|
|
391
|
+
let registered = false
|
|
392
|
+
|
|
367
393
|
return {
|
|
394
|
+
_notifyFiltersReset: () => {
|
|
395
|
+
if (!registered) {
|
|
396
|
+
registered = true
|
|
397
|
+
return
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
if (instance.options.autoResetAll === false) {
|
|
401
|
+
return
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
if (instance.options.autoResetAll === true) {
|
|
405
|
+
instance.resetSorting()
|
|
406
|
+
} else {
|
|
407
|
+
if (instance.options.autoResetColumnFilters) {
|
|
408
|
+
instance.resetColumnFilters()
|
|
409
|
+
}
|
|
410
|
+
if (instance.options.autoResetGlobalFilter) {
|
|
411
|
+
instance.resetGlobalFilter()
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
},
|
|
368
415
|
getColumnAutoFilterFn: columnId => {
|
|
369
416
|
const firstRow = instance.getCoreFlatRows()[0]
|
|
370
417
|
|
|
@@ -438,7 +485,7 @@ export function getInstance<
|
|
|
438
485
|
setColumnFilters: (updater: Updater<ColumnFiltersState>) => {
|
|
439
486
|
const leafColumns = instance.getAllLeafColumns()
|
|
440
487
|
|
|
441
|
-
const updateFn = (old
|
|
488
|
+
const updateFn = (old: ColumnFiltersState) => {
|
|
442
489
|
return functionalUpdate(updater, old)?.filter(filter => {
|
|
443
490
|
const column = leafColumns.find(d => d.id === filter.id)
|
|
444
491
|
|
|
@@ -601,7 +648,7 @@ export function getInstance<
|
|
|
601
648
|
if (process.env.NODE_ENV !== 'production' && instance.options.debug)
|
|
602
649
|
console.info('Column Filtering...')
|
|
603
650
|
|
|
604
|
-
return columnFiltersFn(instance as any,
|
|
651
|
+
return columnFiltersFn(instance as any, rowModel)
|
|
605
652
|
})()
|
|
606
653
|
|
|
607
654
|
// Now that each filtered column has it's partially filtered rows,
|
|
@@ -622,19 +669,25 @@ export function getInstance<
|
|
|
622
669
|
|
|
623
670
|
return columnFilteredRowModel
|
|
624
671
|
},
|
|
625
|
-
'getColumnFilteredRowModel',
|
|
626
|
-
instance.options.debug
|
|
672
|
+
{ key: 'getColumnFilteredRowModel', debug: instance.options.debug }
|
|
627
673
|
),
|
|
628
674
|
|
|
675
|
+
// These might be easier to remember than "column" filtered rows
|
|
676
|
+
getPreFilteredRowModel: () => instance.getCoreRowModel(),
|
|
677
|
+
getPreFilteredRows: () => instance.getCoreRowModel().rows,
|
|
678
|
+
getPreFilteredFlatRows: () => instance.getCoreRowModel().flatRows,
|
|
679
|
+
getPreFilteredRowsById: () => instance.getCoreRowModel().rowsById,
|
|
680
|
+
|
|
681
|
+
// Pre Column Filter
|
|
629
682
|
getPreColumnFilteredRows: () => instance.getCoreRowModel().rows,
|
|
630
683
|
getPreColumnFilteredFlatRows: () => instance.getCoreRowModel().flatRows,
|
|
631
684
|
getPreColumnFilteredRowsById: () => instance.getCoreRowModel().rowsById,
|
|
632
685
|
getColumnFilteredRows: () => instance.getColumnFilteredRowModel().rows,
|
|
686
|
+
|
|
633
687
|
getColumnFilteredFlatRows: () =>
|
|
634
688
|
instance.getColumnFilteredRowModel().flatRows,
|
|
635
689
|
getColumnFilteredRowsById: () =>
|
|
636
690
|
instance.getColumnFilteredRowModel().rowsById,
|
|
637
|
-
|
|
638
691
|
getGlobalFilteredRowModel: memo(
|
|
639
692
|
() => [
|
|
640
693
|
instance.getState().globalFilter,
|
|
@@ -652,7 +705,6 @@ export function getInstance<
|
|
|
652
705
|
|
|
653
706
|
return globalFiltersFn(
|
|
654
707
|
instance as ReactTable<any, any, any, any, any>,
|
|
655
|
-
globalFilterValue,
|
|
656
708
|
columnFilteredRowModel
|
|
657
709
|
)
|
|
658
710
|
})()
|
|
@@ -675,8 +727,11 @@ export function getInstance<
|
|
|
675
727
|
|
|
676
728
|
return globalFilteredRowModel
|
|
677
729
|
},
|
|
678
|
-
|
|
679
|
-
|
|
730
|
+
{
|
|
731
|
+
key: 'getGlobalFilteredRowModel',
|
|
732
|
+
debug: instance.options.debug,
|
|
733
|
+
onChange: () => instance._notifySortingReset(),
|
|
734
|
+
}
|
|
680
735
|
),
|
|
681
736
|
|
|
682
737
|
getPreGlobalFilteredRows: () => instance.getColumnFilteredRowModel().rows,
|
package/src/features/Grouping.ts
CHANGED
|
@@ -39,7 +39,6 @@ export type GroupingColumnDef<TAggregationFns> = {
|
|
|
39
39
|
renderAggregatedCell?: () => React.ReactNode
|
|
40
40
|
enableGrouping?: boolean
|
|
41
41
|
defaultCanGroup?: boolean
|
|
42
|
-
getCanGroup?: unknown
|
|
43
42
|
}
|
|
44
43
|
|
|
45
44
|
export type GroupingColumn<
|
|
@@ -98,14 +97,7 @@ export type GroupingOptions<
|
|
|
98
97
|
TSortingFns,
|
|
99
98
|
TAggregationFns
|
|
100
99
|
>,
|
|
101
|
-
|
|
102
|
-
sortedRowsModel: RowModel<
|
|
103
|
-
TData,
|
|
104
|
-
TValue,
|
|
105
|
-
TFilterFns,
|
|
106
|
-
TSortingFns,
|
|
107
|
-
TAggregationFns
|
|
108
|
-
>
|
|
100
|
+
rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
109
101
|
) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
110
102
|
|
|
111
103
|
groupedColumnMode?: false | 'reorder' | 'remove'
|
|
@@ -125,6 +117,7 @@ export type GroupingInstance<
|
|
|
125
117
|
TSortingFns,
|
|
126
118
|
TAggregationFns
|
|
127
119
|
> = {
|
|
120
|
+
_notifyGroupingReset: () => void
|
|
128
121
|
getColumnAutoAggregationFn: (columnId: string) => AggregationFn | undefined
|
|
129
122
|
getColumnAggregationFn: (columnId: string) => AggregationFn | undefined
|
|
130
123
|
setGrouping: (updater: Updater<GroupingState>) => void
|
|
@@ -243,7 +236,26 @@ export function getInstance<
|
|
|
243
236
|
>(
|
|
244
237
|
instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>
|
|
245
238
|
): GroupingInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {
|
|
239
|
+
let registered = false
|
|
240
|
+
|
|
246
241
|
return {
|
|
242
|
+
_notifyGroupingReset: () => {
|
|
243
|
+
if (!registered) {
|
|
244
|
+
registered = true
|
|
245
|
+
return
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
if (instance.options.autoResetAll === false) {
|
|
249
|
+
return
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (
|
|
253
|
+
instance.options.autoResetAll === true ||
|
|
254
|
+
instance.options.autoResetGrouping
|
|
255
|
+
) {
|
|
256
|
+
instance.resetGrouping()
|
|
257
|
+
}
|
|
258
|
+
},
|
|
247
259
|
getColumnAutoAggregationFn: columnId => {
|
|
248
260
|
const firstRow = instance.getCoreFlatRows()[0]
|
|
249
261
|
|
|
@@ -360,10 +372,13 @@ export function getInstance<
|
|
|
360
372
|
if (process.env.NODE_ENV !== 'production' && instance.options.debug)
|
|
361
373
|
console.info('Grouping...')
|
|
362
374
|
|
|
363
|
-
return groupRowsFn(instance,
|
|
375
|
+
return groupRowsFn(instance, rowModel)
|
|
364
376
|
},
|
|
365
|
-
|
|
366
|
-
|
|
377
|
+
{
|
|
378
|
+
key: 'getGroupedRowModel',
|
|
379
|
+
debug: instance.options.debug,
|
|
380
|
+
onChange: () => instance._notifyExpandedReset(),
|
|
381
|
+
}
|
|
367
382
|
),
|
|
368
383
|
|
|
369
384
|
getPreGroupedRows: () => instance.getSortedRowModel().rows,
|
package/src/features/Headers.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Cell,
|
|
3
3
|
Column,
|
|
4
|
+
CoreHeader,
|
|
4
5
|
FooterGroupProps,
|
|
5
6
|
FooterProps,
|
|
6
7
|
Getter,
|
|
@@ -14,6 +15,9 @@ import {
|
|
|
14
15
|
} from '../types'
|
|
15
16
|
import { propGetter, memo, flexRender } from '../utils'
|
|
16
17
|
|
|
18
|
+
import * as ColumnSizing from './ColumnSizing'
|
|
19
|
+
import * as Sorting from './Sorting'
|
|
20
|
+
|
|
17
21
|
export type HeadersRow<
|
|
18
22
|
TData,
|
|
19
23
|
TValue,
|
|
@@ -237,8 +241,7 @@ export function createRow<
|
|
|
237
241
|
_ => {
|
|
238
242
|
return row.getAllCells().filter(cell => cell.column.getIsVisible())
|
|
239
243
|
},
|
|
240
|
-
'row._getAllVisibleCells',
|
|
241
|
-
instance.options.debug
|
|
244
|
+
{ key: 'row._getAllVisibleCells', debug: instance.options.debug }
|
|
242
245
|
),
|
|
243
246
|
getVisibleCells: memo(
|
|
244
247
|
() => [
|
|
@@ -247,8 +250,7 @@ export function createRow<
|
|
|
247
250
|
row.getRightVisibleCells(),
|
|
248
251
|
],
|
|
249
252
|
(left, center, right) => [...left, ...center, ...right],
|
|
250
|
-
'row.getVisibleCells',
|
|
251
|
-
instance.options.debug
|
|
253
|
+
{ key: 'row.getVisibleCells', debug: instance.options.debug }
|
|
252
254
|
),
|
|
253
255
|
getCenterVisibleCells: memo(
|
|
254
256
|
() => [
|
|
@@ -261,8 +263,7 @@ export function createRow<
|
|
|
261
263
|
|
|
262
264
|
return allCells.filter(d => !leftAndRight.includes(d.columnId))
|
|
263
265
|
},
|
|
264
|
-
'row.getCenterVisibleCells',
|
|
265
|
-
instance.options.debug
|
|
266
|
+
{ key: 'row.getCenterVisibleCells', debug: instance.options.debug }
|
|
266
267
|
),
|
|
267
268
|
getLeftVisibleCells: memo(
|
|
268
269
|
() => [
|
|
@@ -277,8 +278,7 @@ export function createRow<
|
|
|
277
278
|
|
|
278
279
|
return cells
|
|
279
280
|
},
|
|
280
|
-
'row.getLeftVisibleCells',
|
|
281
|
-
instance.options.debug
|
|
281
|
+
{ key: 'row.getLeftVisibleCells', debug: instance.options.debug }
|
|
282
282
|
),
|
|
283
283
|
getRightVisibleCells: memo(
|
|
284
284
|
() => [
|
|
@@ -292,8 +292,7 @@ export function createRow<
|
|
|
292
292
|
|
|
293
293
|
return cells
|
|
294
294
|
},
|
|
295
|
-
'row.getRightVisibleCells',
|
|
296
|
-
instance.options.debug
|
|
295
|
+
{ key: 'row.getRightVisibleCells', debug: instance.options.debug }
|
|
297
296
|
),
|
|
298
297
|
}
|
|
299
298
|
}
|
|
@@ -319,7 +318,7 @@ export function getInstance<
|
|
|
319
318
|
) => {
|
|
320
319
|
const id = options.id ?? column.id
|
|
321
320
|
|
|
322
|
-
let header:
|
|
321
|
+
let header: CoreHeader<
|
|
323
322
|
TData,
|
|
324
323
|
TValue,
|
|
325
324
|
TFilterFns,
|
|
@@ -338,7 +337,7 @@ export function getInstance<
|
|
|
338
337
|
let sum = 0
|
|
339
338
|
|
|
340
339
|
const recurse = (
|
|
341
|
-
header:
|
|
340
|
+
header: CoreHeader<
|
|
342
341
|
TData,
|
|
343
342
|
TValue,
|
|
344
343
|
TFilterFns,
|
|
@@ -364,7 +363,7 @@ export function getInstance<
|
|
|
364
363
|
TSortingFns,
|
|
365
364
|
TAggregationFns
|
|
366
365
|
>[] => {
|
|
367
|
-
const leafHeaders:
|
|
366
|
+
const leafHeaders: CoreHeader<
|
|
368
367
|
TData,
|
|
369
368
|
TValue,
|
|
370
369
|
TFilterFns,
|
|
@@ -373,7 +372,13 @@ export function getInstance<
|
|
|
373
372
|
>[] = []
|
|
374
373
|
|
|
375
374
|
const recurseHeader = (
|
|
376
|
-
h:
|
|
375
|
+
h: CoreHeader<
|
|
376
|
+
TData,
|
|
377
|
+
TValue,
|
|
378
|
+
TFilterFns,
|
|
379
|
+
TSortingFns,
|
|
380
|
+
TAggregationFns
|
|
381
|
+
>
|
|
377
382
|
) => {
|
|
378
383
|
if (h.subHeaders && h.subHeaders.length) {
|
|
379
384
|
h.subHeaders.map(recurseHeader)
|
|
@@ -382,17 +387,33 @@ export function getInstance<
|
|
|
382
387
|
}
|
|
383
388
|
|
|
384
389
|
recurseHeader(header)
|
|
385
|
-
|
|
390
|
+
|
|
391
|
+
return leafHeaders as Header<
|
|
392
|
+
TData,
|
|
393
|
+
TValue,
|
|
394
|
+
TFilterFns,
|
|
395
|
+
TSortingFns,
|
|
396
|
+
TAggregationFns
|
|
397
|
+
>[]
|
|
386
398
|
},
|
|
387
399
|
getHeaderProps: userProps =>
|
|
388
400
|
instance.getHeaderProps(header.id, userProps)!,
|
|
389
401
|
getFooterProps: userProps =>
|
|
390
402
|
instance.getFooterProps(header.id, userProps)!,
|
|
391
|
-
renderHeader: () =>
|
|
392
|
-
|
|
403
|
+
renderHeader: () =>
|
|
404
|
+
flexRender(column.header, { instance, header, column }),
|
|
405
|
+
renderFooter: () =>
|
|
406
|
+
flexRender(column.footer, { instance, header, column }),
|
|
393
407
|
}
|
|
394
408
|
|
|
395
|
-
|
|
409
|
+
// Yes, we have to convert instance to uknown, because we know more than the compiler here.
|
|
410
|
+
return header as Header<
|
|
411
|
+
TData,
|
|
412
|
+
TValue,
|
|
413
|
+
TFilterFns,
|
|
414
|
+
TSortingFns,
|
|
415
|
+
TAggregationFns
|
|
416
|
+
>
|
|
396
417
|
},
|
|
397
418
|
|
|
398
419
|
// Header Groups
|
|
@@ -422,8 +443,7 @@ export function getInstance<
|
|
|
422
443
|
|
|
423
444
|
return headerGroups
|
|
424
445
|
},
|
|
425
|
-
'getHeaderGroups',
|
|
426
|
-
instance.options.debug
|
|
446
|
+
{ key: 'getHeaderGroups', debug: instance.options.debug }
|
|
427
447
|
),
|
|
428
448
|
|
|
429
449
|
getCenterHeaderGroups: memo(
|
|
@@ -439,8 +459,7 @@ export function getInstance<
|
|
|
439
459
|
)
|
|
440
460
|
return buildHeaderGroups(allColumns, leafColumns, instance, 'center')
|
|
441
461
|
},
|
|
442
|
-
'getCenterHeaderGroups',
|
|
443
|
-
instance.options.debug
|
|
462
|
+
{ key: 'getCenterHeaderGroups', debug: instance.options.debug }
|
|
444
463
|
),
|
|
445
464
|
|
|
446
465
|
getLeftHeaderGroups: memo(
|
|
@@ -453,8 +472,7 @@ export function getInstance<
|
|
|
453
472
|
leafColumns = leafColumns.filter(column => left?.includes(column.id))
|
|
454
473
|
return buildHeaderGroups(allColumns, leafColumns, instance, 'left')
|
|
455
474
|
},
|
|
456
|
-
'getLeftHeaderGroups',
|
|
457
|
-
instance.options.debug
|
|
475
|
+
{ key: 'getLeftHeaderGroups', debug: instance.options.debug }
|
|
458
476
|
),
|
|
459
477
|
|
|
460
478
|
getRightHeaderGroups: memo(
|
|
@@ -467,8 +485,7 @@ export function getInstance<
|
|
|
467
485
|
leafColumns = leafColumns.filter(column => right?.includes(column.id))
|
|
468
486
|
return buildHeaderGroups(allColumns, leafColumns, instance, 'right')
|
|
469
487
|
},
|
|
470
|
-
'getRightHeaderGroups',
|
|
471
|
-
instance.options.debug
|
|
488
|
+
{ key: 'getRightHeaderGroups', debug: instance.options.debug }
|
|
472
489
|
),
|
|
473
490
|
|
|
474
491
|
// Footer Groups
|
|
@@ -478,8 +495,7 @@ export function getInstance<
|
|
|
478
495
|
headerGroups => {
|
|
479
496
|
return [...headerGroups].reverse()
|
|
480
497
|
},
|
|
481
|
-
'getFooterGroups',
|
|
482
|
-
instance.options.debug
|
|
498
|
+
{ key: 'getFooterGroups', debug: instance.options.debug }
|
|
483
499
|
),
|
|
484
500
|
|
|
485
501
|
getLeftFooterGroups: memo(
|
|
@@ -487,8 +503,7 @@ export function getInstance<
|
|
|
487
503
|
headerGroups => {
|
|
488
504
|
return [...headerGroups].reverse()
|
|
489
505
|
},
|
|
490
|
-
'getLeftFooterGroups',
|
|
491
|
-
instance.options.debug
|
|
506
|
+
{ key: 'getLeftFooterGroups', debug: instance.options.debug }
|
|
492
507
|
),
|
|
493
508
|
|
|
494
509
|
getCenterFooterGroups: memo(
|
|
@@ -496,8 +511,7 @@ export function getInstance<
|
|
|
496
511
|
headerGroups => {
|
|
497
512
|
return [...headerGroups].reverse()
|
|
498
513
|
},
|
|
499
|
-
'getCenterFooterGroups',
|
|
500
|
-
instance.options.debug
|
|
514
|
+
{ key: 'getCenterFooterGroups', debug: instance.options.debug }
|
|
501
515
|
),
|
|
502
516
|
|
|
503
517
|
getRightFooterGroups: memo(
|
|
@@ -505,8 +519,7 @@ export function getInstance<
|
|
|
505
519
|
headerGroups => {
|
|
506
520
|
return [...headerGroups].reverse()
|
|
507
521
|
},
|
|
508
|
-
'getRightFooterGroups',
|
|
509
|
-
instance.options.debug
|
|
522
|
+
{ key: 'getRightFooterGroups', debug: instance.options.debug }
|
|
510
523
|
),
|
|
511
524
|
|
|
512
525
|
// Flat Headers
|
|
@@ -520,8 +533,7 @@ export function getInstance<
|
|
|
520
533
|
})
|
|
521
534
|
.flat()
|
|
522
535
|
},
|
|
523
|
-
'getFlatHeaders',
|
|
524
|
-
instance.options.debug
|
|
536
|
+
{ key: 'getFlatHeaders', debug: instance.options.debug }
|
|
525
537
|
),
|
|
526
538
|
|
|
527
539
|
getLeftFlatHeaders: memo(
|
|
@@ -533,8 +545,7 @@ export function getInstance<
|
|
|
533
545
|
})
|
|
534
546
|
.flat()
|
|
535
547
|
},
|
|
536
|
-
'getLeftFlatHeaders',
|
|
537
|
-
instance.options.debug
|
|
548
|
+
{ key: 'getLeftFlatHeaders', debug: instance.options.debug }
|
|
538
549
|
),
|
|
539
550
|
|
|
540
551
|
getCenterFlatHeaders: memo(
|
|
@@ -546,8 +557,7 @@ export function getInstance<
|
|
|
546
557
|
})
|
|
547
558
|
.flat()
|
|
548
559
|
},
|
|
549
|
-
'getCenterFlatHeaders',
|
|
550
|
-
instance.options.debug
|
|
560
|
+
{ key: 'getCenterFlatHeaders', debug: instance.options.debug }
|
|
551
561
|
),
|
|
552
562
|
|
|
553
563
|
getRightFlatHeaders: memo(
|
|
@@ -559,8 +569,7 @@ export function getInstance<
|
|
|
559
569
|
})
|
|
560
570
|
.flat()
|
|
561
571
|
},
|
|
562
|
-
'getRightFlatHeaders',
|
|
563
|
-
instance.options.debug
|
|
572
|
+
{ key: 'getRightFlatHeaders', debug: instance.options.debug }
|
|
564
573
|
),
|
|
565
574
|
|
|
566
575
|
// Leaf Headers
|
|
@@ -570,8 +579,7 @@ export function getInstance<
|
|
|
570
579
|
flatHeaders => {
|
|
571
580
|
return flatHeaders.filter(header => !header.subHeaders?.length)
|
|
572
581
|
},
|
|
573
|
-
'getCenterLeafHeaders',
|
|
574
|
-
instance.options.debug
|
|
582
|
+
{ key: 'getCenterLeafHeaders', debug: instance.options.debug }
|
|
575
583
|
),
|
|
576
584
|
|
|
577
585
|
getLeftLeafHeaders: memo(
|
|
@@ -579,8 +587,7 @@ export function getInstance<
|
|
|
579
587
|
flatHeaders => {
|
|
580
588
|
return flatHeaders.filter(header => !header.subHeaders?.length)
|
|
581
589
|
},
|
|
582
|
-
'getLeftLeafHeaders',
|
|
583
|
-
instance.options.debug
|
|
590
|
+
{ key: 'getLeftLeafHeaders', debug: instance.options.debug }
|
|
584
591
|
),
|
|
585
592
|
|
|
586
593
|
getRightLeafHeaders: memo(
|
|
@@ -588,8 +595,7 @@ export function getInstance<
|
|
|
588
595
|
flatHeaders => {
|
|
589
596
|
return flatHeaders.filter(header => !header.subHeaders?.length)
|
|
590
597
|
},
|
|
591
|
-
'getRightLeafHeaders',
|
|
592
|
-
instance.options.debug
|
|
598
|
+
{ key: 'getRightLeafHeaders', debug: instance.options.debug }
|
|
593
599
|
),
|
|
594
600
|
|
|
595
601
|
getLeafHeaders: memo(
|
|
@@ -609,8 +615,7 @@ export function getInstance<
|
|
|
609
615
|
})
|
|
610
616
|
.flat()
|
|
611
617
|
},
|
|
612
|
-
'getLeafHeaders',
|
|
613
|
-
instance.options.debug
|
|
618
|
+
{ key: 'getLeafHeaders', debug: instance.options.debug }
|
|
614
619
|
),
|
|
615
620
|
|
|
616
621
|
getHeader: (id: string) => {
|
package/src/features/Ordering.ts
CHANGED
|
@@ -7,7 +7,7 @@ import * as Grouping from './Grouping'
|
|
|
7
7
|
export type ColumnOrderState = string[]
|
|
8
8
|
|
|
9
9
|
export type ColumnOrderTableState = {
|
|
10
|
-
columnOrder:
|
|
10
|
+
columnOrder: ColumnOrderState
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export type ColumnOrderOptions = {
|
|
@@ -127,8 +127,7 @@ export function getInstance<
|
|
|
127
127
|
groupedColumnMode
|
|
128
128
|
)
|
|
129
129
|
},
|
|
130
|
-
'getOrderColumnsFn',
|
|
131
|
-
instance.options.debug
|
|
130
|
+
{ key: 'getOrderColumnsFn', debug: instance.options.debug }
|
|
132
131
|
),
|
|
133
132
|
}
|
|
134
133
|
}
|