@tanstack/table-core 9.0.0-beta.1 → 9.0.0-beta.5

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 (271) hide show
  1. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  2. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  3. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  4. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  5. package/dist/core/cells/coreCellsFeature.js +12 -20
  6. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  7. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  8. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  9. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  10. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  11. package/dist/core/columns/coreColumnsFeature.js +60 -68
  12. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  13. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  14. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  15. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  16. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  17. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  18. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  19. package/dist/core/headers/coreHeadersFeature.js +45 -53
  20. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  21. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  22. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  23. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  24. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  25. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  26. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  27. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  28. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  29. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +3 -5
  30. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +3 -5
  31. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  32. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  33. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  34. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  35. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  36. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  37. package/dist/core/rows/coreRowsFeature.js +28 -36
  38. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  39. package/dist/core/table/constructTable.cjs +2 -2
  40. package/dist/core/table/constructTable.cjs.map +1 -1
  41. package/dist/core/table/constructTable.js +2 -2
  42. package/dist/core/table/constructTable.js.map +1 -1
  43. package/dist/core/table/coreTablesFeature.cjs +7 -16
  44. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  45. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  46. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  47. package/dist/core/table/coreTablesFeature.js +8 -16
  48. package/dist/core/table/coreTablesFeature.js.map +1 -1
  49. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  50. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  51. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  52. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  53. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  54. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  55. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  56. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  57. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  58. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  59. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  60. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  61. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  62. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  63. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  64. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  65. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  66. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  67. package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
  68. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  69. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +3 -3
  70. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +3 -3
  71. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  72. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +1 -1
  73. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +1 -1
  74. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  75. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  76. package/dist/features/column-filtering/createFilteredRowModel.d.cts +1 -1
  77. package/dist/features/column-filtering/createFilteredRowModel.d.ts +1 -1
  78. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  79. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  80. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  81. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  82. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  83. package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
  84. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  85. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  86. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  87. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  88. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  89. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  90. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  91. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  92. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  93. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  94. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  95. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  96. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  97. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  98. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  99. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  100. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +12 -12
  101. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +12 -12
  102. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  103. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  104. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  105. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  106. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  107. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  108. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  109. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  110. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  111. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  112. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  113. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  114. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  115. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +3 -3
  116. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +3 -3
  117. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  118. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  119. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  120. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  121. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  122. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  123. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  124. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  125. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  126. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  127. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  128. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  129. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  130. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +4 -2
  131. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +4 -2
  132. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  133. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  134. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  135. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  136. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  137. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  138. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  139. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  140. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  141. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  142. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  143. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  144. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  145. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  146. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  147. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  148. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  149. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  150. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  151. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  152. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  153. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  154. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  155. package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
  156. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  157. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  158. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  159. package/dist/features/row-selection/rowSelectionFeature.js +66 -77
  160. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  161. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  162. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  163. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  164. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  165. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  166. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  167. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  168. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  169. package/dist/fns/aggregationFns.cjs +18 -18
  170. package/dist/fns/aggregationFns.cjs.map +1 -1
  171. package/dist/fns/aggregationFns.d.cts +21 -19
  172. package/dist/fns/aggregationFns.d.ts +21 -19
  173. package/dist/fns/aggregationFns.js +18 -18
  174. package/dist/fns/aggregationFns.js.map +1 -1
  175. package/dist/fns/filterFns.cjs +51 -65
  176. package/dist/fns/filterFns.cjs.map +1 -1
  177. package/dist/fns/filterFns.d.cts +82 -28
  178. package/dist/fns/filterFns.d.ts +82 -28
  179. package/dist/fns/filterFns.js +51 -65
  180. package/dist/fns/filterFns.js.map +1 -1
  181. package/dist/fns/sortFns.cjs.map +1 -1
  182. package/dist/fns/sortFns.d.cts +15 -13
  183. package/dist/fns/sortFns.d.ts +15 -13
  184. package/dist/fns/sortFns.js.map +1 -1
  185. package/dist/index.cjs +0 -20
  186. package/dist/index.d.cts +34 -34
  187. package/dist/index.d.ts +34 -34
  188. package/dist/index.js +21 -21
  189. package/dist/types/Cell.d.cts +7 -9
  190. package/dist/types/Cell.d.ts +7 -9
  191. package/dist/types/Column.d.cts +16 -9
  192. package/dist/types/Column.d.ts +16 -9
  193. package/dist/types/ColumnDef.d.cts +13 -8
  194. package/dist/types/ColumnDef.d.ts +13 -8
  195. package/dist/types/Header.d.cts +8 -9
  196. package/dist/types/Header.d.ts +8 -9
  197. package/dist/types/HeaderGroup.d.cts +3 -8
  198. package/dist/types/HeaderGroup.d.ts +3 -8
  199. package/dist/types/Row.d.cts +13 -9
  200. package/dist/types/Row.d.ts +13 -9
  201. package/dist/types/RowModel.d.cts +21 -11
  202. package/dist/types/RowModel.d.ts +21 -11
  203. package/dist/types/RowModelFns.d.cts +9 -9
  204. package/dist/types/RowModelFns.d.ts +9 -9
  205. package/dist/types/Table.d.cts +20 -9
  206. package/dist/types/Table.d.ts +20 -9
  207. package/dist/types/TableFeatures.d.cts +14 -38
  208. package/dist/types/TableFeatures.d.ts +14 -38
  209. package/dist/types/TableOptions.d.cts +20 -5
  210. package/dist/types/TableOptions.d.ts +20 -5
  211. package/dist/types/TableState.d.cts +20 -11
  212. package/dist/types/TableState.d.ts +20 -11
  213. package/dist/utils.cjs.map +1 -1
  214. package/dist/utils.d.cts +1 -1
  215. package/dist/utils.d.ts +1 -1
  216. package/dist/utils.js.map +1 -1
  217. package/package.json +1 -1
  218. package/src/core/cells/coreCellsFeature.ts +17 -39
  219. package/src/core/columns/coreColumnsFeature.ts +56 -83
  220. package/src/core/headers/buildHeaderGroups.ts +1 -1
  221. package/src/core/headers/coreHeadersFeature.ts +42 -64
  222. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  223. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  224. package/src/core/row-models/coreRowModelsFeature.types.ts +2 -6
  225. package/src/core/row-models/createCoreRowModel.ts +1 -1
  226. package/src/core/rows/coreRowsFeature.ts +45 -72
  227. package/src/core/table/constructTable.ts +10 -7
  228. package/src/core/table/coreTablesFeature.ts +13 -35
  229. package/src/core/table/coreTablesFeature.utils.ts +1 -1
  230. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  231. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  232. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  233. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  234. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  235. package/src/features/column-filtering/columnFilteringFeature.types.ts +3 -3
  236. package/src/features/column-filtering/columnFilteringFeature.utils.ts +4 -4
  237. package/src/features/column-filtering/createFilteredRowModel.ts +2 -2
  238. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  239. package/src/features/column-grouping/createGroupedRowModel.ts +1 -1
  240. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  241. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  242. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  243. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  244. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  245. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  246. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  247. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  248. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  249. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  250. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  251. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  252. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  253. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  254. package/src/features/row-sorting/createSortedRowModel.ts +1 -1
  255. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  256. package/src/fns/aggregationFns.ts +26 -42
  257. package/src/fns/filterFns.ts +231 -264
  258. package/src/fns/sortFns.ts +18 -19
  259. package/src/types/Cell.ts +8 -28
  260. package/src/types/Column.ts +18 -53
  261. package/src/types/ColumnDef.ts +20 -47
  262. package/src/types/Header.ts +8 -30
  263. package/src/types/HeaderGroup.ts +2 -13
  264. package/src/types/Row.ts +15 -36
  265. package/src/types/RowModel.ts +28 -67
  266. package/src/types/RowModelFns.ts +11 -30
  267. package/src/types/Table.ts +23 -64
  268. package/src/types/TableFeatures.ts +60 -109
  269. package/src/types/TableOptions.ts +32 -71
  270. package/src/types/TableState.ts +20 -73
  271. package/src/utils.ts +5 -4
@@ -11,110 +11,79 @@ import {
11
11
  table_getGlobalFacetedRowModel,
12
12
  table_getGlobalFacetedUniqueValues,
13
13
  } from './columnFacetingFeature.utils'
14
- import type { RowData } from '../../types/type-utils'
15
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
16
- import type { Column_Internal } from '../../types/Column'
17
- // import type {
18
- // CachedRowModel_Faceted,
19
- // Column_ColumnFaceting,
20
- // CreateRowModel_Faceted,
21
- // } from './columnFacetingFeature.types'
22
-
23
- export interface ColumnFacetingFeatureConstructors<
24
- TFeatures extends TableFeatures,
25
- TData extends RowData,
26
- > {
27
- // CachedRowModel: CachedRowModel_Faceted<TFeatures, TData>
28
- // Column: Column_ColumnFaceting<TFeatures, TData>
29
- // CreateRowModels: CreateRowModel_Faceted<TFeatures, TData>
30
- }
14
+ import type { TableFeature } from '../../types/TableFeatures'
31
15
 
32
16
  /**
33
- * Creates the stock column faceting feature.
34
- *
35
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
17
+ * Feature that derives faceted row models, unique values, and min/max values for filters.
36
18
  */
37
- export function constructColumnFacetingFeature<
38
- TFeatures extends TableFeatures,
39
- TData extends RowData,
40
- >(): TableFeature<ColumnFacetingFeatureConstructors<TFeatures, TData>> {
41
- return {
42
- assignColumnPrototype: (prototype, table) => {
43
- assignPrototypeAPIs('columnFacetingFeature', prototype, table, {
44
- column_getFacetedRowModel: {
45
- memoDeps: () => [
46
- table.getPreFilteredRowModel().rows,
47
- table.atoms.columnFilters?.get(),
48
- table.atoms.globalFilter?.get(),
49
- table.getFilteredRowModel().rows,
50
- ],
51
- fn: (column) => column_getFacetedRowModel(column, column.table),
52
- },
53
- column_getFacetedMinMaxValues: {
54
- memoDeps: (column: Column_Internal<TFeatures, TData>) => [
55
- callMemoOrStaticFn(
56
- column,
57
- 'getFacetedRowModel',
58
- column_getFacetedRowModel,
59
- column.table,
60
- ).flatRows,
61
- ],
62
- fn: (column) => column_getFacetedMinMaxValues(column, column.table),
63
- },
64
- column_getFacetedUniqueValues: {
65
- memoDeps: (column: Column_Internal<TFeatures, TData>) => [
66
- callMemoOrStaticFn(
67
- column,
68
- 'getFacetedRowModel',
69
- column_getFacetedRowModel,
70
- column.table,
71
- ).flatRows,
72
- ],
73
- fn: (column) => column_getFacetedUniqueValues(column, column.table),
74
- },
75
- })
76
- },
19
+ export const columnFacetingFeature: TableFeature = {
20
+ assignColumnPrototype: (prototype, table) => {
21
+ assignPrototypeAPIs('columnFacetingFeature', prototype, table, {
22
+ column_getFacetedRowModel: {
23
+ memoDeps: () => [
24
+ table.getPreFilteredRowModel().rows,
25
+ table.atoms.columnFilters?.get(),
26
+ table.atoms.globalFilter?.get(),
27
+ table.getFilteredRowModel().rows,
28
+ ],
29
+ fn: (column) => column_getFacetedRowModel(column, column.table),
30
+ },
31
+ column_getFacetedMinMaxValues: {
32
+ memoDeps: (column) => [
33
+ callMemoOrStaticFn(
34
+ column,
35
+ 'getFacetedRowModel',
36
+ column_getFacetedRowModel,
37
+ column.table,
38
+ ).flatRows,
39
+ ],
40
+ fn: (column) => column_getFacetedMinMaxValues(column, column.table),
41
+ },
42
+ column_getFacetedUniqueValues: {
43
+ memoDeps: (column) => [
44
+ callMemoOrStaticFn(
45
+ column,
46
+ 'getFacetedRowModel',
47
+ column_getFacetedRowModel,
48
+ column.table,
49
+ ).flatRows,
50
+ ],
51
+ fn: (column) => column_getFacetedUniqueValues(column, column.table),
52
+ },
53
+ })
54
+ },
77
55
 
78
- constructTableAPIs: (table) => {
79
- assignTableAPIs('columnFacetingFeature', table, {
80
- table_getGlobalFacetedRowModel: {
81
- memoDeps: () => [
82
- table.getPreFilteredRowModel().rows,
83
- table.atoms.columnFilters?.get(),
84
- table.atoms.globalFilter?.get(),
85
- table.getFilteredRowModel().rows,
86
- ],
87
- fn: () => table_getGlobalFacetedRowModel(table),
88
- },
89
- table_getGlobalFacetedMinMaxValues: {
90
- memoDeps: () => [
91
- callMemoOrStaticFn(
92
- table,
93
- 'getGlobalFacetedRowModel',
94
- table_getGlobalFacetedRowModel,
95
- ).flatRows,
96
- ],
97
- fn: () => table_getGlobalFacetedMinMaxValues(table),
98
- },
99
- table_getGlobalFacetedUniqueValues: {
100
- memoDeps: () => [
101
- callMemoOrStaticFn(
102
- table,
103
- 'getGlobalFacetedRowModel',
104
- table_getGlobalFacetedRowModel,
105
- ).flatRows,
106
- ],
107
- fn: () => table_getGlobalFacetedUniqueValues(table),
108
- },
109
- })
110
- },
111
- }
56
+ constructTableAPIs: (table) => {
57
+ assignTableAPIs('columnFacetingFeature', table, {
58
+ table_getGlobalFacetedRowModel: {
59
+ memoDeps: () => [
60
+ table.getPreFilteredRowModel().rows,
61
+ table.atoms.columnFilters?.get(),
62
+ table.atoms.globalFilter?.get(),
63
+ table.getFilteredRowModel().rows,
64
+ ],
65
+ fn: () => table_getGlobalFacetedRowModel(table),
66
+ },
67
+ table_getGlobalFacetedMinMaxValues: {
68
+ memoDeps: () => [
69
+ callMemoOrStaticFn(
70
+ table,
71
+ 'getGlobalFacetedRowModel',
72
+ table_getGlobalFacetedRowModel,
73
+ ).flatRows,
74
+ ],
75
+ fn: () => table_getGlobalFacetedMinMaxValues(table),
76
+ },
77
+ table_getGlobalFacetedUniqueValues: {
78
+ memoDeps: () => [
79
+ callMemoOrStaticFn(
80
+ table,
81
+ 'getGlobalFacetedRowModel',
82
+ table_getGlobalFacetedRowModel,
83
+ ).flatRows,
84
+ ],
85
+ fn: () => table_getGlobalFacetedUniqueValues(table),
86
+ },
87
+ })
88
+ },
112
89
  }
113
-
114
- /**
115
- * The stock column faceting feature.
116
- *
117
- * Register this feature to add faceted row model, unique value, and min/max
118
- * helpers for column and global filter UIs.
119
- */
120
- export const columnFacetingFeature = constructColumnFacetingFeature()
@@ -18,7 +18,7 @@ export function createFacetedMinMaxValues<
18
18
  columnId: string,
19
19
  ) => () => undefined | [number, number] {
20
20
  return (_table, columnId) => {
21
- const table: Table_Internal<TFeatures, TData> = _table
21
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
22
22
  return tableMemo({
23
23
  feature: 'columnFacetingFeature',
24
24
  fn: (flatRows) => _createFacetedMinMaxValues(columnId, flatRows),
@@ -23,7 +23,7 @@ export function createFacetedRowModel<
23
23
  columnId: string,
24
24
  ) => () => RowModel<TFeatures, TData> {
25
25
  return (_table, columnId) => {
26
- const table: Table_Internal<TFeatures, TData> = _table
26
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
27
27
  return tableMemo({
28
28
  feature: 'columnFacetingFeature',
29
29
  table,
@@ -18,7 +18,7 @@ export function createFacetedUniqueValues<
18
18
  columnId: string,
19
19
  ) => () => Map<any, number> {
20
20
  return (_table, columnId) => {
21
- const table: Table_Internal<TFeatures, TData> = _table
21
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
22
22
  return tableMemo({
23
23
  feature: 'columnFacetingFeature',
24
24
  table,
@@ -15,115 +15,72 @@ import {
15
15
  table_resetColumnFilters,
16
16
  table_setColumnFilters,
17
17
  } from './columnFilteringFeature.utils'
18
- import type { RowData } from '../../types/type-utils'
19
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
20
- // import type {
21
- // CachedRowModel_Filtered,
22
- // ColumnDef_ColumnFiltering,
23
- // Column_ColumnFiltering,
24
- // CreateRowModel_Filtered,
25
- // RowModelFns_ColumnFiltering,
26
- // Row_ColumnFiltering,
27
- // TableOptions_ColumnFiltering,
28
- // TableState_ColumnFiltering,
29
- // Table_ColumnFiltering,
30
- // } from './columnFilteringFeature.types'
31
-
32
- export interface ColumnFilteringFeatureConstructors<
33
- TFeatures extends TableFeatures,
34
- TData extends RowData,
35
- > {
36
- // CachedRowModel: CachedRowModel_Filtered<TFeatures, TData>
37
- // Column: Column_ColumnFiltering<TFeatures, TData>
38
- // ColumnDef: ColumnDef_ColumnFiltering<TFeatures, TData>
39
- // CreateRowModels: CreateRowModel_Filtered<TFeatures, TData>
40
- // Row: Row_ColumnFiltering<TFeatures, TData>
41
- // RowModelFns: RowModelFns_ColumnFiltering<TFeatures, TData>
42
- // Table: Table_ColumnFiltering<TFeatures, TData>
43
- // TableOptions: TableOptions_ColumnFiltering<TFeatures, TData>
44
- // TableState: TableState_ColumnFiltering
45
- }
18
+ import type { TableFeature } from '../../types/TableFeatures'
46
19
 
47
20
  /**
48
- * Creates the stock column filtering feature.
49
- *
50
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
21
+ * Feature that adds per-column filtering state, options, and column/table filter APIs.
51
22
  */
52
- export function constructColumnFilteringFeature<
53
- TFeatures extends TableFeatures,
54
- TData extends RowData,
55
- >(): TableFeature<ColumnFilteringFeatureConstructors<TFeatures, TData>> {
56
- return {
57
- getInitialState: (initialState) => {
58
- return {
59
- columnFilters: getDefaultColumnFiltersState(),
60
- ...initialState,
61
- }
62
- },
23
+ export const columnFilteringFeature: TableFeature = {
24
+ getInitialState: (initialState) => {
25
+ return {
26
+ columnFilters: getDefaultColumnFiltersState(),
27
+ ...initialState,
28
+ }
29
+ },
63
30
 
64
- getDefaultColumnDef: () => {
65
- return {
66
- filterFn: 'auto',
67
- }
68
- },
31
+ getDefaultColumnDef: () => {
32
+ return {
33
+ filterFn: 'auto',
34
+ }
35
+ },
69
36
 
70
- getDefaultTableOptions: (table) => {
71
- return {
72
- onColumnFiltersChange: makeStateUpdater('columnFilters', table),
73
- filterFromLeafRows: false,
74
- maxLeafRowFilterDepth: 100,
75
- }
76
- },
37
+ getDefaultTableOptions: (table) => {
38
+ return {
39
+ onColumnFiltersChange: makeStateUpdater('columnFilters', table),
40
+ filterFromLeafRows: false,
41
+ maxLeafRowFilterDepth: 100,
42
+ }
43
+ },
77
44
 
78
- assignColumnPrototype: (prototype, table) => {
79
- assignPrototypeAPIs('columnFilteringFeature', prototype, table, {
80
- column_getAutoFilterFn: {
81
- fn: (column) => column_getAutoFilterFn(column),
82
- },
83
- column_getFilterFn: {
84
- fn: (column) => column_getFilterFn(column),
85
- },
86
- column_getCanFilter: {
87
- fn: (column) => column_getCanFilter(column),
88
- },
89
- column_getIsFiltered: {
90
- fn: (column) => column_getIsFiltered(column),
91
- },
92
- column_getFilterValue: {
93
- fn: (column) => column_getFilterValue(column),
94
- },
95
- column_getFilterIndex: {
96
- fn: (column) => column_getFilterIndex(column),
97
- },
98
- column_setFilterValue: {
99
- fn: (column, value) => column_setFilterValue(column, value),
100
- },
101
- })
102
- },
45
+ assignColumnPrototype: (prototype, table) => {
46
+ assignPrototypeAPIs('columnFilteringFeature', prototype, table, {
47
+ column_getAutoFilterFn: {
48
+ fn: (column) => column_getAutoFilterFn(column),
49
+ },
50
+ column_getFilterFn: {
51
+ fn: (column) => column_getFilterFn(column),
52
+ },
53
+ column_getCanFilter: {
54
+ fn: (column) => column_getCanFilter(column),
55
+ },
56
+ column_getIsFiltered: {
57
+ fn: (column) => column_getIsFiltered(column),
58
+ },
59
+ column_getFilterValue: {
60
+ fn: (column) => column_getFilterValue(column),
61
+ },
62
+ column_getFilterIndex: {
63
+ fn: (column) => column_getFilterIndex(column),
64
+ },
65
+ column_setFilterValue: {
66
+ fn: (column, value) => column_setFilterValue(column, value),
67
+ },
68
+ })
69
+ },
103
70
 
104
- initRowInstanceData: (row) => {
105
- ;(row as any).columnFilters = {}
106
- ;(row as any).columnFiltersMeta = {}
107
- },
71
+ initRowInstanceData: (row) => {
72
+ ;(row as any).columnFilters = {}
73
+ ;(row as any).columnFiltersMeta = {}
74
+ },
108
75
 
109
- constructTableAPIs: (table) => {
110
- assignTableAPIs('columnFilteringFeature', table, {
111
- table_setColumnFilters: {
112
- fn: (updater) => table_setColumnFilters(table, updater),
113
- },
114
- table_resetColumnFilters: {
115
- fn: (defaultState) => table_resetColumnFilters(table, defaultState),
116
- },
117
- })
118
- },
119
- }
76
+ constructTableAPIs: (table) => {
77
+ assignTableAPIs('columnFilteringFeature', table, {
78
+ table_setColumnFilters: {
79
+ fn: (updater) => table_setColumnFilters(table, updater),
80
+ },
81
+ table_resetColumnFilters: {
82
+ fn: (defaultState) => table_resetColumnFilters(table, defaultState),
83
+ },
84
+ })
85
+ },
120
86
  }
121
-
122
- /**
123
- * The stock column filtering feature.
124
- *
125
- * Register this feature to add column filter state, filter defaults, and
126
- * table/row/column APIs for client-side or manual column filtering. Global
127
- * filtering is provided by `globalFilteringFeature`.
128
- */
129
- export const columnFilteringFeature = constructColumnFilteringFeature()
@@ -39,7 +39,7 @@ export interface RowModelFns_ColumnFiltering<
39
39
  TFeatures extends TableFeatures,
40
40
  TData extends RowData,
41
41
  > {
42
- filterFns: Record<keyof FilterFns, FilterFn<TFeatures, TData>>
42
+ filterFns: Record<keyof FilterFns, FilterFn<TFeatures, RowData>>
43
43
  }
44
44
 
45
45
  export interface FilterFn<
@@ -71,12 +71,12 @@ export type ColumnFilterAutoRemoveTestFn<
71
71
  export type CustomFilterFns<
72
72
  TFeatures extends TableFeatures,
73
73
  TData extends RowData,
74
- > = Record<string, FilterFn<TFeatures, TData>>
74
+ > = Record<string, FilterFn<TFeatures, RowData>>
75
75
 
76
76
  export type FilterFnOption<
77
77
  TFeatures extends TableFeatures,
78
78
  TData extends RowData,
79
- > = 'auto' | BuiltInFilterFn | keyof FilterFns | FilterFn<TFeatures, TData>
79
+ > = 'auto' | BuiltInFilterFn | keyof FilterFns | FilterFn<TFeatures, RowData>
80
80
 
81
81
  export interface ColumnDef_ColumnFiltering<
82
82
  TFeatures extends TableFeatures,
@@ -40,7 +40,7 @@ export function column_getAutoFilterFn<
40
40
  TData extends RowData,
41
41
  TValue extends CellData = CellData,
42
42
  >(column: Column_Internal<TFeatures, TData, TValue>) {
43
- const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =
43
+ const filterFns: Record<string, FilterFn<TFeatures, RowData>> | undefined =
44
44
  column.table._rowModelFns.filterFns
45
45
 
46
46
  const firstRow = column.table.getCoreRowModel().flatRows[0]
@@ -90,7 +90,7 @@ export function column_getFilterFn<
90
90
  column: Column_Internal<TFeatures, TData, TValue>,
91
91
  ): FilterFn<TFeatures, TData> | undefined {
92
92
  let filterFn = null
93
- const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =
93
+ const filterFns: Record<string, FilterFn<TFeatures, RowData>> | undefined =
94
94
  column.table._rowModelFns.filterFns
95
95
  filterFn = isFunction(column.columnDef.filterFn)
96
96
  ? column.columnDef.filterFn
@@ -104,7 +104,7 @@ export function column_getFilterFn<
104
104
  )
105
105
  }
106
106
 
107
- return filterFn
107
+ return filterFn as FilterFn<TFeatures, TData> | undefined
108
108
  }
109
109
 
110
110
  /**
@@ -323,7 +323,7 @@ export function shouldAutoRemoveFilter<
323
323
  ) {
324
324
  return (
325
325
  (filterFn && filterFn.autoRemove
326
- ? filterFn.autoRemove(value, column)
326
+ ? filterFn.autoRemove(value, column as Column_Internal<TFeatures, TData>)
327
327
  : false) ||
328
328
  typeof value === 'undefined' ||
329
329
  (typeof value === 'string' && !value)
@@ -28,10 +28,10 @@ export function createFilteredRowModel<
28
28
  TFeatures extends TableFeatures,
29
29
  TData extends RowData = any,
30
30
  >(
31
- filterFns: Record<keyof FilterFns, FilterFn<TFeatures, TData>>,
31
+ filterFns: Record<keyof FilterFns, FilterFn<TFeatures, RowData>>,
32
32
  ): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
33
33
  return (_table) => {
34
- const table: Table_Internal<TFeatures, TData> = _table
34
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
35
35
  if (!table._rowModelFns.filterFns) table._rowModelFns.filterFns = filterFns
36
36
  return tableMemo({
37
37
  feature: 'columnFilteringFeature',