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

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 (454) hide show
  1. package/dist/core/cells/constructCell.d.cts +1 -1
  2. package/dist/core/cells/constructCell.d.ts +1 -1
  3. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  4. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  5. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  6. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  7. package/dist/core/cells/coreCellsFeature.js +12 -20
  8. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  9. package/dist/core/cells/coreCellsFeature.types.d.cts +4 -4
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +4 -4
  11. package/dist/core/cells/coreCellsFeature.utils.d.cts +1 -1
  12. package/dist/core/cells/coreCellsFeature.utils.d.ts +1 -1
  13. package/dist/core/columns/constructColumn.d.cts +1 -1
  14. package/dist/core/columns/constructColumn.d.ts +1 -1
  15. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  16. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  17. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  18. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  19. package/dist/core/columns/coreColumnsFeature.js +60 -68
  20. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.types.d.cts +5 -5
  22. package/dist/core/columns/coreColumnsFeature.types.d.ts +5 -5
  23. package/dist/core/columns/coreColumnsFeature.utils.d.cts +1 -1
  24. package/dist/core/columns/coreColumnsFeature.utils.d.ts +1 -1
  25. package/dist/core/coreFeatures.cjs.map +1 -1
  26. package/dist/core/coreFeatures.d.cts +1 -1
  27. package/dist/core/coreFeatures.d.ts +1 -1
  28. package/dist/core/coreFeatures.js.map +1 -1
  29. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  30. package/dist/core/headers/buildHeaderGroups.d.cts +1 -1
  31. package/dist/core/headers/buildHeaderGroups.d.ts +1 -1
  32. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  33. package/dist/core/headers/constructHeader.d.cts +1 -1
  34. package/dist/core/headers/constructHeader.d.ts +1 -1
  35. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  36. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  37. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  38. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  39. package/dist/core/headers/coreHeadersFeature.js +45 -53
  40. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  41. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  42. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  43. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  44. package/dist/core/headers/coreHeadersFeature.utils.d.cts +1 -1
  45. package/dist/core/headers/coreHeadersFeature.utils.d.ts +1 -1
  46. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  47. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  48. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  49. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  50. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  51. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  52. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  53. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +5 -15
  54. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +5 -15
  55. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
  56. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  57. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +2 -2
  58. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +2 -2
  59. package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
  60. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  61. package/dist/core/row-models/createCoreRowModel.cjs +1 -2
  62. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  63. package/dist/core/row-models/createCoreRowModel.d.cts +2 -2
  64. package/dist/core/row-models/createCoreRowModel.d.ts +2 -2
  65. package/dist/core/row-models/createCoreRowModel.js +1 -2
  66. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  67. package/dist/core/rows/constructRow.d.cts +1 -1
  68. package/dist/core/rows/constructRow.d.ts +1 -1
  69. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  70. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  71. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  72. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  73. package/dist/core/rows/coreRowsFeature.js +28 -36
  74. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  75. package/dist/core/rows/coreRowsFeature.types.d.cts +5 -5
  76. package/dist/core/rows/coreRowsFeature.types.d.ts +5 -5
  77. package/dist/core/rows/coreRowsFeature.utils.d.cts +1 -1
  78. package/dist/core/rows/coreRowsFeature.utils.d.ts +1 -1
  79. package/dist/core/table/constructTable.cjs +21 -6
  80. package/dist/core/table/constructTable.cjs.map +1 -1
  81. package/dist/core/table/constructTable.d.cts +1 -1
  82. package/dist/core/table/constructTable.d.ts +1 -1
  83. package/dist/core/table/constructTable.js +21 -6
  84. package/dist/core/table/constructTable.js.map +1 -1
  85. package/dist/core/table/coreTablesFeature.cjs +7 -16
  86. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  87. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  88. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  89. package/dist/core/table/coreTablesFeature.js +8 -16
  90. package/dist/core/table/coreTablesFeature.js.map +1 -1
  91. package/dist/core/table/coreTablesFeature.types.d.cts +27 -15
  92. package/dist/core/table/coreTablesFeature.types.d.ts +27 -15
  93. package/dist/core/table/coreTablesFeature.utils.cjs +1 -2
  94. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  95. package/dist/core/table/coreTablesFeature.utils.d.cts +1 -1
  96. package/dist/core/table/coreTablesFeature.utils.d.ts +1 -1
  97. package/dist/core/table/coreTablesFeature.utils.js +1 -2
  98. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  99. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  100. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  101. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  102. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  103. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  104. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  105. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
  106. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
  107. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  108. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  109. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +1 -1
  110. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +1 -1
  111. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  112. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  113. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  114. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  115. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  116. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  117. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  118. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  119. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  120. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  121. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  122. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  123. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  124. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  125. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  126. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  127. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  128. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  129. package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
  130. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  131. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
  132. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
  133. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  134. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  135. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +2 -2
  136. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +2 -2
  137. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  138. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  139. package/dist/features/column-filtering/createFilteredRowModel.cjs +4 -2
  140. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  141. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  142. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  143. package/dist/features/column-filtering/createFilteredRowModel.js +4 -2
  144. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  145. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  146. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  147. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  148. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  149. package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
  150. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  151. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +23 -19
  152. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +23 -19
  153. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +1 -1
  154. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +1 -1
  155. package/dist/features/column-grouping/createGroupedRowModel.cjs +5 -2
  156. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  157. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  158. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  159. package/dist/features/column-grouping/createGroupedRowModel.js +5 -2
  160. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  161. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  162. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  163. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  164. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  165. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  166. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  167. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
  168. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
  169. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +1 -1
  170. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +1 -1
  171. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  172. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  173. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  174. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  175. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  176. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  177. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
  178. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
  179. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  180. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +13 -13
  181. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +13 -13
  182. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  183. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  184. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  185. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  186. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  187. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  188. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  189. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +1 -1
  190. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +1 -1
  191. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  192. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  193. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  194. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  195. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  196. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  197. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +4 -4
  198. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +4 -4
  199. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  200. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  201. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  202. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  203. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  204. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  205. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
  206. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
  207. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +1 -1
  208. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +1 -1
  209. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  210. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  211. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  212. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  213. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  214. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  215. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +3 -3
  216. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +3 -3
  217. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  218. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +7 -5
  219. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +7 -5
  220. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  221. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  222. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  223. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  224. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  225. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  226. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  227. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  228. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  229. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  230. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  231. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
  232. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
  233. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +1 -1
  234. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +1 -1
  235. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  236. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  237. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  238. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  239. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  240. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  241. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  242. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  243. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  244. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  245. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
  246. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
  247. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +1 -1
  248. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +1 -1
  249. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  250. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  251. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  252. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  253. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  254. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  255. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  256. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  257. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +1 -1
  258. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +1 -1
  259. package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
  260. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  261. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  262. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  263. package/dist/features/row-selection/rowSelectionFeature.js +66 -77
  264. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  265. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +2 -2
  266. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +2 -2
  267. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +10 -6
  268. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  269. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +1 -1
  270. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +1 -1
  271. package/dist/features/row-selection/rowSelectionFeature.utils.js +10 -6
  272. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  273. package/dist/features/row-sorting/createSortedRowModel.cjs +4 -2
  274. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  275. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  276. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  277. package/dist/features/row-sorting/createSortedRowModel.js +4 -2
  278. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  279. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  280. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  281. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  282. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  283. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  284. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  285. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +23 -20
  286. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +23 -20
  287. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  288. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  289. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +1 -1
  290. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +1 -1
  291. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  292. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  293. package/dist/fns/aggregationFns.cjs +18 -18
  294. package/dist/fns/aggregationFns.cjs.map +1 -1
  295. package/dist/fns/aggregationFns.d.cts +21 -19
  296. package/dist/fns/aggregationFns.d.ts +21 -19
  297. package/dist/fns/aggregationFns.js +18 -18
  298. package/dist/fns/aggregationFns.js.map +1 -1
  299. package/dist/fns/filterFns.cjs +51 -65
  300. package/dist/fns/filterFns.cjs.map +1 -1
  301. package/dist/fns/filterFns.d.cts +82 -28
  302. package/dist/fns/filterFns.d.ts +82 -28
  303. package/dist/fns/filterFns.js +51 -65
  304. package/dist/fns/filterFns.js.map +1 -1
  305. package/dist/fns/sortFns.cjs +18 -6
  306. package/dist/fns/sortFns.cjs.map +1 -1
  307. package/dist/fns/sortFns.d.cts +15 -13
  308. package/dist/fns/sortFns.d.ts +15 -13
  309. package/dist/fns/sortFns.js +18 -6
  310. package/dist/fns/sortFns.js.map +1 -1
  311. package/dist/helpers/metaHelper.cjs +30 -0
  312. package/dist/helpers/metaHelper.cjs.map +1 -0
  313. package/dist/helpers/metaHelper.d.cts +26 -0
  314. package/dist/helpers/metaHelper.d.ts +26 -0
  315. package/dist/helpers/metaHelper.js +29 -0
  316. package/dist/helpers/metaHelper.js.map +1 -0
  317. package/dist/helpers/tableFeatures.cjs +31 -3
  318. package/dist/helpers/tableFeatures.cjs.map +1 -1
  319. package/dist/helpers/tableFeatures.d.cts +33 -5
  320. package/dist/helpers/tableFeatures.d.ts +33 -5
  321. package/dist/helpers/tableFeatures.js +31 -3
  322. package/dist/helpers/tableFeatures.js.map +1 -1
  323. package/dist/index.cjs +2 -20
  324. package/dist/index.d.cts +44 -43
  325. package/dist/index.d.ts +44 -43
  326. package/dist/index.js +22 -21
  327. package/dist/store-reactivity-bindings.cjs +1 -1
  328. package/dist/store-reactivity-bindings.cjs.map +1 -1
  329. package/dist/store-reactivity-bindings.d.cts +1 -1
  330. package/dist/store-reactivity-bindings.d.ts +1 -1
  331. package/dist/store-reactivity-bindings.js +1 -1
  332. package/dist/store-reactivity-bindings.js.map +1 -1
  333. package/dist/types/Cell.d.cts +8 -10
  334. package/dist/types/Cell.d.ts +8 -10
  335. package/dist/types/Column.d.cts +19 -12
  336. package/dist/types/Column.d.ts +19 -12
  337. package/dist/types/ColumnDef.d.cts +30 -11
  338. package/dist/types/ColumnDef.d.ts +30 -11
  339. package/dist/types/Header.d.cts +10 -11
  340. package/dist/types/Header.d.ts +10 -11
  341. package/dist/types/HeaderGroup.d.cts +4 -9
  342. package/dist/types/HeaderGroup.d.ts +4 -9
  343. package/dist/types/Row.d.cts +15 -11
  344. package/dist/types/Row.d.ts +15 -11
  345. package/dist/types/RowModel.d.cts +19 -19
  346. package/dist/types/RowModel.d.ts +19 -19
  347. package/dist/types/RowModelFns.d.cts +9 -9
  348. package/dist/types/RowModelFns.d.ts +9 -9
  349. package/dist/types/Table.d.cts +52 -24
  350. package/dist/types/Table.d.ts +52 -24
  351. package/dist/types/TableFeatures.d.cts +178 -41
  352. package/dist/types/TableFeatures.d.ts +178 -41
  353. package/dist/types/TableOptions.d.cts +31 -10
  354. package/dist/types/TableOptions.d.ts +31 -10
  355. package/dist/types/TableState.d.cts +22 -13
  356. package/dist/types/TableState.d.ts +22 -13
  357. package/dist/utils.cjs.map +1 -1
  358. package/dist/utils.d.cts +8 -3
  359. package/dist/utils.d.ts +8 -3
  360. package/dist/utils.js.map +1 -1
  361. package/package.json +1 -1
  362. package/skills/column-definitions/SKILL.md +3 -6
  363. package/skills/column-layout/SKILL.md +0 -2
  364. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  365. package/skills/filtering/SKILL.md +60 -42
  366. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  367. package/skills/grouping/SKILL.md +49 -54
  368. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  369. package/skills/pagination/SKILL.md +22 -20
  370. package/skills/row-expanding/SKILL.md +33 -25
  371. package/skills/row-pinning/SKILL.md +11 -7
  372. package/skills/row-selection/SKILL.md +0 -3
  373. package/skills/setup/SKILL.md +55 -65
  374. package/skills/sorting/SKILL.md +21 -21
  375. package/skills/state-management/SKILL.md +40 -25
  376. package/src/core/cells/coreCellsFeature.ts +17 -39
  377. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  378. package/src/core/columns/coreColumnsFeature.ts +56 -83
  379. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  380. package/src/core/coreFeatures.ts +1 -1
  381. package/src/core/headers/buildHeaderGroups.ts +1 -1
  382. package/src/core/headers/coreHeadersFeature.ts +42 -64
  383. package/src/core/headers/coreHeadersFeature.types.ts +10 -10
  384. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  385. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  386. package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
  387. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  388. package/src/core/row-models/createCoreRowModel.ts +5 -4
  389. package/src/core/rows/coreRowsFeature.ts +45 -72
  390. package/src/core/rows/coreRowsFeature.types.ts +8 -8
  391. package/src/core/table/constructTable.ts +50 -13
  392. package/src/core/table/coreTablesFeature.ts +13 -35
  393. package/src/core/table/coreTablesFeature.types.ts +40 -17
  394. package/src/core/table/coreTablesFeature.utils.ts +10 -5
  395. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  396. package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
  397. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  398. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  399. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  400. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  401. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  402. package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
  403. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  404. package/src/features/column-filtering/createFilteredRowModel.ts +5 -7
  405. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  406. package/src/features/column-grouping/columnGroupingFeature.types.ts +32 -31
  407. package/src/features/column-grouping/createGroupedRowModel.ts +7 -11
  408. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  409. package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
  410. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  411. package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
  412. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  413. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  414. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  415. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  416. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  417. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  418. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  419. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  420. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  421. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  422. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
  423. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  424. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  425. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
  426. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  427. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  428. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  429. package/src/features/row-selection/rowSelectionFeature.types.ts +4 -4
  430. package/src/features/row-selection/rowSelectionFeature.utils.ts +12 -7
  431. package/src/features/row-sorting/createSortedRowModel.ts +6 -6
  432. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  433. package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
  434. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  435. package/src/fns/aggregationFns.ts +26 -42
  436. package/src/fns/filterFns.ts +231 -264
  437. package/src/fns/sortFns.ts +51 -29
  438. package/src/helpers/metaHelper.ts +24 -0
  439. package/src/helpers/tableFeatures.ts +36 -5
  440. package/src/index.ts +1 -0
  441. package/src/store-reactivity-bindings.ts +1 -1
  442. package/src/types/Cell.ts +10 -30
  443. package/src/types/Column.ts +21 -56
  444. package/src/types/ColumnDef.ts +48 -49
  445. package/src/types/Header.ts +10 -32
  446. package/src/types/HeaderGroup.ts +4 -15
  447. package/src/types/Row.ts +18 -39
  448. package/src/types/RowModel.ts +24 -114
  449. package/src/types/RowModelFns.ts +12 -31
  450. package/src/types/Table.ts +85 -80
  451. package/src/types/TableFeatures.ts +253 -108
  452. package/src/types/TableOptions.ts +70 -60
  453. package/src/types/TableState.ts +20 -73
  454. package/src/utils.ts +16 -6
@@ -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()
@@ -1,4 +1,3 @@
1
- import type { Table } from '../../types/Table'
2
1
  import type { BuiltInFilterFn } from '../../fns/filterFns'
3
2
  import type {
4
3
  CellData,
@@ -6,13 +5,28 @@ import type {
6
5
  RowData,
7
6
  Updater,
8
7
  } from '../../types/type-utils'
9
- import type { TableFeatures } from '../../types/TableFeatures'
8
+ import type { IsAny, TableFeatures } from '../../types/TableFeatures'
10
9
  import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
11
10
  import type { Row } from '../../types/Row'
12
11
  import type { Column } from '../../types/Column'
13
12
 
14
13
  export interface FilterMeta {}
15
14
 
15
+ /**
16
+ * Resolves the type of the filter meta attached to rows for a feature set.
17
+ *
18
+ * When the features object declares a `filterMeta` type-only slot
19
+ * (`tableFeatures({ ..., filterMeta: {} as MyFilterMeta })`), that type wins.
20
+ * Otherwise this falls back to the global declaration-merged `FilterMeta`
21
+ * interface.
22
+ */
23
+ export type ExtractFilterMeta<TFeatures extends TableFeatures> =
24
+ IsAny<TFeatures> extends true
25
+ ? FilterMeta
26
+ : TFeatures extends { filterMeta: infer TFilterMeta extends object }
27
+ ? TFilterMeta
28
+ : FilterMeta
29
+
16
30
  export interface FilterFns {}
17
31
 
18
32
  export interface TableState_ColumnFiltering {
@@ -27,8 +41,8 @@ export interface ColumnFilter {
27
41
  }
28
42
 
29
43
  export interface ResolvedColumnFilter<
30
- TFeatures extends TableFeatures,
31
- TData extends RowData,
44
+ in out TFeatures extends TableFeatures,
45
+ in out TData extends RowData,
32
46
  > {
33
47
  filterFn: FilterFn<TFeatures, TData>
34
48
  id: string
@@ -36,21 +50,21 @@ export interface ResolvedColumnFilter<
36
50
  }
37
51
 
38
52
  export interface RowModelFns_ColumnFiltering<
39
- TFeatures extends TableFeatures,
40
- TData extends RowData,
53
+ in out TFeatures extends TableFeatures,
54
+ in out TData extends RowData,
41
55
  > {
42
- filterFns: Record<keyof FilterFns, FilterFn<TFeatures, TData>>
56
+ filterFns: Record<string, FilterFn<TFeatures, TData>>
43
57
  }
44
58
 
45
59
  export interface FilterFn<
46
- TFeatures extends TableFeatures,
47
- TData extends RowData,
60
+ in out TFeatures extends TableFeatures,
61
+ in out TData extends RowData,
48
62
  > {
49
63
  (
50
64
  row: Row<TFeatures, TData>,
51
65
  columnId: string,
52
66
  filterValue: any,
53
- addMeta?: (meta: FilterMeta) => void,
67
+ addMeta?: (meta: ExtractFilterMeta<TFeatures>) => void,
54
68
  ): boolean
55
69
  autoRemove?: ColumnFilterAutoRemoveTestFn<TFeatures, TData>
56
70
  resolveFilterValue?: TransformFilterValueFn<TFeatures, TData>
@@ -73,14 +87,31 @@ export type CustomFilterFns<
73
87
  TData extends RowData,
74
88
  > = Record<string, FilterFn<TFeatures, TData>>
75
89
 
90
+ /**
91
+ * Resolves the valid string names for `columnDef.filterFn` and
92
+ * `options.globalFilterFn` for a feature set.
93
+ *
94
+ * When the features object declares a `filterFns` registry
95
+ * (`tableFeatures({ ..., filterFns })`), its keys are the only valid names; a
96
+ * name is only assignable if a filter function is actually registered for it.
97
+ * Otherwise this falls back to the global declaration-merged `FilterFns`
98
+ * interface.
99
+ */
100
+ export type ExtractFilterFnKeys<TFeatures extends TableFeatures> =
101
+ IsAny<TFeatures> extends true
102
+ ? keyof FilterFns | BuiltInFilterFn
103
+ : TFeatures extends { filterFns: infer TFilterFns extends object }
104
+ ? Extract<keyof TFilterFns, string>
105
+ : keyof FilterFns
106
+
76
107
  export type FilterFnOption<
77
108
  TFeatures extends TableFeatures,
78
109
  TData extends RowData,
79
- > = 'auto' | BuiltInFilterFn | keyof FilterFns | FilterFn<TFeatures, TData>
110
+ > = 'auto' | ExtractFilterFnKeys<TFeatures> | FilterFn<TFeatures, TData>
80
111
 
81
112
  export interface ColumnDef_ColumnFiltering<
82
- TFeatures extends TableFeatures,
83
- TData extends RowData,
113
+ in out TFeatures extends TableFeatures,
114
+ in out TData extends RowData,
84
115
  > {
85
116
  /**
86
117
  * Enables this column to participate in column-specific filtering.
@@ -96,8 +127,8 @@ export interface ColumnDef_ColumnFiltering<
96
127
  }
97
128
 
98
129
  export interface Column_ColumnFiltering<
99
- TFeatures extends TableFeatures,
100
- TData extends RowData,
130
+ in out TFeatures extends TableFeatures,
131
+ in out TData extends RowData,
101
132
  > {
102
133
  /**
103
134
  * Returns an automatically calculated filter function for the column based off of the columns first known value.
@@ -133,8 +164,8 @@ export interface Column_ColumnFiltering<
133
164
  }
134
165
 
135
166
  export interface Row_ColumnFiltering<
136
- TFeatures extends TableFeatures,
137
- TData extends RowData,
167
+ in out TFeatures extends TableFeatures,
168
+ in out TData extends RowData,
138
169
  > {
139
170
  /**
140
171
  * The column filters map for the row. This object tracks whether a row is passing/failing specific filters by their column ID.
@@ -143,12 +174,12 @@ export interface Row_ColumnFiltering<
143
174
  /**
144
175
  * The column filters meta map for the row. This object tracks any filter meta for a row as optionally provided during the filtering process.
145
176
  */
146
- columnFiltersMeta: Record<string, FilterMeta>
177
+ columnFiltersMeta: Record<string, ExtractFilterMeta<TFeatures>>
147
178
  }
148
179
 
149
180
  export interface TableOptions_ColumnFiltering<
150
- TFeatures extends TableFeatures,
151
- TData extends RowData,
181
+ in out TFeatures extends TableFeatures,
182
+ in out TData extends RowData,
152
183
  > {
153
184
  /**
154
185
  * Enables column-specific filtering for all columns that also allow it.
@@ -196,8 +227,8 @@ export interface Table_ColumnFiltering {
196
227
  }
197
228
 
198
229
  export interface Table_RowModels_Filtered<
199
- TFeatures extends TableFeatures,
200
- TData extends RowData,
230
+ in out TFeatures extends TableFeatures,
231
+ in out TData extends RowData,
201
232
  > {
202
233
  /**
203
234
  * Resolves the row model after column and global filters have been applied.
@@ -209,24 +240,9 @@ export interface Table_RowModels_Filtered<
209
240
  getPreFilteredRowModel: () => RowModel<TFeatures, TData>
210
241
  }
211
242
 
212
- export interface CreateRowModel_Filtered<
213
- TFeatures extends TableFeatures,
214
- TData extends RowData,
215
- > {
216
- /**
217
- * If provided, this factory is called once per table and should return a
218
- * function that calculates the filtered row model.
219
- * - For server-side filtering, this function is unnecessary and can be ignored since the server should already return the filtered row model.
220
- * - For client-side filtering, pass the exported `createFilteredRowModel()` or implement your own factory.
221
- */
222
- filteredRowModel?: (
223
- table: Table<TFeatures, TData>,
224
- ) => () => RowModel<TFeatures, TData>
225
- }
226
-
227
243
  export interface CachedRowModel_Filtered<
228
- TFeatures extends TableFeatures,
229
- TData extends RowData,
244
+ in out TFeatures extends TableFeatures,
245
+ in out TData extends RowData,
230
246
  > {
231
247
  filteredRowModel: () => RowModel<TFeatures, TData>
232
248
  }
@@ -104,7 +104,7 @@ export function column_getFilterFn<
104
104
  )
105
105
  }
106
106
 
107
- return filterFn
107
+ return filterFn ?? 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)
@@ -13,8 +13,6 @@ import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
13
13
  import type { Table, Table_Internal } from '../../types/Table'
14
14
  import type { Row } from '../../types/Row'
15
15
  import type {
16
- FilterFn,
17
- FilterFns,
18
16
  ResolvedColumnFilter,
19
17
  Row_ColumnFiltering,
20
18
  } from './columnFilteringFeature.types'
@@ -23,16 +21,16 @@ import type {
23
21
  * Creates a memoized filtered row model factory.
24
22
  *
25
23
  * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.
24
+ *
25
+ * Register filter functions with the `filterFns` slot on the `features` option:
26
+ * `tableFeatures({ columnFilteringFeature, filteredRowModel: createFilteredRowModel(), filterFns })`.
26
27
  */
27
28
  export function createFilteredRowModel<
28
29
  TFeatures extends TableFeatures,
29
30
  TData extends RowData = any,
30
- >(
31
- filterFns: Record<keyof FilterFns, FilterFn<TFeatures, TData>>,
32
- ): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
31
+ >(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
33
32
  return (_table) => {
34
- const table: Table_Internal<TFeatures, TData> = _table
35
- if (!table._rowModelFns.filterFns) table._rowModelFns.filterFns = filterFns
33
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
36
34
  return tableMemo({
37
35
  feature: 'columnFilteringFeature',
38
36
  table,
@@ -20,140 +20,96 @@ import {
20
20
  table_resetGrouping,
21
21
  table_setGrouping,
22
22
  } from './columnGroupingFeature.utils'
23
- import type { RowData } from '../../types/type-utils'
24
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
25
- // import type {
26
- // CachedRowModel_Grouped,
27
- // Cell_ColumnGrouping,
28
- // ColumnDef_ColumnGrouping,
29
- // Column_ColumnGrouping,
30
- // CreateRowModel_Grouped,
31
- // RowModelFns_ColumnGrouping,
32
- // Row_ColumnGrouping,
33
- // TableOptions_ColumnGrouping,
34
- // TableState_ColumnGrouping,
35
- // Table_ColumnGrouping,
36
- // } from './columnGroupingFeature.types'
37
-
38
- export interface ColumnGroupingFeatureConstructors<
39
- TFeatures extends TableFeatures,
40
- TData extends RowData,
41
- > {
42
- // CachedRowModel: CachedRowModel_Grouped<TFeatures, TData>
43
- // Cell: Cell_ColumnGrouping
44
- // Column: Column_ColumnGrouping<TFeatures, TData>
45
- // ColumnDef: ColumnDef_ColumnGrouping<TFeatures, TData>
46
- // CreateRowModels: CreateRowModel_Grouped<TFeatures, TData>
47
- // Row: Row_ColumnGrouping
48
- // RowModelFns: RowModelFns_ColumnGrouping<TFeatures, TData>
49
- // Table: Table_ColumnGrouping<TFeatures, TData>
50
- // TableOptions: TableOptions_ColumnGrouping
51
- // TableState: TableState_ColumnGrouping
52
- }
23
+ import type { TableFeature } from '../../types/TableFeatures'
53
24
 
54
25
  /**
55
- * Creates the stock column grouping feature.
56
- *
57
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
26
+ * Feature that adds column grouping state, aggregation defaults, and grouped row APIs.
58
27
  */
59
- export function constructColumnGroupingFeature<
60
- TFeatures extends TableFeatures,
61
- TData extends RowData,
62
- >(): TableFeature<ColumnGroupingFeatureConstructors<TFeatures, TData>> {
63
- return {
64
- getInitialState: (initialState) => {
65
- return {
66
- grouping: getDefaultGroupingState(),
67
- ...initialState,
68
- }
69
- },
28
+ export const columnGroupingFeature: TableFeature = {
29
+ getInitialState: (initialState) => {
30
+ return {
31
+ grouping: getDefaultGroupingState(),
32
+ ...initialState,
33
+ }
34
+ },
70
35
 
71
- getDefaultColumnDef: () => {
72
- return {
73
- aggregatedCell: ({ getValue }: any) => getValue()?.toString?.() ?? null,
74
- aggregationFn: 'auto',
75
- }
76
- },
36
+ getDefaultColumnDef: () => {
37
+ return {
38
+ aggregatedCell: ({ getValue }: any) => getValue()?.toString?.() ?? null,
39
+ aggregationFn: 'auto',
40
+ }
41
+ },
77
42
 
78
- getDefaultTableOptions: (table) => {
79
- return {
80
- onGroupingChange: makeStateUpdater('grouping', table),
81
- groupedColumnMode: 'reorder',
82
- }
83
- },
43
+ getDefaultTableOptions: (table) => {
44
+ return {
45
+ onGroupingChange: makeStateUpdater('grouping', table),
46
+ groupedColumnMode: 'reorder',
47
+ }
48
+ },
84
49
 
85
- assignCellPrototype: (prototype, table) => {
86
- assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
87
- cell_getIsGrouped: {
88
- fn: (cell) => cell_getIsGrouped(cell),
89
- },
90
- cell_getIsPlaceholder: {
91
- fn: (cell) => cell_getIsPlaceholder(cell),
92
- },
93
- cell_getIsAggregated: {
94
- fn: (cell) => cell_getIsAggregated(cell),
95
- },
96
- })
97
- },
50
+ assignCellPrototype: (prototype, table) => {
51
+ assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
52
+ cell_getIsGrouped: {
53
+ fn: (cell) => cell_getIsGrouped(cell),
54
+ },
55
+ cell_getIsPlaceholder: {
56
+ fn: (cell) => cell_getIsPlaceholder(cell),
57
+ },
58
+ cell_getIsAggregated: {
59
+ fn: (cell) => cell_getIsAggregated(cell),
60
+ },
61
+ })
62
+ },
98
63
 
99
- assignColumnPrototype: (prototype, table) => {
100
- assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
101
- column_toggleGrouping: {
102
- fn: (column) => column_toggleGrouping(column),
103
- },
104
- column_getCanGroup: {
105
- fn: (column) => column_getCanGroup(column),
106
- },
107
- column_getIsGrouped: {
108
- fn: (column) => column_getIsGrouped(column),
109
- },
110
- column_getGroupedIndex: {
111
- fn: (column) => column_getGroupedIndex(column),
112
- },
113
- column_getToggleGroupingHandler: {
114
- fn: (column) => column_getToggleGroupingHandler(column),
115
- },
116
- column_getAutoAggregationFn: {
117
- fn: (column) => column_getAutoAggregationFn(column),
118
- },
119
- column_getAggregationFn: {
120
- fn: (column) => column_getAggregationFn(column),
121
- },
122
- })
123
- },
64
+ assignColumnPrototype: (prototype, table) => {
65
+ assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
66
+ column_toggleGrouping: {
67
+ fn: (column) => column_toggleGrouping(column),
68
+ },
69
+ column_getCanGroup: {
70
+ fn: (column) => column_getCanGroup(column),
71
+ },
72
+ column_getIsGrouped: {
73
+ fn: (column) => column_getIsGrouped(column),
74
+ },
75
+ column_getGroupedIndex: {
76
+ fn: (column) => column_getGroupedIndex(column),
77
+ },
78
+ column_getToggleGroupingHandler: {
79
+ fn: (column) => column_getToggleGroupingHandler(column),
80
+ },
81
+ column_getAutoAggregationFn: {
82
+ fn: (column) => column_getAutoAggregationFn(column),
83
+ },
84
+ column_getAggregationFn: {
85
+ fn: (column) => column_getAggregationFn(column),
86
+ },
87
+ })
88
+ },
124
89
 
125
- assignRowPrototype: (prototype, table) => {
126
- assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
127
- row_getIsGrouped: {
128
- fn: (row) => row_getIsGrouped(row),
129
- },
130
- row_getGroupingValue: {
131
- fn: (row, columnId) => row_getGroupingValue(row, columnId),
132
- },
133
- })
134
- },
90
+ assignRowPrototype: (prototype, table) => {
91
+ assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
92
+ row_getIsGrouped: {
93
+ fn: (row) => row_getIsGrouped(row),
94
+ },
95
+ row_getGroupingValue: {
96
+ fn: (row, columnId) => row_getGroupingValue(row, columnId),
97
+ },
98
+ })
99
+ },
135
100
 
136
- initRowInstanceData: (row) => {
137
- ;(row as any)._groupingValuesCache = {}
138
- },
101
+ initRowInstanceData: (row) => {
102
+ ;(row as any)._groupingValuesCache = {}
103
+ },
139
104
 
140
- constructTableAPIs: (table) => {
141
- assignTableAPIs('columnGroupingFeature', table, {
142
- table_setGrouping: {
143
- fn: (updater) => table_setGrouping(table, updater),
144
- },
145
- table_resetGrouping: {
146
- fn: (defaultState) => table_resetGrouping(table, defaultState),
147
- },
148
- })
149
- },
150
- }
105
+ constructTableAPIs: (table) => {
106
+ assignTableAPIs('columnGroupingFeature', table, {
107
+ table_setGrouping: {
108
+ fn: (updater) => table_setGrouping(table, updater),
109
+ },
110
+ table_resetGrouping: {
111
+ fn: (defaultState) => table_resetGrouping(table, defaultState),
112
+ },
113
+ })
114
+ },
151
115
  }
152
-
153
- /**
154
- * The stock column grouping feature.
155
- *
156
- * Register this feature to add grouping state, aggregation defaults, grouped
157
- * row-model support, and table/row/column/cell grouping APIs.
158
- */
159
- export const columnGroupingFeature = constructColumnGroupingFeature()