@tanstack/table-core 8.0.0-alpha.68 → 8.0.0-alpha.71
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/features/ColumnSizing.js +19 -16
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +12 -4
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +6 -6
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +2 -2
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js +2 -2
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +32 -19
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +8 -6
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +2 -2
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +8 -8
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +5 -0
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +1 -3
- package/build/cjs/utils/getCoreRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +10 -4
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/cjs/utils/getFilteredRowModel.js +1 -3
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +1 -3
- package/build/cjs/utils/getSortedRowModel.js.map +1 -1
- package/build/esm/index.js +109 -78
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +322 -322
- package/build/types/features/ColumnSizing.d.ts +2 -2
- package/build/types/features/Expanding.d.ts +1 -1
- package/build/types/features/Filters.d.ts +7 -7
- package/build/types/features/Grouping.d.ts +1 -1
- package/build/types/features/Ordering.d.ts +1 -1
- package/build/types/features/Pagination.d.ts +4 -4
- package/build/types/features/Pinning.d.ts +1 -1
- package/build/types/features/RowSelection.d.ts +1 -1
- package/build/types/features/Sorting.d.ts +2 -1
- package/build/types/features/Visibility.d.ts +1 -0
- package/build/types/utils/getFacetedMinMaxValues.d.ts +1 -1
- package/build/umd/index.development.js +109 -78
- 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 +25 -18
- package/src/features/Expanding.ts +15 -5
- package/src/features/Filters.ts +17 -13
- package/src/features/Grouping.ts +5 -3
- package/src/features/Ordering.ts +5 -3
- package/src/features/Pagination.ts +42 -21
- package/src/features/Pinning.ts +13 -7
- package/src/features/RowSelection.ts +5 -3
- package/src/features/Sorting.ts +12 -10
- package/src/features/Visibility.ts +7 -0
- package/src/utils/getCoreRowModel.ts +1 -3
- package/src/utils/getFacetedMinMaxValues.ts +8 -5
- package/src/utils/getFilteredRowModel.ts +1 -3
- package/src/utils/getSortedRowModel.ts +1 -3
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/table-core",
|
|
3
3
|
"author": "Tanner Linsley",
|
|
4
|
-
"version": "8.0.0-alpha.
|
|
4
|
+
"version": "8.0.0-alpha.71",
|
|
5
5
|
"description": "Hooks for building lightweight, fast and extendable datagrids for React",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://github.com/tanstack/react-table#readme",
|
|
@@ -46,8 +46,8 @@ export type ColumnSizingDefaultOptions = {
|
|
|
46
46
|
export type ColumnSizingInstance<TGenerics extends TableGenerics> = {
|
|
47
47
|
setColumnSizing: (updater: Updater<ColumnSizingState>) => void
|
|
48
48
|
setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void
|
|
49
|
-
resetColumnSizing: () => void
|
|
50
|
-
resetHeaderSizeInfo: () => void
|
|
49
|
+
resetColumnSizing: (defaultState?: boolean) => void
|
|
50
|
+
resetHeaderSizeInfo: (defaultState?: boolean) => void
|
|
51
51
|
getTotalSize: () => number
|
|
52
52
|
getLeftTotalSize: () => number
|
|
53
53
|
getCenterTotalSize: () => number
|
|
@@ -83,6 +83,15 @@ export const defaultColumnSizing = {
|
|
|
83
83
|
maxSize: Number.MAX_SAFE_INTEGER,
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
const getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({
|
|
87
|
+
startOffset: null,
|
|
88
|
+
startSize: null,
|
|
89
|
+
deltaOffset: null,
|
|
90
|
+
deltaPercentage: null,
|
|
91
|
+
isResizingColumn: false,
|
|
92
|
+
columnSizingStart: [],
|
|
93
|
+
})
|
|
94
|
+
|
|
86
95
|
export const ColumnSizing: TableFeature = {
|
|
87
96
|
getDefaultColumn: (): ColumnSizingColumnDef => {
|
|
88
97
|
return defaultColumnSizing
|
|
@@ -90,14 +99,7 @@ export const ColumnSizing: TableFeature = {
|
|
|
90
99
|
getInitialState: (state): ColumnSizingTableState => {
|
|
91
100
|
return {
|
|
92
101
|
columnSizing: {},
|
|
93
|
-
columnSizingInfo:
|
|
94
|
-
startOffset: null,
|
|
95
|
-
startSize: null,
|
|
96
|
-
deltaOffset: null,
|
|
97
|
-
deltaPercentage: null,
|
|
98
|
-
isResizingColumn: false,
|
|
99
|
-
columnSizingStart: [],
|
|
100
|
-
},
|
|
102
|
+
columnSizingInfo: getDefaultColumnSizingInfoState(),
|
|
101
103
|
...state,
|
|
102
104
|
}
|
|
103
105
|
},
|
|
@@ -353,29 +355,34 @@ export const ColumnSizing: TableFeature = {
|
|
|
353
355
|
instance.options.onColumnSizingChange?.(updater),
|
|
354
356
|
setColumnSizingInfo: updater =>
|
|
355
357
|
instance.options.onColumnSizingInfoChange?.(updater),
|
|
356
|
-
resetColumnSizing:
|
|
357
|
-
instance.setColumnSizing(
|
|
358
|
+
resetColumnSizing: defaultState => {
|
|
359
|
+
instance.setColumnSizing(
|
|
360
|
+
defaultState ? {} : instance.initialState.columnSizing ?? {}
|
|
361
|
+
)
|
|
358
362
|
},
|
|
359
|
-
resetHeaderSizeInfo:
|
|
363
|
+
resetHeaderSizeInfo: defaultState => {
|
|
360
364
|
instance.setColumnSizingInfo(
|
|
361
|
-
|
|
365
|
+
defaultState
|
|
366
|
+
? getDefaultColumnSizingInfoState()
|
|
367
|
+
: instance.initialState.columnSizingInfo ??
|
|
368
|
+
getDefaultColumnSizingInfoState()
|
|
362
369
|
)
|
|
363
370
|
},
|
|
364
371
|
getTotalSize: () =>
|
|
365
372
|
instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {
|
|
366
|
-
return sum + header.
|
|
373
|
+
return sum + header.getSize()
|
|
367
374
|
}, 0) ?? 0,
|
|
368
375
|
getLeftTotalSize: () =>
|
|
369
376
|
instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {
|
|
370
|
-
return sum + header.
|
|
377
|
+
return sum + header.getSize()
|
|
371
378
|
}, 0) ?? 0,
|
|
372
379
|
getCenterTotalSize: () =>
|
|
373
380
|
instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {
|
|
374
|
-
return sum + header.
|
|
381
|
+
return sum + header.getSize()
|
|
375
382
|
}, 0) ?? 0,
|
|
376
383
|
getRightTotalSize: () =>
|
|
377
384
|
instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {
|
|
378
|
-
return sum + header.
|
|
385
|
+
return sum + header.getSize()
|
|
379
386
|
}, 0) ?? 0,
|
|
380
387
|
}
|
|
381
388
|
},
|
|
@@ -41,7 +41,7 @@ export type ExpandedInstance<TGenerics extends TableGenerics> = {
|
|
|
41
41
|
_autoResetExpanded: () => void
|
|
42
42
|
setExpanded: (updater: Updater<ExpandedState>) => void
|
|
43
43
|
toggleAllRowsExpanded: (expanded?: boolean) => void
|
|
44
|
-
resetExpanded: () => void
|
|
44
|
+
resetExpanded: (defaultState?: boolean) => void
|
|
45
45
|
getCanSomeRowsExpand: () => boolean
|
|
46
46
|
getToggleAllRowsExpandedHandler: () => (event: unknown) => void
|
|
47
47
|
getIsSomeRowsExpanded: () => boolean
|
|
@@ -77,11 +77,14 @@ export const Expanding: TableFeature = {
|
|
|
77
77
|
instance: TableInstance<TGenerics>
|
|
78
78
|
): ExpandedInstance<TGenerics> => {
|
|
79
79
|
let registered = false
|
|
80
|
+
let queued = false
|
|
80
81
|
|
|
81
82
|
return {
|
|
82
83
|
_autoResetExpanded: () => {
|
|
83
84
|
if (!registered) {
|
|
84
|
-
|
|
85
|
+
instance.queue(() => {
|
|
86
|
+
registered = true
|
|
87
|
+
})
|
|
85
88
|
return
|
|
86
89
|
}
|
|
87
90
|
|
|
@@ -93,7 +96,12 @@ export const Expanding: TableFeature = {
|
|
|
93
96
|
instance.options.autoResetAll === true ||
|
|
94
97
|
instance.options.autoResetExpanded
|
|
95
98
|
) {
|
|
96
|
-
|
|
99
|
+
if (queued) return
|
|
100
|
+
queued = true
|
|
101
|
+
instance.queue(() => {
|
|
102
|
+
instance.resetExpanded()
|
|
103
|
+
queued = false
|
|
104
|
+
})
|
|
97
105
|
}
|
|
98
106
|
},
|
|
99
107
|
setExpanded: updater => instance.options.onExpandedChange?.(updater),
|
|
@@ -104,8 +112,10 @@ export const Expanding: TableFeature = {
|
|
|
104
112
|
instance.setExpanded({})
|
|
105
113
|
}
|
|
106
114
|
},
|
|
107
|
-
resetExpanded:
|
|
108
|
-
instance.setExpanded(
|
|
115
|
+
resetExpanded: defaultState => {
|
|
116
|
+
instance.setExpanded(
|
|
117
|
+
defaultState ? {} : instance.initialState?.expanded ?? {}
|
|
118
|
+
)
|
|
109
119
|
},
|
|
110
120
|
getCanSomeRowsExpand: () => {
|
|
111
121
|
return instance.getRowModel().flatRows.some(row => row.getCanExpand())
|
package/src/features/Filters.ts
CHANGED
|
@@ -85,8 +85,8 @@ export type FiltersColumn<TGenerics extends TableGenerics> = {
|
|
|
85
85
|
getFilterIndex: () => number
|
|
86
86
|
getFacetedUniqueValues: () => Map<any, number>
|
|
87
87
|
_getFacetedUniqueValues?: () => Map<any, number>
|
|
88
|
-
getFacetedMinMaxValues: () => [
|
|
89
|
-
_getFacetedMinMaxValues?: () => [
|
|
88
|
+
getFacetedMinMaxValues: () => undefined | [number, number]
|
|
89
|
+
_getFacetedMinMaxValues?: () => undefined | [number, number]
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
export type FiltersRow<TGenerics extends TableGenerics> = {
|
|
@@ -125,13 +125,13 @@ export type FiltersOptions<TGenerics extends TableGenerics> = {
|
|
|
125
125
|
getFacetedMinMaxValues?: (
|
|
126
126
|
instance: TableInstance<TGenerics>,
|
|
127
127
|
columnId: string
|
|
128
|
-
) => () => [number, number]
|
|
128
|
+
) => () => undefined | [number, number]
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
export type FiltersInstance<TGenerics extends TableGenerics> = {
|
|
132
132
|
setColumnFilters: (updater: Updater<ColumnFiltersState>) => void
|
|
133
133
|
|
|
134
|
-
resetColumnFilters: () => void
|
|
134
|
+
resetColumnFilters: (defaultState?: boolean) => void
|
|
135
135
|
|
|
136
136
|
// Column Filters
|
|
137
137
|
getPreFilteredRowModel: () => RowModel<TGenerics>
|
|
@@ -140,15 +140,15 @@ export type FiltersInstance<TGenerics extends TableGenerics> = {
|
|
|
140
140
|
|
|
141
141
|
// Global Filters
|
|
142
142
|
setGlobalFilter: (updater: Updater<any>) => void
|
|
143
|
-
resetGlobalFilter: () => void
|
|
143
|
+
resetGlobalFilter: (defaultState?: boolean) => void
|
|
144
144
|
getGlobalAutoFilterFn: () => FilterFn<TGenerics> | undefined
|
|
145
145
|
getGlobalFilterFn: () => FilterFn<TGenerics> | undefined
|
|
146
146
|
getGlobalFacetedRowModel: () => RowModel<TGenerics>
|
|
147
147
|
_getGlobalFacetedRowModel?: () => RowModel<TGenerics>
|
|
148
148
|
getGlobalFacetedUniqueValues: () => Map<any, number>
|
|
149
149
|
_getGlobalFacetedUniqueValues?: () => Map<any, number>
|
|
150
|
-
getGlobalFacetedMinMaxValues: () => [number, number]
|
|
151
|
-
_getGlobalFacetedMinMaxValues?: () => [number, number]
|
|
150
|
+
getGlobalFacetedMinMaxValues: () => undefined | [number, number]
|
|
151
|
+
_getGlobalFacetedMinMaxValues?: () => undefined | [number, number]
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
//
|
|
@@ -328,7 +328,7 @@ export const Filters: TableFeature = {
|
|
|
328
328
|
instance.options.getFacetedMinMaxValues(instance, column.id),
|
|
329
329
|
getFacetedMinMaxValues: () => {
|
|
330
330
|
if (!column._getFacetedMinMaxValues) {
|
|
331
|
-
return
|
|
331
|
+
return undefined
|
|
332
332
|
}
|
|
333
333
|
|
|
334
334
|
return column._getFacetedMinMaxValues()
|
|
@@ -398,12 +398,16 @@ export const Filters: TableFeature = {
|
|
|
398
398
|
instance.options.onGlobalFilterChange?.(updater)
|
|
399
399
|
},
|
|
400
400
|
|
|
401
|
-
resetGlobalFilter:
|
|
402
|
-
instance.setGlobalFilter(
|
|
401
|
+
resetGlobalFilter: defaultState => {
|
|
402
|
+
instance.setGlobalFilter(
|
|
403
|
+
defaultState ? undefined : instance.initialState.globalFilter
|
|
404
|
+
)
|
|
403
405
|
},
|
|
404
406
|
|
|
405
|
-
resetColumnFilters:
|
|
406
|
-
instance.setColumnFilters(
|
|
407
|
+
resetColumnFilters: defaultState => {
|
|
408
|
+
instance.setColumnFilters(
|
|
409
|
+
defaultState ? [] : instance.initialState?.columnFilters ?? []
|
|
410
|
+
)
|
|
407
411
|
},
|
|
408
412
|
|
|
409
413
|
getPreFilteredRowModel: () => instance.getCoreRowModel(),
|
|
@@ -452,7 +456,7 @@ export const Filters: TableFeature = {
|
|
|
452
456
|
instance.options.getFacetedMinMaxValues(instance, '__global__'),
|
|
453
457
|
getGlobalFacetedMinMaxValues: () => {
|
|
454
458
|
if (!instance._getGlobalFacetedMinMaxValues) {
|
|
455
|
-
return
|
|
459
|
+
return
|
|
456
460
|
}
|
|
457
461
|
|
|
458
462
|
return instance._getGlobalFacetedMinMaxValues()
|
package/src/features/Grouping.ts
CHANGED
|
@@ -99,7 +99,7 @@ export type GroupingColumnMode = false | 'reorder' | 'remove'
|
|
|
99
99
|
|
|
100
100
|
export type GroupingInstance<TGenerics extends TableGenerics> = {
|
|
101
101
|
setGrouping: (updater: Updater<GroupingState>) => void
|
|
102
|
-
resetGrouping: () => void
|
|
102
|
+
resetGrouping: (defaultState?: boolean) => void
|
|
103
103
|
getPreGroupedRowModel: () => RowModel<TGenerics>
|
|
104
104
|
getGroupedRowModel: () => RowModel<TGenerics>
|
|
105
105
|
_getGroupedRowModel?: () => RowModel<TGenerics>
|
|
@@ -214,8 +214,10 @@ export const Grouping: TableFeature = {
|
|
|
214
214
|
return {
|
|
215
215
|
setGrouping: updater => instance.options.onGroupingChange?.(updater),
|
|
216
216
|
|
|
217
|
-
resetGrouping:
|
|
218
|
-
instance.setGrouping(
|
|
217
|
+
resetGrouping: defaultState => {
|
|
218
|
+
instance.setGrouping(
|
|
219
|
+
defaultState ? [] : instance.initialState?.grouping ?? []
|
|
220
|
+
)
|
|
219
221
|
},
|
|
220
222
|
|
|
221
223
|
getPreGroupedRowModel: () => instance.getSortedRowModel(),
|
package/src/features/Ordering.ts
CHANGED
|
@@ -27,7 +27,7 @@ export type ColumnOrderDefaultOptions = {
|
|
|
27
27
|
|
|
28
28
|
export type ColumnOrderInstance<TGenerics extends TableGenerics> = {
|
|
29
29
|
setColumnOrder: (updater: Updater<ColumnOrderState>) => void
|
|
30
|
-
resetColumnOrder: () => void
|
|
30
|
+
resetColumnOrder: (defaultState?: boolean) => void
|
|
31
31
|
_getOrderColumnsFn: () => (
|
|
32
32
|
columns: Column<TGenerics>[]
|
|
33
33
|
) => Column<TGenerics>[]
|
|
@@ -57,8 +57,10 @@ export const Ordering: TableFeature = {
|
|
|
57
57
|
return {
|
|
58
58
|
setColumnOrder: updater =>
|
|
59
59
|
instance.options.onColumnOrderChange?.(updater),
|
|
60
|
-
resetColumnOrder:
|
|
61
|
-
instance.setColumnOrder(
|
|
60
|
+
resetColumnOrder: defaultState => {
|
|
61
|
+
instance.setColumnOrder(
|
|
62
|
+
defaultState ? [] : instance.initialState.columnOrder ?? []
|
|
63
|
+
)
|
|
62
64
|
},
|
|
63
65
|
_getOrderColumnsFn: memo(
|
|
64
66
|
() => [
|
|
@@ -11,7 +11,7 @@ import { functionalUpdate, makeStateUpdater, memo } from '../utils'
|
|
|
11
11
|
export type PaginationState = {
|
|
12
12
|
pageIndex: number
|
|
13
13
|
pageSize: number
|
|
14
|
-
pageCount
|
|
14
|
+
pageCount?: number
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export type PaginationTableState = {
|
|
@@ -39,11 +39,11 @@ export type PaginationDefaultOptions = {
|
|
|
39
39
|
export type PaginationInstance<TGenerics extends TableGenerics> = {
|
|
40
40
|
_autoResetPageIndex: () => void
|
|
41
41
|
setPagination: (updater: Updater<PaginationState>) => void
|
|
42
|
-
resetPagination: () => void
|
|
42
|
+
resetPagination: (defaultState?: boolean) => void
|
|
43
43
|
setPageIndex: (updater: Updater<number>) => void
|
|
44
|
-
resetPageIndex: () => void
|
|
44
|
+
resetPageIndex: (defaultState?: boolean) => void
|
|
45
45
|
setPageSize: (updater: Updater<number>) => void
|
|
46
|
-
resetPageSize: () => void
|
|
46
|
+
resetPageSize: (defaultState?: boolean) => void
|
|
47
47
|
setPageCount: (updater: Updater<number>) => void
|
|
48
48
|
getPageOptions: () => number[]
|
|
49
49
|
getCanPreviousPage: () => boolean
|
|
@@ -58,14 +58,20 @@ export type PaginationInstance<TGenerics extends TableGenerics> = {
|
|
|
58
58
|
|
|
59
59
|
//
|
|
60
60
|
|
|
61
|
+
const defaultPageIndex = 0
|
|
62
|
+
const defaultPageSize = 10
|
|
63
|
+
|
|
64
|
+
const getDefaultPaginationState = (): PaginationState => ({
|
|
65
|
+
pageIndex: defaultPageIndex,
|
|
66
|
+
pageSize: defaultPageSize,
|
|
67
|
+
})
|
|
68
|
+
|
|
61
69
|
export const Pagination: TableFeature = {
|
|
62
70
|
getInitialState: (state): PaginationTableState => {
|
|
63
71
|
return {
|
|
64
72
|
...state,
|
|
65
73
|
pagination: {
|
|
66
|
-
|
|
67
|
-
pageIndex: 0,
|
|
68
|
-
pageSize: 10,
|
|
74
|
+
...getDefaultPaginationState(),
|
|
69
75
|
...state?.pagination,
|
|
70
76
|
},
|
|
71
77
|
}
|
|
@@ -84,11 +90,14 @@ export const Pagination: TableFeature = {
|
|
|
84
90
|
instance: TableInstance<TGenerics>
|
|
85
91
|
): PaginationInstance<TGenerics> => {
|
|
86
92
|
let registered = false
|
|
93
|
+
let queued = false
|
|
87
94
|
|
|
88
95
|
return {
|
|
89
96
|
_autoResetPageIndex: () => {
|
|
90
97
|
if (!registered) {
|
|
91
|
-
|
|
98
|
+
instance.queue(() => {
|
|
99
|
+
registered = true
|
|
100
|
+
})
|
|
92
101
|
return
|
|
93
102
|
}
|
|
94
103
|
|
|
@@ -100,7 +109,12 @@ export const Pagination: TableFeature = {
|
|
|
100
109
|
instance.options.autoResetAll === true ||
|
|
101
110
|
instance.options.autoResetPageIndex
|
|
102
111
|
) {
|
|
103
|
-
|
|
112
|
+
if (queued) return
|
|
113
|
+
queued = true
|
|
114
|
+
instance.queue(() => {
|
|
115
|
+
instance.resetPageIndex()
|
|
116
|
+
queued = false
|
|
117
|
+
})
|
|
104
118
|
}
|
|
105
119
|
},
|
|
106
120
|
setPagination: updater => {
|
|
@@ -112,13 +126,11 @@ export const Pagination: TableFeature = {
|
|
|
112
126
|
|
|
113
127
|
return instance.options.onPaginationChange?.(safeUpdater)
|
|
114
128
|
},
|
|
115
|
-
resetPagination:
|
|
129
|
+
resetPagination: defaultState => {
|
|
116
130
|
instance.setPagination(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
pageCount: -1,
|
|
121
|
-
}
|
|
131
|
+
defaultState
|
|
132
|
+
? getDefaultPaginationState()
|
|
133
|
+
: instance.initialState.pagination ?? getDefaultPaginationState()
|
|
122
134
|
)
|
|
123
135
|
},
|
|
124
136
|
setPageIndex: updater => {
|
|
@@ -138,11 +150,19 @@ export const Pagination: TableFeature = {
|
|
|
138
150
|
}
|
|
139
151
|
})
|
|
140
152
|
},
|
|
141
|
-
resetPageIndex:
|
|
142
|
-
instance.setPageIndex(
|
|
153
|
+
resetPageIndex: defaultState => {
|
|
154
|
+
instance.setPageIndex(
|
|
155
|
+
defaultState
|
|
156
|
+
? defaultPageIndex
|
|
157
|
+
: instance.initialState?.pagination?.pageIndex ?? defaultPageIndex
|
|
158
|
+
)
|
|
143
159
|
},
|
|
144
|
-
resetPageSize:
|
|
145
|
-
instance.setPageSize(
|
|
160
|
+
resetPageSize: defaultState => {
|
|
161
|
+
instance.setPageSize(
|
|
162
|
+
defaultState
|
|
163
|
+
? defaultPageSize
|
|
164
|
+
: instance.initialState?.pagination?.pageSize ?? defaultPageSize
|
|
165
|
+
)
|
|
146
166
|
},
|
|
147
167
|
setPageSize: updater => {
|
|
148
168
|
instance.setPagination(old => {
|
|
@@ -159,7 +179,7 @@ export const Pagination: TableFeature = {
|
|
|
159
179
|
},
|
|
160
180
|
setPageCount: updater =>
|
|
161
181
|
instance.setPagination(old => {
|
|
162
|
-
let newPageCount = functionalUpdate(updater, old.pageCount)
|
|
182
|
+
let newPageCount = functionalUpdate(updater, old.pageCount ?? -1)
|
|
163
183
|
|
|
164
184
|
if (typeof newPageCount === 'number') {
|
|
165
185
|
newPageCount = Math.max(-1, newPageCount)
|
|
@@ -239,7 +259,8 @@ export const Pagination: TableFeature = {
|
|
|
239
259
|
|
|
240
260
|
getPageCount: () => {
|
|
241
261
|
const { pageCount } = instance.getState().pagination
|
|
242
|
-
|
|
262
|
+
|
|
263
|
+
if (typeof pageCount !== 'undefined') {
|
|
243
264
|
return pageCount
|
|
244
265
|
}
|
|
245
266
|
|
package/src/features/Pinning.ts
CHANGED
|
@@ -49,7 +49,7 @@ export type ColumnPinningRow<TGenerics extends TableGenerics> = {
|
|
|
49
49
|
|
|
50
50
|
export type ColumnPinningInstance<TGenerics extends TableGenerics> = {
|
|
51
51
|
setColumnPinning: (updater: Updater<ColumnPinningState>) => void
|
|
52
|
-
resetColumnPinning: () => void
|
|
52
|
+
resetColumnPinning: (defaultState?: boolean) => void
|
|
53
53
|
getIsSomeColumnsPinned: () => boolean
|
|
54
54
|
getLeftLeafColumns: () => Column<TGenerics>[]
|
|
55
55
|
getRightLeafColumns: () => Column<TGenerics>[]
|
|
@@ -58,13 +58,15 @@ export type ColumnPinningInstance<TGenerics extends TableGenerics> = {
|
|
|
58
58
|
|
|
59
59
|
//
|
|
60
60
|
|
|
61
|
+
const getDefaultPinningState = (): ColumnPinningState => ({
|
|
62
|
+
left: [],
|
|
63
|
+
right: [],
|
|
64
|
+
})
|
|
65
|
+
|
|
61
66
|
export const Pinning: TableFeature = {
|
|
62
67
|
getInitialState: (state): ColumnPinningTableState => {
|
|
63
68
|
return {
|
|
64
|
-
columnPinning:
|
|
65
|
-
left: [],
|
|
66
|
-
right: [],
|
|
67
|
-
},
|
|
69
|
+
columnPinning: getDefaultPinningState(),
|
|
68
70
|
...state,
|
|
69
71
|
}
|
|
70
72
|
},
|
|
@@ -220,8 +222,12 @@ export const Pinning: TableFeature = {
|
|
|
220
222
|
setColumnPinning: updater =>
|
|
221
223
|
instance.options.onColumnPinningChange?.(updater),
|
|
222
224
|
|
|
223
|
-
resetColumnPinning:
|
|
224
|
-
instance.setColumnPinning(
|
|
225
|
+
resetColumnPinning: defaultState =>
|
|
226
|
+
instance.setColumnPinning(
|
|
227
|
+
defaultState
|
|
228
|
+
? getDefaultPinningState()
|
|
229
|
+
: instance.initialState?.columnPinning ?? getDefaultPinningState()
|
|
230
|
+
),
|
|
225
231
|
|
|
226
232
|
getIsSomeColumnsPinned: () => {
|
|
227
233
|
const { left, right } = instance.getState().columnPinning
|
|
@@ -53,7 +53,7 @@ export type RowSelectionInstance<TGenerics extends TableGenerics> = {
|
|
|
53
53
|
getToggleAllRowsSelectedHandler: () => (event: unknown) => void
|
|
54
54
|
getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void
|
|
55
55
|
setRowSelection: (updater: Updater<RowSelectionState>) => void
|
|
56
|
-
resetRowSelection: () => void
|
|
56
|
+
resetRowSelection: (defaultState?: boolean) => void
|
|
57
57
|
getIsAllRowsSelected: () => boolean
|
|
58
58
|
getIsAllPageRowsSelected: () => boolean
|
|
59
59
|
getIsSomeRowsSelected: () => boolean
|
|
@@ -96,8 +96,10 @@ export const RowSelection: TableFeature = {
|
|
|
96
96
|
return {
|
|
97
97
|
setRowSelection: updater =>
|
|
98
98
|
instance.options.onRowSelectionChange?.(updater),
|
|
99
|
-
resetRowSelection:
|
|
100
|
-
instance.setRowSelection(
|
|
99
|
+
resetRowSelection: defaultState =>
|
|
100
|
+
instance.setRowSelection(
|
|
101
|
+
defaultState ? {} : instance.initialState.rowSelection ?? {}
|
|
102
|
+
),
|
|
101
103
|
toggleAllRowsSelected: value => {
|
|
102
104
|
instance.setRowSelection(old => {
|
|
103
105
|
value =
|
package/src/features/Sorting.ts
CHANGED
|
@@ -62,7 +62,7 @@ export type SortingColumn<TGenerics extends TableGenerics> = {
|
|
|
62
62
|
getCanMultiSort: () => boolean
|
|
63
63
|
getSortIndex: () => number
|
|
64
64
|
getIsSorted: () => false | SortDirection
|
|
65
|
-
|
|
65
|
+
clearSorting: () => void
|
|
66
66
|
toggleSorting: (desc?: boolean, isMulti?: boolean) => void
|
|
67
67
|
getToggleSortingHandler: () => undefined | ((event: unknown) => void)
|
|
68
68
|
}
|
|
@@ -85,6 +85,7 @@ export type SortingOptions<TGenerics extends TableGenerics> = {
|
|
|
85
85
|
|
|
86
86
|
export type SortingInstance<TGenerics extends TableGenerics> = {
|
|
87
87
|
setSorting: (updater: Updater<SortingState>) => void
|
|
88
|
+
resetSorting: (defaultState?: boolean) => void
|
|
88
89
|
getPreSortedRowModel: () => RowModel<TGenerics>
|
|
89
90
|
getSortedRowModel: () => RowModel<TGenerics>
|
|
90
91
|
_getSortedRowModel?: () => RowModel<TGenerics>
|
|
@@ -304,14 +305,11 @@ export const Sorting: TableFeature = {
|
|
|
304
305
|
getSortIndex: () =>
|
|
305
306
|
instance.getState().sorting?.findIndex(d => d.id === column.id) ?? -1,
|
|
306
307
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
} else {
|
|
313
|
-
instance.setSorting(instance.initialState?.sorting ?? [])
|
|
314
|
-
}
|
|
308
|
+
clearSorting: () => {
|
|
309
|
+
//clear sorting for just 1 column
|
|
310
|
+
instance.setSorting(old =>
|
|
311
|
+
old?.length ? old.filter(d => d.id !== column.id) : []
|
|
312
|
+
)
|
|
315
313
|
},
|
|
316
314
|
|
|
317
315
|
getToggleSortingHandler: () => {
|
|
@@ -338,7 +336,11 @@ export const Sorting: TableFeature = {
|
|
|
338
336
|
|
|
339
337
|
return {
|
|
340
338
|
setSorting: updater => instance.options.onSortingChange?.(updater),
|
|
341
|
-
|
|
339
|
+
resetSorting: defaultState => {
|
|
340
|
+
instance.setSorting(
|
|
341
|
+
defaultState ? [] : instance.initialState?.sorting ?? []
|
|
342
|
+
)
|
|
343
|
+
},
|
|
342
344
|
getPreSortedRowModel: () => instance.getFilteredRowModel(),
|
|
343
345
|
getSortedRowModel: () => {
|
|
344
346
|
if (
|
|
@@ -32,6 +32,7 @@ export type VisibilityInstance<TGenerics extends TableGenerics> = {
|
|
|
32
32
|
getRightVisibleLeafColumns: () => Column<TGenerics>[]
|
|
33
33
|
getCenterVisibleLeafColumns: () => Column<TGenerics>[]
|
|
34
34
|
setColumnVisibility: (updater: Updater<VisibilityState>) => void
|
|
35
|
+
resetColumnVisibility: (defaultState?: boolean) => void
|
|
35
36
|
toggleAllColumnsVisible: (value?: boolean) => void
|
|
36
37
|
getIsAllColumnsVisible: () => boolean
|
|
37
38
|
getIsSomeColumnsVisible: () => boolean
|
|
@@ -202,6 +203,12 @@ export const Visibility: TableFeature = {
|
|
|
202
203
|
setColumnVisibility: updater =>
|
|
203
204
|
instance.options.onColumnVisibilityChange?.(updater),
|
|
204
205
|
|
|
206
|
+
resetColumnVisibility: defaultState => {
|
|
207
|
+
instance.setColumnVisibility(
|
|
208
|
+
defaultState ? {} : instance.initialState.columnVisibility ?? {}
|
|
209
|
+
)
|
|
210
|
+
},
|
|
211
|
+
|
|
205
212
|
toggleAllColumnsVisible: value => {
|
|
206
213
|
value = value ?? !instance.getIsAllColumnsVisible()
|
|
207
214
|
|
|
@@ -91,9 +91,7 @@ export function getCoreRowModel<TGenerics extends TableGenerics>(): (
|
|
|
91
91
|
key: process.env.NODE_ENV === 'development' && 'getRowModel',
|
|
92
92
|
debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
93
93
|
onChange: () => {
|
|
94
|
-
instance.
|
|
95
|
-
instance._autoResetPageIndex()
|
|
96
|
-
})
|
|
94
|
+
instance._autoResetPageIndex()
|
|
97
95
|
},
|
|
98
96
|
}
|
|
99
97
|
)
|
|
@@ -4,15 +4,18 @@ import { memo } from '../utils'
|
|
|
4
4
|
export function getFacetedMinMaxValues<TGenerics extends TableGenerics>(): (
|
|
5
5
|
instance: TableInstance<TGenerics>,
|
|
6
6
|
columnId: string
|
|
7
|
-
) => () => [number, number] {
|
|
7
|
+
) => () => undefined | [number, number] {
|
|
8
8
|
return (instance, columnId) =>
|
|
9
9
|
memo(
|
|
10
10
|
() => [instance.getColumn(columnId).getFacetedRowModel()],
|
|
11
11
|
facetedRowModel => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
const firstValue = facetedRowModel.flatRows[0]?.getValue(columnId)
|
|
13
|
+
|
|
14
|
+
if (typeof firstValue === 'undefined') {
|
|
15
|
+
return undefined
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
let facetedMinMaxValues: [any, any] = [firstValue, firstValue]
|
|
16
19
|
|
|
17
20
|
for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
|
|
18
21
|
const value = facetedRowModel.flatRows[i]?.getValue(columnId)
|
|
@@ -141,9 +141,7 @@ export function getFilteredRowModel<TGenerics extends TableGenerics>(): (
|
|
|
141
141
|
key: process.env.NODE_ENV === 'development' && 'getFilteredRowModel',
|
|
142
142
|
debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
143
143
|
onChange: () => {
|
|
144
|
-
instance.
|
|
145
|
-
instance._autoResetPageIndex()
|
|
146
|
-
})
|
|
144
|
+
instance._autoResetPageIndex()
|
|
147
145
|
},
|
|
148
146
|
}
|
|
149
147
|
)
|
|
@@ -109,9 +109,7 @@ export function getSortedRowModel<TGenerics extends TableGenerics>(): (
|
|
|
109
109
|
key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',
|
|
110
110
|
debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
111
111
|
onChange: () => {
|
|
112
|
-
instance.
|
|
113
|
-
instance._autoResetPageIndex()
|
|
114
|
-
})
|
|
112
|
+
instance._autoResetPageIndex()
|
|
115
113
|
},
|
|
116
114
|
}
|
|
117
115
|
)
|