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

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 (49) hide show
  1. package/build/cjs/features/ColumnSizing.js +15 -12
  2. package/build/cjs/features/ColumnSizing.js.map +1 -1
  3. package/build/cjs/features/Expanding.js +2 -2
  4. package/build/cjs/features/Expanding.js.map +1 -1
  5. package/build/cjs/features/Filters.js +4 -4
  6. package/build/cjs/features/Filters.js.map +1 -1
  7. package/build/cjs/features/Grouping.js +2 -2
  8. package/build/cjs/features/Grouping.js.map +1 -1
  9. package/build/cjs/features/Ordering.js +2 -2
  10. package/build/cjs/features/Ordering.js.map +1 -1
  11. package/build/cjs/features/Pagination.js +20 -15
  12. package/build/cjs/features/Pagination.js.map +1 -1
  13. package/build/cjs/features/Pinning.js +8 -6
  14. package/build/cjs/features/Pinning.js.map +1 -1
  15. package/build/cjs/features/RowSelection.js +2 -2
  16. package/build/cjs/features/RowSelection.js.map +1 -1
  17. package/build/cjs/features/Sorting.js +8 -8
  18. package/build/cjs/features/Sorting.js.map +1 -1
  19. package/build/cjs/features/Visibility.js +5 -0
  20. package/build/cjs/features/Visibility.js.map +1 -1
  21. package/build/esm/index.js +68 -53
  22. package/build/esm/index.js.map +1 -1
  23. package/build/stats-html.html +1 -1
  24. package/build/stats-react.json +314 -314
  25. package/build/types/features/ColumnSizing.d.ts +2 -2
  26. package/build/types/features/Expanding.d.ts +1 -1
  27. package/build/types/features/Filters.d.ts +2 -2
  28. package/build/types/features/Grouping.d.ts +1 -1
  29. package/build/types/features/Ordering.d.ts +1 -1
  30. package/build/types/features/Pagination.d.ts +3 -3
  31. package/build/types/features/Pinning.d.ts +1 -1
  32. package/build/types/features/RowSelection.d.ts +1 -1
  33. package/build/types/features/Sorting.d.ts +2 -1
  34. package/build/types/features/Visibility.d.ts +1 -0
  35. package/build/umd/index.development.js +68 -53
  36. package/build/umd/index.development.js.map +1 -1
  37. package/build/umd/index.production.js +1 -1
  38. package/build/umd/index.production.js.map +1 -1
  39. package/package.json +1 -1
  40. package/src/features/ColumnSizing.ts +21 -14
  41. package/src/features/Expanding.ts +5 -3
  42. package/src/features/Filters.ts +10 -6
  43. package/src/features/Grouping.ts +5 -3
  44. package/src/features/Ordering.ts +5 -3
  45. package/src/features/Pagination.ts +30 -16
  46. package/src/features/Pinning.ts +13 -7
  47. package/src/features/RowSelection.ts +5 -3
  48. package/src/features/Sorting.ts +12 -10
  49. package/src/features/Visibility.ts +7 -0
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.68",
4
+ "version": "8.0.0-alpha.69",
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,12 +355,17 @@ 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(instance.initialState.columnSizing ?? {})
358
+ resetColumnSizing: defaultState => {
359
+ instance.setColumnSizing(
360
+ defaultState ? {} : instance.initialState.columnSizing ?? {}
361
+ )
358
362
  },
359
- resetHeaderSizeInfo: () => {
363
+ resetHeaderSizeInfo: defaultState => {
360
364
  instance.setColumnSizingInfo(
361
- instance.initialState.columnSizingInfo ?? {}
365
+ defaultState
366
+ ? getDefaultColumnSizingInfoState()
367
+ : instance.initialState.columnSizingInfo ??
368
+ getDefaultColumnSizingInfoState()
362
369
  )
363
370
  },
364
371
  getTotalSize: () =>
@@ -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
@@ -104,8 +104,10 @@ export const Expanding: TableFeature = {
104
104
  instance.setExpanded({})
105
105
  }
106
106
  },
107
- resetExpanded: () => {
108
- instance.setExpanded(instance.initialState?.expanded ?? {})
107
+ resetExpanded: defaultState => {
108
+ instance.setExpanded(
109
+ defaultState ? {} : instance.initialState?.expanded ?? {}
110
+ )
109
111
  },
110
112
  getCanSomeRowsExpand: () => {
111
113
  return instance.getRowModel().flatRows.some(row => row.getCanExpand())
@@ -131,7 +131,7 @@ export type FiltersOptions<TGenerics extends TableGenerics> = {
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,7 +140,7 @@ 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>
@@ -398,12 +398,16 @@ export const Filters: TableFeature = {
398
398
  instance.options.onGlobalFilterChange?.(updater)
399
399
  },
400
400
 
401
- resetGlobalFilter: () => {
402
- instance.setGlobalFilter(instance.initialState.globalFilter)
401
+ resetGlobalFilter: defaultState => {
402
+ instance.setGlobalFilter(
403
+ defaultState ? undefined : instance.initialState.globalFilter
404
+ )
403
405
  },
404
406
 
405
- resetColumnFilters: () => {
406
- instance.setColumnFilters(instance.initialState?.columnFilters ?? [])
407
+ resetColumnFilters: defaultState => {
408
+ instance.setColumnFilters(
409
+ defaultState ? [] : instance.initialState?.columnFilters ?? []
410
+ )
407
411
  },
408
412
 
409
413
  getPreFilteredRowModel: () => instance.getCoreRowModel(),
@@ -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(instance.initialState?.grouping ?? [])
217
+ resetGrouping: defaultState => {
218
+ instance.setGrouping(
219
+ defaultState ? [] : instance.initialState?.grouping ?? []
220
+ )
219
221
  },
220
222
 
221
223
  getPreGroupedRowModel: () => instance.getSortedRowModel(),
@@ -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(instance.initialState.columnOrder ?? [])
60
+ resetColumnOrder: defaultState => {
61
+ instance.setColumnOrder(
62
+ defaultState ? [] : instance.initialState.columnOrder ?? []
63
+ )
62
64
  },
63
65
  _getOrderColumnsFn: memo(
64
66
  () => [
@@ -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,22 @@ export type PaginationInstance<TGenerics extends TableGenerics> = {
58
58
 
59
59
  //
60
60
 
61
+ const defaultPageCount = -1
62
+ const defaultPageIndex = 0
63
+ const defaultPageSize = 10
64
+
65
+ const getDefaultPaginationState = (): PaginationState => ({
66
+ pageCount: defaultPageCount,
67
+ pageIndex: defaultPageIndex,
68
+ pageSize: defaultPageSize,
69
+ })
70
+
61
71
  export const Pagination: TableFeature = {
62
72
  getInitialState: (state): PaginationTableState => {
63
73
  return {
64
74
  ...state,
65
75
  pagination: {
66
- pageCount: -1,
67
- pageIndex: 0,
68
- pageSize: 10,
76
+ ...getDefaultPaginationState(),
69
77
  ...state?.pagination,
70
78
  },
71
79
  }
@@ -112,13 +120,11 @@ export const Pagination: TableFeature = {
112
120
 
113
121
  return instance.options.onPaginationChange?.(safeUpdater)
114
122
  },
115
- resetPagination: () => {
123
+ resetPagination: defaultState => {
116
124
  instance.setPagination(
117
- instance.initialState.pagination ?? {
118
- pageIndex: 0,
119
- pageSize: 10,
120
- pageCount: -1,
121
- }
125
+ defaultState
126
+ ? getDefaultPaginationState()
127
+ : instance.initialState.pagination ?? getDefaultPaginationState()
122
128
  )
123
129
  },
124
130
  setPageIndex: updater => {
@@ -138,11 +144,19 @@ export const Pagination: TableFeature = {
138
144
  }
139
145
  })
140
146
  },
141
- resetPageIndex: () => {
142
- instance.setPageIndex(0)
147
+ resetPageIndex: defaultState => {
148
+ instance.setPageIndex(
149
+ defaultState
150
+ ? defaultPageIndex
151
+ : instance.initialState?.pagination?.pageIndex ?? defaultPageIndex
152
+ )
143
153
  },
144
- resetPageSize: () => {
145
- instance.setPageSize(instance.initialState?.pagination?.pageSize ?? 10)
154
+ resetPageSize: defaultState => {
155
+ instance.setPageSize(
156
+ defaultState
157
+ ? defaultPageSize
158
+ : instance.initialState?.pagination?.pageSize ?? defaultPageSize
159
+ )
146
160
  },
147
161
  setPageSize: updater => {
148
162
  instance.setPagination(old => {
@@ -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(instance.initialState?.columnPinning ?? {}),
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(instance.initialState.rowSelection ?? {}),
99
+ resetRowSelection: defaultState =>
100
+ instance.setRowSelection(
101
+ defaultState ? {} : instance.initialState.rowSelection ?? {}
102
+ ),
101
103
  toggleAllRowsSelected: value => {
102
104
  instance.setRowSelection(old => {
103
105
  value =
@@ -62,7 +62,7 @@ export type SortingColumn<TGenerics extends TableGenerics> = {
62
62
  getCanMultiSort: () => boolean
63
63
  getSortIndex: () => number
64
64
  getIsSorted: () => false | SortDirection
65
- resetSorting: () => void
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
- resetSorting: (columnId?: string) => {
308
- if (columnId) {
309
- instance.setSorting(old =>
310
- old?.length ? old.filter(d => d.id !== columnId) : []
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