@tanstack/table-core 9.0.0-beta.7 → 9.0.0-beta.71

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 (667) hide show
  1. package/README.md +5 -1
  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 +1 -3
  12. package/dist/core/columns/coreColumnsFeature.js +13 -20
  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 +3 -3
  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 +21 -11
  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 +27 -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 +42 -10
  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 +52 -23
  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 +56 -25
  51. package/dist/core/table/coreTablesFeature.utils.d.ts +34 -12
  52. package/dist/core/table/coreTablesFeature.utils.js +69 -24
  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 +873 -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 +1 -3
  67. package/dist/features/column-faceting/columnFacetingFeature.js +13 -20
  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 +25 -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 +85 -33
  80. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +19 -17
  81. package/dist/features/column-filtering/columnFilteringFeature.utils.js +33 -21
  82. package/dist/features/column-filtering/createFilteredRowModel.d.ts +11 -7
  83. package/dist/features/column-filtering/createFilteredRowModel.js +33 -29
  84. package/dist/features/column-filtering/filterFns.d.ts +208 -0
  85. package/dist/features/column-filtering/filterFns.js +374 -0
  86. package/dist/features/column-filtering/filterRowsUtils.js +4 -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 +69 -38
  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 +20 -20
  118. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +32 -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 +6 -17
  137. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +11 -16
  138. package/dist/features/row-expanding/rowExpandingFeature.utils.js +30 -33
  139. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +3 -5
  140. package/dist/features/row-pagination/createPaginatedRowModel.js +7 -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 +5 -16
  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 +10 -16
  151. package/dist/features/row-selection/rowSelectionFeature.d.ts +1 -3
  152. package/dist/features/row-selection/rowSelectionFeature.js +68 -25
  153. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +51 -15
  154. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +60 -35
  155. package/dist/features/row-selection/rowSelectionFeature.utils.js +142 -89
  156. package/dist/features/row-sorting/createSortedRowModel.d.ts +11 -7
  157. package/dist/features/row-sorting/createSortedRowModel.js +71 -53
  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 +61 -24
  161. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +31 -22
  162. package/dist/features/row-sorting/rowSortingFeature.utils.js +51 -25
  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 +25 -0
  172. package/dist/helpers/metaHelper.js +28 -0
  173. package/dist/helpers/tableFeatures.d.ts +35 -8
  174. package/dist/helpers/tableFeatures.js +33 -5
  175. package/dist/helpers/tableOptions.d.ts +1 -3
  176. package/dist/helpers/tableOptions.js +1 -2
  177. package/dist/index.d.ts +34 -27
  178. package/dist/index.js +10 -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 +12 -9
  183. package/dist/store-reactivity-bindings.d.ts +2 -4
  184. package/dist/store-reactivity-bindings.js +4 -5
  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 +39 -21
  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 +388 -24
  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 +32 -26
  199. package/dist/utils.js +52 -32
  200. package/dist/worker/createTableWorker.d.ts +100 -0
  201. package/dist/worker/createTableWorker.js +185 -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 +141 -0
  213. package/skills/api-not-found/SKILL.md +113 -0
  214. package/skills/cell-selection/SKILL.md +204 -0
  215. package/skills/cell-spanning/SKILL.md +162 -0
  216. package/skills/client-vs-server/SKILL.md +164 -0
  217. package/skills/column-faceting/SKILL.md +97 -0
  218. package/skills/column-filtering/SKILL.md +87 -0
  219. package/skills/column-ordering/SKILL.md +75 -0
  220. package/skills/column-pinning/SKILL.md +89 -0
  221. package/skills/column-resizing/SKILL.md +91 -0
  222. package/skills/column-sizing/SKILL.md +72 -0
  223. package/skills/column-visibility/SKILL.md +75 -0
  224. package/skills/core/SKILL.md +175 -0
  225. package/skills/custom-features/SKILL.md +235 -0
  226. package/skills/expanding/SKILL.md +80 -0
  227. package/skills/global-filtering/SKILL.md +84 -0
  228. package/skills/grouping/SKILL.md +51 -401
  229. package/skills/migrate-v8-to-v9/SKILL.md +275 -416
  230. package/skills/pagination/SKILL.md +37 -344
  231. package/skills/row-pinning/SKILL.md +47 -234
  232. package/skills/row-selection/SKILL.md +75 -302
  233. package/skills/sorting/SKILL.md +45 -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 -118
  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 -186
  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 -514
  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/tableFeatures.cjs +0 -20
  519. package/dist/helpers/tableFeatures.cjs.map +0 -1
  520. package/dist/helpers/tableFeatures.d.cts +0 -18
  521. package/dist/helpers/tableFeatures.js.map +0 -1
  522. package/dist/helpers/tableOptions.cjs +0 -15
  523. package/dist/helpers/tableOptions.cjs.map +0 -1
  524. package/dist/helpers/tableOptions.d.cts +0 -57
  525. package/dist/helpers/tableOptions.js.map +0 -1
  526. package/dist/index.cjs +0 -133
  527. package/dist/index.d.cts +0 -78
  528. package/dist/reactivity.cjs +0 -4
  529. package/dist/reactivity.d.cts +0 -3
  530. package/dist/static-functions.cjs +0 -263
  531. package/dist/static-functions.d.cts +0 -21
  532. package/dist/store-reactivity-bindings.cjs +0 -44
  533. package/dist/store-reactivity-bindings.cjs.map +0 -1
  534. package/dist/store-reactivity-bindings.d.cts +0 -22
  535. package/dist/store-reactivity-bindings.js.map +0 -1
  536. package/dist/types/Cell.d.cts +0 -14
  537. package/dist/types/Column.d.cts +0 -36
  538. package/dist/types/ColumnDef.d.cts +0 -109
  539. package/dist/types/Header.d.cts +0 -16
  540. package/dist/types/HeaderGroup.d.cts +0 -10
  541. package/dist/types/Row.d.cts +0 -26
  542. package/dist/types/RowModel.d.cts +0 -36
  543. package/dist/types/RowModelFns.d.cts +0 -18
  544. package/dist/types/Table.d.cts +0 -70
  545. package/dist/types/TableFeatures.d.cts +0 -53
  546. package/dist/types/TableOptions.d.cts +0 -69
  547. package/dist/types/TableState.d.cts +0 -48
  548. package/dist/types/type-utils.d.cts +0 -23
  549. package/dist/utils.cjs +0 -243
  550. package/dist/utils.cjs.map +0 -1
  551. package/dist/utils.d.cts +0 -114
  552. package/dist/utils.js.map +0 -1
  553. package/skills/column-definitions/SKILL.md +0 -333
  554. package/skills/column-layout/SKILL.md +0 -328
  555. package/skills/column-layout/references/subsystems.md +0 -220
  556. package/skills/customizing-feature-behavior/SKILL.md +0 -416
  557. package/skills/filtering/SKILL.md +0 -357
  558. package/skills/filtering/references/faceting-and-fuzzy.md +0 -191
  559. package/skills/row-expanding/SKILL.md +0 -348
  560. package/skills/setup/SKILL.md +0 -400
  561. package/skills/state-management/SKILL.md +0 -388
  562. package/src/core/cells/constructCell.ts +0 -55
  563. package/src/core/cells/coreCellsFeature.ts +0 -27
  564. package/src/core/cells/coreCellsFeature.types.ts +0 -68
  565. package/src/core/cells/coreCellsFeature.utils.ts +0 -68
  566. package/src/core/columns/constructColumn.ts +0 -119
  567. package/src/core/columns/coreColumnsFeature.ts +0 -73
  568. package/src/core/columns/coreColumnsFeature.types.ts +0 -108
  569. package/src/core/columns/coreColumnsFeature.utils.ts +0 -275
  570. package/src/core/coreFeatures.ts +0 -31
  571. package/src/core/headers/buildHeaderGroups.ts +0 -182
  572. package/src/core/headers/constructHeader.ts +0 -67
  573. package/src/core/headers/coreHeadersFeature.ts +0 -56
  574. package/src/core/headers/coreHeadersFeature.types.ts +0 -125
  575. package/src/core/headers/coreHeadersFeature.utils.ts +0 -200
  576. package/src/core/reactivity/coreReactivityFeature.types.ts +0 -56
  577. package/src/core/reactivity/coreReactivityFeature.utils.ts +0 -44
  578. package/src/core/row-models/coreRowModelsFeature.ts +0 -62
  579. package/src/core/row-models/coreRowModelsFeature.types.ts +0 -64
  580. package/src/core/row-models/coreRowModelsFeature.utils.ts +0 -272
  581. package/src/core/row-models/createCoreRowModel.ts +0 -93
  582. package/src/core/rows/constructRow.ts +0 -66
  583. package/src/core/rows/coreRowsFeature.ts +0 -62
  584. package/src/core/rows/coreRowsFeature.types.ts +0 -117
  585. package/src/core/rows/coreRowsFeature.utils.ts +0 -264
  586. package/src/core/table/constructTable.ts +0 -172
  587. package/src/core/table/coreTablesFeature.ts +0 -19
  588. package/src/core/table/coreTablesFeature.types.ts +0 -216
  589. package/src/core/table/coreTablesFeature.utils.ts +0 -131
  590. package/src/features/column-faceting/columnFacetingFeature.ts +0 -89
  591. package/src/features/column-faceting/columnFacetingFeature.types.ts +0 -109
  592. package/src/features/column-faceting/columnFacetingFeature.utils.ts +0 -145
  593. package/src/features/column-faceting/createFacetedMinMaxValues.ts +0 -66
  594. package/src/features/column-faceting/createFacetedRowModel.ts +0 -85
  595. package/src/features/column-faceting/createFacetedUniqueValues.ts +0 -66
  596. package/src/features/column-filtering/columnFilteringFeature.ts +0 -86
  597. package/src/features/column-filtering/columnFilteringFeature.types.ts +0 -232
  598. package/src/features/column-filtering/columnFilteringFeature.utils.ts +0 -331
  599. package/src/features/column-filtering/createFilteredRowModel.ts +0 -183
  600. package/src/features/column-filtering/filterRowsUtils.ts +0 -157
  601. package/src/features/column-grouping/columnGroupingFeature.ts +0 -115
  602. package/src/features/column-grouping/columnGroupingFeature.types.ts +0 -226
  603. package/src/features/column-grouping/columnGroupingFeature.utils.ts +0 -354
  604. package/src/features/column-grouping/createGroupedRowModel.ts +0 -220
  605. package/src/features/column-ordering/columnOrderingFeature.ts +0 -73
  606. package/src/features/column-ordering/columnOrderingFeature.types.ts +0 -60
  607. package/src/features/column-ordering/columnOrderingFeature.utils.ts +0 -241
  608. package/src/features/column-pinning/columnPinningFeature.ts +0 -316
  609. package/src/features/column-pinning/columnPinningFeature.types.ts +0 -192
  610. package/src/features/column-pinning/columnPinningFeature.utils.ts +0 -908
  611. package/src/features/column-resizing/columnResizingFeature.ts +0 -65
  612. package/src/features/column-resizing/columnResizingFeature.types.ts +0 -89
  613. package/src/features/column-resizing/columnResizingFeature.utils.ts +0 -364
  614. package/src/features/column-sizing/columnSizingFeature.ts +0 -145
  615. package/src/features/column-sizing/columnSizingFeature.types.ts +0 -102
  616. package/src/features/column-sizing/columnSizingFeature.utils.ts +0 -381
  617. package/src/features/column-visibility/columnVisibilityFeature.ts +0 -122
  618. package/src/features/column-visibility/columnVisibilityFeature.types.ts +0 -112
  619. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +0 -384
  620. package/src/features/global-filtering/globalFilteringFeature.ts +0 -65
  621. package/src/features/global-filtering/globalFilteringFeature.types.ts +0 -91
  622. package/src/features/global-filtering/globalFilteringFeature.utils.ts +0 -118
  623. package/src/features/row-expanding/createExpandedRowModel.ts +0 -82
  624. package/src/features/row-expanding/rowExpandingFeature.ts +0 -94
  625. package/src/features/row-expanding/rowExpandingFeature.types.ts +0 -147
  626. package/src/features/row-expanding/rowExpandingFeature.utils.ts +0 -374
  627. package/src/features/row-pagination/createPaginatedRowModel.ts +0 -83
  628. package/src/features/row-pagination/rowPaginationFeature.ts +0 -95
  629. package/src/features/row-pagination/rowPaginationFeature.types.ts +0 -152
  630. package/src/features/row-pagination/rowPaginationFeature.utils.ts +0 -400
  631. package/src/features/row-pinning/rowPinningFeature.ts +0 -97
  632. package/src/features/row-pinning/rowPinningFeature.types.ts +0 -95
  633. package/src/features/row-pinning/rowPinningFeature.utils.ts +0 -323
  634. package/src/features/row-selection/rowSelectionFeature.ts +0 -140
  635. package/src/features/row-selection/rowSelectionFeature.types.ts +0 -151
  636. package/src/features/row-selection/rowSelectionFeature.utils.ts +0 -745
  637. package/src/features/row-sorting/createSortedRowModel.ts +0 -157
  638. package/src/features/row-sorting/rowSortingFeature.ts +0 -103
  639. package/src/features/row-sorting/rowSortingFeature.types.ts +0 -235
  640. package/src/features/row-sorting/rowSortingFeature.utils.ts +0 -489
  641. package/src/features/stockFeatures.ts +0 -53
  642. package/src/flex-render.ts +0 -70
  643. package/src/fns/aggregationFns.ts +0 -245
  644. package/src/fns/filterFns.ts +0 -382
  645. package/src/fns/sortFns.ts +0 -240
  646. package/src/helpers/columnHelper.ts +0 -122
  647. package/src/helpers/tableFeatures.ts +0 -24
  648. package/src/helpers/tableOptions.ts +0 -117
  649. package/src/index.ts +0 -138
  650. package/src/process-env.d.ts +0 -6
  651. package/src/reactivity.ts +0 -2
  652. package/src/static-functions.ts +0 -31
  653. package/src/store-reactivity-bindings.ts +0 -47
  654. package/src/types/Cell.ts +0 -21
  655. package/src/types/Column.ts +0 -51
  656. package/src/types/ColumnDef.ts +0 -228
  657. package/src/types/Header.ts +0 -23
  658. package/src/types/HeaderGroup.ts +0 -13
  659. package/src/types/Row.ts +0 -34
  660. package/src/types/RowModel.ts +0 -98
  661. package/src/types/RowModelFns.ts +0 -32
  662. package/src/types/Table.ts +0 -91
  663. package/src/types/TableFeatures.ts +0 -101
  664. package/src/types/TableOptions.ts +0 -101
  665. package/src/types/TableState.ts +0 -47
  666. package/src/types/type-utils.ts +0 -84
  667. package/src/utils.ts +0 -441
package/dist/utils.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  import { NoInfer, RowData, Updater } from "./types/type-utils.js";
2
2
  import { TableState, TableState_All } from "./types/TableState.js";
3
+ import { Table } from "./types/Table.js";
3
4
  import { TableFeatures } from "./types/TableFeatures.js";
4
- import { Table, Table_Internal } from "./types/Table.js";
5
-
6
5
  //#region src/utils.d.ts
7
6
  /**
8
7
  * Applies a TanStack updater to a value.
@@ -16,12 +15,34 @@ declare function functionalUpdate<T>(updater: Updater<T>, input: T): T;
16
15
  * Plain objects and arrays are copied recursively so state updates can avoid mutating existing references.
17
16
  */
18
17
  declare function cloneState<T>(value: T): T;
18
+ /**
19
+ * Copies prototype-instance own properties without carrying over lazy memo
20
+ * closures or the per-row cell cache, both of which are bound to the source
21
+ * instance (cached cells reference the source row).
22
+ */
23
+ declare function copyInstancePropertiesWithoutMemos<TTarget extends Record<string, any>, TSource extends Record<string, any>>(target: TTarget, source: TSource): TTarget & TSource;
24
+ /**
25
+ * Creates an object intended only for string-keyed dictionary lookups.
26
+ *
27
+ * The null prototype keeps user-controlled ids such as `__proto__` and
28
+ * `hasOwnProperty` as plain data keys.
29
+ */
30
+ declare function makeObjectMap<TValue = unknown>(): Record<string, TValue>;
31
+ /**
32
+ * Checks whether an object owns a key, including null-prototype dictionaries.
33
+ */
34
+ declare function hasOwn(obj: object, key: PropertyKey): boolean;
19
35
  /**
20
36
  * Creates a table state updater for a single state slice.
21
37
  *
22
38
  * The updater writes through the table base atom for the slice and supports both value and functional updater forms.
23
39
  */
24
- declare function makeStateUpdater<TFeatures extends TableFeatures, K extends (string & {}) | keyof TableState_All | keyof TableState<TFeatures>>(key: K, instance: Table<TFeatures, any>): (updater: Updater<TableState<any>[K & keyof TableState<any>]>) => void;
40
+ declare function makeStateUpdater<TFeatures extends TableFeatures, K extends (string & {}) | keyof TableState_All | keyof TableState<TFeatures>>(key: K, instance: {
41
+ readonly options: {
42
+ readonly atoms?: object | undefined;
43
+ };
44
+ readonly baseAtoms: object;
45
+ }): (updater: Updater<TableState<any>[K & keyof TableState<any>]>) => void;
25
46
  type AnyFunction = (...args: any) => any;
26
47
  /**
27
48
  * Returns whether a value is a function.
@@ -46,35 +67,21 @@ interface MemoOptions<TDeps extends ReadonlyArray<any>, TDepArgs, TResult> {
46
67
  *
47
68
  * The memo recomputes only when its dependency tuple changes and can emit debug timing information.
48
69
  */
49
- declare const memo: <TDeps extends ReadonlyArray<any>, TDepArgs, TResult>({
50
- fn,
51
- memoDeps,
52
- onAfterCompare,
53
- onAfterUpdate,
54
- onBeforeCompare,
55
- onBeforeUpdate
56
- }: MemoOptions<TDeps, TDepArgs, TResult>) => ((depArgs?: TDepArgs) => TResult);
70
+ declare const memo: <TDeps extends ReadonlyArray<any>, TDepArgs, TResult>({ fn, memoDeps, onAfterCompare, onAfterUpdate, onBeforeCompare, onBeforeUpdate }: MemoOptions<TDeps, TDepArgs, TResult>) => ((depArgs?: TDepArgs) => TResult);
57
71
  interface TableMemoOptions<TFeatures extends TableFeatures, TDeps extends ReadonlyArray<any>, TDepArgs, TResult> extends MemoOptions<TDeps, TDepArgs, TResult> {
58
72
  feature?: keyof TFeatures & string;
59
73
  fnName: string;
60
74
  objectId?: string;
61
75
  onAfterUpdate?: () => void;
62
- table: Table_Internal<TFeatures, any>;
76
+ table: Table<TFeatures, any>;
63
77
  }
64
78
  /**
65
79
  * Creates a table-aware memoized function.
66
80
  *
67
81
  * This wraps `memo` with table debug options and feature metadata so row models and derived APIs can share consistent diagnostics.
68
82
  */
69
- declare function tableMemo<TFeatures extends TableFeatures, TDeps extends ReadonlyArray<any>, TDepArgs, TResult>({
70
- feature,
71
- fnName,
72
- objectId,
73
- onAfterUpdate,
74
- table,
75
- ...memoOptions
76
- }: TableMemoOptions<TFeatures, TDeps, TDepArgs, TResult>): (depArgs?: TDepArgs | undefined) => TResult;
77
- interface API<TDeps extends ReadonlyArray<any>, TDepArgs> {
83
+ declare function tableMemo<TFeatures extends TableFeatures, TDeps extends ReadonlyArray<any>, TDepArgs, TResult>({ feature, fnName, objectId, onAfterUpdate, table, ...memoOptions }: TableMemoOptions<TFeatures, TDeps, TDepArgs, TResult>): (depArgs?: TDepArgs | undefined) => TResult;
84
+ interface API<_TDeps extends ReadonlyArray<any>, _TDepArgs> {
78
85
  fn: (...args: any) => any;
79
86
  memoDeps?: (depArgs?: any) => [...any] | undefined;
80
87
  }
@@ -91,8 +98,8 @@ declare function getFunctionNameInfo(staticFnName: string, splitBy?: '_' | '.'):
91
98
  * Assigns Table API methods directly to the table instance.
92
99
  * Unlike row/cell/column/header, the table is a singleton so methods are assigned directly.
93
100
  */
94
- declare function assignTableAPIs<TFeatures extends TableFeatures, TData extends RowData, TDeps extends ReadonlyArray<any>, TDepArgs>(feature: keyof TFeatures & string, table: Table_Internal<TFeatures, TData>, apis: APIObject<TDeps, NoInfer<TDepArgs>>): void;
95
- interface PrototypeAPI<TDeps extends ReadonlyArray<any>, TDepArgs> {
101
+ declare function assignTableAPIs<TFeatures extends TableFeatures, TData extends RowData, TDeps extends ReadonlyArray<any>, TDepArgs>(feature: keyof TFeatures & string, table: Table<TFeatures, TData>, apis: APIObject<TDeps, NoInfer<TDepArgs>>): void;
102
+ interface PrototypeAPI<_TDeps extends ReadonlyArray<any>, _TDepArgs> {
96
103
  fn: (self: any, ...args: any) => any;
97
104
  memoDeps?: (self: any, depArgs?: any) => [...any] | undefined;
98
105
  }
@@ -104,11 +111,10 @@ type PrototypeAPIObject<TDeps extends ReadonlyArray<any>, TDepArgs> = Record<str
104
111
  * For memoized methods, the memo state is lazily created and stored on each instance.
105
112
  * This provides the best of both worlds: shared method code + per-instance caching.
106
113
  */
107
- declare function assignPrototypeAPIs<TFeatures extends TableFeatures, TData extends RowData, TDeps extends ReadonlyArray<any>, TDepArgs>(feature: keyof TFeatures & string, prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>, apis: PrototypeAPIObject<TDeps, NoInfer<TDepArgs>>): void;
114
+ declare function assignPrototypeAPIs<TFeatures extends TableFeatures, TData extends RowData, TDeps extends ReadonlyArray<any>, TDepArgs>(feature: keyof TFeatures & string, prototype: Record<string, any>, table: Table<TFeatures, TData>, apis: PrototypeAPIObject<TDeps, NoInfer<TDepArgs>>): void;
108
115
  /**
109
116
  * Looks to run the memoized function with the builder pattern on the object if it exists, otherwise fallback to the static method passed in.
110
117
  */
111
118
  declare function callMemoOrStaticFn<TObject extends Record<string, any>, TArgs extends Array<any>, TReturn>(obj: TObject, fnKey: string, staticFn: (obj: TObject, ...args: TArgs) => TReturn, ...args: TArgs): TReturn;
112
119
  //#endregion
113
- export { API, APIObject, PrototypeAPI, PrototypeAPIObject, assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, cloneState, flattenBy, functionalUpdate, getFunctionNameInfo, isFunction, makeStateUpdater, memo, tableMemo };
114
- //# sourceMappingURL=utils.d.ts.map
120
+ export { API, APIObject, PrototypeAPI, PrototypeAPIObject, assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, cloneState, copyInstancePropertiesWithoutMemos, flattenBy, functionalUpdate, getFunctionNameInfo, hasOwn, isFunction, makeObjectMap, makeStateUpdater, memo, tableMemo };
package/dist/utils.js CHANGED
@@ -17,25 +17,58 @@ function cloneState(value) {
17
17
  if (value && typeof value === "object") {
18
18
  const proto = Object.getPrototypeOf(value);
19
19
  if (proto !== Object.prototype && proto !== null) return value;
20
- const copy = {};
20
+ const copy = proto === null ? makeObjectMap() : {};
21
21
  const keys = Object.keys(value);
22
22
  for (let i = 0; i < keys.length; i++) {
23
23
  const key = keys[i];
24
- copy[key] = cloneState(value[key]);
24
+ Object.defineProperty(copy, key, {
25
+ configurable: true,
26
+ enumerable: true,
27
+ value: cloneState(value[key]),
28
+ writable: true
29
+ });
25
30
  }
26
31
  return copy;
27
32
  }
28
33
  return value;
29
34
  }
30
35
  /**
36
+ * Copies prototype-instance own properties without carrying over lazy memo
37
+ * closures or the per-row cell cache, both of which are bound to the source
38
+ * instance (cached cells reference the source row).
39
+ */
40
+ function copyInstancePropertiesWithoutMemos(target, source) {
41
+ const keys = Object.keys(source);
42
+ const targetRecord = target;
43
+ for (let i = 0; i < keys.length; i++) {
44
+ const key = keys[i];
45
+ if (!key.startsWith("_memo_") && key !== "_cellsCache") targetRecord[key] = source[key];
46
+ }
47
+ return target;
48
+ }
49
+ /**
50
+ * Creates an object intended only for string-keyed dictionary lookups.
51
+ *
52
+ * The null prototype keeps user-controlled ids such as `__proto__` and
53
+ * `hasOwnProperty` as plain data keys.
54
+ */
55
+ function makeObjectMap() {
56
+ return Object.create(null);
57
+ }
58
+ /**
59
+ * Checks whether an object owns a key, including null-prototype dictionaries.
60
+ */
61
+ function hasOwn(obj, key) {
62
+ return Object.prototype.hasOwnProperty.call(obj, key);
63
+ }
64
+ /**
31
65
  * Creates a table state updater for a single state slice.
32
66
  *
33
67
  * The updater writes through the table base atom for the slice and supports both value and functional updater forms.
34
68
  */
35
69
  function makeStateUpdater(key, instance) {
36
70
  return (updater) => {
37
- var _atoms;
38
- (((_atoms = instance.options.atoms) === null || _atoms === void 0 ? void 0 : _atoms[key]) ?? instance.baseAtoms[key]).set((old) => functionalUpdate(updater, old));
71
+ (instance.options.atoms?.[key] ?? instance.baseAtoms[key]).set((old) => functionalUpdate(updater, old));
39
72
  };
40
73
  }
41
74
  /**
@@ -70,21 +103,21 @@ const memo = ({ fn, memoDeps, onAfterCompare, onAfterUpdate, onBeforeCompare, on
70
103
  let deps = [];
71
104
  let result;
72
105
  const memoizedFn = (depArgs) => {
73
- onBeforeCompare === null || onBeforeCompare === void 0 || onBeforeCompare();
74
- const newDeps = memoDeps === null || memoDeps === void 0 ? void 0 : memoDeps(depArgs);
75
- let depsChanged = !newDeps || newDeps.length !== (deps === null || deps === void 0 ? void 0 : deps.length);
106
+ onBeforeCompare?.();
107
+ const newDeps = memoDeps?.(depArgs);
108
+ let depsChanged = !newDeps || newDeps.length !== deps?.length;
76
109
  if (!depsChanged && newDeps) {
77
110
  for (let i = 0; i < newDeps.length; i++) if (newDeps[i] !== deps[i]) {
78
111
  depsChanged = true;
79
112
  break;
80
113
  }
81
114
  }
82
- onAfterCompare === null || onAfterCompare === void 0 || onAfterCompare(depsChanged);
115
+ onAfterCompare?.(depsChanged);
83
116
  if (!depsChanged) return result;
84
117
  deps = newDeps;
85
- onBeforeUpdate === null || onBeforeUpdate === void 0 || onBeforeUpdate();
118
+ onBeforeUpdate?.();
86
119
  result = fn(...newDeps ?? []);
87
- onAfterUpdate === null || onAfterUpdate === void 0 || onAfterUpdate(result);
120
+ onAfterUpdate?.(result);
88
121
  return result;
89
122
  };
90
123
  return memoizedFn;
@@ -100,21 +133,18 @@ const pad = (str, num) => {
100
133
  * This wraps `memo` with table debug options and feature metadata so row models and derived APIs can share consistent diagnostics.
101
134
  */
102
135
  function tableMemo({ feature, fnName, objectId, onAfterUpdate, table, ...memoOptions }) {
103
- let beforeCompareTime;
104
- let afterCompareTime;
105
136
  let startCalcTime;
106
137
  let endCalcTime;
107
138
  let runCount = 0;
108
139
  let debug;
109
- let debugCache;
110
140
  if (process.env.NODE_ENV === "development") {
111
- const { debugCache: _debugCache, debugAll } = table.options;
112
- debugCache = _debugCache;
141
+ const { debugAll } = table.options;
113
142
  const { parentName } = getFunctionNameInfo(fnName, ".");
114
- debug = debugAll || table.options[`debug${(parentName != "table" ? parentName + "s" : parentName).replace(parentName, parentName.charAt(0).toUpperCase() + parentName.slice(1))}`] || (feature ? table.options[`debug${feature.charAt(0).toUpperCase() + feature.slice(1)}`] : false);
143
+ const debugByParent = table.options[`debug${(parentName != "table" ? parentName + "s" : parentName).replace(parentName, parentName.charAt(0).toUpperCase() + parentName.slice(1))}`];
144
+ const debugByFeature = feature ? table.options[`debug${feature.charAt(0).toUpperCase() + feature.slice(1)}`] : false;
145
+ debug = debugAll || debugByParent || debugByFeature;
115
146
  }
116
147
  function logTime(time, depsChanged) {
117
- var _memoOptions$memoDeps;
118
148
  const runType = runCount === 0 ? "(1st run)" : depsChanged ? "(rerun #" + runCount + ")" : "(cache)";
119
149
  runCount++;
120
150
  console.groupCollapsed(`%c⏱ ${pad(`${time.toFixed(1)} ms`, 12)} %c${runType}%c ${fnName}%c ${objectId ? `(${fnName.split(".")[0]}Id: ${objectId})` : ""}`, `font-size: .6rem; font-weight: bold; ${depsChanged ? `color: hsl(
@@ -122,7 +152,7 @@ function tableMemo({ feature, fnName, objectId, onAfterUpdate, table, ...memoOpt
122
152
  console.info({
123
153
  feature,
124
154
  state: table.store.state,
125
- deps: (_memoOptions$memoDeps = memoOptions.memoDeps) === null || _memoOptions$memoDeps === void 0 ? void 0 : _memoOptions$memoDeps.toString()
155
+ deps: memoOptions.memoDeps?.toString()
126
156
  });
127
157
  console.trace();
128
158
  console.groupEnd();
@@ -133,16 +163,8 @@ function tableMemo({ feature, fnName, objectId, onAfterUpdate, table, ...memoOpt
133
163
  schedule(() => untrack(() => onAfterUpdate()));
134
164
  };
135
165
  const debugOptions = process.env.NODE_ENV === "development" ? {
136
- onBeforeCompare: () => {
137
- if (debugCache) beforeCompareTime = performance.now();
138
- },
139
- onAfterCompare: (depsChanged) => {
140
- if (debugCache) {
141
- afterCompareTime = performance.now();
142
- const compareTime = Math.round((afterCompareTime - beforeCompareTime) * 100) / 100;
143
- if (!depsChanged) logTime(compareTime, depsChanged);
144
- }
145
- },
166
+ onBeforeCompare: () => {},
167
+ onAfterCompare: (depsChanged) => {},
146
168
  onBeforeUpdate: () => {
147
169
  if (debug) startCalcTime = performance.now();
148
170
  },
@@ -223,10 +245,8 @@ function assignPrototypeAPIs(feature, prototype, table, apis) {
223
245
  * Looks to run the memoized function with the builder pattern on the object if it exists, otherwise fallback to the static method passed in.
224
246
  */
225
247
  function callMemoOrStaticFn(obj, fnKey, staticFn, ...args) {
226
- var _obj$fnKey;
227
- return ((_obj$fnKey = obj[fnKey]) === null || _obj$fnKey === void 0 ? void 0 : _obj$fnKey.call(obj, ...args)) ?? staticFn(obj, ...args);
248
+ return obj[fnKey]?.(...args) ?? staticFn(obj, ...args);
228
249
  }
229
250
 
230
251
  //#endregion
231
- export { assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, cloneState, flattenBy, functionalUpdate, getFunctionNameInfo, isFunction, makeStateUpdater, memo, tableMemo };
232
- //# sourceMappingURL=utils.js.map
252
+ export { assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, cloneState, copyInstancePropertiesWithoutMemos, flattenBy, functionalUpdate, getFunctionNameInfo, hasOwn, isFunction, makeObjectMap, makeStateUpdater, memo, tableMemo };
@@ -0,0 +1,100 @@
1
+ import { TableState_WorkerRowModels, TableWorkerStage } from "./tableWorkerProtocol.js";
2
+ import { Table } from "../types/Table.js";
3
+ import { TableFeature } from "../types/TableFeatures.js";
4
+ import { TableWorkerDataPayload } from "./rebuildRowModel.js";
5
+ //#region src/worker/createTableWorker.d.ts
6
+ declare module '../types/TableFeatures' {
7
+ interface Plugins {
8
+ workerRowModelsFeature: TableFeature;
9
+ }
10
+ }
11
+ declare module '../types/TableState' {
12
+ interface TableState_FeatureMap {
13
+ workerRowModelsFeature: TableState_WorkerRowModels;
14
+ }
15
+ }
16
+ interface TableWorkerOptions {
17
+ /**
18
+ * Creates the dedicated worker that runs the shadow table. The worker entry
19
+ * must call `initTableWorker` with the same columns and processing config.
20
+ *
21
+ * The `new Worker(new URL(...))` expression must live in your code (not the
22
+ * library) so your bundler can statically discover and bundle the worker
23
+ * entry file.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * createWorker: () =>
28
+ * new Worker(new URL('./table.worker.ts', import.meta.url), {
29
+ * type: 'module',
30
+ * })
31
+ * ```
32
+ */
33
+ createWorker: () => Worker;
34
+ }
35
+ interface TableWorkerBridge {
36
+ worker: Worker | null;
37
+ /** The worker errored (load failure or uncaught throw); stop posting. */
38
+ failed: boolean;
39
+ lastData: unknown;
40
+ dataVersion: number;
41
+ requestId: number;
42
+ resultRequestId: number;
43
+ /** A process request has been posted and its result has not arrived yet. */
44
+ inFlight: boolean;
45
+ /** State changed since the last posted request; post when possible. */
46
+ needsProcess: boolean;
47
+ sentAt: number;
48
+ /** The stages registered on this table (grows as factories initialize). */
49
+ stages: Set<TableWorkerStage>;
50
+ /** Snapshot of state refs + stage count captured at the last post. */
51
+ sentState: Record<string, unknown> | null;
52
+ sentStageCount: number;
53
+ /** Latest observed state refs, posted on the trailing edge if in flight. */
54
+ lastState: Record<string, unknown>;
55
+ results: { [K in TableWorkerStage]?: TableWorkerDataPayload; };
56
+ /** Bumped per stage only when that stage's payload actually changed. */
57
+ stageVersions: { [K in TableWorkerStage]?: number; };
58
+ }
59
+ type AnyTable = Table<any, any>;
60
+ /**
61
+ * A handle shared by every worker-backed row model on a table. It owns the
62
+ * worker instance and the per-table request/result bookkeeping, so registering
63
+ * one stage or four costs exactly one worker and one round trip per change.
64
+ */
65
+ interface TableWorker {
66
+ _options: TableWorkerOptions;
67
+ _bridges: WeakMap<object, TableWorkerBridge>;
68
+ _liveBridges: Set<TableWorkerBridge>;
69
+ /**
70
+ * Terminates every worker created through this handle and resets the
71
+ * bookkeeping. Safe to call at any time: the next row model read lazily
72
+ * recreates the worker and re-sends the data (self-healing). Note that
73
+ * nothing calls this automatically yet; React StrictMode double-mounts and
74
+ * HMR updates still leak a worker in development until the reactivity
75
+ * bindings grow a real `unmount` hook.
76
+ */
77
+ terminate: () => void;
78
+ }
79
+ /**
80
+ * Registers the `workerRowModels` state slice
81
+ * (`{ version, isPending, lastComputeMs, lastRoundTripMs }`). Worker results
82
+ * land by bumping `version`, so re-renders flow through the exact same state
83
+ * mechanism as every other table state change.
84
+ */
85
+ declare const workerRowModelsFeature: TableFeature;
86
+ /**
87
+ * Creates the shared worker handle for a table's worker-backed row models.
88
+ * Pass it to `createWorkerRowModel()` once per stage you want offloaded.
89
+ */
90
+ declare function createTableWorker(options: TableWorkerOptions): TableWorker;
91
+ declare function getTableWorkerBridge(tableWorker: TableWorker, table: AnyTable): TableWorkerBridge;
92
+ /**
93
+ * Pull-based sync, called at the top of every worker-backed row model read
94
+ * (i.e. every render). Posts data on identity change and a single-flight
95
+ * process request on state change; both are cheap no-ops otherwise, and
96
+ * multiple stages sharing the handle dedupe onto one request.
97
+ */
98
+ declare function syncTableWorker(tableWorker: TableWorker, table: AnyTable): void;
99
+ //#endregion
100
+ export { TableWorker, TableWorkerBridge, TableWorkerOptions, createTableWorker, getTableWorkerBridge, syncTableWorker, workerRowModelsFeature };
@@ -0,0 +1,185 @@
1
+ import { table_autoResetPageIndex } from "../features/row-pagination/rowPaginationFeature.utils.js";
2
+ import { table_autoResetExpanded } from "../features/row-expanding/rowExpandingFeature.utils.js";
3
+ import { tableWorkerPipeline, tableWorkerStageStateDeps } from "./tableWorkerProtocol.js";
4
+
5
+ //#region src/worker/createTableWorker.ts
6
+ /**
7
+ * Registers the `workerRowModels` state slice
8
+ * (`{ version, isPending, lastComputeMs, lastRoundTripMs }`). Worker results
9
+ * land by bumping `version`, so re-renders flow through the exact same state
10
+ * mechanism as every other table state change.
11
+ */
12
+ const workerRowModelsFeature = { getInitialState: (initialState) => ({
13
+ workerRowModels: {
14
+ version: 0,
15
+ isPending: false
16
+ },
17
+ ...initialState
18
+ }) };
19
+ /**
20
+ * Creates the shared worker handle for a table's worker-backed row models.
21
+ * Pass it to `createWorkerRowModel()` once per stage you want offloaded.
22
+ */
23
+ function createTableWorker(options) {
24
+ const liveBridges = /* @__PURE__ */ new Set();
25
+ return {
26
+ _options: options,
27
+ _bridges: /* @__PURE__ */ new WeakMap(),
28
+ _liveBridges: liveBridges,
29
+ terminate: () => {
30
+ for (const bridge of liveBridges) {
31
+ bridge.worker?.terminate();
32
+ bridge.worker = null;
33
+ bridge.failed = false;
34
+ bridge.lastData = void 0;
35
+ bridge.inFlight = false;
36
+ bridge.needsProcess = true;
37
+ bridge.sentState = null;
38
+ bridge.sentStageCount = 0;
39
+ }
40
+ liveBridges.clear();
41
+ }
42
+ };
43
+ }
44
+ function getTableWorkerBridge(tableWorker, table) {
45
+ let bridge = tableWorker._bridges.get(table);
46
+ if (!bridge) {
47
+ bridge = {
48
+ worker: null,
49
+ failed: false,
50
+ lastData: void 0,
51
+ dataVersion: 0,
52
+ requestId: 0,
53
+ resultRequestId: 0,
54
+ inFlight: false,
55
+ needsProcess: true,
56
+ sentAt: 0,
57
+ stages: /* @__PURE__ */ new Set(),
58
+ sentState: null,
59
+ sentStageCount: 0,
60
+ lastState: {},
61
+ results: {},
62
+ stageVersions: {}
63
+ };
64
+ tableWorker._bridges.set(table, bridge);
65
+ }
66
+ return bridge;
67
+ }
68
+ /** Shallow reference comparison; atoms return stable refs when unchanged. */
69
+ function statesEqual(a, b) {
70
+ if (a === null) return false;
71
+ const aKeys = Object.keys(a);
72
+ const bKeys = Object.keys(b);
73
+ if (aKeys.length !== bKeys.length) return false;
74
+ for (const key of bKeys) if (a[key] !== b[key]) return false;
75
+ return true;
76
+ }
77
+ function setWorkerRowModelsState(table, update) {
78
+ table.baseAtoms.workerRowModels?.set((prev) => update(prev ?? { version: 0 }));
79
+ }
80
+ function postProcess(table, bridge) {
81
+ const stages = tableWorkerPipeline.filter((stage) => bridge.stages.has(stage));
82
+ bridge.needsProcess = false;
83
+ bridge.sentState = bridge.lastState;
84
+ bridge.sentStageCount = bridge.stages.size;
85
+ bridge.inFlight = true;
86
+ bridge.sentAt = performance.now();
87
+ const requestId = ++bridge.requestId;
88
+ bridge.worker.postMessage({
89
+ type: "process",
90
+ requestId,
91
+ dataVersion: bridge.dataVersion,
92
+ stages,
93
+ state: bridge.lastState
94
+ });
95
+ table._reactivity.schedule(() => {
96
+ if (bridge.requestId === requestId && bridge.resultRequestId < requestId) setWorkerRowModelsState(table, (prev) => ({
97
+ ...prev,
98
+ isPending: true
99
+ }));
100
+ });
101
+ }
102
+ function handleResult(table, bridge, message) {
103
+ if (message.requestId !== bridge.requestId) return;
104
+ bridge.inFlight = false;
105
+ bridge.resultRequestId = message.requestId;
106
+ if (message.dataVersion !== bridge.dataVersion) {
107
+ postProcess(table, bridge);
108
+ return;
109
+ }
110
+ let anyChanged = false;
111
+ let groupedChanged = false;
112
+ for (const [stage, payload] of Object.entries(message.stages)) {
113
+ if (payload.kind === "unchanged") continue;
114
+ bridge.results[stage] = payload;
115
+ bridge.stageVersions[stage] = (bridge.stageVersions[stage] ?? 0) + 1;
116
+ anyChanged = true;
117
+ if (stage === "grouped") groupedChanged = true;
118
+ }
119
+ const roundTripMs = performance.now() - bridge.sentAt;
120
+ setWorkerRowModelsState(table, (prev) => ({
121
+ version: (prev.version ?? 0) + 1,
122
+ isPending: false,
123
+ lastComputeMs: message.computeMs,
124
+ lastRoundTripMs: roundTripMs
125
+ }));
126
+ if (anyChanged) table._reactivity.schedule(() => table._reactivity.untrack(() => {
127
+ if (groupedChanged) table_autoResetExpanded(table);
128
+ table_autoResetPageIndex(table);
129
+ }));
130
+ if (bridge.needsProcess) postProcess(table, bridge);
131
+ }
132
+ function handleError(table, bridge, event) {
133
+ if (bridge.failed) return;
134
+ bridge.failed = true;
135
+ bridge.inFlight = false;
136
+ console.error("[table-worker] The table worker failed; worker row models will keep their last results and stop updating. Check that the worker entry loads and that its initTableWorker() config is thread-portable.", event);
137
+ bridge.worker?.terminate();
138
+ bridge.worker = null;
139
+ setWorkerRowModelsState(table, (prev) => ({
140
+ ...prev,
141
+ isPending: false
142
+ }));
143
+ }
144
+ function ensureWorker(tableWorker, table, bridge) {
145
+ if (bridge.worker) return;
146
+ bridge.worker = tableWorker._options.createWorker();
147
+ tableWorker._liveBridges.add(bridge);
148
+ bridge.worker.onmessage = (event) => {
149
+ handleResult(table, bridge, event.data);
150
+ };
151
+ bridge.worker.onerror = (event) => handleError(table, bridge, event);
152
+ bridge.worker.onmessageerror = (event) => handleError(table, bridge, event);
153
+ }
154
+ /**
155
+ * Pull-based sync, called at the top of every worker-backed row model read
156
+ * (i.e. every render). Posts data on identity change and a single-flight
157
+ * process request on state change; both are cheap no-ops otherwise, and
158
+ * multiple stages sharing the handle dedupe onto one request.
159
+ */
160
+ function syncTableWorker(tableWorker, table) {
161
+ if (typeof Worker === "undefined") return;
162
+ const bridge = getTableWorkerBridge(tableWorker, table);
163
+ if (bridge.failed) return;
164
+ ensureWorker(tableWorker, table, bridge);
165
+ const data = table.options.data;
166
+ if (data !== bridge.lastData) {
167
+ bridge.lastData = data;
168
+ bridge.dataVersion++;
169
+ bridge.worker.postMessage({
170
+ type: "data",
171
+ dataVersion: bridge.dataVersion,
172
+ data
173
+ });
174
+ bridge.needsProcess = true;
175
+ }
176
+ const atoms = table.atoms;
177
+ const state = {};
178
+ for (const stage of bridge.stages) for (const key of tableWorkerStageStateDeps[stage]) state[key] = atoms[key]?.get();
179
+ bridge.lastState = state;
180
+ if (!bridge.needsProcess && (!statesEqual(bridge.sentState, state) || bridge.stages.size !== bridge.sentStageCount)) bridge.needsProcess = true;
181
+ if (bridge.needsProcess && !bridge.inFlight) postProcess(table, bridge);
182
+ }
183
+
184
+ //#endregion
185
+ export { createTableWorker, getTableWorkerBridge, syncTableWorker, workerRowModelsFeature };
@@ -0,0 +1,40 @@
1
+ import { RowData } from "../types/type-utils.js";
2
+ import { TableWorkerStage } from "./tableWorkerProtocol.js";
3
+ import { RowModel } from "../core/row-models/coreRowModelsFeature.types.js";
4
+ import { Table } from "../types/Table.js";
5
+ import { TableFeatures } from "../types/TableFeatures.js";
6
+ import { TableWorker } from "./createTableWorker.js";
7
+ //#region src/worker/createWorkerRowModel.d.ts
8
+ /**
9
+ * Turns any row model stage into a worker-backed one. The returned factory
10
+ * plugs into the standard feature slot for that stage, so it composes with
11
+ * the rest of the pipeline exactly like the sync factory it replaces.
12
+ *
13
+ * Register only the stages you want offloaded; each import is independent and
14
+ * tree-shakable. All stages on a table share one worker and one round trip
15
+ * per state change via the `tableWorker` handle. Until a result lands, the
16
+ * stage returns its pre-stage model (stale-while-revalidate).
17
+ *
18
+ * Offloaded stages must form a contiguous prefix of the pipeline
19
+ * (filtered -> grouped -> sorted -> expanded): a stage's worker result encodes
20
+ * everything upstream as computed in the worker, so any upstream stage
21
+ * registered on the main thread must be offloaded too. A dev warning fires on
22
+ * mismatches.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const tableWorker = createTableWorker({ createWorker })
27
+ *
28
+ * const features = tableFeatures({
29
+ * rowSortingFeature,
30
+ * columnGroupingFeature,
31
+ * workerRowModelsFeature,
32
+ * filteredRowModel: createWorkerRowModel(tableWorker, 'filtered'),
33
+ * groupedRowModel: createWorkerRowModel(tableWorker, 'grouped'),
34
+ * sortedRowModel: createWorkerRowModel(tableWorker, 'sorted'),
35
+ * })
36
+ * ```
37
+ */
38
+ declare function createWorkerRowModel(tableWorker: TableWorker, stage: TableWorkerStage): <TFeatures extends TableFeatures, TData extends RowData>(_table: Table<TFeatures, TData>) => (() => RowModel<TFeatures, TData>);
39
+ //#endregion
40
+ export { createWorkerRowModel };
@@ -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 };