@tanstack/table-core 8.0.0-alpha.69 → 8.0.0-alpha.72

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.
Files changed (36) hide show
  1. package/build/cjs/features/ColumnSizing.js +4 -4
  2. package/build/cjs/features/ColumnSizing.js.map +1 -1
  3. package/build/cjs/features/Expanding.js +10 -2
  4. package/build/cjs/features/Expanding.js.map +1 -1
  5. package/build/cjs/features/Filters.js +2 -2
  6. package/build/cjs/features/Filters.js.map +1 -1
  7. package/build/cjs/features/Pagination.js +14 -6
  8. package/build/cjs/features/Pagination.js.map +1 -1
  9. package/build/cjs/utils/getCoreRowModel.js +1 -3
  10. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  11. package/build/cjs/utils/getFacetedMinMaxValues.js +10 -4
  12. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
  13. package/build/cjs/utils/getFilteredRowModel.js +1 -3
  14. package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
  15. package/build/cjs/utils/getSortedRowModel.js +1 -3
  16. package/build/cjs/utils/getSortedRowModel.js.map +1 -1
  17. package/build/esm/index.js +43 -27
  18. package/build/esm/index.js.map +1 -1
  19. package/build/stats-html.html +1 -1
  20. package/build/stats-react.json +310 -310
  21. package/build/types/features/Filters.d.ts +5 -5
  22. package/build/types/features/Pagination.d.ts +1 -1
  23. package/build/types/utils/getFacetedMinMaxValues.d.ts +1 -1
  24. package/build/umd/index.development.js +43 -27
  25. package/build/umd/index.development.js.map +1 -1
  26. package/build/umd/index.production.js +1 -1
  27. package/build/umd/index.production.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/features/ColumnSizing.ts +4 -4
  30. package/src/features/Expanding.ts +10 -2
  31. package/src/features/Filters.ts +7 -7
  32. package/src/features/Pagination.ts +14 -7
  33. package/src/utils/getCoreRowModel.ts +1 -3
  34. package/src/utils/getFacetedMinMaxValues.ts +8 -5
  35. package/src/utils/getFilteredRowModel.ts +1 -3
  36. 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.69",
4
+ "version": "8.0.0-alpha.72",
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",
@@ -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.column.getSize()
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.column.getSize()
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.column.getSize()
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.column.getSize()
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
- registered = true
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
- instance.resetExpanded()
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),
@@ -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: () => [any, any]
89
- _getFacetedMinMaxValues?: () => [any, any]
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 [NaN, NaN]
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 [NaN, NaN]
459
+ return
460
460
  }
461
461
 
462
462
  return instance._getGlobalFacetedMinMaxValues()
@@ -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: number
14
+ pageCount?: number
15
15
  }
16
16
 
17
17
  export type PaginationTableState = {
@@ -58,12 +58,10 @@ export type PaginationInstance<TGenerics extends TableGenerics> = {
58
58
 
59
59
  //
60
60
 
61
- const defaultPageCount = -1
62
61
  const defaultPageIndex = 0
63
62
  const defaultPageSize = 10
64
63
 
65
64
  const getDefaultPaginationState = (): PaginationState => ({
66
- pageCount: defaultPageCount,
67
65
  pageIndex: defaultPageIndex,
68
66
  pageSize: defaultPageSize,
69
67
  })
@@ -92,11 +90,14 @@ export const Pagination: TableFeature = {
92
90
  instance: TableInstance<TGenerics>
93
91
  ): PaginationInstance<TGenerics> => {
94
92
  let registered = false
93
+ let queued = false
95
94
 
96
95
  return {
97
96
  _autoResetPageIndex: () => {
98
97
  if (!registered) {
99
- registered = true
98
+ instance.queue(() => {
99
+ registered = true
100
+ })
100
101
  return
101
102
  }
102
103
 
@@ -108,7 +109,12 @@ export const Pagination: TableFeature = {
108
109
  instance.options.autoResetAll === true ||
109
110
  instance.options.autoResetPageIndex
110
111
  ) {
111
- instance.resetPageIndex()
112
+ if (queued) return
113
+ queued = true
114
+ instance.queue(() => {
115
+ instance.resetPageIndex()
116
+ queued = false
117
+ })
112
118
  }
113
119
  },
114
120
  setPagination: updater => {
@@ -173,7 +179,7 @@ export const Pagination: TableFeature = {
173
179
  },
174
180
  setPageCount: updater =>
175
181
  instance.setPagination(old => {
176
- let newPageCount = functionalUpdate(updater, old.pageCount)
182
+ let newPageCount = functionalUpdate(updater, old.pageCount ?? -1)
177
183
 
178
184
  if (typeof newPageCount === 'number') {
179
185
  newPageCount = Math.max(-1, newPageCount)
@@ -253,7 +259,8 @@ export const Pagination: TableFeature = {
253
259
 
254
260
  getPageCount: () => {
255
261
  const { pageCount } = instance.getState().pagination
256
- if (pageCount > 0) {
262
+
263
+ if (typeof pageCount !== 'undefined') {
257
264
  return pageCount
258
265
  }
259
266
 
@@ -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.queue(() => {
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
- let facetedMinMaxValues: [any, any] = [
13
- facetedRowModel.flatRows[0]?.getValue(columnId) ?? null,
14
- facetedRowModel.flatRows[0]?.getValue(columnId) ?? null,
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.queue(() => {
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.queue(() => {
113
- instance._autoResetPageIndex()
114
- })
112
+ instance._autoResetPageIndex()
115
113
  },
116
114
  }
117
115
  )