@tanstack/table-core 9.0.0-alpha.8 → 9.0.0-beta.10

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 (862) hide show
  1. package/README.md +127 -0
  2. package/dist/core/cells/constructCell.cjs +34 -0
  3. package/dist/core/cells/constructCell.cjs.map +1 -0
  4. package/dist/core/cells/constructCell.d.cts +17 -0
  5. package/dist/core/cells/constructCell.d.ts +17 -0
  6. package/dist/core/cells/constructCell.js +33 -0
  7. package/dist/core/cells/constructCell.js.map +1 -0
  8. package/dist/core/cells/coreCellsFeature.cjs +21 -0
  9. package/dist/core/cells/coreCellsFeature.cjs.map +1 -0
  10. package/dist/core/cells/coreCellsFeature.d.cts +10 -0
  11. package/dist/core/cells/coreCellsFeature.d.ts +10 -0
  12. package/dist/core/cells/coreCellsFeature.js +21 -0
  13. package/dist/core/cells/coreCellsFeature.js.map +1 -0
  14. package/dist/core/cells/coreCellsFeature.types.d.cts +57 -0
  15. package/dist/core/cells/coreCellsFeature.types.d.ts +57 -0
  16. package/dist/core/cells/coreCellsFeature.utils.cjs +57 -0
  17. package/dist/core/cells/coreCellsFeature.utils.cjs.map +1 -0
  18. package/dist/core/cells/coreCellsFeature.utils.d.cts +53 -0
  19. package/dist/core/cells/coreCellsFeature.utils.d.ts +53 -0
  20. package/dist/core/cells/coreCellsFeature.utils.js +54 -0
  21. package/dist/core/cells/coreCellsFeature.utils.js.map +1 -0
  22. package/dist/core/columns/constructColumn.cjs +61 -0
  23. package/dist/core/columns/constructColumn.cjs.map +1 -0
  24. package/dist/core/columns/constructColumn.d.cts +16 -0
  25. package/dist/core/columns/constructColumn.d.ts +16 -0
  26. package/dist/core/columns/constructColumn.js +60 -0
  27. package/dist/core/columns/constructColumn.js.map +1 -0
  28. package/dist/core/columns/coreColumnsFeature.cjs +70 -0
  29. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -0
  30. package/dist/core/columns/coreColumnsFeature.d.cts +10 -0
  31. package/dist/core/columns/coreColumnsFeature.d.ts +10 -0
  32. package/dist/core/columns/coreColumnsFeature.js +70 -0
  33. package/dist/core/columns/coreColumnsFeature.js.map +1 -0
  34. package/dist/core/columns/coreColumnsFeature.types.d.cts +94 -0
  35. package/dist/core/columns/coreColumnsFeature.types.d.ts +94 -0
  36. package/dist/core/columns/coreColumnsFeature.utils.cjs +187 -0
  37. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -0
  38. package/dist/core/columns/coreColumnsFeature.utils.d.cts +119 -0
  39. package/dist/core/columns/coreColumnsFeature.utils.d.ts +119 -0
  40. package/dist/core/columns/coreColumnsFeature.utils.js +179 -0
  41. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -0
  42. package/dist/core/coreFeatures.cjs +25 -0
  43. package/dist/core/coreFeatures.cjs.map +1 -0
  44. package/dist/core/coreFeatures.d.cts +26 -0
  45. package/dist/core/coreFeatures.d.ts +26 -0
  46. package/dist/core/coreFeatures.js +25 -0
  47. package/dist/core/coreFeatures.js.map +1 -0
  48. package/dist/core/headers/buildHeaderGroups.cjs +103 -0
  49. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -0
  50. package/dist/core/headers/buildHeaderGroups.d.cts +16 -0
  51. package/dist/core/headers/buildHeaderGroups.d.ts +16 -0
  52. package/dist/core/headers/buildHeaderGroups.js +103 -0
  53. package/dist/core/headers/buildHeaderGroups.js.map +1 -0
  54. package/dist/core/headers/constructHeader.cjs +41 -0
  55. package/dist/core/headers/constructHeader.cjs.map +1 -0
  56. package/dist/core/headers/constructHeader.d.cts +22 -0
  57. package/dist/core/headers/constructHeader.d.ts +22 -0
  58. package/dist/core/headers/constructHeader.js +40 -0
  59. package/dist/core/headers/constructHeader.js.map +1 -0
  60. package/dist/core/headers/coreHeadersFeature.cjs +55 -0
  61. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -0
  62. package/dist/core/headers/coreHeadersFeature.d.cts +10 -0
  63. package/dist/core/headers/coreHeadersFeature.d.ts +10 -0
  64. package/dist/core/headers/coreHeadersFeature.js +55 -0
  65. package/dist/core/headers/coreHeadersFeature.js.map +1 -0
  66. package/dist/core/headers/coreHeadersFeature.types.d.cts +106 -0
  67. package/dist/core/headers/coreHeadersFeature.types.d.ts +106 -0
  68. package/dist/core/headers/coreHeadersFeature.utils.cjs +142 -0
  69. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -0
  70. package/dist/core/headers/coreHeadersFeature.utils.d.cts +85 -0
  71. package/dist/core/headers/coreHeadersFeature.utils.d.ts +85 -0
  72. package/dist/core/headers/coreHeadersFeature.utils.js +137 -0
  73. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -0
  74. package/dist/core/reactivity/coreReactivityFeature.types.d.cts +48 -0
  75. package/dist/core/reactivity/coreReactivityFeature.types.d.ts +48 -0
  76. package/dist/core/reactivity/coreReactivityFeature.utils.cjs +24 -0
  77. package/dist/core/reactivity/coreReactivityFeature.utils.cjs.map +1 -0
  78. package/dist/core/reactivity/coreReactivityFeature.utils.d.cts +24 -0
  79. package/dist/core/reactivity/coreReactivityFeature.utils.d.ts +24 -0
  80. package/dist/core/reactivity/coreReactivityFeature.utils.js +23 -0
  81. package/dist/core/reactivity/coreReactivityFeature.utils.js.map +1 -0
  82. package/dist/core/row-models/coreRowModelsFeature.cjs +27 -0
  83. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -0
  84. package/dist/core/row-models/coreRowModelsFeature.d.cts +10 -0
  85. package/dist/core/row-models/coreRowModelsFeature.d.ts +10 -0
  86. package/dist/core/row-models/coreRowModelsFeature.js +27 -0
  87. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -0
  88. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +33 -0
  89. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +33 -0
  90. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +215 -0
  91. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -0
  92. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +153 -0
  93. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +153 -0
  94. package/dist/core/row-models/coreRowModelsFeature.utils.js +204 -0
  95. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -0
  96. package/dist/core/row-models/createCoreRowModel.cjs +52 -0
  97. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -0
  98. package/dist/core/row-models/createCoreRowModel.d.cts +15 -0
  99. package/dist/core/row-models/createCoreRowModel.d.ts +15 -0
  100. package/dist/core/row-models/createCoreRowModel.js +52 -0
  101. package/dist/core/row-models/createCoreRowModel.js.map +1 -0
  102. package/dist/core/rows/constructRow.cjs +44 -0
  103. package/dist/core/rows/constructRow.cjs.map +1 -0
  104. package/dist/core/rows/constructRow.d.cts +15 -0
  105. package/dist/core/rows/constructRow.d.ts +15 -0
  106. package/dist/core/rows/constructRow.js +43 -0
  107. package/dist/core/rows/constructRow.js.map +1 -0
  108. package/dist/core/rows/coreRowsFeature.cjs +37 -0
  109. package/dist/core/rows/coreRowsFeature.cjs.map +1 -0
  110. package/dist/core/rows/coreRowsFeature.d.cts +10 -0
  111. package/dist/core/rows/coreRowsFeature.d.ts +10 -0
  112. package/dist/core/rows/coreRowsFeature.js +37 -0
  113. package/dist/core/rows/coreRowsFeature.js.map +1 -0
  114. package/dist/core/rows/coreRowsFeature.types.d.cts +99 -0
  115. package/dist/core/rows/coreRowsFeature.types.d.ts +99 -0
  116. package/dist/core/rows/coreRowsFeature.utils.cjs +192 -0
  117. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -0
  118. package/dist/core/rows/coreRowsFeature.utils.d.cts +127 -0
  119. package/dist/core/rows/coreRowsFeature.utils.d.ts +127 -0
  120. package/dist/core/rows/coreRowsFeature.utils.js +183 -0
  121. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -0
  122. package/dist/core/table/constructTable.cjs +133 -0
  123. package/dist/core/table/constructTable.cjs.map +1 -0
  124. package/dist/core/table/constructTable.d.cts +22 -0
  125. package/dist/core/table/constructTable.d.ts +22 -0
  126. package/dist/core/table/constructTable.js +132 -0
  127. package/dist/core/table/constructTable.js.map +1 -0
  128. package/dist/core/table/coreTablesFeature.cjs +17 -0
  129. package/dist/core/table/coreTablesFeature.cjs.map +1 -0
  130. package/dist/core/table/coreTablesFeature.d.cts +10 -0
  131. package/dist/core/table/coreTablesFeature.d.ts +10 -0
  132. package/dist/core/table/coreTablesFeature.js +17 -0
  133. package/dist/core/table/coreTablesFeature.js.map +1 -0
  134. package/dist/core/table/coreTablesFeature.types.d.cts +198 -0
  135. package/dist/core/table/coreTablesFeature.types.d.ts +198 -0
  136. package/dist/core/table/coreTablesFeature.utils.cjs +95 -0
  137. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -0
  138. package/dist/core/table/coreTablesFeature.utils.d.cts +57 -0
  139. package/dist/core/table/coreTablesFeature.utils.d.ts +57 -0
  140. package/dist/core/table/coreTablesFeature.utils.js +92 -0
  141. package/dist/core/table/coreTablesFeature.utils.js.map +1 -0
  142. package/dist/features/column-faceting/columnFacetingFeature.cjs +61 -0
  143. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -0
  144. package/dist/features/column-faceting/columnFacetingFeature.d.cts +10 -0
  145. package/dist/features/column-faceting/columnFacetingFeature.d.ts +10 -0
  146. package/dist/features/column-faceting/columnFacetingFeature.js +61 -0
  147. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -0
  148. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +64 -0
  149. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +64 -0
  150. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +103 -0
  151. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -0
  152. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +84 -0
  153. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +84 -0
  154. package/dist/features/column-faceting/columnFacetingFeature.utils.js +97 -0
  155. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -0
  156. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +44 -0
  157. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -0
  158. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +14 -0
  159. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +14 -0
  160. package/dist/features/column-faceting/createFacetedMinMaxValues.js +44 -0
  161. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -0
  162. package/dist/features/column-faceting/createFacetedRowModel.cjs +50 -0
  163. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -0
  164. package/dist/features/column-faceting/createFacetedRowModel.d.cts +15 -0
  165. package/dist/features/column-faceting/createFacetedRowModel.d.ts +15 -0
  166. package/dist/features/column-faceting/createFacetedRowModel.js +50 -0
  167. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -0
  168. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +41 -0
  169. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -0
  170. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +14 -0
  171. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +14 -0
  172. package/dist/features/column-faceting/createFacetedUniqueValues.js +41 -0
  173. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -0
  174. package/dist/features/column-filtering/columnFilteringFeature.cjs +50 -0
  175. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -0
  176. package/dist/features/column-filtering/columnFilteringFeature.d.cts +10 -0
  177. package/dist/features/column-filtering/columnFilteringFeature.d.ts +10 -0
  178. package/dist/features/column-filtering/columnFilteringFeature.js +50 -0
  179. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -0
  180. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +174 -0
  181. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +174 -0
  182. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +212 -0
  183. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -0
  184. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +143 -0
  185. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +143 -0
  186. package/dist/features/column-filtering/columnFilteringFeature.utils.js +202 -0
  187. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -0
  188. package/dist/features/column-filtering/createFilteredRowModel.cjs +112 -0
  189. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -0
  190. package/dist/features/column-filtering/createFilteredRowModel.d.cts +18 -0
  191. package/dist/features/column-filtering/createFilteredRowModel.d.ts +18 -0
  192. package/dist/features/column-filtering/createFilteredRowModel.js +112 -0
  193. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -0
  194. package/dist/features/column-filtering/filterRowsUtils.cjs +81 -0
  195. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -0
  196. package/dist/features/column-filtering/filterRowsUtils.js +81 -0
  197. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -0
  198. package/dist/features/column-grouping/columnGroupingFeature.cjs +67 -0
  199. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -0
  200. package/dist/features/column-grouping/columnGroupingFeature.d.cts +10 -0
  201. package/dist/features/column-grouping/columnGroupingFeature.d.ts +10 -0
  202. package/dist/features/column-grouping/columnGroupingFeature.js +67 -0
  203. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -0
  204. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +169 -0
  205. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +169 -0
  206. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +250 -0
  207. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -0
  208. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +190 -0
  209. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +190 -0
  210. package/dist/features/column-grouping/columnGroupingFeature.utils.js +236 -0
  211. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -0
  212. package/dist/features/column-grouping/createGroupedRowModel.cjs +122 -0
  213. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -0
  214. package/dist/features/column-grouping/createGroupedRowModel.d.cts +19 -0
  215. package/dist/features/column-grouping/createGroupedRowModel.d.ts +19 -0
  216. package/dist/features/column-grouping/createGroupedRowModel.js +122 -0
  217. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -0
  218. package/dist/features/column-ordering/columnOrderingFeature.cjs +58 -0
  219. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -0
  220. package/dist/features/column-ordering/columnOrderingFeature.d.cts +10 -0
  221. package/dist/features/column-ordering/columnOrderingFeature.d.ts +10 -0
  222. package/dist/features/column-ordering/columnOrderingFeature.js +58 -0
  223. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -0
  224. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +56 -0
  225. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +56 -0
  226. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +172 -0
  227. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -0
  228. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +107 -0
  229. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +107 -0
  230. package/dist/features/column-ordering/columnOrderingFeature.utils.js +165 -0
  231. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -0
  232. package/dist/features/column-pinning/columnPinningFeature.cjs +221 -0
  233. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -0
  234. package/dist/features/column-pinning/columnPinningFeature.d.cts +10 -0
  235. package/dist/features/column-pinning/columnPinningFeature.d.ts +10 -0
  236. package/dist/features/column-pinning/columnPinningFeature.js +221 -0
  237. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -0
  238. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +178 -0
  239. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +178 -0
  240. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +585 -0
  241. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -0
  242. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +375 -0
  243. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +375 -0
  244. package/dist/features/column-pinning/columnPinningFeature.utils.js +555 -0
  245. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -0
  246. package/dist/features/column-resizing/columnResizingFeature.cjs +41 -0
  247. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -0
  248. package/dist/features/column-resizing/columnResizingFeature.d.cts +10 -0
  249. package/dist/features/column-resizing/columnResizingFeature.d.ts +10 -0
  250. package/dist/features/column-resizing/columnResizingFeature.js +41 -0
  251. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -0
  252. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +81 -0
  253. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +81 -0
  254. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +246 -0
  255. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -0
  256. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +109 -0
  257. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +109 -0
  258. package/dist/features/column-resizing/columnResizingFeature.utils.js +239 -0
  259. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -0
  260. package/dist/features/column-sizing/columnSizingFeature.cjs +124 -0
  261. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -0
  262. package/dist/features/column-sizing/columnSizingFeature.d.cts +10 -0
  263. package/dist/features/column-sizing/columnSizingFeature.d.ts +10 -0
  264. package/dist/features/column-sizing/columnSizingFeature.js +124 -0
  265. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -0
  266. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +96 -0
  267. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +96 -0
  268. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +256 -0
  269. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -0
  270. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +182 -0
  271. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +182 -0
  272. package/dist/features/column-sizing/columnSizingFeature.utils.js +243 -0
  273. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -0
  274. package/dist/features/column-visibility/columnVisibilityFeature.cjs +94 -0
  275. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -0
  276. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +10 -0
  277. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +10 -0
  278. package/dist/features/column-visibility/columnVisibilityFeature.js +94 -0
  279. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -0
  280. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +97 -0
  281. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +97 -0
  282. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +283 -0
  283. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -0
  284. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +189 -0
  285. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +189 -0
  286. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +269 -0
  287. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -0
  288. package/dist/features/global-filtering/globalFilteringFeature.cjs +41 -0
  289. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -0
  290. package/dist/features/global-filtering/globalFilteringFeature.d.cts +10 -0
  291. package/dist/features/global-filtering/globalFilteringFeature.d.ts +10 -0
  292. package/dist/features/global-filtering/globalFilteringFeature.js +41 -0
  293. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -0
  294. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +71 -0
  295. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +71 -0
  296. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +88 -0
  297. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -0
  298. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +74 -0
  299. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +74 -0
  300. package/dist/features/global-filtering/globalFilteringFeature.utils.js +84 -0
  301. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -0
  302. package/dist/features/row-expanding/createExpandedRowModel.cjs +59 -0
  303. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -0
  304. package/dist/features/row-expanding/createExpandedRowModel.d.cts +21 -0
  305. package/dist/features/row-expanding/createExpandedRowModel.d.ts +21 -0
  306. package/dist/features/row-expanding/createExpandedRowModel.js +58 -0
  307. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -0
  308. package/dist/features/row-expanding/rowExpandingFeature.cjs +47 -0
  309. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -0
  310. package/dist/features/row-expanding/rowExpandingFeature.d.cts +10 -0
  311. package/dist/features/row-expanding/rowExpandingFeature.d.ts +10 -0
  312. package/dist/features/row-expanding/rowExpandingFeature.js +47 -0
  313. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -0
  314. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +118 -0
  315. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +118 -0
  316. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +281 -0
  317. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -0
  318. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +191 -0
  319. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +191 -0
  320. package/dist/features/row-expanding/rowExpandingFeature.utils.js +267 -0
  321. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -0
  322. package/dist/features/row-pagination/createPaginatedRowModel.cjs +62 -0
  323. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -0
  324. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +15 -0
  325. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +15 -0
  326. package/dist/features/row-pagination/createPaginatedRowModel.js +62 -0
  327. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -0
  328. package/dist/features/row-pagination/rowPaginationFeature.cjs +45 -0
  329. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -0
  330. package/dist/features/row-pagination/rowPaginationFeature.d.cts +10 -0
  331. package/dist/features/row-pagination/rowPaginationFeature.d.ts +10 -0
  332. package/dist/features/row-pagination/rowPaginationFeature.js +45 -0
  333. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -0
  334. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +126 -0
  335. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +126 -0
  336. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +312 -0
  337. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -0
  338. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +218 -0
  339. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +218 -0
  340. package/dist/features/row-pagination/rowPaginationFeature.utils.js +296 -0
  341. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -0
  342. package/dist/features/row-pinning/rowPinningFeature.cjs +67 -0
  343. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -0
  344. package/dist/features/row-pinning/rowPinningFeature.d.cts +10 -0
  345. package/dist/features/row-pinning/rowPinningFeature.d.ts +10 -0
  346. package/dist/features/row-pinning/rowPinningFeature.js +67 -0
  347. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -0
  348. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +83 -0
  349. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +83 -0
  350. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +229 -0
  351. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -0
  352. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +143 -0
  353. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +143 -0
  354. package/dist/features/row-pinning/rowPinningFeature.utils.js +219 -0
  355. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -0
  356. package/dist/features/row-selection/rowSelectionFeature.cjs +75 -0
  357. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -0
  358. package/dist/features/row-selection/rowSelectionFeature.d.cts +10 -0
  359. package/dist/features/row-selection/rowSelectionFeature.d.ts +10 -0
  360. package/dist/features/row-selection/rowSelectionFeature.js +75 -0
  361. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -0
  362. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +136 -0
  363. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +136 -0
  364. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +518 -0
  365. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -0
  366. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +318 -0
  367. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +318 -0
  368. package/dist/features/row-selection/rowSelectionFeature.utils.js +493 -0
  369. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -0
  370. package/dist/features/row-sorting/createSortedRowModel.cjs +97 -0
  371. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -0
  372. package/dist/features/row-sorting/createSortedRowModel.d.cts +18 -0
  373. package/dist/features/row-sorting/createSortedRowModel.d.ts +18 -0
  374. package/dist/features/row-sorting/createSortedRowModel.js +97 -0
  375. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -0
  376. package/dist/features/row-sorting/rowSortingFeature.cjs +55 -0
  377. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -0
  378. package/dist/features/row-sorting/rowSortingFeature.d.cts +10 -0
  379. package/dist/features/row-sorting/rowSortingFeature.d.ts +10 -0
  380. package/dist/features/row-sorting/rowSortingFeature.js +55 -0
  381. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -0
  382. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +191 -0
  383. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +191 -0
  384. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +305 -0
  385. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -0
  386. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +193 -0
  387. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +193 -0
  388. package/dist/features/row-sorting/rowSortingFeature.utils.js +291 -0
  389. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -0
  390. package/dist/features/stockFeatures.cjs +41 -0
  391. package/dist/features/stockFeatures.cjs.map +1 -0
  392. package/dist/features/stockFeatures.d.cts +41 -0
  393. package/dist/features/stockFeatures.d.ts +41 -0
  394. package/dist/features/stockFeatures.js +41 -0
  395. package/dist/features/stockFeatures.js.map +1 -0
  396. package/dist/flex-render.cjs +29 -0
  397. package/dist/flex-render.cjs.map +1 -0
  398. package/dist/flex-render.d.cts +34 -0
  399. package/dist/flex-render.d.ts +34 -0
  400. package/dist/flex-render.js +26 -0
  401. package/dist/flex-render.js.map +1 -0
  402. package/dist/fns/aggregationFns.cjs +161 -0
  403. package/dist/fns/aggregationFns.cjs.map +1 -0
  404. package/dist/fns/aggregationFns.d.cts +85 -0
  405. package/dist/fns/aggregationFns.d.ts +85 -0
  406. package/dist/fns/aggregationFns.js +151 -0
  407. package/dist/fns/aggregationFns.js.map +1 -0
  408. package/dist/fns/filterFns.cjs +201 -0
  409. package/dist/fns/filterFns.cjs.map +1 -0
  410. package/dist/fns/filterFns.d.cts +167 -0
  411. package/dist/fns/filterFns.d.ts +167 -0
  412. package/dist/fns/filterFns.js +185 -0
  413. package/dist/fns/filterFns.js.map +1 -0
  414. package/dist/fns/sortFns.cjs +130 -0
  415. package/dist/fns/sortFns.cjs.map +1 -0
  416. package/dist/fns/sortFns.d.cts +65 -0
  417. package/dist/fns/sortFns.d.ts +65 -0
  418. package/dist/fns/sortFns.js +122 -0
  419. package/dist/fns/sortFns.js.map +1 -0
  420. package/dist/helpers/columnHelper.cjs +41 -0
  421. package/dist/helpers/columnHelper.cjs.map +1 -0
  422. package/dist/helpers/columnHelper.d.cts +71 -0
  423. package/dist/helpers/columnHelper.d.ts +71 -0
  424. package/dist/helpers/columnHelper.js +40 -0
  425. package/dist/helpers/columnHelper.js.map +1 -0
  426. package/dist/helpers/metaHelper.cjs +30 -0
  427. package/dist/helpers/metaHelper.cjs.map +1 -0
  428. package/dist/helpers/metaHelper.d.cts +26 -0
  429. package/dist/helpers/metaHelper.d.ts +26 -0
  430. package/dist/helpers/metaHelper.js +29 -0
  431. package/dist/helpers/metaHelper.js.map +1 -0
  432. package/dist/helpers/tableFeatures.cjs +48 -0
  433. package/dist/helpers/tableFeatures.cjs.map +1 -0
  434. package/dist/helpers/tableFeatures.d.cts +46 -0
  435. package/dist/helpers/tableFeatures.d.ts +46 -0
  436. package/dist/helpers/tableFeatures.js +47 -0
  437. package/dist/helpers/tableFeatures.js.map +1 -0
  438. package/dist/helpers/tableOptions.cjs +15 -0
  439. package/dist/helpers/tableOptions.cjs.map +1 -0
  440. package/dist/helpers/tableOptions.d.cts +57 -0
  441. package/dist/helpers/tableOptions.d.ts +57 -0
  442. package/dist/helpers/tableOptions.js +14 -0
  443. package/dist/helpers/tableOptions.js.map +1 -0
  444. package/dist/index.cjs +135 -0
  445. package/dist/index.d.cts +79 -0
  446. package/dist/index.d.ts +79 -0
  447. package/dist/index.js +47 -0
  448. package/dist/reactivity.cjs +4 -0
  449. package/dist/reactivity.d.cts +3 -0
  450. package/dist/reactivity.d.ts +3 -0
  451. package/dist/reactivity.js +3 -0
  452. package/dist/static-functions.cjs +263 -0
  453. package/dist/static-functions.d.cts +21 -0
  454. package/dist/static-functions.d.ts +21 -0
  455. package/dist/static-functions.js +22 -0
  456. package/dist/store-reactivity-bindings.cjs +44 -0
  457. package/dist/store-reactivity-bindings.cjs.map +1 -0
  458. package/dist/store-reactivity-bindings.d.cts +22 -0
  459. package/dist/store-reactivity-bindings.d.ts +22 -0
  460. package/dist/store-reactivity-bindings.js +43 -0
  461. package/dist/store-reactivity-bindings.js.map +1 -0
  462. package/dist/types/Cell.d.cts +14 -0
  463. package/dist/types/Cell.d.ts +14 -0
  464. package/dist/types/Column.d.cts +36 -0
  465. package/dist/types/Column.d.ts +36 -0
  466. package/dist/types/ColumnDef.d.cts +123 -0
  467. package/dist/types/ColumnDef.d.ts +123 -0
  468. package/dist/types/Header.d.cts +16 -0
  469. package/dist/types/Header.d.ts +16 -0
  470. package/dist/types/HeaderGroup.d.cts +10 -0
  471. package/dist/types/HeaderGroup.d.ts +10 -0
  472. package/dist/types/Row.d.cts +26 -0
  473. package/dist/types/Row.d.ts +26 -0
  474. package/dist/types/RowModel.d.cts +26 -0
  475. package/dist/types/RowModel.d.ts +26 -0
  476. package/dist/types/RowModelFns.d.cts +18 -0
  477. package/dist/types/RowModelFns.d.ts +18 -0
  478. package/dist/types/Table.d.cts +69 -0
  479. package/dist/types/Table.d.ts +69 -0
  480. package/dist/types/TableFeatures.d.cts +214 -0
  481. package/dist/types/TableFeatures.d.ts +214 -0
  482. package/dist/types/TableOptions.d.cts +69 -0
  483. package/dist/types/TableOptions.d.ts +69 -0
  484. package/dist/types/TableState.d.cts +48 -0
  485. package/dist/types/TableState.d.ts +48 -0
  486. package/dist/types/type-utils.d.cts +23 -0
  487. package/dist/types/type-utils.d.ts +23 -0
  488. package/dist/utils.cjs +243 -0
  489. package/dist/utils.cjs.map +1 -0
  490. package/dist/utils.d.cts +114 -0
  491. package/dist/utils.d.ts +114 -0
  492. package/dist/utils.js +232 -0
  493. package/dist/utils.js.map +1 -0
  494. package/package.json +43 -16
  495. package/skills/column-definitions/SKILL.md +330 -0
  496. package/skills/column-layout/SKILL.md +326 -0
  497. package/skills/column-layout/references/subsystems.md +220 -0
  498. package/skills/customizing-feature-behavior/SKILL.md +423 -0
  499. package/skills/filtering/SKILL.md +375 -0
  500. package/skills/filtering/references/faceting-and-fuzzy.md +218 -0
  501. package/skills/grouping/SKILL.md +443 -0
  502. package/skills/migrate-v8-to-v9/SKILL.md +492 -0
  503. package/skills/pagination/SKILL.md +387 -0
  504. package/skills/row-expanding/SKILL.md +356 -0
  505. package/skills/row-pinning/SKILL.md +273 -0
  506. package/skills/row-selection/SKILL.md +388 -0
  507. package/skills/setup/SKILL.md +390 -0
  508. package/skills/sorting/SKILL.md +344 -0
  509. package/skills/state-management/SKILL.md +403 -0
  510. package/src/core/cells/constructCell.ts +55 -0
  511. package/src/core/cells/coreCellsFeature.ts +27 -0
  512. package/src/core/cells/coreCellsFeature.types.ts +68 -0
  513. package/src/core/cells/coreCellsFeature.utils.ts +68 -0
  514. package/src/core/columns/constructColumn.ts +119 -0
  515. package/src/core/columns/coreColumnsFeature.ts +73 -0
  516. package/src/core/columns/coreColumnsFeature.types.ts +108 -0
  517. package/src/core/columns/coreColumnsFeature.utils.ts +275 -0
  518. package/src/core/coreFeatures.ts +31 -0
  519. package/src/core/headers/buildHeaderGroups.ts +182 -0
  520. package/src/core/headers/constructHeader.ts +67 -0
  521. package/src/core/headers/coreHeadersFeature.ts +56 -0
  522. package/src/core/headers/coreHeadersFeature.types.ts +125 -0
  523. package/src/core/headers/coreHeadersFeature.utils.ts +200 -0
  524. package/src/core/reactivity/coreReactivityFeature.types.ts +56 -0
  525. package/src/core/reactivity/coreReactivityFeature.utils.ts +44 -0
  526. package/src/core/row-models/coreRowModelsFeature.ts +62 -0
  527. package/src/core/row-models/coreRowModelsFeature.types.ts +51 -0
  528. package/src/core/row-models/coreRowModelsFeature.utils.ts +272 -0
  529. package/src/core/row-models/createCoreRowModel.ts +93 -0
  530. package/src/core/rows/constructRow.ts +66 -0
  531. package/src/core/rows/coreRowsFeature.ts +62 -0
  532. package/src/core/rows/coreRowsFeature.types.ts +117 -0
  533. package/src/core/rows/coreRowsFeature.utils.ts +264 -0
  534. package/src/core/table/constructTable.ts +206 -0
  535. package/src/core/table/coreTablesFeature.ts +19 -0
  536. package/src/core/table/coreTablesFeature.types.ts +239 -0
  537. package/src/core/table/coreTablesFeature.utils.ts +130 -0
  538. package/src/features/column-faceting/columnFacetingFeature.ts +89 -0
  539. package/src/features/column-faceting/columnFacetingFeature.types.ts +76 -0
  540. package/src/features/column-faceting/columnFacetingFeature.utils.ts +145 -0
  541. package/src/features/column-faceting/createFacetedMinMaxValues.ts +66 -0
  542. package/src/features/column-faceting/createFacetedRowModel.ts +85 -0
  543. package/src/features/column-faceting/createFacetedUniqueValues.ts +66 -0
  544. package/src/features/column-filtering/columnFilteringFeature.ts +86 -0
  545. package/src/features/column-filtering/columnFilteringFeature.types.ts +248 -0
  546. package/src/features/column-filtering/columnFilteringFeature.utils.ts +331 -0
  547. package/src/features/column-filtering/createFilteredRowModel.ts +181 -0
  548. package/src/features/column-filtering/filterRowsUtils.ts +157 -0
  549. package/src/features/column-grouping/columnGroupingFeature.ts +115 -0
  550. package/src/features/column-grouping/columnGroupingFeature.types.ts +227 -0
  551. package/src/features/column-grouping/columnGroupingFeature.utils.ts +354 -0
  552. package/src/features/column-grouping/createGroupedRowModel.ts +216 -0
  553. package/src/features/column-ordering/columnOrderingFeature.ts +73 -0
  554. package/src/features/column-ordering/columnOrderingFeature.types.ts +60 -0
  555. package/src/features/column-ordering/columnOrderingFeature.utils.ts +241 -0
  556. package/src/features/column-pinning/columnPinningFeature.ts +316 -0
  557. package/src/features/column-pinning/columnPinningFeature.types.ts +192 -0
  558. package/src/features/column-pinning/columnPinningFeature.utils.ts +908 -0
  559. package/src/features/column-resizing/columnResizingFeature.ts +65 -0
  560. package/src/features/column-resizing/columnResizingFeature.types.ts +89 -0
  561. package/src/features/column-resizing/columnResizingFeature.utils.ts +364 -0
  562. package/src/features/column-sizing/columnSizingFeature.ts +145 -0
  563. package/src/features/column-sizing/columnSizingFeature.types.ts +102 -0
  564. package/src/features/column-sizing/columnSizingFeature.utils.ts +381 -0
  565. package/src/features/column-visibility/columnVisibilityFeature.ts +122 -0
  566. package/src/features/column-visibility/columnVisibilityFeature.types.ts +112 -0
  567. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +384 -0
  568. package/src/features/global-filtering/globalFilteringFeature.ts +65 -0
  569. package/src/features/global-filtering/globalFilteringFeature.types.ts +91 -0
  570. package/src/features/global-filtering/globalFilteringFeature.utils.ts +118 -0
  571. package/src/features/row-expanding/createExpandedRowModel.ts +82 -0
  572. package/src/features/row-expanding/rowExpandingFeature.ts +94 -0
  573. package/src/features/row-expanding/rowExpandingFeature.types.ts +133 -0
  574. package/src/features/row-expanding/rowExpandingFeature.utils.ts +374 -0
  575. package/src/features/row-pagination/createPaginatedRowModel.ts +83 -0
  576. package/src/features/row-pagination/rowPaginationFeature.ts +95 -0
  577. package/src/features/row-pagination/rowPaginationFeature.types.ts +138 -0
  578. package/src/features/row-pagination/rowPaginationFeature.utils.ts +400 -0
  579. package/src/features/row-pinning/rowPinningFeature.ts +97 -0
  580. package/src/features/row-pinning/rowPinningFeature.types.ts +95 -0
  581. package/src/features/row-pinning/rowPinningFeature.utils.ts +323 -0
  582. package/src/features/row-selection/rowSelectionFeature.ts +140 -0
  583. package/src/features/row-selection/rowSelectionFeature.types.ts +151 -0
  584. package/src/features/row-selection/rowSelectionFeature.utils.ts +750 -0
  585. package/src/features/row-sorting/createSortedRowModel.ts +157 -0
  586. package/src/features/row-sorting/rowSortingFeature.ts +103 -0
  587. package/src/features/row-sorting/rowSortingFeature.types.ts +236 -0
  588. package/src/features/row-sorting/rowSortingFeature.utils.ts +489 -0
  589. package/src/features/stockFeatures.ts +53 -0
  590. package/src/flex-render.ts +70 -0
  591. package/src/fns/aggregationFns.ts +245 -0
  592. package/src/fns/filterFns.ts +382 -0
  593. package/src/fns/sortFns.ts +240 -0
  594. package/src/helpers/columnHelper.ts +122 -0
  595. package/src/helpers/metaHelper.ts +24 -0
  596. package/src/helpers/tableFeatures.ts +55 -0
  597. package/src/helpers/tableOptions.ts +117 -0
  598. package/src/index.ts +138 -42
  599. package/src/process-env.d.ts +6 -0
  600. package/src/reactivity.ts +2 -0
  601. package/src/static-functions.ts +31 -0
  602. package/src/store-reactivity-bindings.ts +47 -0
  603. package/src/types/Cell.ts +21 -0
  604. package/src/types/Column.ts +51 -0
  605. package/src/types/ColumnDef.ts +254 -0
  606. package/src/types/Header.ts +23 -0
  607. package/src/types/HeaderGroup.ts +13 -0
  608. package/src/types/Row.ts +34 -0
  609. package/src/types/RowModel.ts +47 -0
  610. package/src/types/RowModelFns.ts +32 -0
  611. package/src/types/Table.ts +90 -0
  612. package/src/types/TableFeatures.ts +295 -0
  613. package/src/types/TableOptions.ts +108 -0
  614. package/src/types/TableState.ts +47 -0
  615. package/src/types/type-utils.ts +84 -0
  616. package/src/utils.ts +389 -167
  617. package/dist/cjs/aggregationFns.cjs +0 -94
  618. package/dist/cjs/aggregationFns.cjs.map +0 -1
  619. package/dist/cjs/aggregationFns.d.cts +0 -14
  620. package/dist/cjs/columnHelper.cjs +0 -19
  621. package/dist/cjs/columnHelper.cjs.map +0 -1
  622. package/dist/cjs/columnHelper.d.cts +0 -9
  623. package/dist/cjs/core/cell.cjs +0 -38
  624. package/dist/cjs/core/cell.cjs.map +0 -1
  625. package/dist/cjs/core/cell.d.cts +0 -50
  626. package/dist/cjs/core/column.cjs +0 -81
  627. package/dist/cjs/core/column.cjs.map +0 -1
  628. package/dist/cjs/core/column.d.cts +0 -56
  629. package/dist/cjs/core/headers.cjs +0 -310
  630. package/dist/cjs/core/headers.cjs.map +0 -1
  631. package/dist/cjs/core/headers.d.cts +0 -195
  632. package/dist/cjs/core/row.cjs +0 -92
  633. package/dist/cjs/core/row.cjs.map +0 -1
  634. package/dist/cjs/core/row.d.cts +0 -92
  635. package/dist/cjs/core/table.cjs +0 -232
  636. package/dist/cjs/core/table.cjs.map +0 -1
  637. package/dist/cjs/core/table.d.cts +0 -229
  638. package/dist/cjs/features/ColumnFaceting.cjs +0 -29
  639. package/dist/cjs/features/ColumnFaceting.cjs.map +0 -1
  640. package/dist/cjs/features/ColumnFaceting.d.cts +0 -35
  641. package/dist/cjs/features/ColumnFiltering.cjs +0 -137
  642. package/dist/cjs/features/ColumnFiltering.cjs.map +0 -1
  643. package/dist/cjs/features/ColumnFiltering.d.cts +0 -195
  644. package/dist/cjs/features/ColumnGrouping.cjs +0 -133
  645. package/dist/cjs/features/ColumnGrouping.cjs.map +0 -1
  646. package/dist/cjs/features/ColumnGrouping.d.cts +0 -202
  647. package/dist/cjs/features/ColumnOrdering.cjs +0 -76
  648. package/dist/cjs/features/ColumnOrdering.cjs.map +0 -1
  649. package/dist/cjs/features/ColumnOrdering.d.cts +0 -54
  650. package/dist/cjs/features/ColumnPinning.cjs +0 -145
  651. package/dist/cjs/features/ColumnPinning.cjs.map +0 -1
  652. package/dist/cjs/features/ColumnPinning.d.cts +0 -127
  653. package/dist/cjs/features/ColumnSizing.cjs +0 -307
  654. package/dist/cjs/features/ColumnSizing.cjs.map +0 -1
  655. package/dist/cjs/features/ColumnSizing.d.cts +0 -194
  656. package/dist/cjs/features/ColumnVisibility.cjs +0 -144
  657. package/dist/cjs/features/ColumnVisibility.cjs.map +0 -1
  658. package/dist/cjs/features/ColumnVisibility.d.cts +0 -130
  659. package/dist/cjs/features/GlobalFaceting.cjs +0 -29
  660. package/dist/cjs/features/GlobalFaceting.cjs.map +0 -1
  661. package/dist/cjs/features/GlobalFaceting.d.cts +0 -27
  662. package/dist/cjs/features/GlobalFiltering.cjs +0 -50
  663. package/dist/cjs/features/GlobalFiltering.cjs.map +0 -1
  664. package/dist/cjs/features/GlobalFiltering.d.cts +0 -80
  665. package/dist/cjs/features/RowExpanding.cjs +0 -152
  666. package/dist/cjs/features/RowExpanding.cjs.map +0 -1
  667. package/dist/cjs/features/RowExpanding.d.cts +0 -155
  668. package/dist/cjs/features/RowPagination.cjs +0 -161
  669. package/dist/cjs/features/RowPagination.cjs.map +0 -1
  670. package/dist/cjs/features/RowPagination.d.cts +0 -166
  671. package/dist/cjs/features/RowPinning.cjs +0 -132
  672. package/dist/cjs/features/RowPinning.cjs.map +0 -1
  673. package/dist/cjs/features/RowPinning.d.cts +0 -99
  674. package/dist/cjs/features/RowSelection.cjs +0 -296
  675. package/dist/cjs/features/RowSelection.cjs.map +0 -1
  676. package/dist/cjs/features/RowSelection.d.cts +0 -177
  677. package/dist/cjs/features/RowSorting.cjs +0 -200
  678. package/dist/cjs/features/RowSorting.cjs.map +0 -1
  679. package/dist/cjs/features/RowSorting.d.cts +0 -238
  680. package/dist/cjs/filterFns.cjs +0 -88
  681. package/dist/cjs/filterFns.cjs.map +0 -1
  682. package/dist/cjs/filterFns.d.cts +0 -14
  683. package/dist/cjs/index.cjs +0 -88
  684. package/dist/cjs/index.cjs.map +0 -1
  685. package/dist/cjs/index.d.cts +0 -34
  686. package/dist/cjs/sortingFns.cjs +0 -91
  687. package/dist/cjs/sortingFns.cjs.map +0 -1
  688. package/dist/cjs/sortingFns.d.cts +0 -12
  689. package/dist/cjs/types.d.cts +0 -120
  690. package/dist/cjs/utils/filterRowsUtils.cjs +0 -99
  691. package/dist/cjs/utils/filterRowsUtils.cjs.map +0 -1
  692. package/dist/cjs/utils/filterRowsUtils.d.cts +0 -3
  693. package/dist/cjs/utils/getCoreRowModel.cjs +0 -54
  694. package/dist/cjs/utils/getCoreRowModel.cjs.map +0 -1
  695. package/dist/cjs/utils/getCoreRowModel.d.cts +0 -3
  696. package/dist/cjs/utils/getExpandedRowModel.cjs +0 -41
  697. package/dist/cjs/utils/getExpandedRowModel.cjs.map +0 -1
  698. package/dist/cjs/utils/getExpandedRowModel.d.cts +0 -8
  699. package/dist/cjs/utils/getFacetedMinMaxValues.cjs +0 -35
  700. package/dist/cjs/utils/getFacetedMinMaxValues.cjs.map +0 -1
  701. package/dist/cjs/utils/getFacetedMinMaxValues.d.cts +0 -3
  702. package/dist/cjs/utils/getFacetedRowModel.cjs +0 -35
  703. package/dist/cjs/utils/getFacetedRowModel.cjs.map +0 -1
  704. package/dist/cjs/utils/getFacetedRowModel.d.cts +0 -3
  705. package/dist/cjs/utils/getFacetedUniqueValues.cjs +0 -37
  706. package/dist/cjs/utils/getFacetedUniqueValues.cjs.map +0 -1
  707. package/dist/cjs/utils/getFacetedUniqueValues.d.cts +0 -3
  708. package/dist/cjs/utils/getFilteredRowModel.cjs +0 -116
  709. package/dist/cjs/utils/getFilteredRowModel.cjs.map +0 -1
  710. package/dist/cjs/utils/getFilteredRowModel.d.cts +0 -3
  711. package/dist/cjs/utils/getGroupedRowModel.cjs +0 -118
  712. package/dist/cjs/utils/getGroupedRowModel.cjs.map +0 -1
  713. package/dist/cjs/utils/getGroupedRowModel.d.cts +0 -3
  714. package/dist/cjs/utils/getPaginationRowModel.cjs +0 -49
  715. package/dist/cjs/utils/getPaginationRowModel.cjs.map +0 -1
  716. package/dist/cjs/utils/getPaginationRowModel.d.cts +0 -5
  717. package/dist/cjs/utils/getSortedRowModel.cjs +0 -88
  718. package/dist/cjs/utils/getSortedRowModel.cjs.map +0 -1
  719. package/dist/cjs/utils/getSortedRowModel.d.cts +0 -3
  720. package/dist/cjs/utils.cjs +0 -98
  721. package/dist/cjs/utils.cjs.map +0 -1
  722. package/dist/cjs/utils.d.cts +0 -39
  723. package/dist/esm/aggregationFns.d.ts +0 -14
  724. package/dist/esm/aggregationFns.js +0 -94
  725. package/dist/esm/aggregationFns.js.map +0 -1
  726. package/dist/esm/columnHelper.d.ts +0 -9
  727. package/dist/esm/columnHelper.js +0 -19
  728. package/dist/esm/columnHelper.js.map +0 -1
  729. package/dist/esm/core/cell.d.ts +0 -50
  730. package/dist/esm/core/cell.js +0 -38
  731. package/dist/esm/core/cell.js.map +0 -1
  732. package/dist/esm/core/column.d.ts +0 -56
  733. package/dist/esm/core/column.js +0 -81
  734. package/dist/esm/core/column.js.map +0 -1
  735. package/dist/esm/core/headers.d.ts +0 -195
  736. package/dist/esm/core/headers.js +0 -310
  737. package/dist/esm/core/headers.js.map +0 -1
  738. package/dist/esm/core/row.d.ts +0 -92
  739. package/dist/esm/core/row.js +0 -92
  740. package/dist/esm/core/row.js.map +0 -1
  741. package/dist/esm/core/table.d.ts +0 -229
  742. package/dist/esm/core/table.js +0 -232
  743. package/dist/esm/core/table.js.map +0 -1
  744. package/dist/esm/features/ColumnFaceting.d.ts +0 -35
  745. package/dist/esm/features/ColumnFaceting.js +0 -29
  746. package/dist/esm/features/ColumnFaceting.js.map +0 -1
  747. package/dist/esm/features/ColumnFiltering.d.ts +0 -195
  748. package/dist/esm/features/ColumnFiltering.js +0 -137
  749. package/dist/esm/features/ColumnFiltering.js.map +0 -1
  750. package/dist/esm/features/ColumnGrouping.d.ts +0 -202
  751. package/dist/esm/features/ColumnGrouping.js +0 -133
  752. package/dist/esm/features/ColumnGrouping.js.map +0 -1
  753. package/dist/esm/features/ColumnOrdering.d.ts +0 -54
  754. package/dist/esm/features/ColumnOrdering.js +0 -76
  755. package/dist/esm/features/ColumnOrdering.js.map +0 -1
  756. package/dist/esm/features/ColumnPinning.d.ts +0 -127
  757. package/dist/esm/features/ColumnPinning.js +0 -145
  758. package/dist/esm/features/ColumnPinning.js.map +0 -1
  759. package/dist/esm/features/ColumnSizing.d.ts +0 -194
  760. package/dist/esm/features/ColumnSizing.js +0 -307
  761. package/dist/esm/features/ColumnSizing.js.map +0 -1
  762. package/dist/esm/features/ColumnVisibility.d.ts +0 -130
  763. package/dist/esm/features/ColumnVisibility.js +0 -144
  764. package/dist/esm/features/ColumnVisibility.js.map +0 -1
  765. package/dist/esm/features/GlobalFaceting.d.ts +0 -27
  766. package/dist/esm/features/GlobalFaceting.js +0 -29
  767. package/dist/esm/features/GlobalFaceting.js.map +0 -1
  768. package/dist/esm/features/GlobalFiltering.d.ts +0 -80
  769. package/dist/esm/features/GlobalFiltering.js +0 -50
  770. package/dist/esm/features/GlobalFiltering.js.map +0 -1
  771. package/dist/esm/features/RowExpanding.d.ts +0 -155
  772. package/dist/esm/features/RowExpanding.js +0 -152
  773. package/dist/esm/features/RowExpanding.js.map +0 -1
  774. package/dist/esm/features/RowPagination.d.ts +0 -166
  775. package/dist/esm/features/RowPagination.js +0 -161
  776. package/dist/esm/features/RowPagination.js.map +0 -1
  777. package/dist/esm/features/RowPinning.d.ts +0 -99
  778. package/dist/esm/features/RowPinning.js +0 -132
  779. package/dist/esm/features/RowPinning.js.map +0 -1
  780. package/dist/esm/features/RowSelection.d.ts +0 -177
  781. package/dist/esm/features/RowSelection.js +0 -296
  782. package/dist/esm/features/RowSelection.js.map +0 -1
  783. package/dist/esm/features/RowSorting.d.ts +0 -238
  784. package/dist/esm/features/RowSorting.js +0 -200
  785. package/dist/esm/features/RowSorting.js.map +0 -1
  786. package/dist/esm/filterFns.d.ts +0 -14
  787. package/dist/esm/filterFns.js +0 -88
  788. package/dist/esm/filterFns.js.map +0 -1
  789. package/dist/esm/index.d.ts +0 -34
  790. package/dist/esm/index.js +0 -88
  791. package/dist/esm/index.js.map +0 -1
  792. package/dist/esm/sortingFns.d.ts +0 -12
  793. package/dist/esm/sortingFns.js +0 -91
  794. package/dist/esm/sortingFns.js.map +0 -1
  795. package/dist/esm/types.d.ts +0 -120
  796. package/dist/esm/utils/filterRowsUtils.d.ts +0 -3
  797. package/dist/esm/utils/filterRowsUtils.js +0 -99
  798. package/dist/esm/utils/filterRowsUtils.js.map +0 -1
  799. package/dist/esm/utils/getCoreRowModel.d.ts +0 -3
  800. package/dist/esm/utils/getCoreRowModel.js +0 -54
  801. package/dist/esm/utils/getCoreRowModel.js.map +0 -1
  802. package/dist/esm/utils/getExpandedRowModel.d.ts +0 -8
  803. package/dist/esm/utils/getExpandedRowModel.js +0 -41
  804. package/dist/esm/utils/getExpandedRowModel.js.map +0 -1
  805. package/dist/esm/utils/getFacetedMinMaxValues.d.ts +0 -3
  806. package/dist/esm/utils/getFacetedMinMaxValues.js +0 -35
  807. package/dist/esm/utils/getFacetedMinMaxValues.js.map +0 -1
  808. package/dist/esm/utils/getFacetedRowModel.d.ts +0 -3
  809. package/dist/esm/utils/getFacetedRowModel.js +0 -35
  810. package/dist/esm/utils/getFacetedRowModel.js.map +0 -1
  811. package/dist/esm/utils/getFacetedUniqueValues.d.ts +0 -3
  812. package/dist/esm/utils/getFacetedUniqueValues.js +0 -37
  813. package/dist/esm/utils/getFacetedUniqueValues.js.map +0 -1
  814. package/dist/esm/utils/getFilteredRowModel.d.ts +0 -3
  815. package/dist/esm/utils/getFilteredRowModel.js +0 -116
  816. package/dist/esm/utils/getFilteredRowModel.js.map +0 -1
  817. package/dist/esm/utils/getGroupedRowModel.d.ts +0 -3
  818. package/dist/esm/utils/getGroupedRowModel.js +0 -118
  819. package/dist/esm/utils/getGroupedRowModel.js.map +0 -1
  820. package/dist/esm/utils/getPaginationRowModel.d.ts +0 -5
  821. package/dist/esm/utils/getPaginationRowModel.js +0 -49
  822. package/dist/esm/utils/getPaginationRowModel.js.map +0 -1
  823. package/dist/esm/utils/getSortedRowModel.d.ts +0 -3
  824. package/dist/esm/utils/getSortedRowModel.js +0 -88
  825. package/dist/esm/utils/getSortedRowModel.js.map +0 -1
  826. package/dist/esm/utils.d.ts +0 -39
  827. package/dist/esm/utils.js +0 -98
  828. package/dist/esm/utils.js.map +0 -1
  829. package/src/aggregationFns.ts +0 -123
  830. package/src/columnHelper.ts +0 -91
  831. package/src/core/cell.ts +0 -91
  832. package/src/core/column.ts +0 -165
  833. package/src/core/headers.ts +0 -639
  834. package/src/core/row.ts +0 -201
  835. package/src/core/table.ts +0 -563
  836. package/src/features/ColumnFaceting.ts +0 -84
  837. package/src/features/ColumnFiltering.ts +0 -429
  838. package/src/features/ColumnGrouping.ts +0 -422
  839. package/src/features/ColumnOrdering.ts +0 -161
  840. package/src/features/ColumnPinning.ts +0 -336
  841. package/src/features/ColumnSizing.ts +0 -579
  842. package/src/features/ColumnVisibility.ts +0 -317
  843. package/src/features/GlobalFaceting.ts +0 -66
  844. package/src/features/GlobalFiltering.ts +0 -162
  845. package/src/features/RowExpanding.ts +0 -355
  846. package/src/features/RowPagination.ts +0 -396
  847. package/src/features/RowPinning.ts +0 -273
  848. package/src/features/RowSelection.ts +0 -668
  849. package/src/features/RowSorting.ts +0 -542
  850. package/src/filterFns.ts +0 -150
  851. package/src/sortingFns.ts +0 -128
  852. package/src/types.ts +0 -361
  853. package/src/utils/filterRowsUtils.ts +0 -130
  854. package/src/utils/getCoreRowModel.ts +0 -82
  855. package/src/utils/getExpandedRowModel.ts +0 -51
  856. package/src/utils/getFacetedMinMaxValues.ts +0 -42
  857. package/src/utils/getFacetedRowModel.ts +0 -44
  858. package/src/utils/getFacetedUniqueValues.ts +0 -42
  859. package/src/utils/getFilteredRowModel.ts +0 -151
  860. package/src/utils/getGroupedRowModel.ts +0 -181
  861. package/src/utils/getPaginationRowModel.ts +0 -60
  862. package/src/utils/getSortedRowModel.ts +0 -121
@@ -0,0 +1,182 @@
1
+ import { callMemoOrStaticFn } from '../../utils'
2
+ import { column_getIsVisible } from '../../features/column-visibility/columnVisibilityFeature.utils'
3
+ import { constructHeader } from './constructHeader'
4
+ import type { Table_Internal } from '../../types/Table'
5
+ import type { CellData, RowData } from '../../types/type-utils'
6
+ import type { TableFeatures } from '../../types/TableFeatures'
7
+ import type { Header } from '../../types/Header'
8
+ import type { HeaderGroup } from '../../types/HeaderGroup'
9
+ import type { Column } from '../../types/Column'
10
+
11
+ /**
12
+ * Builds the nested header group structure for a table.
13
+ *
14
+ * The result accounts for visible leaf columns, pinned column groups, and placeholder headers needed to render multi-level headers.
15
+ */
16
+ export function buildHeaderGroups<
17
+ TFeatures extends TableFeatures,
18
+ TData extends RowData,
19
+ TValue extends CellData = CellData,
20
+ >(
21
+ allColumns: Array<Column<TFeatures, TData, TValue>>,
22
+ columnsToGroup: Array<Column<TFeatures, TData, TValue>>,
23
+ table: Table_Internal<TFeatures, TData>,
24
+ headerFamily?: 'center' | 'left' | 'right',
25
+ ) {
26
+ // Find the max depth of the columns:
27
+ // build the leaf column row
28
+ // build each buffer row going up
29
+ // placeholder for non-existent level
30
+ // real column for existing level
31
+
32
+ let maxDepth = 0
33
+
34
+ const findMaxDepth = (
35
+ columns: Array<Column<TFeatures, TData, TValue>>,
36
+ depth = 1,
37
+ ) => {
38
+ maxDepth = Math.max(maxDepth, depth)
39
+
40
+ for (let i = 0; i < columns.length; i++) {
41
+ const column = columns[i]!
42
+ if (callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)) {
43
+ if (column.columns.length) {
44
+ findMaxDepth(column.columns, depth + 1)
45
+ }
46
+ }
47
+ }
48
+ }
49
+
50
+ findMaxDepth(allColumns)
51
+
52
+ const headerGroups: Array<HeaderGroup<TFeatures, TData>> = []
53
+
54
+ const constructHeaderGroup = (
55
+ headersToGroup: Array<Header<TFeatures, TData, TValue>>,
56
+ depth: number,
57
+ ) => {
58
+ // The header group we are creating
59
+ const headerGroup: HeaderGroup<TFeatures, TData> = {
60
+ depth,
61
+ id: [headerFamily, `${depth}`].filter(Boolean).join('_'),
62
+ headers: [],
63
+ }
64
+
65
+ // The parent columns we're going to scan next
66
+ const pendingParentHeaders: Array<Header<TFeatures, TData, TValue>> = []
67
+
68
+ // Scan each column for parents
69
+ headersToGroup.forEach((headerToGroup) => {
70
+ // What is the latest (last) parent column?
71
+
72
+ const latestPendingParentHeader =
73
+ pendingParentHeaders[pendingParentHeaders.length - 1]
74
+
75
+ const isLeafHeader = headerToGroup.column.depth === headerGroup.depth
76
+
77
+ let column: Column<TFeatures, TData, TValue>
78
+ let isPlaceholder = false
79
+
80
+ if (isLeafHeader && headerToGroup.column.parent) {
81
+ // The parent header is new
82
+ column = headerToGroup.column.parent
83
+ } else {
84
+ // The parent header is repeated
85
+ column = headerToGroup.column
86
+ isPlaceholder = true
87
+ }
88
+
89
+ if (
90
+ latestPendingParentHeader &&
91
+ latestPendingParentHeader.column === column
92
+ ) {
93
+ // This column is repeated. Add it as a sub header to the next batch
94
+ latestPendingParentHeader.subHeaders.push(headerToGroup)
95
+ } else {
96
+ // This is a new header. Let's create it
97
+ const header = constructHeader(table, column, {
98
+ id: [headerFamily, depth, column.id, headerToGroup.id]
99
+ .filter(Boolean)
100
+ .join('_'),
101
+ isPlaceholder,
102
+ placeholderId: isPlaceholder
103
+ ? `${pendingParentHeaders.filter((d) => d.column === column).length}`
104
+ : undefined,
105
+ depth,
106
+ index: pendingParentHeaders.length,
107
+ })
108
+
109
+ // Add the headerToGroup as a subHeader of the new header
110
+ header.subHeaders.push(headerToGroup)
111
+ // Add the new header to the pendingParentHeaders to get grouped
112
+ // in the next batch
113
+ pendingParentHeaders.push(header)
114
+ }
115
+
116
+ headerGroup.headers.push(headerToGroup)
117
+ headerToGroup.headerGroup = headerGroup
118
+ })
119
+
120
+ headerGroups.push(headerGroup)
121
+
122
+ if (depth > 0) {
123
+ constructHeaderGroup(pendingParentHeaders, depth - 1)
124
+ }
125
+ }
126
+
127
+ const bottomHeaders = columnsToGroup.map((column, index) =>
128
+ constructHeader(table, column, {
129
+ depth: maxDepth,
130
+ index,
131
+ }),
132
+ )
133
+
134
+ constructHeaderGroup(bottomHeaders, maxDepth - 1)
135
+
136
+ headerGroups.reverse()
137
+
138
+ const recurseHeadersForSpans = (
139
+ headers: Array<Header<TFeatures, TData, TValue>>,
140
+ ): Array<{ colSpan: number; rowSpan: number }> => {
141
+ const results: Array<{ colSpan: number; rowSpan: number }> = []
142
+
143
+ for (let i = 0; i < headers.length; i++) {
144
+ const header = headers[i]!
145
+ if (
146
+ !callMemoOrStaticFn(header.column, 'getIsVisible', column_getIsVisible)
147
+ ) {
148
+ continue
149
+ }
150
+
151
+ let colSpan = 0
152
+ let minChildRowSpan = Infinity
153
+
154
+ if (header.subHeaders.length) {
155
+ const childSpans = recurseHeadersForSpans(header.subHeaders)
156
+ for (let j = 0; j < childSpans.length; j++) {
157
+ const child = childSpans[j]!
158
+ colSpan += child.colSpan
159
+ if (child.rowSpan < minChildRowSpan) {
160
+ minChildRowSpan = child.rowSpan
161
+ }
162
+ }
163
+ } else {
164
+ colSpan = 1
165
+ minChildRowSpan = 0
166
+ }
167
+
168
+ header.colSpan = colSpan
169
+ header.rowSpan = minChildRowSpan
170
+
171
+ results.push({ colSpan, rowSpan: header.rowSpan })
172
+ }
173
+
174
+ return results
175
+ }
176
+
177
+ recurseHeadersForSpans(
178
+ (headerGroups[0]?.headers ?? []) as Array<Header<TFeatures, TData, TValue>>,
179
+ )
180
+
181
+ return headerGroups
182
+ }
@@ -0,0 +1,67 @@
1
+ import type { Table_Internal } from '../../types/Table'
2
+ import type { CellData, RowData } from '../../types/type-utils'
3
+ import type { TableFeatures } from '../../types/TableFeatures'
4
+ import type { Header } from '../../types/Header'
5
+ import type { Column } from '../../types/Column'
6
+ import type { Header_CoreProperties } from './coreHeadersFeature.types'
7
+
8
+ /**
9
+ * Creates or retrieves the header prototype for a table.
10
+ * The prototype is cached on the table and shared by all header instances.
11
+ */
12
+ function getHeaderPrototype<
13
+ TFeatures extends TableFeatures,
14
+ TData extends RowData,
15
+ >(table: Table_Internal<TFeatures, TData>): object {
16
+ if (!table._headerPrototype) {
17
+ table._headerPrototype = { table }
18
+ const features = Object.values(table._features)
19
+ for (let i = 0; i < features.length; i++) {
20
+ features[i]!.assignHeaderPrototype?.(table._headerPrototype, table)
21
+ }
22
+ }
23
+ return table._headerPrototype
24
+ }
25
+
26
+ /**
27
+ * Constructs a header instance from normalized table internals.
28
+ *
29
+ * This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.
30
+ */
31
+ export function constructHeader<
32
+ TFeatures extends TableFeatures,
33
+ TData extends RowData,
34
+ TValue extends CellData = CellData,
35
+ >(
36
+ table: Table_Internal<TFeatures, TData>,
37
+ column: Column<TFeatures, TData, TValue>,
38
+ options: {
39
+ id?: string
40
+ isPlaceholder?: boolean
41
+ placeholderId?: string
42
+ index: number
43
+ depth: number
44
+ },
45
+ ): Header<TFeatures, TData, TValue> {
46
+ // Create header with shared prototype for memory efficiency
47
+ const headerPrototype = getHeaderPrototype(table)
48
+ const header = Object.create(headerPrototype) as Header_CoreProperties<
49
+ TFeatures,
50
+ TData,
51
+ TValue
52
+ >
53
+
54
+ // Only assign instance-specific properties
55
+ header.colSpan = 0
56
+ header.column = column
57
+ header.depth = options.depth
58
+ header.headerGroup = null
59
+ header.id = options.id ?? column.id
60
+ header.index = options.index
61
+ header.isPlaceholder = !!options.isPlaceholder
62
+ header.placeholderId = options.placeholderId
63
+ header.rowSpan = 0
64
+ header.subHeaders = []
65
+
66
+ return header as Header<TFeatures, TData, TValue>
67
+ }
@@ -0,0 +1,56 @@
1
+ import { assignPrototypeAPIs, assignTableAPIs } from '../../utils'
2
+ import {
3
+ header_getContext,
4
+ header_getLeafHeaders,
5
+ table_getFlatHeaders,
6
+ table_getFooterGroups,
7
+ table_getHeaderGroups,
8
+ table_getLeafHeaders,
9
+ } from './coreHeadersFeature.utils'
10
+ import type { TableFeature } from '../../types/TableFeatures'
11
+
12
+ /**
13
+ * Core feature that builds header groups and exposes header context APIs.
14
+ */
15
+ export const coreHeadersFeature: TableFeature = {
16
+ assignHeaderPrototype: (prototype, table) => {
17
+ assignPrototypeAPIs('coreHeadersFeature', prototype, table, {
18
+ header_getLeafHeaders: {
19
+ fn: (header) => header_getLeafHeaders(header),
20
+ memoDeps: (header) => [header.column.table.options.columns],
21
+ },
22
+ header_getContext: {
23
+ fn: (header) => header_getContext(header),
24
+ memoDeps: (header) => [header.column.table.options.columns],
25
+ },
26
+ })
27
+ },
28
+
29
+ constructTableAPIs: (table) => {
30
+ assignTableAPIs('coreHeadersFeature', table, {
31
+ table_getHeaderGroups: {
32
+ fn: () => table_getHeaderGroups(table),
33
+ memoDeps: () => [
34
+ table.options.columns,
35
+ table.atoms.columnOrder?.get(),
36
+ table.atoms.grouping?.get(),
37
+ table.atoms.columnPinning?.get(),
38
+ table.atoms.columnVisibility?.get(),
39
+ table.options.groupedColumnMode,
40
+ ],
41
+ },
42
+ table_getFooterGroups: {
43
+ fn: () => table_getFooterGroups(table),
44
+ memoDeps: () => [table.getHeaderGroups()],
45
+ },
46
+ table_getFlatHeaders: {
47
+ fn: () => table_getFlatHeaders(table),
48
+ memoDeps: () => [table.getHeaderGroups()],
49
+ },
50
+ table_getLeafHeaders: {
51
+ fn: () => table_getLeafHeaders(table),
52
+ memoDeps: () => [table.getHeaderGroups()],
53
+ },
54
+ })
55
+ },
56
+ }
@@ -0,0 +1,125 @@
1
+ import type { CellData, RowData } from '../../types/type-utils'
2
+ import type { TableFeatures } from '../../types/TableFeatures'
3
+ import type { Table } from '../../types/Table'
4
+ import type { Header } from '../../types/Header'
5
+ import type { HeaderGroup } from '../../types/HeaderGroup'
6
+ import type { Column } from '../../types/Column'
7
+
8
+ export interface Table_Headers<
9
+ TFeatures extends TableFeatures,
10
+ TData extends RowData,
11
+ > {
12
+ /**
13
+ * Builds the visible header groups for the current column tree, visibility,
14
+ * and pinning state.
15
+ */
16
+ getHeaderGroups: () => Array<HeaderGroup<TFeatures, TData>>
17
+ /**
18
+ * Builds footer groups by reversing the current header group order.
19
+ */
20
+ getFooterGroups: () => Array<HeaderGroup<TFeatures, TData>>
21
+ /**
22
+ * Flattens every header from every header group, including parent and
23
+ * placeholder headers.
24
+ */
25
+ getFlatHeaders: () => Array<Header<TFeatures, TData, unknown>>
26
+ /**
27
+ * Collects only leaf headers, excluding parent/group headers.
28
+ */
29
+ getLeafHeaders: () => Array<Header<TFeatures, TData, unknown>>
30
+ }
31
+
32
+ export interface HeaderContext<
33
+ TFeatures extends TableFeatures,
34
+ TData extends RowData,
35
+ TValue extends CellData = CellData,
36
+ > {
37
+ /**
38
+ * An instance of a column.
39
+ */
40
+ column: Column<TFeatures, TData, TValue>
41
+ /**
42
+ * An instance of a header.
43
+ */
44
+ header: Header<TFeatures, TData, TValue>
45
+ /**
46
+ * The table instance.
47
+ */
48
+ table: Table<TFeatures, TData>
49
+ }
50
+
51
+ export interface Header_CoreProperties<
52
+ TFeatures extends TableFeatures,
53
+ TData extends RowData,
54
+ TValue extends CellData = CellData,
55
+ > {
56
+ /**
57
+ * The col-span for the header.
58
+ */
59
+ colSpan: number
60
+ /**
61
+ * The header's associated column object.
62
+ */
63
+ column: Column<TFeatures, TData, TValue>
64
+ /**
65
+ * The depth of the header, zero-indexed based.
66
+ */
67
+ depth: number
68
+ /**
69
+ * The header's associated header group object.
70
+ */
71
+ headerGroup: HeaderGroup<TFeatures, TData> | null
72
+ /**
73
+ * The unique identifier for the header.
74
+ */
75
+ id: string
76
+ /**
77
+ * The index for the header within the header group.
78
+ */
79
+ index: number
80
+ /**
81
+ * A boolean denoting if the header is a placeholder header.
82
+ */
83
+ isPlaceholder: boolean
84
+ /**
85
+ * If the header is a placeholder header, this will be a unique header ID that does not conflict with any other headers across the table.
86
+ */
87
+ placeholderId?: string
88
+ /**
89
+ * The row-span for the header.
90
+ */
91
+ rowSpan: number
92
+ /**
93
+ * The header's hierarchical sub/child headers. Will be empty if the header's associated column is a leaf-column.
94
+ */
95
+ subHeaders: Array<Header<TFeatures, TData, TValue>>
96
+ /**
97
+ * Reference to the parent table instance.
98
+ */
99
+ table: Table<TFeatures, TData>
100
+ }
101
+
102
+ export interface Header_Header<
103
+ TFeatures extends TableFeatures,
104
+ TData extends RowData,
105
+ TValue extends CellData = CellData,
106
+ > extends Header_CoreProperties<TFeatures, TData, TValue> {
107
+ /**
108
+ * Returns the rendering context (or props) for column-based components like headers, footers and filters.
109
+ */
110
+ getContext: () => HeaderContext<TFeatures, TData, TValue>
111
+ /**
112
+ * Returns the leaf headers hierarchically nested under this header.
113
+ */
114
+ getLeafHeaders: () => Array<Header<TFeatures, TData, TValue>>
115
+ }
116
+
117
+ export interface HeaderGroup_Header<
118
+ TFeatures extends TableFeatures,
119
+ TData extends RowData,
120
+ TValue extends CellData = CellData,
121
+ > {
122
+ depth: number
123
+ headers: Array<Header<TFeatures, TData, TValue>>
124
+ id: string
125
+ }
@@ -0,0 +1,200 @@
1
+ import { getDefaultColumnPinningState } from '../../features/column-pinning/columnPinningFeature.utils'
2
+ import {
3
+ column_getIsVisible,
4
+ table_getVisibleLeafColumns,
5
+ } from '../../features/column-visibility/columnVisibilityFeature.utils'
6
+ import { callMemoOrStaticFn } from '../../utils'
7
+ import { buildHeaderGroups } from './buildHeaderGroups'
8
+ import type { Table_Internal } from '../../types/Table'
9
+ import type { Header } from '../../types/Header'
10
+ import type { RowData } from '../../types/type-utils'
11
+ import type { TableFeatures } from '../../types/TableFeatures'
12
+ import type { Header_Header } from './coreHeadersFeature.types'
13
+ import type { Column } from '../../types/Column'
14
+
15
+ /**
16
+ * Walks a header tree and collects all descendant leaf headers.
17
+ *
18
+ * The header itself is included after its descendants, matching the recursive
19
+ * shape used by nested header groups.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const leafHeaders = header_getLeafHeaders(header)
24
+ * ```
25
+ */
26
+ export function header_getLeafHeaders<
27
+ TFeatures extends TableFeatures,
28
+ TData extends RowData,
29
+ TValue,
30
+ >(header: Header<TFeatures, TData, TValue>) {
31
+ const leafHeaders: Array<Header<TFeatures, TData, TValue>> = []
32
+
33
+ const recurseHeader = (h: Header_Header<TFeatures, TData, TValue>) => {
34
+ if (h.subHeaders.length) {
35
+ h.subHeaders.map(recurseHeader)
36
+ }
37
+ leafHeaders.push(h as Header<TFeatures, TData, TValue>)
38
+ }
39
+
40
+ recurseHeader(header)
41
+
42
+ return leafHeaders
43
+ }
44
+
45
+ /**
46
+ * Builds the render context passed to a column's `header` or `footer` template.
47
+ *
48
+ * The context contains the header, its column, and the owning table instance.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * const context = header_getContext(header)
53
+ * ```
54
+ */
55
+ export function header_getContext<
56
+ TFeatures extends TableFeatures,
57
+ TData extends RowData,
58
+ TValue,
59
+ >(header: Header<TFeatures, TData, TValue>) {
60
+ return {
61
+ column: header.column,
62
+ header,
63
+ table: header.column.table,
64
+ }
65
+ }
66
+
67
+ /**
68
+ * Builds visible header groups for the current column tree.
69
+ *
70
+ * Column visibility and pinning are applied before groups are built. When no
71
+ * columns are pinned, the fast path skips pin partitioning.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * const headerGroups = table_getHeaderGroups(table)
76
+ * ```
77
+ */
78
+ export function table_getHeaderGroups<
79
+ TFeatures extends TableFeatures,
80
+ TData extends RowData,
81
+ >(table: Table_Internal<TFeatures, TData>) {
82
+ const { left, right } =
83
+ table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()
84
+ const allColumns = table.getAllColumns()
85
+ const leafColumns = callMemoOrStaticFn(
86
+ table,
87
+ 'getVisibleLeafColumns',
88
+ table_getVisibleLeafColumns,
89
+ )
90
+
91
+ // Fast path: no columns are pinned — skip per-side lookups, partition, and spread.
92
+ if (!left.length && !right.length) {
93
+ return buildHeaderGroups(allColumns, leafColumns, table)
94
+ }
95
+
96
+ const leafColumnsById = table.getAllLeafColumnsById()
97
+
98
+ const leftColumns: typeof leafColumns = []
99
+ for (let i = 0; i < left.length; i++) {
100
+ const column = leafColumnsById[left[i]!]
101
+ if (
102
+ column &&
103
+ callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)
104
+ ) {
105
+ leftColumns.push(column)
106
+ }
107
+ }
108
+
109
+ const rightColumns: typeof leafColumns = []
110
+ for (let i = 0; i < right.length; i++) {
111
+ const column = leafColumnsById[right[i]!]
112
+ if (
113
+ column &&
114
+ callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)
115
+ ) {
116
+ rightColumns.push(column)
117
+ }
118
+ }
119
+
120
+ const centerColumns = leafColumns.filter(
121
+ (column) => !left.includes(column.id) && !right.includes(column.id),
122
+ )
123
+
124
+ return buildHeaderGroups(
125
+ allColumns,
126
+ [...leftColumns, ...centerColumns, ...rightColumns],
127
+ table,
128
+ )
129
+ }
130
+
131
+ /**
132
+ * Builds footer groups by reversing the current header groups.
133
+ *
134
+ * Footer rendering uses the same header objects and grouping structure, but
135
+ * renders them from leaf level back toward the root.
136
+ *
137
+ * @example
138
+ * ```ts
139
+ * const footerGroups = table_getFooterGroups(table)
140
+ * ```
141
+ */
142
+ export function table_getFooterGroups<
143
+ TFeatures extends TableFeatures,
144
+ TData extends RowData,
145
+ >(table: Table_Internal<TFeatures, TData>) {
146
+ const headerGroups = table.getHeaderGroups()
147
+ return [...headerGroups].reverse()
148
+ }
149
+
150
+ /**
151
+ * Flattens every header from every header group into one array.
152
+ *
153
+ * The result includes parent headers and placeholder headers, in header-group
154
+ * order from top to bottom.
155
+ *
156
+ * @example
157
+ * ```ts
158
+ * const flatHeaders = table_getFlatHeaders(table)
159
+ * ```
160
+ */
161
+ export function table_getFlatHeaders<
162
+ TFeatures extends TableFeatures,
163
+ TData extends RowData,
164
+ >(table: Table_Internal<TFeatures, TData>) {
165
+ const headerGroups = table.getHeaderGroups()
166
+ const result: Array<Header<TFeatures, TData, unknown>> = []
167
+ for (let i = 0; i < headerGroups.length; i++) {
168
+ const headers = headerGroups[i]!.headers
169
+ for (let j = 0; j < headers.length; j++) {
170
+ result.push(headers[j]!)
171
+ }
172
+ }
173
+ return result
174
+ }
175
+
176
+ /**
177
+ * Collects only the leaf headers from the current header tree.
178
+ *
179
+ * Parent/group headers are skipped, making the result suitable for rendering
180
+ * one header per visible leaf column.
181
+ *
182
+ * @example
183
+ * ```ts
184
+ * const leafHeaders = table_getLeafHeaders(table)
185
+ * ```
186
+ */
187
+ export function table_getLeafHeaders<
188
+ TFeatures extends TableFeatures,
189
+ TData extends RowData,
190
+ >(table: Table_Internal<TFeatures, TData>) {
191
+ const topHeaders = table.getHeaderGroups()[0]?.headers ?? []
192
+ const result: Array<Header<TFeatures, TData, unknown>> = []
193
+ for (let i = 0; i < topHeaders.length; i++) {
194
+ const leafHeaders = topHeaders[i]!.getLeafHeaders()
195
+ for (let j = 0; j < leafHeaders.length; j++) {
196
+ result.push(leafHeaders[j]!)
197
+ }
198
+ }
199
+ return result
200
+ }
@@ -0,0 +1,56 @@
1
+ import type {
2
+ Atom,
3
+ AtomOptions,
4
+ ReadonlyAtom,
5
+ Subscription,
6
+ } from '@tanstack/store'
7
+
8
+ export interface TableAtomOptions<T> extends AtomOptions<T> {
9
+ /**
10
+ * A debug name for the atom, useful for debugging.
11
+ */
12
+ debugName: string
13
+ }
14
+
15
+ /**
16
+ * Framework reactivity bindings used by table-core.
17
+ *
18
+ * Adapters (React, Solid, Vue, etc.) provide concrete implementations so
19
+ * core features can create derived/writable atoms and integrate with their
20
+ * scheduling primitives.
21
+ */
22
+ export interface TableReactivityBindings {
23
+ createOptionsStore: boolean
24
+ wrapExternalAtoms: boolean
25
+ addSubscription: (subscription: Subscription) => void
26
+ /**
27
+ * Creates a writable atom with an initial value.
28
+ */
29
+ createWritableAtom: <T>(
30
+ initialValue: T,
31
+ options?: TableAtomOptions<T>,
32
+ ) => Atom<T>
33
+ /**
34
+ * Creates a readonly/derived atom from a compute function.
35
+ */
36
+ createReadonlyAtom: <T>(
37
+ fn: () => T,
38
+ options?: TableAtomOptions<T>,
39
+ ) => ReadonlyAtom<T>
40
+ /**
41
+ * Evaluates a function without tracking reactive dependencies.
42
+ */
43
+ untrack: <T>(fn: () => T) => T
44
+ /**
45
+ * Batches reactive updates to avoid intermediate recomputation.
46
+ */
47
+ batch: (fn: () => void) => void
48
+ /**
49
+ * Schedules a function to run. This is used to defer updates after the current call stack (render, etc.) has finished
50
+ */
51
+ schedule: (fn: () => void) => void
52
+ /**
53
+ * Unmounts the table, performing any necessary cleanup. This is called when the table is destroyed or unmounted in the framework adapter.
54
+ */
55
+ unmount?: () => void
56
+ }