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

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 +25 -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 +1 -2
  160. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +54 -24
  161. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +19 -22
  162. package/dist/features/row-sorting/rowSortingFeature.utils.js +36 -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 +11 -8
  182. package/dist/static-functions.js +11 -8
  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
@@ -0,0 +1,121 @@
1
+ //#region src/features/cell-selection/cellSelectionGeometry.ts
2
+ function compareBounds(a, b) {
3
+ return a.minRowIndex - b.minRowIndex || a.minColumnIndex - b.minColumnIndex || a.maxRowIndex - b.maxRowIndex || a.maxColumnIndex - b.maxColumnIndex;
4
+ }
5
+ function intersectCellSelectionBounds(a, b) {
6
+ const intersection = {
7
+ minRowIndex: Math.max(a.minRowIndex, b.minRowIndex),
8
+ maxRowIndex: Math.min(a.maxRowIndex, b.maxRowIndex),
9
+ minColumnIndex: Math.max(a.minColumnIndex, b.minColumnIndex),
10
+ maxColumnIndex: Math.min(a.maxColumnIndex, b.maxColumnIndex)
11
+ };
12
+ return intersection.minRowIndex <= intersection.maxRowIndex && intersection.minColumnIndex <= intersection.maxColumnIndex ? intersection : void 0;
13
+ }
14
+ function subtractCellSelectionBounds(source, excluded) {
15
+ const intersection = intersectCellSelectionBounds(source, excluded);
16
+ if (!intersection) return [source];
17
+ const result = [];
18
+ if (source.minRowIndex < intersection.minRowIndex) result.push({
19
+ ...source,
20
+ maxRowIndex: intersection.minRowIndex - 1
21
+ });
22
+ if (intersection.maxRowIndex < source.maxRowIndex) result.push({
23
+ ...source,
24
+ minRowIndex: intersection.maxRowIndex + 1
25
+ });
26
+ if (source.minColumnIndex < intersection.minColumnIndex) result.push({
27
+ minRowIndex: intersection.minRowIndex,
28
+ maxRowIndex: intersection.maxRowIndex,
29
+ minColumnIndex: source.minColumnIndex,
30
+ maxColumnIndex: intersection.minColumnIndex - 1
31
+ });
32
+ if (intersection.maxColumnIndex < source.maxColumnIndex) result.push({
33
+ minRowIndex: intersection.minRowIndex,
34
+ maxRowIndex: intersection.maxRowIndex,
35
+ minColumnIndex: intersection.maxColumnIndex + 1,
36
+ maxColumnIndex: source.maxColumnIndex
37
+ });
38
+ return result;
39
+ }
40
+ function mergePair(a, b) {
41
+ if (a.minRowIndex === b.minRowIndex && a.maxRowIndex === b.maxRowIndex && (a.maxColumnIndex + 1 === b.minColumnIndex || b.maxColumnIndex + 1 === a.minColumnIndex)) return {
42
+ minRowIndex: a.minRowIndex,
43
+ maxRowIndex: a.maxRowIndex,
44
+ minColumnIndex: Math.min(a.minColumnIndex, b.minColumnIndex),
45
+ maxColumnIndex: Math.max(a.maxColumnIndex, b.maxColumnIndex)
46
+ };
47
+ if (a.minColumnIndex === b.minColumnIndex && a.maxColumnIndex === b.maxColumnIndex && (a.maxRowIndex + 1 === b.minRowIndex || b.maxRowIndex + 1 === a.minRowIndex)) return {
48
+ minRowIndex: Math.min(a.minRowIndex, b.minRowIndex),
49
+ maxRowIndex: Math.max(a.maxRowIndex, b.maxRowIndex),
50
+ minColumnIndex: a.minColumnIndex,
51
+ maxColumnIndex: a.maxColumnIndex
52
+ };
53
+ }
54
+ function mergeAdjacentCellSelectionBounds(input) {
55
+ const result = input.slice();
56
+ for (let i = 0; i < result.length; i++) for (let j = i + 1; j < result.length; j++) {
57
+ const merged = mergePair(result[i], result[j]);
58
+ if (!merged) continue;
59
+ result.splice(j, 1);
60
+ result[i] = merged;
61
+ i = -1;
62
+ break;
63
+ }
64
+ return result.sort(compareBounds);
65
+ }
66
+ function addCellSelectionBounds(selected, included) {
67
+ let fragments = [included];
68
+ for (const existing of selected) {
69
+ fragments = fragments.flatMap((fragment) => subtractCellSelectionBounds(fragment, existing));
70
+ if (!fragments.length) return selected.slice();
71
+ }
72
+ return mergeAdjacentCellSelectionBounds([...selected, ...fragments]);
73
+ }
74
+ /**
75
+ * Grows a rectangle until it fully contains every merged-cell rectangle it
76
+ * touches.
77
+ *
78
+ * Merged cells make plain rectangles insufficient: a selection that clips part
79
+ * of a merge must cover the whole merge, and covering it can bring the
80
+ * rectangle into contact with further merges, so the expansion runs to a fixed
81
+ * point. The loop is bounded by the merge count, since each pass that changes
82
+ * the rectangle consumes at least one merge.
83
+ */
84
+ function expandCellSelectionBounds(bounds, merges) {
85
+ let expanded = bounds;
86
+ let changed = true;
87
+ while (changed) {
88
+ changed = false;
89
+ for (const merge of merges) {
90
+ if (!intersectCellSelectionBounds(expanded, merge)) continue;
91
+ const union = {
92
+ minRowIndex: Math.min(expanded.minRowIndex, merge.minRowIndex),
93
+ maxRowIndex: Math.max(expanded.maxRowIndex, merge.maxRowIndex),
94
+ minColumnIndex: Math.min(expanded.minColumnIndex, merge.minColumnIndex),
95
+ maxColumnIndex: Math.max(expanded.maxColumnIndex, merge.maxColumnIndex)
96
+ };
97
+ if (union.minRowIndex !== expanded.minRowIndex || union.maxRowIndex !== expanded.maxRowIndex || union.minColumnIndex !== expanded.minColumnIndex || union.maxColumnIndex !== expanded.maxColumnIndex) {
98
+ expanded = union;
99
+ changed = true;
100
+ }
101
+ }
102
+ }
103
+ return expanded;
104
+ }
105
+ function applyCellSelectionBoundsOperations(operations) {
106
+ let selected = [];
107
+ for (const operation of operations) {
108
+ const bounds = {
109
+ minRowIndex: operation.minRowIndex,
110
+ maxRowIndex: operation.maxRowIndex,
111
+ minColumnIndex: operation.minColumnIndex,
112
+ maxColumnIndex: operation.maxColumnIndex
113
+ };
114
+ if (operation.operation === "exclude") selected = mergeAdjacentCellSelectionBounds(selected.flatMap((bound) => subtractCellSelectionBounds(bound, bounds)));
115
+ else selected = addCellSelectionBounds(selected, bounds);
116
+ }
117
+ return selected.sort(compareBounds);
118
+ }
119
+
120
+ //#endregion
121
+ export { addCellSelectionBounds, applyCellSelectionBoundsOperations, expandCellSelectionBounds, intersectCellSelectionBounds, mergeAdjacentCellSelectionBounds, subtractCellSelectionBounds };
@@ -0,0 +1,13 @@
1
+ import { TableFeature } from "../../types/TableFeatures.js";
2
+ //#region src/features/cell-spanning/cellSpanningFeature.d.ts
3
+ /**
4
+ * Feature that merges adjacent cells that share a value into row-spanning
5
+ * cells, and lets a column def declare column-spanning cells per row.
6
+ *
7
+ * Stateless: spans are always derived from the rows that are currently
8
+ * rendered, so there is nothing to persist and nothing to configure beyond the
9
+ * column defs.
10
+ */
11
+ declare const cellSpanningFeature: TableFeature;
12
+ //#endregion
13
+ export { cellSpanningFeature };
@@ -0,0 +1,47 @@
1
+ import { assignPrototypeAPIs, assignTableAPIs } from "../../utils.js";
2
+ import { cell_getColSpan, cell_getIsCovered, cell_getRowSpan, table_getCellSpanIndex } from "./cellSpanningFeature.utils.js";
3
+
4
+ //#region src/features/cell-spanning/cellSpanningFeature.ts
5
+ /**
6
+ * Feature that merges adjacent cells that share a value into row-spanning
7
+ * cells, and lets a column def declare column-spanning cells per row.
8
+ *
9
+ * Stateless: spans are always derived from the rows that are currently
10
+ * rendered, so there is nothing to persist and nothing to configure beyond the
11
+ * column defs.
12
+ */
13
+ const cellSpanningFeature = {
14
+ getDefaultTableOptions: () => {
15
+ return { enableCellSpanning: true };
16
+ },
17
+ initRowInstanceData: (row) => {
18
+ row._cellSpanRowIndex = -1;
19
+ },
20
+ assignCellPrototype: (prototype, table) => {
21
+ assignPrototypeAPIs("cellSpanningFeature", prototype, table, {
22
+ cell_getColSpan: { fn: (cell) => cell_getColSpan(cell) },
23
+ cell_getIsCovered: { fn: (cell) => cell_getIsCovered(cell) },
24
+ cell_getRowSpan: { fn: (cell) => cell_getRowSpan(cell) }
25
+ });
26
+ },
27
+ constructTableAPIs: (table) => {
28
+ assignTableAPIs("cellSpanningFeature", table, { table_getCellSpanIndex: {
29
+ fn: () => table_getCellSpanIndex(table),
30
+ memoDeps: () => [
31
+ table.getRowModel().rows,
32
+ table.atoms.rowPinning?.get(),
33
+ table.options.keepPinnedRows,
34
+ table.atoms.columnVisibility?.get(),
35
+ table.atoms.columnOrder?.get(),
36
+ table.atoms.columnPinning?.get(),
37
+ table.atoms.grouping?.get(),
38
+ table.options.columns,
39
+ table.options.groupedColumnMode,
40
+ table.options.enableCellSpanning
41
+ ]
42
+ } });
43
+ }
44
+ };
45
+
46
+ //#endregion
47
+ export { cellSpanningFeature };
@@ -0,0 +1,150 @@
1
+ import { CellData, RowData } from "../../types/type-utils.js";
2
+ import { Column } from "../../types/Column.js";
3
+ import { Row } from "../../types/Row.js";
4
+ import { Table } from "../../types/Table.js";
5
+ import { TableFeatures } from "../../types/TableFeatures.js";
6
+ //#region src/features/cell-spanning/cellSpanningFeature.types.d.ts
7
+ /**
8
+ * The table's cell span index for the rows that are currently rendered.
9
+ *
10
+ * Cell APIs read this; it is exposed for devtools and for virtualizers that
11
+ * need to know where a run's anchor sits relative to the rendered window.
12
+ */
13
+ interface CellSpanIndex<in out TFeatures extends TableFeatures, in out TData extends RowData> {
14
+ /**
15
+ * Column spans per render-order row position, indexed by render-order column
16
+ * position. Holes are the common case: only rows that declared a column span
17
+ * get an array. In a stored array, the spanning cell holds its span and the
18
+ * cells it covers hold `0`; every other cell holds `1`.
19
+ */
20
+ colSpans: Array<Int32Array | undefined>;
21
+ /**
22
+ * Render-order index for every visible column id. Hidden columns are absent.
23
+ */
24
+ columnIndexes: Record<string, number>;
25
+ /**
26
+ * Row spans per column id, indexed by render-order row position. Only columns
27
+ * that produced at least one run longer than one row appear here; a missing
28
+ * column means every cell in it spans exactly one row. In a stored array, the
29
+ * run's anchor row holds the run length and the rows it covers hold `0`.
30
+ */
31
+ rowSpans: Record<string, Int32Array>;
32
+ /**
33
+ * The exact ordered rows this index was built from, in render order:
34
+ * top-pinned rows, then the (paginated) center rows, then bottom-pinned
35
+ * rows. Cell reads compare against this to reject stale row positions.
36
+ */
37
+ rows: ReadonlyArray<Row<TFeatures, TData>>;
38
+ }
39
+ /**
40
+ * Context passed to a `spanRows` predicate for each candidate row.
41
+ *
42
+ * The run is anchored: `anchorRow` is the row whose cell will render the
43
+ * merged content, and every later row in the run is tested against it, which
44
+ * keeps runs transitive by construction. `previousRow` is provided for
45
+ * predicates that want a step-wise comparison instead.
46
+ */
47
+ interface RowSpanContext<in out TFeatures extends TableFeatures, in out TData extends RowData, TValue extends CellData = CellData> {
48
+ anchorRow: Row<TFeatures, TData>;
49
+ anchorValue: TValue;
50
+ column: Column<TFeatures, TData, TValue>;
51
+ previousRow: Row<TFeatures, TData>;
52
+ row: Row<TFeatures, TData>;
53
+ table: Table<TFeatures, TData>;
54
+ value: TValue;
55
+ }
56
+ /**
57
+ * Context passed to a `spanColumns` resolver for each rendered row.
58
+ */
59
+ interface ColSpanContext<in out TFeatures extends TableFeatures, in out TData extends RowData, TValue extends CellData = CellData> {
60
+ column: Column<TFeatures, TData, TValue>;
61
+ row: Row<TFeatures, TData>;
62
+ table: Table<TFeatures, TData>;
63
+ }
64
+ interface ColumnDef_CellSpanning<in out TFeatures extends TableFeatures, in out TData extends RowData, TValue extends CellData = CellData> {
65
+ /**
66
+ * Turns this column off for cell spanning even when the table allows it.
67
+ * Defaults to `true`.
68
+ */
69
+ enableCellSpanning?: boolean;
70
+ /**
71
+ * Makes this column's cell span the given number of columns per row,
72
+ * starting at itself and counted in the order columns actually render.
73
+ *
74
+ * Return `1` or less for no span. Larger values are clamped to the end of
75
+ * the cell's pinned region, so a span can never cross the start-pinned,
76
+ * center, or end-pinned boundary; pass `Infinity` for "the rest of my
77
+ * region". Hidden columns are not counted.
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * { accessorKey: 'label', spanColumns: ({ row }) => row.original.isSummary ? Infinity : 1 }
82
+ * ```
83
+ */
84
+ spanColumns?: number | ((context: ColSpanContext<TFeatures, TData, TValue>) => number);
85
+ /**
86
+ * Merges adjacent rows in this column into a single vertically spanning
87
+ * cell.
88
+ *
89
+ * `true` merges rows whose values for this column are the same value
90
+ * (`Object.is`). Nullish values never merge under the default comparison.
91
+ *
92
+ * A predicate replaces the comparison entirely and decides whether `row`
93
+ * joins the run anchored at `anchorRow`; it may merge nullish values. It is
94
+ * called once per candidate row each time the span index rebuilds, and each
95
+ * call allocates one context object, so keep it cheap.
96
+ *
97
+ * Spans are always recomputed from the rows that are actually rendered, so
98
+ * sorting, filtering, and paging only change which rows are adjacent. Runs
99
+ * never cross a page boundary, a pinned-row section boundary, a change of
100
+ * position in the row tree, or a grouped row. Ignored while this column is
101
+ * grouped.
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * { accessorKey: 'department', spanRows: true }
106
+ * ```
107
+ */
108
+ spanRows?: boolean | ((context: RowSpanContext<TFeatures, TData, TValue>) => boolean);
109
+ }
110
+ interface TableOptions_CellSpanning {
111
+ /**
112
+ * Allows cells to span rows or columns. When `false` every cell reports a
113
+ * span of `1` and the span index is never built. Defaults to `true`.
114
+ */
115
+ enableCellSpanning?: boolean;
116
+ }
117
+ interface Cell_CellSpanning {
118
+ /**
119
+ * Number of columns this cell spans when rendered. `1` when it does not
120
+ * span, and `0` when another cell's column span covers it.
121
+ *
122
+ * Never render a `0` as a `colSpan` attribute; skip the cell instead. See
123
+ * `getIsCovered`.
124
+ */
125
+ getColSpan: () => number;
126
+ /**
127
+ * Whether another cell's span covers this cell. Skip rendering covered
128
+ * cells; the cell that covers them carries the content and the span
129
+ * attributes.
130
+ */
131
+ getIsCovered: () => boolean;
132
+ /**
133
+ * Number of rows this cell spans when rendered. `1` when it does not span,
134
+ * and `0` when a spanning cell above it covers it, matching the
135
+ * `header.rowSpan` convention.
136
+ *
137
+ * Never render a `0` as a `rowSpan` attribute: in HTML, `rowspan="0"` means
138
+ * "span to the end of the row group", which merges the cell down the entire
139
+ * table section. Skip the cell instead. See `getIsCovered`.
140
+ */
141
+ getRowSpan: () => number;
142
+ }
143
+ interface Table_CellSpanning<in out TFeatures extends TableFeatures, in out TData extends RowData> {
144
+ /**
145
+ * The memoized span index for the rows that are currently rendered.
146
+ */
147
+ getCellSpanIndex: () => CellSpanIndex<TFeatures, TData>;
148
+ }
149
+ //#endregion
150
+ export { CellSpanIndex, Cell_CellSpanning, ColSpanContext, ColumnDef_CellSpanning, RowSpanContext, TableOptions_CellSpanning, Table_CellSpanning };
@@ -0,0 +1,74 @@
1
+ import { CellData, RowData } from "../../types/type-utils.js";
2
+ import { Column } from "../../types/Column.js";
3
+ import { Table } from "../../types/Table.js";
4
+ import { CellSpanIndex } from "./cellSpanningFeature.types.js";
5
+ import { Cell } from "../../types/Cell.js";
6
+ import { TableFeatures } from "../../types/TableFeatures.js";
7
+ //#region src/features/cell-spanning/cellSpanningFeature.utils.d.ts
8
+ /**
9
+ * Checks whether this column takes part in cell spanning.
10
+ *
11
+ * A column def opting out with `enableCellSpanning: false` wins over the table
12
+ * option, matching how the other per-column enable flags resolve.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const canSpan = column_getCanSpan(column)
17
+ * ```
18
+ */
19
+ declare function column_getCanSpan<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): boolean;
20
+ /**
21
+ * Builds the table's cell span index for the rows that are currently rendered.
22
+ *
23
+ * Spans are always derived from scratch from the final row model, so sorting,
24
+ * filtering, pagination, expansion, and row pinning only change adjacency and
25
+ * the index follows. Nothing is persisted and there is nothing to configure.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const spanIndex = table_getCellSpanIndex(table)
30
+ * ```
31
+ */
32
+ declare function table_getCellSpanIndex<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): CellSpanIndex<TFeatures, TData>;
33
+ /**
34
+ * Returns how many rows this cell spans.
35
+ *
36
+ * `1` when it does not span, and `0` when a spanning cell above it covers it,
37
+ * matching the `header.rowSpan` convention where `0` means "skip this cell".
38
+ *
39
+ * Deliberately not memoized: a per-cell memo would allocate a closure and a
40
+ * dependency array for every cell, costing more than the two lookups this
41
+ * performs against the table-level span index.
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * const rowSpan = cell_getRowSpan(cell)
46
+ * ```
47
+ */
48
+ declare function cell_getRowSpan<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(cell: Cell<TFeatures, TData, TValue>): number;
49
+ /**
50
+ * Returns how many columns this cell spans.
51
+ *
52
+ * `1` when it does not span, and `0` when another cell's column span covers
53
+ * it.
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * const colSpan = cell_getColSpan(cell)
58
+ * ```
59
+ */
60
+ declare function cell_getColSpan<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(cell: Cell<TFeatures, TData, TValue>): number;
61
+ /**
62
+ * Checks whether another cell's span covers this cell.
63
+ *
64
+ * Covered cells must not be rendered; the cell that covers them carries the
65
+ * content and the span attributes.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * const isCovered = cell_getIsCovered(cell)
70
+ * ```
71
+ */
72
+ declare function cell_getIsCovered<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(cell: Cell<TFeatures, TData, TValue>): boolean;
73
+ //#endregion
74
+ export { cell_getColSpan, cell_getIsCovered, cell_getRowSpan, column_getCanSpan, table_getCellSpanIndex };
@@ -0,0 +1,262 @@
1
+ import { callMemoOrStaticFn, isFunction, makeObjectMap } from "../../utils.js";
2
+
3
+ //#region src/features/cell-spanning/cellSpanningFeature.utils.ts
4
+ const EMPTY_ROW_SPANS = makeObjectMap();
5
+ const EMPTY_COLUMN_INDEXES = makeObjectMap();
6
+ const EMPTY_COL_SPANS = [];
7
+ const NO_SECTION_STARTS = [];
8
+ /**
9
+ * Resolves the rows in the order a renderer actually draws them, plus the
10
+ * positions at which a new visual section begins.
11
+ *
12
+ * Without row pinning this is the final row model itself, returned by
13
+ * reference so the common path allocates nothing. With row pinning it is the
14
+ * concatenation the three-list renderer walks: `getTopRows()`,
15
+ * `getCenterRows()`, `getBottomRows()`. `getCenterRows()` filters the row
16
+ * model by the pinned ids, so no row appears in two sections and every row
17
+ * gets exactly one position; with `keepPinnedRows` a pinned row that filtering
18
+ * removed from the row model still appears exactly once, in its pinned
19
+ * section.
20
+ *
21
+ * The pinning reads are optional-chained so the feature stays correct when
22
+ * `rowPinningFeature` is not registered.
23
+ */
24
+ function getRenderedRows(table) {
25
+ const rows = table.getRowModel().rows;
26
+ const rowPinning = table.atoms.rowPinning?.get();
27
+ if (!rowPinning || !rowPinning.top.length && !rowPinning.bottom.length) return {
28
+ rows,
29
+ sectionStarts: NO_SECTION_STARTS
30
+ };
31
+ const pinnedTable = table;
32
+ const top = pinnedTable.getTopRows?.() ?? [];
33
+ const center = pinnedTable.getCenterRows?.() ?? rows;
34
+ const bottom = pinnedTable.getBottomRows?.() ?? [];
35
+ return {
36
+ rows: [
37
+ ...top,
38
+ ...center,
39
+ ...bottom
40
+ ],
41
+ sectionStarts: [top.length, top.length + center.length]
42
+ };
43
+ }
44
+ /**
45
+ * Resolves the visible columns in the order cells render, plus the two
46
+ * boundaries between the start-pinned, center, and end-pinned regions.
47
+ *
48
+ * Read off a rendered row's visible cells rather than re-derived, so the
49
+ * ordering is the renderer's own by construction. `getVisibleCells` only
50
+ * exists when `columnVisibilityFeature` is registered; without it renderers
51
+ * walk `row.getAllCells()`, whose order is `table.getAllLeafColumns()`.
52
+ */
53
+ function getRenderedColumns(table, firstRow) {
54
+ const cells = firstRow.getVisibleCells?.() ?? firstRow.getAllCells();
55
+ const columns = new Array(cells.length);
56
+ for (let i = 0; i < cells.length; i++) columns[i] = cells[i].column;
57
+ const pinning = table.atoms.columnPinning?.get();
58
+ let centerStart = 0;
59
+ let centerEnd = columns.length;
60
+ if (pinning) {
61
+ while (centerStart < centerEnd && pinning.start.includes(columns[centerStart].id)) centerStart++;
62
+ while (centerEnd > centerStart && pinning.end.includes(columns[centerEnd - 1].id)) centerEnd--;
63
+ }
64
+ return {
65
+ columns,
66
+ centerStart,
67
+ centerEnd
68
+ };
69
+ }
70
+ /**
71
+ * Checks whether this column takes part in cell spanning.
72
+ *
73
+ * A column def opting out with `enableCellSpanning: false` wins over the table
74
+ * option, matching how the other per-column enable flags resolve.
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * const canSpan = column_getCanSpan(column)
79
+ * ```
80
+ */
81
+ function column_getCanSpan(column) {
82
+ if (column.columnDef.enableCellSpanning === false) return false;
83
+ return column.table.options.enableCellSpanning ?? true;
84
+ }
85
+ /**
86
+ * Builds the table's cell span index for the rows that are currently rendered.
87
+ *
88
+ * Spans are always derived from scratch from the final row model, so sorting,
89
+ * filtering, pagination, expansion, and row pinning only change adjacency and
90
+ * the index follows. Nothing is persisted and there is nothing to configure.
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * const spanIndex = table_getCellSpanIndex(table)
95
+ * ```
96
+ */
97
+ function table_getCellSpanIndex(table) {
98
+ const { rows, sectionStarts } = getRenderedRows(table);
99
+ const rowCount = rows.length;
100
+ const empty = {
101
+ colSpans: EMPTY_COL_SPANS,
102
+ columnIndexes: EMPTY_COLUMN_INDEXES,
103
+ rowSpans: EMPTY_ROW_SPANS,
104
+ rows
105
+ };
106
+ if (!rowCount || table.options.enableCellSpanning === false) return empty;
107
+ const { columns, centerStart, centerEnd } = getRenderedColumns(table, rows[0]);
108
+ const columnCount = columns.length;
109
+ if (!columnCount) return empty;
110
+ const columnIndexes = makeObjectMap();
111
+ for (let c = 0; c < columnCount; c++) columnIndexes[columns[c].id] = c;
112
+ const breaks = new Uint8Array(rowCount);
113
+ for (let s = 0; s < sectionStarts.length; s++) {
114
+ const start = sectionStarts[s];
115
+ if (start < rowCount) breaks[start] = 1;
116
+ }
117
+ for (let r = 0; r < rowCount; r++) {
118
+ const row = rows[r];
119
+ row._cellSpanRowIndex = r;
120
+ const prev = r > 0 ? rows[r - 1] : void 0;
121
+ if (prev && (row.depth !== prev.depth || row.parentId !== prev.parentId) || row.getIsGrouped?.() === true) breaks[r] = 1;
122
+ }
123
+ const colSpans = [];
124
+ let anyColSpan = false;
125
+ for (let c = 0; c < columnCount; c++) {
126
+ const column = columns[c];
127
+ const spanColumns = column.columnDef.spanColumns;
128
+ if (spanColumns === void 0 || !column_getCanSpan(column)) continue;
129
+ const regionEnd = c < centerStart ? centerStart : c < centerEnd ? centerEnd : columnCount;
130
+ for (let r = 0; r < rowCount; r++) {
131
+ const existing = colSpans[r];
132
+ if (existing && existing[c] === 0) continue;
133
+ const requested = isFunction(spanColumns) ? spanColumns({
134
+ column,
135
+ row: rows[r],
136
+ table
137
+ }) : spanColumns;
138
+ if (!(requested > 1)) continue;
139
+ const span = Math.min(requested, regionEnd - c);
140
+ if (span < 2) continue;
141
+ const target = existing ?? (colSpans[r] = new Int32Array(columnCount).fill(1));
142
+ target[c] = span;
143
+ for (let k = c + 1; k < c + span; k++) target[k] = 0;
144
+ anyColSpan = true;
145
+ }
146
+ }
147
+ const rowSpans = makeObjectMap();
148
+ for (let c = 0; c < columnCount; c++) {
149
+ const column = columns[c];
150
+ const spanRows = column.columnDef.spanRows;
151
+ if (!spanRows || !column_getCanSpan(column)) continue;
152
+ if (column.getIsGrouped?.() === true) continue;
153
+ const columnId = column.id;
154
+ const predicate = isFunction(spanRows) ? spanRows : void 0;
155
+ const spans = new Int32Array(rowCount).fill(1);
156
+ let anyRun = false;
157
+ let anchorIndex = -1;
158
+ let anchorValue;
159
+ let anchorColSpan = 1;
160
+ for (let r = 0; r < rowCount; r++) {
161
+ const row = rows[r];
162
+ const rowColSpans = anyColSpan ? colSpans[r] : void 0;
163
+ const cellColSpan = rowColSpans ? rowColSpans[c] : 1;
164
+ if (cellColSpan === 0) {
165
+ anchorIndex = -1;
166
+ continue;
167
+ }
168
+ const value = row.getValue(columnId);
169
+ if (anchorIndex !== -1 && !breaks[r] && cellColSpan === anchorColSpan && (predicate ? predicate({
170
+ anchorRow: rows[anchorIndex],
171
+ anchorValue,
172
+ column,
173
+ previousRow: rows[r - 1],
174
+ row,
175
+ table,
176
+ value
177
+ }) : value != null && Object.is(value, anchorValue))) {
178
+ spans[r] = 0;
179
+ spans[anchorIndex] = spans[anchorIndex] + 1;
180
+ anyRun = true;
181
+ continue;
182
+ }
183
+ anchorIndex = r;
184
+ anchorValue = value;
185
+ anchorColSpan = cellColSpan;
186
+ }
187
+ if (anyRun) rowSpans[columnId] = spans;
188
+ }
189
+ return {
190
+ colSpans,
191
+ columnIndexes,
192
+ rowSpans,
193
+ rows
194
+ };
195
+ }
196
+ function resolveRowIndex(index, cell) {
197
+ const rowIndex = cell.row._cellSpanRowIndex;
198
+ if (rowIndex === void 0 || index.rows[rowIndex] !== cell.row) return -1;
199
+ return rowIndex;
200
+ }
201
+ /**
202
+ * Returns how many rows this cell spans.
203
+ *
204
+ * `1` when it does not span, and `0` when a spanning cell above it covers it,
205
+ * matching the `header.rowSpan` convention where `0` means "skip this cell".
206
+ *
207
+ * Deliberately not memoized: a per-cell memo would allocate a closure and a
208
+ * dependency array for every cell, costing more than the two lookups this
209
+ * performs against the table-level span index.
210
+ *
211
+ * @example
212
+ * ```ts
213
+ * const rowSpan = cell_getRowSpan(cell)
214
+ * ```
215
+ */
216
+ function cell_getRowSpan(cell) {
217
+ const table = cell.row.table;
218
+ const index = callMemoOrStaticFn(table, "getCellSpanIndex", table_getCellSpanIndex);
219
+ const spans = index.rowSpans[cell.column.id];
220
+ if (!spans) return 1;
221
+ const rowIndex = resolveRowIndex(index, cell);
222
+ if (rowIndex === -1) return 1;
223
+ return spans[rowIndex];
224
+ }
225
+ /**
226
+ * Returns how many columns this cell spans.
227
+ *
228
+ * `1` when it does not span, and `0` when another cell's column span covers
229
+ * it.
230
+ *
231
+ * @example
232
+ * ```ts
233
+ * const colSpan = cell_getColSpan(cell)
234
+ * ```
235
+ */
236
+ function cell_getColSpan(cell) {
237
+ const table = cell.row.table;
238
+ const index = callMemoOrStaticFn(table, "getCellSpanIndex", table_getCellSpanIndex);
239
+ const rowIndex = resolveRowIndex(index, cell);
240
+ if (rowIndex === -1) return 1;
241
+ const spans = index.colSpans[rowIndex];
242
+ if (!spans) return 1;
243
+ const columnIndex = index.columnIndexes[cell.column.id];
244
+ return columnIndex === void 0 ? 1 : spans[columnIndex];
245
+ }
246
+ /**
247
+ * Checks whether another cell's span covers this cell.
248
+ *
249
+ * Covered cells must not be rendered; the cell that covers them carries the
250
+ * content and the span attributes.
251
+ *
252
+ * @example
253
+ * ```ts
254
+ * const isCovered = cell_getIsCovered(cell)
255
+ * ```
256
+ */
257
+ function cell_getIsCovered(cell) {
258
+ return cell_getRowSpan(cell) === 0 || cell_getColSpan(cell) === 0;
259
+ }
260
+
261
+ //#endregion
262
+ export { cell_getColSpan, cell_getIsCovered, cell_getRowSpan, column_getCanSpan, table_getCellSpanIndex };
@@ -1,10 +1,8 @@
1
1
  import { TableFeature } from "../../types/TableFeatures.js";
2
-
3
2
  //#region src/features/column-faceting/columnFacetingFeature.d.ts
4
3
  /**
5
4
  * Feature that derives faceted row models, unique values, and min/max values for filters.
6
5
  */
7
6
  declare const columnFacetingFeature: TableFeature;
8
7
  //#endregion
9
- export { columnFacetingFeature };
10
- //# sourceMappingURL=columnFacetingFeature.d.ts.map
8
+ export { columnFacetingFeature };