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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/dist/core/cells/constructCell.d.cts +1 -1
  2. package/dist/core/cells/constructCell.d.ts +1 -1
  3. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  4. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  5. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  6. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  7. package/dist/core/cells/coreCellsFeature.js +12 -20
  8. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  9. package/dist/core/cells/coreCellsFeature.types.d.cts +4 -4
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +4 -4
  11. package/dist/core/cells/coreCellsFeature.utils.d.cts +1 -1
  12. package/dist/core/cells/coreCellsFeature.utils.d.ts +1 -1
  13. package/dist/core/columns/constructColumn.d.cts +1 -1
  14. package/dist/core/columns/constructColumn.d.ts +1 -1
  15. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  16. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  17. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  18. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  19. package/dist/core/columns/coreColumnsFeature.js +60 -68
  20. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.types.d.cts +5 -5
  22. package/dist/core/columns/coreColumnsFeature.types.d.ts +5 -5
  23. package/dist/core/columns/coreColumnsFeature.utils.d.cts +1 -1
  24. package/dist/core/columns/coreColumnsFeature.utils.d.ts +1 -1
  25. package/dist/core/coreFeatures.cjs.map +1 -1
  26. package/dist/core/coreFeatures.d.cts +1 -1
  27. package/dist/core/coreFeatures.d.ts +1 -1
  28. package/dist/core/coreFeatures.js.map +1 -1
  29. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  30. package/dist/core/headers/buildHeaderGroups.d.cts +1 -1
  31. package/dist/core/headers/buildHeaderGroups.d.ts +1 -1
  32. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  33. package/dist/core/headers/constructHeader.d.cts +1 -1
  34. package/dist/core/headers/constructHeader.d.ts +1 -1
  35. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  36. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  37. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  38. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  39. package/dist/core/headers/coreHeadersFeature.js +45 -53
  40. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  41. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  42. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  43. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  44. package/dist/core/headers/coreHeadersFeature.utils.d.cts +1 -1
  45. package/dist/core/headers/coreHeadersFeature.utils.d.ts +1 -1
  46. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  47. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  48. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  49. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  50. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  51. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  52. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  53. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +5 -15
  54. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +5 -15
  55. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
  56. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  57. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +2 -2
  58. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +2 -2
  59. package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
  60. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  61. package/dist/core/row-models/createCoreRowModel.cjs +1 -2
  62. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  63. package/dist/core/row-models/createCoreRowModel.d.cts +2 -2
  64. package/dist/core/row-models/createCoreRowModel.d.ts +2 -2
  65. package/dist/core/row-models/createCoreRowModel.js +1 -2
  66. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  67. package/dist/core/rows/constructRow.d.cts +1 -1
  68. package/dist/core/rows/constructRow.d.ts +1 -1
  69. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  70. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  71. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  72. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  73. package/dist/core/rows/coreRowsFeature.js +28 -36
  74. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  75. package/dist/core/rows/coreRowsFeature.types.d.cts +5 -5
  76. package/dist/core/rows/coreRowsFeature.types.d.ts +5 -5
  77. package/dist/core/rows/coreRowsFeature.utils.d.cts +1 -1
  78. package/dist/core/rows/coreRowsFeature.utils.d.ts +1 -1
  79. package/dist/core/table/constructTable.cjs +21 -6
  80. package/dist/core/table/constructTable.cjs.map +1 -1
  81. package/dist/core/table/constructTable.d.cts +1 -1
  82. package/dist/core/table/constructTable.d.ts +1 -1
  83. package/dist/core/table/constructTable.js +21 -6
  84. package/dist/core/table/constructTable.js.map +1 -1
  85. package/dist/core/table/coreTablesFeature.cjs +7 -16
  86. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  87. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  88. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  89. package/dist/core/table/coreTablesFeature.js +8 -16
  90. package/dist/core/table/coreTablesFeature.js.map +1 -1
  91. package/dist/core/table/coreTablesFeature.types.d.cts +27 -15
  92. package/dist/core/table/coreTablesFeature.types.d.ts +27 -15
  93. package/dist/core/table/coreTablesFeature.utils.cjs +1 -2
  94. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  95. package/dist/core/table/coreTablesFeature.utils.d.cts +1 -1
  96. package/dist/core/table/coreTablesFeature.utils.d.ts +1 -1
  97. package/dist/core/table/coreTablesFeature.utils.js +1 -2
  98. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  99. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  100. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  101. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  102. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  103. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  104. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  105. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
  106. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
  107. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  108. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  109. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +1 -1
  110. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +1 -1
  111. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  112. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  113. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  114. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  115. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  116. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  117. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  118. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  119. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  120. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  121. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  122. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  123. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  124. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  125. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  126. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  127. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  128. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  129. package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
  130. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  131. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
  132. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
  133. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  134. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  135. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +2 -2
  136. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +2 -2
  137. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  138. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  139. package/dist/features/column-filtering/createFilteredRowModel.cjs +4 -2
  140. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  141. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  142. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  143. package/dist/features/column-filtering/createFilteredRowModel.js +4 -2
  144. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  145. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  146. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  147. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  148. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  149. package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
  150. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  151. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +23 -19
  152. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +23 -19
  153. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +1 -1
  154. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +1 -1
  155. package/dist/features/column-grouping/createGroupedRowModel.cjs +5 -2
  156. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  157. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  158. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  159. package/dist/features/column-grouping/createGroupedRowModel.js +5 -2
  160. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  161. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  162. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  163. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  164. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  165. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  166. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  167. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
  168. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
  169. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +1 -1
  170. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +1 -1
  171. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  172. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  173. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  174. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  175. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  176. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  177. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
  178. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
  179. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  180. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +13 -13
  181. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +13 -13
  182. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  183. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  184. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  185. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  186. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  187. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  188. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  189. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +1 -1
  190. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +1 -1
  191. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  192. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  193. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  194. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  195. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  196. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  197. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +4 -4
  198. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +4 -4
  199. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  200. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  201. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  202. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  203. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  204. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  205. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
  206. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
  207. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +1 -1
  208. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +1 -1
  209. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  210. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  211. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  212. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  213. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  214. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  215. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +3 -3
  216. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +3 -3
  217. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  218. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +7 -5
  219. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +7 -5
  220. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  221. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  222. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  223. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  224. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  225. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  226. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  227. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  228. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  229. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  230. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  231. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
  232. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
  233. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +1 -1
  234. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +1 -1
  235. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  236. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  237. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  238. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  239. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  240. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  241. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  242. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  243. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  244. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  245. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
  246. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
  247. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +1 -1
  248. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +1 -1
  249. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  250. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  251. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  252. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  253. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  254. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  255. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  256. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  257. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +1 -1
  258. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +1 -1
  259. package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
  260. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  261. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  262. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  263. package/dist/features/row-selection/rowSelectionFeature.js +66 -77
  264. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  265. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +2 -2
  266. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +2 -2
  267. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +10 -6
  268. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  269. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +1 -1
  270. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +1 -1
  271. package/dist/features/row-selection/rowSelectionFeature.utils.js +10 -6
  272. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  273. package/dist/features/row-sorting/createSortedRowModel.cjs +4 -2
  274. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  275. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  276. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  277. package/dist/features/row-sorting/createSortedRowModel.js +4 -2
  278. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  279. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  280. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  281. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  282. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  283. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  284. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  285. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +23 -20
  286. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +23 -20
  287. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  288. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  289. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +1 -1
  290. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +1 -1
  291. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  292. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  293. package/dist/fns/aggregationFns.cjs +18 -18
  294. package/dist/fns/aggregationFns.cjs.map +1 -1
  295. package/dist/fns/aggregationFns.d.cts +21 -19
  296. package/dist/fns/aggregationFns.d.ts +21 -19
  297. package/dist/fns/aggregationFns.js +18 -18
  298. package/dist/fns/aggregationFns.js.map +1 -1
  299. package/dist/fns/filterFns.cjs +51 -65
  300. package/dist/fns/filterFns.cjs.map +1 -1
  301. package/dist/fns/filterFns.d.cts +82 -28
  302. package/dist/fns/filterFns.d.ts +82 -28
  303. package/dist/fns/filterFns.js +51 -65
  304. package/dist/fns/filterFns.js.map +1 -1
  305. package/dist/fns/sortFns.cjs +18 -6
  306. package/dist/fns/sortFns.cjs.map +1 -1
  307. package/dist/fns/sortFns.d.cts +15 -13
  308. package/dist/fns/sortFns.d.ts +15 -13
  309. package/dist/fns/sortFns.js +18 -6
  310. package/dist/fns/sortFns.js.map +1 -1
  311. package/dist/helpers/metaHelper.cjs +30 -0
  312. package/dist/helpers/metaHelper.cjs.map +1 -0
  313. package/dist/helpers/metaHelper.d.cts +26 -0
  314. package/dist/helpers/metaHelper.d.ts +26 -0
  315. package/dist/helpers/metaHelper.js +29 -0
  316. package/dist/helpers/metaHelper.js.map +1 -0
  317. package/dist/helpers/tableFeatures.cjs +31 -3
  318. package/dist/helpers/tableFeatures.cjs.map +1 -1
  319. package/dist/helpers/tableFeatures.d.cts +33 -5
  320. package/dist/helpers/tableFeatures.d.ts +33 -5
  321. package/dist/helpers/tableFeatures.js +31 -3
  322. package/dist/helpers/tableFeatures.js.map +1 -1
  323. package/dist/index.cjs +2 -20
  324. package/dist/index.d.cts +44 -43
  325. package/dist/index.d.ts +44 -43
  326. package/dist/index.js +22 -21
  327. package/dist/store-reactivity-bindings.cjs +1 -1
  328. package/dist/store-reactivity-bindings.cjs.map +1 -1
  329. package/dist/store-reactivity-bindings.d.cts +1 -1
  330. package/dist/store-reactivity-bindings.d.ts +1 -1
  331. package/dist/store-reactivity-bindings.js +1 -1
  332. package/dist/store-reactivity-bindings.js.map +1 -1
  333. package/dist/types/Cell.d.cts +8 -10
  334. package/dist/types/Cell.d.ts +8 -10
  335. package/dist/types/Column.d.cts +19 -12
  336. package/dist/types/Column.d.ts +19 -12
  337. package/dist/types/ColumnDef.d.cts +30 -11
  338. package/dist/types/ColumnDef.d.ts +30 -11
  339. package/dist/types/Header.d.cts +10 -11
  340. package/dist/types/Header.d.ts +10 -11
  341. package/dist/types/HeaderGroup.d.cts +4 -9
  342. package/dist/types/HeaderGroup.d.ts +4 -9
  343. package/dist/types/Row.d.cts +15 -11
  344. package/dist/types/Row.d.ts +15 -11
  345. package/dist/types/RowModel.d.cts +19 -19
  346. package/dist/types/RowModel.d.ts +19 -19
  347. package/dist/types/RowModelFns.d.cts +9 -9
  348. package/dist/types/RowModelFns.d.ts +9 -9
  349. package/dist/types/Table.d.cts +52 -24
  350. package/dist/types/Table.d.ts +52 -24
  351. package/dist/types/TableFeatures.d.cts +178 -41
  352. package/dist/types/TableFeatures.d.ts +178 -41
  353. package/dist/types/TableOptions.d.cts +31 -10
  354. package/dist/types/TableOptions.d.ts +31 -10
  355. package/dist/types/TableState.d.cts +22 -13
  356. package/dist/types/TableState.d.ts +22 -13
  357. package/dist/utils.cjs.map +1 -1
  358. package/dist/utils.d.cts +8 -3
  359. package/dist/utils.d.ts +8 -3
  360. package/dist/utils.js.map +1 -1
  361. package/package.json +1 -1
  362. package/skills/column-definitions/SKILL.md +3 -6
  363. package/skills/column-layout/SKILL.md +0 -2
  364. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  365. package/skills/filtering/SKILL.md +60 -42
  366. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  367. package/skills/grouping/SKILL.md +49 -54
  368. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  369. package/skills/pagination/SKILL.md +22 -20
  370. package/skills/row-expanding/SKILL.md +33 -25
  371. package/skills/row-pinning/SKILL.md +11 -7
  372. package/skills/row-selection/SKILL.md +0 -3
  373. package/skills/setup/SKILL.md +55 -65
  374. package/skills/sorting/SKILL.md +21 -21
  375. package/skills/state-management/SKILL.md +40 -25
  376. package/src/core/cells/coreCellsFeature.ts +17 -39
  377. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  378. package/src/core/columns/coreColumnsFeature.ts +56 -83
  379. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  380. package/src/core/coreFeatures.ts +1 -1
  381. package/src/core/headers/buildHeaderGroups.ts +1 -1
  382. package/src/core/headers/coreHeadersFeature.ts +42 -64
  383. package/src/core/headers/coreHeadersFeature.types.ts +10 -10
  384. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  385. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  386. package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
  387. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  388. package/src/core/row-models/createCoreRowModel.ts +5 -4
  389. package/src/core/rows/coreRowsFeature.ts +45 -72
  390. package/src/core/rows/coreRowsFeature.types.ts +8 -8
  391. package/src/core/table/constructTable.ts +50 -13
  392. package/src/core/table/coreTablesFeature.ts +13 -35
  393. package/src/core/table/coreTablesFeature.types.ts +40 -17
  394. package/src/core/table/coreTablesFeature.utils.ts +10 -5
  395. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  396. package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
  397. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  398. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  399. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  400. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  401. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  402. package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
  403. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  404. package/src/features/column-filtering/createFilteredRowModel.ts +5 -7
  405. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  406. package/src/features/column-grouping/columnGroupingFeature.types.ts +32 -31
  407. package/src/features/column-grouping/createGroupedRowModel.ts +7 -11
  408. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  409. package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
  410. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  411. package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
  412. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  413. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  414. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  415. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  416. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  417. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  418. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  419. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  420. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  421. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  422. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
  423. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  424. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  425. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
  426. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  427. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  428. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  429. package/src/features/row-selection/rowSelectionFeature.types.ts +4 -4
  430. package/src/features/row-selection/rowSelectionFeature.utils.ts +12 -7
  431. package/src/features/row-sorting/createSortedRowModel.ts +6 -6
  432. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  433. package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
  434. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  435. package/src/fns/aggregationFns.ts +26 -42
  436. package/src/fns/filterFns.ts +231 -264
  437. package/src/fns/sortFns.ts +51 -29
  438. package/src/helpers/metaHelper.ts +24 -0
  439. package/src/helpers/tableFeatures.ts +36 -5
  440. package/src/index.ts +1 -0
  441. package/src/store-reactivity-bindings.ts +1 -1
  442. package/src/types/Cell.ts +10 -30
  443. package/src/types/Column.ts +21 -56
  444. package/src/types/ColumnDef.ts +48 -49
  445. package/src/types/Header.ts +10 -32
  446. package/src/types/HeaderGroup.ts +4 -15
  447. package/src/types/Row.ts +18 -39
  448. package/src/types/RowModel.ts +24 -114
  449. package/src/types/RowModelFns.ts +12 -31
  450. package/src/types/Table.ts +85 -80
  451. package/src/types/TableFeatures.ts +253 -108
  452. package/src/types/TableOptions.ts +70 -60
  453. package/src/types/TableState.ts +20 -73
  454. package/src/utils.ts +16 -6
@@ -13,71 +13,50 @@ import {
13
13
  table_getRowModel,
14
14
  table_getSortedRowModel,
15
15
  } from './coreRowModelsFeature.utils'
16
- import type { RowData } from '../../types/type-utils'
17
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
18
- // import type { Table_RowModels } from './coreRowModelsFeature.types'
19
-
20
- export interface CoreRowModelsFeatureConstructors<
21
- TFeatures extends TableFeatures,
22
- TData extends RowData,
23
- > {
24
- // Table: Table_RowModels<TFeatures, TData>
25
- }
16
+ import type { TableFeature } from '../../types/TableFeatures'
26
17
 
27
18
  /**
28
- * Creates the stock core row models feature.
29
- *
30
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
19
+ * Core feature that wires table row-model accessors and row-model caches.
31
20
  */
32
- export function constructCoreRowModelsFeature<
33
- TFeatures extends TableFeatures,
34
- TData extends RowData,
35
- >(): TableFeature<CoreRowModelsFeatureConstructors<TFeatures, TData>> {
36
- return {
37
- constructTableAPIs: (table) => {
38
- assignTableAPIs('coreRowModelsFeature', table, {
39
- table_getCoreRowModel: {
40
- fn: () => table_getCoreRowModel(table),
41
- },
42
- table_getPreFilteredRowModel: {
43
- fn: () => table_getPreFilteredRowModel(table),
44
- },
45
- table_getFilteredRowModel: {
46
- fn: () => table_getFilteredRowModel(table),
47
- },
48
- table_getPreGroupedRowModel: {
49
- fn: () => table_getPreGroupedRowModel(table),
50
- },
51
- table_getGroupedRowModel: {
52
- fn: () => table_getGroupedRowModel(table),
53
- },
54
- table_getPreSortedRowModel: {
55
- fn: () => table_getPreSortedRowModel(table),
56
- },
57
- table_getSortedRowModel: {
58
- fn: () => table_getSortedRowModel(table),
59
- },
60
- table_getPreExpandedRowModel: {
61
- fn: () => table_getPreExpandedRowModel(table),
62
- },
63
- table_getExpandedRowModel: {
64
- fn: () => table_getExpandedRowModel(table),
65
- },
66
- table_getPrePaginatedRowModel: {
67
- fn: () => table_getPrePaginatedRowModel(table),
68
- },
69
- table_getPaginatedRowModel: {
70
- fn: () => table_getPaginatedRowModel(table),
71
- },
72
- table_getRowModel: {
73
- fn: () => table_getRowModel(table),
74
- },
75
- })
76
- },
77
- }
21
+ export const coreRowModelsFeature: TableFeature = {
22
+ constructTableAPIs: (table) => {
23
+ assignTableAPIs('coreRowModelsFeature', table, {
24
+ table_getCoreRowModel: {
25
+ fn: () => table_getCoreRowModel(table),
26
+ },
27
+ table_getPreFilteredRowModel: {
28
+ fn: () => table_getPreFilteredRowModel(table),
29
+ },
30
+ table_getFilteredRowModel: {
31
+ fn: () => table_getFilteredRowModel(table),
32
+ },
33
+ table_getPreGroupedRowModel: {
34
+ fn: () => table_getPreGroupedRowModel(table),
35
+ },
36
+ table_getGroupedRowModel: {
37
+ fn: () => table_getGroupedRowModel(table),
38
+ },
39
+ table_getPreSortedRowModel: {
40
+ fn: () => table_getPreSortedRowModel(table),
41
+ },
42
+ table_getSortedRowModel: {
43
+ fn: () => table_getSortedRowModel(table),
44
+ },
45
+ table_getPreExpandedRowModel: {
46
+ fn: () => table_getPreExpandedRowModel(table),
47
+ },
48
+ table_getExpandedRowModel: {
49
+ fn: () => table_getExpandedRowModel(table),
50
+ },
51
+ table_getPrePaginatedRowModel: {
52
+ fn: () => table_getPrePaginatedRowModel(table),
53
+ },
54
+ table_getPaginatedRowModel: {
55
+ fn: () => table_getPaginatedRowModel(table),
56
+ },
57
+ table_getRowModel: {
58
+ fn: () => table_getRowModel(table),
59
+ },
60
+ })
61
+ },
78
62
  }
79
-
80
- /**
81
- * The Core Row Models feature provides the core row model functionality.
82
- */
83
- export const coreRowModelsFeature = constructCoreRowModelsFeature()
@@ -10,41 +10,24 @@ import type { TableFeatures } from '../../types/TableFeatures'
10
10
  import type { RowData } from '../../types/type-utils'
11
11
 
12
12
  export interface RowModel<
13
- TFeatures extends TableFeatures,
14
- TData extends RowData,
13
+ in out TFeatures extends TableFeatures,
14
+ in out TData extends RowData,
15
15
  > {
16
16
  rows: Array<Row<TFeatures, TData>>
17
17
  flatRows: Array<Row<TFeatures, TData>>
18
18
  rowsById: Record<string, Row<TFeatures, TData>>
19
19
  }
20
20
 
21
- export interface CreateRowModel_Plugins {}
22
-
23
- export interface CreateRowModel_Core<
24
- TFeatures extends TableFeatures,
25
- TData extends RowData,
26
- > extends CreateRowModel_Plugins {
27
- /**
28
- * Optional factory for the core row model. When omitted, the built-in
29
- * `createCoreRowModel()` factory is used.
30
- */
31
- coreRowModel?: (
32
- table: Table<TFeatures, TData>,
33
- ) => () => RowModel<TFeatures, TData>
34
- }
35
-
36
- export interface CachedRowModel_Plugins {}
37
-
38
21
  export interface CachedRowModel_Core<
39
- TFeatures extends TableFeatures,
40
- TData extends RowData,
41
- > extends CachedRowModel_Plugins {
22
+ in out TFeatures extends TableFeatures,
23
+ in out TData extends RowData,
24
+ > {
42
25
  coreRowModel: () => RowModel<TFeatures, TData>
43
26
  }
44
27
 
45
28
  export interface Table_RowModels_Core<
46
- TFeatures extends TableFeatures,
47
- TData extends RowData,
29
+ in out TFeatures extends TableFeatures,
30
+ in out TData extends RowData,
48
31
  > {
49
32
  /**
50
33
  * Returns the core row model before any processing has been applied.
@@ -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
2
  import { 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,
@@ -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
  /**
@@ -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[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()