@tanstack/table-core 9.0.0-beta.2 → 9.0.0-beta.20

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 (524) hide show
  1. package/dist/core/cells/constructCell.d.cts +3 -3
  2. package/dist/core/cells/constructCell.d.ts +3 -3
  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 +6 -6
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +6 -6
  11. package/dist/core/cells/coreCellsFeature.utils.d.cts +3 -3
  12. package/dist/core/cells/coreCellsFeature.utils.d.ts +3 -3
  13. package/dist/core/columns/constructColumn.cjs +5 -0
  14. package/dist/core/columns/constructColumn.cjs.map +1 -1
  15. package/dist/core/columns/constructColumn.d.cts +3 -3
  16. package/dist/core/columns/constructColumn.d.ts +3 -3
  17. package/dist/core/columns/constructColumn.js +5 -0
  18. package/dist/core/columns/constructColumn.js.map +1 -1
  19. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  20. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  22. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  23. package/dist/core/columns/coreColumnsFeature.js +60 -68
  24. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  25. package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -7
  26. package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -7
  27. package/dist/core/columns/coreColumnsFeature.utils.cjs +2 -2
  28. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  29. package/dist/core/columns/coreColumnsFeature.utils.d.cts +9 -9
  30. package/dist/core/columns/coreColumnsFeature.utils.d.ts +9 -9
  31. package/dist/core/columns/coreColumnsFeature.utils.js +3 -3
  32. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  33. package/dist/core/coreFeatures.cjs.map +1 -1
  34. package/dist/core/coreFeatures.d.cts +1 -1
  35. package/dist/core/coreFeatures.d.ts +1 -1
  36. package/dist/core/coreFeatures.js.map +1 -1
  37. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  38. package/dist/core/headers/buildHeaderGroups.d.cts +2 -2
  39. package/dist/core/headers/buildHeaderGroups.d.ts +2 -2
  40. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  41. package/dist/core/headers/constructHeader.d.cts +2 -2
  42. package/dist/core/headers/constructHeader.d.ts +2 -2
  43. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  44. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  45. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  46. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  47. package/dist/core/headers/coreHeadersFeature.js +45 -53
  48. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  49. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  50. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  51. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  52. package/dist/core/headers/coreHeadersFeature.utils.d.cts +6 -6
  53. package/dist/core/headers/coreHeadersFeature.utils.d.ts +6 -6
  54. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  55. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  56. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  57. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  58. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  59. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  60. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  61. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +6 -16
  62. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +6 -16
  63. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
  64. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  65. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +14 -14
  66. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +14 -14
  67. package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
  68. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  69. package/dist/core/row-models/createCoreRowModel.cjs +2 -3
  70. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  71. package/dist/core/row-models/createCoreRowModel.d.cts +1 -1
  72. package/dist/core/row-models/createCoreRowModel.d.ts +1 -1
  73. package/dist/core/row-models/createCoreRowModel.js +3 -4
  74. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  75. package/dist/core/rows/constructRow.cjs +3 -2
  76. package/dist/core/rows/constructRow.cjs.map +1 -1
  77. package/dist/core/rows/constructRow.d.cts +2 -2
  78. package/dist/core/rows/constructRow.d.ts +2 -2
  79. package/dist/core/rows/constructRow.js +4 -2
  80. package/dist/core/rows/constructRow.js.map +1 -1
  81. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  82. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  83. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  84. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  85. package/dist/core/rows/coreRowsFeature.js +28 -36
  86. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  87. package/dist/core/rows/coreRowsFeature.types.d.cts +6 -6
  88. package/dist/core/rows/coreRowsFeature.types.d.ts +6 -6
  89. package/dist/core/rows/coreRowsFeature.utils.cjs +3 -3
  90. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  91. package/dist/core/rows/coreRowsFeature.utils.d.cts +3 -3
  92. package/dist/core/rows/coreRowsFeature.utils.d.ts +3 -3
  93. package/dist/core/rows/coreRowsFeature.utils.js +4 -4
  94. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  95. package/dist/core/table/constructTable.cjs +21 -6
  96. package/dist/core/table/constructTable.cjs.map +1 -1
  97. package/dist/core/table/constructTable.d.cts +1 -1
  98. package/dist/core/table/constructTable.d.ts +1 -1
  99. package/dist/core/table/constructTable.js +21 -6
  100. package/dist/core/table/constructTable.js.map +1 -1
  101. package/dist/core/table/coreTablesFeature.cjs +7 -16
  102. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  103. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  104. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  105. package/dist/core/table/coreTablesFeature.js +8 -16
  106. package/dist/core/table/coreTablesFeature.js.map +1 -1
  107. package/dist/core/table/coreTablesFeature.types.d.cts +28 -16
  108. package/dist/core/table/coreTablesFeature.types.d.ts +28 -16
  109. package/dist/core/table/coreTablesFeature.utils.cjs +33 -12
  110. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  111. package/dist/core/table/coreTablesFeature.utils.d.cts +8 -6
  112. package/dist/core/table/coreTablesFeature.utils.d.ts +8 -6
  113. package/dist/core/table/coreTablesFeature.utils.js +33 -12
  114. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  115. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  116. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  117. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  118. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  119. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  120. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  121. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
  122. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
  123. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  124. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  125. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +8 -8
  126. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +8 -8
  127. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  128. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  129. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  130. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  131. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  132. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  133. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  134. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  135. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  136. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  137. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  138. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  139. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  140. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  141. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  142. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  143. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  144. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  145. package/dist/features/column-filtering/columnFilteringFeature.js +42 -54
  146. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  147. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
  148. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
  149. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  150. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  151. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +12 -12
  152. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +12 -12
  153. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  154. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  155. package/dist/features/column-filtering/createFilteredRowModel.cjs +12 -7
  156. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  157. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  158. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  159. package/dist/features/column-filtering/createFilteredRowModel.js +13 -8
  160. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  161. package/dist/features/column-filtering/filterRowsUtils.cjs +3 -2
  162. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
  163. package/dist/features/column-filtering/filterRowsUtils.js +3 -2
  164. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
  165. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  166. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  167. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  168. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  169. package/dist/features/column-grouping/columnGroupingFeature.js +59 -70
  170. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  171. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +23 -19
  172. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +23 -19
  173. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +3 -3
  174. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  175. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +11 -11
  176. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +11 -11
  177. package/dist/features/column-grouping/columnGroupingFeature.utils.js +4 -4
  178. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  179. package/dist/features/column-grouping/createGroupedRowModel.cjs +9 -7
  180. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  181. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  182. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  183. package/dist/features/column-grouping/createGroupedRowModel.js +10 -8
  184. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  185. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  186. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  187. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  188. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  189. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  190. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  191. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
  192. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
  193. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +9 -9
  194. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +9 -9
  195. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  196. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  197. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  198. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  199. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  200. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  201. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
  202. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
  203. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  204. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +31 -30
  205. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +31 -30
  206. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  207. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  208. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  209. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  210. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  211. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  212. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  213. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +1 -4
  214. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
  215. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +2 -5
  216. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  217. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +6 -6
  218. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +6 -6
  219. package/dist/features/column-resizing/columnResizingFeature.utils.js +3 -6
  220. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  221. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  222. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  223. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  224. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  225. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  226. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  227. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +11 -4
  228. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  229. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +12 -12
  230. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +12 -12
  231. package/dist/features/column-sizing/columnSizingFeature.utils.js +12 -5
  232. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  233. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  234. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  235. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  236. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  237. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  238. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  239. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
  240. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
  241. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +12 -9
  242. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  243. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +14 -14
  244. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +14 -14
  245. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +13 -10
  246. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  247. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  248. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  249. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  250. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  251. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  252. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  253. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +2 -2
  254. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +2 -2
  255. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  256. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +10 -8
  257. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -8
  258. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  259. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  260. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  261. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  262. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  263. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  264. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  265. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  266. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  267. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  268. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  269. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
  270. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
  271. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +21 -12
  272. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  273. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +10 -10
  274. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +10 -10
  275. package/dist/features/row-expanding/rowExpandingFeature.utils.js +22 -13
  276. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  277. package/dist/features/row-pagination/createPaginatedRowModel.cjs +1 -1
  278. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  279. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  280. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  281. package/dist/features/row-pagination/createPaginatedRowModel.js +1 -1
  282. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  283. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  284. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  285. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  286. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  287. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  288. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  289. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
  290. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
  291. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +17 -17
  292. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +17 -17
  293. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  294. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  295. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  296. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  297. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  298. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  299. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  300. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  301. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +2 -2
  302. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  303. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +7 -7
  304. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +7 -7
  305. package/dist/features/row-pinning/rowPinningFeature.utils.js +2 -2
  306. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  307. package/dist/features/row-selection/rowSelectionFeature.cjs +108 -77
  308. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  309. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  310. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  311. package/dist/features/row-selection/rowSelectionFeature.js +110 -78
  312. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  313. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +13 -5
  314. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +13 -5
  315. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +76 -60
  316. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  317. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +48 -23
  318. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +48 -23
  319. package/dist/features/row-selection/rowSelectionFeature.utils.js +77 -62
  320. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  321. package/dist/features/row-sorting/createSortedRowModel.cjs +5 -3
  322. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  323. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  324. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  325. package/dist/features/row-sorting/createSortedRowModel.js +6 -4
  326. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  327. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  328. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  329. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  330. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  331. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  332. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  333. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +24 -21
  334. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +24 -21
  335. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  336. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  337. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +16 -16
  338. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +16 -16
  339. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  340. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  341. package/dist/fns/aggregationFns.cjs +18 -18
  342. package/dist/fns/aggregationFns.cjs.map +1 -1
  343. package/dist/fns/aggregationFns.d.cts +21 -19
  344. package/dist/fns/aggregationFns.d.ts +21 -19
  345. package/dist/fns/aggregationFns.js +18 -18
  346. package/dist/fns/aggregationFns.js.map +1 -1
  347. package/dist/fns/filterFns.cjs +51 -65
  348. package/dist/fns/filterFns.cjs.map +1 -1
  349. package/dist/fns/filterFns.d.cts +82 -28
  350. package/dist/fns/filterFns.d.ts +82 -28
  351. package/dist/fns/filterFns.js +51 -65
  352. package/dist/fns/filterFns.js.map +1 -1
  353. package/dist/fns/sortFns.cjs +18 -6
  354. package/dist/fns/sortFns.cjs.map +1 -1
  355. package/dist/fns/sortFns.d.cts +15 -13
  356. package/dist/fns/sortFns.d.ts +15 -13
  357. package/dist/fns/sortFns.js +18 -6
  358. package/dist/fns/sortFns.js.map +1 -1
  359. package/dist/helpers/columnHelper.cjs.map +1 -1
  360. package/dist/helpers/columnHelper.d.cts +2 -2
  361. package/dist/helpers/columnHelper.d.ts +2 -2
  362. package/dist/helpers/columnHelper.js.map +1 -1
  363. package/dist/helpers/metaHelper.cjs +30 -0
  364. package/dist/helpers/metaHelper.cjs.map +1 -0
  365. package/dist/helpers/metaHelper.d.cts +26 -0
  366. package/dist/helpers/metaHelper.d.ts +26 -0
  367. package/dist/helpers/metaHelper.js +29 -0
  368. package/dist/helpers/metaHelper.js.map +1 -0
  369. package/dist/helpers/tableFeatures.cjs +31 -3
  370. package/dist/helpers/tableFeatures.cjs.map +1 -1
  371. package/dist/helpers/tableFeatures.d.cts +33 -5
  372. package/dist/helpers/tableFeatures.d.ts +33 -5
  373. package/dist/helpers/tableFeatures.js +31 -3
  374. package/dist/helpers/tableFeatures.js.map +1 -1
  375. package/dist/index.cjs +4 -20
  376. package/dist/index.d.cts +50 -49
  377. package/dist/index.d.ts +50 -49
  378. package/dist/index.js +23 -22
  379. package/dist/static-functions.cjs +1 -0
  380. package/dist/static-functions.d.cts +2 -2
  381. package/dist/static-functions.d.ts +2 -2
  382. package/dist/static-functions.js +2 -2
  383. package/dist/store-reactivity-bindings.cjs +1 -1
  384. package/dist/store-reactivity-bindings.cjs.map +1 -1
  385. package/dist/store-reactivity-bindings.d.cts +1 -1
  386. package/dist/store-reactivity-bindings.d.ts +1 -1
  387. package/dist/store-reactivity-bindings.js +1 -1
  388. package/dist/store-reactivity-bindings.js.map +1 -1
  389. package/dist/types/Cell.d.cts +4 -9
  390. package/dist/types/Cell.d.ts +4 -9
  391. package/dist/types/Column.d.cts +11 -18
  392. package/dist/types/Column.d.ts +11 -18
  393. package/dist/types/ColumnDef.d.cts +23 -14
  394. package/dist/types/ColumnDef.d.ts +23 -14
  395. package/dist/types/Header.d.cts +5 -10
  396. package/dist/types/Header.d.ts +5 -10
  397. package/dist/types/HeaderGroup.d.cts +4 -9
  398. package/dist/types/HeaderGroup.d.ts +4 -9
  399. package/dist/types/Row.d.cts +7 -12
  400. package/dist/types/Row.d.ts +7 -12
  401. package/dist/types/RowModel.d.cts +12 -28
  402. package/dist/types/RowModel.d.ts +12 -28
  403. package/dist/types/RowModelFns.d.cts +6 -11
  404. package/dist/types/RowModelFns.d.ts +6 -11
  405. package/dist/types/Table.d.cts +26 -36
  406. package/dist/types/Table.d.ts +26 -36
  407. package/dist/types/TableFeatures.d.cts +328 -54
  408. package/dist/types/TableFeatures.d.ts +328 -54
  409. package/dist/types/TableOptions.d.cts +22 -17
  410. package/dist/types/TableOptions.d.ts +22 -17
  411. package/dist/types/TableState.d.cts +11 -16
  412. package/dist/types/TableState.d.ts +11 -16
  413. package/dist/utils.cjs +24 -2
  414. package/dist/utils.cjs.map +1 -1
  415. package/dist/utils.d.cts +23 -7
  416. package/dist/utils.d.ts +23 -7
  417. package/dist/utils.js +23 -3
  418. package/dist/utils.js.map +1 -1
  419. package/package.json +2 -2
  420. package/skills/column-definitions/SKILL.md +3 -6
  421. package/skills/column-layout/SKILL.md +0 -2
  422. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  423. package/skills/filtering/SKILL.md +60 -42
  424. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  425. package/skills/grouping/SKILL.md +49 -54
  426. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  427. package/skills/pagination/SKILL.md +22 -20
  428. package/skills/row-expanding/SKILL.md +33 -25
  429. package/skills/row-pinning/SKILL.md +11 -7
  430. package/skills/row-selection/SKILL.md +0 -3
  431. package/skills/setup/SKILL.md +55 -65
  432. package/skills/sorting/SKILL.md +21 -21
  433. package/skills/state-management/SKILL.md +40 -25
  434. package/src/core/cells/coreCellsFeature.ts +17 -39
  435. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  436. package/src/core/columns/constructColumn.ts +6 -0
  437. package/src/core/columns/coreColumnsFeature.ts +56 -83
  438. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  439. package/src/core/columns/coreColumnsFeature.utils.ts +4 -4
  440. package/src/core/coreFeatures.ts +1 -1
  441. package/src/core/headers/buildHeaderGroups.ts +4 -2
  442. package/src/core/headers/coreHeadersFeature.ts +42 -64
  443. package/src/core/headers/coreHeadersFeature.types.ts +12 -12
  444. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  445. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  446. package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
  447. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  448. package/src/core/row-models/createCoreRowModel.ts +7 -6
  449. package/src/core/rows/constructRow.ts +3 -2
  450. package/src/core/rows/coreRowsFeature.ts +45 -72
  451. package/src/core/rows/coreRowsFeature.types.ts +8 -8
  452. package/src/core/rows/coreRowsFeature.utils.ts +4 -4
  453. package/src/core/table/constructTable.ts +50 -13
  454. package/src/core/table/coreTablesFeature.ts +13 -35
  455. package/src/core/table/coreTablesFeature.types.ts +40 -17
  456. package/src/core/table/coreTablesFeature.utils.ts +52 -18
  457. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  458. package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
  459. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  460. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  461. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  462. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  463. package/src/features/column-filtering/columnFilteringFeature.ts +61 -103
  464. package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
  465. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  466. package/src/features/column-filtering/createFilteredRowModel.ts +18 -17
  467. package/src/features/column-filtering/filterRowsUtils.ts +3 -2
  468. package/src/features/column-grouping/columnGroupingFeature.ts +83 -126
  469. package/src/features/column-grouping/columnGroupingFeature.types.ts +32 -31
  470. package/src/features/column-grouping/columnGroupingFeature.utils.ts +2 -2
  471. package/src/features/column-grouping/createGroupedRowModel.ts +17 -16
  472. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  473. package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
  474. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  475. package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
  476. package/src/features/column-pinning/columnPinningFeature.utils.ts +11 -19
  477. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  478. package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
  479. package/src/features/column-resizing/columnResizingFeature.utils.ts +5 -6
  480. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  481. package/src/features/column-sizing/columnSizingFeature.utils.ts +27 -5
  482. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  483. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  484. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +31 -15
  485. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  486. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  487. package/src/features/global-filtering/globalFilteringFeature.utils.ts +5 -3
  488. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  489. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  490. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
  491. package/src/features/row-expanding/rowExpandingFeature.utils.ts +38 -13
  492. package/src/features/row-pagination/createPaginatedRowModel.ts +2 -2
  493. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  494. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
  495. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  496. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  497. package/src/features/row-selection/rowSelectionFeature.ts +125 -135
  498. package/src/features/row-selection/rowSelectionFeature.types.ts +17 -7
  499. package/src/features/row-selection/rowSelectionFeature.utils.ts +144 -66
  500. package/src/features/row-sorting/createSortedRowModel.ts +12 -15
  501. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  502. package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
  503. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  504. package/src/fns/aggregationFns.ts +26 -42
  505. package/src/fns/filterFns.ts +237 -264
  506. package/src/fns/sortFns.ts +51 -29
  507. package/src/helpers/columnHelper.ts +4 -4
  508. package/src/helpers/metaHelper.ts +24 -0
  509. package/src/helpers/tableFeatures.ts +36 -5
  510. package/src/index.ts +1 -0
  511. package/src/store-reactivity-bindings.ts +1 -1
  512. package/src/types/Cell.ts +5 -21
  513. package/src/types/Column.ts +12 -26
  514. package/src/types/ColumnDef.ts +28 -18
  515. package/src/types/Header.ts +4 -20
  516. package/src/types/HeaderGroup.ts +7 -18
  517. package/src/types/Row.ts +6 -21
  518. package/src/types/RowModel.ts +15 -88
  519. package/src/types/RowModelFns.ts +9 -24
  520. package/src/types/Table.ts +54 -44
  521. package/src/types/TableFeatures.ts +402 -123
  522. package/src/types/TableOptions.ts +59 -21
  523. package/src/types/TableState.ts +5 -17
  524. package/src/utils.ts +40 -8
@@ -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 any)
327
327
  : false) ||
328
328
  typeof value === 'undefined' ||
329
329
  (typeof value === 'string' && !value)
@@ -1,4 +1,4 @@
1
- import { tableMemo } from '../../utils'
1
+ import { makeObjectMap, tableMemo } from '../../utils'
2
2
  import { table_getColumn } from '../../core/columns/coreColumnsFeature.utils'
3
3
  import {
4
4
  column_getCanGlobalFilter,
@@ -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,
@@ -62,8 +60,8 @@ function _createFilteredRowModel<
62
60
  >
63
61
  for (let i = 0; i < flatRows.length; i++) {
64
62
  const row = flatRows[i]!
65
- row.columnFilters = {}
66
- row.columnFiltersMeta = {}
63
+ row.columnFilters = makeObjectMap()
64
+ row.columnFiltersMeta = makeObjectMap()
67
65
  }
68
66
  return rowModel
69
67
  }
@@ -117,7 +115,8 @@ function _createFilteredRowModel<
117
115
  >
118
116
  for (let i = 0; i < flatRows.length; i++) {
119
117
  const row = flatRows[i]!
120
- row.columnFilters = {}
118
+ row.columnFilters = makeObjectMap()
119
+ row.columnFiltersMeta = makeObjectMap()
121
120
 
122
121
  if (resolvedColumnFilters.length) {
123
122
  for (let j = 0; j < resolvedColumnFilters.length; j++) {
@@ -130,9 +129,10 @@ function _createFilteredRowModel<
130
129
  id,
131
130
  currentColumnFilter.resolvedValue,
132
131
  (filterMeta) => {
133
- !row.columnFiltersMeta
134
- ? (row.columnFiltersMeta = {})
135
- : (row.columnFiltersMeta[id] = filterMeta)
132
+ if (!row.columnFiltersMeta) {
133
+ row.columnFiltersMeta = makeObjectMap()
134
+ }
135
+ row.columnFiltersMeta[id] = filterMeta
136
136
  },
137
137
  )
138
138
  }
@@ -149,9 +149,10 @@ function _createFilteredRowModel<
149
149
  id,
150
150
  currentGlobalFilter.resolvedValue,
151
151
  (filterMeta) => {
152
- !row.columnFiltersMeta
153
- ? (row.columnFiltersMeta = {})
154
- : (row.columnFiltersMeta[id] = filterMeta)
152
+ if (!row.columnFiltersMeta) {
153
+ row.columnFiltersMeta = makeObjectMap()
154
+ }
155
+ row.columnFiltersMeta[id] = filterMeta
155
156
  },
156
157
  )
157
158
  ) {
@@ -1,4 +1,5 @@
1
1
  import { constructRow } from '../../core/rows/constructRow'
2
+ import { makeObjectMap } from '../../utils'
2
3
  import type { Row_ColumnFiltering } from './columnFilteringFeature.types'
3
4
  import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
4
5
  import type { Row } from '../../types/Row'
@@ -37,7 +38,7 @@ function filterRowModelFromLeafs<
37
38
  table: Table_Internal<TFeatures, TData>,
38
39
  ): RowModel<TFeatures, TData> {
39
40
  const newFilteredFlatRows: Array<Row<TFeatures, TData>> = []
40
- const newFilteredRowsById: Record<string, Row<TFeatures, TData>> = {}
41
+ const newFilteredRowsById = makeObjectMap<Row<TFeatures, TData>>()
41
42
  const maxDepth = table.options.maxLeafRowFilterDepth ?? 100
42
43
 
43
44
  const recurseFilterRows = (
@@ -109,7 +110,7 @@ function filterRowModelFromRoot<
109
110
  table: Table_Internal<TFeatures, TData>,
110
111
  ): RowModel<TFeatures, TData> {
111
112
  const newFilteredFlatRows: Array<Row<TFeatures, TData>> = []
112
- const newFilteredRowsById: Record<string, Row<TFeatures, TData>> = {}
113
+ const newFilteredRowsById = makeObjectMap<Row<TFeatures, TData>>()
113
114
  const maxDepth = table.options.maxLeafRowFilterDepth ?? 100
114
115
 
115
116
  // Filters top level and nested rows
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  assignPrototypeAPIs,
3
3
  assignTableAPIs,
4
+ makeObjectMap,
4
5
  makeStateUpdater,
5
6
  } from '../../utils'
6
7
  import {
@@ -20,140 +21,96 @@ import {
20
21
  table_resetGrouping,
21
22
  table_setGrouping,
22
23
  } 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
- }
24
+ import type { TableFeature } from '../../types/TableFeatures'
53
25
 
54
26
  /**
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.
27
+ * Feature that adds column grouping state, aggregation defaults, and grouped row APIs.
58
28
  */
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
- },
29
+ export const columnGroupingFeature: TableFeature = {
30
+ getInitialState: (initialState) => {
31
+ return {
32
+ grouping: getDefaultGroupingState(),
33
+ ...initialState,
34
+ }
35
+ },
70
36
 
71
- getDefaultColumnDef: () => {
72
- return {
73
- aggregatedCell: ({ getValue }: any) => getValue()?.toString?.() ?? null,
74
- aggregationFn: 'auto',
75
- }
76
- },
37
+ getDefaultColumnDef: () => {
38
+ return {
39
+ aggregatedCell: ({ getValue }: any) => getValue()?.toString?.() ?? null,
40
+ aggregationFn: 'auto',
41
+ }
42
+ },
77
43
 
78
- getDefaultTableOptions: (table) => {
79
- return {
80
- onGroupingChange: makeStateUpdater('grouping', table),
81
- groupedColumnMode: 'reorder',
82
- }
83
- },
44
+ getDefaultTableOptions: (table) => {
45
+ return {
46
+ onGroupingChange: makeStateUpdater('grouping', table),
47
+ groupedColumnMode: 'reorder',
48
+ }
49
+ },
84
50
 
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
- },
51
+ assignCellPrototype: (prototype, table) => {
52
+ assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
53
+ cell_getIsGrouped: {
54
+ fn: (cell) => cell_getIsGrouped(cell),
55
+ },
56
+ cell_getIsPlaceholder: {
57
+ fn: (cell) => cell_getIsPlaceholder(cell),
58
+ },
59
+ cell_getIsAggregated: {
60
+ fn: (cell) => cell_getIsAggregated(cell),
61
+ },
62
+ })
63
+ },
98
64
 
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
- },
65
+ assignColumnPrototype: (prototype, table) => {
66
+ assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
67
+ column_toggleGrouping: {
68
+ fn: (column) => column_toggleGrouping(column),
69
+ },
70
+ column_getCanGroup: {
71
+ fn: (column) => column_getCanGroup(column),
72
+ },
73
+ column_getIsGrouped: {
74
+ fn: (column) => column_getIsGrouped(column),
75
+ },
76
+ column_getGroupedIndex: {
77
+ fn: (column) => column_getGroupedIndex(column),
78
+ },
79
+ column_getToggleGroupingHandler: {
80
+ fn: (column) => column_getToggleGroupingHandler(column),
81
+ },
82
+ column_getAutoAggregationFn: {
83
+ fn: (column) => column_getAutoAggregationFn(column),
84
+ },
85
+ column_getAggregationFn: {
86
+ fn: (column) => column_getAggregationFn(column),
87
+ },
88
+ })
89
+ },
124
90
 
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
- },
91
+ assignRowPrototype: (prototype, table) => {
92
+ assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
93
+ row_getIsGrouped: {
94
+ fn: (row) => row_getIsGrouped(row),
95
+ },
96
+ row_getGroupingValue: {
97
+ fn: (row, columnId) => row_getGroupingValue(row, columnId),
98
+ },
99
+ })
100
+ },
135
101
 
136
- initRowInstanceData: (row) => {
137
- ;(row as any)._groupingValuesCache = {}
138
- },
102
+ initRowInstanceData: (row) => {
103
+ ;(row as any)._groupingValuesCache = makeObjectMap()
104
+ },
139
105
 
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
- }
106
+ constructTableAPIs: (table) => {
107
+ assignTableAPIs('columnGroupingFeature', table, {
108
+ table_setGrouping: {
109
+ fn: (updater) => table_setGrouping(table, updater),
110
+ },
111
+ table_resetGrouping: {
112
+ fn: (defaultState) => table_resetGrouping(table, defaultState),
113
+ },
114
+ })
115
+ },
151
116
  }
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'
@@ -19,10 +18,10 @@ export interface TableState_ColumnGrouping {
19
18
  }
20
19
 
21
20
  export interface RowModelFns_ColumnGrouping<
22
- TFeatures extends TableFeatures,
23
- TData extends RowData,
21
+ in out TFeatures extends TableFeatures,
22
+ in out 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,18 +40,34 @@ 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<
54
- TFeatures extends TableFeatures,
55
- TData extends RowData,
69
+ in out TFeatures extends TableFeatures,
70
+ in out TData extends RowData,
56
71
  TValue extends CellData = CellData,
57
72
  > {
58
73
  /**
@@ -78,8 +93,8 @@ export interface ColumnDef_ColumnGrouping<
78
93
  }
79
94
 
80
95
  export interface Column_ColumnGrouping<
81
- TFeatures extends TableFeatures,
82
- TData extends RowData,
96
+ in out TFeatures extends TableFeatures,
97
+ in out TData extends RowData,
83
98
  > {
84
99
  /**
85
100
  * Returns the aggregation function for the column.
@@ -175,8 +190,8 @@ export interface TableOptions_ColumnGrouping {
175
190
  export type GroupingColumnMode = false | 'reorder' | 'remove'
176
191
 
177
192
  export interface Table_ColumnGrouping<
178
- TFeatures extends TableFeatures,
179
- TData extends RowData,
193
+ in out TFeatures extends TableFeatures,
194
+ in out TData extends RowData,
180
195
  > {
181
196
  /**
182
197
  * Resets `grouping` to `initialState.grouping`.
@@ -191,8 +206,8 @@ export interface Table_ColumnGrouping<
191
206
  }
192
207
 
193
208
  export interface Table_RowModels_Grouped<
194
- TFeatures extends TableFeatures,
195
- TData extends RowData,
209
+ in out TFeatures extends TableFeatures,
210
+ in out TData extends RowData,
196
211
  > {
197
212
  /**
198
213
  * Resolves the row model after grouping and aggregation have been applied.
@@ -204,23 +219,9 @@ 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
- TFeatures extends TableFeatures,
223
- TData extends RowData,
223
+ in out TFeatures extends TableFeatures,
224
+ in out TData extends RowData,
224
225
  > {
225
226
  groupedRowModel: () => RowModel<TFeatures, TData>
226
227
  }
@@ -1,4 +1,4 @@
1
- import { cloneState, isFunction } from '../../utils'
1
+ import { cloneState, hasOwn, isFunction } from '../../utils'
2
2
  import type { Column_Internal } from '../../types/Column'
3
3
  import type { CellData, RowData, Updater } from '../../types/type-utils'
4
4
  import type { TableFeatures } from '../../types/TableFeatures'
@@ -268,7 +268,7 @@ export function row_getGroupingValue<
268
268
  TFeatures extends TableFeatures,
269
269
  TData extends RowData,
270
270
  >(row: Row<TFeatures, TData> & Partial<Row_ColumnGrouping>, columnId: string) {
271
- if (row._groupingValuesCache?.hasOwnProperty(columnId)) {
271
+ if (row._groupingValuesCache && hasOwn(row._groupingValuesCache, columnId)) {
272
272
  return row._groupingValuesCache[columnId]
273
273
  }
274
274