@tanstack/table-core 9.0.0-alpha.46 → 9.0.0-alpha.48

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 (339) hide show
  1. package/README.md +10 -0
  2. package/dist/core/cells/constructCell.cjs +4 -3
  3. package/dist/core/cells/constructCell.cjs.map +1 -1
  4. package/dist/core/cells/constructCell.js +4 -3
  5. package/dist/core/cells/constructCell.js.map +1 -1
  6. package/dist/core/cells/coreCellsFeature.utils.cjs +11 -8
  7. package/dist/core/cells/coreCellsFeature.utils.cjs.map +1 -1
  8. package/dist/core/cells/coreCellsFeature.utils.d.cts +11 -8
  9. package/dist/core/cells/coreCellsFeature.utils.d.ts +11 -8
  10. package/dist/core/cells/coreCellsFeature.utils.js +11 -8
  11. package/dist/core/cells/coreCellsFeature.utils.js.map +1 -1
  12. package/dist/core/columns/constructColumn.cjs +6 -4
  13. package/dist/core/columns/constructColumn.cjs.map +1 -1
  14. package/dist/core/columns/constructColumn.js +6 -4
  15. package/dist/core/columns/constructColumn.js.map +1 -1
  16. package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -6
  17. package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -6
  18. package/dist/core/columns/coreColumnsFeature.utils.cjs +47 -29
  19. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  20. package/dist/core/columns/coreColumnsFeature.utils.d.cts +37 -27
  21. package/dist/core/columns/coreColumnsFeature.utils.d.ts +37 -27
  22. package/dist/core/columns/coreColumnsFeature.utils.js +47 -29
  23. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  24. package/dist/core/headers/buildHeaderGroups.cjs +27 -19
  25. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  26. package/dist/core/headers/buildHeaderGroups.js +27 -19
  27. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  28. package/dist/core/headers/constructHeader.cjs +4 -3
  29. package/dist/core/headers/constructHeader.cjs.map +1 -1
  30. package/dist/core/headers/constructHeader.js +4 -3
  31. package/dist/core/headers/constructHeader.js.map +1 -1
  32. package/dist/core/headers/coreHeadersFeature.cjs +1 -6
  33. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  34. package/dist/core/headers/coreHeadersFeature.js +2 -7
  35. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  36. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -4
  37. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -4
  38. package/dist/core/headers/coreHeadersFeature.utils.cjs +43 -36
  39. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  40. package/dist/core/headers/coreHeadersFeature.utils.d.cts +24 -19
  41. package/dist/core/headers/coreHeadersFeature.utils.d.ts +24 -19
  42. package/dist/core/headers/coreHeadersFeature.utils.js +44 -37
  43. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  44. package/dist/core/reactivity/coreReactivityFeature.types.d.cts +4 -0
  45. package/dist/core/reactivity/coreReactivityFeature.types.d.ts +4 -0
  46. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +48 -36
  47. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  48. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +48 -36
  49. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +48 -36
  50. package/dist/core/row-models/coreRowModelsFeature.utils.js +48 -36
  51. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  52. package/dist/core/rows/constructRow.cjs +8 -6
  53. package/dist/core/rows/constructRow.cjs.map +1 -1
  54. package/dist/core/rows/constructRow.js +8 -6
  55. package/dist/core/rows/constructRow.js.map +1 -1
  56. package/dist/core/rows/coreRowsFeature.types.d.cts +4 -4
  57. package/dist/core/rows/coreRowsFeature.types.d.ts +4 -4
  58. package/dist/core/rows/coreRowsFeature.utils.cjs +43 -32
  59. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  60. package/dist/core/rows/coreRowsFeature.utils.d.cts +34 -28
  61. package/dist/core/rows/coreRowsFeature.utils.d.ts +34 -28
  62. package/dist/core/rows/coreRowsFeature.utils.js +43 -32
  63. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  64. package/dist/core/table/constructTable.cjs +9 -5
  65. package/dist/core/table/constructTable.cjs.map +1 -1
  66. package/dist/core/table/constructTable.js +9 -5
  67. package/dist/core/table/constructTable.js.map +1 -1
  68. package/dist/core/table/coreTablesFeature.types.d.cts +6 -2
  69. package/dist/core/table/coreTablesFeature.types.d.ts +6 -2
  70. package/dist/core/table/coreTablesFeature.utils.cjs +7 -3
  71. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  72. package/dist/core/table/coreTablesFeature.utils.d.cts +2 -2
  73. package/dist/core/table/coreTablesFeature.utils.d.ts +2 -2
  74. package/dist/core/table/coreTablesFeature.utils.js +7 -3
  75. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  76. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +16 -10
  77. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +16 -10
  78. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +26 -18
  79. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  80. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +26 -18
  81. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +26 -18
  82. package/dist/features/column-faceting/columnFacetingFeature.utils.js +26 -18
  83. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  84. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +8 -5
  85. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  86. package/dist/features/column-faceting/createFacetedMinMaxValues.js +8 -5
  87. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  88. package/dist/features/column-faceting/createFacetedRowModel.cjs +8 -3
  89. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  90. package/dist/features/column-faceting/createFacetedRowModel.js +8 -3
  91. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  92. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +7 -4
  93. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  94. package/dist/features/column-faceting/createFacetedUniqueValues.js +7 -4
  95. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  96. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +21 -11
  97. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +21 -11
  98. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +39 -28
  99. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  100. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +39 -28
  101. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +39 -28
  102. package/dist/features/column-filtering/columnFilteringFeature.utils.js +39 -28
  103. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  104. package/dist/features/column-filtering/createFilteredRowModel.cjs +11 -5
  105. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  106. package/dist/features/column-filtering/createFilteredRowModel.js +11 -5
  107. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  108. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +18 -14
  109. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +18 -14
  110. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +55 -43
  111. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  112. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +55 -43
  113. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +55 -43
  114. package/dist/features/column-grouping/columnGroupingFeature.utils.js +55 -43
  115. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  116. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +14 -5
  117. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +14 -5
  118. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +46 -29
  119. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
  120. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +30 -23
  121. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +30 -23
  122. package/dist/features/column-ordering/columnOrderingFeature.utils.js +46 -29
  123. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
  124. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +43 -31
  125. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +43 -31
  126. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +152 -115
  127. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  128. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +116 -95
  129. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +116 -95
  130. package/dist/features/column-pinning/columnPinningFeature.utils.js +153 -116
  131. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  132. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +9 -9
  133. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +9 -9
  134. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +28 -19
  135. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  136. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +28 -19
  137. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +28 -19
  138. package/dist/features/column-resizing/columnResizingFeature.utils.js +28 -19
  139. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  140. package/dist/features/column-sizing/columnSizingFeature.cjs +28 -4
  141. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  142. package/dist/features/column-sizing/columnSizingFeature.js +28 -4
  143. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  144. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +19 -12
  145. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +19 -12
  146. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +52 -41
  147. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  148. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +52 -41
  149. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +52 -41
  150. package/dist/features/column-sizing/columnSizingFeature.utils.js +52 -41
  151. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  152. package/dist/features/column-visibility/columnVisibilityFeature.cjs +23 -14
  153. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  154. package/dist/features/column-visibility/columnVisibilityFeature.js +24 -15
  155. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  156. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +19 -12
  157. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +19 -12
  158. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +91 -52
  159. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  160. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +63 -40
  161. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +63 -40
  162. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +91 -53
  163. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  164. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +10 -5
  165. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +10 -5
  166. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +20 -14
  167. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  168. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +20 -14
  169. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +20 -14
  170. package/dist/features/global-filtering/globalFilteringFeature.utils.js +20 -14
  171. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  172. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +16 -15
  173. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +16 -15
  174. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +58 -43
  175. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  176. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +56 -41
  177. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +56 -41
  178. package/dist/features/row-expanding/rowExpandingFeature.utils.js +58 -43
  179. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  180. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +19 -12
  181. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +19 -12
  182. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +49 -32
  183. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
  184. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +49 -32
  185. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +49 -32
  186. package/dist/features/row-pagination/rowPaginationFeature.utils.js +49 -32
  187. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
  188. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +12 -8
  189. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +12 -8
  190. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +52 -36
  191. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  192. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +39 -29
  193. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +39 -29
  194. package/dist/features/row-pinning/rowPinningFeature.utils.js +52 -36
  195. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  196. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +30 -24
  197. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +30 -24
  198. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +95 -72
  199. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  200. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +89 -69
  201. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +89 -69
  202. package/dist/features/row-selection/rowSelectionFeature.utils.js +95 -72
  203. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  204. package/dist/features/row-sorting/createSortedRowModel.cjs +13 -8
  205. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  206. package/dist/features/row-sorting/createSortedRowModel.js +13 -8
  207. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  208. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +10 -8
  209. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +10 -8
  210. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +63 -46
  211. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  212. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +61 -44
  213. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +61 -44
  214. package/dist/features/row-sorting/rowSortingFeature.utils.js +63 -46
  215. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  216. package/dist/fns/aggregationFns.cjs +47 -16
  217. package/dist/fns/aggregationFns.cjs.map +1 -1
  218. package/dist/fns/aggregationFns.d.cts +33 -9
  219. package/dist/fns/aggregationFns.d.ts +33 -9
  220. package/dist/fns/aggregationFns.js +47 -17
  221. package/dist/fns/aggregationFns.js.map +1 -1
  222. package/dist/fns/filterFns.cjs +48 -17
  223. package/dist/fns/filterFns.cjs.map +1 -1
  224. package/dist/fns/filterFns.d.cts +42 -15
  225. package/dist/fns/filterFns.d.ts +42 -15
  226. package/dist/fns/filterFns.js +48 -17
  227. package/dist/fns/filterFns.js.map +1 -1
  228. package/dist/helpers/columnHelper.cjs +9 -4
  229. package/dist/helpers/columnHelper.cjs.map +1 -1
  230. package/dist/helpers/columnHelper.d.cts +9 -4
  231. package/dist/helpers/columnHelper.d.ts +9 -4
  232. package/dist/helpers/columnHelper.js +9 -4
  233. package/dist/helpers/columnHelper.js.map +1 -1
  234. package/dist/helpers/tableOptions.cjs.map +1 -1
  235. package/dist/helpers/tableOptions.d.cts +12 -9
  236. package/dist/helpers/tableOptions.d.ts +12 -9
  237. package/dist/helpers/tableOptions.js.map +1 -1
  238. package/dist/index.cjs +0 -4
  239. package/dist/index.d.cts +2 -2
  240. package/dist/index.d.ts +2 -2
  241. package/dist/index.js +2 -2
  242. package/dist/static-functions.cjs +1 -0
  243. package/dist/static-functions.d.cts +2 -2
  244. package/dist/static-functions.d.ts +2 -2
  245. package/dist/static-functions.js +2 -2
  246. package/dist/store-reactivity-bindings.cjs +1 -0
  247. package/dist/store-reactivity-bindings.cjs.map +1 -1
  248. package/dist/store-reactivity-bindings.js +1 -0
  249. package/dist/store-reactivity-bindings.js.map +1 -1
  250. package/dist/types/ColumnDef.d.cts +38 -0
  251. package/dist/types/ColumnDef.d.ts +38 -0
  252. package/dist/types/TableOptions.d.cts +15 -0
  253. package/dist/types/TableOptions.d.ts +15 -0
  254. package/dist/types/TableState.d.cts +12 -0
  255. package/dist/types/TableState.d.ts +12 -0
  256. package/dist/utils.cjs +18 -39
  257. package/dist/utils.cjs.map +1 -1
  258. package/dist/utils.d.cts +1 -23
  259. package/dist/utils.d.ts +1 -23
  260. package/dist/utils.js +19 -36
  261. package/dist/utils.js.map +1 -1
  262. package/package.json +5 -3
  263. package/skills/column-definitions/SKILL.md +333 -0
  264. package/skills/column-layout/SKILL.md +328 -0
  265. package/skills/column-layout/references/subsystems.md +220 -0
  266. package/skills/customizing-feature-behavior/SKILL.md +416 -0
  267. package/skills/filtering/SKILL.md +357 -0
  268. package/skills/filtering/references/faceting-and-fuzzy.md +191 -0
  269. package/skills/grouping/SKILL.md +448 -0
  270. package/skills/migrate-v8-to-v9/SKILL.md +495 -0
  271. package/skills/pagination/SKILL.md +385 -0
  272. package/skills/row-expanding/SKILL.md +348 -0
  273. package/skills/row-pinning/SKILL.md +269 -0
  274. package/skills/row-selection/SKILL.md +391 -0
  275. package/skills/setup/SKILL.md +400 -0
  276. package/skills/sorting/SKILL.md +344 -0
  277. package/skills/state-management/SKILL.md +388 -0
  278. package/src/core/cells/constructCell.ts +3 -2
  279. package/src/core/cells/coreCellsFeature.utils.ts +11 -8
  280. package/src/core/columns/constructColumn.ts +5 -3
  281. package/src/core/columns/coreColumnsFeature.types.ts +7 -6
  282. package/src/core/columns/coreColumnsFeature.utils.ts +43 -29
  283. package/src/core/headers/buildHeaderGroups.ts +29 -30
  284. package/src/core/headers/constructHeader.ts +3 -2
  285. package/src/core/headers/coreHeadersFeature.ts +2 -27
  286. package/src/core/headers/coreHeadersFeature.types.ts +6 -4
  287. package/src/core/headers/coreHeadersFeature.utils.ts +52 -61
  288. package/src/core/reactivity/coreReactivityFeature.types.ts +4 -0
  289. package/src/core/row-models/coreRowModelsFeature.utils.ts +48 -36
  290. package/src/core/rows/constructRow.ts +6 -4
  291. package/src/core/rows/coreRowsFeature.types.ts +4 -4
  292. package/src/core/rows/coreRowsFeature.utils.ts +45 -32
  293. package/src/core/table/constructTable.ts +6 -4
  294. package/src/core/table/coreTablesFeature.types.ts +6 -2
  295. package/src/core/table/coreTablesFeature.utils.ts +5 -3
  296. package/src/features/column-faceting/columnFacetingFeature.types.ts +16 -10
  297. package/src/features/column-faceting/columnFacetingFeature.utils.ts +26 -18
  298. package/src/features/column-faceting/createFacetedMinMaxValues.ts +8 -10
  299. package/src/features/column-faceting/createFacetedRowModel.ts +10 -6
  300. package/src/features/column-faceting/createFacetedUniqueValues.ts +4 -3
  301. package/src/features/column-filtering/columnFilteringFeature.types.ts +21 -11
  302. package/src/features/column-filtering/columnFilteringFeature.utils.ts +39 -28
  303. package/src/features/column-filtering/createFilteredRowModel.ts +14 -8
  304. package/src/features/column-grouping/columnGroupingFeature.types.ts +18 -14
  305. package/src/features/column-grouping/columnGroupingFeature.utils.ts +55 -43
  306. package/src/features/column-ordering/columnOrderingFeature.types.ts +14 -5
  307. package/src/features/column-ordering/columnOrderingFeature.utils.ts +44 -29
  308. package/src/features/column-pinning/columnPinningFeature.types.ts +43 -31
  309. package/src/features/column-pinning/columnPinningFeature.utils.ts +164 -128
  310. package/src/features/column-resizing/columnResizingFeature.types.ts +9 -9
  311. package/src/features/column-resizing/columnResizingFeature.utils.ts +28 -19
  312. package/src/features/column-sizing/columnSizingFeature.ts +16 -0
  313. package/src/features/column-sizing/columnSizingFeature.types.ts +19 -12
  314. package/src/features/column-sizing/columnSizingFeature.utils.ts +52 -41
  315. package/src/features/column-visibility/columnVisibilityFeature.ts +8 -0
  316. package/src/features/column-visibility/columnVisibilityFeature.types.ts +22 -12
  317. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +101 -56
  318. package/src/features/global-filtering/globalFilteringFeature.types.ts +10 -5
  319. package/src/features/global-filtering/globalFilteringFeature.utils.ts +20 -14
  320. package/src/features/row-expanding/rowExpandingFeature.types.ts +16 -15
  321. package/src/features/row-expanding/rowExpandingFeature.utils.ts +58 -43
  322. package/src/features/row-pagination/rowPaginationFeature.types.ts +19 -12
  323. package/src/features/row-pagination/rowPaginationFeature.utils.ts +49 -32
  324. package/src/features/row-pinning/rowPinningFeature.types.ts +12 -8
  325. package/src/features/row-pinning/rowPinningFeature.utils.ts +59 -47
  326. package/src/features/row-selection/rowSelectionFeature.types.ts +30 -24
  327. package/src/features/row-selection/rowSelectionFeature.utils.ts +109 -88
  328. package/src/features/row-sorting/createSortedRowModel.ts +16 -13
  329. package/src/features/row-sorting/rowSortingFeature.types.ts +10 -8
  330. package/src/features/row-sorting/rowSortingFeature.utils.ts +63 -46
  331. package/src/fns/aggregationFns.ts +53 -17
  332. package/src/fns/filterFns.ts +48 -17
  333. package/src/helpers/columnHelper.ts +9 -4
  334. package/src/helpers/tableOptions.ts +12 -9
  335. package/src/store-reactivity-bindings.ts +1 -0
  336. package/src/types/ColumnDef.ts +38 -0
  337. package/src/types/TableOptions.ts +15 -0
  338. package/src/types/TableState.ts +12 -0
  339. package/src/utils.ts +19 -46
@@ -4,26 +4,28 @@ const require_constructColumn = require('./constructColumn.cjs');
4
4
 
5
5
  //#region src/core/columns/coreColumnsFeature.utils.ts
6
6
  /**
7
- * Returns flat columns for a column.
7
+ * Flattens this column and every descendant column into a single array.
8
8
  *
9
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
9
+ * Group columns appear before their child columns, which matches the normalized
10
+ * column hierarchy produced during table construction.
10
11
  *
11
12
  * @example
12
13
  * ```ts
13
- * const value = column_getFlatColumns(column)
14
+ * const flatColumns = column_getFlatColumns(column)
14
15
  * ```
15
16
  */
16
17
  function column_getFlatColumns(column) {
17
18
  return [column, ...column.columns.flatMap((col) => col.getFlatColumns())];
18
19
  }
19
20
  /**
20
- * Returns leaf columns for a column.
21
+ * Collects the terminal leaf columns below this column.
21
22
  *
22
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
23
+ * Group columns return their ordered descendants. Non-group columns return an
24
+ * array containing only the column itself.
23
25
  *
24
26
  * @example
25
27
  * ```ts
26
- * const value = column_getLeafColumns(column)
28
+ * const leafColumns = column_getLeafColumns(column)
27
29
  * ```
28
30
  */
29
31
  function column_getLeafColumns(column) {
@@ -34,13 +36,15 @@ function column_getLeafColumns(column) {
34
36
  return [column];
35
37
  }
36
38
  /**
37
- * Returns default column def for the table.
39
+ * Merges built-in, feature, and user default column definitions.
38
40
  *
39
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
41
+ * Built-in defaults provide a header and fallback cell renderer, feature
42
+ * defaults can add feature-specific column options, and
43
+ * `options.defaultColumn` wins last.
40
44
  *
41
45
  * @example
42
46
  * ```ts
43
- * const value = table_getDefaultColumnDef(table)
47
+ * const defaultColumn = table_getDefaultColumnDef(table)
44
48
  * ```
45
49
  */
46
50
  function table_getDefaultColumnDef(table) {
@@ -63,13 +67,14 @@ function table_getDefaultColumnDef(table) {
63
67
  };
64
68
  }
65
69
  /**
66
- * Returns all columns for the table.
70
+ * Normalizes `options.columns` into the table's nested column tree.
67
71
  *
68
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
72
+ * Each column definition is constructed with its parent and depth, and group
73
+ * column children are recursively constructed.
69
74
  *
70
75
  * @example
71
76
  * ```ts
72
- * const value = table_getAllColumns(table)
77
+ * const columns = table_getAllColumns(table)
73
78
  * ```
74
79
  */
75
80
  function table_getAllColumns(table) {
@@ -84,41 +89,48 @@ function table_getAllColumns(table) {
84
89
  return recurseColumns(table.options.columns);
85
90
  }
86
91
  /**
87
- * Returns all flat columns for the table.
92
+ * Flattens every table column, including group columns and leaf columns.
88
93
  *
89
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
94
+ * Use this when parent/group columns must be included in addition to data leaf
95
+ * columns.
90
96
  *
91
97
  * @example
92
98
  * ```ts
93
- * const value = table_getAllFlatColumns(table)
99
+ * const flatColumns = table_getAllFlatColumns(table)
94
100
  * ```
95
101
  */
96
102
  function table_getAllFlatColumns(table) {
97
103
  return table.getAllColumns().flatMap((column) => column.getFlatColumns());
98
104
  }
99
105
  /**
100
- * Returns all flat columns by id for the table.
106
+ * Builds an id lookup for every flat column in the table.
101
107
  *
102
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
108
+ * Group columns and leaf columns are included. Later columns with the same id
109
+ * replace earlier entries.
103
110
  *
104
111
  * @example
105
112
  * ```ts
106
- * const value = table_getAllFlatColumnsById(table)
113
+ * const columnsById = table_getAllFlatColumnsById(table)
107
114
  * ```
108
115
  */
109
116
  function table_getAllFlatColumnsById(table) {
110
117
  const result = {};
111
- for (const column of table.getAllFlatColumns()) result[column.id] = column;
118
+ const flatColumns = table.getAllFlatColumns();
119
+ for (let i = 0; i < flatColumns.length; i++) {
120
+ const column = flatColumns[i];
121
+ result[column.id] = column;
122
+ }
112
123
  return result;
113
124
  }
114
125
  /**
115
- * Returns all leaf columns for the table.
126
+ * Collects all terminal leaf columns in their current table order.
116
127
  *
117
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
128
+ * Column ordering features can reorder the collected leaves before the result
129
+ * is returned.
118
130
  *
119
131
  * @example
120
132
  * ```ts
121
- * const value = table_getAllLeafColumns(table)
133
+ * const leafColumns = table_getAllLeafColumns(table)
122
134
  * ```
123
135
  */
124
136
  function table_getAllLeafColumns(table) {
@@ -126,28 +138,34 @@ function table_getAllLeafColumns(table) {
126
138
  return require_utils.callMemoOrStaticFn(table, "getOrderColumns", require_columnOrderingFeature_utils.table_getOrderColumnsFn)(leafColumns);
127
139
  }
128
140
  /**
129
- * Returns all leaf columns by id for the table.
141
+ * Builds an id lookup for terminal leaf columns only.
130
142
  *
131
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
143
+ * Parent/group columns are excluded, making this lookup appropriate for row
144
+ * cells and feature state keyed by data columns.
132
145
  *
133
146
  * @example
134
147
  * ```ts
135
- * const value = table_getAllLeafColumnsById(table)
148
+ * const leavesById = table_getAllLeafColumnsById(table)
136
149
  * ```
137
150
  */
138
151
  function table_getAllLeafColumnsById(table) {
139
152
  const result = {};
140
- for (const column of table.getAllLeafColumns()) result[column.id] = column;
153
+ const leafColumns = table.getAllLeafColumns();
154
+ for (let i = 0; i < leafColumns.length; i++) {
155
+ const column = leafColumns[i];
156
+ result[column.id] = column;
157
+ }
141
158
  return result;
142
159
  }
143
160
  /**
144
- * Returns column for the table.
161
+ * Looks up a column by id from the flat column map.
145
162
  *
146
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
163
+ * The lookup can return group columns or leaf columns. In development, a
164
+ * missing id logs a warning to help catch stale column references.
147
165
  *
148
166
  * @example
149
167
  * ```ts
150
- * const value = table_getColumn(table)
168
+ * const column = table_getColumn(table, 'firstName')
151
169
  * ```
152
170
  */
153
171
  function table_getColumn(table, columnId) {
@@ -1 +1 @@
1
- {"version":3,"file":"coreColumnsFeature.utils.cjs","names":["callMemoOrStaticFn","table_getOrderColumnsFn","constructColumn"],"sources":["../../../src/core/columns/coreColumnsFeature.utils.ts"],"sourcesContent":["import { callMemoOrStaticFn } from '../../utils'\nimport { table_getOrderColumnsFn } from '../../features/column-ordering/columnOrderingFeature.utils'\nimport { constructColumn } from './constructColumn'\nimport type { Table_Internal } from '../../types/Table'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type {\n ColumnDef,\n ColumnDefResolved,\n GroupColumnDef,\n} from '../../types/ColumnDef'\nimport type { Column } from '../../types/Column'\n\n/**\n * Returns flat columns for a column.\n *\n * This derives the value from the column definition, table options, and the feature state atoms registered on the table.\n *\n * @example\n * ```ts\n * const value = column_getFlatColumns(column)\n * ```\n */\nexport function column_getFlatColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column<TFeatures, TData, TValue>,\n): Array<Column<TFeatures, TData, TValue>> {\n return [column, ...column.columns.flatMap((col) => col.getFlatColumns())]\n}\n\n/**\n * Returns leaf columns for a column.\n *\n * This derives the value from the column definition, table options, and the feature state atoms registered on the table.\n *\n * @example\n * ```ts\n * const value = column_getLeafColumns(column)\n * ```\n */\nexport function column_getLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column<TFeatures, TData, TValue>,\n): Array<Column<TFeatures, TData, TValue>> {\n if (column.columns.length) {\n const leafColumns = column.columns.flatMap(\n (col) => col.getLeafColumns(), // recursive\n )\n\n return callMemoOrStaticFn(\n column.table,\n 'getOrderColumns',\n table_getOrderColumnsFn,\n )(leafColumns as any) as any\n }\n\n return [column]\n}\n\n/**\n * Returns default column def for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getDefaultColumnDef(table)\n * ```\n */\nexport function table_getDefaultColumnDef<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Partial<ColumnDef<TFeatures, TData, unknown>> {\n return {\n header: (props) => {\n const resolvedColumnDef = props.header.column\n .columnDef as ColumnDefResolved<{}, TData>\n\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey\n }\n\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id\n }\n\n return null\n },\n cell: (props) => props.renderValue<any>()?.toString?.() ?? null,\n ...Object.values(table._features).reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef?.())\n }, {}),\n ...table.options.defaultColumn,\n } as Partial<ColumnDef<TFeatures, TData, unknown>>\n}\n\n/**\n * Returns all columns for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getAllColumns(table)\n * ```\n */\nexport function table_getAllColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<Column<TFeatures, TData, unknown>> {\n const recurseColumns = (\n colDefs: ReadonlyArray<ColumnDef<TFeatures, TData, unknown>>,\n parent?: Column<TFeatures, TData, unknown>,\n depth = 0,\n ): Array<Column<TFeatures, TData, unknown>> => {\n return colDefs.map((columnDef) => {\n const column = constructColumn(table, columnDef, depth, parent)\n\n const groupingColumnDef = columnDef as GroupColumnDef<\n TFeatures,\n TData,\n unknown\n >\n\n column.columns = groupingColumnDef.columns\n ? recurseColumns(groupingColumnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(table.options.columns)\n}\n\n/**\n * Returns all flat columns for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getAllFlatColumns(table)\n * ```\n */\nexport function table_getAllFlatColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<Column<TFeatures, TData, unknown>> {\n return table.getAllColumns().flatMap((column) => column.getFlatColumns())\n}\n\n/**\n * Returns all flat columns by id for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getAllFlatColumnsById(table)\n * ```\n */\nexport function table_getAllFlatColumnsById<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Record<string, Column<TFeatures, TData, unknown>> {\n const result: Record<string, Column<TFeatures, TData, unknown>> = {}\n for (const column of table.getAllFlatColumns()) {\n result[column.id] = column\n }\n return result\n}\n\n/**\n * Returns all leaf columns for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getAllLeafColumns(table)\n * ```\n */\nexport function table_getAllLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<Column<TFeatures, TData, unknown>> {\n const leafColumns = table.getAllColumns().flatMap(\n (c) => c.getLeafColumns(), // recursive\n )\n return callMemoOrStaticFn(\n table,\n 'getOrderColumns',\n table_getOrderColumnsFn,\n )(leafColumns)\n}\n\n/**\n * Returns all leaf columns by id for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getAllLeafColumnsById(table)\n * ```\n */\nexport function table_getAllLeafColumnsById<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Record<string, Column<TFeatures, TData, unknown>> {\n const result: Record<string, Column<TFeatures, TData, unknown>> = {}\n for (const column of table.getAllLeafColumns()) {\n result[column.id] = column\n }\n return result\n}\n\n/**\n * Returns column for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getColumn(table)\n * ```\n */\nexport function table_getColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n columnId: string,\n): Column<TFeatures, TData, unknown> | undefined {\n const column = table.getAllFlatColumnsById()[columnId]\n\n if (process.env.NODE_ENV === 'development' && !column) {\n console.warn(`[Table] Column with id '${columnId}' does not exist.`)\n }\n\n return column\n}\n"],"mappings":";;;;;;;;;;;;;;;AAuBA,SAAgB,sBAKd,QACyC;CACzC,OAAO,CAAC,QAAQ,GAAG,OAAO,QAAQ,SAAS,QAAQ,IAAI,gBAAgB,CAAC,CAAC;;;;;;;;;;;;AAa3E,SAAgB,sBAKd,QACyC;CACzC,IAAI,OAAO,QAAQ,QAAQ;EACzB,MAAM,cAAc,OAAO,QAAQ,SAChC,QAAQ,IAAI,gBAAgB,CAC9B;EAED,OAAOA,iCACL,OAAO,OACP,mBACAC,4DACD,CAAC,YAAmB;;CAGvB,OAAO,CAAC,OAAO;;;;;;;;;;;;AAajB,SAAgB,0BAId,OAC+C;CAC/C,OAAO;EACL,SAAS,UAAU;GACjB,MAAM,oBAAoB,MAAM,OAAO,OACpC;GAEH,IAAI,kBAAkB,aACpB,OAAO,kBAAkB;GAG3B,IAAI,kBAAkB,YACpB,OAAO,kBAAkB;GAG3B,OAAO;;EAET,OAAO,UAAU;;uCAAM,aAAkB,2FAAE,gHAAY,KAAI;;EAC3D,GAAG,OAAO,OAAO,MAAM,UAAU,CAAC,QAAQ,KAAK,YAAY;;GACzD,OAAO,OAAO,OAAO,8BAAK,QAAQ,gHAAuB,CAAC;KACzD,EAAE,CAAC;EACN,GAAG,MAAM,QAAQ;EAClB;;;;;;;;;;;;AAaH,SAAgB,oBAId,OAC0C;CAC1C,MAAM,kBACJ,SACA,QACA,QAAQ,MACqC;EAC7C,OAAO,QAAQ,KAAK,cAAc;GAChC,MAAM,SAASC,wCAAgB,OAAO,WAAW,OAAO,OAAO;GAE/D,MAAM,oBAAoB;GAM1B,OAAO,UAAU,kBAAkB,UAC/B,eAAe,kBAAkB,SAAS,QAAQ,QAAQ,EAAE,GAC5D,EAAE;GAEN,OAAO;IACP;;CAGJ,OAAO,eAAe,MAAM,QAAQ,QAAQ;;;;;;;;;;;;AAa9C,SAAgB,wBAId,OAC0C;CAC1C,OAAO,MAAM,eAAe,CAAC,SAAS,WAAW,OAAO,gBAAgB,CAAC;;;;;;;;;;;;AAa3E,SAAgB,4BAId,OACmD;CACnD,MAAM,SAA4D,EAAE;CACpE,KAAK,MAAM,UAAU,MAAM,mBAAmB,EAC5C,OAAO,OAAO,MAAM;CAEtB,OAAO;;;;;;;;;;;;AAaT,SAAgB,wBAId,OAC0C;CAC1C,MAAM,cAAc,MAAM,eAAe,CAAC,SACvC,MAAM,EAAE,gBAAgB,CAC1B;CACD,OAAOF,iCACL,OACA,mBACAC,4DACD,CAAC,YAAY;;;;;;;;;;;;AAahB,SAAgB,4BAId,OACmD;CACnD,MAAM,SAA4D,EAAE;CACpE,KAAK,MAAM,UAAU,MAAM,mBAAmB,EAC5C,OAAO,OAAO,MAAM;CAEtB,OAAO;;;;;;;;;;;;AAaT,SAAgB,gBAId,OACA,UAC+C;CAC/C,MAAM,SAAS,MAAM,uBAAuB,CAAC;CAE7C,IAAI,QAAQ,IAAI,aAAa,iBAAiB,CAAC,QAC7C,QAAQ,KAAK,2BAA2B,SAAS,mBAAmB;CAGtE,OAAO"}
1
+ {"version":3,"file":"coreColumnsFeature.utils.cjs","names":["callMemoOrStaticFn","table_getOrderColumnsFn","constructColumn"],"sources":["../../../src/core/columns/coreColumnsFeature.utils.ts"],"sourcesContent":["import { callMemoOrStaticFn } from '../../utils'\nimport { table_getOrderColumnsFn } from '../../features/column-ordering/columnOrderingFeature.utils'\nimport { constructColumn } from './constructColumn'\nimport type { Table_Internal } from '../../types/Table'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type {\n ColumnDef,\n ColumnDefResolved,\n GroupColumnDef,\n} from '../../types/ColumnDef'\nimport type { Column } from '../../types/Column'\n\n/**\n * Flattens this column and every descendant column into a single array.\n *\n * Group columns appear before their child columns, which matches the normalized\n * column hierarchy produced during table construction.\n *\n * @example\n * ```ts\n * const flatColumns = column_getFlatColumns(column)\n * ```\n */\nexport function column_getFlatColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column<TFeatures, TData, TValue>,\n): Array<Column<TFeatures, TData, TValue>> {\n return [column, ...column.columns.flatMap((col) => col.getFlatColumns())]\n}\n\n/**\n * Collects the terminal leaf columns below this column.\n *\n * Group columns return their ordered descendants. Non-group columns return an\n * array containing only the column itself.\n *\n * @example\n * ```ts\n * const leafColumns = column_getLeafColumns(column)\n * ```\n */\nexport function column_getLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column<TFeatures, TData, TValue>,\n): Array<Column<TFeatures, TData, TValue>> {\n if (column.columns.length) {\n const leafColumns = column.columns.flatMap(\n (col) => col.getLeafColumns(), // recursive\n )\n\n return callMemoOrStaticFn(\n column.table,\n 'getOrderColumns',\n table_getOrderColumnsFn,\n )(leafColumns as any) as any\n }\n\n return [column]\n}\n\n/**\n * Merges built-in, feature, and user default column definitions.\n *\n * Built-in defaults provide a header and fallback cell renderer, feature\n * defaults can add feature-specific column options, and\n * `options.defaultColumn` wins last.\n *\n * @example\n * ```ts\n * const defaultColumn = table_getDefaultColumnDef(table)\n * ```\n */\nexport function table_getDefaultColumnDef<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Partial<ColumnDef<TFeatures, TData, unknown>> {\n return {\n header: (props) => {\n const resolvedColumnDef = props.header.column\n .columnDef as ColumnDefResolved<{}, TData>\n\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey\n }\n\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id\n }\n\n return null\n },\n cell: (props) => props.renderValue<any>()?.toString?.() ?? null,\n ...Object.values(table._features).reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef?.())\n }, {}),\n ...table.options.defaultColumn,\n } as Partial<ColumnDef<TFeatures, TData, unknown>>\n}\n\n/**\n * Normalizes `options.columns` into the table's nested column tree.\n *\n * Each column definition is constructed with its parent and depth, and group\n * column children are recursively constructed.\n *\n * @example\n * ```ts\n * const columns = table_getAllColumns(table)\n * ```\n */\nexport function table_getAllColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<Column<TFeatures, TData, unknown>> {\n const recurseColumns = (\n colDefs: ReadonlyArray<ColumnDef<TFeatures, TData, unknown>>,\n parent?: Column<TFeatures, TData, unknown>,\n depth = 0,\n ): Array<Column<TFeatures, TData, unknown>> => {\n return colDefs.map((columnDef) => {\n const column = constructColumn(table, columnDef, depth, parent)\n\n const groupingColumnDef = columnDef as GroupColumnDef<\n TFeatures,\n TData,\n unknown\n >\n\n column.columns = groupingColumnDef.columns\n ? recurseColumns(groupingColumnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(table.options.columns)\n}\n\n/**\n * Flattens every table column, including group columns and leaf columns.\n *\n * Use this when parent/group columns must be included in addition to data leaf\n * columns.\n *\n * @example\n * ```ts\n * const flatColumns = table_getAllFlatColumns(table)\n * ```\n */\nexport function table_getAllFlatColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<Column<TFeatures, TData, unknown>> {\n return table.getAllColumns().flatMap((column) => column.getFlatColumns())\n}\n\n/**\n * Builds an id lookup for every flat column in the table.\n *\n * Group columns and leaf columns are included. Later columns with the same id\n * replace earlier entries.\n *\n * @example\n * ```ts\n * const columnsById = table_getAllFlatColumnsById(table)\n * ```\n */\nexport function table_getAllFlatColumnsById<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Record<string, Column<TFeatures, TData, unknown>> {\n const result: Record<string, Column<TFeatures, TData, unknown>> = {}\n const flatColumns = table.getAllFlatColumns()\n for (let i = 0; i < flatColumns.length; i++) {\n const column = flatColumns[i]!\n result[column.id] = column\n }\n return result\n}\n\n/**\n * Collects all terminal leaf columns in their current table order.\n *\n * Column ordering features can reorder the collected leaves before the result\n * is returned.\n *\n * @example\n * ```ts\n * const leafColumns = table_getAllLeafColumns(table)\n * ```\n */\nexport function table_getAllLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<Column<TFeatures, TData, unknown>> {\n const leafColumns = table.getAllColumns().flatMap(\n (c) => c.getLeafColumns(), // recursive\n )\n return callMemoOrStaticFn(\n table,\n 'getOrderColumns',\n table_getOrderColumnsFn,\n )(leafColumns)\n}\n\n/**\n * Builds an id lookup for terminal leaf columns only.\n *\n * Parent/group columns are excluded, making this lookup appropriate for row\n * cells and feature state keyed by data columns.\n *\n * @example\n * ```ts\n * const leavesById = table_getAllLeafColumnsById(table)\n * ```\n */\nexport function table_getAllLeafColumnsById<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Record<string, Column<TFeatures, TData, unknown>> {\n const result: Record<string, Column<TFeatures, TData, unknown>> = {}\n const leafColumns = table.getAllLeafColumns()\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]!\n result[column.id] = column\n }\n return result\n}\n\n/**\n * Looks up a column by id from the flat column map.\n *\n * The lookup can return group columns or leaf columns. In development, a\n * missing id logs a warning to help catch stale column references.\n *\n * @example\n * ```ts\n * const column = table_getColumn(table, 'firstName')\n * ```\n */\nexport function table_getColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n columnId: string,\n): Column<TFeatures, TData, unknown> | undefined {\n const column = table.getAllFlatColumnsById()[columnId]\n\n if (process.env.NODE_ENV === 'development' && !column) {\n console.warn(`[Table] Column with id '${columnId}' does not exist.`)\n }\n\n return column\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAwBA,SAAgB,sBAKd,QACyC;CACzC,OAAO,CAAC,QAAQ,GAAG,OAAO,QAAQ,SAAS,QAAQ,IAAI,gBAAgB,CAAC,CAAC;;;;;;;;;;;;;AAc3E,SAAgB,sBAKd,QACyC;CACzC,IAAI,OAAO,QAAQ,QAAQ;EACzB,MAAM,cAAc,OAAO,QAAQ,SAChC,QAAQ,IAAI,gBAAgB,CAC9B;EAED,OAAOA,iCACL,OAAO,OACP,mBACAC,4DACD,CAAC,YAAmB;;CAGvB,OAAO,CAAC,OAAO;;;;;;;;;;;;;;AAejB,SAAgB,0BAId,OAC+C;CAC/C,OAAO;EACL,SAAS,UAAU;GACjB,MAAM,oBAAoB,MAAM,OAAO,OACpC;GAEH,IAAI,kBAAkB,aACpB,OAAO,kBAAkB;GAG3B,IAAI,kBAAkB,YACpB,OAAO,kBAAkB;GAG3B,OAAO;;EAET,OAAO,UAAU;;uCAAM,aAAkB,2FAAE,gHAAY,KAAI;;EAC3D,GAAG,OAAO,OAAO,MAAM,UAAU,CAAC,QAAQ,KAAK,YAAY;;GACzD,OAAO,OAAO,OAAO,8BAAK,QAAQ,gHAAuB,CAAC;KACzD,EAAE,CAAC;EACN,GAAG,MAAM,QAAQ;EAClB;;;;;;;;;;;;;AAcH,SAAgB,oBAId,OAC0C;CAC1C,MAAM,kBACJ,SACA,QACA,QAAQ,MACqC;EAC7C,OAAO,QAAQ,KAAK,cAAc;GAChC,MAAM,SAASC,wCAAgB,OAAO,WAAW,OAAO,OAAO;GAE/D,MAAM,oBAAoB;GAM1B,OAAO,UAAU,kBAAkB,UAC/B,eAAe,kBAAkB,SAAS,QAAQ,QAAQ,EAAE,GAC5D,EAAE;GAEN,OAAO;IACP;;CAGJ,OAAO,eAAe,MAAM,QAAQ,QAAQ;;;;;;;;;;;;;AAc9C,SAAgB,wBAId,OAC0C;CAC1C,OAAO,MAAM,eAAe,CAAC,SAAS,WAAW,OAAO,gBAAgB,CAAC;;;;;;;;;;;;;AAc3E,SAAgB,4BAId,OACmD;CACnD,MAAM,SAA4D,EAAE;CACpE,MAAM,cAAc,MAAM,mBAAmB;CAC7C,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;EAC3C,MAAM,SAAS,YAAY;EAC3B,OAAO,OAAO,MAAM;;CAEtB,OAAO;;;;;;;;;;;;;AAcT,SAAgB,wBAId,OAC0C;CAC1C,MAAM,cAAc,MAAM,eAAe,CAAC,SACvC,MAAM,EAAE,gBAAgB,CAC1B;CACD,OAAOF,iCACL,OACA,mBACAC,4DACD,CAAC,YAAY;;;;;;;;;;;;;AAchB,SAAgB,4BAId,OACmD;CACnD,MAAM,SAA4D,EAAE;CACpE,MAAM,cAAc,MAAM,mBAAmB;CAC7C,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;EAC3C,MAAM,SAAS,YAAY;EAC3B,OAAO,OAAO,MAAM;;CAEtB,OAAO;;;;;;;;;;;;;AAcT,SAAgB,gBAId,OACA,UAC+C;CAC/C,MAAM,SAAS,MAAM,uBAAuB,CAAC;CAE7C,IAAI,QAAQ,IAAI,aAAa,iBAAiB,CAAC,QAC7C,QAAQ,KAAK,2BAA2B,SAAS,mBAAmB;CAGtE,OAAO"}
@@ -6,101 +6,111 @@ import { Table_Internal } from "../../types/Table.cjs";
6
6
 
7
7
  //#region src/core/columns/coreColumnsFeature.utils.d.ts
8
8
  /**
9
- * Returns flat columns for a column.
9
+ * Flattens this column and every descendant column into a single array.
10
10
  *
11
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
11
+ * Group columns appear before their child columns, which matches the normalized
12
+ * column hierarchy produced during table construction.
12
13
  *
13
14
  * @example
14
15
  * ```ts
15
- * const value = column_getFlatColumns(column)
16
+ * const flatColumns = column_getFlatColumns(column)
16
17
  * ```
17
18
  */
18
19
  declare function column_getFlatColumns<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): Array<Column<TFeatures, TData, TValue>>;
19
20
  /**
20
- * Returns leaf columns for a column.
21
+ * Collects the terminal leaf columns below this column.
21
22
  *
22
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
23
+ * Group columns return their ordered descendants. Non-group columns return an
24
+ * array containing only the column itself.
23
25
  *
24
26
  * @example
25
27
  * ```ts
26
- * const value = column_getLeafColumns(column)
28
+ * const leafColumns = column_getLeafColumns(column)
27
29
  * ```
28
30
  */
29
31
  declare function column_getLeafColumns<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): Array<Column<TFeatures, TData, TValue>>;
30
32
  /**
31
- * Returns default column def for the table.
33
+ * Merges built-in, feature, and user default column definitions.
32
34
  *
33
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
35
+ * Built-in defaults provide a header and fallback cell renderer, feature
36
+ * defaults can add feature-specific column options, and
37
+ * `options.defaultColumn` wins last.
34
38
  *
35
39
  * @example
36
40
  * ```ts
37
- * const value = table_getDefaultColumnDef(table)
41
+ * const defaultColumn = table_getDefaultColumnDef(table)
38
42
  * ```
39
43
  */
40
44
  declare function table_getDefaultColumnDef<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Partial<ColumnDef<TFeatures, TData, unknown>>;
41
45
  /**
42
- * Returns all columns for the table.
46
+ * Normalizes `options.columns` into the table's nested column tree.
43
47
  *
44
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
48
+ * Each column definition is constructed with its parent and depth, and group
49
+ * column children are recursively constructed.
45
50
  *
46
51
  * @example
47
52
  * ```ts
48
- * const value = table_getAllColumns(table)
53
+ * const columns = table_getAllColumns(table)
49
54
  * ```
50
55
  */
51
56
  declare function table_getAllColumns<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Column<TFeatures, TData, unknown>>;
52
57
  /**
53
- * Returns all flat columns for the table.
58
+ * Flattens every table column, including group columns and leaf columns.
54
59
  *
55
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
60
+ * Use this when parent/group columns must be included in addition to data leaf
61
+ * columns.
56
62
  *
57
63
  * @example
58
64
  * ```ts
59
- * const value = table_getAllFlatColumns(table)
65
+ * const flatColumns = table_getAllFlatColumns(table)
60
66
  * ```
61
67
  */
62
68
  declare function table_getAllFlatColumns<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Column<TFeatures, TData, unknown>>;
63
69
  /**
64
- * Returns all flat columns by id for the table.
70
+ * Builds an id lookup for every flat column in the table.
65
71
  *
66
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
72
+ * Group columns and leaf columns are included. Later columns with the same id
73
+ * replace earlier entries.
67
74
  *
68
75
  * @example
69
76
  * ```ts
70
- * const value = table_getAllFlatColumnsById(table)
77
+ * const columnsById = table_getAllFlatColumnsById(table)
71
78
  * ```
72
79
  */
73
80
  declare function table_getAllFlatColumnsById<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Record<string, Column<TFeatures, TData, unknown>>;
74
81
  /**
75
- * Returns all leaf columns for the table.
82
+ * Collects all terminal leaf columns in their current table order.
76
83
  *
77
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
84
+ * Column ordering features can reorder the collected leaves before the result
85
+ * is returned.
78
86
  *
79
87
  * @example
80
88
  * ```ts
81
- * const value = table_getAllLeafColumns(table)
89
+ * const leafColumns = table_getAllLeafColumns(table)
82
90
  * ```
83
91
  */
84
92
  declare function table_getAllLeafColumns<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Column<TFeatures, TData, unknown>>;
85
93
  /**
86
- * Returns all leaf columns by id for the table.
94
+ * Builds an id lookup for terminal leaf columns only.
87
95
  *
88
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
96
+ * Parent/group columns are excluded, making this lookup appropriate for row
97
+ * cells and feature state keyed by data columns.
89
98
  *
90
99
  * @example
91
100
  * ```ts
92
- * const value = table_getAllLeafColumnsById(table)
101
+ * const leavesById = table_getAllLeafColumnsById(table)
93
102
  * ```
94
103
  */
95
104
  declare function table_getAllLeafColumnsById<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Record<string, Column<TFeatures, TData, unknown>>;
96
105
  /**
97
- * Returns column for the table.
106
+ * Looks up a column by id from the flat column map.
98
107
  *
99
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
108
+ * The lookup can return group columns or leaf columns. In development, a
109
+ * missing id logs a warning to help catch stale column references.
100
110
  *
101
111
  * @example
102
112
  * ```ts
103
- * const value = table_getColumn(table)
113
+ * const column = table_getColumn(table, 'firstName')
104
114
  * ```
105
115
  */
106
116
  declare function table_getColumn<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, columnId: string): Column<TFeatures, TData, unknown> | undefined;
@@ -6,101 +6,111 @@ import { Table_Internal } from "../../types/Table.js";
6
6
 
7
7
  //#region src/core/columns/coreColumnsFeature.utils.d.ts
8
8
  /**
9
- * Returns flat columns for a column.
9
+ * Flattens this column and every descendant column into a single array.
10
10
  *
11
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
11
+ * Group columns appear before their child columns, which matches the normalized
12
+ * column hierarchy produced during table construction.
12
13
  *
13
14
  * @example
14
15
  * ```ts
15
- * const value = column_getFlatColumns(column)
16
+ * const flatColumns = column_getFlatColumns(column)
16
17
  * ```
17
18
  */
18
19
  declare function column_getFlatColumns<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): Array<Column<TFeatures, TData, TValue>>;
19
20
  /**
20
- * Returns leaf columns for a column.
21
+ * Collects the terminal leaf columns below this column.
21
22
  *
22
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
23
+ * Group columns return their ordered descendants. Non-group columns return an
24
+ * array containing only the column itself.
23
25
  *
24
26
  * @example
25
27
  * ```ts
26
- * const value = column_getLeafColumns(column)
28
+ * const leafColumns = column_getLeafColumns(column)
27
29
  * ```
28
30
  */
29
31
  declare function column_getLeafColumns<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): Array<Column<TFeatures, TData, TValue>>;
30
32
  /**
31
- * Returns default column def for the table.
33
+ * Merges built-in, feature, and user default column definitions.
32
34
  *
33
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
35
+ * Built-in defaults provide a header and fallback cell renderer, feature
36
+ * defaults can add feature-specific column options, and
37
+ * `options.defaultColumn` wins last.
34
38
  *
35
39
  * @example
36
40
  * ```ts
37
- * const value = table_getDefaultColumnDef(table)
41
+ * const defaultColumn = table_getDefaultColumnDef(table)
38
42
  * ```
39
43
  */
40
44
  declare function table_getDefaultColumnDef<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Partial<ColumnDef<TFeatures, TData, unknown>>;
41
45
  /**
42
- * Returns all columns for the table.
46
+ * Normalizes `options.columns` into the table's nested column tree.
43
47
  *
44
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
48
+ * Each column definition is constructed with its parent and depth, and group
49
+ * column children are recursively constructed.
45
50
  *
46
51
  * @example
47
52
  * ```ts
48
- * const value = table_getAllColumns(table)
53
+ * const columns = table_getAllColumns(table)
49
54
  * ```
50
55
  */
51
56
  declare function table_getAllColumns<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Column<TFeatures, TData, unknown>>;
52
57
  /**
53
- * Returns all flat columns for the table.
58
+ * Flattens every table column, including group columns and leaf columns.
54
59
  *
55
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
60
+ * Use this when parent/group columns must be included in addition to data leaf
61
+ * columns.
56
62
  *
57
63
  * @example
58
64
  * ```ts
59
- * const value = table_getAllFlatColumns(table)
65
+ * const flatColumns = table_getAllFlatColumns(table)
60
66
  * ```
61
67
  */
62
68
  declare function table_getAllFlatColumns<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Column<TFeatures, TData, unknown>>;
63
69
  /**
64
- * Returns all flat columns by id for the table.
70
+ * Builds an id lookup for every flat column in the table.
65
71
  *
66
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
72
+ * Group columns and leaf columns are included. Later columns with the same id
73
+ * replace earlier entries.
67
74
  *
68
75
  * @example
69
76
  * ```ts
70
- * const value = table_getAllFlatColumnsById(table)
77
+ * const columnsById = table_getAllFlatColumnsById(table)
71
78
  * ```
72
79
  */
73
80
  declare function table_getAllFlatColumnsById<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Record<string, Column<TFeatures, TData, unknown>>;
74
81
  /**
75
- * Returns all leaf columns for the table.
82
+ * Collects all terminal leaf columns in their current table order.
76
83
  *
77
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
84
+ * Column ordering features can reorder the collected leaves before the result
85
+ * is returned.
78
86
  *
79
87
  * @example
80
88
  * ```ts
81
- * const value = table_getAllLeafColumns(table)
89
+ * const leafColumns = table_getAllLeafColumns(table)
82
90
  * ```
83
91
  */
84
92
  declare function table_getAllLeafColumns<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Column<TFeatures, TData, unknown>>;
85
93
  /**
86
- * Returns all leaf columns by id for the table.
94
+ * Builds an id lookup for terminal leaf columns only.
87
95
  *
88
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
96
+ * Parent/group columns are excluded, making this lookup appropriate for row
97
+ * cells and feature state keyed by data columns.
89
98
  *
90
99
  * @example
91
100
  * ```ts
92
- * const value = table_getAllLeafColumnsById(table)
101
+ * const leavesById = table_getAllLeafColumnsById(table)
93
102
  * ```
94
103
  */
95
104
  declare function table_getAllLeafColumnsById<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Record<string, Column<TFeatures, TData, unknown>>;
96
105
  /**
97
- * Returns column for the table.
106
+ * Looks up a column by id from the flat column map.
98
107
  *
99
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
108
+ * The lookup can return group columns or leaf columns. In development, a
109
+ * missing id logs a warning to help catch stale column references.
100
110
  *
101
111
  * @example
102
112
  * ```ts
103
- * const value = table_getColumn(table)
113
+ * const column = table_getColumn(table, 'firstName')
104
114
  * ```
105
115
  */
106
116
  declare function table_getColumn<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, columnId: string): Column<TFeatures, TData, unknown> | undefined;