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

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 (432) 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 +1 -1
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +1 -1
  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 +1 -1
  22. package/dist/core/columns/coreColumnsFeature.types.d.ts +1 -1
  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 +1 -1
  42. package/dist/core/headers/coreHeadersFeature.types.d.ts +1 -1
  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 +3 -13
  54. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +3 -13
  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.map +1 -1
  62. package/dist/core/row-models/createCoreRowModel.d.cts +1 -1
  63. package/dist/core/row-models/createCoreRowModel.d.ts +1 -1
  64. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  65. package/dist/core/rows/constructRow.d.cts +1 -1
  66. package/dist/core/rows/constructRow.d.ts +1 -1
  67. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  68. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  69. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  70. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  71. package/dist/core/rows/coreRowsFeature.js +28 -36
  72. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  73. package/dist/core/rows/coreRowsFeature.types.d.cts +1 -1
  74. package/dist/core/rows/coreRowsFeature.types.d.ts +1 -1
  75. package/dist/core/rows/coreRowsFeature.utils.d.cts +1 -1
  76. package/dist/core/rows/coreRowsFeature.utils.d.ts +1 -1
  77. package/dist/core/table/constructTable.cjs +21 -6
  78. package/dist/core/table/constructTable.cjs.map +1 -1
  79. package/dist/core/table/constructTable.d.cts +1 -1
  80. package/dist/core/table/constructTable.d.ts +1 -1
  81. package/dist/core/table/constructTable.js +21 -6
  82. package/dist/core/table/constructTable.js.map +1 -1
  83. package/dist/core/table/coreTablesFeature.cjs +7 -16
  84. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  85. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  86. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  87. package/dist/core/table/coreTablesFeature.js +8 -16
  88. package/dist/core/table/coreTablesFeature.js.map +1 -1
  89. package/dist/core/table/coreTablesFeature.types.d.cts +23 -11
  90. package/dist/core/table/coreTablesFeature.types.d.ts +23 -11
  91. package/dist/core/table/coreTablesFeature.utils.cjs +1 -2
  92. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  93. package/dist/core/table/coreTablesFeature.utils.d.cts +1 -1
  94. package/dist/core/table/coreTablesFeature.utils.d.ts +1 -1
  95. package/dist/core/table/coreTablesFeature.utils.js +1 -2
  96. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  97. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  98. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  99. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  100. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  101. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  102. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  103. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +4 -25
  104. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +4 -25
  105. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  106. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  107. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +1 -1
  108. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +1 -1
  109. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  110. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  111. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  112. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  113. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  114. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  115. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  116. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  117. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  118. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  119. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  120. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  121. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  122. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  123. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  124. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  125. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  126. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  127. package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
  128. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  129. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +31 -17
  130. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +31 -17
  131. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  132. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  133. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +2 -2
  134. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +2 -2
  135. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  136. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  137. package/dist/features/column-filtering/createFilteredRowModel.cjs +4 -2
  138. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  139. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  140. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  141. package/dist/features/column-filtering/createFilteredRowModel.js +4 -2
  142. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  143. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  144. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  145. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  146. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  147. package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
  148. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  149. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +17 -13
  150. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +17 -13
  151. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +1 -1
  152. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +1 -1
  153. package/dist/features/column-grouping/createGroupedRowModel.cjs +5 -2
  154. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  155. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  156. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  157. package/dist/features/column-grouping/createGroupedRowModel.js +5 -2
  158. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  159. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  160. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  161. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  162. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  163. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  164. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  165. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +1 -1
  166. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +1 -1
  167. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  168. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  169. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  170. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  171. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  172. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  173. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  174. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +13 -13
  175. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +13 -13
  176. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  177. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  178. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  179. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  180. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  181. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  182. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  183. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +1 -1
  184. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +1 -1
  185. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  186. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  187. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  188. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  189. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  190. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  191. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +4 -4
  192. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +4 -4
  193. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  194. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  195. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  196. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  197. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  198. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  199. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +1 -1
  200. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +1 -1
  201. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  202. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  203. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  204. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  205. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  206. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  207. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +1 -1
  208. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +1 -1
  209. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  210. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +7 -5
  211. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +7 -5
  212. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  213. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  214. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  215. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  216. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  217. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  218. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  219. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  220. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  221. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  222. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  223. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +1 -10
  224. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +1 -10
  225. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +1 -1
  226. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +1 -1
  227. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  228. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  229. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  230. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  231. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  232. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  233. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  234. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  235. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  236. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  237. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +1 -10
  238. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +1 -10
  239. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +1 -1
  240. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +1 -1
  241. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  242. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  243. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  244. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  245. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  246. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  247. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +1 -1
  248. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +1 -1
  249. package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
  250. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  251. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  252. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  253. package/dist/features/row-selection/rowSelectionFeature.js +66 -77
  254. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  255. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +10 -6
  256. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  257. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +1 -1
  258. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +1 -1
  259. package/dist/features/row-selection/rowSelectionFeature.utils.js +10 -6
  260. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  261. package/dist/features/row-sorting/createSortedRowModel.cjs +4 -2
  262. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  263. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  264. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  265. package/dist/features/row-sorting/createSortedRowModel.js +4 -2
  266. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  267. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  268. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  269. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  270. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  271. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  272. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  273. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +16 -13
  274. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +16 -13
  275. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  276. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  277. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +1 -1
  278. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +1 -1
  279. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  280. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  281. package/dist/fns/aggregationFns.cjs +18 -18
  282. package/dist/fns/aggregationFns.cjs.map +1 -1
  283. package/dist/fns/aggregationFns.d.cts +21 -19
  284. package/dist/fns/aggregationFns.d.ts +21 -19
  285. package/dist/fns/aggregationFns.js +18 -18
  286. package/dist/fns/aggregationFns.js.map +1 -1
  287. package/dist/fns/filterFns.cjs +51 -65
  288. package/dist/fns/filterFns.cjs.map +1 -1
  289. package/dist/fns/filterFns.d.cts +82 -28
  290. package/dist/fns/filterFns.d.ts +82 -28
  291. package/dist/fns/filterFns.js +51 -65
  292. package/dist/fns/filterFns.js.map +1 -1
  293. package/dist/fns/sortFns.cjs +18 -6
  294. package/dist/fns/sortFns.cjs.map +1 -1
  295. package/dist/fns/sortFns.d.cts +15 -13
  296. package/dist/fns/sortFns.d.ts +15 -13
  297. package/dist/fns/sortFns.js +18 -6
  298. package/dist/fns/sortFns.js.map +1 -1
  299. package/dist/helpers/metaHelper.cjs +30 -0
  300. package/dist/helpers/metaHelper.cjs.map +1 -0
  301. package/dist/helpers/metaHelper.d.cts +26 -0
  302. package/dist/helpers/metaHelper.d.ts +26 -0
  303. package/dist/helpers/metaHelper.js +29 -0
  304. package/dist/helpers/metaHelper.js.map +1 -0
  305. package/dist/helpers/tableFeatures.cjs +31 -3
  306. package/dist/helpers/tableFeatures.cjs.map +1 -1
  307. package/dist/helpers/tableFeatures.d.cts +33 -5
  308. package/dist/helpers/tableFeatures.d.ts +33 -5
  309. package/dist/helpers/tableFeatures.js +31 -3
  310. package/dist/helpers/tableFeatures.js.map +1 -1
  311. package/dist/index.cjs +2 -20
  312. package/dist/index.d.cts +44 -43
  313. package/dist/index.d.ts +44 -43
  314. package/dist/index.js +22 -21
  315. package/dist/store-reactivity-bindings.cjs +1 -1
  316. package/dist/store-reactivity-bindings.cjs.map +1 -1
  317. package/dist/store-reactivity-bindings.d.cts +1 -1
  318. package/dist/store-reactivity-bindings.d.ts +1 -1
  319. package/dist/store-reactivity-bindings.js +1 -1
  320. package/dist/store-reactivity-bindings.js.map +1 -1
  321. package/dist/types/Cell.d.cts +7 -9
  322. package/dist/types/Cell.d.ts +7 -9
  323. package/dist/types/Column.d.cts +18 -11
  324. package/dist/types/Column.d.ts +18 -11
  325. package/dist/types/ColumnDef.d.cts +29 -10
  326. package/dist/types/ColumnDef.d.ts +29 -10
  327. package/dist/types/Header.d.cts +9 -10
  328. package/dist/types/Header.d.ts +9 -10
  329. package/dist/types/HeaderGroup.d.cts +3 -8
  330. package/dist/types/HeaderGroup.d.ts +3 -8
  331. package/dist/types/Row.d.cts +14 -10
  332. package/dist/types/Row.d.ts +14 -10
  333. package/dist/types/RowModel.d.cts +19 -19
  334. package/dist/types/RowModel.d.ts +19 -19
  335. package/dist/types/RowModelFns.d.cts +9 -9
  336. package/dist/types/RowModelFns.d.ts +9 -9
  337. package/dist/types/Table.d.cts +25 -15
  338. package/dist/types/Table.d.ts +25 -15
  339. package/dist/types/TableFeatures.d.cts +178 -41
  340. package/dist/types/TableFeatures.d.ts +178 -41
  341. package/dist/types/TableOptions.d.cts +24 -9
  342. package/dist/types/TableOptions.d.ts +24 -9
  343. package/dist/types/TableState.d.cts +22 -13
  344. package/dist/types/TableState.d.ts +22 -13
  345. package/dist/utils.cjs.map +1 -1
  346. package/dist/utils.d.cts +2 -2
  347. package/dist/utils.d.ts +2 -2
  348. package/dist/utils.js.map +1 -1
  349. package/package.json +1 -1
  350. package/skills/column-definitions/SKILL.md +3 -6
  351. package/skills/column-layout/SKILL.md +0 -2
  352. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  353. package/skills/filtering/SKILL.md +60 -42
  354. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  355. package/skills/grouping/SKILL.md +49 -54
  356. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  357. package/skills/pagination/SKILL.md +22 -20
  358. package/skills/row-expanding/SKILL.md +33 -25
  359. package/skills/row-pinning/SKILL.md +11 -7
  360. package/skills/row-selection/SKILL.md +0 -3
  361. package/skills/setup/SKILL.md +55 -65
  362. package/skills/sorting/SKILL.md +21 -21
  363. package/skills/state-management/SKILL.md +40 -25
  364. package/src/core/cells/coreCellsFeature.ts +17 -39
  365. package/src/core/columns/coreColumnsFeature.ts +56 -83
  366. package/src/core/coreFeatures.ts +1 -1
  367. package/src/core/headers/buildHeaderGroups.ts +1 -1
  368. package/src/core/headers/coreHeadersFeature.ts +42 -64
  369. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  370. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  371. package/src/core/row-models/coreRowModelsFeature.types.ts +1 -18
  372. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  373. package/src/core/row-models/createCoreRowModel.ts +1 -1
  374. package/src/core/rows/coreRowsFeature.ts +45 -72
  375. package/src/core/table/constructTable.ts +49 -12
  376. package/src/core/table/coreTablesFeature.ts +13 -35
  377. package/src/core/table/coreTablesFeature.types.ts +33 -10
  378. package/src/core/table/coreTablesFeature.utils.ts +2 -3
  379. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  380. package/src/features/column-faceting/columnFacetingFeature.types.ts +3 -36
  381. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  382. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  383. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  384. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  385. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  386. package/src/features/column-filtering/columnFilteringFeature.types.ts +37 -21
  387. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  388. package/src/features/column-filtering/createFilteredRowModel.ts +5 -7
  389. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  390. package/src/features/column-grouping/columnGroupingFeature.types.ts +20 -19
  391. package/src/features/column-grouping/createGroupedRowModel.ts +7 -11
  392. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  393. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  394. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  395. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  396. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  397. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  398. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  399. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  400. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  401. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  402. package/src/features/row-expanding/rowExpandingFeature.types.ts +0 -14
  403. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  404. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  405. package/src/features/row-pagination/rowPaginationFeature.types.ts +0 -14
  406. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  407. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  408. package/src/features/row-selection/rowSelectionFeature.utils.ts +12 -7
  409. package/src/features/row-sorting/createSortedRowModel.ts +6 -6
  410. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  411. package/src/features/row-sorting/rowSortingFeature.types.ts +19 -18
  412. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  413. package/src/fns/aggregationFns.ts +26 -42
  414. package/src/fns/filterFns.ts +231 -264
  415. package/src/fns/sortFns.ts +51 -29
  416. package/src/helpers/metaHelper.ts +24 -0
  417. package/src/helpers/tableFeatures.ts +36 -5
  418. package/src/index.ts +1 -0
  419. package/src/store-reactivity-bindings.ts +1 -1
  420. package/src/types/Cell.ts +8 -28
  421. package/src/types/Column.ts +18 -53
  422. package/src/types/ColumnDef.ts +44 -45
  423. package/src/types/Header.ts +8 -30
  424. package/src/types/HeaderGroup.ts +2 -13
  425. package/src/types/Row.ts +15 -36
  426. package/src/types/RowModel.ts +21 -111
  427. package/src/types/RowModelFns.ts +11 -30
  428. package/src/types/Table.ts +24 -66
  429. package/src/types/TableFeatures.ts +253 -108
  430. package/src/types/TableOptions.ts +40 -72
  431. package/src/types/TableState.ts +20 -73
  432. package/src/utils.ts +5 -4
@@ -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 {
@@ -39,7 +53,7 @@ export interface RowModelFns_ColumnFiltering<
39
53
  TFeatures extends TableFeatures,
40
54
  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<
@@ -50,7 +64,7 @@ export interface FilterFn<
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,10 +87,27 @@ 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
113
  TFeatures extends TableFeatures,
@@ -143,7 +174,7 @@ 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<
@@ -209,21 +240,6 @@ 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
244
  TFeatures extends TableFeatures,
229
245
  TData extends RowData,
@@ -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()
@@ -1,5 +1,4 @@
1
1
  import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
2
- import type { Table } from '../../types/Table'
3
2
  import type { BuiltInAggregationFn } from '../../fns/aggregationFns'
4
3
  import type {
5
4
  CellData,
@@ -7,7 +6,7 @@ import type {
7
6
  RowData,
8
7
  Updater,
9
8
  } from '../../types/type-utils'
10
- import type { TableFeatures } from '../../types/TableFeatures'
9
+ import type { IsAny, TableFeatures } from '../../types/TableFeatures'
11
10
  import type { Row } from '../../types/Row'
12
11
  import type { Cell } from '../../types/Cell'
13
12
  import type { ColumnDefTemplate } from '../../types/ColumnDef'
@@ -22,7 +21,7 @@ export interface RowModelFns_ColumnGrouping<
22
21
  TFeatures extends TableFeatures,
23
22
  TData extends RowData,
24
23
  > {
25
- aggregationFns: Record<keyof AggregationFns, AggregationFn<TFeatures, TData>>
24
+ aggregationFns: Record<string, AggregationFn<TFeatures, TData>>
26
25
  }
27
26
 
28
27
  export interface AggregationFns {}
@@ -41,13 +40,29 @@ export type CustomAggregationFns<
41
40
  TData extends RowData,
42
41
  > = Record<string, AggregationFn<TFeatures, TData>>
43
42
 
43
+ /**
44
+ * Resolves the valid string names for `columnDef.aggregationFn` for a feature
45
+ * set.
46
+ *
47
+ * When the features object declares an `aggregationFns` registry
48
+ * (`tableFeatures({ ..., aggregationFns })`), its keys are the only valid
49
+ * names; a name is only assignable if an aggregation function is actually
50
+ * registered for it. Otherwise this falls back to the global
51
+ * declaration-merged `AggregationFns` interface.
52
+ */
53
+ export type ExtractAggregationFnKeys<TFeatures extends TableFeatures> =
54
+ IsAny<TFeatures> extends true
55
+ ? keyof AggregationFns | BuiltInAggregationFn
56
+ : TFeatures extends { aggregationFns: infer TAggregationFns extends object }
57
+ ? Extract<keyof TAggregationFns, string>
58
+ : keyof AggregationFns
59
+
44
60
  export type AggregationFnOption<
45
61
  TFeatures extends TableFeatures,
46
62
  TData extends RowData,
47
63
  > =
48
64
  | 'auto'
49
- | keyof AggregationFns
50
- | BuiltInAggregationFn
65
+ | ExtractAggregationFnKeys<TFeatures>
51
66
  | AggregationFn<TFeatures, TData>
52
67
 
53
68
  export interface ColumnDef_ColumnGrouping<
@@ -204,20 +219,6 @@ export interface Table_RowModels_Grouped<
204
219
  getPreGroupedRowModel: () => RowModel<TFeatures, TData>
205
220
  }
206
221
 
207
- export interface CreateRowModel_Grouped<
208
- TFeatures extends TableFeatures,
209
- TData extends RowData,
210
- > {
211
- /**
212
- * Factory used to retrieve the grouped row model. If using server-side
213
- * grouping, this is not required. To use client-side grouping, pass
214
- * `createGroupedRowModel()` or implement your own factory.
215
- */
216
- groupedRowModel?: (
217
- table: Table<TFeatures, TData>,
218
- ) => () => RowModel<TFeatures, TData>
219
- }
220
-
221
222
  export interface CachedRowModel_Grouped<
222
223
  TFeatures extends TableFeatures,
223
224
  TData extends RowData,
@@ -8,11 +8,7 @@ import {
8
8
  row_getGroupingValue,
9
9
  } from './columnGroupingFeature.utils'
10
10
  import type { Column } from '../../types/Column'
11
- import type {
12
- AggregationFn,
13
- AggregationFns,
14
- Row_ColumnGrouping,
15
- } from './columnGroupingFeature.types'
11
+ import type { Row_ColumnGrouping } from './columnGroupingFeature.types'
16
12
  import type { TableFeatures } from '../../types/TableFeatures'
17
13
  import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
18
14
  import type { Table, Table_Internal } from '../../types/Table'
@@ -23,17 +19,17 @@ import type { RowData } from '../../types/type-utils'
23
19
  * Creates a memoized grouped row model factory.
24
20
  *
25
21
  * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.
22
+ *
23
+ * Register aggregation functions with the `aggregationFns` slot on the
24
+ * `features` option:
25
+ * `tableFeatures({ columnGroupingFeature, groupedRowModel: createGroupedRowModel(), aggregationFns })`.
26
26
  */
27
27
  export function createGroupedRowModel<
28
28
  TFeatures extends TableFeatures,
29
29
  TData extends RowData = any,
30
- >(
31
- aggregationFns: Record<keyof AggregationFns, AggregationFn<TFeatures, TData>>,
32
- ): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
30
+ >(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
33
31
  return (_table) => {
34
- const table: Table_Internal<TFeatures, TData> = _table
35
- if (!table._rowModelFns.aggregationFns)
36
- table._rowModelFns.aggregationFns = aggregationFns
32
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
37
33
  return tableMemo({
38
34
  feature: 'columnGroupingFeature',
39
35
  table,