@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
@@ -50,18 +50,19 @@ export type SortingColumnDef<TGenerics extends TableGenerics> = {
50
50
  sortDescFirst?: boolean
51
51
  enableSorting?: boolean
52
52
  enableMultiSort?: boolean
53
- defaultCanSort?: boolean
54
53
  invertSorting?: boolean
55
54
  sortUndefined?: false | -1 | 1
56
55
  }
57
56
 
58
57
  export type SortingColumn<TGenerics extends TableGenerics> = {
59
- sortingFn: SortingFnOption<Overwrite<TGenerics, { Value: any }>>
58
+ getAutoSortingFn: () => SortingFn<TGenerics>
59
+ getAutoSortDir: () => SortDirection
60
+ getSortingFn: () => SortingFn<TGenerics>
60
61
  getCanSort: () => boolean
61
62
  getCanMultiSort: () => boolean
62
63
  getSortIndex: () => number
63
64
  getIsSorted: () => false | SortDirection
64
- resetSorting: () => void
65
+ clearSorting: () => void
65
66
  toggleSorting: (desc?: boolean, isMulti?: boolean) => void
66
67
  getToggleSortingHandler: () => undefined | ((event: unknown) => void)
67
68
  }
@@ -83,25 +84,8 @@ export type SortingOptions<TGenerics extends TableGenerics> = {
83
84
  }
84
85
 
85
86
  export type SortingInstance<TGenerics extends TableGenerics> = {
86
- getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined
87
- getColumnAutoSortDir: (columnId: string) => SortDirection
88
-
89
- getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined
90
-
91
87
  setSorting: (updater: Updater<SortingState>) => void
92
- toggleColumnSorting: (
93
- columnId: string,
94
- desc?: boolean,
95
- multi?: boolean
96
- ) => void
97
- resetSorting: (columnId?: string) => void
98
- getColumnCanSort: (columnId: string) => boolean
99
- getColumnCanMultiSort: (columnId: string) => boolean
100
- getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'
101
- getColumnSortIndex: (columnId: string) => number
102
- getToggleSortingHandler: (
103
- columnId: string
104
- ) => undefined | ((event: unknown) => void)
88
+ resetSorting: (defaultState?: boolean) => void
105
89
  getPreSortedRowModel: () => RowModel<TGenerics>
106
90
  getSortedRowModel: () => RowModel<TGenerics>
107
91
  _getSortedRowModel?: () => RowModel<TGenerics>
@@ -141,32 +125,13 @@ export const Sorting: TableFeature = {
141
125
  instance: TableInstance<TGenerics>
142
126
  ): SortingColumn<TGenerics> => {
143
127
  return {
144
- sortingFn: column.sortingFn,
145
- getCanSort: () => instance.getColumnCanSort(column.id),
146
- getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),
147
- getSortIndex: () => instance.getColumnSortIndex(column.id),
148
- getIsSorted: () => instance.getColumnIsSorted(column.id),
149
- resetSorting: () => instance.resetSorting(column.id),
150
- toggleSorting: (desc, isMulti) =>
151
- instance.toggleColumnSorting(column.id, desc, isMulti),
152
- getToggleSortingHandler: () =>
153
- instance.getToggleSortingHandler(column.id)!,
154
- }
155
- },
156
-
157
- createInstance: <TGenerics extends TableGenerics>(
158
- instance: TableInstance<TGenerics>
159
- ): SortingInstance<TGenerics> => {
160
- let registered = false
161
-
162
- return {
163
- getColumnAutoSortingFn: columnId => {
128
+ getAutoSortingFn: () => {
164
129
  const firstRows = instance.getFilteredRowModel().flatRows.slice(100)
165
130
 
166
131
  let isString = false
167
132
 
168
133
  for (const row of firstRows) {
169
- const value = row?.values[columnId]
134
+ const value = row?.getValue(column.id)
170
135
 
171
136
  if (Object.prototype.toString.call(value) === '[object Date]') {
172
137
  return sortingFns.datetime
@@ -187,10 +152,10 @@ export const Sorting: TableFeature = {
187
152
 
188
153
  return sortingFns.basic
189
154
  },
190
- getColumnAutoSortDir: columnId => {
155
+ getAutoSortDir: () => {
191
156
  const firstRow = instance.getFilteredRowModel().flatRows[0]
192
157
 
193
- const value = firstRow?.values[columnId]
158
+ const value = firstRow?.getValue(column.id)
194
159
 
195
160
  if (typeof value === 'string') {
196
161
  return 'asc'
@@ -198,8 +163,7 @@ export const Sorting: TableFeature = {
198
163
 
199
164
  return 'desc'
200
165
  },
201
- getColumnSortingFn: columnId => {
202
- const column = instance.getColumn(columnId)
166
+ getSortingFn: () => {
203
167
  const userSortingFn = instance.options.sortingFns
204
168
 
205
169
  if (!column) {
@@ -209,7 +173,7 @@ export const Sorting: TableFeature = {
209
173
  return isFunction(column.sortingFn)
210
174
  ? column.sortingFn
211
175
  : column.sortingFn === 'auto'
212
- ? instance.getColumnAutoSortingFn(columnId)
176
+ ? column.getAutoSortingFn()
213
177
  : (userSortingFn as Record<string, any>)?.[
214
178
  column.sortingFn as string
215
179
  ] ??
@@ -217,16 +181,7 @@ export const Sorting: TableFeature = {
217
181
  column.sortingFn as BuiltInSortingFn
218
182
  ] as SortingFn<TGenerics>)
219
183
  },
220
-
221
- setSorting: updater => instance.options.onSortingChange?.(updater),
222
-
223
- toggleColumnSorting: (columnId, desc, multi) => {
224
- const column = instance.getColumn(columnId)
225
-
226
- if (!column) {
227
- throw new Error()
228
- }
229
-
184
+ toggleSorting: (desc, multi) => {
230
185
  // if (column.columns.length) {
231
186
  // column.columns.forEach((c, i) => {
232
187
  // if (c.id) {
@@ -238,8 +193,8 @@ export const Sorting: TableFeature = {
238
193
 
239
194
  instance.setSorting(old => {
240
195
  // Find any existing sorting for this column
241
- const existingSorting = old?.find(d => d.id === columnId)
242
- const existingIndex = old?.findIndex(d => d.id === columnId)
196
+ const existingSorting = old?.find(d => d.id === column.id)
197
+ const existingIndex = old?.findIndex(d => d.id === column.id)
243
198
  const hasDescDefined = typeof desc !== 'undefined' && desc !== null
244
199
 
245
200
  let newSorting: SortingState = []
@@ -267,7 +222,7 @@ export const Sorting: TableFeature = {
267
222
  const sortDescFirst =
268
223
  column.sortDescFirst ??
269
224
  instance.options.sortDescFirst ??
270
- instance.getColumnAutoSortDir(columnId) === 'desc'
225
+ column.getAutoSortDir() === 'desc'
271
226
 
272
227
  // Handle toggle states that will remove the sorting
273
228
  if (
@@ -285,7 +240,7 @@ export const Sorting: TableFeature = {
285
240
  if (sortAction === 'replace') {
286
241
  newSorting = [
287
242
  {
288
- id: columnId,
243
+ id: column.id,
289
244
  desc: hasDescDefined ? desc! : !!sortDescFirst,
290
245
  },
291
246
  ]
@@ -293,7 +248,7 @@ export const Sorting: TableFeature = {
293
248
  newSorting = [
294
249
  ...old,
295
250
  {
296
- id: columnId,
251
+ id: column.id,
297
252
  desc: hasDescDefined ? desc! : !!sortDescFirst,
298
253
  },
299
254
  ]
@@ -307,7 +262,7 @@ export const Sorting: TableFeature = {
307
262
  } else if (sortAction === 'toggle' && old?.length) {
308
263
  // This flips (or sets) the
309
264
  newSorting = old.map(d => {
310
- if (d.id === columnId) {
265
+ if (d.id === column.id) {
311
266
  return {
312
267
  ...d,
313
268
  desc: hasDescDefined ? desc! : !existingSorting?.desc,
@@ -316,38 +271,22 @@ export const Sorting: TableFeature = {
316
271
  return d
317
272
  })
318
273
  } else if (sortAction === 'remove' && old?.length) {
319
- newSorting = old.filter(d => d.id !== columnId)
274
+ newSorting = old.filter(d => d.id !== column.id)
320
275
  }
321
276
 
322
277
  return newSorting
323
278
  })
324
279
  },
325
280
 
326
- getColumnCanSort: columnId => {
327
- const column = instance.getColumn(columnId)
328
-
329
- if (!column) {
330
- throw new Error()
331
- }
332
-
281
+ getCanSort: () => {
333
282
  return (
334
- column.enableSorting ??
335
- instance.options.enableSorting ??
336
- column.defaultCanSort ??
283
+ (column.enableSorting ?? true) &&
284
+ (instance.options.enableSorting ?? true) &&
337
285
  !!column.accessorFn
338
- // (!!column.accessorFn ||
339
- // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??
340
- // false
341
286
  )
342
287
  },
343
288
 
344
- getColumnCanMultiSort: columnId => {
345
- const column = instance.getColumn(columnId)
346
-
347
- if (!column) {
348
- throw new Error()
349
- }
350
-
289
+ getCanMultiSort: () => {
351
290
  return (
352
291
  column.enableMultiSort ??
353
292
  instance.options.enableMultiSort ??
@@ -355,34 +294,25 @@ export const Sorting: TableFeature = {
355
294
  )
356
295
  },
357
296
 
358
- getColumnIsSorted: columnId => {
297
+ getIsSorted: () => {
359
298
  const columnSort = instance
360
299
  .getState()
361
- .sorting?.find(d => d.id === columnId)
300
+ .sorting?.find(d => d.id === column.id)
362
301
 
363
302
  return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'
364
303
  },
365
304
 
366
- getColumnSortIndex: columnId =>
367
- instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,
305
+ getSortIndex: () =>
306
+ instance.getState().sorting?.findIndex(d => d.id === column.id) ?? -1,
368
307
 
369
- resetSorting: (columnId?: string) => {
370
- if (columnId) {
371
- instance.setSorting(old =>
372
- old?.length ? old.filter(d => d.id !== columnId) : []
373
- )
374
- } else {
375
- instance.setSorting(instance.initialState?.sorting ?? [])
376
- }
308
+ clearSorting: () => {
309
+ //clear sorting for just 1 column
310
+ instance.setSorting(old =>
311
+ old?.length ? old.filter(d => d.id !== column.id) : []
312
+ )
377
313
  },
378
314
 
379
- getToggleSortingHandler: columnId => {
380
- const column = instance.getColumn(columnId)
381
-
382
- if (!column) {
383
- throw new Error()
384
- }
385
-
315
+ getToggleSortingHandler: () => {
386
316
  const canSort = column.getCanSort()
387
317
 
388
318
  return (e: unknown) => {
@@ -396,7 +326,21 @@ export const Sorting: TableFeature = {
396
326
  )
397
327
  }
398
328
  },
329
+ }
330
+ },
331
+
332
+ createInstance: <TGenerics extends TableGenerics>(
333
+ instance: TableInstance<TGenerics>
334
+ ): SortingInstance<TGenerics> => {
335
+ let registered = false
399
336
 
337
+ return {
338
+ setSorting: updater => instance.options.onSortingChange?.(updater),
339
+ resetSorting: defaultState => {
340
+ instance.setSorting(
341
+ defaultState ? [] : instance.initialState?.sorting ?? []
342
+ )
343
+ },
400
344
  getPreSortedRowModel: () => instance.getFilteredRowModel(),
401
345
  getSortedRowModel: () => {
402
346
  if (
@@ -32,10 +32,8 @@ export type VisibilityInstance<TGenerics extends TableGenerics> = {
32
32
  getRightVisibleLeafColumns: () => Column<TGenerics>[]
33
33
  getCenterVisibleLeafColumns: () => Column<TGenerics>[]
34
34
  setColumnVisibility: (updater: Updater<VisibilityState>) => void
35
- toggleColumnVisibility: (columnId: string, value?: boolean) => void
35
+ resetColumnVisibility: (defaultState?: boolean) => void
36
36
  toggleAllColumnsVisible: (value?: boolean) => void
37
- getColumnIsVisible: (columId: string) => boolean
38
- getColumnCanHide: (columnId: string) => boolean
39
37
  getIsAllColumnsVisible: () => boolean
40
38
  getIsSomeColumnsVisible: () => boolean
41
39
  getToggleAllColumnsVisibilityHandler: () =>
@@ -45,7 +43,6 @@ export type VisibilityInstance<TGenerics extends TableGenerics> = {
45
43
 
46
44
  export type VisibilityColumnDef = {
47
45
  enableHiding?: boolean
48
- defaultCanHide?: boolean
49
46
  defaultIsVisible?: boolean
50
47
  }
51
48
 
@@ -90,10 +87,24 @@ export const Visibility: TableFeature = {
90
87
  instance: TableInstance<TGenerics>
91
88
  ): VisibilityColumn => {
92
89
  return {
93
- getCanHide: () => instance.getColumnCanHide(column.id),
94
- getIsVisible: () => instance.getColumnIsVisible(column.id),
95
- toggleVisibility: value =>
96
- instance.toggleColumnVisibility(column.id, value),
90
+ toggleVisibility: value => {
91
+ if (column.getCanHide()) {
92
+ instance.setColumnVisibility(old => ({
93
+ ...old,
94
+ [column.id]: value ?? !column.getIsVisible(),
95
+ }))
96
+ }
97
+ },
98
+ getIsVisible: () => {
99
+ return instance.getState().columnVisibility?.[column.id] ?? true
100
+ },
101
+
102
+ getCanHide: () => {
103
+ return (
104
+ (column.enableHiding ?? true) &&
105
+ (instance.options.enableHiding ?? true)
106
+ )
107
+ },
97
108
  getToggleVisibilityHandler: () => {
98
109
  return (e: unknown) => {
99
110
  column.toggleVisibility?.(
@@ -134,7 +145,7 @@ export const Visibility: TableFeature = {
134
145
  ],
135
146
  (left, center, right) => [...left, ...center, ...right],
136
147
  {
137
- key: process.env.NODE_ENV === 'production' && 'row.getVisibleCells',
148
+ key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',
138
149
  debug: () => instance.options.debugAll ?? instance.options.debugRows,
139
150
  }
140
151
  ),
@@ -192,15 +203,10 @@ export const Visibility: TableFeature = {
192
203
  setColumnVisibility: updater =>
193
204
  instance.options.onColumnVisibilityChange?.(updater),
194
205
 
195
- toggleColumnVisibility: (columnId, value) => {
196
- if (!columnId) return
197
-
198
- if (instance.getColumnCanHide(columnId)) {
199
- instance.setColumnVisibility(old => ({
200
- ...old,
201
- [columnId]: value ?? !instance.getColumnIsVisible(columnId),
202
- }))
203
- }
206
+ resetColumnVisibility: defaultState => {
207
+ instance.setColumnVisibility(
208
+ defaultState ? {} : instance.initialState.columnVisibility ?? {}
209
+ )
204
210
  },
205
211
 
206
212
  toggleAllColumnsVisible: value => {
@@ -217,35 +223,6 @@ export const Visibility: TableFeature = {
217
223
  )
218
224
  },
219
225
 
220
- getColumnIsVisible: columnId => {
221
- const column = instance.getColumn(columnId)
222
-
223
- if (!column) {
224
- throw new Error()
225
- }
226
-
227
- return (
228
- instance.getState().columnVisibility?.[columnId] ??
229
- column.defaultIsVisible ??
230
- true
231
- )
232
- },
233
-
234
- getColumnCanHide: columnId => {
235
- const column = instance.getColumn(columnId)
236
-
237
- if (!column) {
238
- throw new Error()
239
- }
240
-
241
- return (
242
- instance.options.enableHiding ??
243
- column.enableHiding ??
244
- column.defaultCanHide ??
245
- true
246
- )
247
- },
248
-
249
226
  getIsAllColumnsVisible: () =>
250
227
  !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),
251
228
 
package/src/filterFns.ts CHANGED
@@ -6,7 +6,7 @@ const includesString: FilterFn<any> = (
6
6
  filterValue: string
7
7
  ) => {
8
8
  const search = filterValue.toLowerCase()
9
- return row.values[columnId].toLowerCase().includes(search)
9
+ return row.getValue(columnId).toLowerCase().includes(search)
10
10
  }
11
11
 
12
12
  includesString.autoRemove = (val: any) => testFalsey(val)
@@ -16,7 +16,7 @@ const includesStringSensitive: FilterFn<any> = (
16
16
  columnId: string,
17
17
  filterValue: string
18
18
  ) => {
19
- return row.values[columnId].includes(filterValue)
19
+ return row.getValue(columnId).includes(filterValue)
20
20
  }
21
21
 
22
22
  includesStringSensitive.autoRemove = (val: any) => testFalsey(val)
@@ -26,7 +26,7 @@ const equalsString: FilterFn<any> = (
26
26
  columnId: string,
27
27
  filterValue: string
28
28
  ) => {
29
- return row.values[columnId].toLowerCase() === filterValue.toLowerCase()
29
+ return row.getValue(columnId).toLowerCase() === filterValue.toLowerCase()
30
30
  }
31
31
 
32
32
  equalsString.autoRemove = (val: any) => testFalsey(val)
@@ -36,7 +36,7 @@ const arrIncludes: FilterFn<any> = (
36
36
  columnId: string,
37
37
  filterValue: unknown
38
38
  ) => {
39
- return row.values[columnId].includes(filterValue)
39
+ return row.getValue(columnId).includes(filterValue)
40
40
  }
41
41
 
42
42
  arrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length
@@ -46,7 +46,7 @@ const arrIncludesAll: FilterFn<any> = (
46
46
  columnId: string,
47
47
  filterValue: unknown[]
48
48
  ) => {
49
- return !filterValue.some(val => !row.values[columnId].includes(val))
49
+ return !filterValue.some(val => !row.getValue(columnId).includes(val))
50
50
  }
51
51
 
52
52
  arrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length
@@ -56,13 +56,13 @@ const arrIncludesSome: FilterFn<any> = (
56
56
  columnId: string,
57
57
  filterValue: unknown[]
58
58
  ) => {
59
- return filterValue.some(val => row.values[columnId].includes(val))
59
+ return filterValue.some(val => row.getValue(columnId).includes(val))
60
60
  }
61
61
 
62
62
  arrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length
63
63
 
64
64
  const equals: FilterFn<any> = (row, columnId: string, filterValue: unknown) => {
65
- return row.values[columnId] === filterValue
65
+ return row.getValue(columnId) === filterValue
66
66
  }
67
67
 
68
68
  equals.autoRemove = (val: any) => testFalsey(val)
@@ -72,7 +72,7 @@ const weakEquals: FilterFn<any> = (
72
72
  columnId: string,
73
73
  filterValue: unknown
74
74
  ) => {
75
- return row.values[columnId] == filterValue
75
+ return row.getValue(columnId) == filterValue
76
76
  }
77
77
 
78
78
  weakEquals.autoRemove = (val: any) => testFalsey(val)
@@ -84,7 +84,7 @@ const inNumberRange: FilterFn<any> = (
84
84
  ) => {
85
85
  let [min, max] = filterValue
86
86
 
87
- const rowValue = row.values[columnId]
87
+ const rowValue = row.getValue(columnId)
88
88
  return rowValue >= min && rowValue <= max
89
89
  }
90
90
 
package/src/index.ts CHANGED
@@ -15,10 +15,18 @@ export * from './features/Sorting'
15
15
  export * from './features/Visibility'
16
16
  export * from './features/Expanding'
17
17
  export * from './utils'
18
- export * from './utils/getCoreRowModelSync'
19
- export * from './utils/getCoreRowModelAsync'
20
- export * from './utils/getFilteredRowModelSync'
21
- export * from './utils/getSortedRowModelSync'
18
+ export * from './utils/getCoreRowModel'
19
+ export * from './utils/getFilteredRowModel'
20
+ export * from './utils/getFacetedRowModel'
21
+ export * from './utils/getFacetedUniqueValues'
22
+ export * from './utils/getFacetedMinMaxValues'
23
+ export * from './utils/getSortedRowModel'
22
24
  export * from './utils/getGroupedRowModel'
23
25
  export * from './utils/getExpandedRowModel'
24
26
  export * from './utils/getPaginationRowModel'
27
+ // Experimental Async
28
+ // export * from './utils/getCoreRowModelAsync'
29
+ // export * from './utils/getFilteredRowModelAsync'
30
+ // export * from './utils/getFacetedRowModelAsync'
31
+ // export * from './utils/getFacetedUniqueValuesAsync'
32
+ // export * from './utils/getFacetedMinMaxValuesAsync'
package/src/sortingFns.ts CHANGED
@@ -19,8 +19,8 @@ function alphanumeric<TGenerics extends TableGenerics>(
19
19
  columnId: string
20
20
  ) {
21
21
  return compareAlphanumeric(
22
- toString(rowA.values[columnId]).toLowerCase(),
23
- toString(rowB.values[columnId]).toLowerCase()
22
+ toString(rowA.getValue(columnId)).toLowerCase(),
23
+ toString(rowB.getValue(columnId)).toLowerCase()
24
24
  )
25
25
  }
26
26
 
@@ -30,8 +30,8 @@ function alphanumericCaseSensitive<TGenerics extends TableGenerics>(
30
30
  columnId: string
31
31
  ) {
32
32
  return compareAlphanumeric(
33
- toString(rowA.values[columnId]),
34
- toString(rowB.values[columnId])
33
+ toString(rowA.getValue(columnId)),
34
+ toString(rowB.getValue(columnId))
35
35
  )
36
36
  }
37
37
 
@@ -90,8 +90,8 @@ function text<TGenerics extends TableGenerics>(
90
90
  columnId: string
91
91
  ) {
92
92
  return compareBasic(
93
- toString(rowA.values[columnId]).toLowerCase(),
94
- toString(rowB.values[columnId]).toLowerCase()
93
+ toString(rowA.getValue(columnId)).toLowerCase(),
94
+ toString(rowB.getValue(columnId)).toLowerCase()
95
95
  )
96
96
  }
97
97
 
@@ -103,8 +103,8 @@ function textCaseSensitive<TGenerics extends TableGenerics>(
103
103
  columnId: string
104
104
  ) {
105
105
  return compareBasic(
106
- toString(rowA.values[columnId]),
107
- toString(rowB.values[columnId])
106
+ toString(rowA.getValue(columnId)),
107
+ toString(rowB.getValue(columnId))
108
108
  )
109
109
  }
110
110
 
@@ -114,8 +114,8 @@ function datetime<TGenerics extends TableGenerics>(
114
114
  columnId: string
115
115
  ) {
116
116
  return compareBasic(
117
- (rowA.values[columnId] as Date).getTime(),
118
- (rowB.values[columnId] as Date).getTime()
117
+ (rowA.getValue(columnId) as Date).getTime(),
118
+ (rowB.getValue(columnId) as Date).getTime()
119
119
  )
120
120
  }
121
121
 
@@ -124,7 +124,7 @@ function basic<TGenerics extends TableGenerics>(
124
124
  rowB: Row<TGenerics>,
125
125
  columnId: string
126
126
  ) {
127
- return compareBasic(rowA.values[columnId], rowB.values[columnId])
127
+ return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId))
128
128
  }
129
129
 
130
130
  // Utils
package/src/types.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { CoreOptions, CoreTableState, TableCore } from './core'
1
+ import { CoreOptions, CoreTableState, CoreInstance } from './core'
2
2
  import { ColumnsOptions, CoreColumn, CoreColumnDef } from './features/Columns'
3
3
  import {
4
4
  VisibilityInstance,
@@ -107,7 +107,7 @@ export type TableFeature = {
107
107
  }
108
108
 
109
109
  export type TableInstance<TGenerics extends TableGenerics> =
110
- TableCore<TGenerics> &
110
+ CoreInstance<TGenerics> &
111
111
  ColumnsInstance<TGenerics> &
112
112
  RowsInstance<TGenerics> &
113
113
  CellsInstance<TGenerics> &
@@ -214,7 +214,7 @@ export type CoreCell<TGenerics extends TableGenerics> = {
214
214
  id: string
215
215
  rowId: string
216
216
  columnId: string
217
- value: TGenerics['Value']
217
+ getValue: () => TGenerics['Value']
218
218
  row: Row<TGenerics>
219
219
  column: Column<TGenerics>
220
220
  renderCell: () => string | null | TGenerics['Rendered']
@@ -228,8 +228,6 @@ export type CoreHeader<TGenerics extends TableGenerics> = {
228
228
  index: number
229
229
  depth: number
230
230
  column: Column<TGenerics>
231
- getStart: () => number
232
- getSize: () => number
233
231
  headerGroup: HeaderGroup<TGenerics>
234
232
  subHeaders: Header<TGenerics>[]
235
233
  colSpan?: number
@@ -251,17 +249,4 @@ export type HeaderGroup<TGenerics extends TableGenerics> = {
251
249
  headers: Header<TGenerics>[]
252
250
  }
253
251
 
254
- export type HeaderRenderProps<THeader> = {
255
- header: THeader
256
- }
257
-
258
- export type FooterRenderProps<THeader> = {
259
- header: THeader
260
- }
261
-
262
- export type CellRenderProps<TCell, TRow> = {
263
- cell: TCell
264
- row: TRow
265
- }
266
-
267
252
  export type NoInfer<A extends any> = [A][A extends any ? 0 : never]