@tanstack/table-core 8.0.0-alpha.65 → 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 (144) hide show
  1. package/build/cjs/aggregationFns.js +25 -37
  2. package/build/cjs/aggregationFns.js.map +1 -1
  3. package/build/cjs/core.js +167 -48
  4. package/build/cjs/core.js.map +1 -1
  5. package/build/cjs/createTable.js +24 -40
  6. package/build/cjs/createTable.js.map +1 -1
  7. package/build/cjs/features/Cells.js +28 -34
  8. package/build/cjs/features/Cells.js.map +1 -1
  9. package/build/cjs/features/ColumnSizing.js +136 -225
  10. package/build/cjs/features/ColumnSizing.js.map +1 -1
  11. package/build/cjs/features/Columns.js +57 -84
  12. package/build/cjs/features/Columns.js.map +1 -1
  13. package/build/cjs/features/Expanding.js +79 -126
  14. package/build/cjs/features/Expanding.js.map +1 -1
  15. package/build/cjs/features/Filters.js +137 -288
  16. package/build/cjs/features/Filters.js.map +1 -1
  17. package/build/cjs/features/Grouping.js +71 -117
  18. package/build/cjs/features/Grouping.js.map +1 -1
  19. package/build/cjs/features/Headers.js +125 -205
  20. package/build/cjs/features/Headers.js.map +1 -1
  21. package/build/cjs/features/Ordering.js +32 -44
  22. package/build/cjs/features/Ordering.js.map +1 -1
  23. package/build/cjs/features/Pagination.js +79 -82
  24. package/build/cjs/features/Pagination.js.map +1 -1
  25. package/build/cjs/features/Pinning.js +99 -178
  26. package/build/cjs/features/Pinning.js.map +1 -1
  27. package/build/cjs/features/RowSelection.js +133 -204
  28. package/build/cjs/features/RowSelection.js.map +1 -1
  29. package/build/cjs/features/Rows.js +32 -22
  30. package/build/cjs/features/Rows.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +67 -136
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +56 -118
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +48 -72
  36. package/build/cjs/filterFns.js.map +1 -1
  37. package/build/cjs/index.js +13 -13
  38. package/build/cjs/sortingFns.js +21 -21
  39. package/build/cjs/sortingFns.js.map +1 -1
  40. package/build/cjs/utils/filterRowsUtils.js +49 -55
  41. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  42. package/build/cjs/utils/getCoreRowModel.js +98 -0
  43. package/build/cjs/utils/getCoreRowModel.js.map +1 -0
  44. package/build/cjs/utils/getExpandedRowModel.js +18 -22
  45. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  46. package/build/cjs/utils/getFacetedMinMaxValues.js +48 -0
  47. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
  48. package/build/cjs/utils/getFacetedRowModel.js +50 -0
  49. package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
  50. package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
  51. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
  52. package/build/cjs/utils/getFilteredRowModel.js +130 -0
  53. package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
  54. package/build/cjs/utils/getGroupedRowModel.js +126 -136
  55. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  56. package/build/cjs/utils/getPaginationRowModel.js +39 -39
  57. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  58. package/build/cjs/utils/getSortedRowModel.js +112 -0
  59. package/build/cjs/utils/getSortedRowModel.js.map +1 -0
  60. package/build/cjs/utils.js +36 -207
  61. package/build/cjs/utils.js.map +1 -1
  62. package/build/esm/index.js +2024 -2971
  63. package/build/esm/index.js.map +1 -1
  64. package/build/stats-html.html +1 -1
  65. package/build/stats-react.json +421 -481
  66. package/build/types/core.d.ts +3 -5
  67. package/build/types/features/Cells.d.ts +1 -1
  68. package/build/types/features/ColumnSizing.d.ts +4 -15
  69. package/build/types/features/Columns.d.ts +1 -1
  70. package/build/types/features/Expanding.d.ts +2 -7
  71. package/build/types/features/Filters.d.ts +24 -21
  72. package/build/types/features/Grouping.d.ts +5 -11
  73. package/build/types/features/Ordering.d.ts +1 -1
  74. package/build/types/features/Pagination.d.ts +3 -3
  75. package/build/types/features/Pinning.d.ts +1 -5
  76. package/build/types/features/RowSelection.d.ts +2 -8
  77. package/build/types/features/Rows.d.ts +4 -3
  78. package/build/types/features/Sorting.d.ts +5 -15
  79. package/build/types/features/Visibility.d.ts +1 -4
  80. package/build/types/index.d.ts +6 -4
  81. package/build/types/types.d.ts +3 -15
  82. package/build/types/utils/filterRowsUtils.d.ts +3 -3
  83. package/build/types/utils/getCoreRowModel.d.ts +2 -0
  84. package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
  85. package/build/types/utils/getFacetedRowModel.d.ts +2 -0
  86. package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
  87. package/build/types/utils/{getCoreRowModelSync.d.ts → getFilteredRowModel.d.ts} +1 -1
  88. package/build/types/utils/getGroupedRowModel.d.ts +1 -1
  89. package/build/types/utils/getSortedRowModel.d.ts +2 -0
  90. package/build/types/utils.d.ts +1 -17
  91. package/build/umd/index.development.js +2053 -3002
  92. package/build/umd/index.development.js.map +1 -1
  93. package/build/umd/index.production.js +1 -1
  94. package/build/umd/index.production.js.map +1 -1
  95. package/package.json +1 -1
  96. package/src/core.ts +197 -47
  97. package/src/features/Cells.ts +7 -11
  98. package/src/features/ColumnSizing.ts +89 -139
  99. package/src/features/Columns.ts +10 -13
  100. package/src/features/Expanding.ts +62 -107
  101. package/src/features/Filters.ts +201 -308
  102. package/src/features/Grouping.ts +55 -81
  103. package/src/features/Headers.ts +18 -40
  104. package/src/features/Ordering.ts +6 -4
  105. package/src/features/Pagination.ts +31 -17
  106. package/src/features/Pinning.ts +79 -96
  107. package/src/features/RowSelection.ts +68 -118
  108. package/src/features/Rows.ts +21 -6
  109. package/src/features/Sorting.ts +47 -103
  110. package/src/features/Visibility.ts +24 -47
  111. package/src/filterFns.ts +9 -9
  112. package/src/index.ts +12 -4
  113. package/src/sortingFns.ts +11 -11
  114. package/src/types.ts +3 -18
  115. package/src/utils/filterRowsUtils.ts +47 -68
  116. package/src/utils/{getCoreRowModelSync.ts → getCoreRowModel.ts} +3 -9
  117. package/src/utils/getExpandedRowModel.ts +2 -2
  118. package/src/utils/getFacetedMinMaxValues.ts +37 -0
  119. package/src/utils/getFacetedRowModel.ts +50 -0
  120. package/src/utils/getFacetedUniqueValues.ts +37 -0
  121. package/src/utils/getFilteredRowModel.ts +150 -0
  122. package/src/utils/getGroupedRowModel.ts +53 -62
  123. package/src/utils/getPaginationRowModel.ts +1 -1
  124. package/src/utils/{getSortedRowModelSync.ts → getSortedRowModel.ts} +7 -7
  125. package/src/utils.ts +28 -236
  126. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
  127. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  128. package/build/cjs/utils/getCoreRowModelAsync.js +0 -125
  129. package/build/cjs/utils/getCoreRowModelAsync.js.map +0 -1
  130. package/build/cjs/utils/getCoreRowModelSync.js +0 -102
  131. package/build/cjs/utils/getCoreRowModelSync.js.map +0 -1
  132. package/build/cjs/utils/getFilteredRowModelSync.js +0 -130
  133. package/build/cjs/utils/getFilteredRowModelSync.js.map +0 -1
  134. package/build/cjs/utils/getSortedRowModelSync.js +0 -118
  135. package/build/cjs/utils/getSortedRowModelSync.js.map +0 -1
  136. package/build/types/utils/getCoreRowModelAsync.d.ts +0 -4
  137. package/build/types/utils/getFilteredRowModelAsync.d.ts +0 -4
  138. package/build/types/utils/getFilteredRowModelSync.d.ts +0 -2
  139. package/build/types/utils/getSortedRowModelAsync.d.ts +0 -13
  140. package/build/types/utils/getSortedRowModelSync.d.ts +0 -2
  141. package/src/utils/getCoreRowModelAsync.ts +0 -104
  142. package/src/utils/getFilteredRowModelAsync.ts +0 -49
  143. package/src/utils/getFilteredRowModelSync.ts +0 -150
  144. package/src/utils/getSortedRowModelAsync.ts +0 -200
@@ -45,11 +45,10 @@ export type GroupingColumnDef<TGenerics extends TableGenerics> = {
45
45
  row: Row<TGenerics>
46
46
  column: Column<TGenerics>
47
47
  cell: Cell<TGenerics>
48
- value: TGenerics['Value']
48
+ getValue: () => TGenerics['Value']
49
49
  }
50
50
  >
51
51
  enableGrouping?: boolean
52
- defaultCanGroup?: boolean
53
52
  }
54
53
 
55
54
  export type GroupingColumn<TGenerics extends TableGenerics> = {
@@ -59,12 +58,15 @@ export type GroupingColumn<TGenerics extends TableGenerics> = {
59
58
  getGroupedIndex: () => number
60
59
  toggleGrouping: () => void
61
60
  getToggleGroupingHandler: () => () => void
61
+ getColumnAutoAggregationFn: () => AggregationFn<TGenerics> | undefined
62
+ getColumnAggregationFn: () => AggregationFn<TGenerics> | undefined
62
63
  }
63
64
 
64
65
  export type GroupingRow = {
65
66
  groupingColumnId?: string
66
67
  groupingValue?: any
67
68
  getIsGrouped: () => boolean
69
+ groupingValuesCache: Record<string, any>
68
70
  }
69
71
 
70
72
  export type GroupingCell<TGenerics extends TableGenerics> = {
@@ -96,20 +98,8 @@ export type GroupingOptions<TGenerics extends TableGenerics> = {
96
98
  export type GroupingColumnMode = false | 'reorder' | 'remove'
97
99
 
98
100
  export type GroupingInstance<TGenerics extends TableGenerics> = {
99
- getColumnAutoAggregationFn: (
100
- columnId: string
101
- ) => AggregationFn<TGenerics> | undefined
102
- getColumnAggregationFn: (
103
- columnId: string
104
- ) => AggregationFn<TGenerics> | undefined
105
101
  setGrouping: (updater: Updater<GroupingState>) => void
106
- resetGrouping: () => void
107
- toggleColumnGrouping: (columnId: string) => void
108
- getColumnCanGroup: (columnId: string) => boolean
109
- getColumnIsGrouped: (columnId: string) => boolean
110
- getColumnGroupedIndex: (columnId: string) => number
111
- getToggleGroupingHandler: (columnId: string) => undefined | (() => void)
112
- getRowIsGrouped: (rowId: string) => boolean
102
+ resetGrouping: (defaultState?: boolean) => void
113
103
  getPreGroupedRowModel: () => RowModel<TGenerics>
114
104
  getGroupedRowModel: () => RowModel<TGenerics>
115
105
  _getGroupedRowModel?: () => RowModel<TGenerics>
@@ -147,24 +137,45 @@ export const Grouping: TableFeature = {
147
137
  instance: TableInstance<TGenerics>
148
138
  ): GroupingColumn<TGenerics> => {
149
139
  return {
150
- aggregationFn: column.aggregationFn,
151
- getCanGroup: () => instance.getColumnCanGroup(column.id),
152
- getGroupedIndex: () => instance.getColumnGroupedIndex(column.id),
153
- getIsGrouped: () => instance.getColumnIsGrouped(column.id),
154
- toggleGrouping: () => instance.toggleColumnGrouping(column.id),
155
- getToggleGroupingHandler: () =>
156
- instance.getToggleGroupingHandler(column.id)!,
157
- }
158
- },
140
+ toggleGrouping: () => {
141
+ instance.setGrouping(old => {
142
+ // Find any existing grouping for this column
143
+ if (old?.includes(column.id)) {
144
+ return old.filter(d => d !== column.id)
145
+ }
159
146
 
160
- createInstance: <TGenerics extends TableGenerics>(
161
- instance: TableInstance<TGenerics>
162
- ): GroupingInstance<TGenerics> => {
163
- return {
164
- getColumnAutoAggregationFn: columnId => {
147
+ return [...(old ?? []), column.id]
148
+ })
149
+ },
150
+
151
+ getCanGroup: () => {
152
+ return (
153
+ column.enableGrouping ??
154
+ true ??
155
+ instance.options.enableGrouping ??
156
+ true ??
157
+ !!column.accessorFn
158
+ )
159
+ },
160
+
161
+ getIsGrouped: () => {
162
+ return instance.getState().grouping?.includes(column.id)
163
+ },
164
+
165
+ getGroupedIndex: () => instance.getState().grouping?.indexOf(column.id),
166
+
167
+ getToggleGroupingHandler: () => {
168
+ const canGroup = column.getCanGroup()
169
+
170
+ return () => {
171
+ if (!canGroup) return
172
+ column.toggleGrouping()
173
+ }
174
+ },
175
+ getColumnAutoAggregationFn: () => {
165
176
  const firstRow = instance.getCoreRowModel().flatRows[0]
166
177
 
167
- const value = firstRow?.values[columnId]
178
+ const value = firstRow?.getValue(column.id)
168
179
 
169
180
  if (typeof value === 'number') {
170
181
  return aggregationFns.sum
@@ -176,8 +187,7 @@ export const Grouping: TableFeature = {
176
187
 
177
188
  return aggregationFns.count
178
189
  },
179
- getColumnAggregationFn: columnId => {
180
- const column = instance.getColumn(columnId)
190
+ getColumnAggregationFn: () => {
181
191
  const userAggregationFns = instance.options.aggregationFns
182
192
 
183
193
  if (!column) {
@@ -187,7 +197,7 @@ export const Grouping: TableFeature = {
187
197
  return isFunction(column.aggregationFn)
188
198
  ? column.aggregationFn
189
199
  : column.aggregationFn === 'auto'
190
- ? instance.getColumnAutoAggregationFn(columnId)
200
+ ? column.getColumnAutoAggregationFn()
191
201
  : (userAggregationFns as Record<string, any>)?.[
192
202
  column.aggregationFn as string
193
203
  ] ??
@@ -195,58 +205,21 @@ export const Grouping: TableFeature = {
195
205
  column.aggregationFn as BuiltInAggregationFn
196
206
  ] as AggregationFn<TGenerics>)
197
207
  },
208
+ }
209
+ },
198
210
 
211
+ createInstance: <TGenerics extends TableGenerics>(
212
+ instance: TableInstance<TGenerics>
213
+ ): GroupingInstance<TGenerics> => {
214
+ return {
199
215
  setGrouping: updater => instance.options.onGroupingChange?.(updater),
200
216
 
201
- toggleColumnGrouping: columnId => {
202
- instance.setGrouping(old => {
203
- // Find any existing grouping for this column
204
- if (old?.includes(columnId)) {
205
- return old.filter(d => d !== columnId)
206
- }
207
-
208
- return [...(old ?? []), columnId]
209
- })
210
- },
211
-
212
- getColumnCanGroup: columnId => {
213
- const column = instance.getColumn(columnId)
214
-
215
- if (!column) {
216
- throw new Error()
217
- }
218
-
219
- return (
220
- column.enableGrouping ??
221
- instance.options.enableGrouping ??
222
- column.defaultCanGroup ??
223
- !!column.accessorFn
217
+ resetGrouping: defaultState => {
218
+ instance.setGrouping(
219
+ defaultState ? [] : instance.initialState?.grouping ?? []
224
220
  )
225
221
  },
226
222
 
227
- getColumnIsGrouped: columnId => {
228
- return instance.getState().grouping?.includes(columnId)
229
- },
230
-
231
- getColumnGroupedIndex: columnId =>
232
- instance.getState().grouping?.indexOf(columnId),
233
-
234
- resetGrouping: () => {
235
- instance.setGrouping(instance.initialState?.grouping ?? [])
236
- },
237
-
238
- getToggleGroupingHandler: columnId => {
239
- const column = instance.getColumn(columnId)
240
- const canGroup = column.getCanGroup()
241
-
242
- return () => {
243
- if (!canGroup) return
244
- column.toggleGrouping?.()
245
- }
246
- },
247
-
248
- getRowIsGrouped: rowId => !!instance.getRow(rowId)?.groupingColumnId,
249
-
250
223
  getPreGroupedRowModel: () => instance.getSortedRowModel(),
251
224
  getGroupedRowModel: () => {
252
225
  if (
@@ -271,7 +244,8 @@ export const Grouping: TableFeature = {
271
244
  instance: TableInstance<TGenerics>
272
245
  ): GroupingRow => {
273
246
  return {
274
- getIsGrouped: () => instance.getRowIsGrouped(row.id),
247
+ getIsGrouped: () => !!row.groupingColumnId,
248
+ groupingValuesCache: {},
275
249
  }
276
250
  },
277
251
 
@@ -298,7 +272,7 @@ export const Grouping: TableFeature = {
298
272
  column,
299
273
  row,
300
274
  cell,
301
- value: cell.value,
275
+ getValue: cell.getValue,
302
276
  })
303
277
  : null
304
278
  },
@@ -72,30 +72,6 @@ export const Headers = {
72
72
  colSpan: 0,
73
73
  rowSpan: 0,
74
74
  headerGroup: null!,
75
- getSize: () => {
76
- let sum = 0
77
-
78
- const recurse = (header: CoreHeader<TGenerics>) => {
79
- if (header.subHeaders.length) {
80
- header.subHeaders.forEach(recurse)
81
- } else {
82
- sum += header.column.getSize() ?? 0
83
- }
84
- }
85
-
86
- recurse(header)
87
-
88
- return sum
89
- },
90
- getStart: () => {
91
- if (header.index > 0) {
92
- const prevSiblingHeader =
93
- header.headerGroup.headers[header.index - 1]
94
- return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()
95
- }
96
-
97
- return 0
98
- },
99
75
  getLeafHeaders: (): Header<TGenerics>[] => {
100
76
  const leafHeaders: CoreHeader<TGenerics>[] = []
101
77
 
@@ -163,7 +139,7 @@ export const Headers = {
163
139
  return headerGroups
164
140
  },
165
141
  {
166
- key: process.env.NODE_ENV === 'production' && 'getHeaderGroups',
142
+ key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',
167
143
  debug: () =>
168
144
  instance.options.debugAll ?? instance.options.debugHeaders,
169
145
  }
@@ -183,7 +159,8 @@ export const Headers = {
183
159
  return buildHeaderGroups(allColumns, leafColumns, instance, 'center')
184
160
  },
185
161
  {
186
- key: process.env.NODE_ENV === 'production' && 'getCenterHeaderGroups',
162
+ key:
163
+ process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',
187
164
  debug: () =>
188
165
  instance.options.debugAll ?? instance.options.debugHeaders,
189
166
  }
@@ -200,7 +177,7 @@ export const Headers = {
200
177
  return buildHeaderGroups(allColumns, leafColumns, instance, 'left')
201
178
  },
202
179
  {
203
- key: process.env.NODE_ENV === 'production' && 'getLeftHeaderGroups',
180
+ key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',
204
181
  debug: () =>
205
182
  instance.options.debugAll ?? instance.options.debugHeaders,
206
183
  }
@@ -217,7 +194,7 @@ export const Headers = {
217
194
  return buildHeaderGroups(allColumns, leafColumns, instance, 'right')
218
195
  },
219
196
  {
220
- key: process.env.NODE_ENV === 'production' && 'getRightHeaderGroups',
197
+ key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',
221
198
  debug: () =>
222
199
  instance.options.debugAll ?? instance.options.debugHeaders,
223
200
  }
@@ -231,7 +208,7 @@ export const Headers = {
231
208
  return [...headerGroups].reverse()
232
209
  },
233
210
  {
234
- key: process.env.NODE_ENV === 'production' && 'getFooterGroups',
211
+ key: process.env.NODE_ENV === 'development' && 'getFooterGroups',
235
212
  debug: () =>
236
213
  instance.options.debugAll ?? instance.options.debugHeaders,
237
214
  }
@@ -243,7 +220,7 @@ export const Headers = {
243
220
  return [...headerGroups].reverse()
244
221
  },
245
222
  {
246
- key: process.env.NODE_ENV === 'production' && 'getLeftFooterGroups',
223
+ key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',
247
224
  debug: () =>
248
225
  instance.options.debugAll ?? instance.options.debugHeaders,
249
226
  }
@@ -255,7 +232,8 @@ export const Headers = {
255
232
  return [...headerGroups].reverse()
256
233
  },
257
234
  {
258
- key: process.env.NODE_ENV === 'production' && 'getCenterFooterGroups',
235
+ key:
236
+ process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',
259
237
  debug: () =>
260
238
  instance.options.debugAll ?? instance.options.debugHeaders,
261
239
  }
@@ -267,7 +245,7 @@ export const Headers = {
267
245
  return [...headerGroups].reverse()
268
246
  },
269
247
  {
270
- key: process.env.NODE_ENV === 'production' && 'getRightFooterGroups',
248
+ key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',
271
249
  debug: () =>
272
250
  instance.options.debugAll ?? instance.options.debugHeaders,
273
251
  }
@@ -285,7 +263,7 @@ export const Headers = {
285
263
  .flat()
286
264
  },
287
265
  {
288
- key: process.env.NODE_ENV === 'production' && 'getFlatHeaders',
266
+ key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',
289
267
  debug: () =>
290
268
  instance.options.debugAll ?? instance.options.debugHeaders,
291
269
  }
@@ -301,7 +279,7 @@ export const Headers = {
301
279
  .flat()
302
280
  },
303
281
  {
304
- key: process.env.NODE_ENV === 'production' && 'getLeftFlatHeaders',
282
+ key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',
305
283
  debug: () =>
306
284
  instance.options.debugAll ?? instance.options.debugHeaders,
307
285
  }
@@ -317,7 +295,7 @@ export const Headers = {
317
295
  .flat()
318
296
  },
319
297
  {
320
- key: process.env.NODE_ENV === 'production' && 'getCenterFlatHeaders',
298
+ key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',
321
299
  debug: () =>
322
300
  instance.options.debugAll ?? instance.options.debugHeaders,
323
301
  }
@@ -333,7 +311,7 @@ export const Headers = {
333
311
  .flat()
334
312
  },
335
313
  {
336
- key: process.env.NODE_ENV === 'production' && 'getRightFlatHeaders',
314
+ key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',
337
315
  debug: () =>
338
316
  instance.options.debugAll ?? instance.options.debugHeaders,
339
317
  }
@@ -347,7 +325,7 @@ export const Headers = {
347
325
  return flatHeaders.filter(header => !header.subHeaders?.length)
348
326
  },
349
327
  {
350
- key: process.env.NODE_ENV === 'production' && 'getCenterLeafHeaders',
328
+ key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',
351
329
  debug: () =>
352
330
  instance.options.debugAll ?? instance.options.debugHeaders,
353
331
  }
@@ -359,7 +337,7 @@ export const Headers = {
359
337
  return flatHeaders.filter(header => !header.subHeaders?.length)
360
338
  },
361
339
  {
362
- key: process.env.NODE_ENV === 'production' && 'getLeftLeafHeaders',
340
+ key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',
363
341
  debug: () =>
364
342
  instance.options.debugAll ?? instance.options.debugHeaders,
365
343
  }
@@ -371,7 +349,7 @@ export const Headers = {
371
349
  return flatHeaders.filter(header => !header.subHeaders?.length)
372
350
  },
373
351
  {
374
- key: process.env.NODE_ENV === 'production' && 'getRightLeafHeaders',
352
+ key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',
375
353
  debug: () =>
376
354
  instance.options.debugAll ?? instance.options.debugHeaders,
377
355
  }
@@ -395,7 +373,7 @@ export const Headers = {
395
373
  .flat()
396
374
  },
397
375
  {
398
- key: process.env.NODE_ENV === 'production' && 'getLeafHeaders',
376
+ key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',
399
377
  debug: () =>
400
378
  instance.options.debugAll ?? instance.options.debugHeaders,
401
379
  }
@@ -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
  () => [
@@ -100,7 +102,7 @@ export const Ordering: TableFeature = {
100
102
  return orderColumns(orderedColumns, grouping, groupedColumnMode)
101
103
  },
102
104
  {
103
- key: process.env.NODE_ENV === 'production' && 'getOrderColumnsFn',
105
+ key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn',
104
106
  // debug: () => instance.options.debugAll ?? instance.options.debugTable,
105
107
  }
106
108
  ),
@@ -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 => {
@@ -184,7 +198,7 @@ export const Pagination: TableFeature = {
184
198
  return pageOptions
185
199
  },
186
200
  {
187
- key: process.env.NODE_ENV === 'production' && 'getPageOptions',
201
+ key: process.env.NODE_ENV === 'development' && 'getPageOptions',
188
202
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
189
203
  }
190
204
  ),