@tanstack/table-core 8.0.12 → 8.1.0

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 (127) hide show
  1. package/build/cjs/core/cell.js +13 -13
  2. package/build/cjs/core/cell.js.map +1 -1
  3. package/build/cjs/core/column.js +20 -21
  4. package/build/cjs/core/column.js.map +1 -1
  5. package/build/cjs/core/headers.js +63 -68
  6. package/build/cjs/core/headers.js.map +1 -1
  7. package/build/cjs/core/row.js +16 -11
  8. package/build/cjs/core/row.js.map +1 -1
  9. package/build/cjs/core/{instance.js → table.js} +46 -57
  10. package/build/cjs/core/table.js.map +1 -0
  11. package/build/cjs/features/ColumnSizing.js +36 -36
  12. package/build/cjs/features/ColumnSizing.js.map +1 -1
  13. package/build/cjs/features/Expanding.js +34 -34
  14. package/build/cjs/features/Expanding.js.map +1 -1
  15. package/build/cjs/features/Filters.js +46 -52
  16. package/build/cjs/features/Filters.js.map +1 -1
  17. package/build/cjs/features/Grouping.js +24 -49
  18. package/build/cjs/features/Grouping.js.map +1 -1
  19. package/build/cjs/features/Ordering.js +8 -8
  20. package/build/cjs/features/Ordering.js.map +1 -1
  21. package/build/cjs/features/Pagination.js +37 -37
  22. package/build/cjs/features/Pagination.js.map +1 -1
  23. package/build/cjs/features/Pinning.js +33 -33
  24. package/build/cjs/features/Pinning.js.map +1 -1
  25. package/build/cjs/features/RowSelection.js +86 -74
  26. package/build/cjs/features/RowSelection.js.map +1 -1
  27. package/build/cjs/features/Sorting.js +36 -40
  28. package/build/cjs/features/Sorting.js.map +1 -1
  29. package/build/cjs/features/Visibility.js +30 -30
  30. package/build/cjs/features/Visibility.js.map +1 -1
  31. package/build/cjs/index.js +3 -4
  32. package/build/cjs/index.js.map +1 -1
  33. package/build/cjs/utils/filterRowsUtils.js +8 -8
  34. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  35. package/build/cjs/utils/getCoreRowModel.js +8 -8
  36. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  37. package/build/cjs/utils/getExpandedRowModel.js +4 -4
  38. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  39. package/build/cjs/utils/getFacetedMinMaxValues.js +3 -3
  40. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
  41. package/build/cjs/utils/getFacetedRowModel.js +4 -4
  42. package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
  43. package/build/cjs/utils/getFacetedUniqueValues.js +3 -3
  44. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
  45. package/build/cjs/utils/getFilteredRowModel.js +8 -8
  46. package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
  47. package/build/cjs/utils/getGroupedRowModel.js +9 -9
  48. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  49. package/build/cjs/utils/getPaginationRowModel.js +4 -4
  50. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  51. package/build/cjs/utils/getSortedRowModel.js +7 -7
  52. package/build/cjs/utils/getSortedRowModel.js.map +1 -1
  53. package/build/cjs/utils.js +2 -2
  54. package/build/cjs/utils.js.map +1 -1
  55. package/build/esm/index.js +585 -677
  56. package/build/esm/index.js.map +1 -1
  57. package/build/stats-html.html +1 -1
  58. package/build/stats-react.json +352 -377
  59. package/build/types/index.d.ts +761 -29
  60. package/build/umd/index.development.js +586 -678
  61. package/build/umd/index.development.js.map +1 -1
  62. package/build/umd/index.production.js +1 -1
  63. package/build/umd/index.production.js.map +1 -1
  64. package/package.json +1 -1
  65. package/src/core/cell.ts +34 -28
  66. package/src/core/column.ts +83 -72
  67. package/src/core/headers.ts +118 -149
  68. package/src/core/row.ts +31 -25
  69. package/src/core/{instance.ts → table.ts} +85 -116
  70. package/src/features/ColumnSizing.ts +45 -47
  71. package/src/features/Expanding.ts +53 -59
  72. package/src/features/Filters.ts +112 -132
  73. package/src/features/Grouping.ts +63 -112
  74. package/src/features/Ordering.ts +19 -21
  75. package/src/features/Pagination.ts +54 -55
  76. package/src/features/Pinning.ts +49 -61
  77. package/src/features/RowSelection.ts +115 -114
  78. package/src/features/Sorting.ts +57 -72
  79. package/src/features/Visibility.ts +48 -48
  80. package/src/index.ts +1 -2
  81. package/src/types.ts +64 -69
  82. package/src/utils/filterRowsUtils.ts +33 -28
  83. package/src/utils/getCoreRowModel.ts +22 -22
  84. package/src/utils/getExpandedRowModel.ts +15 -15
  85. package/src/utils/getFacetedMinMaxValues.ts +6 -6
  86. package/src/utils/getFacetedRowModel.ts +12 -12
  87. package/src/utils/getFacetedUniqueValues.ts +6 -6
  88. package/src/utils/getFilteredRowModel.ts +17 -17
  89. package/src/utils/getGroupedRowModel.ts +18 -21
  90. package/src/utils/getPaginationRowModel.ts +10 -13
  91. package/src/utils/getSortedRowModel.ts +14 -14
  92. package/src/utils.ts +8 -2
  93. package/build/cjs/core/instance.js.map +0 -1
  94. package/build/cjs/createTable.js +0 -72
  95. package/build/cjs/createTable.js.map +0 -1
  96. package/build/types/aggregationFns.d.ts +0 -13
  97. package/build/types/core/cell.d.ts +0 -9
  98. package/build/types/core/column.d.ts +0 -40
  99. package/build/types/core/headers.d.ts +0 -46
  100. package/build/types/core/instance.d.ts +0 -58
  101. package/build/types/core/row.d.ts +0 -15
  102. package/build/types/createTable.d.ts +0 -63
  103. package/build/types/features/ColumnSizing.d.ts +0 -63
  104. package/build/types/features/Expanding.d.ts +0 -39
  105. package/build/types/features/Filters.d.ts +0 -90
  106. package/build/types/features/Grouping.d.ts +0 -68
  107. package/build/types/features/Ordering.d.ts +0 -18
  108. package/build/types/features/Pagination.d.ts +0 -42
  109. package/build/types/features/Pinning.d.ts +0 -40
  110. package/build/types/features/RowSelection.d.ts +0 -40
  111. package/build/types/features/Sorting.d.ts +0 -63
  112. package/build/types/features/Visibility.d.ts +0 -40
  113. package/build/types/filterFns.d.ts +0 -13
  114. package/build/types/sortingFns.d.ts +0 -11
  115. package/build/types/types.d.ts +0 -53
  116. package/build/types/utils/filterRowsUtils.d.ts +0 -4
  117. package/build/types/utils/getCoreRowModel.d.ts +0 -2
  118. package/build/types/utils/getExpandedRowModel.d.ts +0 -7
  119. package/build/types/utils/getFacetedMinMaxValues.d.ts +0 -2
  120. package/build/types/utils/getFacetedRowModel.d.ts +0 -2
  121. package/build/types/utils/getFacetedUniqueValues.d.ts +0 -2
  122. package/build/types/utils/getFilteredRowModel.d.ts +0 -2
  123. package/build/types/utils/getGroupedRowModel.d.ts +0 -2
  124. package/build/types/utils/getPaginationRowModel.d.ts +0 -4
  125. package/build/types/utils/getSortedRowModel.d.ts +0 -2
  126. package/build/types/utils.d.ts +0 -19
  127. package/src/createTable.ts +0 -188
@@ -1,13 +1,14 @@
1
1
  import { RowModel } from '..'
2
- import { TableFeature } from '../core/instance'
2
+ import { TableFeature } from '../core/table'
3
3
  import { BuiltInFilterFn, filterFns } from '../filterFns'
4
4
  import {
5
5
  Column,
6
6
  OnChangeFn,
7
7
  TableGenerics,
8
- TableInstance,
8
+ Table,
9
9
  Row,
10
10
  Updater,
11
+ RowData,
11
12
  } from '../types'
12
13
  import {
13
14
  functionalUpdate,
@@ -29,59 +30,58 @@ export type ColumnFilter = {
29
30
  value: unknown
30
31
  }
31
32
 
32
- export type ResolvedColumnFilter<TGenerics extends TableGenerics> = {
33
+ export type ResolvedColumnFilter<TData extends RowData> = {
33
34
  id: string
34
35
  resolvedValue: unknown
35
- filterFn: FilterFn<TGenerics>
36
+ filterFn: FilterFn<TData>
36
37
  }
37
38
 
38
- export type FilterFn<TGenerics extends TableGenerics> = {
39
+ export type FilterFn<TData extends RowData> = {
39
40
  (
40
- row: Row<TGenerics>,
41
+ row: Row<TData>,
41
42
  columnId: string,
42
43
  filterValue: any,
43
- addMeta: (meta: TGenerics['FilterMeta']) => void
44
+ addMeta: (meta: any) => void
44
45
  ): boolean
45
46
 
46
- resolveFilterValue?: TransformFilterValueFn<TGenerics>
47
- autoRemove?: ColumnFilterAutoRemoveTestFn<TGenerics>
47
+ resolveFilterValue?: TransformFilterValueFn<TData>
48
+ autoRemove?: ColumnFilterAutoRemoveTestFn<TData>
48
49
  }
49
50
 
50
- export type TransformFilterValueFn<TGenerics extends TableGenerics> = (
51
+ export type TransformFilterValueFn<TData extends RowData> = (
51
52
  value: any,
52
- column?: Column<TGenerics>
53
+ column?: Column<TData>
53
54
  ) => unknown
54
55
 
55
- export type ColumnFilterAutoRemoveTestFn<TGenerics extends TableGenerics> = (
56
+ export type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (
56
57
  value: any,
57
- column?: Column<TGenerics>
58
+ column?: Column<TData>
58
59
  ) => boolean
59
60
 
60
- export type CustomFilterFns<TGenerics extends TableGenerics> = Record<
61
+ export type CustomFilterFns<TData extends RowData> = Record<
61
62
  string,
62
- FilterFn<TGenerics>
63
+ FilterFn<TData>
63
64
  >
64
65
 
65
- export type FilterFnOption<TGenerics extends TableGenerics> =
66
+ export type FilterFnOption<TData extends RowData> =
66
67
  | 'auto'
67
68
  | BuiltInFilterFn
68
- | keyof TGenerics['FilterFns']
69
- | FilterFn<TGenerics>
69
+ | FilterFn<TData>
70
70
 
71
- export type FiltersColumnDef<TGenerics extends TableGenerics> = {
72
- filterFn?: FilterFnOption<Overwrite<TGenerics, { Value: any }>>
71
+ export type FiltersColumnDef<TData extends RowData> = {
72
+ filterFn?: FilterFnOption<TData>
73
73
  enableColumnFilter?: boolean
74
74
  enableGlobalFilter?: boolean
75
75
  }
76
76
 
77
- export type FiltersColumn<TGenerics extends TableGenerics> = {
78
- getAutoFilterFn: () => FilterFn<TGenerics> | undefined
79
- getFilterFn: () => FilterFn<TGenerics> | undefined
77
+ export type FiltersColumn<TData extends RowData> = {
78
+ getAutoFilterFn: () => FilterFn<TData> | undefined
79
+ getFilterFn: () => FilterFn<TData> | undefined
80
80
  setFilterValue: (updater: Updater<any>) => void
81
81
  getCanFilter: () => boolean
82
82
  getCanGlobalFilter: () => boolean
83
- getFacetedRowModel: () => RowModel<TGenerics>
84
- _getFacetedRowModel?: () => RowModel<TGenerics>
83
+ getFacetedRowModel: () => RowModel<TData>
84
+ _getFacetedRowModel?: () => RowModel<TData>
85
85
  getIsFiltered: () => boolean
86
86
  getFilterValue: () => unknown
87
87
  getFilterIndex: () => number
@@ -91,60 +91,59 @@ export type FiltersColumn<TGenerics extends TableGenerics> = {
91
91
  _getFacetedMinMaxValues?: () => undefined | [number, number]
92
92
  }
93
93
 
94
- export type FiltersRow<TGenerics extends TableGenerics> = {
94
+ export type FiltersRow<TData extends RowData> = {
95
95
  columnFilters: Record<string, boolean>
96
- columnFiltersMeta: Record<string, TGenerics['FilterMeta']>
96
+ columnFiltersMeta: Record<string, any>
97
97
  }
98
98
 
99
- export type FiltersOptions<TGenerics extends TableGenerics> = {
99
+ export type FiltersOptions<TData extends RowData> = {
100
100
  enableFilters?: boolean
101
101
  manualFiltering?: boolean
102
102
  filterFromLeafRows?: boolean
103
- filterFns?: TGenerics['FilterFns']
104
- getFilteredRowModel?: (instance: TableInstance<any>) => () => RowModel<any>
103
+ getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>
105
104
 
106
105
  // Column
107
106
  onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>
108
107
  enableColumnFilters?: boolean
109
108
 
110
109
  // Global
111
- globalFilterFn?: FilterFnOption<TGenerics>
110
+ globalFilterFn?: FilterFnOption<TData>
112
111
  onGlobalFilterChange?: OnChangeFn<any>
113
112
  enableGlobalFilter?: boolean
114
- getColumnCanGlobalFilter?: (column: Column<TGenerics>) => boolean
113
+ getColumnCanGlobalFilter?: (column: Column<TData>) => boolean
115
114
 
116
115
  // Faceting
117
116
  getFacetedRowModel?: (
118
- instance: TableInstance<TGenerics>,
117
+ table: Table<TData>,
119
118
  columnId: string
120
- ) => () => RowModel<TGenerics>
119
+ ) => () => RowModel<TData>
121
120
  getFacetedUniqueValues?: (
122
- instance: TableInstance<TGenerics>,
121
+ table: Table<TData>,
123
122
  columnId: string
124
123
  ) => () => Map<any, number>
125
124
  getFacetedMinMaxValues?: (
126
- instance: TableInstance<TGenerics>,
125
+ table: Table<TData>,
127
126
  columnId: string
128
127
  ) => () => undefined | [number, number]
129
128
  }
130
129
 
131
- export type FiltersInstance<TGenerics extends TableGenerics> = {
130
+ export type FiltersInstance<TData extends RowData> = {
132
131
  setColumnFilters: (updater: Updater<ColumnFiltersState>) => void
133
132
 
134
133
  resetColumnFilters: (defaultState?: boolean) => void
135
134
 
136
135
  // Column Filters
137
- getPreFilteredRowModel: () => RowModel<TGenerics>
138
- getFilteredRowModel: () => RowModel<TGenerics>
139
- _getFilteredRowModel?: () => RowModel<TGenerics>
136
+ getPreFilteredRowModel: () => RowModel<TData>
137
+ getFilteredRowModel: () => RowModel<TData>
138
+ _getFilteredRowModel?: () => RowModel<TData>
140
139
 
141
140
  // Global Filters
142
141
  setGlobalFilter: (updater: Updater<any>) => void
143
142
  resetGlobalFilter: (defaultState?: boolean) => void
144
- getGlobalAutoFilterFn: () => FilterFn<TGenerics> | undefined
145
- getGlobalFilterFn: () => FilterFn<TGenerics> | undefined
146
- getGlobalFacetedRowModel: () => RowModel<TGenerics>
147
- _getGlobalFacetedRowModel?: () => RowModel<TGenerics>
143
+ getGlobalAutoFilterFn: () => FilterFn<TData> | undefined
144
+ getGlobalFilterFn: () => FilterFn<TData> | undefined
145
+ getGlobalFacetedRowModel: () => RowModel<TData>
146
+ _getGlobalFacetedRowModel?: () => RowModel<TData>
148
147
  getGlobalFacetedUniqueValues: () => Map<any, number>
149
148
  _getGlobalFacetedUniqueValues?: () => Map<any, number>
150
149
  getGlobalFacetedMinMaxValues: () => undefined | [number, number]
@@ -154,9 +153,7 @@ export type FiltersInstance<TGenerics extends TableGenerics> = {
154
153
  //
155
154
 
156
155
  export const Filters: TableFeature = {
157
- getDefaultColumnDef: <
158
- TGenerics extends TableGenerics
159
- >(): FiltersColumnDef<TGenerics> => {
156
+ getDefaultColumnDef: <TData extends RowData>(): FiltersColumnDef<TData> => {
160
157
  return {
161
158
  filterFn: 'auto',
162
159
  }
@@ -172,16 +169,16 @@ export const Filters: TableFeature = {
172
169
  }
173
170
  },
174
171
 
175
- getDefaultOptions: <TGenerics extends TableGenerics>(
176
- instance: TableInstance<TGenerics>
177
- ): FiltersOptions<TGenerics> => {
172
+ getDefaultOptions: <TData extends RowData>(
173
+ table: Table<TData>
174
+ ): FiltersOptions<TData> => {
178
175
  return {
179
- onColumnFiltersChange: makeStateUpdater('columnFilters', instance),
180
- onGlobalFilterChange: makeStateUpdater('globalFilter', instance),
176
+ onColumnFiltersChange: makeStateUpdater('columnFilters', table),
177
+ onGlobalFilterChange: makeStateUpdater('globalFilter', table),
181
178
  filterFromLeafRows: false,
182
179
  globalFilterFn: 'auto',
183
180
  getColumnCanGlobalFilter: column => {
184
- const value = instance
181
+ const value = table
185
182
  .getCoreRowModel()
186
183
  .flatRows[0]?._getAllCellsByColumnId()
187
184
  [column.id]?.getValue()
@@ -191,13 +188,13 @@ export const Filters: TableFeature = {
191
188
  }
192
189
  },
193
190
 
194
- createColumn: <TGenerics extends TableGenerics>(
195
- column: Column<TGenerics>,
196
- instance: TableInstance<TGenerics>
197
- ): FiltersColumn<TGenerics> => {
191
+ createColumn: <TData extends RowData>(
192
+ column: Column<TData>,
193
+ table: Table<TData>
194
+ ): FiltersColumn<TData> => {
198
195
  return {
199
196
  getAutoFilterFn: () => {
200
- const firstRow = instance.getCoreRowModel().flatRows[0]
197
+ const firstRow = table.getCoreRowModel().flatRows[0]
201
198
 
202
199
  const value = firstRow?.getValue(column.id)
203
200
 
@@ -224,24 +221,19 @@ export const Filters: TableFeature = {
224
221
  return filterFns.weakEquals
225
222
  },
226
223
  getFilterFn: () => {
227
- const userFilterFns = instance.options.filterFns
228
-
229
224
  return isFunction(column.columnDef.filterFn)
230
225
  ? column.columnDef.filterFn
231
226
  : column.columnDef.filterFn === 'auto'
232
227
  ? column.getAutoFilterFn()
233
- : (userFilterFns as Record<string, any>)?.[
234
- column.columnDef.filterFn as string
235
- ] ??
236
- (filterFns[
228
+ : (filterFns[
237
229
  column.columnDef.filterFn as BuiltInFilterFn
238
- ] as FilterFn<TGenerics>)
230
+ ] as FilterFn<TData>)
239
231
  },
240
232
  getCanFilter: () => {
241
233
  return (
242
234
  (column.columnDef.enableColumnFilter ?? true) &&
243
- (instance.options.enableColumnFilters ?? true) &&
244
- (instance.options.enableFilters ?? true) &&
235
+ (table.options.enableColumnFilters ?? true) &&
236
+ (table.options.enableFilters ?? true) &&
245
237
  !!column.accessorFn
246
238
  )
247
239
  },
@@ -249,9 +241,9 @@ export const Filters: TableFeature = {
249
241
  getCanGlobalFilter: () => {
250
242
  return (
251
243
  (column.columnDef.enableGlobalFilter ?? true) &&
252
- (instance.options.enableGlobalFilter ?? true) &&
253
- (instance.options.enableFilters ?? true) &&
254
- (instance.options.getColumnCanGlobalFilter?.(column) ?? true) &&
244
+ (table.options.enableGlobalFilter ?? true) &&
245
+ (table.options.enableFilters ?? true) &&
246
+ (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&
255
247
  !!column.accessorFn
256
248
  )
257
249
  },
@@ -259,14 +251,14 @@ export const Filters: TableFeature = {
259
251
  getIsFiltered: () => column.getFilterIndex() > -1,
260
252
 
261
253
  getFilterValue: () =>
262
- instance.getState().columnFilters?.find(d => d.id === column.id)?.value,
254
+ table.getState().columnFilters?.find(d => d.id === column.id)?.value,
263
255
 
264
256
  getFilterIndex: () =>
265
- instance.getState().columnFilters?.findIndex(d => d.id === column.id) ??
257
+ table.getState().columnFilters?.findIndex(d => d.id === column.id) ??
266
258
  -1,
267
259
 
268
260
  setFilterValue: value => {
269
- instance.setColumnFilters(old => {
261
+ table.setColumnFilters(old => {
270
262
  const filterFn = column.getFilterFn()
271
263
  const previousfilter = old?.find(d => d.id === column.id)
272
264
 
@@ -278,7 +270,7 @@ export const Filters: TableFeature = {
278
270
  //
279
271
  if (
280
272
  shouldAutoRemoveFilter(
281
- filterFn as FilterFn<TGenerics>,
273
+ filterFn as FilterFn<TData>,
282
274
  newFilter,
283
275
  column
284
276
  )
@@ -307,18 +299,18 @@ export const Filters: TableFeature = {
307
299
  })
308
300
  },
309
301
  _getFacetedRowModel:
310
- instance.options.getFacetedRowModel &&
311
- instance.options.getFacetedRowModel(instance, column.id),
302
+ table.options.getFacetedRowModel &&
303
+ table.options.getFacetedRowModel(table, column.id),
312
304
  getFacetedRowModel: () => {
313
305
  if (!column._getFacetedRowModel) {
314
- return instance.getPreFilteredRowModel()
306
+ return table.getPreFilteredRowModel()
315
307
  }
316
308
 
317
309
  return column._getFacetedRowModel()
318
310
  },
319
311
  _getFacetedUniqueValues:
320
- instance.options.getFacetedUniqueValues &&
321
- instance.options.getFacetedUniqueValues(instance, column.id),
312
+ table.options.getFacetedUniqueValues &&
313
+ table.options.getFacetedUniqueValues(table, column.id),
322
314
  getFacetedUniqueValues: () => {
323
315
  if (!column._getFacetedUniqueValues) {
324
316
  return new Map()
@@ -327,8 +319,8 @@ export const Filters: TableFeature = {
327
319
  return column._getFacetedUniqueValues()
328
320
  },
329
321
  _getFacetedMinMaxValues:
330
- instance.options.getFacetedMinMaxValues &&
331
- instance.options.getFacetedMinMaxValues(instance, column.id),
322
+ table.options.getFacetedMinMaxValues &&
323
+ table.options.getFacetedMinMaxValues(table, column.id),
332
324
  getFacetedMinMaxValues: () => {
333
325
  if (!column._getFacetedMinMaxValues) {
334
326
  return undefined
@@ -341,42 +333,36 @@ export const Filters: TableFeature = {
341
333
  }
342
334
  },
343
335
 
344
- createRow: <TGenerics extends TableGenerics>(
345
- row: Row<TGenerics>,
346
- instance: TableInstance<TGenerics>
347
- ): FiltersRow<TGenerics> => {
336
+ createRow: <TData extends RowData>(
337
+ row: Row<TData>,
338
+ table: Table<TData>
339
+ ): FiltersRow<TData> => {
348
340
  return {
349
341
  columnFilters: {},
350
342
  columnFiltersMeta: {},
351
343
  }
352
344
  },
353
345
 
354
- createInstance: <TGenerics extends TableGenerics>(
355
- instance: TableInstance<TGenerics>
356
- ): FiltersInstance<TGenerics> => {
346
+ createTable: <TData extends RowData>(
347
+ table: Table<TData>
348
+ ): FiltersInstance<TData> => {
357
349
  return {
358
350
  getGlobalAutoFilterFn: () => {
359
351
  return filterFns.includesString
360
352
  },
361
353
 
362
354
  getGlobalFilterFn: () => {
363
- const { filterFns: userFilterFns, globalFilterFn: globalFilterFn } =
364
- instance.options
355
+ const { globalFilterFn: globalFilterFn } = table.options
365
356
 
366
357
  return isFunction(globalFilterFn)
367
358
  ? globalFilterFn
368
359
  : globalFilterFn === 'auto'
369
- ? instance.getGlobalAutoFilterFn()
370
- : (userFilterFns as Record<string, any>)?.[
371
- globalFilterFn as string
372
- ] ??
373
- (filterFns[
374
- globalFilterFn as BuiltInFilterFn
375
- ] as FilterFn<TGenerics>)
360
+ ? table.getGlobalAutoFilterFn()
361
+ : (filterFns[globalFilterFn as BuiltInFilterFn] as FilterFn<TData>)
376
362
  },
377
363
 
378
364
  setColumnFilters: (updater: Updater<ColumnFiltersState>) => {
379
- const leafColumns = instance.getAllLeafColumns()
365
+ const leafColumns = table.getAllLeafColumns()
380
366
 
381
367
  const updateFn = (old: ColumnFiltersState) => {
382
368
  return functionalUpdate(updater, old)?.filter(filter => {
@@ -394,84 +380,78 @@ export const Filters: TableFeature = {
394
380
  })
395
381
  }
396
382
 
397
- instance.options.onColumnFiltersChange?.(updateFn)
383
+ table.options.onColumnFiltersChange?.(updateFn)
398
384
  },
399
385
 
400
386
  setGlobalFilter: updater => {
401
- instance.options.onGlobalFilterChange?.(updater)
387
+ table.options.onGlobalFilterChange?.(updater)
402
388
  },
403
389
 
404
390
  resetGlobalFilter: defaultState => {
405
- instance.setGlobalFilter(
406
- defaultState ? undefined : instance.initialState.globalFilter
391
+ table.setGlobalFilter(
392
+ defaultState ? undefined : table.initialState.globalFilter
407
393
  )
408
394
  },
409
395
 
410
396
  resetColumnFilters: defaultState => {
411
- instance.setColumnFilters(
412
- defaultState ? [] : instance.initialState?.columnFilters ?? []
397
+ table.setColumnFilters(
398
+ defaultState ? [] : table.initialState?.columnFilters ?? []
413
399
  )
414
400
  },
415
401
 
416
- getPreFilteredRowModel: () => instance.getCoreRowModel(),
402
+ getPreFilteredRowModel: () => table.getCoreRowModel(),
417
403
  _getFilteredRowModel:
418
- instance.options.getFilteredRowModel &&
419
- instance.options.getFilteredRowModel(instance),
404
+ table.options.getFilteredRowModel &&
405
+ table.options.getFilteredRowModel(table),
420
406
  getFilteredRowModel: () => {
421
- if (
422
- instance.options.manualFiltering ||
423
- !instance._getFilteredRowModel
424
- ) {
425
- return instance.getPreFilteredRowModel()
407
+ if (table.options.manualFiltering || !table._getFilteredRowModel) {
408
+ return table.getPreFilteredRowModel()
426
409
  }
427
410
 
428
- return instance._getFilteredRowModel()
411
+ return table._getFilteredRowModel()
429
412
  },
430
413
 
431
414
  _getGlobalFacetedRowModel:
432
- instance.options.getFacetedRowModel &&
433
- instance.options.getFacetedRowModel(instance, '__global__'),
415
+ table.options.getFacetedRowModel &&
416
+ table.options.getFacetedRowModel(table, '__global__'),
434
417
 
435
418
  getGlobalFacetedRowModel: () => {
436
- if (
437
- instance.options.manualFiltering ||
438
- !instance._getGlobalFacetedRowModel
439
- ) {
440
- return instance.getPreFilteredRowModel()
419
+ if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {
420
+ return table.getPreFilteredRowModel()
441
421
  }
442
422
 
443
- return instance._getGlobalFacetedRowModel()
423
+ return table._getGlobalFacetedRowModel()
444
424
  },
445
425
 
446
426
  _getGlobalFacetedUniqueValues:
447
- instance.options.getFacetedUniqueValues &&
448
- instance.options.getFacetedUniqueValues(instance, '__global__'),
427
+ table.options.getFacetedUniqueValues &&
428
+ table.options.getFacetedUniqueValues(table, '__global__'),
449
429
  getGlobalFacetedUniqueValues: () => {
450
- if (!instance._getGlobalFacetedUniqueValues) {
430
+ if (!table._getGlobalFacetedUniqueValues) {
451
431
  return new Map()
452
432
  }
453
433
 
454
- return instance._getGlobalFacetedUniqueValues()
434
+ return table._getGlobalFacetedUniqueValues()
455
435
  },
456
436
 
457
437
  _getGlobalFacetedMinMaxValues:
458
- instance.options.getFacetedMinMaxValues &&
459
- instance.options.getFacetedMinMaxValues(instance, '__global__'),
438
+ table.options.getFacetedMinMaxValues &&
439
+ table.options.getFacetedMinMaxValues(table, '__global__'),
460
440
  getGlobalFacetedMinMaxValues: () => {
461
- if (!instance._getGlobalFacetedMinMaxValues) {
441
+ if (!table._getGlobalFacetedMinMaxValues) {
462
442
  return
463
443
  }
464
444
 
465
- return instance._getGlobalFacetedMinMaxValues()
445
+ return table._getGlobalFacetedMinMaxValues()
466
446
  },
467
447
  }
468
448
  },
469
449
  }
470
450
 
471
- export function shouldAutoRemoveFilter<TGenerics extends TableGenerics>(
472
- filterFn?: FilterFn<TGenerics>,
451
+ export function shouldAutoRemoveFilter<TData extends RowData>(
452
+ filterFn?: FilterFn<TData>,
473
453
  value?: any,
474
- column?: Column<TGenerics>
454
+ column?: Column<TData>
475
455
  ) {
476
456
  return (
477
457
  (filterFn && filterFn.autoRemove