@tanstack/table-core 8.0.0-alpha.70 → 8.0.0-alpha.73
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 +2 -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 +4 -4
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +12 -2
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +2 -2
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +1 -1
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js +2 -2
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Pagination.js +16 -9
- package/build/cjs/features/Pagination.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/getGroupedRowModel.js +1 -1
- package/build/cjs/utils/getGroupedRowModel.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 +54 -37
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +317 -317
- package/build/types/core.d.ts +2 -3
- package/build/types/features/Filters.d.ts +5 -5
- package/build/types/features/Pagination.d.ts +0 -1
- package/build/types/utils/getFacetedMinMaxValues.d.ts +1 -1
- package/build/umd/index.development.js +54 -37
- 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 +6 -6
- package/src/features/Cells.ts +1 -1
- package/src/features/ColumnSizing.ts +4 -4
- package/src/features/Expanding.ts +10 -2
- package/src/features/Filters.ts +7 -7
- package/src/features/Grouping.ts +1 -1
- package/src/features/Headers.ts +2 -2
- package/src/features/Pagination.ts +14 -11
- package/src/utils/getCoreRowModel.ts +1 -3
- package/src/utils/getFacetedMinMaxValues.ts +8 -5
- package/src/utils/getFilteredRowModel.ts +1 -3
- package/src/utils/getGroupedRowModel.ts +1 -1
- 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.73",
|
|
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",
|
package/src/core.ts
CHANGED
|
@@ -44,8 +44,8 @@ export type CoreOptions<TGenerics extends TableGenerics> = {
|
|
|
44
44
|
initialState?: InitialTableState
|
|
45
45
|
autoResetAll?: boolean
|
|
46
46
|
mergeOptions?: <T>(defaultOptions: T, options: Partial<T>) => T
|
|
47
|
-
keepPreviousData?: boolean
|
|
48
47
|
meta?: TGenerics['TableMeta']
|
|
48
|
+
// keepPreviousData?: boolean
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
export type CoreInstance<TGenerics extends TableGenerics> = {
|
|
@@ -54,20 +54,20 @@ export type CoreInstance<TGenerics extends TableGenerics> = {
|
|
|
54
54
|
reset: () => void
|
|
55
55
|
options: RequiredKeys<TableOptions<TGenerics>, 'state'>
|
|
56
56
|
setOptions: (newOptions: Updater<TableOptions<TGenerics>>) => void
|
|
57
|
-
queue: (cb: () => void) => void
|
|
58
57
|
getState: () => TableState
|
|
59
58
|
setState: (updater: Updater<TableState>) => void
|
|
60
|
-
|
|
59
|
+
_queue: (cb: () => void) => void
|
|
60
|
+
_render: <TProps>(
|
|
61
61
|
template: Renderable<TGenerics, TProps>,
|
|
62
62
|
props: TProps
|
|
63
63
|
) => string | null | TGenerics['Rendered']
|
|
64
|
+
_features: readonly TableFeature[]
|
|
64
65
|
// getOverallProgress: () => number
|
|
65
66
|
// getProgressStage: () =>
|
|
66
67
|
// | undefined
|
|
67
68
|
// | 'coreRowModel'
|
|
68
69
|
// | 'filteredRowModel'
|
|
69
70
|
// | 'facetedRowModel'
|
|
70
|
-
_features: readonly TableFeature[]
|
|
71
71
|
// createBatch: (priority: keyof CoreBatches) => Batch
|
|
72
72
|
// init: () => void
|
|
73
73
|
// willUpdate: () => void
|
|
@@ -231,7 +231,7 @@ export function createTableInstance<TGenerics extends TableGenerics>(
|
|
|
231
231
|
...options,
|
|
232
232
|
},
|
|
233
233
|
initialState,
|
|
234
|
-
|
|
234
|
+
_queue: cb => {
|
|
235
235
|
queued.push(cb)
|
|
236
236
|
|
|
237
237
|
if (!queuedTimeout) {
|
|
@@ -297,7 +297,7 @@ export function createTableInstance<TGenerics extends TableGenerics>(
|
|
|
297
297
|
const newOptions = functionalUpdate(updater, instance.options)
|
|
298
298
|
instance.options = mergeOptions(newOptions)
|
|
299
299
|
},
|
|
300
|
-
|
|
300
|
+
_render: (template, props) => {
|
|
301
301
|
if (typeof instance.options.render === 'function') {
|
|
302
302
|
return instance.options.render(template, props)
|
|
303
303
|
}
|
package/src/features/Cells.ts
CHANGED
|
@@ -370,19 +370,19 @@ export const ColumnSizing: TableFeature = {
|
|
|
370
370
|
},
|
|
371
371
|
getTotalSize: () =>
|
|
372
372
|
instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {
|
|
373
|
-
return sum + header.
|
|
373
|
+
return sum + header.getSize()
|
|
374
374
|
}, 0) ?? 0,
|
|
375
375
|
getLeftTotalSize: () =>
|
|
376
376
|
instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {
|
|
377
|
-
return sum + header.
|
|
377
|
+
return sum + header.getSize()
|
|
378
378
|
}, 0) ?? 0,
|
|
379
379
|
getCenterTotalSize: () =>
|
|
380
380
|
instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {
|
|
381
|
-
return sum + header.
|
|
381
|
+
return sum + header.getSize()
|
|
382
382
|
}, 0) ?? 0,
|
|
383
383
|
getRightTotalSize: () =>
|
|
384
384
|
instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {
|
|
385
|
-
return sum + header.
|
|
385
|
+
return sum + header.getSize()
|
|
386
386
|
}, 0) ?? 0,
|
|
387
387
|
}
|
|
388
388
|
},
|
|
@@ -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),
|
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,7 +125,7 @@ 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> = {
|
|
@@ -147,8 +147,8 @@ export type FiltersInstance<TGenerics extends TableGenerics> = {
|
|
|
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()
|
|
@@ -456,7 +456,7 @@ export const Filters: TableFeature = {
|
|
|
456
456
|
instance.options.getFacetedMinMaxValues(instance, '__global__'),
|
|
457
457
|
getGlobalFacetedMinMaxValues: () => {
|
|
458
458
|
if (!instance._getGlobalFacetedMinMaxValues) {
|
|
459
|
-
return
|
|
459
|
+
return
|
|
460
460
|
}
|
|
461
461
|
|
|
462
462
|
return instance._getGlobalFacetedMinMaxValues()
|
package/src/features/Grouping.ts
CHANGED
package/src/features/Headers.ts
CHANGED
|
@@ -88,7 +88,7 @@ export const Headers = {
|
|
|
88
88
|
},
|
|
89
89
|
renderHeader: () =>
|
|
90
90
|
column.header
|
|
91
|
-
? instance.
|
|
91
|
+
? instance._render(column.header, {
|
|
92
92
|
instance,
|
|
93
93
|
header: header as Header<TGenerics>,
|
|
94
94
|
column,
|
|
@@ -96,7 +96,7 @@ export const Headers = {
|
|
|
96
96
|
: null,
|
|
97
97
|
renderFooter: () =>
|
|
98
98
|
column.footer
|
|
99
|
-
? instance.
|
|
99
|
+
? instance._render(column.footer, {
|
|
100
100
|
instance,
|
|
101
101
|
header: header as Header<TGenerics>,
|
|
102
102
|
column,
|
|
@@ -33,7 +33,6 @@ export type PaginationOptions<TGenerics extends TableGenerics> = {
|
|
|
33
33
|
|
|
34
34
|
export type PaginationDefaultOptions = {
|
|
35
35
|
onPaginationChange: OnChangeFn<PaginationState>
|
|
36
|
-
autoResetPageIndex: boolean
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
export type PaginationInstance<TGenerics extends TableGenerics> = {
|
|
@@ -82,7 +81,6 @@ export const Pagination: TableFeature = {
|
|
|
82
81
|
): PaginationDefaultOptions => {
|
|
83
82
|
return {
|
|
84
83
|
onPaginationChange: makeStateUpdater('pagination', instance),
|
|
85
|
-
autoResetPageIndex: true,
|
|
86
84
|
}
|
|
87
85
|
},
|
|
88
86
|
|
|
@@ -90,23 +88,28 @@ export const Pagination: TableFeature = {
|
|
|
90
88
|
instance: TableInstance<TGenerics>
|
|
91
89
|
): PaginationInstance<TGenerics> => {
|
|
92
90
|
let registered = false
|
|
91
|
+
let queued = false
|
|
93
92
|
|
|
94
93
|
return {
|
|
95
94
|
_autoResetPageIndex: () => {
|
|
96
95
|
if (!registered) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
if (instance.options.autoResetAll === false) {
|
|
96
|
+
instance._queue(() => {
|
|
97
|
+
registered = true
|
|
98
|
+
})
|
|
102
99
|
return
|
|
103
100
|
}
|
|
104
101
|
|
|
105
102
|
if (
|
|
106
|
-
instance.options.autoResetAll
|
|
107
|
-
instance.options.autoResetPageIndex
|
|
103
|
+
instance.options.autoResetAll ??
|
|
104
|
+
instance.options.autoResetPageIndex ??
|
|
105
|
+
!instance.options.manualPagination
|
|
108
106
|
) {
|
|
109
|
-
|
|
107
|
+
if (queued) return
|
|
108
|
+
queued = true
|
|
109
|
+
instance._queue(() => {
|
|
110
|
+
instance.resetPageIndex()
|
|
111
|
+
queued = false
|
|
112
|
+
})
|
|
110
113
|
}
|
|
111
114
|
},
|
|
112
115
|
setPagination: updater => {
|
|
@@ -130,7 +133,7 @@ export const Pagination: TableFeature = {
|
|
|
130
133
|
let pageIndex = functionalUpdate(updater, old.pageIndex)
|
|
131
134
|
|
|
132
135
|
const maxPageIndex =
|
|
133
|
-
|
|
136
|
+
typeof old.pageCount !== 'undefined'
|
|
134
137
|
? old.pageCount - 1
|
|
135
138
|
: Number.MAX_SAFE_INTEGER
|
|
136
139
|
|
|
@@ -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
|
)
|
|
@@ -155,7 +155,7 @@ export function getGroupedRowModel<TGenerics extends TableGenerics>(): (
|
|
|
155
155
|
key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',
|
|
156
156
|
debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
157
157
|
onChange: () => {
|
|
158
|
-
instance.
|
|
158
|
+
instance._queue(() => {
|
|
159
159
|
instance._autoResetExpanded()
|
|
160
160
|
instance._autoResetPageIndex()
|
|
161
161
|
})
|
|
@@ -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
|
)
|