@tanstack/table-core 8.0.0-alpha.60 → 8.0.0-alpha.63

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 (58) hide show
  1. package/build/cjs/core.js +14 -11
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/features/Expanding.js +1 -3
  4. package/build/cjs/features/Expanding.js.map +1 -1
  5. package/build/cjs/features/Filters.js +0 -23
  6. package/build/cjs/features/Filters.js.map +1 -1
  7. package/build/cjs/features/Grouping.js +0 -18
  8. package/build/cjs/features/Grouping.js.map +1 -1
  9. package/build/cjs/features/Pagination.js +1 -1
  10. package/build/cjs/features/Pagination.js.map +1 -1
  11. package/build/cjs/features/RowSelection.js +0 -32
  12. package/build/cjs/features/RowSelection.js.map +1 -1
  13. package/build/cjs/features/Sorting.js +0 -18
  14. package/build/cjs/features/Sorting.js.map +1 -1
  15. package/build/cjs/utils/getColumnFilteredRowModelSync.js +1 -1
  16. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +1 -1
  17. package/build/cjs/utils/getCoreRowModelAsync.js +1 -2
  18. package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -1
  19. package/build/cjs/utils/getCoreRowModelSync.js +1 -2
  20. package/build/cjs/utils/getCoreRowModelSync.js.map +1 -1
  21. package/build/cjs/utils/getGlobalFilteredRowModelSync.js +1 -1
  22. package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +1 -1
  23. package/build/cjs/utils/getGroupedRowModel.js +3 -1
  24. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  25. package/build/cjs/utils/getSortedRowModelSync.js +1 -1
  26. package/build/cjs/utils/getSortedRowModelSync.js.map +1 -1
  27. package/build/esm/index.js +24 -114
  28. package/build/esm/index.js.map +1 -1
  29. package/build/stats-html.html +1 -1
  30. package/build/stats-react.json +343 -343
  31. package/build/types/core.d.ts +0 -1
  32. package/build/types/features/Expanding.d.ts +1 -1
  33. package/build/types/features/Filters.d.ts +0 -3
  34. package/build/types/features/Grouping.d.ts +0 -3
  35. package/build/types/features/Pagination.d.ts +1 -1
  36. package/build/types/features/RowSelection.d.ts +0 -2
  37. package/build/types/features/Sorting.d.ts +0 -2
  38. package/build/umd/index.development.js +24 -114
  39. package/build/umd/index.development.js.map +1 -1
  40. package/build/umd/index.production.js +1 -1
  41. package/build/umd/index.production.js.map +1 -1
  42. package/package.json +1 -1
  43. package/src/core.ts +20 -11
  44. package/src/features/Expanding.ts +2 -4
  45. package/src/features/Filters.ts +0 -33
  46. package/src/features/Grouping.ts +0 -25
  47. package/src/features/Pagination.ts +3 -2
  48. package/src/features/RowSelection.ts +0 -29
  49. package/src/features/Sorting.ts +0 -22
  50. package/src/utils/getColumnFilteredRowModelAsync.ts +1 -1
  51. package/src/utils/getColumnFilteredRowModelSync.ts +1 -1
  52. package/src/utils/getCoreRowModelAsync.ts +1 -2
  53. package/src/utils/getCoreRowModelSync.ts +1 -2
  54. package/src/utils/getGlobalFilteredRowModelAsync.ts +1 -1
  55. package/src/utils/getGlobalFilteredRowModelSync.ts +1 -1
  56. package/src/utils/getGroupedRowModel.ts +2 -1
  57. package/src/utils/getSortedRowModelAsync.ts +1 -1
  58. package/src/utils/getSortedRowModelSync.ts +1 -1
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.60",
4
+ "version": "8.0.0-alpha.63",
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
@@ -55,7 +55,7 @@ export type TableCore<TGenerics extends TableGenerics> = {
55
55
  options: RequiredKeys<TableOptions<TGenerics>, 'state'>
56
56
  setOptions: (newOptions: Updater<TableOptions<TGenerics>>) => void
57
57
  queue: (cb: () => void) => void
58
- willUpdate: () => void
58
+ // willUpdate: () => void
59
59
  getState: () => TableState
60
60
  setState: (updater: Updater<TableState>) => void
61
61
  render: <TProps>(
@@ -125,7 +125,7 @@ export function createTableInstance<TGenerics extends TableGenerics>(
125
125
  } as TableState
126
126
 
127
127
  const queued: (() => void)[] = []
128
- let queuedTimeout: ReturnType<typeof setTimeout>
128
+ let queuedTimeout = false
129
129
 
130
130
  const finalInstance: TableInstance<TGenerics> = {
131
131
  ...instance,
@@ -134,18 +134,27 @@ export function createTableInstance<TGenerics extends TableGenerics>(
134
134
  }, {}) as unknown as TableInstance<TGenerics>),
135
135
  queue: cb => {
136
136
  queued.push(cb)
137
+
137
138
  if (!queuedTimeout) {
138
- queuedTimeout = setTimeout(() => {
139
- instance.setState(old => ({ ...old }))
140
- })
141
- }
142
- },
143
- willUpdate: () => {
144
- clearTimeout(queuedTimeout)
145
- while (queued.length) {
146
- queued.shift()!()
139
+ queuedTimeout = true
140
+
141
+ // Schedule a microtask to run the queued callbacks after
142
+ // the current call stack (render, etc) has finished.
143
+ Promise.resolve()
144
+ .then(() => {
145
+ while (queued.length) {
146
+ queued.shift()!()
147
+ }
148
+ queuedTimeout = false
149
+ })
150
+ .catch(error =>
151
+ setTimeout(() => {
152
+ throw error
153
+ })
154
+ )
147
155
  }
148
156
  },
157
+ // willUpdate: () => {},
149
158
  initialState,
150
159
  reset: () => {
151
160
  instance.setState(instance.initialState)
@@ -37,7 +37,7 @@ export type ExpandedOptions<TGenerics extends TableGenerics> = {
37
37
  }
38
38
 
39
39
  export type ExpandedInstance<TGenerics extends TableGenerics> = {
40
- queueResetExpanded: () => void
40
+ _autoResetExpanded: () => void
41
41
  setExpanded: (updater: Updater<ExpandedState>) => void
42
42
  toggleRowExpanded: (rowId: string, expanded?: boolean) => void
43
43
  toggleAllRowsExpanded: (expanded?: boolean) => void
@@ -81,9 +81,7 @@ export const Expanding = {
81
81
  let registered = false
82
82
 
83
83
  return {
84
- queueResetExpanded: () => {
85
- instance.queueResetPageIndex()
86
-
84
+ _autoResetExpanded: () => {
87
85
  if (!registered) {
88
86
  registered = true
89
87
  return
@@ -85,7 +85,6 @@ export type FiltersOptions<TGenerics extends TableGenerics> = {
85
85
  // Column
86
86
  manualColumnFiltering?: boolean
87
87
  onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>
88
- autoResetColumnFilters?: boolean
89
88
  enableColumnFilters?: boolean
90
89
  getColumnFilteredRowModel?: (
91
90
  instance: TableInstance<TGenerics>
@@ -94,7 +93,6 @@ export type FiltersOptions<TGenerics extends TableGenerics> = {
94
93
  manualGlobalFiltering?: boolean
95
94
  globalFilterFn?: FilterFnOption<TGenerics>
96
95
  onGlobalFilterChange?: OnChangeFn<any>
97
- autoResetGlobalFilter?: boolean
98
96
  enableGlobalFilter?: boolean
99
97
  getGlobalFilteredRowModel?: (
100
98
  instance: TableInstance<TGenerics>
@@ -103,7 +101,6 @@ export type FiltersOptions<TGenerics extends TableGenerics> = {
103
101
  }
104
102
 
105
103
  export type FiltersInstance<TGenerics extends TableGenerics> = {
106
- queueResetFilters: () => void
107
104
  getColumnAutoFilterFn: (columnId: string) => FilterFn<TGenerics> | undefined
108
105
 
109
106
  getColumnFilterFn: (columnId: string) => FilterFn<TGenerics> | undefined
@@ -159,9 +156,7 @@ export const Filters = {
159
156
  return {
160
157
  onColumnFiltersChange: makeStateUpdater('columnFilters', instance),
161
158
  onGlobalFilterChange: makeStateUpdater('globalFilter', instance),
162
- autoResetColumnFilters: true,
163
159
  filterFromLeafRows: true,
164
- autoResetGlobalFilter: true,
165
160
  globalFilterFn: 'auto',
166
161
  getColumnCanGlobalFilterFn: column => {
167
162
  const value = instance
@@ -235,35 +230,7 @@ export const Filters = {
235
230
  createInstance: <TGenerics extends TableGenerics>(
236
231
  instance: TableInstance<TGenerics>
237
232
  ): FiltersInstance<TGenerics> => {
238
- let registered = false
239
-
240
233
  return {
241
- queueResetFilters: () => {
242
- instance.queueResetSorting()
243
-
244
- if (!registered) {
245
- registered = true
246
- return
247
- }
248
-
249
- if (instance.options.autoResetAll === false) {
250
- return
251
- }
252
-
253
- if (
254
- instance.options.autoResetAll === true ||
255
- instance.options.autoResetColumnFilters
256
- ) {
257
- instance.resetColumnFilters()
258
- }
259
-
260
- if (
261
- instance.options.autoResetAll === true ||
262
- instance.options.autoResetGlobalFilter
263
- ) {
264
- instance.resetGlobalFilter()
265
- }
266
- },
267
234
  getColumnAutoFilterFn: columnId => {
268
235
  const firstRow = instance.getCoreRowModel().flatRows[0]
269
236
 
@@ -76,7 +76,6 @@ export type GroupingCell<TGenerics extends TableGenerics> = {
76
76
  export type ColumnDefaultOptions = {
77
77
  // Column
78
78
  onGroupingChange: OnChangeFn<GroupingState>
79
- autoResetGrouping: boolean
80
79
  enableGrouping: boolean
81
80
  }
82
81
 
@@ -84,7 +83,6 @@ export type GroupingOptions<TGenerics extends TableGenerics> = {
84
83
  manualGrouping?: boolean
85
84
  aggregationFns?: TGenerics['AggregationFns']
86
85
  onGroupingChange?: OnChangeFn<GroupingState>
87
- autoResetGrouping?: boolean
88
86
  enableGrouping?: boolean
89
87
  enableGroupingRemoval?: boolean
90
88
  getGroupedRowModel?: (
@@ -97,7 +95,6 @@ export type GroupingOptions<TGenerics extends TableGenerics> = {
97
95
  export type GroupingColumnMode = false | 'reorder' | 'remove'
98
96
 
99
97
  export type GroupingInstance<TGenerics extends TableGenerics> = {
100
- queueResetGrouping: () => void
101
98
  getColumnAutoAggregationFn: (
102
99
  columnId: string
103
100
  ) => AggregationFn<TGenerics> | undefined
@@ -139,7 +136,6 @@ export const Grouping = {
139
136
  ): GroupingOptions<TGenerics> => {
140
137
  return {
141
138
  onGroupingChange: makeStateUpdater('grouping', instance),
142
- autoResetGrouping: true,
143
139
  groupedColumnMode: 'reorder',
144
140
  }
145
141
  },
@@ -162,28 +158,7 @@ export const Grouping = {
162
158
  createInstance: <TGenerics extends TableGenerics>(
163
159
  instance: TableInstance<TGenerics>
164
160
  ): GroupingInstance<TGenerics> => {
165
- let registered = false
166
-
167
161
  return {
168
- queueResetGrouping: () => {
169
- instance.queueResetExpanded()
170
-
171
- if (!registered) {
172
- registered = true
173
- return
174
- }
175
-
176
- if (instance.options.autoResetAll === false) {
177
- return
178
- }
179
-
180
- if (
181
- instance.options.autoResetAll === true ||
182
- instance.options.autoResetGrouping
183
- ) {
184
- instance.resetGrouping()
185
- }
186
- },
187
162
  getColumnAutoAggregationFn: columnId => {
188
163
  const firstRow = instance.getCoreRowModel().flatRows[0]
189
164
 
@@ -37,7 +37,7 @@ export type PaginationDefaultOptions = {
37
37
  }
38
38
 
39
39
  export type PaginationInstance<TGenerics extends TableGenerics> = {
40
- queueResetPageIndex: () => void
40
+ _autoResetPageIndex: () => void
41
41
  setPagination: (updater: Updater<PaginationState>) => void
42
42
  resetPagination: () => void
43
43
  setPageIndex: (updater: Updater<number>) => void
@@ -83,8 +83,9 @@ export const Pagination: TableFeature = {
83
83
  instance: TableInstance<TGenerics>
84
84
  ): PaginationInstance<TGenerics> => {
85
85
  let registered = false
86
+
86
87
  return {
87
- queueResetPageIndex: () => {
88
+ _autoResetPageIndex: () => {
88
89
  if (!registered) {
89
90
  registered = true
90
91
  return
@@ -16,7 +16,6 @@ export type RowSelectionTableState = {
16
16
 
17
17
  export type RowSelectionOptions<TGenerics extends TableGenerics> = {
18
18
  onRowSelectionChange?: OnChangeFn<RowSelectionState>
19
- autoResetRowSelection?: boolean
20
19
  enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)
21
20
  enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)
22
21
  enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)
@@ -49,7 +48,6 @@ export type RowSelectionRow = {
49
48
  }
50
49
 
51
50
  export type RowSelectionInstance<TGenerics extends TableGenerics> = {
52
- queueResetRowSelection: () => void
53
51
  getToggleRowSelectedHandler: (
54
52
  rowId: string
55
53
  ) => undefined | ((e: unknown) => void)
@@ -90,7 +88,6 @@ export const RowSelection = {
90
88
  ): RowSelectionOptions<TGenerics> => {
91
89
  return {
92
90
  onRowSelectionChange: makeStateUpdater('rowSelection', instance),
93
- autoResetRowSelection: true,
94
91
  enableRowSelection: true,
95
92
  enableMultiRowSelection: true,
96
93
  enableSubRowSelection: true,
@@ -103,28 +100,7 @@ export const RowSelection = {
103
100
  createInstance: <TGenerics extends TableGenerics>(
104
101
  instance: TableInstance<TGenerics>
105
102
  ): RowSelectionInstance<TGenerics> => {
106
- let registered = false
107
-
108
- // const pageRows = instance.getPageRows()
109
-
110
103
  return {
111
- queueResetRowSelection: () => {
112
- if (!registered) {
113
- registered = true
114
- return
115
- }
116
-
117
- if (instance.options.autoResetAll === false) {
118
- return
119
- }
120
-
121
- if (
122
- instance.options.autoResetAll === true ||
123
- instance.options.autoResetRowSelection
124
- ) {
125
- instance.resetRowSelection()
126
- }
127
- },
128
104
  setRowSelection: updater =>
129
105
  instance.options.onRowSelectionChange?.(updater),
130
106
  resetRowSelection: () =>
@@ -263,9 +239,6 @@ export const RowSelection = {
263
239
  {
264
240
  key: 'getSelectedRowModel',
265
241
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
266
- onChange: () => {
267
- instance.queue(() => instance.queueResetExpanded())
268
- },
269
242
  }
270
243
  ),
271
244
 
@@ -288,7 +261,6 @@ export const RowSelection = {
288
261
  {
289
262
  key: 'getFilteredSelectedRowModel',
290
263
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
291
- onChange: () => instance.queue(() => instance.queueResetExpanded()),
292
264
  }
293
265
  ),
294
266
 
@@ -308,7 +280,6 @@ export const RowSelection = {
308
280
  {
309
281
  key: 'getGroupedSelectedRowModel',
310
282
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
311
- onChange: () => instance.queue(() => instance.queueResetExpanded()),
312
283
  }
313
284
  ),
314
285
 
@@ -69,7 +69,6 @@ export type SortingOptions<TGenerics extends TableGenerics> = {
69
69
  manualSorting?: boolean
70
70
  sortingFns?: TGenerics['SortingFns']
71
71
  onSortingChange?: OnChangeFn<SortingState>
72
- autoResetSorting?: boolean
73
72
  enableSorting?: boolean
74
73
  enableSortingRemoval?: boolean
75
74
  enableMultiRemove?: boolean
@@ -83,7 +82,6 @@ export type SortingOptions<TGenerics extends TableGenerics> = {
83
82
  }
84
83
 
85
84
  export type SortingInstance<TGenerics extends TableGenerics> = {
86
- queueResetSorting: () => void
87
85
  getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined
88
86
  getColumnAutoSortDir: (columnId: string) => SortDirection
89
87
 
@@ -130,7 +128,6 @@ export const Sorting = {
130
128
  ): SortingOptions<TGenerics> => {
131
129
  return {
132
130
  onSortingChange: makeStateUpdater('sorting', instance),
133
- autoResetSorting: true,
134
131
  isMultiSortEvent: (e: unknown) => {
135
132
  return (e as MouseEvent).shiftKey
136
133
  },
@@ -161,25 +158,6 @@ export const Sorting = {
161
158
  let registered = false
162
159
 
163
160
  return {
164
- queueResetSorting: () => {
165
- instance.queueResetGrouping()
166
-
167
- if (!registered) {
168
- registered = true
169
- return
170
- }
171
-
172
- if (instance.options.autoResetAll === false) {
173
- return
174
- }
175
-
176
- if (
177
- instance.options.autoResetAll === true ||
178
- instance.options.autoResetSorting
179
- ) {
180
- instance.resetSorting()
181
- }
182
- },
183
161
  getColumnAutoSortingFn: columnId => {
184
162
  const firstRows = instance
185
163
  .getGlobalFilteredRowModel()
@@ -110,7 +110,7 @@ export function getColumnFilteredRowModelAsync<
110
110
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
111
111
  onChange: () => {
112
112
  instance.queue(() => {
113
- instance.queueResetSorting()
113
+ instance._autoResetPageIndex()
114
114
  })
115
115
  },
116
116
  }
@@ -94,7 +94,7 @@ export function getColumnFilteredRowModelSync<
94
94
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
95
95
  onChange: () => {
96
96
  instance.queue(() => {
97
- instance.queueResetSorting()
97
+ instance._autoResetPageIndex()
98
98
  })
99
99
  },
100
100
  }
@@ -96,8 +96,7 @@ export function getCoreRowModelAsync<TGenerics extends TableGenerics>(opts?: {
96
96
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
97
97
  onChange: () => {
98
98
  instance.queue(() => {
99
- instance.queueResetFilters()
100
- instance.queueResetRowSelection()
99
+ instance._autoResetPageIndex()
101
100
  })
102
101
  },
103
102
  }
@@ -98,8 +98,7 @@ export function getCoreRowModelSync<TGenerics extends TableGenerics>(): (
98
98
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
99
99
  onChange: () => {
100
100
  instance.queue(() => {
101
- instance.queueResetFilters()
102
- instance.queueResetRowSelection()
101
+ instance._autoResetPageIndex()
103
102
  })
104
103
  },
105
104
  }
@@ -88,7 +88,7 @@ export function getGlobalFilteredRowModelAsync<
88
88
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
89
89
  onChange: () => {
90
90
  instance.queue(() => {
91
- instance.queueResetSorting()
91
+ instance._autoResetPageIndex()
92
92
  })
93
93
  },
94
94
  }
@@ -71,7 +71,7 @@ export function getGlobalFilteredRowModelSync<
71
71
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
72
72
  onChange: () => {
73
73
  instance.queue(() => {
74
- instance.queueResetSorting()
74
+ instance._autoResetPageIndex()
75
75
  })
76
76
  },
77
77
  }
@@ -165,7 +165,8 @@ export function getGroupedRowModelSync<TGenerics extends TableGenerics>(): (
165
165
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
166
166
  onChange: () => {
167
167
  instance.queue(() => {
168
- instance.queueResetExpanded()
168
+ instance._autoResetExpanded()
169
+ instance._autoResetPageIndex()
169
170
  })
170
171
  },
171
172
  }
@@ -83,7 +83,7 @@ export function getSortedRowModelSync<TGenerics extends TableGenerics>(opts?: {
83
83
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
84
84
  onChange: () => {
85
85
  instance.queue(() => {
86
- instance.queueResetGrouping()
86
+ instance._autoResetPageIndex()
87
87
  })
88
88
  },
89
89
  }
@@ -110,7 +110,7 @@ export function getSortedRowModelSync<TGenerics extends TableGenerics>(): (
110
110
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
111
111
  onChange: () => {
112
112
  instance.queue(() => {
113
- instance.queueResetGrouping()
113
+ instance._autoResetPageIndex()
114
114
  })
115
115
  },
116
116
  }