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

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 +28 -21
  172. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +28 -21
  173. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +4 -4
  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 +5 -5
  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 +42 -34
  470. package/src/features/column-grouping/columnGroupingFeature.utils.ts +4 -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,9 @@
1
- import { cloneState } from '../../utils'
1
+ import {
2
+ callMemoOrStaticFn,
3
+ cloneState,
4
+ hasOwn,
5
+ makeObjectMap,
6
+ } from '../../utils'
2
7
  import type { RowData, Updater } from '../../types/type-utils'
3
8
  import type { TableFeatures } from '../../types/TableFeatures'
4
9
  import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
@@ -20,7 +25,7 @@ import type { RowSelectionState } from './rowSelectionFeature.types'
20
25
  * ```
21
26
  */
22
27
  export function getDefaultRowSelectionState(): RowSelectionState {
23
- return {}
28
+ return makeObjectMap()
24
29
  }
25
30
 
26
31
  /**
@@ -62,7 +67,12 @@ export function table_resetRowSelection<
62
67
  >(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
63
68
  table_setRowSelection(
64
69
  table,
65
- defaultState ? {} : cloneState(table.initialState.rowSelection ?? {}),
70
+ defaultState
71
+ ? makeObjectMap()
72
+ : Object.assign(
73
+ makeObjectMap<true>(),
74
+ cloneState(table.initialState.rowSelection ?? {}),
75
+ ),
66
76
  )
67
77
  }
68
78
 
@@ -82,23 +92,36 @@ export function table_resetRowSelection<
82
92
  export function table_toggleAllRowsSelected<
83
93
  TFeatures extends TableFeatures,
84
94
  TData extends RowData,
85
- >(table: Table_Internal<TFeatures, TData>, value?: boolean) {
95
+ >(
96
+ table: Table_Internal<TFeatures, TData>,
97
+ value?: boolean,
98
+ opts?: { deselectAll?: boolean },
99
+ ) {
86
100
  table_setRowSelection(table, (old) => {
87
101
  value =
88
- typeof value !== 'undefined' ? value : !table_getIsAllRowsSelected(table)
89
-
90
- const rowSelection = { ...old }
102
+ typeof value !== 'undefined'
103
+ ? value
104
+ : !callMemoOrStaticFn(
105
+ table,
106
+ 'getIsAllRowsSelected',
107
+ table_getIsAllRowsSelected,
108
+ )
109
+
110
+ if (opts?.deselectAll && !value) {
111
+ // deselectAll opt: clear the whole selection map instead of deleting ids one-by-one
112
+ return makeObjectMap<true>()
113
+ }
91
114
 
115
+ const rowSelection = Object.assign(makeObjectMap<true>(), old)
92
116
  const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows
93
117
 
94
118
  // We don't use `mutateRowIsSelected` here for performance reasons.
95
119
  // All of the rows are flat already, so it wouldn't be worth it
96
120
  if (value) {
97
121
  preGroupedFlatRows.forEach((row) => {
98
- if (!row_getCanSelect(row)) {
99
- return
122
+ if (row_getCanSelect(row)) {
123
+ rowSelection[row.id] = true
100
124
  }
101
- rowSelection[row.id] = true
102
125
  })
103
126
  } else {
104
127
  preGroupedFlatRows.forEach((row) => {
@@ -124,14 +147,30 @@ export function table_toggleAllRowsSelected<
124
147
  export function table_toggleAllPageRowsSelected<
125
148
  TFeatures extends TableFeatures,
126
149
  TData extends RowData,
127
- >(table: Table_Internal<TFeatures, TData>, value?: boolean) {
150
+ >(
151
+ table: Table_Internal<TFeatures, TData>,
152
+ value?: boolean,
153
+ opts?: { deselectAll?: boolean },
154
+ ) {
128
155
  table_setRowSelection(table, (old) => {
129
156
  const resolvedValue =
130
157
  typeof value !== 'undefined'
131
158
  ? value
132
- : !table_getIsAllPageRowsSelected(table)
159
+ : !callMemoOrStaticFn(
160
+ table,
161
+ 'getIsAllPageRowsSelected',
162
+ table_getIsAllPageRowsSelected,
163
+ )
164
+
165
+ if (opts?.deselectAll && !resolvedValue) {
166
+ // deselectAll opt: clear the whole selection map instead of deleting ids one-by-one
167
+ return makeObjectMap<true>()
168
+ }
133
169
 
134
- const rowSelection: RowSelectionState = { ...old }
170
+ const rowSelection: RowSelectionState = Object.assign(
171
+ makeObjectMap<true>(),
172
+ old,
173
+ )
135
174
 
136
175
  table.getRowModel().rows.forEach((row) => {
137
176
  mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table)
@@ -176,15 +215,21 @@ export function table_getSelectedRowModel<
176
215
  >(table: Table_Internal<TFeatures, TData>) {
177
216
  const rowModel = table.getCoreRowModel()
178
217
 
179
- if (!Object.keys(table.atoms.rowSelection?.get() ?? {}).length) {
218
+ if (
219
+ !callMemoOrStaticFn(
220
+ table,
221
+ 'getIsSomeRowsSelected',
222
+ table_getIsSomeRowsSelected,
223
+ )
224
+ ) {
180
225
  return {
181
226
  rows: [],
182
227
  flatRows: [],
183
- rowsById: {},
228
+ rowsById: makeObjectMap(),
184
229
  }
185
230
  }
186
231
 
187
- return selectRowsFn(rowModel)
232
+ return selectRowsFn(rowModel, table)
188
233
  }
189
234
 
190
235
  /**
@@ -204,15 +249,21 @@ export function table_getFilteredSelectedRowModel<
204
249
  >(table: Table_Internal<TFeatures, TData>) {
205
250
  const rowModel = table.getCoreRowModel()
206
251
 
207
- if (!Object.keys(table.atoms.rowSelection?.get() ?? {}).length) {
252
+ if (
253
+ !callMemoOrStaticFn(
254
+ table,
255
+ 'getIsSomeRowsSelected',
256
+ table_getIsSomeRowsSelected,
257
+ )
258
+ ) {
208
259
  return {
209
260
  rows: [],
210
261
  flatRows: [],
211
- rowsById: {},
262
+ rowsById: makeObjectMap(),
212
263
  }
213
264
  }
214
265
 
215
- return selectRowsFn(rowModel)
266
+ return selectRowsFn(rowModel, table)
216
267
  }
217
268
 
218
269
  /**
@@ -232,15 +283,36 @@ export function table_getGroupedSelectedRowModel<
232
283
  >(table: Table_Internal<TFeatures, TData>) {
233
284
  const rowModel = table.getCoreRowModel()
234
285
 
235
- if (!Object.keys(table.atoms.rowSelection?.get() ?? {}).length) {
286
+ if (
287
+ !callMemoOrStaticFn(
288
+ table,
289
+ 'getIsSomeRowsSelected',
290
+ table_getIsSomeRowsSelected,
291
+ )
292
+ ) {
236
293
  return {
237
294
  rows: [],
238
295
  flatRows: [],
239
- rowsById: {},
296
+ rowsById: makeObjectMap(),
240
297
  }
241
298
  }
242
299
 
243
- return selectRowsFn(rowModel)
300
+ return selectRowsFn(rowModel, table)
301
+ }
302
+
303
+ /**
304
+ * Returns the ids of all selected rows.
305
+ *
306
+ * @example
307
+ * ```ts
308
+ * const selectedRowIds = table_getSelectedRowIds(table)
309
+ * ```
310
+ */
311
+ export function table_getSelectedRowIds<
312
+ TFeatures extends TableFeatures,
313
+ TData extends RowData,
314
+ >(table: Table_Internal<TFeatures, TData>): Array<string> {
315
+ return Object.keys(table.atoms.rowSelection?.get() ?? {})
244
316
  }
245
317
 
246
318
  /**
@@ -259,7 +331,7 @@ export function table_getIsAllRowsSelected<
259
331
  TData extends RowData,
260
332
  >(table: Table_Internal<TFeatures, TData>) {
261
333
  const preGroupedFlatRows = table.getFilteredRowModel().flatRows
262
- const rowSelection: RowSelectionState = table.atoms.rowSelection?.get() ?? {}
334
+ const rowSelection = table.atoms.rowSelection?.get() ?? {}
263
335
 
264
336
  let isAllRowsSelected = Boolean(
265
337
  preGroupedFlatRows.length && Object.keys(rowSelection).length,
@@ -268,7 +340,7 @@ export function table_getIsAllRowsSelected<
268
340
  if (isAllRowsSelected) {
269
341
  if (
270
342
  preGroupedFlatRows.some(
271
- (row) => row_getCanSelect(row) && !rowSelection[row.id],
343
+ (row) => row_getCanSelect(row) && !isRowSelected(row, rowSelection),
272
344
  )
273
345
  ) {
274
346
  isAllRowsSelected = false
@@ -295,13 +367,13 @@ export function table_getIsAllPageRowsSelected<
295
367
  const paginationFlatRows = table
296
368
  .getPaginatedRowModel()
297
369
  .flatRows.filter((row) => row_getCanSelect(row))
298
- const rowSelection: RowSelectionState = table.atoms.rowSelection?.get() ?? {}
370
+ const rowSelection = table.atoms.rowSelection?.get() ?? {}
299
371
 
300
372
  let isAllPageRowsSelected = !!paginationFlatRows.length
301
373
 
302
374
  if (
303
375
  isAllPageRowsSelected &&
304
- paginationFlatRows.some((row) => !rowSelection[row.id])
376
+ paginationFlatRows.some((row) => !isRowSelected(row, rowSelection))
305
377
  ) {
306
378
  isAllPageRowsSelected = false
307
379
  }
@@ -312,8 +384,7 @@ export function table_getIsAllPageRowsSelected<
312
384
  /**
313
385
  * Checks whether selection is partially applied across filtered rows.
314
386
  *
315
- * The result is true when at least one row id is selected but fewer ids are
316
- * selected than the current filtered flat row count.
387
+ * The result is true when at least one row id is selected
317
388
  *
318
389
  * @example
319
390
  * ```ts
@@ -324,21 +395,15 @@ export function table_getIsSomeRowsSelected<
324
395
  TFeatures extends TableFeatures,
325
396
  TData extends RowData,
326
397
  >(table: Table_Internal<TFeatures, TData>) {
327
- const totalSelected = Object.keys(
328
- table.atoms.rowSelection?.get() ?? {},
329
- ).length
330
398
  return (
331
- totalSelected > 0 &&
332
- totalSelected < table.getFilteredRowModel().flatRows.length
399
+ callMemoOrStaticFn(table, 'getSelectedRowIds', table_getSelectedRowIds)
400
+ .length > 0
333
401
  )
334
402
  }
335
403
 
336
404
  /**
337
405
  * Checks whether the current page has a partial selection.
338
406
  *
339
- * This is false when all selectable page rows are selected. Otherwise it is true
340
- * if any selectable page row or descendant is selected.
341
- *
342
407
  * @example
343
408
  * ```ts
344
409
  * const somePageRowsSelected = table_getIsSomePageRowsSelected(table)
@@ -348,12 +413,10 @@ export function table_getIsSomePageRowsSelected<
348
413
  TFeatures extends TableFeatures,
349
414
  TData extends RowData,
350
415
  >(table: Table_Internal<TFeatures, TData>) {
351
- const paginationFlatRows = table.getPaginatedRowModel().flatRows
352
- return table_getIsAllPageRowsSelected(table)
353
- ? false
354
- : paginationFlatRows
355
- .filter((row) => row_getCanSelect(row))
356
- .some((row) => row_getIsSelected(row) || row_getIsSomeSelected(row))
416
+ return table
417
+ .getPaginatedRowModel()
418
+ .flatRows.filter((row) => row_getCanSelect(row))
419
+ .some((row) => row_getIsSelected(row) || row_getIsSomeSelected(row))
357
420
  }
358
421
 
359
422
  /**
@@ -413,6 +476,10 @@ export function table_getToggleAllPageRowsSelectedHandler<
413
476
  * @example
414
477
  * ```ts
415
478
  * row_toggleSelected(row)
479
+ * row_toggleSelected(row, true)
480
+ * row_toggleSelected(row, false)
481
+ * row_toggleSelected(row, true, { selectChildren: false })
482
+ * row_toggleSelected(row, false, { selectChildren: false })
416
483
  * ```
417
484
  */
418
485
  export function row_toggleSelected<
@@ -434,17 +501,17 @@ export function row_toggleSelected<
434
501
  return old
435
502
  }
436
503
 
437
- const selectedRowIds = { ...old }
504
+ const rowSelection = Object.assign(makeObjectMap<true>(), old)
438
505
 
439
506
  mutateRowIsSelected(
440
- selectedRowIds,
507
+ rowSelection,
441
508
  row.id,
442
509
  value,
443
510
  opts?.selectChildren ?? true,
444
511
  row.table,
445
512
  )
446
513
 
447
- return selectedRowIds
514
+ return rowSelection
448
515
  })
449
516
  }
450
517
 
@@ -462,7 +529,8 @@ export function row_getIsSelected<
462
529
  TFeatures extends TableFeatures,
463
530
  TData extends RowData,
464
531
  >(row: Row<TFeatures, TData>) {
465
- return isRowSelected(row)
532
+ const rowSelection = row.table.atoms.rowSelection?.get() ?? {}
533
+ return isRowSelected(row, rowSelection)
466
534
  }
467
535
 
468
536
  /**
@@ -598,28 +666,28 @@ const mutateRowIsSelected = <
598
666
  TFeatures extends TableFeatures,
599
667
  TData extends RowData,
600
668
  >(
601
- selectedRowIds: Record<string, boolean | undefined>,
669
+ rowSelection: RowSelectionState,
602
670
  rowId: string,
603
671
  value: boolean,
604
672
  includeChildren: boolean,
605
673
  table: Table_Internal<TFeatures, TData>,
606
- ) => {
674
+ ): void => {
607
675
  const row = table.getRow(rowId, true)
608
676
 
609
677
  if (value) {
610
678
  if (!row_getCanMultiSelect(row)) {
611
- Object.keys(selectedRowIds).forEach((key) => delete selectedRowIds[key])
679
+ Object.keys(rowSelection).forEach((key) => delete rowSelection[key])
612
680
  }
613
681
  if (row_getCanSelect(row)) {
614
- selectedRowIds[rowId] = true
682
+ rowSelection[rowId] = true
615
683
  }
616
684
  } else {
617
- delete selectedRowIds[rowId]
685
+ delete rowSelection[rowId]
618
686
  }
619
687
 
620
688
  if (includeChildren && row.subRows.length && row_getCanSelectSubRows(row)) {
621
689
  row.subRows.forEach((r) =>
622
- mutateRowIsSelected(selectedRowIds, r.id, value, includeChildren, table),
690
+ mutateRowIsSelected(rowSelection, r.id, value, includeChildren, table),
623
691
  )
624
692
  }
625
693
  }
@@ -638,10 +706,13 @@ const mutateRowIsSelected = <
638
706
  export function selectRowsFn<
639
707
  TFeatures extends TableFeatures,
640
708
  TData extends RowData,
641
- >(rowModel: RowModel<TFeatures, TData>): RowModel<TFeatures, TData> {
709
+ >(
710
+ rowModel: RowModel<TFeatures, TData>,
711
+ table: Table_Internal<TFeatures, TData>,
712
+ ): RowModel<TFeatures, TData> {
642
713
  const newSelectedFlatRows: Array<Row<TFeatures, TData>> = []
643
- const newSelectedRowsById: Record<string, Row<TFeatures, TData>> = {}
644
-
714
+ const newSelectedRowsById = makeObjectMap<Row<TFeatures, TData>>()
715
+ const rowSelection = table.atoms.rowSelection?.get() ?? {}
645
716
  // Filters top level and nested rows.
646
717
  const recurseRows = (
647
718
  rows: Array<Row<TFeatures, TData>>,
@@ -649,8 +720,8 @@ export function selectRowsFn<
649
720
  ): Array<Row<TFeatures, TData>> => {
650
721
  const result: Array<Row<TFeatures, TData>> = []
651
722
  for (let i = 0; i < rows.length; i++) {
652
- let row = rows[i]!
653
- const isSelected = isRowSelected(row)
723
+ const row = rows[i]!
724
+ const isSelected = isRowSelected(row, rowSelection)
654
725
 
655
726
  if (isSelected) {
656
727
  newSelectedFlatRows.push(row)
@@ -658,13 +729,18 @@ export function selectRowsFn<
658
729
  }
659
730
 
660
731
  if (row.subRows.length) {
661
- row = {
662
- ...row,
663
- subRows: recurseRows(row.subRows, depth + 1),
732
+ // Always recurse — selected descendants of unselected parents must
733
+ // still be collected into flatRows/rowsById.
734
+ const newSubRows = recurseRows(row.subRows, depth + 1)
735
+
736
+ if (isSelected) {
737
+ // Preserve prototype chain so methods like getValue() remain accessible
738
+ const cloned = Object.create(Object.getPrototypeOf(row))
739
+ Object.assign(cloned, row)
740
+ cloned.subRows = newSubRows
741
+ result.push(cloned)
664
742
  }
665
- }
666
-
667
- if (isSelected) {
743
+ } else if (isSelected) {
668
744
  result.push(row)
669
745
  }
670
746
  }
@@ -689,8 +765,8 @@ export function selectRowsFn<
689
765
  export function isRowSelected<
690
766
  TFeatures extends TableFeatures,
691
767
  TData extends RowData,
692
- >(row: Row<TFeatures, TData>): boolean {
693
- return (row.table.atoms.rowSelection?.get() ?? {})[row.id] ?? false
768
+ >(row: Row<TFeatures, TData>, rowSelection: RowSelectionState): boolean {
769
+ return !!(hasOwn(rowSelection, row.id) && rowSelection[row.id])
694
770
  }
695
771
 
696
772
  /**
@@ -709,6 +785,8 @@ export function isSubRowSelected<
709
785
  >(row: Row<TFeatures, TData>): boolean | 'some' | 'all' {
710
786
  if (!row.subRows.length) return false
711
787
 
788
+ const rowSelection = row.table.atoms.rowSelection?.get() ?? {}
789
+
712
790
  let allChildrenSelected = true
713
791
  let someSelected = false
714
792
 
@@ -719,7 +797,7 @@ export function isSubRowSelected<
719
797
  }
720
798
 
721
799
  if (row_getCanSelect(subRow)) {
722
- if (isRowSelected(subRow)) {
800
+ if (isRowSelected(subRow, rowSelection)) {
723
801
  someSelected = true
724
802
  } else {
725
803
  allChildrenSelected = false
@@ -1,4 +1,4 @@
1
- import { tableMemo } from '../../utils'
1
+ import { makeObjectMap, tableMemo } from '../../utils'
2
2
  import { table_autoResetPageIndex } from '../row-pagination/rowPaginationFeature.utils'
3
3
  import { column_getCanSort, column_getSortFn } from './rowSortingFeature.utils'
4
4
  import type { Column_Internal } from '../../types/Column'
@@ -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,
@@ -57,14 +57,11 @@ function _createSortedRowModel<
57
57
  ),
58
58
  )
59
59
 
60
- const columnInfoById: Record<
61
- string,
62
- {
63
- sortUndefined?: false | -1 | 1 | 'first' | 'last'
64
- invertSorting?: boolean
65
- sortFn: SortFn<TFeatures, TData>
66
- }
67
- > = {}
60
+ const columnInfoById = makeObjectMap<{
61
+ sortUndefined?: false | -1 | 1 | 'first' | 'last'
62
+ invertSorting?: boolean
63
+ sortFn: SortFn<TFeatures, TData>
64
+ }>()
68
65
 
69
66
  availableSorting.forEach((sortEntry) => {
70
67
  const column: Column_Internal<TFeatures, TData> | undefined =