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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. package/dist/core/cells/constructCell.d.cts +3 -3
  2. package/dist/core/cells/constructCell.d.ts +3 -3
  3. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  4. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  5. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  6. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  7. package/dist/core/cells/coreCellsFeature.js +12 -20
  8. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  9. package/dist/core/cells/coreCellsFeature.types.d.cts +6 -6
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +6 -6
  11. package/dist/core/cells/coreCellsFeature.utils.d.cts +3 -3
  12. package/dist/core/cells/coreCellsFeature.utils.d.ts +3 -3
  13. package/dist/core/columns/constructColumn.cjs +5 -0
  14. package/dist/core/columns/constructColumn.cjs.map +1 -1
  15. package/dist/core/columns/constructColumn.d.cts +3 -3
  16. package/dist/core/columns/constructColumn.d.ts +3 -3
  17. package/dist/core/columns/constructColumn.js +5 -0
  18. package/dist/core/columns/constructColumn.js.map +1 -1
  19. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  20. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  22. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  23. package/dist/core/columns/coreColumnsFeature.js +60 -68
  24. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  25. package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -7
  26. package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -7
  27. package/dist/core/columns/coreColumnsFeature.utils.cjs +2 -2
  28. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  29. package/dist/core/columns/coreColumnsFeature.utils.d.cts +9 -9
  30. package/dist/core/columns/coreColumnsFeature.utils.d.ts +9 -9
  31. package/dist/core/columns/coreColumnsFeature.utils.js +3 -3
  32. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  33. package/dist/core/coreFeatures.cjs.map +1 -1
  34. package/dist/core/coreFeatures.d.cts +1 -1
  35. package/dist/core/coreFeatures.d.ts +1 -1
  36. package/dist/core/coreFeatures.js.map +1 -1
  37. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  38. package/dist/core/headers/buildHeaderGroups.d.cts +2 -2
  39. package/dist/core/headers/buildHeaderGroups.d.ts +2 -2
  40. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  41. package/dist/core/headers/constructHeader.d.cts +2 -2
  42. package/dist/core/headers/constructHeader.d.ts +2 -2
  43. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  44. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  45. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  46. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  47. package/dist/core/headers/coreHeadersFeature.js +45 -53
  48. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  49. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  50. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  51. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  52. package/dist/core/headers/coreHeadersFeature.utils.d.cts +6 -6
  53. package/dist/core/headers/coreHeadersFeature.utils.d.ts +6 -6
  54. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  55. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  56. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  57. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  58. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  59. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  60. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  61. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +6 -16
  62. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +6 -16
  63. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
  64. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  65. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +14 -14
  66. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +14 -14
  67. package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
  68. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  69. package/dist/core/row-models/createCoreRowModel.cjs +2 -3
  70. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  71. package/dist/core/row-models/createCoreRowModel.d.cts +1 -1
  72. package/dist/core/row-models/createCoreRowModel.d.ts +1 -1
  73. package/dist/core/row-models/createCoreRowModel.js +3 -4
  74. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  75. package/dist/core/rows/constructRow.cjs +3 -2
  76. package/dist/core/rows/constructRow.cjs.map +1 -1
  77. package/dist/core/rows/constructRow.d.cts +2 -2
  78. package/dist/core/rows/constructRow.d.ts +2 -2
  79. package/dist/core/rows/constructRow.js +4 -2
  80. package/dist/core/rows/constructRow.js.map +1 -1
  81. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  82. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  83. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  84. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  85. package/dist/core/rows/coreRowsFeature.js +28 -36
  86. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  87. package/dist/core/rows/coreRowsFeature.types.d.cts +6 -6
  88. package/dist/core/rows/coreRowsFeature.types.d.ts +6 -6
  89. package/dist/core/rows/coreRowsFeature.utils.cjs +3 -3
  90. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  91. package/dist/core/rows/coreRowsFeature.utils.d.cts +3 -3
  92. package/dist/core/rows/coreRowsFeature.utils.d.ts +3 -3
  93. package/dist/core/rows/coreRowsFeature.utils.js +4 -4
  94. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  95. package/dist/core/table/constructTable.cjs +21 -6
  96. package/dist/core/table/constructTable.cjs.map +1 -1
  97. package/dist/core/table/constructTable.d.cts +1 -1
  98. package/dist/core/table/constructTable.d.ts +1 -1
  99. package/dist/core/table/constructTable.js +21 -6
  100. package/dist/core/table/constructTable.js.map +1 -1
  101. package/dist/core/table/coreTablesFeature.cjs +7 -16
  102. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  103. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  104. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  105. package/dist/core/table/coreTablesFeature.js +8 -16
  106. package/dist/core/table/coreTablesFeature.js.map +1 -1
  107. package/dist/core/table/coreTablesFeature.types.d.cts +28 -16
  108. package/dist/core/table/coreTablesFeature.types.d.ts +28 -16
  109. package/dist/core/table/coreTablesFeature.utils.cjs +33 -12
  110. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  111. package/dist/core/table/coreTablesFeature.utils.d.cts +8 -6
  112. package/dist/core/table/coreTablesFeature.utils.d.ts +8 -6
  113. package/dist/core/table/coreTablesFeature.utils.js +33 -12
  114. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  115. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  116. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  117. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  118. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  119. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  120. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  121. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
  122. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
  123. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  124. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  125. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +8 -8
  126. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +8 -8
  127. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  128. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  129. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  130. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  131. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  132. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  133. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  134. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  135. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  136. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  137. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  138. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  139. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  140. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  141. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  142. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  143. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  144. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  145. package/dist/features/column-filtering/columnFilteringFeature.js +42 -54
  146. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  147. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
  148. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
  149. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  150. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  151. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +12 -12
  152. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +12 -12
  153. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  154. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  155. package/dist/features/column-filtering/createFilteredRowModel.cjs +12 -7
  156. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  157. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  158. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  159. package/dist/features/column-filtering/createFilteredRowModel.js +13 -8
  160. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  161. package/dist/features/column-filtering/filterRowsUtils.cjs +3 -2
  162. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
  163. package/dist/features/column-filtering/filterRowsUtils.js +3 -2
  164. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
  165. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  166. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  167. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  168. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  169. package/dist/features/column-grouping/columnGroupingFeature.js +59 -70
  170. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  171. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +23 -19
  172. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +23 -19
  173. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +3 -3
  174. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  175. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +11 -11
  176. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +11 -11
  177. package/dist/features/column-grouping/columnGroupingFeature.utils.js +4 -4
  178. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  179. package/dist/features/column-grouping/createGroupedRowModel.cjs +9 -7
  180. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  181. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  182. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  183. package/dist/features/column-grouping/createGroupedRowModel.js +10 -8
  184. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  185. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  186. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  187. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  188. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  189. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  190. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  191. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
  192. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
  193. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +9 -9
  194. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +9 -9
  195. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  196. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  197. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  198. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  199. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  200. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  201. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
  202. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
  203. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  204. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +31 -30
  205. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +31 -30
  206. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  207. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  208. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  209. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  210. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  211. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  212. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  213. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +1 -4
  214. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
  215. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +2 -5
  216. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  217. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +6 -6
  218. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +6 -6
  219. package/dist/features/column-resizing/columnResizingFeature.utils.js +3 -6
  220. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  221. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  222. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  223. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  224. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  225. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  226. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  227. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +11 -4
  228. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  229. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +12 -12
  230. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +12 -12
  231. package/dist/features/column-sizing/columnSizingFeature.utils.js +12 -5
  232. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  233. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  234. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  235. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  236. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  237. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  238. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  239. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
  240. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
  241. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +12 -9
  242. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  243. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +14 -14
  244. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +14 -14
  245. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +13 -10
  246. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  247. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  248. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  249. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  250. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  251. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  252. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  253. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +2 -2
  254. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +2 -2
  255. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  256. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +10 -8
  257. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -8
  258. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  259. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  260. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  261. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  262. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  263. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  264. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  265. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  266. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  267. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  268. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  269. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
  270. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
  271. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +21 -12
  272. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  273. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +10 -10
  274. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +10 -10
  275. package/dist/features/row-expanding/rowExpandingFeature.utils.js +22 -13
  276. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  277. package/dist/features/row-pagination/createPaginatedRowModel.cjs +1 -1
  278. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  279. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  280. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  281. package/dist/features/row-pagination/createPaginatedRowModel.js +1 -1
  282. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  283. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  284. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  285. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  286. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  287. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  288. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  289. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
  290. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
  291. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +17 -17
  292. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +17 -17
  293. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  294. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  295. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  296. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  297. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  298. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  299. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  300. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  301. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +2 -2
  302. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  303. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +7 -7
  304. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +7 -7
  305. package/dist/features/row-pinning/rowPinningFeature.utils.js +2 -2
  306. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  307. package/dist/features/row-selection/rowSelectionFeature.cjs +108 -77
  308. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  309. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  310. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  311. package/dist/features/row-selection/rowSelectionFeature.js +110 -78
  312. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  313. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +13 -5
  314. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +13 -5
  315. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +76 -60
  316. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  317. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +48 -23
  318. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +48 -23
  319. package/dist/features/row-selection/rowSelectionFeature.utils.js +77 -62
  320. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  321. package/dist/features/row-sorting/createSortedRowModel.cjs +5 -3
  322. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  323. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  324. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  325. package/dist/features/row-sorting/createSortedRowModel.js +6 -4
  326. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  327. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  328. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  329. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  330. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  331. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  332. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  333. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +24 -21
  334. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +24 -21
  335. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  336. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  337. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +16 -16
  338. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +16 -16
  339. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  340. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  341. package/dist/fns/aggregationFns.cjs +18 -18
  342. package/dist/fns/aggregationFns.cjs.map +1 -1
  343. package/dist/fns/aggregationFns.d.cts +21 -19
  344. package/dist/fns/aggregationFns.d.ts +21 -19
  345. package/dist/fns/aggregationFns.js +18 -18
  346. package/dist/fns/aggregationFns.js.map +1 -1
  347. package/dist/fns/filterFns.cjs +51 -65
  348. package/dist/fns/filterFns.cjs.map +1 -1
  349. package/dist/fns/filterFns.d.cts +82 -28
  350. package/dist/fns/filterFns.d.ts +82 -28
  351. package/dist/fns/filterFns.js +51 -65
  352. package/dist/fns/filterFns.js.map +1 -1
  353. package/dist/fns/sortFns.cjs +18 -6
  354. package/dist/fns/sortFns.cjs.map +1 -1
  355. package/dist/fns/sortFns.d.cts +15 -13
  356. package/dist/fns/sortFns.d.ts +15 -13
  357. package/dist/fns/sortFns.js +18 -6
  358. package/dist/fns/sortFns.js.map +1 -1
  359. package/dist/helpers/columnHelper.cjs.map +1 -1
  360. package/dist/helpers/columnHelper.d.cts +2 -2
  361. package/dist/helpers/columnHelper.d.ts +2 -2
  362. package/dist/helpers/columnHelper.js.map +1 -1
  363. package/dist/helpers/metaHelper.cjs +30 -0
  364. package/dist/helpers/metaHelper.cjs.map +1 -0
  365. package/dist/helpers/metaHelper.d.cts +26 -0
  366. package/dist/helpers/metaHelper.d.ts +26 -0
  367. package/dist/helpers/metaHelper.js +29 -0
  368. package/dist/helpers/metaHelper.js.map +1 -0
  369. package/dist/helpers/tableFeatures.cjs +31 -3
  370. package/dist/helpers/tableFeatures.cjs.map +1 -1
  371. package/dist/helpers/tableFeatures.d.cts +33 -5
  372. package/dist/helpers/tableFeatures.d.ts +33 -5
  373. package/dist/helpers/tableFeatures.js +31 -3
  374. package/dist/helpers/tableFeatures.js.map +1 -1
  375. package/dist/index.cjs +4 -20
  376. package/dist/index.d.cts +50 -49
  377. package/dist/index.d.ts +50 -49
  378. package/dist/index.js +23 -22
  379. package/dist/static-functions.cjs +1 -0
  380. package/dist/static-functions.d.cts +2 -2
  381. package/dist/static-functions.d.ts +2 -2
  382. package/dist/static-functions.js +2 -2
  383. package/dist/store-reactivity-bindings.cjs +1 -1
  384. package/dist/store-reactivity-bindings.cjs.map +1 -1
  385. package/dist/store-reactivity-bindings.d.cts +1 -1
  386. package/dist/store-reactivity-bindings.d.ts +1 -1
  387. package/dist/store-reactivity-bindings.js +1 -1
  388. package/dist/store-reactivity-bindings.js.map +1 -1
  389. package/dist/types/Cell.d.cts +4 -9
  390. package/dist/types/Cell.d.ts +4 -9
  391. package/dist/types/Column.d.cts +11 -18
  392. package/dist/types/Column.d.ts +11 -18
  393. package/dist/types/ColumnDef.d.cts +23 -14
  394. package/dist/types/ColumnDef.d.ts +23 -14
  395. package/dist/types/Header.d.cts +5 -10
  396. package/dist/types/Header.d.ts +5 -10
  397. package/dist/types/HeaderGroup.d.cts +4 -9
  398. package/dist/types/HeaderGroup.d.ts +4 -9
  399. package/dist/types/Row.d.cts +7 -12
  400. package/dist/types/Row.d.ts +7 -12
  401. package/dist/types/RowModel.d.cts +12 -28
  402. package/dist/types/RowModel.d.ts +12 -28
  403. package/dist/types/RowModelFns.d.cts +6 -11
  404. package/dist/types/RowModelFns.d.ts +6 -11
  405. package/dist/types/Table.d.cts +26 -36
  406. package/dist/types/Table.d.ts +26 -36
  407. package/dist/types/TableFeatures.d.cts +328 -54
  408. package/dist/types/TableFeatures.d.ts +328 -54
  409. package/dist/types/TableOptions.d.cts +22 -17
  410. package/dist/types/TableOptions.d.ts +22 -17
  411. package/dist/types/TableState.d.cts +11 -16
  412. package/dist/types/TableState.d.ts +11 -16
  413. package/dist/utils.cjs +24 -2
  414. package/dist/utils.cjs.map +1 -1
  415. package/dist/utils.d.cts +23 -7
  416. package/dist/utils.d.ts +23 -7
  417. package/dist/utils.js +23 -3
  418. package/dist/utils.js.map +1 -1
  419. package/package.json +2 -2
  420. package/skills/column-definitions/SKILL.md +3 -6
  421. package/skills/column-layout/SKILL.md +0 -2
  422. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  423. package/skills/filtering/SKILL.md +60 -42
  424. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  425. package/skills/grouping/SKILL.md +49 -54
  426. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  427. package/skills/pagination/SKILL.md +22 -20
  428. package/skills/row-expanding/SKILL.md +33 -25
  429. package/skills/row-pinning/SKILL.md +11 -7
  430. package/skills/row-selection/SKILL.md +0 -3
  431. package/skills/setup/SKILL.md +55 -65
  432. package/skills/sorting/SKILL.md +21 -21
  433. package/skills/state-management/SKILL.md +40 -25
  434. package/src/core/cells/coreCellsFeature.ts +17 -39
  435. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  436. package/src/core/columns/constructColumn.ts +6 -0
  437. package/src/core/columns/coreColumnsFeature.ts +56 -83
  438. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  439. package/src/core/columns/coreColumnsFeature.utils.ts +4 -4
  440. package/src/core/coreFeatures.ts +1 -1
  441. package/src/core/headers/buildHeaderGroups.ts +4 -2
  442. package/src/core/headers/coreHeadersFeature.ts +42 -64
  443. package/src/core/headers/coreHeadersFeature.types.ts +12 -12
  444. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  445. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  446. package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
  447. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  448. package/src/core/row-models/createCoreRowModel.ts +7 -6
  449. package/src/core/rows/constructRow.ts +3 -2
  450. package/src/core/rows/coreRowsFeature.ts +45 -72
  451. package/src/core/rows/coreRowsFeature.types.ts +8 -8
  452. package/src/core/rows/coreRowsFeature.utils.ts +4 -4
  453. package/src/core/table/constructTable.ts +50 -13
  454. package/src/core/table/coreTablesFeature.ts +13 -35
  455. package/src/core/table/coreTablesFeature.types.ts +40 -17
  456. package/src/core/table/coreTablesFeature.utils.ts +52 -18
  457. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  458. package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
  459. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  460. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  461. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  462. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  463. package/src/features/column-filtering/columnFilteringFeature.ts +61 -103
  464. package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
  465. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  466. package/src/features/column-filtering/createFilteredRowModel.ts +18 -17
  467. package/src/features/column-filtering/filterRowsUtils.ts +3 -2
  468. package/src/features/column-grouping/columnGroupingFeature.ts +83 -126
  469. package/src/features/column-grouping/columnGroupingFeature.types.ts +32 -31
  470. package/src/features/column-grouping/columnGroupingFeature.utils.ts +2 -2
  471. package/src/features/column-grouping/createGroupedRowModel.ts +17 -16
  472. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  473. package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
  474. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  475. package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
  476. package/src/features/column-pinning/columnPinningFeature.utils.ts +11 -19
  477. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  478. package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
  479. package/src/features/column-resizing/columnResizingFeature.utils.ts +5 -6
  480. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  481. package/src/features/column-sizing/columnSizingFeature.utils.ts +27 -5
  482. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  483. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  484. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +31 -15
  485. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  486. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  487. package/src/features/global-filtering/globalFilteringFeature.utils.ts +5 -3
  488. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  489. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  490. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
  491. package/src/features/row-expanding/rowExpandingFeature.utils.ts +38 -13
  492. package/src/features/row-pagination/createPaginatedRowModel.ts +2 -2
  493. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  494. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
  495. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  496. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  497. package/src/features/row-selection/rowSelectionFeature.ts +125 -135
  498. package/src/features/row-selection/rowSelectionFeature.types.ts +17 -7
  499. package/src/features/row-selection/rowSelectionFeature.utils.ts +144 -66
  500. package/src/features/row-sorting/createSortedRowModel.ts +12 -15
  501. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  502. package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
  503. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  504. package/src/fns/aggregationFns.ts +26 -42
  505. package/src/fns/filterFns.ts +237 -264
  506. package/src/fns/sortFns.ts +51 -29
  507. package/src/helpers/columnHelper.ts +4 -4
  508. package/src/helpers/metaHelper.ts +24 -0
  509. package/src/helpers/tableFeatures.ts +36 -5
  510. package/src/index.ts +1 -0
  511. package/src/store-reactivity-bindings.ts +1 -1
  512. package/src/types/Cell.ts +5 -21
  513. package/src/types/Column.ts +12 -26
  514. package/src/types/ColumnDef.ts +28 -18
  515. package/src/types/Header.ts +4 -20
  516. package/src/types/HeaderGroup.ts +7 -18
  517. package/src/types/Row.ts +6 -21
  518. package/src/types/RowModel.ts +15 -88
  519. package/src/types/RowModelFns.ts +9 -24
  520. package/src/types/Table.ts +54 -44
  521. package/src/types/TableFeatures.ts +402 -123
  522. package/src/types/TableOptions.ts +59 -21
  523. package/src/types/TableState.ts +5 -17
  524. package/src/utils.ts +40 -8
@@ -7,7 +7,7 @@ import type { RowModel } from './coreRowModelsFeature.types'
7
7
  /**
8
8
  * Resolves the table's unmodified core row model.
9
9
  *
10
- * The factory is created once per table, either from `options.rowModels.coreRowModel`
10
+ * The factory is created once per table, either from the `coreRowModel` slot on the `features` option
11
11
  * or the built-in `createCoreRowModel()`, then reused for later calls.
12
12
  *
13
13
  * @example
@@ -21,7 +21,7 @@ export function table_getCoreRowModel<
21
21
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
22
22
  if (!table._rowModels.coreRowModel) {
23
23
  table._rowModels.coreRowModel =
24
- table.options.rowModels?.coreRowModel?.(table) ??
24
+ table.options.features.coreRowModel?.(table) ??
25
25
  createCoreRowModel<TFeatures, TData>()(table)
26
26
  }
27
27
 
@@ -64,7 +64,7 @@ export function table_getFilteredRowModel<
64
64
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
65
65
  if (!table._rowModels.filteredRowModel) {
66
66
  table._rowModels.filteredRowModel =
67
- table.options.rowModels?.filteredRowModel?.(table)
67
+ table.options.features.filteredRowModel?.(table)
68
68
  }
69
69
 
70
70
  if (table.options.manualFiltering || !table._rowModels.filteredRowModel) {
@@ -108,7 +108,7 @@ export function table_getGroupedRowModel<
108
108
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
109
109
  if (!table._rowModels.groupedRowModel) {
110
110
  table._rowModels.groupedRowModel =
111
- table.options.rowModels?.groupedRowModel?.(table)
111
+ table.options.features.groupedRowModel?.(table)
112
112
  }
113
113
 
114
114
  if (table.options.manualGrouping || !table._rowModels.groupedRowModel) {
@@ -153,7 +153,7 @@ export function table_getSortedRowModel<
153
153
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
154
154
  if (!table._rowModels.sortedRowModel) {
155
155
  table._rowModels.sortedRowModel =
156
- table.options.rowModels?.sortedRowModel?.(table)
156
+ table.options.features.sortedRowModel?.(table)
157
157
  }
158
158
 
159
159
  if (table.options.manualSorting || !table._rowModels.sortedRowModel) {
@@ -197,7 +197,7 @@ export function table_getExpandedRowModel<
197
197
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
198
198
  if (!table._rowModels.expandedRowModel) {
199
199
  table._rowModels.expandedRowModel =
200
- table.options.rowModels?.expandedRowModel?.(table)
200
+ table.options.features.expandedRowModel?.(table)
201
201
  }
202
202
 
203
203
  if (table.options.manualExpanding || !table._rowModels.expandedRowModel) {
@@ -243,7 +243,7 @@ export function table_getPaginatedRowModel<
243
243
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
244
244
  if (!table._rowModels.paginatedRowModel) {
245
245
  table._rowModels.paginatedRowModel =
246
- table.options.rowModels?.paginatedRowModel?.(table)
246
+ table.options.features.paginatedRowModel?.(table)
247
247
  }
248
248
 
249
249
  if (table.options.manualPagination || !table._rowModels.paginatedRowModel) {
@@ -1,7 +1,7 @@
1
1
  import { constructRow } from '../rows/constructRow'
2
- import { tableMemo } from '../../utils'
2
+ import { makeObjectMap, tableMemo } from '../../utils'
3
3
  import { table_autoResetPageIndex } from '../../features/row-pagination/rowPaginationFeature.utils'
4
- import type { Table, Table_Internal } from '../../types/Table'
4
+ import type { Table_Internal } from '../../types/Table'
5
5
  import type { RowModel } from './coreRowModelsFeature.types'
6
6
  import type { TableFeatures } from '../../types/TableFeatures'
7
7
  import type { Row } from '../../types/Row'
@@ -15,9 +15,10 @@ import type { RowData } from '../../types/type-utils'
15
15
  export function createCoreRowModel<
16
16
  TFeatures extends TableFeatures,
17
17
  TData extends RowData,
18
- >(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
19
- return (_table) => {
20
- const table: Table_Internal<TFeatures, TData> = _table
18
+ >(): (
19
+ table: Table_Internal<TFeatures, TData>,
20
+ ) => () => RowModel<TFeatures, TData> {
21
+ return (table) => {
21
22
  return tableMemo({
22
23
  feature: 'coreRowModelsFeature',
23
24
  table,
@@ -43,7 +44,7 @@ function _createCoreRowModel<
43
44
  const rowModel: RowModel<TFeatures, TData> = {
44
45
  rows: [],
45
46
  flatRows: [],
46
- rowsById: {},
47
+ rowsById: makeObjectMap(),
47
48
  }
48
49
 
49
50
  const accessRows = (
@@ -1,3 +1,4 @@
1
+ import { makeObjectMap } from '../../utils'
1
2
  import type { Table_Internal } from '../../types/Table'
2
3
  import type { RowData } from '../../types/type-utils'
3
4
  import type { TableFeatures } from '../../types/TableFeatures'
@@ -47,8 +48,8 @@ export const constructRow = <
47
48
  >
48
49
 
49
50
  // Only assign instance-specific properties
50
- row._uniqueValuesCache = {}
51
- row._valuesCache = {}
51
+ row._uniqueValuesCache = makeObjectMap()
52
+ row._valuesCache = makeObjectMap()
52
53
  row.depth = depth
53
54
  row.id = id
54
55
  row.index = rowIndex
@@ -11,79 +11,52 @@ import {
11
11
  table_getRow,
12
12
  table_getRowId,
13
13
  } from './coreRowsFeature.utils'
14
- import type { RowData } from '../../types/type-utils'
15
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
16
- // import type {
17
- // Row_Row,
18
- // TableOptions_Rows,
19
- // Table_Rows,
20
- // } from './coreRowsFeature.types'
21
-
22
- export interface CoreRowsFeatureConstructors<
23
- TFeatures extends TableFeatures,
24
- TData extends RowData,
25
- > {
26
- // Row: Row_Row<TFeatures, TData>
27
- // TableOptions: TableOptions_Rows<TFeatures, TData>
28
- // Table: Table_Rows<TFeatures, TData>
29
- }
14
+ import type { TableFeature } from '../../types/TableFeatures'
30
15
 
31
16
  /**
32
- * Creates the stock core rows feature.
33
- *
34
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
17
+ * Core feature that creates row APIs for values, cells, and tree traversal.
35
18
  */
36
- export function constructCoreRowsFeature<
37
- TFeatures extends TableFeatures,
38
- TData extends RowData,
39
- >(): TableFeature<CoreRowsFeatureConstructors<TFeatures, TData>> {
40
- return {
41
- assignRowPrototype: (prototype, table) => {
42
- assignPrototypeAPIs('coreRowsFeature', prototype, table, {
43
- row_getAllCellsByColumnId: {
44
- fn: (row) => row_getAllCellsByColumnId(row),
45
- memoDeps: (row) => [row.getAllCells()],
46
- },
47
- row_getAllCells: {
48
- fn: (row) => row_getAllCells(row),
49
- memoDeps: (row) => [row.table.getAllLeafColumns()],
50
- },
51
- row_getLeafRows: {
52
- fn: (row) => row_getLeafRows(row),
53
- },
54
- row_getParentRow: {
55
- fn: (row) => row_getParentRow(row),
56
- },
57
- row_getParentRows: {
58
- fn: (row) => row_getParentRows(row),
59
- },
60
- row_getUniqueValues: {
61
- fn: (row, columnId) => row_getUniqueValues(row, columnId),
62
- },
63
- row_getValue: {
64
- fn: (row, columnId) => row_getValue(row, columnId),
65
- },
66
- row_renderValue: {
67
- fn: (row, columnId) => row_renderValue(row, columnId),
68
- },
69
- })
70
- },
71
- constructTableAPIs: (table) => {
72
- assignTableAPIs('coreRowsFeature', table, {
73
- table_getRowId: {
74
- fn: (originalRow, index, parent) =>
75
- table_getRowId(originalRow, table, index, parent),
76
- },
77
- table_getRow: {
78
- fn: (id: string, searchAll?: boolean) =>
79
- table_getRow(table, id, searchAll),
80
- },
81
- })
82
- },
83
- }
19
+ export const coreRowsFeature: TableFeature = {
20
+ assignRowPrototype: (prototype, table) => {
21
+ assignPrototypeAPIs('coreRowsFeature', prototype, table, {
22
+ row_getAllCellsByColumnId: {
23
+ fn: (row) => row_getAllCellsByColumnId(row),
24
+ memoDeps: (row) => [row.getAllCells()],
25
+ },
26
+ row_getAllCells: {
27
+ fn: (row) => row_getAllCells(row),
28
+ memoDeps: (row) => [row.table.getAllLeafColumns()],
29
+ },
30
+ row_getLeafRows: {
31
+ fn: (row) => row_getLeafRows(row),
32
+ },
33
+ row_getParentRow: {
34
+ fn: (row) => row_getParentRow(row),
35
+ },
36
+ row_getParentRows: {
37
+ fn: (row) => row_getParentRows(row),
38
+ },
39
+ row_getUniqueValues: {
40
+ fn: (row, columnId) => row_getUniqueValues(row, columnId),
41
+ },
42
+ row_getValue: {
43
+ fn: (row, columnId) => row_getValue(row, columnId),
44
+ },
45
+ row_renderValue: {
46
+ fn: (row, columnId) => row_renderValue(row, columnId),
47
+ },
48
+ })
49
+ },
50
+ constructTableAPIs: (table) => {
51
+ assignTableAPIs('coreRowsFeature', table, {
52
+ table_getRowId: {
53
+ fn: (originalRow, index, parent) =>
54
+ table_getRowId(originalRow, table, index, parent),
55
+ },
56
+ table_getRow: {
57
+ fn: (id: string, searchAll?: boolean) =>
58
+ table_getRow(table, id, searchAll),
59
+ },
60
+ })
61
+ },
84
62
  }
85
-
86
- /**
87
- * The Core Rows feature provides the core row functionality.
88
- */
89
- export const coreRowsFeature = constructCoreRowsFeature()
@@ -5,8 +5,8 @@ import type { Row } from '../../types/Row'
5
5
  import type { Cell } from '../../types/Cell'
6
6
 
7
7
  export interface Row_CoreProperties<
8
- TFeatures extends TableFeatures,
9
- TData extends RowData,
8
+ in out TFeatures extends TableFeatures,
9
+ in out TData extends RowData,
10
10
  > {
11
11
  _uniqueValuesCache: Record<string, unknown>
12
12
  _valuesCache: Record<string, unknown>
@@ -45,8 +45,8 @@ export interface Row_CoreProperties<
45
45
  }
46
46
 
47
47
  export interface Row_Row<
48
- TFeatures extends TableFeatures,
49
- TData extends RowData,
48
+ in out TFeatures extends TableFeatures,
49
+ in out TData extends RowData,
50
50
  > extends Row_CoreProperties<TFeatures, TData> {
51
51
  /**
52
52
  * Builds a lookup of this row's cells keyed by leaf column id.
@@ -83,8 +83,8 @@ export interface Row_Row<
83
83
  }
84
84
 
85
85
  export interface TableOptions_Rows<
86
- TFeatures extends TableFeatures,
87
- TData extends RowData,
86
+ in out TFeatures extends TableFeatures,
87
+ in out TData extends RowData,
88
88
  > {
89
89
  /**
90
90
  * This optional function is used to derive a unique ID for any given row. If not provided the rows index is used (nested rows join together with `.` using their grandparents' index eg. `index.index.index`). If you need to identify individual rows that are originating from any server-side operations, it's suggested you use this function to return an ID that makes sense regardless of network IO/ambiguity eg. a userId, taskId, database ID field, etc.
@@ -106,8 +106,8 @@ export interface TableOptions_Rows<
106
106
  }
107
107
 
108
108
  export interface Table_Rows<
109
- TFeatures extends TableFeatures,
110
- TData extends RowData,
109
+ in out TFeatures extends TableFeatures,
110
+ in out TData extends RowData,
111
111
  > {
112
112
  getRowId: (_: TData, index: number, parent?: Row<TFeatures, TData>) => string
113
113
  /**
@@ -1,4 +1,4 @@
1
- import { flattenBy } from '../../utils'
1
+ import { flattenBy, hasOwn, makeObjectMap } from '../../utils'
2
2
  import { constructCell } from '../cells/constructCell'
3
3
  import type { Table_Internal } from '../../types/Table'
4
4
  import type { RowData } from '../../types/type-utils'
@@ -21,7 +21,7 @@ export function row_getValue<
21
21
  TFeatures extends TableFeatures,
22
22
  TData extends RowData,
23
23
  >(row: Row<TFeatures, TData>, columnId: string) {
24
- if (row._valuesCache.hasOwnProperty(columnId)) {
24
+ if (hasOwn(row._valuesCache, columnId)) {
25
25
  return row._valuesCache[columnId]
26
26
  }
27
27
 
@@ -51,7 +51,7 @@ export function row_getUniqueValues<
51
51
  TFeatures extends TableFeatures,
52
52
  TData extends RowData,
53
53
  >(row: Row<TFeatures, TData>, columnId: string) {
54
- if (row._uniqueValuesCache.hasOwnProperty(columnId)) {
54
+ if (hasOwn(row._uniqueValuesCache, columnId)) {
55
55
  return row._uniqueValuesCache[columnId]
56
56
  }
57
57
 
@@ -192,7 +192,7 @@ export function row_getAllCellsByColumnId<
192
192
  TFeatures extends TableFeatures,
193
193
  TData extends RowData,
194
194
  >(row: Row<TFeatures, TData>) {
195
- const result: Record<string, Cell<TFeatures, TData, unknown>> = {}
195
+ const result = makeObjectMap<Cell<TFeatures, TData, unknown>>()
196
196
  const cells = row.getAllCells()
197
197
  for (let i = 0; i < cells.length; i++) {
198
198
  const cell = cells[i]!
@@ -7,7 +7,7 @@ import type { RowData } from '../../types/type-utils'
7
7
  import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
8
8
  import type { Table, Table_Internal } from '../../types/Table'
9
9
  import type { TableOptions } from '../../types/TableOptions'
10
- import type { TableState } from '../../types/TableState'
10
+ import type { TableState, TableState_All } from '../../types/TableState'
11
11
 
12
12
  /**
13
13
  * Builds the initial table state from registered features and user initial state.
@@ -33,18 +33,40 @@ export function constructTable<
33
33
  TFeatures extends TableFeatures,
34
34
  TData extends RowData,
35
35
  >(tableOptions: TableOptions<TFeatures, TData>): Table<TFeatures, TData> {
36
- const _reactivity = tableOptions.features.coreReativityFeature!
36
+ const _reactivity = tableOptions.features.coreReactivityFeature!
37
+
38
+ // Strip the non-feature slots: type-only meta slots, row model factories,
39
+ // and row model fn registries all live on the `features` option but are not
40
+ // table features themselves.
41
+ const {
42
+ aggregationFns,
43
+ columnMeta: _columnMeta,
44
+ coreRowModel,
45
+ expandedRowModel,
46
+ facetedMinMaxValues,
47
+ facetedRowModel,
48
+ facetedUniqueValues,
49
+ filterFns,
50
+ filterMeta: _filterMeta,
51
+ filteredRowModel,
52
+ groupedRowModel,
53
+ paginatedRowModel,
54
+ sortFns,
55
+ sortedRowModel,
56
+ tableMeta: _tableMeta,
57
+ ...features
58
+ } = tableOptions.features
37
59
 
38
60
  const table = {
39
61
  _reactivity,
40
- _features: { ...coreFeatures, ...tableOptions.features },
62
+ _features: { ...coreFeatures, ...features },
41
63
  _rowModels: {},
42
- _rowModelFns: {},
64
+ _rowModelFns: { aggregationFns, filterFns, sortFns },
43
65
  baseAtoms: {},
44
66
  atoms: {},
45
- } as Table_Internal<TFeatures, TData>
67
+ } as unknown as Table_Internal<TFeatures, TData>
46
68
 
47
- const featuresList: Array<TableFeature<{}>> = Object.values(table._features)
69
+ const featuresList: Array<TableFeature> = Object.values(table._features)
48
70
 
49
71
  const defaultOptions = featuresList.reduce((obj, feature) => {
50
72
  return Object.assign(obj, feature.getDefaultTableOptions?.(table))
@@ -100,7 +122,7 @@ export function constructTable<
100
122
  )
101
123
 
102
124
  const stateKeys = Object.keys(table.initialState) as Array<
103
- string & keyof TableState<TFeatures>
125
+ string & keyof TableState_All
104
126
  >
105
127
 
106
128
  for (let i = 0; i < stateKeys.length; i++) {
@@ -115,11 +137,14 @@ export function constructTable<
115
137
  // create readonly derived atom: on each get(), read either external atom or base atom
116
138
  ;(table.atoms as any)[key] = _reactivity.createReadonlyAtom(
117
139
  () => {
118
- const externalAtom = table.options.atoms?.[key]
140
+ const externalAtoms = table.options.atoms as
141
+ | Partial<Record<keyof TableState_All, Atom<unknown>>>
142
+ | undefined
143
+ const externalAtom = externalAtoms?.[key]
119
144
  if (externalAtom) {
120
145
  return externalAtom.get()
121
146
  }
122
- return table.baseAtoms[key].get()
147
+ return table.baseAtoms[key]!.get()
123
148
  },
124
149
  { debugName: `table/atoms/${key}` },
125
150
  )
@@ -130,10 +155,10 @@ export function constructTable<
130
155
  table.store = atomToStore(
131
156
  _reactivity.createReadonlyAtom(
132
157
  () => {
133
- const snapshot = {} as TableState<TFeatures>
158
+ const snapshot = {} as TableState<TFeatures> & TableState_All
134
159
  for (let i = 0; i < stateKeys.length; i++) {
135
160
  const key = stateKeys[i]!
136
- ;(snapshot as Record<string, unknown>)[key] = table.atoms[key].get()
161
+ ;(snapshot as Record<string, unknown>)[key] = table.atoms[key]!.get()
137
162
  }
138
163
  return snapshot
139
164
  },
@@ -146,7 +171,19 @@ export function constructTable<
146
171
  (tableOptions.debugAll || tableOptions.debugTable)
147
172
  ) {
148
173
  const features = Object.keys(table._features)
149
- const rowModels = Object.keys(table.options.rowModels || {})
174
+ const rowModels = Object.entries({
175
+ coreRowModel,
176
+ filteredRowModel,
177
+ groupedRowModel,
178
+ sortedRowModel,
179
+ expandedRowModel,
180
+ paginatedRowModel,
181
+ facetedRowModel,
182
+ facetedMinMaxValues,
183
+ facetedUniqueValues,
184
+ })
185
+ .filter(([, factory]) => factory)
186
+ .map(([key]) => key)
150
187
  const states = Object.keys(table.initialState)
151
188
 
152
189
  console.log(
@@ -165,5 +202,5 @@ export function constructTable<
165
202
  featuresList[i]!.constructTableAPIs?.(table)
166
203
  }
167
204
 
168
- return table
205
+ return table as unknown as Table<TFeatures, TData>
169
206
  }
@@ -1,41 +1,19 @@
1
1
  import { assignTableAPIs } from '../../utils'
2
2
  import { table_reset, table_setOptions } from './coreTablesFeature.utils'
3
- import type { RowData } from '../../types/type-utils'
4
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
5
- // import type { TableOptions_Table, Table_Table } from './coreTablesFeature.types'
6
-
7
- export interface CoreTablesFeatureConstructors<
8
- TFeatures extends TableFeatures,
9
- TData extends RowData,
10
- > {
11
- // Table: Table_Table<TFeatures, TData>
12
- // TableOptions: TableOptions_Table<TFeatures, TData>
13
- }
3
+ import type { TableFeature } from '../../types/TableFeatures'
14
4
 
15
5
  /**
16
- * Creates the stock core tables feature.
17
- *
18
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
6
+ * Core feature that adds base table instance APIs such as reset and setOptions.
19
7
  */
20
- export function constructCoreTablesFeature<
21
- TFeatures extends TableFeatures,
22
- TData extends RowData,
23
- >(): TableFeature<CoreTablesFeatureConstructors<TFeatures, TData>> {
24
- return {
25
- constructTableAPIs: (table) => {
26
- assignTableAPIs('coreTablesFeature', table, {
27
- table_reset: {
28
- fn: () => table_reset(table),
29
- },
30
- table_setOptions: {
31
- fn: (updater) => table_setOptions(table, updater),
32
- },
33
- })
34
- },
35
- }
8
+ export const coreTablesFeature: TableFeature = {
9
+ constructTableAPIs: (table) => {
10
+ assignTableAPIs('coreTablesFeature', table, {
11
+ table_reset: {
12
+ fn: () => table_reset(table),
13
+ },
14
+ table_setOptions: {
15
+ fn: (updater) => table_setOptions(table, updater),
16
+ },
17
+ })
18
+ },
36
19
  }
37
-
38
- /**
39
- * The Core Tables feature provides the core table functionality for handling state and options.
40
- */
41
- export const coreTablesFeature = constructCoreTablesFeature()
@@ -3,15 +3,37 @@ import type { Atom, ReadonlyAtom, ReadonlyStore } from '@tanstack/store'
3
3
  import type { CoreFeatures } from '../coreFeatures'
4
4
  import type { RowModelFns } from '../../types/RowModelFns'
5
5
  import type { RowData, Updater } from '../../types/type-utils'
6
- import type { TableFeatures } from '../../types/TableFeatures'
7
- import type { CachedRowModels, CreateRowModels_All } from '../../types/RowModel'
6
+ import type {
7
+ IsAny,
8
+ TableFeatures,
9
+ ValidateFeatureSlots,
10
+ } from '../../types/TableFeatures'
11
+ import type { CachedRowModels } from '../../types/RowModel'
8
12
  import type { TableOptions } from '../../types/TableOptions'
9
13
  import type { TableState, TableState_All } from '../../types/TableState'
10
14
 
11
15
  export interface TableMeta<
16
+ in out TFeatures extends TableFeatures,
17
+ in out TData extends RowData,
18
+ > {}
19
+
20
+ /**
21
+ * Resolves the type of `options.meta` for a feature set.
22
+ *
23
+ * When the features object declares a `tableMeta` type-only slot
24
+ * (`tableFeatures({ ..., tableMeta: {} as MyTableMeta })`), that type wins.
25
+ * Otherwise this falls back to the global declaration-merged `TableMeta`
26
+ * interface.
27
+ */
28
+ export type ExtractTableMeta<
12
29
  TFeatures extends TableFeatures,
13
30
  TData extends RowData,
14
- > {}
31
+ > =
32
+ IsAny<TFeatures> extends true
33
+ ? TableMeta<TFeatures, TData>
34
+ : TFeatures extends { tableMeta: infer TMeta extends object }
35
+ ? TMeta
36
+ : TableMeta<TFeatures, TData>
15
37
 
16
38
  /**
17
39
  * A map of writable atoms, one per `TableState` slice. These are the internal
@@ -62,21 +84,19 @@ export type ExternalAtoms_All = Partial<{
62
84
  }>
63
85
 
64
86
  export interface TableOptions_Table<
65
- TFeatures extends TableFeatures,
66
- TData extends RowData,
87
+ in out TFeatures extends TableFeatures,
88
+ in out TData extends RowData,
67
89
  > {
68
90
  /**
69
91
  * The feature modules registered on this table instance.
70
92
  *
71
93
  * Feature registration controls which state slices, options, and prototype
72
- * APIs are available.
94
+ * APIs are available. This object also carries the table's row model
95
+ * factories (`sortedRowModel`, `filteredRowModel`, etc.), row model function
96
+ * registries (`sortFns`, `filterFns`, `aggregationFns`), and type-only meta
97
+ * slots (`tableMeta`, `columnMeta`).
73
98
  */
74
- readonly features: TFeatures
75
- /**
76
- * Row model factories used by features such as filtering, grouping, sorting,
77
- * expansion, and pagination.
78
- */
79
- readonly rowModels?: CreateRowModels_All<TFeatures, TData>
99
+ readonly features: TFeatures & ValidateFeatureSlots<TFeatures>
80
100
  /**
81
101
  * Optionally, provide your own external writable atoms for individual state slices.
82
102
  * When an atom is provided for a given slice, it takes precedence over `options.state[key]`
@@ -116,8 +136,11 @@ export interface TableOptions_Table<
116
136
  ) => TableOptions<TFeatures, TData>
117
137
  /**
118
138
  * You can pass any object to `options.meta` and access it anywhere the `table` is available via `table.options.meta`.
139
+ *
140
+ * Declare its type per-table via the `tableMeta` type-only slot on the
141
+ * `features` option, or globally via declaration merging on `TableMeta`.
119
142
  */
120
- readonly meta?: TableMeta<TFeatures, TData>
143
+ readonly meta?: ExtractTableMeta<TFeatures, TData>
121
144
  /**
122
145
  * Optionally provide externally managed values for individual state slices.
123
146
  *
@@ -129,8 +152,8 @@ export interface TableOptions_Table<
129
152
  }
130
153
 
131
154
  export interface Table_CoreProperties<
132
- TFeatures extends TableFeatures,
133
- TData extends RowData,
155
+ in out TFeatures extends TableFeatures,
156
+ in out TData extends RowData,
134
157
  > {
135
158
  /**
136
159
  * Table reactivity bindings for interacting with TanStack Store.
@@ -197,8 +220,8 @@ export interface Table_CoreProperties<
197
220
  }
198
221
 
199
222
  export interface Table_Table<
200
- TFeatures extends TableFeatures,
201
- TData extends RowData,
223
+ in out TFeatures extends TableFeatures,
224
+ in out TData extends RowData,
202
225
  > extends Table_CoreProperties<TFeatures, TData> {
203
226
  /**
204
227
  * Resets the table's internal base atoms to `table.initialState`.