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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/dist/core/cells/constructCell.d.cts +1 -1
  2. package/dist/core/cells/constructCell.d.ts +1 -1
  3. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  4. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  5. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  6. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  7. package/dist/core/cells/coreCellsFeature.js +12 -20
  8. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  9. package/dist/core/cells/coreCellsFeature.types.d.cts +4 -4
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +4 -4
  11. package/dist/core/cells/coreCellsFeature.utils.d.cts +1 -1
  12. package/dist/core/cells/coreCellsFeature.utils.d.ts +1 -1
  13. package/dist/core/columns/constructColumn.d.cts +1 -1
  14. package/dist/core/columns/constructColumn.d.ts +1 -1
  15. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  16. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  17. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  18. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  19. package/dist/core/columns/coreColumnsFeature.js +60 -68
  20. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.types.d.cts +5 -5
  22. package/dist/core/columns/coreColumnsFeature.types.d.ts +5 -5
  23. package/dist/core/columns/coreColumnsFeature.utils.d.cts +1 -1
  24. package/dist/core/columns/coreColumnsFeature.utils.d.ts +1 -1
  25. package/dist/core/coreFeatures.cjs.map +1 -1
  26. package/dist/core/coreFeatures.d.cts +1 -1
  27. package/dist/core/coreFeatures.d.ts +1 -1
  28. package/dist/core/coreFeatures.js.map +1 -1
  29. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  30. package/dist/core/headers/buildHeaderGroups.d.cts +1 -1
  31. package/dist/core/headers/buildHeaderGroups.d.ts +1 -1
  32. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  33. package/dist/core/headers/constructHeader.d.cts +1 -1
  34. package/dist/core/headers/constructHeader.d.ts +1 -1
  35. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  36. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  37. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  38. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  39. package/dist/core/headers/coreHeadersFeature.js +45 -53
  40. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  41. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  42. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  43. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  44. package/dist/core/headers/coreHeadersFeature.utils.d.cts +1 -1
  45. package/dist/core/headers/coreHeadersFeature.utils.d.ts +1 -1
  46. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  47. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  48. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  49. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  50. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  51. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  52. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  53. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +5 -15
  54. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +5 -15
  55. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
  56. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  57. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +2 -2
  58. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +2 -2
  59. package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
  60. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  61. package/dist/core/row-models/createCoreRowModel.cjs +1 -2
  62. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  63. package/dist/core/row-models/createCoreRowModel.d.cts +2 -2
  64. package/dist/core/row-models/createCoreRowModel.d.ts +2 -2
  65. package/dist/core/row-models/createCoreRowModel.js +1 -2
  66. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  67. package/dist/core/rows/constructRow.d.cts +1 -1
  68. package/dist/core/rows/constructRow.d.ts +1 -1
  69. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  70. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  71. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  72. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  73. package/dist/core/rows/coreRowsFeature.js +28 -36
  74. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  75. package/dist/core/rows/coreRowsFeature.types.d.cts +5 -5
  76. package/dist/core/rows/coreRowsFeature.types.d.ts +5 -5
  77. package/dist/core/rows/coreRowsFeature.utils.d.cts +1 -1
  78. package/dist/core/rows/coreRowsFeature.utils.d.ts +1 -1
  79. package/dist/core/table/constructTable.cjs +21 -6
  80. package/dist/core/table/constructTable.cjs.map +1 -1
  81. package/dist/core/table/constructTable.d.cts +1 -1
  82. package/dist/core/table/constructTable.d.ts +1 -1
  83. package/dist/core/table/constructTable.js +21 -6
  84. package/dist/core/table/constructTable.js.map +1 -1
  85. package/dist/core/table/coreTablesFeature.cjs +7 -16
  86. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  87. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  88. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  89. package/dist/core/table/coreTablesFeature.js +8 -16
  90. package/dist/core/table/coreTablesFeature.js.map +1 -1
  91. package/dist/core/table/coreTablesFeature.types.d.cts +27 -15
  92. package/dist/core/table/coreTablesFeature.types.d.ts +27 -15
  93. package/dist/core/table/coreTablesFeature.utils.cjs +1 -2
  94. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  95. package/dist/core/table/coreTablesFeature.utils.d.cts +1 -1
  96. package/dist/core/table/coreTablesFeature.utils.d.ts +1 -1
  97. package/dist/core/table/coreTablesFeature.utils.js +1 -2
  98. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  99. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  100. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  101. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  102. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  103. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  104. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  105. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
  106. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
  107. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  108. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  109. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +1 -1
  110. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +1 -1
  111. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  112. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  113. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  114. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  115. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  116. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  117. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  118. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  119. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  120. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  121. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  122. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  123. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  124. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  125. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  126. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  127. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  128. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  129. package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
  130. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  131. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
  132. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
  133. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  134. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  135. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +2 -2
  136. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +2 -2
  137. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  138. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  139. package/dist/features/column-filtering/createFilteredRowModel.cjs +4 -2
  140. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  141. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  142. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  143. package/dist/features/column-filtering/createFilteredRowModel.js +4 -2
  144. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  145. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  146. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  147. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  148. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  149. package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
  150. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  151. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +23 -19
  152. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +23 -19
  153. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +1 -1
  154. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +1 -1
  155. package/dist/features/column-grouping/createGroupedRowModel.cjs +5 -2
  156. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  157. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  158. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  159. package/dist/features/column-grouping/createGroupedRowModel.js +5 -2
  160. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  161. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  162. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  163. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  164. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  165. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  166. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  167. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
  168. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
  169. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +1 -1
  170. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +1 -1
  171. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  172. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  173. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  174. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  175. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  176. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  177. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
  178. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
  179. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  180. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +13 -13
  181. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +13 -13
  182. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  183. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  184. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  185. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  186. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  187. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  188. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  189. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +1 -1
  190. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +1 -1
  191. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  192. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  193. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  194. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  195. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  196. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  197. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +4 -4
  198. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +4 -4
  199. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  200. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  201. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  202. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  203. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  204. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  205. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
  206. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
  207. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +1 -1
  208. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +1 -1
  209. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  210. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  211. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  212. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  213. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  214. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  215. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +3 -3
  216. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +3 -3
  217. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  218. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +7 -5
  219. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +7 -5
  220. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  221. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  222. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  223. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  224. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  225. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  226. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  227. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  228. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  229. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  230. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  231. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
  232. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
  233. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +1 -1
  234. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +1 -1
  235. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  236. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  237. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  238. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  239. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  240. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  241. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  242. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  243. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  244. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  245. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
  246. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
  247. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +1 -1
  248. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +1 -1
  249. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  250. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  251. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  252. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  253. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  254. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  255. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  256. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  257. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +1 -1
  258. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +1 -1
  259. package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
  260. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  261. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  262. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  263. package/dist/features/row-selection/rowSelectionFeature.js +66 -77
  264. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  265. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +2 -2
  266. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +2 -2
  267. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +10 -6
  268. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  269. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +1 -1
  270. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +1 -1
  271. package/dist/features/row-selection/rowSelectionFeature.utils.js +10 -6
  272. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  273. package/dist/features/row-sorting/createSortedRowModel.cjs +4 -2
  274. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  275. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  276. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  277. package/dist/features/row-sorting/createSortedRowModel.js +4 -2
  278. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  279. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  280. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  281. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  282. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  283. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  284. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  285. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +23 -20
  286. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +23 -20
  287. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  288. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  289. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +1 -1
  290. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +1 -1
  291. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  292. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  293. package/dist/fns/aggregationFns.cjs +18 -18
  294. package/dist/fns/aggregationFns.cjs.map +1 -1
  295. package/dist/fns/aggregationFns.d.cts +21 -19
  296. package/dist/fns/aggregationFns.d.ts +21 -19
  297. package/dist/fns/aggregationFns.js +18 -18
  298. package/dist/fns/aggregationFns.js.map +1 -1
  299. package/dist/fns/filterFns.cjs +51 -65
  300. package/dist/fns/filterFns.cjs.map +1 -1
  301. package/dist/fns/filterFns.d.cts +82 -28
  302. package/dist/fns/filterFns.d.ts +82 -28
  303. package/dist/fns/filterFns.js +51 -65
  304. package/dist/fns/filterFns.js.map +1 -1
  305. package/dist/fns/sortFns.cjs +18 -6
  306. package/dist/fns/sortFns.cjs.map +1 -1
  307. package/dist/fns/sortFns.d.cts +15 -13
  308. package/dist/fns/sortFns.d.ts +15 -13
  309. package/dist/fns/sortFns.js +18 -6
  310. package/dist/fns/sortFns.js.map +1 -1
  311. package/dist/helpers/metaHelper.cjs +30 -0
  312. package/dist/helpers/metaHelper.cjs.map +1 -0
  313. package/dist/helpers/metaHelper.d.cts +26 -0
  314. package/dist/helpers/metaHelper.d.ts +26 -0
  315. package/dist/helpers/metaHelper.js +29 -0
  316. package/dist/helpers/metaHelper.js.map +1 -0
  317. package/dist/helpers/tableFeatures.cjs +31 -3
  318. package/dist/helpers/tableFeatures.cjs.map +1 -1
  319. package/dist/helpers/tableFeatures.d.cts +33 -5
  320. package/dist/helpers/tableFeatures.d.ts +33 -5
  321. package/dist/helpers/tableFeatures.js +31 -3
  322. package/dist/helpers/tableFeatures.js.map +1 -1
  323. package/dist/index.cjs +2 -20
  324. package/dist/index.d.cts +44 -43
  325. package/dist/index.d.ts +44 -43
  326. package/dist/index.js +22 -21
  327. package/dist/store-reactivity-bindings.cjs +1 -1
  328. package/dist/store-reactivity-bindings.cjs.map +1 -1
  329. package/dist/store-reactivity-bindings.d.cts +1 -1
  330. package/dist/store-reactivity-bindings.d.ts +1 -1
  331. package/dist/store-reactivity-bindings.js +1 -1
  332. package/dist/store-reactivity-bindings.js.map +1 -1
  333. package/dist/types/Cell.d.cts +8 -10
  334. package/dist/types/Cell.d.ts +8 -10
  335. package/dist/types/Column.d.cts +19 -12
  336. package/dist/types/Column.d.ts +19 -12
  337. package/dist/types/ColumnDef.d.cts +30 -11
  338. package/dist/types/ColumnDef.d.ts +30 -11
  339. package/dist/types/Header.d.cts +10 -11
  340. package/dist/types/Header.d.ts +10 -11
  341. package/dist/types/HeaderGroup.d.cts +4 -9
  342. package/dist/types/HeaderGroup.d.ts +4 -9
  343. package/dist/types/Row.d.cts +15 -11
  344. package/dist/types/Row.d.ts +15 -11
  345. package/dist/types/RowModel.d.cts +19 -19
  346. package/dist/types/RowModel.d.ts +19 -19
  347. package/dist/types/RowModelFns.d.cts +9 -9
  348. package/dist/types/RowModelFns.d.ts +9 -9
  349. package/dist/types/Table.d.cts +52 -24
  350. package/dist/types/Table.d.ts +52 -24
  351. package/dist/types/TableFeatures.d.cts +178 -41
  352. package/dist/types/TableFeatures.d.ts +178 -41
  353. package/dist/types/TableOptions.d.cts +31 -10
  354. package/dist/types/TableOptions.d.ts +31 -10
  355. package/dist/types/TableState.d.cts +22 -13
  356. package/dist/types/TableState.d.ts +22 -13
  357. package/dist/utils.cjs.map +1 -1
  358. package/dist/utils.d.cts +8 -3
  359. package/dist/utils.d.ts +8 -3
  360. package/dist/utils.js.map +1 -1
  361. package/package.json +1 -1
  362. package/skills/column-definitions/SKILL.md +3 -6
  363. package/skills/column-layout/SKILL.md +0 -2
  364. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  365. package/skills/filtering/SKILL.md +60 -42
  366. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  367. package/skills/grouping/SKILL.md +49 -54
  368. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  369. package/skills/pagination/SKILL.md +22 -20
  370. package/skills/row-expanding/SKILL.md +33 -25
  371. package/skills/row-pinning/SKILL.md +11 -7
  372. package/skills/row-selection/SKILL.md +0 -3
  373. package/skills/setup/SKILL.md +55 -65
  374. package/skills/sorting/SKILL.md +21 -21
  375. package/skills/state-management/SKILL.md +40 -25
  376. package/src/core/cells/coreCellsFeature.ts +17 -39
  377. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  378. package/src/core/columns/coreColumnsFeature.ts +56 -83
  379. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  380. package/src/core/coreFeatures.ts +1 -1
  381. package/src/core/headers/buildHeaderGroups.ts +1 -1
  382. package/src/core/headers/coreHeadersFeature.ts +42 -64
  383. package/src/core/headers/coreHeadersFeature.types.ts +10 -10
  384. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  385. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  386. package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
  387. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  388. package/src/core/row-models/createCoreRowModel.ts +5 -4
  389. package/src/core/rows/coreRowsFeature.ts +45 -72
  390. package/src/core/rows/coreRowsFeature.types.ts +8 -8
  391. package/src/core/table/constructTable.ts +50 -13
  392. package/src/core/table/coreTablesFeature.ts +13 -35
  393. package/src/core/table/coreTablesFeature.types.ts +40 -17
  394. package/src/core/table/coreTablesFeature.utils.ts +10 -5
  395. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  396. package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
  397. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  398. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  399. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  400. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  401. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  402. package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
  403. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  404. package/src/features/column-filtering/createFilteredRowModel.ts +5 -7
  405. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  406. package/src/features/column-grouping/columnGroupingFeature.types.ts +32 -31
  407. package/src/features/column-grouping/createGroupedRowModel.ts +7 -11
  408. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  409. package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
  410. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  411. package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
  412. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  413. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  414. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  415. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  416. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  417. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  418. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  419. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  420. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  421. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  422. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
  423. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  424. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  425. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
  426. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  427. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  428. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  429. package/src/features/row-selection/rowSelectionFeature.types.ts +4 -4
  430. package/src/features/row-selection/rowSelectionFeature.utils.ts +12 -7
  431. package/src/features/row-sorting/createSortedRowModel.ts +6 -6
  432. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  433. package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
  434. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  435. package/src/fns/aggregationFns.ts +26 -42
  436. package/src/fns/filterFns.ts +231 -264
  437. package/src/fns/sortFns.ts +51 -29
  438. package/src/helpers/metaHelper.ts +24 -0
  439. package/src/helpers/tableFeatures.ts +36 -5
  440. package/src/index.ts +1 -0
  441. package/src/store-reactivity-bindings.ts +1 -1
  442. package/src/types/Cell.ts +10 -30
  443. package/src/types/Column.ts +21 -56
  444. package/src/types/ColumnDef.ts +48 -49
  445. package/src/types/Header.ts +10 -32
  446. package/src/types/HeaderGroup.ts +4 -15
  447. package/src/types/Row.ts +18 -39
  448. package/src/types/RowModel.ts +24 -114
  449. package/src/types/RowModelFns.ts +12 -31
  450. package/src/types/Table.ts +85 -80
  451. package/src/types/TableFeatures.ts +253 -108
  452. package/src/types/TableOptions.ts +70 -60
  453. package/src/types/TableState.ts +20 -73
  454. package/src/utils.ts +16 -6
@@ -42,8 +42,8 @@ export interface PaginationDefaultOptions {
42
42
  }
43
43
 
44
44
  export interface Table_RowPagination<
45
- TFeatures extends TableFeatures,
46
- TData extends RowData,
45
+ in out TFeatures extends TableFeatures,
46
+ in out TData extends RowData,
47
47
  > {
48
48
  _autoResetPageIndex: () => void
49
49
  /**
@@ -117,8 +117,8 @@ export interface Table_RowPagination<
117
117
  }
118
118
 
119
119
  export interface Table_RowModels_Paginated<
120
- TFeatures extends TableFeatures,
121
- TData extends RowData,
120
+ in out TFeatures extends TableFeatures,
121
+ in out TData extends RowData,
122
122
  > {
123
123
  /**
124
124
  * Resolves the row model after pagination has sliced the current page.
@@ -130,23 +130,9 @@ export interface Table_RowModels_Paginated<
130
130
  getPrePaginatedRowModel: () => RowModel<TFeatures, TData>
131
131
  }
132
132
 
133
- export interface CreateRowModel_Paginated<
134
- TFeatures extends TableFeatures,
135
- TData extends RowData,
136
- > {
137
- /**
138
- * Factory used to retrieve the paginated row model. If using server-side
139
- * pagination, this is not required. To use client-side pagination, pass
140
- * `createPaginatedRowModel()` or implement your own factory.
141
- */
142
- paginatedRowModel?: (
143
- table: Table<TFeatures, TData>,
144
- ) => () => RowModel<TFeatures, TData>
145
- }
146
-
147
133
  export interface CachedRowModel_Paginated<
148
- TFeatures extends TableFeatures,
149
- TData extends RowData,
134
+ in out TFeatures extends TableFeatures,
135
+ in out TData extends RowData,
150
136
  > {
151
137
  paginatedRowModel: () => RowModel<TFeatures, TData>
152
138
  }
@@ -16,114 +16,82 @@ import {
16
16
  table_resetRowPinning,
17
17
  table_setRowPinning,
18
18
  } from './rowPinningFeature.utils'
19
- import type { RowData } from '../../types/type-utils'
20
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
21
- // import type {
22
- // Row_RowPinning,
23
- // TableOptions_RowPinning,
24
- // TableState_RowPinning,
25
- // Table_RowPinning,
26
- // } from './rowPinningFeature.types'
27
-
28
- export interface RowPinningFeatureConstructors<
29
- TFeatures extends TableFeatures,
30
- TData extends RowData,
31
- > {
32
- // Row: Row_RowPinning
33
- // Table: Table_RowPinning<TFeatures, RowData>
34
- // TableOptions: TableOptions_RowPinning<TFeatures, RowData>
35
- // TableState: TableState_RowPinning
36
- }
19
+ import type { TableFeature } from '../../types/TableFeatures'
37
20
 
38
21
  /**
39
- * Creates the stock row pinning feature.
40
- *
41
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
22
+ * Feature that adds row pinning state and APIs for top, center, and bottom rows.
42
23
  */
43
- export function constructRowPinningFeature<
44
- TFeatures extends TableFeatures,
45
- TData extends RowData,
46
- >(): TableFeature<RowPinningFeatureConstructors<TFeatures, TData>> {
47
- return {
48
- getInitialState: (initialState) => {
49
- return {
50
- ...initialState,
51
- rowPinning: {
52
- ...getDefaultRowPinningState(),
53
- ...initialState.rowPinning,
54
- },
55
- }
56
- },
24
+ export const rowPinningFeature: TableFeature = {
25
+ getInitialState: (initialState) => {
26
+ return {
27
+ ...initialState,
28
+ rowPinning: {
29
+ ...getDefaultRowPinningState(),
30
+ ...initialState.rowPinning,
31
+ },
32
+ }
33
+ },
57
34
 
58
- getDefaultTableOptions: (table) => {
59
- return {
60
- onRowPinningChange: makeStateUpdater('rowPinning', table),
61
- }
62
- },
35
+ getDefaultTableOptions: (table) => {
36
+ return {
37
+ onRowPinningChange: makeStateUpdater('rowPinning', table),
38
+ }
39
+ },
63
40
 
64
- assignRowPrototype: (prototype, table) => {
65
- assignPrototypeAPIs('rowPinningFeature', prototype, table, {
66
- row_getCanPin: {
67
- fn: (row) => row_getCanPin(row),
68
- },
69
- row_getIsPinned: {
70
- fn: (row) => row_getIsPinned(row),
71
- },
72
- row_getPinnedIndex: {
73
- fn: (row) => row_getPinnedIndex(row),
74
- memoDeps: (row) => [
75
- row.table.getRowModel().rows,
76
- row.table.atoms.rowPinning?.get(),
77
- ],
78
- },
79
- row_pin: {
80
- fn: (row, position, includeLeafRows, includeParentRows) =>
81
- row_pin(row, position, includeLeafRows, includeParentRows),
82
- },
83
- })
84
- },
41
+ assignRowPrototype: (prototype, table) => {
42
+ assignPrototypeAPIs('rowPinningFeature', prototype, table, {
43
+ row_getCanPin: {
44
+ fn: (row) => row_getCanPin(row),
45
+ },
46
+ row_getIsPinned: {
47
+ fn: (row) => row_getIsPinned(row),
48
+ },
49
+ row_getPinnedIndex: {
50
+ fn: (row) => row_getPinnedIndex(row),
51
+ memoDeps: (row) => [
52
+ row.table.getRowModel().rows,
53
+ row.table.atoms.rowPinning?.get(),
54
+ ],
55
+ },
56
+ row_pin: {
57
+ fn: (row, position, includeLeafRows, includeParentRows) =>
58
+ row_pin(row, position, includeLeafRows, includeParentRows),
59
+ },
60
+ })
61
+ },
85
62
 
86
- constructTableAPIs: (table) => {
87
- assignTableAPIs('rowPinningFeature', table, {
88
- table_setRowPinning: {
89
- fn: (updater) => table_setRowPinning(table, updater),
90
- },
91
- table_resetRowPinning: {
92
- fn: (defaultState) => table_resetRowPinning(table, defaultState),
93
- },
94
- table_getIsSomeRowsPinned: {
95
- fn: (position) => table_getIsSomeRowsPinned(table, position),
96
- },
97
- table_getTopRows: {
98
- fn: () => table_getTopRows(table),
99
- memoDeps: () => [
100
- table.getRowModel().rows,
101
- table.atoms.rowPinning?.get()?.top,
102
- ],
103
- },
104
- table_getBottomRows: {
105
- fn: () => table_getBottomRows(table),
106
- memoDeps: () => [
107
- table.getRowModel().rows,
108
- table.atoms.rowPinning?.get()?.bottom,
109
- ],
110
- },
111
- table_getCenterRows: {
112
- fn: () => table_getCenterRows(table),
113
- memoDeps: () => [
114
- table.getRowModel().rows,
115
- table.atoms.rowPinning?.get(),
116
- ],
117
- },
118
- })
119
- },
120
- }
63
+ constructTableAPIs: (table) => {
64
+ assignTableAPIs('rowPinningFeature', table, {
65
+ table_setRowPinning: {
66
+ fn: (updater) => table_setRowPinning(table, updater),
67
+ },
68
+ table_resetRowPinning: {
69
+ fn: (defaultState) => table_resetRowPinning(table, defaultState),
70
+ },
71
+ table_getIsSomeRowsPinned: {
72
+ fn: (position) => table_getIsSomeRowsPinned(table, position),
73
+ },
74
+ table_getTopRows: {
75
+ fn: () => table_getTopRows(table),
76
+ memoDeps: () => [
77
+ table.getRowModel().rows,
78
+ table.atoms.rowPinning?.get()?.top,
79
+ ],
80
+ },
81
+ table_getBottomRows: {
82
+ fn: () => table_getBottomRows(table),
83
+ memoDeps: () => [
84
+ table.getRowModel().rows,
85
+ table.atoms.rowPinning?.get()?.bottom,
86
+ ],
87
+ },
88
+ table_getCenterRows: {
89
+ fn: () => table_getCenterRows(table),
90
+ memoDeps: () => [
91
+ table.getRowModel().rows,
92
+ table.atoms.rowPinning?.get(),
93
+ ],
94
+ },
95
+ })
96
+ },
121
97
  }
122
-
123
- /**
124
- * The stock row pinning feature.
125
- *
126
- * Register this feature to add row pinning state and APIs for deriving top,
127
- * center, and bottom row regions.
128
- */
129
- export const rowPinningFeature = constructRowPinningFeature()
@@ -14,8 +14,8 @@ export interface TableState_RowPinning {
14
14
  }
15
15
 
16
16
  export interface TableOptions_RowPinning<
17
- TFeatures extends TableFeatures,
18
- TData extends RowData,
17
+ in out TFeatures extends TableFeatures,
18
+ in out TData extends RowData,
19
19
  > {
20
20
  /**
21
21
  * Allows rows to be pinned to top or bottom regions.
@@ -63,8 +63,8 @@ export interface Row_RowPinning {
63
63
  }
64
64
 
65
65
  export interface Table_RowPinning<
66
- TFeatures extends TableFeatures,
67
- TData extends RowData,
66
+ in out TFeatures extends TableFeatures,
67
+ in out TData extends RowData,
68
68
  > {
69
69
  /**
70
70
  * Gets rows pinned to the bottom region.
@@ -28,145 +28,113 @@ import {
28
28
  table_toggleAllPageRowsSelected,
29
29
  table_toggleAllRowsSelected,
30
30
  } from './rowSelectionFeature.utils'
31
- import type { RowData } from '../../types/type-utils'
32
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
33
- // import type {
34
- // Row_RowSelection,
35
- // TableOptions_RowSelection,
36
- // TableState_RowSelection,
37
- // Table_RowSelection,
38
- // } from './rowSelectionFeature.types'
39
-
40
- export interface RowSelectionFeatureConstructors<
41
- TFeatures extends TableFeatures,
42
- TData extends RowData,
43
- > {
44
- // Row: Row_RowSelection
45
- // Table: Table_RowSelection<TFeatures, TData>
46
- // TableOptions: TableOptions_RowSelection<TFeatures, TData>
47
- // TableState: TableState_RowSelection
48
- }
31
+ import type { TableFeature } from '../../types/TableFeatures'
49
32
 
50
33
  /**
51
- * Creates the stock row selection feature.
52
- *
53
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
34
+ * Feature that adds row selection state and APIs for row and page selection.
54
35
  */
55
- export function constructRowSelectionFeature<
56
- TFeatures extends TableFeatures,
57
- TData extends RowData,
58
- >(): TableFeature<RowSelectionFeatureConstructors<TFeatures, TData>> {
59
- return {
60
- getInitialState: (initialState) => {
61
- return {
62
- rowSelection: getDefaultRowSelectionState(),
63
- ...initialState,
64
- }
65
- },
36
+ export const rowSelectionFeature: TableFeature = {
37
+ getInitialState: (initialState) => {
38
+ return {
39
+ rowSelection: getDefaultRowSelectionState(),
40
+ ...initialState,
41
+ }
42
+ },
66
43
 
67
- getDefaultTableOptions: (table) => {
68
- return {
69
- onRowSelectionChange: makeStateUpdater('rowSelection', table),
70
- enableRowSelection: true,
71
- enableMultiRowSelection: true,
72
- enableSubRowSelection: true,
73
- }
74
- },
44
+ getDefaultTableOptions: (table) => {
45
+ return {
46
+ onRowSelectionChange: makeStateUpdater('rowSelection', table),
47
+ enableRowSelection: true,
48
+ enableMultiRowSelection: true,
49
+ enableSubRowSelection: true,
50
+ }
51
+ },
75
52
 
76
- assignRowPrototype: (prototype, table) => {
77
- assignPrototypeAPIs('rowSelectionFeature', prototype, table, {
78
- row_toggleSelected: {
79
- fn: (row, value, opts) => row_toggleSelected(row, value, opts),
80
- },
81
- row_getIsSelected: {
82
- fn: (row) => row_getIsSelected(row),
83
- },
84
- row_getIsSomeSelected: {
85
- fn: (row) => row_getIsSomeSelected(row),
86
- },
87
- row_getIsAllSubRowsSelected: {
88
- fn: (row) => row_getIsAllSubRowsSelected(row),
89
- },
90
- row_getCanSelect: {
91
- fn: (row) => row_getCanSelect(row),
92
- },
93
- row_getCanSelectSubRows: {
94
- fn: (row) => row_getCanSelectSubRows(row),
95
- },
96
- row_getCanMultiSelect: {
97
- fn: (row) => row_getCanMultiSelect(row),
98
- },
99
- row_getToggleSelectedHandler: {
100
- fn: (row) => row_getToggleSelectedHandler(row),
101
- },
102
- })
103
- },
53
+ assignRowPrototype: (prototype, table) => {
54
+ assignPrototypeAPIs('rowSelectionFeature', prototype, table, {
55
+ row_toggleSelected: {
56
+ fn: (row, value, opts) => row_toggleSelected(row, value, opts),
57
+ },
58
+ row_getIsSelected: {
59
+ fn: (row) => row_getIsSelected(row),
60
+ },
61
+ row_getIsSomeSelected: {
62
+ fn: (row) => row_getIsSomeSelected(row),
63
+ },
64
+ row_getIsAllSubRowsSelected: {
65
+ fn: (row) => row_getIsAllSubRowsSelected(row),
66
+ },
67
+ row_getCanSelect: {
68
+ fn: (row) => row_getCanSelect(row),
69
+ },
70
+ row_getCanSelectSubRows: {
71
+ fn: (row) => row_getCanSelectSubRows(row),
72
+ },
73
+ row_getCanMultiSelect: {
74
+ fn: (row) => row_getCanMultiSelect(row),
75
+ },
76
+ row_getToggleSelectedHandler: {
77
+ fn: (row) => row_getToggleSelectedHandler(row),
78
+ },
79
+ })
80
+ },
104
81
 
105
- constructTableAPIs: (table) => {
106
- assignTableAPIs('rowSelectionFeature', table, {
107
- table_setRowSelection: {
108
- fn: (updater) => table_setRowSelection(table, updater),
109
- },
110
- table_resetRowSelection: {
111
- fn: (defaultState) => table_resetRowSelection(table, defaultState),
112
- },
113
- table_toggleAllRowsSelected: {
114
- fn: (value) => table_toggleAllRowsSelected(table, value),
115
- },
116
- table_toggleAllPageRowsSelected: {
117
- fn: (value) => table_toggleAllPageRowsSelected(table, value),
118
- },
119
- table_getPreSelectedRowModel: {
120
- fn: () => table_getPreSelectedRowModel(table),
121
- },
122
- table_getSelectedRowModel: {
123
- fn: () => table_getSelectedRowModel(table),
124
- memoDeps: () => [
125
- table.atoms.rowSelection?.get(),
126
- table.getCoreRowModel(),
127
- ],
128
- },
129
- table_getFilteredSelectedRowModel: {
130
- fn: () => table_getFilteredSelectedRowModel(table),
131
- memoDeps: () => [
132
- table.atoms.rowSelection?.get(),
133
- table.getFilteredRowModel(),
134
- ],
135
- },
136
- table_getGroupedSelectedRowModel: {
137
- fn: () => table_getGroupedSelectedRowModel(table),
138
- memoDeps: () => [
139
- table.atoms.rowSelection?.get(),
140
- table.getSortedRowModel(),
141
- ],
142
- },
143
- table_getIsAllRowsSelected: {
144
- fn: () => table_getIsAllRowsSelected(table),
145
- },
146
- table_getIsAllPageRowsSelected: {
147
- fn: () => table_getIsAllPageRowsSelected(table),
148
- },
149
- table_getIsSomeRowsSelected: {
150
- fn: () => table_getIsSomeRowsSelected(table),
151
- },
152
- table_getIsSomePageRowsSelected: {
153
- fn: () => table_getIsSomePageRowsSelected(table),
154
- },
155
- table_getToggleAllRowsSelectedHandler: {
156
- fn: () => table_getToggleAllRowsSelectedHandler(table),
157
- },
158
- table_getToggleAllPageRowsSelectedHandler: {
159
- fn: () => table_getToggleAllPageRowsSelectedHandler(table),
160
- },
161
- })
162
- },
163
- }
82
+ constructTableAPIs: (table) => {
83
+ assignTableAPIs('rowSelectionFeature', table, {
84
+ table_setRowSelection: {
85
+ fn: (updater) => table_setRowSelection(table, updater),
86
+ },
87
+ table_resetRowSelection: {
88
+ fn: (defaultState) => table_resetRowSelection(table, defaultState),
89
+ },
90
+ table_toggleAllRowsSelected: {
91
+ fn: (value) => table_toggleAllRowsSelected(table, value),
92
+ },
93
+ table_toggleAllPageRowsSelected: {
94
+ fn: (value) => table_toggleAllPageRowsSelected(table, value),
95
+ },
96
+ table_getPreSelectedRowModel: {
97
+ fn: () => table_getPreSelectedRowModel(table),
98
+ },
99
+ table_getSelectedRowModel: {
100
+ fn: () => table_getSelectedRowModel(table),
101
+ memoDeps: () => [
102
+ table.atoms.rowSelection?.get(),
103
+ table.getCoreRowModel(),
104
+ ],
105
+ },
106
+ table_getFilteredSelectedRowModel: {
107
+ fn: () => table_getFilteredSelectedRowModel(table),
108
+ memoDeps: () => [
109
+ table.atoms.rowSelection?.get(),
110
+ table.getFilteredRowModel(),
111
+ ],
112
+ },
113
+ table_getGroupedSelectedRowModel: {
114
+ fn: () => table_getGroupedSelectedRowModel(table),
115
+ memoDeps: () => [
116
+ table.atoms.rowSelection?.get(),
117
+ table.getSortedRowModel(),
118
+ ],
119
+ },
120
+ table_getIsAllRowsSelected: {
121
+ fn: () => table_getIsAllRowsSelected(table),
122
+ },
123
+ table_getIsAllPageRowsSelected: {
124
+ fn: () => table_getIsAllPageRowsSelected(table),
125
+ },
126
+ table_getIsSomeRowsSelected: {
127
+ fn: () => table_getIsSomeRowsSelected(table),
128
+ },
129
+ table_getIsSomePageRowsSelected: {
130
+ fn: () => table_getIsSomePageRowsSelected(table),
131
+ },
132
+ table_getToggleAllRowsSelectedHandler: {
133
+ fn: () => table_getToggleAllRowsSelectedHandler(table),
134
+ },
135
+ table_getToggleAllPageRowsSelectedHandler: {
136
+ fn: () => table_getToggleAllPageRowsSelectedHandler(table),
137
+ },
138
+ })
139
+ },
164
140
  }
165
-
166
- /**
167
- * The stock row selection feature.
168
- *
169
- * Register this feature to add row selection state, selected row-model helpers,
170
- * and table/row APIs for checkbox and bulk-selection UI.
171
- */
172
- export const rowSelectionFeature = constructRowSelectionFeature()
@@ -10,8 +10,8 @@ export interface TableState_RowSelection {
10
10
  }
11
11
 
12
12
  export interface TableOptions_RowSelection<
13
- TFeatures extends TableFeatures,
14
- TData extends RowData,
13
+ in out TFeatures extends TableFeatures,
14
+ in out TData extends RowData,
15
15
  > {
16
16
  /**
17
17
  * Allows rows to be selected alongside other rows.
@@ -87,8 +87,8 @@ export interface Row_RowSelection {
87
87
  }
88
88
 
89
89
  export interface Table_RowSelection<
90
- TFeatures extends TableFeatures,
91
- TData extends RowData,
90
+ in out TFeatures extends TableFeatures,
91
+ in out TData extends RowData,
92
92
  > {
93
93
  /**
94
94
  * Builds a selected-row model from rows after filtering.
@@ -649,7 +649,7 @@ export function selectRowsFn<
649
649
  ): Array<Row<TFeatures, TData>> => {
650
650
  const result: Array<Row<TFeatures, TData>> = []
651
651
  for (let i = 0; i < rows.length; i++) {
652
- let row = rows[i]!
652
+ const row = rows[i]!
653
653
  const isSelected = isRowSelected(row)
654
654
 
655
655
  if (isSelected) {
@@ -658,13 +658,18 @@ export function selectRowsFn<
658
658
  }
659
659
 
660
660
  if (row.subRows.length) {
661
- row = {
662
- ...row,
663
- subRows: recurseRows(row.subRows, depth + 1),
661
+ // Always recurse — selected descendants of unselected parents must
662
+ // still be collected into flatRows/rowsById.
663
+ const newSubRows = recurseRows(row.subRows, depth + 1)
664
+
665
+ if (isSelected) {
666
+ // Preserve prototype chain so methods like getValue() remain accessible
667
+ const cloned = Object.create(Object.getPrototypeOf(row))
668
+ Object.assign(cloned, row)
669
+ cloned.subRows = newSubRows
670
+ result.push(cloned)
664
671
  }
665
- }
666
-
667
- if (isSelected) {
672
+ } else if (isSelected) {
668
673
  result.push(row)
669
674
  }
670
675
  }
@@ -6,23 +6,23 @@ import type { TableFeatures } from '../../types/TableFeatures'
6
6
  import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
7
7
  import type { Table, Table_Internal } from '../../types/Table'
8
8
  import type { Row } from '../../types/Row'
9
- import type { SortFn, SortFns } from './rowSortingFeature.types'
9
+ import type { SortFn } from './rowSortingFeature.types'
10
10
  import type { RowData } from '../../types/type-utils'
11
11
 
12
12
  /**
13
13
  * Creates a memoized sorted row model factory.
14
14
  *
15
15
  * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.
16
+ *
17
+ * Register sorting functions with the `sortFns` slot on the `features` option:
18
+ * `tableFeatures({ rowSortingFeature, sortedRowModel: createSortedRowModel(), sortFns })`.
16
19
  */
17
20
  export function createSortedRowModel<
18
21
  TFeatures extends TableFeatures,
19
22
  TData extends RowData,
20
- >(
21
- sortFns: Record<keyof SortFns, SortFn<TFeatures, TData>>,
22
- ): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
23
+ >(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
23
24
  return (_table) => {
24
- const table: Table_Internal<TFeatures, TData> = _table
25
- if (!table._rowModelFns.sortFns) table._rowModelFns.sortFns = sortFns
25
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
26
26
  return tableMemo({
27
27
  feature: 'rowSortingFeature',
28
28
  table,