@tanstack/table-core 9.0.0-beta.9 → 9.0.0

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 (672) hide show
  1. package/README.md +27 -9
  2. package/dist/core/cells/constructCell.d.ts +4 -6
  3. package/dist/core/cells/constructCell.js +4 -6
  4. package/dist/core/cells/coreCellsFeature.d.ts +1 -3
  5. package/dist/core/cells/coreCellsFeature.js +1 -2
  6. package/dist/core/cells/coreCellsFeature.types.d.ts +7 -9
  7. package/dist/core/cells/coreCellsFeature.utils.d.ts +5 -5
  8. package/dist/core/cells/coreCellsFeature.utils.js +1 -2
  9. package/dist/core/columns/constructColumn.d.ts +4 -6
  10. package/dist/core/columns/constructColumn.js +8 -9
  11. package/dist/core/columns/coreColumnsFeature.d.ts +2 -4
  12. package/dist/core/columns/coreColumnsFeature.js +14 -21
  13. package/dist/core/columns/coreColumnsFeature.types.d.ts +13 -15
  14. package/dist/core/columns/coreColumnsFeature.utils.d.ts +10 -12
  15. package/dist/core/columns/coreColumnsFeature.utils.js +19 -20
  16. package/dist/core/coreFeatures.d.ts +2 -2
  17. package/dist/core/coreFeatures.js +1 -2
  18. package/dist/core/headers/buildHeaderGroups.d.ts +3 -5
  19. package/dist/core/headers/buildHeaderGroups.js +99 -85
  20. package/dist/core/headers/constructHeader.d.ts +3 -5
  21. package/dist/core/headers/constructHeader.js +4 -6
  22. package/dist/core/headers/coreHeadersFeature.d.ts +1 -3
  23. package/dist/core/headers/coreHeadersFeature.js +9 -13
  24. package/dist/core/headers/coreHeadersFeature.types.d.ts +22 -12
  25. package/dist/core/headers/coreHeadersFeature.utils.d.ts +8 -8
  26. package/dist/core/headers/coreHeadersFeature.utils.js +14 -17
  27. package/dist/core/reactivity/coreReactivityFeature.types.d.ts +8 -3
  28. package/dist/core/reactivity/coreReactivityFeature.utils.d.ts +1 -3
  29. package/dist/core/reactivity/coreReactivityFeature.utils.js +1 -2
  30. package/dist/core/reactivity/renderPhaseReactivity.d.ts +80 -0
  31. package/dist/core/reactivity/renderPhaseReactivity.js +95 -0
  32. package/dist/core/row-models/coreRowModelsFeature.d.ts +1 -3
  33. package/dist/core/row-models/coreRowModelsFeature.js +1 -2
  34. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +7 -17
  35. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +17 -19
  36. package/dist/core/row-models/coreRowModelsFeature.utils.js +9 -28
  37. package/dist/core/row-models/createCoreRowModel.d.ts +3 -5
  38. package/dist/core/row-models/createCoreRowModel.js +29 -24
  39. package/dist/core/rows/constructRow.d.ts +3 -5
  40. package/dist/core/rows/constructRow.js +9 -13
  41. package/dist/core/rows/coreRowsFeature.d.ts +1 -3
  42. package/dist/core/rows/coreRowsFeature.js +20 -5
  43. package/dist/core/rows/coreRowsFeature.types.d.ts +43 -11
  44. package/dist/core/rows/coreRowsFeature.utils.d.ts +26 -9
  45. package/dist/core/rows/coreRowsFeature.utils.js +65 -14
  46. package/dist/core/table/constructTable.d.ts +2 -4
  47. package/dist/core/table/constructTable.js +54 -22
  48. package/dist/core/table/coreTablesFeature.d.ts +1 -3
  49. package/dist/core/table/coreTablesFeature.js +1 -2
  50. package/dist/core/table/coreTablesFeature.types.d.ts +41 -24
  51. package/dist/core/table/coreTablesFeature.utils.d.ts +34 -12
  52. package/dist/core/table/coreTablesFeature.utils.js +71 -25
  53. package/dist/experimental-worker-plugin.d.ts +5 -0
  54. package/dist/experimental-worker-plugin.js +6 -0
  55. package/dist/features/cell-selection/cellSelectionFeature.d.ts +8 -0
  56. package/dist/features/cell-selection/cellSelectionFeature.js +128 -0
  57. package/dist/features/cell-selection/cellSelectionFeature.types.d.ts +296 -0
  58. package/dist/features/cell-selection/cellSelectionFeature.utils.d.ts +306 -0
  59. package/dist/features/cell-selection/cellSelectionFeature.utils.js +879 -0
  60. package/dist/features/cell-selection/cellSelectionGeometry.js +121 -0
  61. package/dist/features/cell-spanning/cellSpanningFeature.d.ts +13 -0
  62. package/dist/features/cell-spanning/cellSpanningFeature.js +47 -0
  63. package/dist/features/cell-spanning/cellSpanningFeature.types.d.ts +150 -0
  64. package/dist/features/cell-spanning/cellSpanningFeature.utils.d.ts +74 -0
  65. package/dist/features/cell-spanning/cellSpanningFeature.utils.js +262 -0
  66. package/dist/features/column-faceting/columnFacetingFeature.d.ts +7 -3
  67. package/dist/features/column-faceting/columnFacetingFeature.js +14 -43
  68. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +15 -35
  69. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +10 -12
  70. package/dist/features/column-faceting/columnFacetingFeature.utils.js +29 -14
  71. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +2 -4
  72. package/dist/features/column-faceting/createFacetedMinMaxValues.js +9 -7
  73. package/dist/features/column-faceting/createFacetedRowModel.d.ts +3 -5
  74. package/dist/features/column-faceting/createFacetedRowModel.js +12 -17
  75. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +2 -4
  76. package/dist/features/column-faceting/createFacetedUniqueValues.js +12 -9
  77. package/dist/features/column-filtering/columnFilteringFeature.d.ts +1 -3
  78. package/dist/features/column-filtering/columnFilteringFeature.js +4 -5
  79. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +90 -33
  80. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +25 -18
  81. package/dist/features/column-filtering/columnFilteringFeature.utils.js +42 -23
  82. package/dist/features/column-filtering/createFilteredRowModel.d.ts +11 -7
  83. package/dist/features/column-filtering/createFilteredRowModel.js +34 -30
  84. package/dist/features/column-filtering/filterFns.d.ts +210 -0
  85. package/dist/features/column-filtering/filterFns.js +377 -0
  86. package/dist/features/column-filtering/filterRowsUtils.js +12 -4
  87. package/dist/features/column-grouping/columnGroupingFeature.d.ts +2 -4
  88. package/dist/features/column-grouping/columnGroupingFeature.js +7 -20
  89. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +14 -52
  90. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +12 -51
  91. package/dist/features/column-grouping/columnGroupingFeature.utils.js +8 -61
  92. package/dist/features/column-grouping/createGroupedRowModel.d.ts +7 -7
  93. package/dist/features/column-grouping/createGroupedRowModel.js +79 -43
  94. package/dist/features/column-ordering/columnOrderingFeature.d.ts +1 -3
  95. package/dist/features/column-ordering/columnOrderingFeature.js +19 -24
  96. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +28 -5
  97. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +26 -16
  98. package/dist/features/column-ordering/columnOrderingFeature.utils.js +36 -18
  99. package/dist/features/column-pinning/columnPinningFeature.d.ts +7 -4
  100. package/dist/features/column-pinning/columnPinningFeature.js +126 -146
  101. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +53 -44
  102. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +100 -93
  103. package/dist/features/column-pinning/columnPinningFeature.utils.js +148 -150
  104. package/dist/features/column-resizing/columnResizingFeature.d.ts +1 -3
  105. package/dist/features/column-resizing/columnResizingFeature.js +1 -2
  106. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +2 -7
  107. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +7 -9
  108. package/dist/features/column-resizing/columnResizingFeature.utils.js +86 -48
  109. package/dist/features/column-sizing/columnSizingFeature.d.ts +1 -3
  110. package/dist/features/column-sizing/columnSizingFeature.js +35 -70
  111. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +52 -11
  112. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +43 -27
  113. package/dist/features/column-sizing/columnSizingFeature.utils.js +95 -54
  114. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +1 -3
  115. package/dist/features/column-visibility/columnVisibilityFeature.js +26 -38
  116. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +4 -6
  117. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +22 -20
  118. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +39 -32
  119. package/dist/features/global-filtering/globalFilteringFeature.d.ts +1 -3
  120. package/dist/features/global-filtering/globalFilteringFeature.js +3 -4
  121. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +4 -6
  122. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -13
  123. package/dist/features/global-filtering/globalFilteringFeature.utils.js +7 -8
  124. package/dist/features/row-aggregation/aggregationFns.d.ts +66 -0
  125. package/dist/features/row-aggregation/aggregationFns.js +279 -0
  126. package/dist/features/row-aggregation/rowAggregationFeature.d.ts +8 -0
  127. package/dist/features/row-aggregation/rowAggregationFeature.js +35 -0
  128. package/dist/features/row-aggregation/rowAggregationFeature.types.d.ts +193 -0
  129. package/dist/features/row-aggregation/rowAggregationFeature.types.js +11 -0
  130. package/dist/features/row-aggregation/rowAggregationFeature.utils.d.ts +46 -0
  131. package/dist/features/row-aggregation/rowAggregationFeature.utils.js +235 -0
  132. package/dist/features/row-expanding/createExpandedRowModel.d.ts +3 -5
  133. package/dist/features/row-expanding/createExpandedRowModel.js +9 -13
  134. package/dist/features/row-expanding/rowExpandingFeature.d.ts +1 -3
  135. package/dist/features/row-expanding/rowExpandingFeature.js +1 -2
  136. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +7 -18
  137. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +26 -22
  138. package/dist/features/row-expanding/rowExpandingFeature.utils.js +66 -45
  139. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +3 -5
  140. package/dist/features/row-pagination/createPaginatedRowModel.js +10 -12
  141. package/dist/features/row-pagination/rowPaginationFeature.d.ts +1 -3
  142. package/dist/features/row-pagination/rowPaginationFeature.js +1 -2
  143. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +6 -17
  144. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +18 -20
  145. package/dist/features/row-pagination/rowPaginationFeature.utils.js +10 -17
  146. package/dist/features/row-pinning/rowPinningFeature.d.ts +1 -3
  147. package/dist/features/row-pinning/rowPinningFeature.js +5 -18
  148. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +3 -5
  149. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +8 -10
  150. package/dist/features/row-pinning/rowPinningFeature.utils.js +12 -18
  151. package/dist/features/row-selection/rowSelectionFeature.d.ts +1 -3
  152. package/dist/features/row-selection/rowSelectionFeature.js +70 -25
  153. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +69 -16
  154. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +70 -38
  155. package/dist/features/row-selection/rowSelectionFeature.utils.js +229 -108
  156. package/dist/features/row-sorting/createSortedRowModel.d.ts +11 -7
  157. package/dist/features/row-sorting/createSortedRowModel.js +72 -54
  158. package/dist/features/row-sorting/rowSortingFeature.d.ts +1 -3
  159. package/dist/features/row-sorting/rowSortingFeature.js +2 -2
  160. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +74 -31
  161. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +39 -27
  162. package/dist/features/row-sorting/rowSortingFeature.utils.js +66 -33
  163. package/dist/features/row-sorting/sortFns.d.ts +96 -0
  164. package/dist/features/row-sorting/sortFns.js +216 -0
  165. package/dist/features/stockFeatures.d.ts +7 -3
  166. package/dist/features/stockFeatures.js +7 -2
  167. package/dist/flex-render.d.ts +2 -4
  168. package/dist/flex-render.js +10 -3
  169. package/dist/helpers/columnHelper.d.ts +3 -5
  170. package/dist/helpers/columnHelper.js +1 -2
  171. package/dist/helpers/metaHelper.d.ts +1 -2
  172. package/dist/helpers/metaHelper.js +1 -2
  173. package/dist/helpers/tableFeatures.d.ts +30 -13
  174. package/dist/helpers/tableFeatures.js +28 -10
  175. package/dist/helpers/tableOptions.d.ts +1 -3
  176. package/dist/helpers/tableOptions.js +1 -2
  177. package/dist/index.d.ts +32 -26
  178. package/dist/index.js +9 -5
  179. package/dist/reactivity.d.ts +2 -1
  180. package/dist/reactivity.js +2 -1
  181. package/dist/static-functions.d.ts +12 -9
  182. package/dist/static-functions.js +13 -10
  183. package/dist/store-reactivity-bindings.d.ts +1 -3
  184. package/dist/store-reactivity-bindings.js +3 -4
  185. package/dist/types/Cell.d.ts +9 -5
  186. package/dist/types/Column.d.ts +13 -15
  187. package/dist/types/ColumnDef.d.ts +23 -19
  188. package/dist/types/Header.d.ts +3 -5
  189. package/dist/types/HeaderGroup.d.ts +3 -5
  190. package/dist/types/Row.d.ts +7 -7
  191. package/dist/types/RowModel.d.ts +11 -25
  192. package/dist/types/RowModelFns.d.ts +5 -7
  193. package/dist/types/Table.d.ts +29 -32
  194. package/dist/types/TableFeatures.d.ts +372 -30
  195. package/dist/types/TableOptions.d.ts +24 -14
  196. package/dist/types/TableState.d.ts +8 -8
  197. package/dist/types/type-utils.d.ts +10 -4
  198. package/dist/utils.d.ts +42 -27
  199. package/dist/utils.js +71 -33
  200. package/dist/worker/createTableWorker.d.ts +102 -0
  201. package/dist/worker/createTableWorker.js +188 -0
  202. package/dist/worker/createWorkerRowModel.d.ts +40 -0
  203. package/dist/worker/createWorkerRowModel.js +77 -0
  204. package/dist/worker/initTableWorker.d.ts +31 -0
  205. package/dist/worker/initTableWorker.js +99 -0
  206. package/dist/worker/rebuildRowModel.d.ts +11 -0
  207. package/dist/worker/rebuildRowModel.js +71 -0
  208. package/dist/worker/serializeRowModel.js +51 -0
  209. package/dist/worker/tableWorkerProtocol.d.ts +88 -0
  210. package/dist/worker/tableWorkerProtocol.js +26 -0
  211. package/package.json +12 -28
  212. package/skills/aggregation/SKILL.md +137 -0
  213. package/skills/api-not-found/SKILL.md +113 -0
  214. package/skills/cell-selection/SKILL.md +200 -0
  215. package/skills/cell-spanning/SKILL.md +158 -0
  216. package/skills/client-vs-server/SKILL.md +164 -0
  217. package/skills/column-faceting/SKILL.md +93 -0
  218. package/skills/column-filtering/SKILL.md +83 -0
  219. package/skills/column-ordering/SKILL.md +71 -0
  220. package/skills/column-pinning/SKILL.md +85 -0
  221. package/skills/column-resizing/SKILL.md +87 -0
  222. package/skills/column-sizing/SKILL.md +68 -0
  223. package/skills/column-visibility/SKILL.md +71 -0
  224. package/skills/core/SKILL.md +175 -0
  225. package/skills/custom-features/SKILL.md +235 -0
  226. package/skills/expanding/SKILL.md +76 -0
  227. package/skills/global-filtering/SKILL.md +80 -0
  228. package/skills/grouping/SKILL.md +47 -401
  229. package/skills/migrate-v8-to-v9/SKILL.md +275 -416
  230. package/skills/pagination/SKILL.md +33 -344
  231. package/skills/row-pinning/SKILL.md +43 -234
  232. package/skills/row-selection/SKILL.md +79 -296
  233. package/skills/sorting/SKILL.md +41 -303
  234. package/skills/table-features/SKILL.md +159 -0
  235. package/skills/typescript/SKILL.md +126 -0
  236. package/dist/core/cells/constructCell.cjs +0 -34
  237. package/dist/core/cells/constructCell.cjs.map +0 -1
  238. package/dist/core/cells/constructCell.d.cts +0 -17
  239. package/dist/core/cells/constructCell.js.map +0 -1
  240. package/dist/core/cells/coreCellsFeature.cjs +0 -21
  241. package/dist/core/cells/coreCellsFeature.cjs.map +0 -1
  242. package/dist/core/cells/coreCellsFeature.d.cts +0 -10
  243. package/dist/core/cells/coreCellsFeature.js.map +0 -1
  244. package/dist/core/cells/coreCellsFeature.types.d.cts +0 -57
  245. package/dist/core/cells/coreCellsFeature.utils.cjs +0 -57
  246. package/dist/core/cells/coreCellsFeature.utils.cjs.map +0 -1
  247. package/dist/core/cells/coreCellsFeature.utils.d.cts +0 -53
  248. package/dist/core/cells/coreCellsFeature.utils.js.map +0 -1
  249. package/dist/core/columns/constructColumn.cjs +0 -61
  250. package/dist/core/columns/constructColumn.cjs.map +0 -1
  251. package/dist/core/columns/constructColumn.d.cts +0 -16
  252. package/dist/core/columns/constructColumn.js.map +0 -1
  253. package/dist/core/columns/coreColumnsFeature.cjs +0 -70
  254. package/dist/core/columns/coreColumnsFeature.cjs.map +0 -1
  255. package/dist/core/columns/coreColumnsFeature.d.cts +0 -10
  256. package/dist/core/columns/coreColumnsFeature.js.map +0 -1
  257. package/dist/core/columns/coreColumnsFeature.types.d.cts +0 -94
  258. package/dist/core/columns/coreColumnsFeature.utils.cjs +0 -187
  259. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +0 -1
  260. package/dist/core/columns/coreColumnsFeature.utils.d.cts +0 -119
  261. package/dist/core/columns/coreColumnsFeature.utils.js.map +0 -1
  262. package/dist/core/coreFeatures.cjs +0 -25
  263. package/dist/core/coreFeatures.cjs.map +0 -1
  264. package/dist/core/coreFeatures.d.cts +0 -26
  265. package/dist/core/coreFeatures.js.map +0 -1
  266. package/dist/core/headers/buildHeaderGroups.cjs +0 -103
  267. package/dist/core/headers/buildHeaderGroups.cjs.map +0 -1
  268. package/dist/core/headers/buildHeaderGroups.d.cts +0 -16
  269. package/dist/core/headers/buildHeaderGroups.js.map +0 -1
  270. package/dist/core/headers/constructHeader.cjs +0 -41
  271. package/dist/core/headers/constructHeader.cjs.map +0 -1
  272. package/dist/core/headers/constructHeader.d.cts +0 -22
  273. package/dist/core/headers/constructHeader.js.map +0 -1
  274. package/dist/core/headers/coreHeadersFeature.cjs +0 -55
  275. package/dist/core/headers/coreHeadersFeature.cjs.map +0 -1
  276. package/dist/core/headers/coreHeadersFeature.d.cts +0 -10
  277. package/dist/core/headers/coreHeadersFeature.js.map +0 -1
  278. package/dist/core/headers/coreHeadersFeature.types.d.cts +0 -106
  279. package/dist/core/headers/coreHeadersFeature.utils.cjs +0 -142
  280. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +0 -1
  281. package/dist/core/headers/coreHeadersFeature.utils.d.cts +0 -85
  282. package/dist/core/headers/coreHeadersFeature.utils.js.map +0 -1
  283. package/dist/core/reactivity/coreReactivityFeature.types.d.cts +0 -48
  284. package/dist/core/reactivity/coreReactivityFeature.utils.cjs +0 -24
  285. package/dist/core/reactivity/coreReactivityFeature.utils.cjs.map +0 -1
  286. package/dist/core/reactivity/coreReactivityFeature.utils.d.cts +0 -24
  287. package/dist/core/reactivity/coreReactivityFeature.utils.js.map +0 -1
  288. package/dist/core/row-models/coreRowModelsFeature.cjs +0 -27
  289. package/dist/core/row-models/coreRowModelsFeature.cjs.map +0 -1
  290. package/dist/core/row-models/coreRowModelsFeature.d.cts +0 -10
  291. package/dist/core/row-models/coreRowModelsFeature.js.map +0 -1
  292. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +0 -41
  293. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +0 -215
  294. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +0 -1
  295. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +0 -153
  296. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +0 -1
  297. package/dist/core/row-models/createCoreRowModel.cjs +0 -52
  298. package/dist/core/row-models/createCoreRowModel.cjs.map +0 -1
  299. package/dist/core/row-models/createCoreRowModel.d.cts +0 -15
  300. package/dist/core/row-models/createCoreRowModel.js.map +0 -1
  301. package/dist/core/rows/constructRow.cjs +0 -44
  302. package/dist/core/rows/constructRow.cjs.map +0 -1
  303. package/dist/core/rows/constructRow.d.cts +0 -15
  304. package/dist/core/rows/constructRow.js.map +0 -1
  305. package/dist/core/rows/coreRowsFeature.cjs +0 -37
  306. package/dist/core/rows/coreRowsFeature.cjs.map +0 -1
  307. package/dist/core/rows/coreRowsFeature.d.cts +0 -10
  308. package/dist/core/rows/coreRowsFeature.js.map +0 -1
  309. package/dist/core/rows/coreRowsFeature.types.d.cts +0 -99
  310. package/dist/core/rows/coreRowsFeature.utils.cjs +0 -192
  311. package/dist/core/rows/coreRowsFeature.utils.cjs.map +0 -1
  312. package/dist/core/rows/coreRowsFeature.utils.d.cts +0 -127
  313. package/dist/core/rows/coreRowsFeature.utils.js.map +0 -1
  314. package/dist/core/table/constructTable.cjs +0 -119
  315. package/dist/core/table/constructTable.cjs.map +0 -1
  316. package/dist/core/table/constructTable.d.cts +0 -22
  317. package/dist/core/table/constructTable.js.map +0 -1
  318. package/dist/core/table/coreTablesFeature.cjs +0 -17
  319. package/dist/core/table/coreTablesFeature.cjs.map +0 -1
  320. package/dist/core/table/coreTablesFeature.d.cts +0 -10
  321. package/dist/core/table/coreTablesFeature.js.map +0 -1
  322. package/dist/core/table/coreTablesFeature.types.d.cts +0 -200
  323. package/dist/core/table/coreTablesFeature.utils.cjs +0 -96
  324. package/dist/core/table/coreTablesFeature.utils.cjs.map +0 -1
  325. package/dist/core/table/coreTablesFeature.utils.d.cts +0 -57
  326. package/dist/core/table/coreTablesFeature.utils.js.map +0 -1
  327. package/dist/features/column-faceting/columnFacetingFeature.cjs +0 -61
  328. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +0 -1
  329. package/dist/features/column-faceting/columnFacetingFeature.d.cts +0 -10
  330. package/dist/features/column-faceting/columnFacetingFeature.js.map +0 -1
  331. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +0 -85
  332. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +0 -103
  333. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +0 -1
  334. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +0 -84
  335. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +0 -1
  336. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +0 -44
  337. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +0 -1
  338. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +0 -14
  339. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +0 -1
  340. package/dist/features/column-faceting/createFacetedRowModel.cjs +0 -50
  341. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +0 -1
  342. package/dist/features/column-faceting/createFacetedRowModel.d.cts +0 -15
  343. package/dist/features/column-faceting/createFacetedRowModel.js.map +0 -1
  344. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +0 -41
  345. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +0 -1
  346. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +0 -14
  347. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +0 -1
  348. package/dist/features/column-filtering/columnFilteringFeature.cjs +0 -50
  349. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +0 -1
  350. package/dist/features/column-filtering/columnFilteringFeature.d.cts +0 -10
  351. package/dist/features/column-filtering/columnFilteringFeature.js.map +0 -1
  352. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +0 -160
  353. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +0 -212
  354. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +0 -1
  355. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +0 -143
  356. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +0 -1
  357. package/dist/features/column-filtering/createFilteredRowModel.cjs +0 -110
  358. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +0 -1
  359. package/dist/features/column-filtering/createFilteredRowModel.d.cts +0 -16
  360. package/dist/features/column-filtering/createFilteredRowModel.js.map +0 -1
  361. package/dist/features/column-filtering/filterRowsUtils.cjs +0 -81
  362. package/dist/features/column-filtering/filterRowsUtils.cjs.map +0 -1
  363. package/dist/features/column-filtering/filterRowsUtils.js.map +0 -1
  364. package/dist/features/column-grouping/columnGroupingFeature.cjs +0 -67
  365. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +0 -1
  366. package/dist/features/column-grouping/columnGroupingFeature.d.cts +0 -10
  367. package/dist/features/column-grouping/columnGroupingFeature.js.map +0 -1
  368. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +0 -165
  369. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +0 -250
  370. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +0 -1
  371. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +0 -190
  372. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +0 -1
  373. package/dist/features/column-grouping/createGroupedRowModel.cjs +0 -119
  374. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +0 -1
  375. package/dist/features/column-grouping/createGroupedRowModel.d.cts +0 -16
  376. package/dist/features/column-grouping/createGroupedRowModel.js.map +0 -1
  377. package/dist/features/column-ordering/columnOrderingFeature.cjs +0 -58
  378. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +0 -1
  379. package/dist/features/column-ordering/columnOrderingFeature.d.cts +0 -10
  380. package/dist/features/column-ordering/columnOrderingFeature.js.map +0 -1
  381. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +0 -56
  382. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +0 -172
  383. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +0 -1
  384. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +0 -107
  385. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +0 -1
  386. package/dist/features/column-pinning/columnPinningFeature.cjs +0 -221
  387. package/dist/features/column-pinning/columnPinningFeature.cjs.map +0 -1
  388. package/dist/features/column-pinning/columnPinningFeature.d.cts +0 -10
  389. package/dist/features/column-pinning/columnPinningFeature.js.map +0 -1
  390. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +0 -178
  391. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +0 -585
  392. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +0 -1
  393. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +0 -375
  394. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +0 -1
  395. package/dist/features/column-resizing/columnResizingFeature.cjs +0 -41
  396. package/dist/features/column-resizing/columnResizingFeature.cjs.map +0 -1
  397. package/dist/features/column-resizing/columnResizingFeature.d.cts +0 -10
  398. package/dist/features/column-resizing/columnResizingFeature.js.map +0 -1
  399. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +0 -81
  400. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +0 -246
  401. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +0 -1
  402. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +0 -109
  403. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +0 -1
  404. package/dist/features/column-sizing/columnSizingFeature.cjs +0 -124
  405. package/dist/features/column-sizing/columnSizingFeature.cjs.map +0 -1
  406. package/dist/features/column-sizing/columnSizingFeature.d.cts +0 -10
  407. package/dist/features/column-sizing/columnSizingFeature.js.map +0 -1
  408. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +0 -96
  409. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +0 -256
  410. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +0 -1
  411. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +0 -182
  412. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +0 -1
  413. package/dist/features/column-visibility/columnVisibilityFeature.cjs +0 -94
  414. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +0 -1
  415. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +0 -10
  416. package/dist/features/column-visibility/columnVisibilityFeature.js.map +0 -1
  417. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +0 -97
  418. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +0 -283
  419. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +0 -1
  420. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +0 -189
  421. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +0 -1
  422. package/dist/features/global-filtering/globalFilteringFeature.cjs +0 -41
  423. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +0 -1
  424. package/dist/features/global-filtering/globalFilteringFeature.d.cts +0 -10
  425. package/dist/features/global-filtering/globalFilteringFeature.js.map +0 -1
  426. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +0 -71
  427. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +0 -88
  428. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +0 -1
  429. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +0 -74
  430. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +0 -1
  431. package/dist/features/row-expanding/createExpandedRowModel.cjs +0 -59
  432. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +0 -1
  433. package/dist/features/row-expanding/createExpandedRowModel.d.cts +0 -21
  434. package/dist/features/row-expanding/createExpandedRowModel.js.map +0 -1
  435. package/dist/features/row-expanding/rowExpandingFeature.cjs +0 -47
  436. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +0 -1
  437. package/dist/features/row-expanding/rowExpandingFeature.d.cts +0 -10
  438. package/dist/features/row-expanding/rowExpandingFeature.js.map +0 -1
  439. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +0 -127
  440. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +0 -281
  441. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +0 -1
  442. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +0 -191
  443. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +0 -1
  444. package/dist/features/row-pagination/createPaginatedRowModel.cjs +0 -62
  445. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +0 -1
  446. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +0 -15
  447. package/dist/features/row-pagination/createPaginatedRowModel.js.map +0 -1
  448. package/dist/features/row-pagination/rowPaginationFeature.cjs +0 -45
  449. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +0 -1
  450. package/dist/features/row-pagination/rowPaginationFeature.d.cts +0 -10
  451. package/dist/features/row-pagination/rowPaginationFeature.js.map +0 -1
  452. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +0 -135
  453. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +0 -312
  454. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +0 -1
  455. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +0 -218
  456. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +0 -1
  457. package/dist/features/row-pinning/rowPinningFeature.cjs +0 -67
  458. package/dist/features/row-pinning/rowPinningFeature.cjs.map +0 -1
  459. package/dist/features/row-pinning/rowPinningFeature.d.cts +0 -10
  460. package/dist/features/row-pinning/rowPinningFeature.js.map +0 -1
  461. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +0 -83
  462. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +0 -229
  463. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +0 -1
  464. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +0 -143
  465. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +0 -1
  466. package/dist/features/row-selection/rowSelectionFeature.cjs +0 -75
  467. package/dist/features/row-selection/rowSelectionFeature.cjs.map +0 -1
  468. package/dist/features/row-selection/rowSelectionFeature.d.cts +0 -10
  469. package/dist/features/row-selection/rowSelectionFeature.js.map +0 -1
  470. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +0 -136
  471. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +0 -518
  472. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +0 -1
  473. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +0 -318
  474. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +0 -1
  475. package/dist/features/row-sorting/createSortedRowModel.cjs +0 -95
  476. package/dist/features/row-sorting/createSortedRowModel.cjs.map +0 -1
  477. package/dist/features/row-sorting/createSortedRowModel.d.cts +0 -16
  478. package/dist/features/row-sorting/createSortedRowModel.js.map +0 -1
  479. package/dist/features/row-sorting/rowSortingFeature.cjs +0 -55
  480. package/dist/features/row-sorting/rowSortingFeature.cjs.map +0 -1
  481. package/dist/features/row-sorting/rowSortingFeature.d.cts +0 -10
  482. package/dist/features/row-sorting/rowSortingFeature.js.map +0 -1
  483. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +0 -188
  484. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +0 -305
  485. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +0 -1
  486. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +0 -193
  487. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +0 -1
  488. package/dist/features/stockFeatures.cjs +0 -41
  489. package/dist/features/stockFeatures.cjs.map +0 -1
  490. package/dist/features/stockFeatures.d.cts +0 -41
  491. package/dist/features/stockFeatures.js.map +0 -1
  492. package/dist/flex-render.cjs +0 -29
  493. package/dist/flex-render.cjs.map +0 -1
  494. package/dist/flex-render.d.cts +0 -34
  495. package/dist/flex-render.js.map +0 -1
  496. package/dist/fns/aggregationFns.cjs +0 -161
  497. package/dist/fns/aggregationFns.cjs.map +0 -1
  498. package/dist/fns/aggregationFns.d.cts +0 -85
  499. package/dist/fns/aggregationFns.d.ts +0 -85
  500. package/dist/fns/aggregationFns.js +0 -151
  501. package/dist/fns/aggregationFns.js.map +0 -1
  502. package/dist/fns/filterFns.cjs +0 -201
  503. package/dist/fns/filterFns.cjs.map +0 -1
  504. package/dist/fns/filterFns.d.cts +0 -167
  505. package/dist/fns/filterFns.d.ts +0 -167
  506. package/dist/fns/filterFns.js +0 -185
  507. package/dist/fns/filterFns.js.map +0 -1
  508. package/dist/fns/sortFns.cjs +0 -130
  509. package/dist/fns/sortFns.cjs.map +0 -1
  510. package/dist/fns/sortFns.d.cts +0 -65
  511. package/dist/fns/sortFns.d.ts +0 -65
  512. package/dist/fns/sortFns.js +0 -122
  513. package/dist/fns/sortFns.js.map +0 -1
  514. package/dist/helpers/columnHelper.cjs +0 -41
  515. package/dist/helpers/columnHelper.cjs.map +0 -1
  516. package/dist/helpers/columnHelper.d.cts +0 -71
  517. package/dist/helpers/columnHelper.js.map +0 -1
  518. package/dist/helpers/metaHelper.cjs +0 -30
  519. package/dist/helpers/metaHelper.cjs.map +0 -1
  520. package/dist/helpers/metaHelper.d.cts +0 -26
  521. package/dist/helpers/metaHelper.js.map +0 -1
  522. package/dist/helpers/tableFeatures.cjs +0 -30
  523. package/dist/helpers/tableFeatures.cjs.map +0 -1
  524. package/dist/helpers/tableFeatures.d.cts +0 -28
  525. package/dist/helpers/tableFeatures.js.map +0 -1
  526. package/dist/helpers/tableOptions.cjs +0 -15
  527. package/dist/helpers/tableOptions.cjs.map +0 -1
  528. package/dist/helpers/tableOptions.d.cts +0 -57
  529. package/dist/helpers/tableOptions.js.map +0 -1
  530. package/dist/index.cjs +0 -135
  531. package/dist/index.d.cts +0 -79
  532. package/dist/reactivity.cjs +0 -4
  533. package/dist/reactivity.d.cts +0 -3
  534. package/dist/static-functions.cjs +0 -263
  535. package/dist/static-functions.d.cts +0 -21
  536. package/dist/store-reactivity-bindings.cjs +0 -44
  537. package/dist/store-reactivity-bindings.cjs.map +0 -1
  538. package/dist/store-reactivity-bindings.d.cts +0 -22
  539. package/dist/store-reactivity-bindings.js.map +0 -1
  540. package/dist/types/Cell.d.cts +0 -14
  541. package/dist/types/Column.d.cts +0 -36
  542. package/dist/types/ColumnDef.d.cts +0 -123
  543. package/dist/types/Header.d.cts +0 -16
  544. package/dist/types/HeaderGroup.d.cts +0 -10
  545. package/dist/types/Row.d.cts +0 -26
  546. package/dist/types/RowModel.d.cts +0 -36
  547. package/dist/types/RowModelFns.d.cts +0 -18
  548. package/dist/types/Table.d.cts +0 -70
  549. package/dist/types/TableFeatures.d.cts +0 -75
  550. package/dist/types/TableOptions.d.cts +0 -69
  551. package/dist/types/TableState.d.cts +0 -48
  552. package/dist/types/type-utils.d.cts +0 -23
  553. package/dist/utils.cjs +0 -243
  554. package/dist/utils.cjs.map +0 -1
  555. package/dist/utils.d.cts +0 -114
  556. package/dist/utils.js.map +0 -1
  557. package/skills/column-definitions/SKILL.md +0 -333
  558. package/skills/column-layout/SKILL.md +0 -328
  559. package/skills/column-layout/references/subsystems.md +0 -220
  560. package/skills/customizing-feature-behavior/SKILL.md +0 -416
  561. package/skills/filtering/SKILL.md +0 -357
  562. package/skills/filtering/references/faceting-and-fuzzy.md +0 -191
  563. package/skills/row-expanding/SKILL.md +0 -348
  564. package/skills/setup/SKILL.md +0 -400
  565. package/skills/state-management/SKILL.md +0 -388
  566. package/src/core/cells/constructCell.ts +0 -55
  567. package/src/core/cells/coreCellsFeature.ts +0 -27
  568. package/src/core/cells/coreCellsFeature.types.ts +0 -68
  569. package/src/core/cells/coreCellsFeature.utils.ts +0 -68
  570. package/src/core/columns/constructColumn.ts +0 -119
  571. package/src/core/columns/coreColumnsFeature.ts +0 -73
  572. package/src/core/columns/coreColumnsFeature.types.ts +0 -108
  573. package/src/core/columns/coreColumnsFeature.utils.ts +0 -275
  574. package/src/core/coreFeatures.ts +0 -31
  575. package/src/core/headers/buildHeaderGroups.ts +0 -182
  576. package/src/core/headers/constructHeader.ts +0 -67
  577. package/src/core/headers/coreHeadersFeature.ts +0 -56
  578. package/src/core/headers/coreHeadersFeature.types.ts +0 -125
  579. package/src/core/headers/coreHeadersFeature.utils.ts +0 -200
  580. package/src/core/reactivity/coreReactivityFeature.types.ts +0 -56
  581. package/src/core/reactivity/coreReactivityFeature.utils.ts +0 -44
  582. package/src/core/row-models/coreRowModelsFeature.ts +0 -62
  583. package/src/core/row-models/coreRowModelsFeature.types.ts +0 -64
  584. package/src/core/row-models/coreRowModelsFeature.utils.ts +0 -272
  585. package/src/core/row-models/createCoreRowModel.ts +0 -93
  586. package/src/core/rows/constructRow.ts +0 -66
  587. package/src/core/rows/coreRowsFeature.ts +0 -62
  588. package/src/core/rows/coreRowsFeature.types.ts +0 -117
  589. package/src/core/rows/coreRowsFeature.utils.ts +0 -264
  590. package/src/core/table/constructTable.ts +0 -179
  591. package/src/core/table/coreTablesFeature.ts +0 -19
  592. package/src/core/table/coreTablesFeature.types.ts +0 -237
  593. package/src/core/table/coreTablesFeature.utils.ts +0 -131
  594. package/src/features/column-faceting/columnFacetingFeature.ts +0 -89
  595. package/src/features/column-faceting/columnFacetingFeature.types.ts +0 -109
  596. package/src/features/column-faceting/columnFacetingFeature.utils.ts +0 -145
  597. package/src/features/column-faceting/createFacetedMinMaxValues.ts +0 -66
  598. package/src/features/column-faceting/createFacetedRowModel.ts +0 -85
  599. package/src/features/column-faceting/createFacetedUniqueValues.ts +0 -66
  600. package/src/features/column-filtering/columnFilteringFeature.ts +0 -86
  601. package/src/features/column-filtering/columnFilteringFeature.types.ts +0 -232
  602. package/src/features/column-filtering/columnFilteringFeature.utils.ts +0 -331
  603. package/src/features/column-filtering/createFilteredRowModel.ts +0 -183
  604. package/src/features/column-filtering/filterRowsUtils.ts +0 -157
  605. package/src/features/column-grouping/columnGroupingFeature.ts +0 -115
  606. package/src/features/column-grouping/columnGroupingFeature.types.ts +0 -226
  607. package/src/features/column-grouping/columnGroupingFeature.utils.ts +0 -354
  608. package/src/features/column-grouping/createGroupedRowModel.ts +0 -220
  609. package/src/features/column-ordering/columnOrderingFeature.ts +0 -73
  610. package/src/features/column-ordering/columnOrderingFeature.types.ts +0 -60
  611. package/src/features/column-ordering/columnOrderingFeature.utils.ts +0 -241
  612. package/src/features/column-pinning/columnPinningFeature.ts +0 -316
  613. package/src/features/column-pinning/columnPinningFeature.types.ts +0 -192
  614. package/src/features/column-pinning/columnPinningFeature.utils.ts +0 -908
  615. package/src/features/column-resizing/columnResizingFeature.ts +0 -65
  616. package/src/features/column-resizing/columnResizingFeature.types.ts +0 -89
  617. package/src/features/column-resizing/columnResizingFeature.utils.ts +0 -364
  618. package/src/features/column-sizing/columnSizingFeature.ts +0 -145
  619. package/src/features/column-sizing/columnSizingFeature.types.ts +0 -102
  620. package/src/features/column-sizing/columnSizingFeature.utils.ts +0 -381
  621. package/src/features/column-visibility/columnVisibilityFeature.ts +0 -122
  622. package/src/features/column-visibility/columnVisibilityFeature.types.ts +0 -112
  623. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +0 -384
  624. package/src/features/global-filtering/globalFilteringFeature.ts +0 -65
  625. package/src/features/global-filtering/globalFilteringFeature.types.ts +0 -91
  626. package/src/features/global-filtering/globalFilteringFeature.utils.ts +0 -118
  627. package/src/features/row-expanding/createExpandedRowModel.ts +0 -82
  628. package/src/features/row-expanding/rowExpandingFeature.ts +0 -94
  629. package/src/features/row-expanding/rowExpandingFeature.types.ts +0 -147
  630. package/src/features/row-expanding/rowExpandingFeature.utils.ts +0 -374
  631. package/src/features/row-pagination/createPaginatedRowModel.ts +0 -83
  632. package/src/features/row-pagination/rowPaginationFeature.ts +0 -95
  633. package/src/features/row-pagination/rowPaginationFeature.types.ts +0 -152
  634. package/src/features/row-pagination/rowPaginationFeature.utils.ts +0 -400
  635. package/src/features/row-pinning/rowPinningFeature.ts +0 -97
  636. package/src/features/row-pinning/rowPinningFeature.types.ts +0 -95
  637. package/src/features/row-pinning/rowPinningFeature.utils.ts +0 -323
  638. package/src/features/row-selection/rowSelectionFeature.ts +0 -140
  639. package/src/features/row-selection/rowSelectionFeature.types.ts +0 -151
  640. package/src/features/row-selection/rowSelectionFeature.utils.ts +0 -750
  641. package/src/features/row-sorting/createSortedRowModel.ts +0 -157
  642. package/src/features/row-sorting/rowSortingFeature.ts +0 -103
  643. package/src/features/row-sorting/rowSortingFeature.types.ts +0 -235
  644. package/src/features/row-sorting/rowSortingFeature.utils.ts +0 -489
  645. package/src/features/stockFeatures.ts +0 -53
  646. package/src/flex-render.ts +0 -70
  647. package/src/fns/aggregationFns.ts +0 -245
  648. package/src/fns/filterFns.ts +0 -382
  649. package/src/fns/sortFns.ts +0 -240
  650. package/src/helpers/columnHelper.ts +0 -122
  651. package/src/helpers/metaHelper.ts +0 -24
  652. package/src/helpers/tableFeatures.ts +0 -34
  653. package/src/helpers/tableOptions.ts +0 -117
  654. package/src/index.ts +0 -139
  655. package/src/process-env.d.ts +0 -6
  656. package/src/reactivity.ts +0 -2
  657. package/src/static-functions.ts +0 -31
  658. package/src/store-reactivity-bindings.ts +0 -47
  659. package/src/types/Cell.ts +0 -21
  660. package/src/types/Column.ts +0 -51
  661. package/src/types/ColumnDef.ts +0 -254
  662. package/src/types/Header.ts +0 -23
  663. package/src/types/HeaderGroup.ts +0 -13
  664. package/src/types/Row.ts +0 -34
  665. package/src/types/RowModel.ts +0 -98
  666. package/src/types/RowModelFns.ts +0 -32
  667. package/src/types/Table.ts +0 -91
  668. package/src/types/TableFeatures.ts +0 -123
  669. package/src/types/TableOptions.ts +0 -104
  670. package/src/types/TableState.ts +0 -47
  671. package/src/types/type-utils.ts +0 -84
  672. package/src/utils.ts +0 -441
@@ -0,0 +1,77 @@
1
+ import { tableMemo } from "../utils.js";
2
+ import { tableWorkerPipeline } from "./tableWorkerProtocol.js";
3
+ import { getTableWorkerBridge, syncTableWorker } from "./createTableWorker.js";
4
+ import { rebuildRowModel } from "./rebuildRowModel.js";
5
+
6
+ //#region src/worker/createWorkerRowModel.ts
7
+ function capitalize(stage) {
8
+ return stage.charAt(0).toUpperCase() + stage.slice(1);
9
+ }
10
+ /**
11
+ * Turns any row model stage into a worker-backed one. The returned factory
12
+ * plugs into the standard feature slot for that stage, so it composes with
13
+ * the rest of the pipeline exactly like the sync factory it replaces.
14
+ *
15
+ * Register only the stages you want offloaded; each import is independent and
16
+ * tree-shakable. All stages on a table share one worker and one round trip
17
+ * per state change via the `tableWorker` handle. Until a result lands, the
18
+ * stage returns its pre-stage model (stale-while-revalidate).
19
+ *
20
+ * Offloaded stages must form a contiguous prefix of the pipeline
21
+ * (filtered -> grouped -> sorted -> expanded): a stage's worker result encodes
22
+ * everything upstream as computed in the worker, so any upstream stage
23
+ * registered on the main thread must be offloaded too. A dev warning fires on
24
+ * mismatches.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const tableWorker = createTableWorker({ createWorker })
29
+ *
30
+ * const features = tableFeatures({
31
+ * rowSortingFeature,
32
+ * columnGroupingFeature,
33
+ * workerRowModelsFeature,
34
+ * filteredRowModel: createWorkerRowModel(tableWorker, 'filtered'),
35
+ * groupedRowModel: createWorkerRowModel(tableWorker, 'grouped'),
36
+ * sortedRowModel: createWorkerRowModel(tableWorker, 'sorted'),
37
+ * })
38
+ * ```
39
+ */
40
+ function createWorkerRowModel(tableWorker, stage) {
41
+ return (_table) => {
42
+ const table = _table;
43
+ getTableWorkerBridge(tableWorker, table).stages.add(stage);
44
+ let warned = false;
45
+ const warnOnce = (message) => {
46
+ if (process.env.NODE_ENV === "development" && !warned) {
47
+ warned = true;
48
+ console.warn(`[table-worker] ${message}`);
49
+ }
50
+ };
51
+ const memoized = tableMemo({
52
+ table,
53
+ fnName: `table.get${capitalize(stage)}RowModel`,
54
+ memoDeps: () => [table.getCoreRowModel(), getTableWorkerBridge(tableWorker, table).stageVersions[stage]],
55
+ fn: () => {
56
+ const bridge = getTableWorkerBridge(tableWorker, table);
57
+ const payload = bridge.results[stage];
58
+ if (!payload) {
59
+ if (bridge.resultRequestId > 0) warnOnce(`The worker returned no '${stage}' result. Make sure the worker's initTableWorker() config registers a ${stage}RowModel factory.`);
60
+ return table[`getPre${capitalize(stage)}RowModel`]();
61
+ }
62
+ if (bridge.resultRequestId > 0) for (const upstream of tableWorkerPipeline) {
63
+ if (upstream === stage) break;
64
+ if (table.options.features[`${upstream}RowModel`] && !bridge.results[upstream]) warnOnce(`This table has a ${upstream}RowModel, but the worker result for '${stage}' was computed without an offloaded '${upstream}' stage, so it is bypassed. Offload it too with createWorkerRowModel(tableWorker, '${upstream}').`);
65
+ }
66
+ return rebuildRowModel(table, payload, stage !== "filtered");
67
+ }
68
+ });
69
+ return () => {
70
+ syncTableWorker(tableWorker, table);
71
+ return memoized();
72
+ };
73
+ };
74
+ }
75
+
76
+ //#endregion
77
+ export { createWorkerRowModel };
@@ -0,0 +1,31 @@
1
+ import { RowData } from "../types/type-utils.js";
2
+ import { TableOptions } from "../types/TableOptions.js";
3
+ import { TableFeatures } from "../types/TableFeatures.js";
4
+ //#region src/worker/initTableWorker.d.ts
5
+ type TableWorkerConfig<TFeatures extends TableFeatures, TData extends RowData> = Omit<TableOptions<TFeatures, TData>, 'data'>;
6
+ /**
7
+ * Runs a headless "shadow table" inside a dedicated Web Worker.
8
+ *
9
+ * Call this from a user-authored worker entry file, passing the same columns
10
+ * and processing features used on the main thread. The shadow table runs the
11
+ * real table-core row model pipeline (real fns, real Row objects) off the
12
+ * main thread and posts back one payload per stage the main thread requested:
13
+ * a transferable index permutation for flat results, a serialized row tree
14
+ * (with eagerly computed aggregates) when grouping produces synthetic rows.
15
+ *
16
+ * Everything passed here must be thread-portable: `accessorKey` columns or
17
+ * accessors defined in a shared module, and fns from registries or shared
18
+ * modules (no closures over app state).
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * // table.worker.ts
23
+ * import { initTableWorker } from '@tanstack/table-core/experimental-worker-plugin'
24
+ * import { columns, sharedFeatures } from './tableConfig'
25
+ *
26
+ * initTableWorker({ features: sharedFeatures, columns })
27
+ * ```
28
+ */
29
+ declare function initTableWorker<TFeatures extends TableFeatures, TData extends RowData>(config: TableWorkerConfig<TFeatures, TData>): void;
30
+ //#endregion
31
+ export { TableWorkerConfig, initTableWorker };
@@ -0,0 +1,99 @@
1
+ import { makeObjectMap } from "../utils.js";
2
+ import { constructTable } from "../core/table/constructTable.js";
3
+ import { storeReactivityBindings } from "../store-reactivity-bindings.js";
4
+ import { serializeRowModel } from "./serializeRowModel.js";
5
+
6
+ //#region src/worker/initTableWorker.ts
7
+ function capitalize(stage) {
8
+ return stage.charAt(0).toUpperCase() + stage.slice(1);
9
+ }
10
+ /** Flatten column-group defs to leaf defs (mirrors core's id resolution). */
11
+ function flattenColumnDefs(defs) {
12
+ return defs.flatMap((def) => def.columns ? flattenColumnDefs(def.columns) : [def]);
13
+ }
14
+ /**
15
+ * Runs a headless "shadow table" inside a dedicated Web Worker.
16
+ *
17
+ * Call this from a user-authored worker entry file, passing the same columns
18
+ * and processing features used on the main thread. The shadow table runs the
19
+ * real table-core row model pipeline (real fns, real Row objects) off the
20
+ * main thread and posts back one payload per stage the main thread requested:
21
+ * a transferable index permutation for flat results, a serialized row tree
22
+ * (with eagerly computed aggregates) when grouping produces synthetic rows.
23
+ *
24
+ * Everything passed here must be thread-portable: `accessorKey` columns or
25
+ * accessors defined in a shared module, and fns from registries or shared
26
+ * modules (no closures over app state).
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * // table.worker.ts
31
+ * import { initTableWorker } from '@tanstack/table-core/experimental-worker-plugin'
32
+ * import { columns, sharedFeatures } from './tableConfig'
33
+ *
34
+ * initTableWorker({ features: sharedFeatures, columns })
35
+ * ```
36
+ */
37
+ function initTableWorker(config) {
38
+ let table;
39
+ let dataVersion = 0;
40
+ let coreIndexById = makeObjectMap();
41
+ let aggregateColumnIds = [];
42
+ let lastSentModels = {};
43
+ self.onmessage = (event) => {
44
+ const message = event.data;
45
+ if (message.type === "data") {
46
+ dataVersion = message.dataVersion;
47
+ lastSentModels = {};
48
+ if (!table) {
49
+ table = constructTable({
50
+ ...config,
51
+ features: {
52
+ coreReactivityFeature: storeReactivityBindings(),
53
+ ...config.features
54
+ },
55
+ data: message.data
56
+ });
57
+ aggregateColumnIds = flattenColumnDefs(config.columns).filter((def) => def.aggregationFn != null || def.aggregatedCell != null).map((def) => def.id ?? (def.accessorKey === void 0 ? void 0 : String(def.accessorKey).replaceAll(".", "_"))).filter((id) => id != null);
58
+ } else table.setOptions((prev) => ({
59
+ ...prev,
60
+ data: message.data
61
+ }));
62
+ const coreFlatRows = table.getCoreRowModel().flatRows;
63
+ coreIndexById = makeObjectMap();
64
+ for (let i = 0; i < coreFlatRows.length; i++) coreIndexById[coreFlatRows[i].id] = i;
65
+ return;
66
+ }
67
+ if (!table) return;
68
+ const start = performance.now();
69
+ table._reactivity.batch(() => {
70
+ for (const [key, value] of Object.entries(message.state)) {
71
+ const baseAtom = table.baseAtoms[key];
72
+ if (baseAtom && value !== void 0) baseAtom.set(value);
73
+ }
74
+ });
75
+ const stages = {};
76
+ const transfer = [];
77
+ for (const stage of message.stages) {
78
+ if (!config.features[`${stage}RowModel`]) continue;
79
+ const model = table[`get${capitalize(stage)}RowModel`]();
80
+ if (lastSentModels[stage] === model) {
81
+ stages[stage] = { kind: "unchanged" };
82
+ continue;
83
+ }
84
+ lastSentModels[stage] = model;
85
+ stages[stage] = serializeRowModel(model, coreIndexById, aggregateColumnIds, transfer);
86
+ }
87
+ const response = {
88
+ type: "result",
89
+ requestId: message.requestId,
90
+ dataVersion,
91
+ stages,
92
+ computeMs: performance.now() - start
93
+ };
94
+ postMessage(response, { transfer });
95
+ };
96
+ }
97
+
98
+ //#endregion
99
+ export { initTableWorker };
@@ -0,0 +1,11 @@
1
+ import { TableWorkerStagePayload } from "./tableWorkerProtocol.js";
2
+ import "../core/row-models/coreRowModelsFeature.types.js";
3
+ import "../types/Table.js";
4
+ import "../types/TableFeatures.js";
5
+ //#region src/worker/rebuildRowModel.d.ts
6
+ /** Payloads that carry data; `unchanged` never reaches the rebuilder. */
7
+ type TableWorkerDataPayload = Exclude<TableWorkerStagePayload, {
8
+ kind: 'unchanged';
9
+ }>;
10
+ //#endregion
11
+ export { TableWorkerDataPayload };
@@ -0,0 +1,71 @@
1
+ import { hasOwn } from "../utils.js";
2
+ import { constructRow } from "../core/rows/constructRow.js";
3
+
4
+ //#region src/worker/rebuildRowModel.ts
5
+ function collectLeafRows(subRows, out) {
6
+ for (let i = 0; i < subRows.length; i++) {
7
+ const row = subRows[i];
8
+ if (row.groupingColumnId == null) out.push(row);
9
+ else collectLeafRows(row.subRows, out);
10
+ }
11
+ }
12
+ function rebuildRowModel(table, payload, resetDepths) {
13
+ const core = table.getCoreRowModel();
14
+ if (payload.kind === "flat") {
15
+ const { indices } = payload;
16
+ const rows = new Array(indices.length);
17
+ for (let i = 0; i < indices.length; i++) {
18
+ const row = core.flatRows[indices[i]];
19
+ if (resetDepths) {
20
+ row.depth = 0;
21
+ row.parentId = void 0;
22
+ }
23
+ rows[i] = row;
24
+ }
25
+ return {
26
+ rows,
27
+ flatRows: rows,
28
+ rowsById: core.rowsById
29
+ };
30
+ }
31
+ const flatRows = [];
32
+ const rowsById = Object.create(core.rowsById);
33
+ const rebuildRows = (nodes, depth, parentId) => {
34
+ const rows = new Array(nodes.length);
35
+ for (let i = 0; i < nodes.length; i++) {
36
+ const node = nodes[i];
37
+ if (typeof node === "number") {
38
+ const row = core.flatRows[node];
39
+ row.depth = depth;
40
+ row.parentId = parentId;
41
+ flatRows.push(row);
42
+ rows[i] = row;
43
+ continue;
44
+ }
45
+ const subRows = rebuildRows(node.children, depth + 1, node.id);
46
+ const leafRows = [];
47
+ collectLeafRows(subRows, leafRows);
48
+ const row = constructRow(table, node.id, leafRows[0]?.original, node.index, depth, void 0, parentId);
49
+ const aggregates = node.aggregates;
50
+ Object.assign(row, {
51
+ groupingColumnId: node.groupingColumnId,
52
+ groupingValue: node.groupingValue,
53
+ subRows,
54
+ leafRows,
55
+ getValue: (columnId) => hasOwn(aggregates, columnId) ? aggregates[columnId] : void 0
56
+ });
57
+ flatRows.push(row);
58
+ rowsById[node.id] = row;
59
+ rows[i] = row;
60
+ }
61
+ return rows;
62
+ };
63
+ return {
64
+ rows: rebuildRows(payload.children, 0, void 0),
65
+ flatRows,
66
+ rowsById
67
+ };
68
+ }
69
+
70
+ //#endregion
71
+ export { rebuildRowModel };
@@ -0,0 +1,51 @@
1
+ //#region src/worker/serializeRowModel.ts
2
+ function isCloneSafe(value) {
3
+ return typeof value !== "function" && typeof value !== "symbol";
4
+ }
5
+ function serializeRows(rows, coreIndexById, aggregateColumnIds) {
6
+ const nodes = new Array(rows.length);
7
+ for (let i = 0; i < rows.length; i++) {
8
+ const row = rows[i];
9
+ if (row.groupingColumnId == null) {
10
+ nodes[i] = coreIndexById[row.id];
11
+ continue;
12
+ }
13
+ const aggregates = {};
14
+ for (let c = 0; c < aggregateColumnIds.length; c++) {
15
+ const columnId = aggregateColumnIds[c];
16
+ const value = row.getValue(columnId);
17
+ if (value !== void 0 && isCloneSafe(value)) aggregates[columnId] = value;
18
+ }
19
+ if (!(row.groupingColumnId in aggregates)) {
20
+ const value = row.getValue(row.groupingColumnId);
21
+ if (value !== void 0 && isCloneSafe(value)) aggregates[row.groupingColumnId] = value;
22
+ }
23
+ nodes[i] = {
24
+ id: row.id,
25
+ groupingColumnId: row.groupingColumnId,
26
+ groupingValue: row.groupingValue,
27
+ index: row.index,
28
+ aggregates,
29
+ children: serializeRows(row.subRows, coreIndexById, aggregateColumnIds)
30
+ };
31
+ }
32
+ return nodes;
33
+ }
34
+ function serializeRowModel(model, coreIndexById, aggregateColumnIds, transfer) {
35
+ if (model.flatRows.length === model.rows.length) {
36
+ const indices = new Uint32Array(model.rows.length);
37
+ for (let i = 0; i < indices.length; i++) indices[i] = coreIndexById[model.rows[i].id];
38
+ transfer.push(indices.buffer);
39
+ return {
40
+ kind: "flat",
41
+ indices
42
+ };
43
+ }
44
+ return {
45
+ kind: "tree",
46
+ children: serializeRows(model.rows, coreIndexById, aggregateColumnIds)
47
+ };
48
+ }
49
+
50
+ //#endregion
51
+ export { serializeRowModel };
@@ -0,0 +1,88 @@
1
+ import { RowData } from "../types/type-utils.js";
2
+ //#region src/worker/tableWorkerProtocol.d.ts
3
+ /**
4
+ * Row model stages that can be offloaded to the worker, in pipeline order.
5
+ * Everything else in this module is derived from this list; adding a stage
6
+ * means adding an entry here and to `tableWorkerStageStateDeps`.
7
+ */
8
+ declare const tableWorkerPipeline: readonly ["filtered", "grouped", "sorted", "expanded"];
9
+ type TableWorkerStage = (typeof tableWorkerPipeline)[number];
10
+ /**
11
+ * The state slices each stage's computation depends on. The main thread sends
12
+ * the union of deps for its registered stages; a change to any of them
13
+ * triggers one worker round trip.
14
+ */
15
+ declare const tableWorkerStageStateDeps: Record<TableWorkerStage, Array<string>>;
16
+ /**
17
+ * A serialized synthetic (group) row. Leaf rows serialize as their position in
18
+ * `options.data`; group rows carry what `constructRow` + the grouped row model
19
+ * need to rebuild them, plus eagerly computed aggregate values so no
20
+ * aggregation runs on the main thread.
21
+ */
22
+ interface TableWorkerGroupNode {
23
+ id: string;
24
+ groupingColumnId: string;
25
+ groupingValue: unknown;
26
+ index: number;
27
+ aggregates: Record<string, unknown>;
28
+ children: Array<TableWorkerRowNode>;
29
+ }
30
+ type TableWorkerRowNode = number | TableWorkerGroupNode;
31
+ /**
32
+ * A stage result. Flat models (every row is a data row) travel as a
33
+ * transferable index permutation; models containing synthetic rows (grouping)
34
+ * travel as a tree. The kind is chosen from the model's actual shape at
35
+ * runtime, not from the stage name: a sorted model is flat without grouping
36
+ * and a tree with it.
37
+ *
38
+ * `unchanged` means the stage's model is identical to the last one sent for
39
+ * this dataset (its memoized inputs did not change); the main thread keeps
40
+ * its previous result and skips the rebuild entirely.
41
+ */
42
+ type TableWorkerStagePayload = {
43
+ kind: 'flat';
44
+ indices: Uint32Array;
45
+ } | {
46
+ kind: 'tree';
47
+ children: Array<TableWorkerRowNode>;
48
+ } | {
49
+ kind: 'unchanged';
50
+ };
51
+ type TableWorkerRequest<TData extends RowData = any> = {
52
+ type: 'data';
53
+ dataVersion: number;
54
+ data: Array<TData>;
55
+ } | {
56
+ type: 'process';
57
+ requestId: number;
58
+ dataVersion: number;
59
+ /** The stages the main thread has worker-backed row models for. */
60
+ stages: Array<TableWorkerStage>;
61
+ /** Serializable state slices (union of the stages' deps). */
62
+ state: Record<string, unknown>;
63
+ };
64
+ interface TableWorkerResult {
65
+ type: 'result';
66
+ requestId: number;
67
+ dataVersion: number;
68
+ stages: { [K in TableWorkerStage]?: TableWorkerStagePayload; };
69
+ computeMs: number;
70
+ }
71
+ type TableWorkerResponse = TableWorkerResult;
72
+ /**
73
+ * The state slice added by `workerRowModelsFeature`. `version` bumps when a
74
+ * worker result lands (driving re-renders through the normal state path);
75
+ * `isPending` is true while a request is in flight. The timing fields expose
76
+ * the last result's worker compute time and full round trip for devtools and
77
+ * debugging.
78
+ */
79
+ interface TableState_WorkerRowModels {
80
+ workerRowModels: {
81
+ version: number;
82
+ isPending: boolean;
83
+ lastComputeMs?: number;
84
+ lastRoundTripMs?: number;
85
+ };
86
+ }
87
+ //#endregion
88
+ export { TableState_WorkerRowModels, TableWorkerGroupNode, TableWorkerRequest, TableWorkerResponse, TableWorkerResult, TableWorkerRowNode, TableWorkerStage, TableWorkerStagePayload, tableWorkerPipeline, tableWorkerStageStateDeps };
@@ -0,0 +1,26 @@
1
+ //#region src/worker/tableWorkerProtocol.ts
2
+ /**
3
+ * Row model stages that can be offloaded to the worker, in pipeline order.
4
+ * Everything else in this module is derived from this list; adding a stage
5
+ * means adding an entry here and to `tableWorkerStageStateDeps`.
6
+ */
7
+ const tableWorkerPipeline = [
8
+ "filtered",
9
+ "grouped",
10
+ "sorted",
11
+ "expanded"
12
+ ];
13
+ /**
14
+ * The state slices each stage's computation depends on. The main thread sends
15
+ * the union of deps for its registered stages; a change to any of them
16
+ * triggers one worker round trip.
17
+ */
18
+ const tableWorkerStageStateDeps = {
19
+ filtered: ["columnFilters", "globalFilter"],
20
+ grouped: ["grouping"],
21
+ sorted: ["sorting"],
22
+ expanded: ["expanded"]
23
+ };
24
+
25
+ //#endregion
26
+ export { tableWorkerPipeline, tableWorkerStageStateDeps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/table-core",
3
- "version": "9.0.0-beta.9",
3
+ "version": "9.0.0",
4
4
  "description": "Headless UI for building powerful tables & datagrids for TS/JS.",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -27,39 +27,22 @@
27
27
  "tanstack-intent"
28
28
  ],
29
29
  "type": "module",
30
- "types": "./dist/index.d.cts",
31
- "main": "./dist/index.cjs",
32
- "module": "./dist/index.js",
30
+ "types": "./dist/index.d.ts",
33
31
  "exports": {
34
- ".": {
35
- "import": "./dist/index.js",
36
- "require": "./dist/index.cjs"
37
- },
38
- "./flex-render": {
39
- "import": "./dist/flex-render.js",
40
- "require": "./dist/flex-render.cjs"
41
- },
42
- "./reactivity": {
43
- "import": "./dist/reactivity.js",
44
- "require": "./dist/reactivity.cjs"
45
- },
46
- "./static-functions": {
47
- "import": "./dist/static-functions.js",
48
- "require": "./dist/static-functions.cjs"
49
- },
50
- "./store-reactivity-bindings": {
51
- "import": "./dist/store-reactivity-bindings.js",
52
- "require": "./dist/store-reactivity-bindings.cjs"
53
- },
32
+ ".": "./dist/index.js",
33
+ "./experimental-worker-plugin": "./dist/experimental-worker-plugin.js",
34
+ "./flex-render": "./dist/flex-render.js",
35
+ "./reactivity": "./dist/reactivity.js",
36
+ "./static-functions": "./dist/static-functions.js",
37
+ "./store-reactivity-bindings": "./dist/store-reactivity-bindings.js",
54
38
  "./package.json": "./package.json"
55
39
  },
56
40
  "sideEffects": false,
57
41
  "engines": {
58
- "node": ">=16"
42
+ "node": ">=20"
59
43
  },
60
44
  "files": [
61
- "dist/",
62
- "src",
45
+ "dist",
63
46
  "skills"
64
47
  ],
65
48
  "dependencies": {
@@ -69,10 +52,11 @@
69
52
  "clean": "rimraf ./build && rimraf ./dist",
70
53
  "lint:fix": "eslint ./src --fix",
71
54
  "test:eslint": "eslint ./src",
55
+ "test:coverage": "vitest run --coverage",
72
56
  "test:lib": "vitest",
73
57
  "test:lib:dev": "pnpm test:lib --watch",
74
58
  "test:types": "tsc && tsc -p tests/tsconfig.declaration-emit.json",
75
59
  "test:build": "publint --strict",
76
- "build": "tsdown"
60
+ "build": "tsdown && node ../../scripts/rewrite-table-core-dts.mjs"
77
61
  }
78
62
  }
@@ -0,0 +1,137 @@
1
+ ---
2
+ name: aggregation
3
+ description: >
4
+ Aggregate TanStack Table columns independently of grouping, including grand totals, caller-selected row totals, multiple keyed aggregations, custom context-based definitions, grouped merges, manual values, and worker constraints.
5
+ metadata:
6
+ { type: sub-skill, library: '@tanstack/table-core', library_version: '9.0.0' }
7
+ requires: ['core', 'table-features']
8
+ sources:
9
+ - 'TanStack/table:docs/guide/aggregation.md'
10
+ - 'TanStack/table:docs/framework/react/guide/aggregation.md'
11
+ - 'TanStack/table:packages/table-core/src/features/row-aggregation'
12
+ - 'TanStack/table:examples/react/aggregation'
13
+ - 'TanStack/table:examples/react/grouped-aggregation'
14
+ ---
15
+
16
+ This skill builds on `core` and `table-features`. Aggregation is independent
17
+ from grouping: use it alone for totals, or combine it with the `grouping` skill
18
+ for synthetic grouped rows.
19
+
20
+ ## Setup
21
+
22
+ <!-- skill-snippet:check -->
23
+
24
+ ```ts
25
+ import {
26
+ rowAggregationFeature,
27
+ aggregationFn_mean,
28
+ aggregationFn_sum,
29
+ tableFeatures,
30
+ } from '@tanstack/table-core'
31
+
32
+ export const features = tableFeatures({
33
+ rowAggregationFeature,
34
+ aggregationFns: {
35
+ mean: aggregationFn_mean,
36
+ sum: aggregationFn_sum,
37
+ },
38
+ })
39
+ ```
40
+
41
+ ## Core Patterns
42
+
43
+ ### Grand total and selected row scopes
44
+
45
+ ```ts
46
+ const grandTotal = salaryColumn.getAggregationValue()
47
+ const filteredTotal = salaryColumn.getAggregationValue({
48
+ rows: table.getFilteredRowModel().rows,
49
+ })
50
+ const childTotal = salaryColumn.getAggregationValue({
51
+ rows: table.getCoreRowModel().rows,
52
+ maxDepth: 1,
53
+ })
54
+ ```
55
+
56
+ The default uses the pre-grouped row model. Explicit rows can come from any row
57
+ model or caller-selected subset. `maxAggregationDepth` defaults to `0`, which
58
+ selects the supplied roots; `1` selects direct sub-rows, and `Infinity` selects
59
+ terminal rows. Branches that end early contribute their deepest available row.
60
+ Default calls are cached; explicit-row calls intentionally are not because array
61
+ identity and contents are caller-owned. `table.getMaxSubRowDepth()` returns the
62
+ deepest structural depth in the core row model.
63
+
64
+ ### Multiple aggregations
65
+
66
+ ```ts
67
+ columnHelper.accessor('salary', {
68
+ aggregationFn: ['mean', { id: 'range', aggregationFn: 'extent' }],
69
+ })
70
+
71
+ const value = salaryColumn.getAggregationValue<{
72
+ mean: number
73
+ range: [number, number]
74
+ }>()
75
+ ```
76
+
77
+ A scalar option returns a scalar. An array returns a keyed object. Named
78
+ functions use their registry name; descriptors provide a stable `id`, which is
79
+ required for inline definitions in an array.
80
+
81
+ ### Custom definitions
82
+
83
+ ```ts
84
+ const weightedMean = constructAggregationFn({
85
+ aggregate: ({ rows, getValue }) => {
86
+ const total = rows.reduce((sum, row) => sum + Number(getValue(row)), 0)
87
+ return rows.length ? total / rows.length : undefined
88
+ },
89
+ })
90
+ ```
91
+
92
+ The context provides depth-selected `rows`, `maxDepth`, `getValue`, `column`,
93
+ `columnId`, `table`, and optional grouped-only `groupingRow` and `subRows`.
94
+ Every aggregation configured on a column receives the same row frontier. Add
95
+ `merge({ subRowResults, subRows, ...context })` when nested groups can more
96
+ efficiently combine already-computed sub-row results; otherwise the engine calls
97
+ `aggregate` with both row sets. `subRowResults[i]` corresponds to `subRows[i]`.
98
+
99
+ ### Manual or remote values
100
+
101
+ Set a column definition's `getAggregationValue(context)` to return `{ value }`
102
+ for requests handled by a server or another execution environment. Returning
103
+ `undefined` falls back to the local definition. `manualAggregation: true`
104
+ disables that local fallback.
105
+
106
+ ## Common Mistakes
107
+
108
+ ### [HIGH] Adding grouping for a grand total
109
+
110
+ Wrong: registering `columnGroupingFeature` solely to total a column.
111
+
112
+ Correct: register `rowAggregationFeature` and call
113
+ `column.getAggregationValue()`. Grouping is only required for grouped rows.
114
+
115
+ ### [HIGH] Passing a scope label and rows
116
+
117
+ There is no scope option. Call `getAggregationValue()` for the cached default,
118
+ or pass a single options object containing rows from the desired row model and
119
+ `maxDepth` when the desired frontier is below those rows.
120
+
121
+ ### [HIGH] Reusing the legacy callable signature
122
+
123
+ Wrong: `(columnId, leafRows, childRows) => result`.
124
+
125
+ Correct: `constructAggregationFn({ aggregate: ({ rows, subRows, getValue }) => result })`.
126
+
127
+ ### [MEDIUM] Assuming arbitrary totals run in the worker
128
+
129
+ The experimental worker computes grouped row-model aggregates. Public
130
+ `getAggregationValue(options?)` totals execute on the main thread, and custom
131
+ grouped results sent by the worker must be structured-cloneable.
132
+
133
+ ## API Discovery
134
+
135
+ Inspect `node_modules/@tanstack/table-core/dist/features/row-aggregation/` and the
136
+ Aggregation Guide. Use `Column_RowAggregation`, `AggregationFnDef`,
137
+ `AggregationContext`, and `AggregationResult` for the typed public surface.