@tanstack/table-core 9.0.0-alpha.43 → 9.0.0-alpha.47

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 (528) hide show
  1. package/dist/core/cells/constructCell.cjs +9 -3
  2. package/dist/core/cells/constructCell.cjs.map +1 -1
  3. package/dist/core/cells/constructCell.d.cts +5 -0
  4. package/dist/core/cells/constructCell.d.ts +5 -0
  5. package/dist/core/cells/constructCell.js +9 -3
  6. package/dist/core/cells/constructCell.js.map +1 -1
  7. package/dist/core/cells/coreCellsFeature.cjs +5 -0
  8. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  9. package/dist/core/cells/coreCellsFeature.d.cts +5 -0
  10. package/dist/core/cells/coreCellsFeature.d.ts +5 -0
  11. package/dist/core/cells/coreCellsFeature.js +5 -0
  12. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  13. package/dist/core/cells/coreCellsFeature.utils.cjs +30 -0
  14. package/dist/core/cells/coreCellsFeature.utils.cjs.map +1 -1
  15. package/dist/core/cells/coreCellsFeature.utils.d.cts +30 -0
  16. package/dist/core/cells/coreCellsFeature.utils.d.ts +30 -0
  17. package/dist/core/cells/coreCellsFeature.utils.js +30 -0
  18. package/dist/core/cells/coreCellsFeature.utils.js.map +1 -1
  19. package/dist/core/columns/constructColumn.cjs +21 -12
  20. package/dist/core/columns/constructColumn.cjs.map +1 -1
  21. package/dist/core/columns/constructColumn.d.cts +5 -0
  22. package/dist/core/columns/constructColumn.d.ts +5 -0
  23. package/dist/core/columns/constructColumn.js +21 -12
  24. package/dist/core/columns/constructColumn.js.map +1 -1
  25. package/dist/core/columns/coreColumnsFeature.cjs +9 -0
  26. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  27. package/dist/core/columns/coreColumnsFeature.d.cts +5 -0
  28. package/dist/core/columns/coreColumnsFeature.d.ts +5 -0
  29. package/dist/core/columns/coreColumnsFeature.js +10 -1
  30. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  31. package/dist/core/columns/coreColumnsFeature.types.d.cts +4 -0
  32. package/dist/core/columns/coreColumnsFeature.types.d.ts +4 -0
  33. package/dist/core/columns/coreColumnsFeature.utils.cjs +107 -4
  34. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  35. package/dist/core/columns/coreColumnsFeature.utils.d.cts +92 -1
  36. package/dist/core/columns/coreColumnsFeature.utils.d.ts +92 -1
  37. package/dist/core/columns/coreColumnsFeature.utils.js +107 -5
  38. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  39. package/dist/core/coreFeatures.cjs +5 -0
  40. package/dist/core/coreFeatures.cjs.map +1 -1
  41. package/dist/core/coreFeatures.d.cts +5 -0
  42. package/dist/core/coreFeatures.d.ts +5 -0
  43. package/dist/core/coreFeatures.js +5 -0
  44. package/dist/core/coreFeatures.js.map +1 -1
  45. package/dist/core/headers/buildHeaderGroups.cjs +33 -20
  46. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  47. package/dist/core/headers/buildHeaderGroups.d.cts +5 -0
  48. package/dist/core/headers/buildHeaderGroups.d.ts +5 -0
  49. package/dist/core/headers/buildHeaderGroups.js +33 -20
  50. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  51. package/dist/core/headers/constructHeader.cjs +9 -3
  52. package/dist/core/headers/constructHeader.cjs.map +1 -1
  53. package/dist/core/headers/constructHeader.d.cts +5 -0
  54. package/dist/core/headers/constructHeader.d.ts +5 -0
  55. package/dist/core/headers/constructHeader.js +9 -3
  56. package/dist/core/headers/constructHeader.js.map +1 -1
  57. package/dist/core/headers/coreHeadersFeature.cjs +6 -6
  58. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  59. package/dist/core/headers/coreHeadersFeature.d.cts +5 -0
  60. package/dist/core/headers/coreHeadersFeature.d.ts +5 -0
  61. package/dist/core/headers/coreHeadersFeature.js +7 -7
  62. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  63. package/dist/core/headers/coreHeadersFeature.utils.cjs +87 -16
  64. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  65. package/dist/core/headers/coreHeadersFeature.utils.d.cts +61 -1
  66. package/dist/core/headers/coreHeadersFeature.utils.d.ts +61 -1
  67. package/dist/core/headers/coreHeadersFeature.utils.js +89 -18
  68. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  69. package/dist/core/reactivity/coreReactivityFeature.types.d.cts +4 -0
  70. package/dist/core/reactivity/coreReactivityFeature.types.d.ts +4 -0
  71. package/dist/core/reactivity/coreReactivityFeature.utils.cjs +5 -0
  72. package/dist/core/reactivity/coreReactivityFeature.utils.cjs.map +1 -1
  73. package/dist/core/reactivity/coreReactivityFeature.utils.d.cts +10 -0
  74. package/dist/core/reactivity/coreReactivityFeature.utils.d.ts +10 -0
  75. package/dist/core/reactivity/coreReactivityFeature.utils.js +5 -0
  76. package/dist/core/reactivity/coreReactivityFeature.utils.js.map +1 -1
  77. package/dist/core/row-models/coreRowModelsFeature.cjs +5 -0
  78. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  79. package/dist/core/row-models/coreRowModelsFeature.d.cts +5 -0
  80. package/dist/core/row-models/coreRowModelsFeature.d.ts +5 -0
  81. package/dist/core/row-models/coreRowModelsFeature.js +5 -0
  82. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  83. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +2 -1
  84. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +2 -1
  85. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +120 -0
  86. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  87. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +120 -0
  88. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +120 -0
  89. package/dist/core/row-models/coreRowModelsFeature.utils.js +120 -0
  90. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  91. package/dist/core/row-models/createCoreRowModel.cjs +5 -0
  92. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  93. package/dist/core/row-models/createCoreRowModel.d.cts +5 -0
  94. package/dist/core/row-models/createCoreRowModel.d.ts +5 -0
  95. package/dist/core/row-models/createCoreRowModel.js +5 -0
  96. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  97. package/dist/core/rows/constructRow.cjs +13 -6
  98. package/dist/core/rows/constructRow.cjs.map +1 -1
  99. package/dist/core/rows/constructRow.d.cts +5 -0
  100. package/dist/core/rows/constructRow.d.ts +5 -0
  101. package/dist/core/rows/constructRow.js +13 -6
  102. package/dist/core/rows/constructRow.js.map +1 -1
  103. package/dist/core/rows/coreRowsFeature.cjs +5 -0
  104. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  105. package/dist/core/rows/coreRowsFeature.d.cts +5 -0
  106. package/dist/core/rows/coreRowsFeature.d.ts +5 -0
  107. package/dist/core/rows/coreRowsFeature.js +5 -0
  108. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  109. package/dist/core/rows/coreRowsFeature.types.d.cts +3 -0
  110. package/dist/core/rows/coreRowsFeature.types.d.ts +3 -0
  111. package/dist/core/rows/coreRowsFeature.utils.cjs +112 -7
  112. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  113. package/dist/core/rows/coreRowsFeature.utils.d.cts +101 -0
  114. package/dist/core/rows/coreRowsFeature.utils.d.ts +101 -0
  115. package/dist/core/rows/coreRowsFeature.utils.js +112 -7
  116. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  117. package/dist/core/table/constructTable.cjs +19 -5
  118. package/dist/core/table/constructTable.cjs.map +1 -1
  119. package/dist/core/table/constructTable.d.cts +10 -0
  120. package/dist/core/table/constructTable.d.ts +10 -0
  121. package/dist/core/table/constructTable.js +19 -5
  122. package/dist/core/table/constructTable.js.map +1 -1
  123. package/dist/core/table/coreTablesFeature.cjs +5 -0
  124. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  125. package/dist/core/table/coreTablesFeature.d.cts +5 -0
  126. package/dist/core/table/coreTablesFeature.d.ts +5 -0
  127. package/dist/core/table/coreTablesFeature.js +5 -0
  128. package/dist/core/table/coreTablesFeature.js.map +1 -1
  129. package/dist/core/table/coreTablesFeature.types.d.cts +22 -12
  130. package/dist/core/table/coreTablesFeature.types.d.ts +22 -12
  131. package/dist/core/table/coreTablesFeature.utils.cjs +49 -1
  132. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  133. package/dist/core/table/coreTablesFeature.utils.d.cts +44 -0
  134. package/dist/core/table/coreTablesFeature.utils.d.ts +44 -0
  135. package/dist/core/table/coreTablesFeature.utils.js +49 -1
  136. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  137. package/dist/features/column-faceting/columnFacetingFeature.cjs +9 -1
  138. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  139. package/dist/features/column-faceting/columnFacetingFeature.d.cts +9 -1
  140. package/dist/features/column-faceting/columnFacetingFeature.d.ts +9 -1
  141. package/dist/features/column-faceting/columnFacetingFeature.js +9 -1
  142. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  143. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +12 -6
  144. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +12 -6
  145. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +60 -0
  146. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  147. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +60 -0
  148. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +60 -0
  149. package/dist/features/column-faceting/columnFacetingFeature.utils.js +60 -0
  150. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  151. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +13 -5
  152. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  153. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +5 -0
  154. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +5 -0
  155. package/dist/features/column-faceting/createFacetedMinMaxValues.js +13 -5
  156. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  157. package/dist/features/column-faceting/createFacetedRowModel.cjs +13 -3
  158. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  159. package/dist/features/column-faceting/createFacetedRowModel.d.cts +5 -0
  160. package/dist/features/column-faceting/createFacetedRowModel.d.ts +5 -0
  161. package/dist/features/column-faceting/createFacetedRowModel.js +13 -3
  162. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  163. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +12 -4
  164. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  165. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +5 -0
  166. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +5 -0
  167. package/dist/features/column-faceting/createFacetedUniqueValues.js +12 -4
  168. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  169. package/dist/features/column-filtering/columnFilteringFeature.cjs +10 -2
  170. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  171. package/dist/features/column-filtering/columnFilteringFeature.d.cts +10 -2
  172. package/dist/features/column-filtering/columnFilteringFeature.d.ts +10 -2
  173. package/dist/features/column-filtering/columnFilteringFeature.js +10 -2
  174. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  175. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +7 -4
  176. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +7 -4
  177. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +113 -2
  178. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  179. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +111 -0
  180. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +111 -0
  181. package/dist/features/column-filtering/columnFilteringFeature.utils.js +113 -2
  182. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  183. package/dist/features/column-filtering/createFilteredRowModel.cjs +16 -5
  184. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  185. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -0
  186. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -0
  187. package/dist/features/column-filtering/createFilteredRowModel.js +16 -5
  188. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  189. package/dist/features/column-filtering/filterRowsUtils.cjs +5 -0
  190. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
  191. package/dist/features/column-filtering/filterRowsUtils.js +5 -0
  192. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
  193. package/dist/features/column-grouping/columnGroupingFeature.cjs +9 -1
  194. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  195. package/dist/features/column-grouping/columnGroupingFeature.d.cts +9 -1
  196. package/dist/features/column-grouping/columnGroupingFeature.d.ts +9 -1
  197. package/dist/features/column-grouping/columnGroupingFeature.js +9 -1
  198. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  199. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +7 -3
  200. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +7 -3
  201. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +151 -0
  202. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  203. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +151 -0
  204. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +151 -0
  205. package/dist/features/column-grouping/columnGroupingFeature.utils.js +151 -0
  206. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  207. package/dist/features/column-grouping/createGroupedRowModel.cjs +5 -0
  208. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  209. package/dist/features/column-grouping/createGroupedRowModel.d.cts +5 -0
  210. package/dist/features/column-grouping/createGroupedRowModel.d.ts +5 -0
  211. package/dist/features/column-grouping/createGroupedRowModel.js +5 -0
  212. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  213. package/dist/features/column-ordering/columnOrderingFeature.cjs +12 -3
  214. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  215. package/dist/features/column-ordering/columnOrderingFeature.d.cts +9 -1
  216. package/dist/features/column-ordering/columnOrderingFeature.d.ts +9 -1
  217. package/dist/features/column-ordering/columnOrderingFeature.js +12 -3
  218. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  219. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +4 -2
  220. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +4 -2
  221. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +108 -8
  222. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
  223. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +81 -0
  224. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +81 -0
  225. package/dist/features/column-ordering/columnOrderingFeature.utils.js +108 -8
  226. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
  227. package/dist/features/column-pinning/columnPinningFeature.cjs +17 -30
  228. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  229. package/dist/features/column-pinning/columnPinningFeature.d.cts +9 -1
  230. package/dist/features/column-pinning/columnPinningFeature.d.ts +9 -1
  231. package/dist/features/column-pinning/columnPinningFeature.js +17 -30
  232. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  233. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +6 -2
  234. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +6 -2
  235. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +387 -27
  236. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  237. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +318 -6
  238. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +318 -6
  239. package/dist/features/column-pinning/columnPinningFeature.utils.js +388 -28
  240. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  241. package/dist/features/column-resizing/columnResizingFeature.cjs +9 -2
  242. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  243. package/dist/features/column-resizing/columnResizingFeature.d.cts +9 -2
  244. package/dist/features/column-resizing/columnResizingFeature.d.ts +9 -2
  245. package/dist/features/column-resizing/columnResizingFeature.js +9 -2
  246. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  247. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +14 -6
  248. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +14 -6
  249. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +81 -0
  250. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  251. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +81 -0
  252. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +81 -0
  253. package/dist/features/column-resizing/columnResizingFeature.utils.js +81 -0
  254. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  255. package/dist/features/column-sizing/columnSizingFeature.cjs +78 -16
  256. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  257. package/dist/features/column-sizing/columnSizingFeature.d.cts +10 -2
  258. package/dist/features/column-sizing/columnSizingFeature.d.ts +10 -2
  259. package/dist/features/column-sizing/columnSizingFeature.js +79 -17
  260. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  261. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +6 -3
  262. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +6 -3
  263. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +151 -3
  264. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  265. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +141 -0
  266. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +141 -0
  267. package/dist/features/column-sizing/columnSizingFeature.utils.js +151 -3
  268. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  269. package/dist/features/column-visibility/columnVisibilityFeature.cjs +30 -20
  270. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  271. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +9 -1
  272. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +9 -1
  273. package/dist/features/column-visibility/columnVisibilityFeature.js +31 -21
  274. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  275. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +8 -3
  276. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +8 -3
  277. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +199 -12
  278. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  279. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +154 -3
  280. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +154 -3
  281. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +199 -12
  282. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  283. package/dist/features/global-filtering/globalFilteringFeature.cjs +9 -2
  284. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  285. package/dist/features/global-filtering/globalFilteringFeature.d.cts +9 -2
  286. package/dist/features/global-filtering/globalFilteringFeature.d.ts +9 -2
  287. package/dist/features/global-filtering/globalFilteringFeature.js +9 -2
  288. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  289. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +4 -2
  290. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +4 -2
  291. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +51 -0
  292. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  293. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +51 -0
  294. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +51 -0
  295. package/dist/features/global-filtering/globalFilteringFeature.utils.js +51 -0
  296. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  297. package/dist/features/row-expanding/createExpandedRowModel.cjs +10 -0
  298. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  299. package/dist/features/row-expanding/createExpandedRowModel.d.cts +10 -0
  300. package/dist/features/row-expanding/createExpandedRowModel.d.ts +10 -0
  301. package/dist/features/row-expanding/createExpandedRowModel.js +10 -0
  302. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  303. package/dist/features/row-expanding/rowExpandingFeature.cjs +9 -1
  304. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  305. package/dist/features/row-expanding/rowExpandingFeature.d.cts +9 -1
  306. package/dist/features/row-expanding/rowExpandingFeature.d.ts +9 -1
  307. package/dist/features/row-expanding/rowExpandingFeature.js +9 -1
  308. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  309. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +10 -5
  310. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +10 -5
  311. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +153 -2
  312. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  313. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +151 -0
  314. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +151 -0
  315. package/dist/features/row-expanding/rowExpandingFeature.utils.js +153 -2
  316. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  317. package/dist/features/row-pagination/createPaginatedRowModel.cjs +5 -0
  318. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  319. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +5 -0
  320. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +5 -0
  321. package/dist/features/row-pagination/createPaginatedRowModel.js +5 -0
  322. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  323. package/dist/features/row-pagination/rowPaginationFeature.cjs +9 -1
  324. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  325. package/dist/features/row-pagination/rowPaginationFeature.d.cts +9 -1
  326. package/dist/features/row-pagination/rowPaginationFeature.d.ts +9 -1
  327. package/dist/features/row-pagination/rowPaginationFeature.js +9 -1
  328. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  329. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +11 -7
  330. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +11 -7
  331. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +175 -0
  332. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
  333. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +175 -0
  334. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +175 -0
  335. package/dist/features/row-pagination/rowPaginationFeature.utils.js +175 -0
  336. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
  337. package/dist/features/row-pinning/rowPinningFeature.cjs +9 -1
  338. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  339. package/dist/features/row-pinning/rowPinningFeature.d.cts +9 -1
  340. package/dist/features/row-pinning/rowPinningFeature.d.ts +9 -1
  341. package/dist/features/row-pinning/rowPinningFeature.js +9 -1
  342. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  343. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +4 -2
  344. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +4 -2
  345. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +125 -7
  346. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  347. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +112 -0
  348. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +112 -0
  349. package/dist/features/row-pinning/rowPinningFeature.utils.js +125 -7
  350. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  351. package/dist/features/row-selection/rowSelectionFeature.cjs +9 -1
  352. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  353. package/dist/features/row-selection/rowSelectionFeature.d.cts +9 -1
  354. package/dist/features/row-selection/rowSelectionFeature.d.ts +9 -1
  355. package/dist/features/row-selection/rowSelectionFeature.js +9 -1
  356. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  357. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +4 -2
  358. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +4 -2
  359. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +265 -3
  360. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  361. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +259 -0
  362. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +259 -0
  363. package/dist/features/row-selection/rowSelectionFeature.utils.js +265 -3
  364. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  365. package/dist/features/row-sorting/createSortedRowModel.cjs +18 -8
  366. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  367. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -0
  368. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -0
  369. package/dist/features/row-sorting/createSortedRowModel.js +18 -8
  370. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  371. package/dist/features/row-sorting/rowSortingFeature.cjs +11 -3
  372. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  373. package/dist/features/row-sorting/rowSortingFeature.d.cts +9 -1
  374. package/dist/features/row-sorting/rowSortingFeature.d.ts +9 -1
  375. package/dist/features/row-sorting/rowSortingFeature.js +11 -3
  376. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  377. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +7 -3
  378. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +7 -3
  379. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +153 -2
  380. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  381. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +151 -0
  382. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +151 -0
  383. package/dist/features/row-sorting/rowSortingFeature.utils.js +153 -2
  384. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  385. package/dist/features/stockFeatures.cjs +5 -0
  386. package/dist/features/stockFeatures.cjs.map +1 -1
  387. package/dist/features/stockFeatures.d.cts +5 -0
  388. package/dist/features/stockFeatures.d.ts +5 -0
  389. package/dist/features/stockFeatures.js +5 -0
  390. package/dist/features/stockFeatures.js.map +1 -1
  391. package/dist/flex-render.cjs +10 -0
  392. package/dist/flex-render.cjs.map +1 -1
  393. package/dist/flex-render.d.cts +10 -0
  394. package/dist/flex-render.d.ts +10 -0
  395. package/dist/flex-render.js +10 -0
  396. package/dist/flex-render.js.map +1 -1
  397. package/dist/fns/aggregationFns.cjs +19 -7
  398. package/dist/fns/aggregationFns.cjs.map +1 -1
  399. package/dist/fns/aggregationFns.d.cts +5 -0
  400. package/dist/fns/aggregationFns.d.ts +5 -0
  401. package/dist/fns/aggregationFns.js +19 -8
  402. package/dist/fns/aggregationFns.js.map +1 -1
  403. package/dist/fns/filterFns.cjs +5 -0
  404. package/dist/fns/filterFns.cjs.map +1 -1
  405. package/dist/fns/filterFns.d.cts +5 -0
  406. package/dist/fns/filterFns.d.ts +5 -0
  407. package/dist/fns/filterFns.js +5 -0
  408. package/dist/fns/filterFns.js.map +1 -1
  409. package/dist/fns/sortFns.cjs +49 -4
  410. package/dist/fns/sortFns.cjs.map +1 -1
  411. package/dist/fns/sortFns.d.cts +41 -0
  412. package/dist/fns/sortFns.d.ts +41 -0
  413. package/dist/fns/sortFns.js +49 -4
  414. package/dist/fns/sortFns.js.map +1 -1
  415. package/dist/helpers/columnHelper.cjs.map +1 -1
  416. package/dist/helpers/columnHelper.js.map +1 -1
  417. package/dist/helpers/tableFeatures.cjs.map +1 -1
  418. package/dist/helpers/tableFeatures.js.map +1 -1
  419. package/dist/helpers/tableOptions.cjs +6 -0
  420. package/dist/helpers/tableOptions.cjs.map +1 -1
  421. package/dist/helpers/tableOptions.d.cts +26 -0
  422. package/dist/helpers/tableOptions.d.ts +26 -0
  423. package/dist/helpers/tableOptions.js +6 -0
  424. package/dist/helpers/tableOptions.js.map +1 -1
  425. package/dist/index.cjs +0 -4
  426. package/dist/index.d.cts +2 -2
  427. package/dist/index.d.ts +2 -2
  428. package/dist/index.js +2 -2
  429. package/dist/static-functions.cjs +2 -1
  430. package/dist/static-functions.d.cts +3 -3
  431. package/dist/static-functions.d.ts +3 -3
  432. package/dist/static-functions.js +3 -3
  433. package/dist/store-reactivity-bindings.cjs +1 -0
  434. package/dist/store-reactivity-bindings.cjs.map +1 -1
  435. package/dist/store-reactivity-bindings.js +1 -0
  436. package/dist/store-reactivity-bindings.js.map +1 -1
  437. package/dist/utils.cjs +49 -25
  438. package/dist/utils.cjs.map +1 -1
  439. package/dist/utils.d.cts +33 -10
  440. package/dist/utils.d.ts +33 -10
  441. package/dist/utils.js +50 -22
  442. package/dist/utils.js.map +1 -1
  443. package/package.json +1 -1
  444. package/src/core/cells/constructCell.ts +8 -2
  445. package/src/core/cells/coreCellsFeature.ts +5 -0
  446. package/src/core/cells/coreCellsFeature.utils.ts +30 -0
  447. package/src/core/columns/constructColumn.ts +11 -3
  448. package/src/core/columns/coreColumnsFeature.ts +10 -0
  449. package/src/core/columns/coreColumnsFeature.types.ts +4 -0
  450. package/src/core/columns/coreColumnsFeature.utils.ts +113 -8
  451. package/src/core/coreFeatures.ts +5 -0
  452. package/src/core/headers/buildHeaderGroups.ts +36 -31
  453. package/src/core/headers/constructHeader.ts +8 -2
  454. package/src/core/headers/coreHeadersFeature.ts +7 -27
  455. package/src/core/headers/coreHeadersFeature.utils.ts +110 -46
  456. package/src/core/reactivity/coreReactivityFeature.types.ts +4 -0
  457. package/src/core/reactivity/coreReactivityFeature.utils.ts +15 -0
  458. package/src/core/row-models/coreRowModelsFeature.ts +5 -0
  459. package/src/core/row-models/coreRowModelsFeature.types.ts +2 -1
  460. package/src/core/row-models/coreRowModelsFeature.utils.ts +120 -0
  461. package/src/core/row-models/createCoreRowModel.ts +5 -0
  462. package/src/core/rows/constructRow.ts +11 -4
  463. package/src/core/rows/coreRowsFeature.ts +5 -0
  464. package/src/core/rows/coreRowsFeature.types.ts +3 -0
  465. package/src/core/rows/coreRowsFeature.utils.ts +116 -10
  466. package/src/core/table/constructTable.ts +16 -4
  467. package/src/core/table/coreTablesFeature.ts +5 -0
  468. package/src/core/table/coreTablesFeature.types.ts +22 -12
  469. package/src/core/table/coreTablesFeature.utils.ts +47 -1
  470. package/src/features/column-faceting/columnFacetingFeature.ts +9 -1
  471. package/src/features/column-faceting/columnFacetingFeature.types.ts +12 -6
  472. package/src/features/column-faceting/columnFacetingFeature.utils.ts +60 -0
  473. package/src/features/column-faceting/createFacetedMinMaxValues.ts +13 -10
  474. package/src/features/column-faceting/createFacetedRowModel.ts +15 -6
  475. package/src/features/column-faceting/createFacetedUniqueValues.ts +9 -3
  476. package/src/features/column-filtering/columnFilteringFeature.ts +10 -2
  477. package/src/features/column-filtering/columnFilteringFeature.types.ts +7 -4
  478. package/src/features/column-filtering/columnFilteringFeature.utils.ts +113 -2
  479. package/src/features/column-filtering/createFilteredRowModel.ts +19 -8
  480. package/src/features/column-filtering/filterRowsUtils.ts +5 -0
  481. package/src/features/column-grouping/columnGroupingFeature.ts +9 -1
  482. package/src/features/column-grouping/columnGroupingFeature.types.ts +7 -3
  483. package/src/features/column-grouping/columnGroupingFeature.utils.ts +151 -0
  484. package/src/features/column-grouping/createGroupedRowModel.ts +5 -0
  485. package/src/features/column-ordering/columnOrderingFeature.ts +10 -1
  486. package/src/features/column-ordering/columnOrderingFeature.types.ts +4 -2
  487. package/src/features/column-ordering/columnOrderingFeature.utils.ts +117 -17
  488. package/src/features/column-pinning/columnPinningFeature.ts +11 -12
  489. package/src/features/column-pinning/columnPinningFeature.types.ts +6 -2
  490. package/src/features/column-pinning/columnPinningFeature.utils.ts +425 -76
  491. package/src/features/column-resizing/columnResizingFeature.ts +9 -2
  492. package/src/features/column-resizing/columnResizingFeature.types.ts +14 -6
  493. package/src/features/column-resizing/columnResizingFeature.utils.ts +81 -0
  494. package/src/features/column-sizing/columnSizingFeature.ts +54 -18
  495. package/src/features/column-sizing/columnSizingFeature.types.ts +6 -3
  496. package/src/features/column-sizing/columnSizingFeature.utils.ts +168 -9
  497. package/src/features/column-visibility/columnVisibilityFeature.ts +20 -18
  498. package/src/features/column-visibility/columnVisibilityFeature.types.ts +11 -3
  499. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +213 -24
  500. package/src/features/global-filtering/globalFilteringFeature.ts +9 -2
  501. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -2
  502. package/src/features/global-filtering/globalFilteringFeature.utils.ts +51 -0
  503. package/src/features/row-expanding/createExpandedRowModel.ts +10 -0
  504. package/src/features/row-expanding/rowExpandingFeature.ts +9 -1
  505. package/src/features/row-expanding/rowExpandingFeature.types.ts +10 -5
  506. package/src/features/row-expanding/rowExpandingFeature.utils.ts +153 -2
  507. package/src/features/row-pagination/createPaginatedRowModel.ts +5 -0
  508. package/src/features/row-pagination/rowPaginationFeature.ts +9 -1
  509. package/src/features/row-pagination/rowPaginationFeature.types.ts +11 -7
  510. package/src/features/row-pagination/rowPaginationFeature.utils.ts +175 -0
  511. package/src/features/row-pinning/rowPinningFeature.ts +9 -1
  512. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -2
  513. package/src/features/row-pinning/rowPinningFeature.utils.ts +132 -18
  514. package/src/features/row-selection/rowSelectionFeature.ts +9 -1
  515. package/src/features/row-selection/rowSelectionFeature.types.ts +4 -2
  516. package/src/features/row-selection/rowSelectionFeature.utils.ts +279 -19
  517. package/src/features/row-sorting/createSortedRowModel.ts +21 -13
  518. package/src/features/row-sorting/rowSortingFeature.ts +11 -3
  519. package/src/features/row-sorting/rowSortingFeature.types.ts +7 -3
  520. package/src/features/row-sorting/rowSortingFeature.utils.ts +153 -2
  521. package/src/features/stockFeatures.ts +5 -0
  522. package/src/flex-render.ts +10 -0
  523. package/src/fns/aggregationFns.ts +25 -8
  524. package/src/fns/filterFns.ts +5 -0
  525. package/src/fns/sortFns.ts +50 -5
  526. package/src/helpers/tableOptions.ts +32 -0
  527. package/src/store-reactivity-bindings.ts +1 -0
  528. package/src/utils.ts +52 -34
@@ -1 +1 @@
1
- {"version":3,"file":"columnPinningFeature.utils.js","names":[],"sources":["../../../src/features/column-pinning/columnPinningFeature.utils.ts"],"sourcesContent":["import {\n column_getIsVisible,\n row_getAllVisibleCells,\n table_getVisibleLeafColumns,\n} from '../column-visibility/columnVisibilityFeature.utils'\nimport { buildHeaderGroups } from '../../core/headers/buildHeaderGroups'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { HeaderGroup } from '../../types/HeaderGroup'\nimport type { Cell } from '../../types/Cell'\nimport type { Row } from '../../types/Row'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n ColumnPinningPosition,\n ColumnPinningState,\n} from './columnPinningFeature.types'\n\n// State\n\nexport function getDefaultColumnPinningState(): ColumnPinningState {\n return {\n left: [],\n right: [],\n }\n}\n\n// Column APIs\n\nexport function column_pin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition,\n) {\n const columnIds = column\n .getLeafColumns()\n .map((d) => d.id)\n .filter(Boolean)\n\n table_setColumnPinning(column.table, (old) => {\n if (position === 'right') {\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: [\n ...old.right.filter((d) => !columnIds.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [...old.left.filter((d) => !columnIds.includes(d)), ...columnIds],\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n }\n\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n })\n}\n\nexport function column_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const leafColumns = column.getLeafColumns() as Array<\n Column_Internal<TFeatures, TData, TValue>\n >\n\n return leafColumns.some(\n (leafColumn) =>\n (leafColumn.columnDef.enablePinning ?? true) &&\n (column.table.options.enableColumnPinning ?? true),\n )\n}\n\nexport function column_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): ColumnPinningPosition | false {\n const leafColumnIds = column.getLeafColumns().map((d) => d.id)\n\n const { left, right } =\n column.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const isLeft = leafColumnIds.some((d) => left.includes(d))\n const isRight = leafColumnIds.some((d) => right.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n}\n\nexport function column_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const position = column_getIsPinned(column)\n\n return position\n ? (column.table.atoms.columnPinning?.get()?.[position].indexOf(column.id) ??\n -1)\n : 0\n}\n\n// Row APIs\n\nexport function row_getCenterVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { left, right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return allCells.filter((d) => !leftAndRight.includes(d.column.id))\n}\n\nexport function row_getLeftVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { left } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const cells = left\n .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)\n .filter(Boolean)\n // Assign position property directly to preserve prototype chain\n cells.forEach((cell) => {\n cell.position = 'left'\n })\n return cells as any\n}\n\nexport function row_getRightVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const cells = right\n .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)\n .filter(Boolean)\n // Assign position property directly to preserve prototype chain\n cells.forEach((cell) => {\n cell.position = 'right'\n })\n return cells as any\n}\n\n// Table APIs\n\nexport function table_setColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnPinningState>,\n) {\n table.options.onColumnPinningChange?.(updater)\n}\n\nexport function table_resetColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnPinning(\n table,\n defaultState\n ? getDefaultColumnPinningState()\n : cloneState(\n table.initialState.columnPinning ?? getDefaultColumnPinningState(),\n ),\n )\n}\n\nexport function table_getIsSomeColumnsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, position?: ColumnPinningPosition) {\n const pinningState = table.atoms.columnPinning?.get()\n\n if (!position) {\n return Boolean(pinningState?.left.length || pinningState?.right.length)\n }\n return Boolean(pinningState?.[position].length)\n}\n\n// header groups\n\nexport function table_getLeftHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as Array<Column_Internal<TFeatures, TData, unknown>>\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns = left\n .map((columnId) => leafColumns.find((d) => d.id === columnId)!)\n .filter(Boolean)\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left')\n}\n\nexport function table_getRightHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns = right\n .map((columnId) => leafColumns.find((d) => d.id === columnId)!)\n .filter(Boolean)\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right')\n}\n\nexport function table_getCenterHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<HeaderGroup<TFeatures, TData>> {\n const allColumns = table.getAllColumns()\n let leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n\n leafColumns = leafColumns.filter(\n (column) => !leftAndRight.includes(column.id),\n )\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n}\n\n// footer groups\n\nexport function table_getLeftFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\nexport function table_getRightFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\nexport function table_getCenterFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n// flat headers\n\nexport function table_getLeftFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const leftHeaderGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return leftHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\nexport function table_getRightFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rightHeaderGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return rightHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\nexport function table_getCenterFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const centerHeaderGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return centerHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\n// leaf headers\n\nexport function table_getLeftLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftFlatHeaders',\n table_getLeftFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\nexport function table_getRightLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightFlatHeaders',\n table_getRightFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\nexport function table_getCenterLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterFlatHeaders',\n table_getCenterFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n// leaf columns\n\nexport function table_getLeftLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n return left\n .map(\n (columnId) =>\n table.getAllLeafColumns().find((column) => column.id === columnId)!,\n )\n .filter(Boolean)\n}\n\nexport function table_getRightLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n return right\n .map(\n (columnId) =>\n table.getAllLeafColumns().find((column) => column.id === columnId)!,\n )\n .filter(Boolean)\n}\n\nexport function table_getCenterLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return table.getAllLeafColumns().filter((d) => !leftAndRight.includes(d.id))\n}\n\nexport function table_getPinnedLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: ColumnPinningPosition | 'center',\n) {\n return !position\n ? table.getAllLeafColumns()\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n )\n}\n\n// visible leaf columns\n\nexport function table_getLeftVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getRightVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getCenterVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getPinnedVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: ColumnPinningPosition | 'center',\n) {\n return !position\n ? callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n )\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftVisibleLeafColumns',\n table_getLeftVisibleLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightVisibleLeafColumns',\n table_getRightVisibleLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterVisibleLeafColumns',\n table_getCenterVisibleLeafColumns,\n )\n}\n"],"mappings":";;;;;AAqBA,SAAgB,+BAAmD;AACjE,QAAO;EACL,MAAM,EAAE;EACR,OAAO,EAAE;EACV;;AAKH,SAAgB,WAKd,QACA,UACA;CACA,MAAM,YAAY,OACf,gBAAgB,CAChB,KAAK,MAAM,EAAE,GAAG,CAChB,OAAO,QAAQ;AAElB,wBAAuB,OAAO,QAAQ,QAAQ;AAC5C,MAAI,aAAa,QACf,QAAO;GACL,MAAM,IAAI,KAAK,QAAQ,MAAM,CAAC,UAAU,SAAS,EAAE,CAAC;GACpD,OAAO,CACL,GAAG,IAAI,MAAM,QAAQ,MAAM,CAAC,UAAU,SAAS,EAAE,CAAC,EAClD,GAAG,UACJ;GACF;AAGH,MAAI,aAAa,OACf,QAAO;GACL,MAAM,CAAC,GAAG,IAAI,KAAK,QAAQ,MAAM,CAAC,UAAU,SAAS,EAAE,CAAC,EAAE,GAAG,UAAU;GACvE,OAAO,IAAI,MAAM,QAAQ,MAAM,CAAC,UAAU,SAAS,EAAE,CAAC;GACvD;AAGH,SAAO;GACL,MAAM,IAAI,KAAK,QAAQ,MAAM,CAAC,UAAU,SAAS,EAAE,CAAC;GACpD,OAAO,IAAI,MAAM,QAAQ,MAAM,CAAC,UAAU,SAAS,EAAE,CAAC;GACvD;GACD;;AAGJ,SAAgB,iBAId,QAAmD;AAKnD,QAJoB,OAAO,gBAIT,CAAC,MAChB,gBACE,WAAW,UAAU,iBAAiB,UACtC,OAAO,MAAM,QAAQ,uBAAuB,MAChD;;AAGH,SAAgB,mBAKd,QAC+B;;CAC/B,MAAM,gBAAgB,OAAO,gBAAgB,CAAC,KAAK,MAAM,EAAE,GAAG;CAE9D,MAAM,EAAE,MAAM,oCACZ,OAAO,MAAM,MAAM,6FAAe,KAAK,KAAI,8BAA8B;CAE3E,MAAM,SAAS,cAAc,MAAM,MAAM,KAAK,SAAS,EAAE,CAAC;CAC1D,MAAM,UAAU,cAAc,MAAM,MAAM,MAAM,SAAS,EAAE,CAAC;AAE5D,QAAO,SAAS,SAAS,UAAU,UAAU;;AAG/C,SAAgB,sBAId,QAAmD;;CACnD,MAAM,WAAW,mBAAmB,OAAO;AAE3C,QAAO,sCACF,OAAO,MAAM,MAAM,iHAAe,KAAK,kFAAG,UAAU,QAAQ,OAAO,GAAG,KACrE,KACF;;AAKN,SAAgB,0BAGd,KAA4B;;CAC5B,MAAM,WAAW,mBACf,KACA,sBACA,uBACD;CACD,MAAM,EAAE,MAAM,oCACZ,IAAI,MAAM,MAAM,6FAAe,KAAK,KAAI,8BAA8B;CACxE,MAAM,eAA8B,CAAC,GAAG,MAAM,GAAG,MAAM;AACvD,QAAO,SAAS,QAAQ,MAAM,CAAC,aAAa,SAAS,EAAE,OAAO,GAAG,CAAC;;AAGpE,SAAgB,wBAGd,KAAoE;;CACpE,MAAM,WAAW,mBACf,KACA,sBACA,uBACD;CACD,MAAM,EAAE,oCACN,IAAI,MAAM,MAAM,+FAAe,KAAK,KAAI,8BAA8B;CACxE,MAAM,QAAQ,KACX,KAAK,aAAa,SAAS,MAAM,SAAS,KAAK,OAAO,OAAO,SAAS,CAAE,CACxE,OAAO,QAAQ;AAElB,OAAM,SAAS,SAAS;AACtB,OAAK,WAAW;GAChB;AACF,QAAO;;AAGT,SAAgB,yBAGd,KAA4B;;CAC5B,MAAM,WAAW,mBACf,KACA,sBACA,uBACD;CACD,MAAM,EAAE,qCACN,IAAI,MAAM,MAAM,+FAAe,KAAK,KAAI,8BAA8B;CACxE,MAAM,QAAQ,MACX,KAAK,aAAa,SAAS,MAAM,SAAS,KAAK,OAAO,OAAO,SAAS,CAAE,CACxE,OAAO,QAAQ;AAElB,OAAM,SAAS,SAAS;AACtB,OAAK,WAAW;GAChB;AACF,QAAO;;AAKT,SAAgB,uBAId,OACA,SACA;;AACA,kDAAM,SAAQ,kHAAwB,QAAQ;;AAGhD,SAAgB,yBAGd,OAAyC,cAAwB;AACjE,wBACE,OACA,eACI,8BAA8B,GAC9B,WACE,MAAM,aAAa,iBAAiB,8BAA8B,CACnE,CACN;;AAGH,SAAgB,6BAGd,OAAyC,UAAkC;;CAC3E,MAAM,wCAAe,MAAM,MAAM,6FAAe,KAAK;AAErD,KAAI,CAAC,SACH,QAAO,qEAAQ,aAAc,KAAK,wEAAU,aAAc,MAAM,QAAO;AAEzE,QAAO,oEAAQ,aAAe,UAAU,OAAO;;AAKjD,SAAgB,0BAGd,OAAyC;;CACzC,MAAM,aAAa,MAAM,eAAe;CACxC,MAAM,cAAc,mBAClB,OACA,yBACA,4BACD;CACD,MAAM,EAAE,oCACN,MAAM,MAAM,+FAAe,KAAK,KAAI,8BAA8B;AAMpE,QAAO,kBAAkB,YAJE,KACxB,KAAK,aAAa,YAAY,MAAM,MAAM,EAAE,OAAO,SAAS,CAAE,CAC9D,OAAO,QAE6C,EAAE,OAAO,OAAO;;AAGzE,SAAgB,2BAGd,OAAyC;;CACzC,MAAM,aAAa,MAAM,eAAe;CACxC,MAAM,cAAc,mBAClB,OACA,yBACA,4BACD;CACD,MAAM,EAAE,qCACN,MAAM,MAAM,+FAAe,KAAK,KAAI,8BAA8B;AAMpE,QAAO,kBAAkB,YAJE,MACxB,KAAK,aAAa,YAAY,MAAM,MAAM,EAAE,OAAO,SAAS,CAAE,CAC9D,OAAO,QAE6C,EAAE,OAAO,QAAQ;;AAG1E,SAAgB,4BAId,OACsC;;CACtC,MAAM,aAAa,MAAM,eAAe;CACxC,IAAI,cAAc,mBAChB,OACA,yBACA,4BACD;CACD,MAAM,EAAE,MAAM,qCACZ,MAAM,MAAM,+FAAe,KAAK,KAAI,8BAA8B;CACpE,MAAM,eAA8B,CAAC,GAAG,MAAM,GAAG,MAAM;AAEvD,eAAc,YAAY,QACvB,WAAW,CAAC,aAAa,SAAS,OAAO,GAAG,CAC9C;AACD,QAAO,kBAAkB,YAAY,aAAa,OAAO,SAAS;;AAKpE,SAAgB,0BAGd,OAAyC;AAMzC,QAAO,CAAC,GALa,mBACnB,OACA,uBACA,0BAEqB,CAAC,CAAC,SAAS;;AAGpC,SAAgB,2BAGd,OAAyC;AAMzC,QAAO,CAAC,GALa,mBACnB,OACA,wBACA,2BAEqB,CAAC,CAAC,SAAS;;AAGpC,SAAgB,4BAGd,OAAyC;AAMzC,QAAO,CAAC,GALa,mBACnB,OACA,yBACA,4BAEqB,CAAC,CAAC,SAAS;;AAKpC,SAAgB,yBAGd,OAAyC;AAMzC,QALyB,mBACvB,OACA,uBACA,0BAEqB,CACpB,KAAK,gBAAgB;AACpB,SAAO,YAAY;GACnB,CACD,MAAM;;AAGX,SAAgB,0BAGd,OAAyC;AAMzC,QAL0B,mBACxB,OACA,wBACA,2BAEsB,CACrB,KAAK,gBAAgB;AACpB,SAAO,YAAY;GACnB,CACD,MAAM;;AAGX,SAAgB,2BAGd,OAAyC;AAMzC,QAL2B,mBACzB,OACA,yBACA,4BAEuB,CACtB,KAAK,gBAAgB;AACpB,SAAO,YAAY;GACnB,CACD,MAAM;;AAKX,SAAgB,yBAGd,OAAyC;AACzC,QAAO,mBACL,OACA,sBACA,yBACD,CAAC,QAAQ,WAAW,CAAC,OAAO,WAAW,OAAO;;AAGjD,SAAgB,0BAGd,OAAyC;AACzC,QAAO,mBACL,OACA,uBACA,0BACD,CAAC,QAAQ,WAAW,CAAC,OAAO,WAAW,OAAO;;AAGjD,SAAgB,2BAGd,OAAyC;AACzC,QAAO,mBACL,OACA,wBACA,2BACD,CAAC,QAAQ,WAAW,CAAC,OAAO,WAAW,OAAO;;AAKjD,SAAgB,yBAGd,OAAyC;;CACzC,MAAM,EAAE,oCACN,MAAM,MAAM,+FAAe,KAAK,KAAI,8BAA8B;AACpE,QAAO,KACJ,KACE,aACC,MAAM,mBAAmB,CAAC,MAAM,WAAW,OAAO,OAAO,SAAS,CACrE,CACA,OAAO,QAAQ;;AAGpB,SAAgB,0BAGd,OAAyC;;CACzC,MAAM,EAAE,qCACN,MAAM,MAAM,+FAAe,KAAK,KAAI,8BAA8B;AACpE,QAAO,MACJ,KACE,aACC,MAAM,mBAAmB,CAAC,MAAM,WAAW,OAAO,OAAO,SAAS,CACrE,CACA,OAAO,QAAQ;;AAGpB,SAAgB,2BAGd,OAAyC;;CACzC,MAAM,EAAE,MAAM,qCACZ,MAAM,MAAM,+FAAe,KAAK,KAAI,8BAA8B;CACpE,MAAM,eAA8B,CAAC,GAAG,MAAM,GAAG,MAAM;AACvD,QAAO,MAAM,mBAAmB,CAAC,QAAQ,MAAM,CAAC,aAAa,SAAS,EAAE,GAAG,CAAC;;AAG9E,SAAgB,2BAId,OACA,UACA;AACA,QAAO,CAAC,WACJ,MAAM,mBAAmB,GACzB,aAAa,SACX,mBACE,OACA,sBACA,yBACD,GACD,aAAa,UACX,mBACE,OACA,uBACA,0BACD,GACD,mBACE,OACA,wBACA,2BACD;;AAKX,SAAgB,gCAGd,OAAyC;AACzC,QAAO,mBACL,OACA,sBACA,yBACD,CAAC,QAAQ,WACR,mBAAmB,QAAQ,gBAAgB,oBAAoB,CAChE;;AAGH,SAAgB,iCAGd,OAAyC;AACzC,QAAO,mBACL,OACA,uBACA,0BACD,CAAC,QAAQ,WACR,mBAAmB,QAAQ,gBAAgB,oBAAoB,CAChE;;AAGH,SAAgB,kCAGd,OAAyC;AACzC,QAAO,mBACL,OACA,wBACA,2BACD,CAAC,QAAQ,WACR,mBAAmB,QAAQ,gBAAgB,oBAAoB,CAChE;;AAGH,SAAgB,kCAId,OACA,UACA;AACA,QAAO,CAAC,WACJ,mBACE,OACA,yBACA,4BACD,GACD,aAAa,SACX,mBACE,OACA,6BACA,gCACD,GACD,aAAa,UACX,mBACE,OACA,8BACA,iCACD,GACD,mBACE,OACA,+BACA,kCACD"}
1
+ {"version":3,"file":"columnPinningFeature.utils.js","names":[],"sources":["../../../src/features/column-pinning/columnPinningFeature.utils.ts"],"sourcesContent":["import {\n column_getIsVisible,\n row_getVisibleCells,\n row_getVisibleCellsByColumnId,\n table_getVisibleLeafColumns,\n} from '../column-visibility/columnVisibilityFeature.utils'\nimport { buildHeaderGroups } from '../../core/headers/buildHeaderGroups'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { Header } from '../../types/Header'\nimport type { HeaderGroup } from '../../types/HeaderGroup'\nimport type { Cell } from '../../types/Cell'\nimport type { Row } from '../../types/Row'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n ColumnPinningPosition,\n ColumnPinningState,\n} from './columnPinningFeature.types'\n\n// State\n\n/**\n * Returns the default column pinning state.\n *\n * Feature constructors use this value to initialize the table state or option defaults when no user value is provided.\n *\n * @example\n * ```ts\n * const initialValue = getDefaultColumnPinningState()\n * ```\n */\nexport function getDefaultColumnPinningState(): ColumnPinningState {\n return {\n left: [],\n right: [],\n }\n}\n\n// Column APIs\n\n/**\n * Pin. for a column.\n *\n * This is the static implementation behind the matching column instance API.\n *\n * @example\n * ```ts\n * column_pin(column, 'left')\n * ```\n */\nexport function column_pin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition,\n) {\n // Single pass: collect non-empty leaf-column ids.\n const leafColumns = column.getLeafColumns()\n const columnIds: Array<string> = []\n for (let i = 0; i < leafColumns.length; i++) {\n const id = leafColumns[i]!.id\n if (id) columnIds.push(id)\n }\n\n table_setColumnPinning(column.table, (old) => {\n if (position === 'right') {\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: [\n ...old.right.filter((d) => !columnIds.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [...old.left.filter((d) => !columnIds.includes(d)), ...columnIds],\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n }\n\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n })\n}\n\n/**\n * Returns whether a column can use pin.\n *\n * This combines column options, table options, and any required accessor or feature state for the capability.\n *\n * @example\n * ```ts\n * const value = column_getCanPin(column)\n * ```\n */\nexport function column_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const leafColumns = column.getLeafColumns() as Array<\n Column_Internal<TFeatures, TData, TValue>\n >\n\n return leafColumns.some(\n (leafColumn) =>\n (leafColumn.columnDef.enablePinning ?? true) &&\n (column.table.options.enableColumnPinning ?? true),\n )\n}\n\n/**\n * Returns is pinned 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_getIsPinned(column)\n * ```\n */\nexport function column_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): ColumnPinningPosition | false {\n const leafColumnIds = column.getLeafColumns().map((d) => d.id)\n\n const { left, right } =\n column.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const isLeft = leafColumnIds.some((d) => left.includes(d))\n const isRight = leafColumnIds.some((d) => right.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n}\n\n/**\n * Returns pinned index 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_getPinnedIndex(column)\n * ```\n */\nexport function column_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const position = column_getIsPinned(column)\n\n return position\n ? (column.table.atoms.columnPinning?.get()?.[position].indexOf(column.id) ??\n -1)\n : 0\n}\n\n// Row APIs\n\n/**\n * Returns center visible cells for a row.\n *\n * This is the static implementation behind the matching row instance API and may read row caches or table state atoms.\n *\n * @example\n * ```ts\n * const value = row_getCenterVisibleCells(row)\n * ```\n */\nexport function row_getCenterVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getVisibleCells',\n row_getVisibleCells,\n )\n const { left, right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return allCells.filter((d) => !leftAndRight.includes(d.column.id))\n}\n\n/**\n * Returns left visible cells for a row.\n *\n * This is the static implementation behind the matching row instance API and may read row caches or table state atoms.\n *\n * @example\n * ```ts\n * const value = row_getLeftVisibleCells(row)\n * ```\n */\nexport function row_getLeftVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const { left } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!left.length) return []\n const allVisibleCells = callMemoOrStaticFn(\n row,\n 'getVisibleCellsByColumnId',\n row_getVisibleCellsByColumnId,\n )\n const cells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < left.length; i++) {\n const columnId = left[i]!\n const cell = allVisibleCells[columnId]\n if (cell) {\n // Assign position property directly to preserve prototype chain\n cell.position = 'left'\n cells.push(cell)\n }\n }\n return cells\n}\n\n/**\n * Returns right visible cells for a row.\n *\n * This is the static implementation behind the matching row instance API and may read row caches or table state atoms.\n *\n * @example\n * ```ts\n * const value = row_getRightVisibleCells(row)\n * ```\n */\nexport function row_getRightVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const { right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!right.length) return [] as Array<Cell<TFeatures, TData, unknown>>\n const allVisibleCells = callMemoOrStaticFn(\n row,\n 'getVisibleCellsByColumnId',\n row_getVisibleCellsByColumnId,\n )\n const cells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < right.length; i++) {\n const columnId = right[i]!\n const cell = allVisibleCells[columnId]\n if (cell) {\n // Assign position property directly to preserve prototype chain\n cell.position = 'right'\n cells.push(cell)\n }\n }\n return cells\n}\n\n// Table APIs\n\n/**\n * Updates the table's column pinning state slice.\n *\n * The updater follows TanStack Table updater semantics and is routed through the corresponding `on*Change` option or backing atom.\n *\n * @example\n * ```ts\n * table_setColumnPinning(table, (old) => old)\n * ```\n */\nexport function table_setColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnPinningState>,\n) {\n table.options.onColumnPinningChange?.(updater)\n}\n\n/**\n * Resets the table's column pinning state slice.\n *\n * By default the reset uses `table.initialState`; when supported, a blank/default reset bypasses the saved initial value.\n *\n * @example\n * ```ts\n * table_resetColumnPinning(table)\n * table_resetColumnPinning(table, true)\n * ```\n */\nexport function table_resetColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnPinning(\n table,\n defaultState\n ? getDefaultColumnPinningState()\n : cloneState(\n table.initialState.columnPinning ?? getDefaultColumnPinningState(),\n ),\n )\n}\n\n/**\n * Returns is some columns pinned 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_getIsSomeColumnsPinned(table)\n * ```\n */\nexport function table_getIsSomeColumnsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, position?: ColumnPinningPosition) {\n const pinningState = table.atoms.columnPinning?.get()\n\n if (!position) {\n return Boolean(pinningState?.left.length || pinningState?.right.length)\n }\n return Boolean(pinningState?.[position].length)\n}\n\n// header groups\n\n/**\n * Returns left header groups 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_getLeftHeaderGroups(table)\n * ```\n */\nexport function table_getLeftHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumnsById = table.getAllLeafColumnsById() as Record<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns: Array<Column_Internal<TFeatures, TData, unknown>> =\n []\n for (let i = 0; i < left.length; i++) {\n const column = leafColumnsById[left[i]!]\n if (\n column &&\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)\n ) {\n orderedLeafColumns.push(column)\n }\n }\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left')\n}\n\n/**\n * Returns right header groups 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_getRightHeaderGroups(table)\n * ```\n */\nexport function table_getRightHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumnsById = table.getAllLeafColumnsById() as Record<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns: Array<Column_Internal<TFeatures, TData, unknown>> =\n []\n for (let i = 0; i < right.length; i++) {\n const column = leafColumnsById[right[i]!]\n if (\n column &&\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)\n ) {\n orderedLeafColumns.push(column)\n }\n }\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right')\n}\n\n/**\n * Returns center header groups 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_getCenterHeaderGroups(table)\n * ```\n */\nexport function table_getCenterHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<HeaderGroup<TFeatures, TData>> {\n const allColumns = table.getAllColumns()\n let leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n\n leafColumns = leafColumns.filter(\n (column) => !leftAndRight.includes(column.id),\n )\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n}\n\n// footer groups\n\n/**\n * Returns left footer groups 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_getLeftFooterGroups(table)\n * ```\n */\nexport function table_getLeftFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n/**\n * Returns right footer groups 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_getRightFooterGroups(table)\n * ```\n */\nexport function table_getRightFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n/**\n * Returns center footer groups 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_getCenterFooterGroups(table)\n * ```\n */\nexport function table_getCenterFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n// flat headers\n\n/**\n * Returns left flat headers 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_getLeftFlatHeaders(table)\n * ```\n */\nexport function table_getLeftFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const leftHeaderGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < leftHeaderGroups.length; i++) {\n const headers = leftHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j])\n }\n }\n return result\n}\n\n/**\n * Returns right flat headers 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_getRightFlatHeaders(table)\n * ```\n */\nexport function table_getRightFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rightHeaderGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < rightHeaderGroups.length; i++) {\n const headers = rightHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j])\n }\n }\n return result\n}\n\n/**\n * Returns center flat headers 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_getCenterFlatHeaders(table)\n * ```\n */\nexport function table_getCenterFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const centerHeaderGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < centerHeaderGroups.length; i++) {\n const headers = centerHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j])\n }\n }\n return result\n}\n\n// leaf headers\n\n/**\n * Returns left leaf headers 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_getLeftLeafHeaders(table)\n * ```\n */\nexport function table_getLeftLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftFlatHeaders',\n table_getLeftFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n/**\n * Returns right leaf headers 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_getRightLeafHeaders(table)\n * ```\n */\nexport function table_getRightLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightFlatHeaders',\n table_getRightFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n/**\n * Returns center leaf headers 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_getCenterLeafHeaders(table)\n * ```\n */\nexport function table_getCenterLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterFlatHeaders',\n table_getCenterFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n// leaf columns\n\n/**\n * Returns left 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_getLeftLeafColumns(table)\n * ```\n */\nexport function table_getLeftLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leafColumnsById = table.getAllLeafColumnsById()\n const result: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < left.length; i++) {\n const column = leafColumnsById[left[i]!]\n if (column) result.push(column)\n }\n return result\n}\n\n/**\n * Returns right 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_getRightLeafColumns(table)\n * ```\n */\nexport function table_getRightLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leafColumnsById = table.getAllLeafColumnsById()\n const result: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < right.length; i++) {\n const column = leafColumnsById[right[i]!]\n if (column) result.push(column)\n }\n return result\n}\n\n/**\n * Returns center 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_getCenterLeafColumns(table)\n * ```\n */\nexport function table_getCenterLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return table.getAllLeafColumns().filter((d) => !leftAndRight.includes(d.id))\n}\n\n/**\n * Returns pinned 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_getPinnedLeafColumns(table)\n * ```\n */\nexport function table_getPinnedLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: ColumnPinningPosition | 'center',\n) {\n return !position\n ? table.getAllLeafColumns()\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n )\n}\n\n// visible leaf columns\n\n/**\n * Returns left visible 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_getLeftVisibleLeafColumns(table)\n * ```\n */\nexport function table_getLeftVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Returns right visible 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_getRightVisibleLeafColumns(table)\n * ```\n */\nexport function table_getRightVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Returns center visible 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_getCenterVisibleLeafColumns(table)\n * ```\n */\nexport function table_getCenterVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Returns pinned visible 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_getPinnedVisibleLeafColumns(table)\n * ```\n */\nexport function table_getPinnedVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: ColumnPinningPosition | 'center',\n) {\n return !position\n ? callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n )\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftVisibleLeafColumns',\n table_getLeftVisibleLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightVisibleLeafColumns',\n table_getRightVisibleLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterVisibleLeafColumns',\n table_getCenterVisibleLeafColumns,\n )\n}\n"],"mappings":"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"}
@@ -2,6 +2,11 @@ const require_utils = require('../../utils.cjs');
2
2
  const require_columnResizingFeature_utils = require('./columnResizingFeature.utils.cjs');
3
3
 
4
4
  //#region src/features/column-resizing/columnResizingFeature.ts
5
+ /**
6
+ * Creates the stock column resizing feature.
7
+ *
8
+ * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
9
+ */
5
10
  function constructColumnResizingFeature() {
6
11
  return {
7
12
  getInitialState: (initialState) => {
@@ -35,8 +40,10 @@ function constructColumnResizingFeature() {
35
40
  };
36
41
  }
37
42
  /**
38
- * The Column Resizing feature adds column resizing state and APIs to the table and column objects.
39
- * **Note:** This is dependent on the Column Sizing feature.
43
+ * The stock column resizing feature.
44
+ *
45
+ * Register this feature with `columnSizingFeature` to add resize interaction
46
+ * state and APIs for drag-based column resizing.
40
47
  */
41
48
  const columnResizingFeature = constructColumnResizingFeature();
42
49
 
@@ -1 +1 @@
1
- {"version":3,"file":"columnResizingFeature.cjs","names":["getDefaultColumnResizingState","makeStateUpdater","column_getCanResize","column_getIsResizing","header_getResizeHandler","table_setColumnResizing","table_resetHeaderSizeInfo"],"sources":["../../../src/features/column-resizing/columnResizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanResize,\n column_getIsResizing,\n getDefaultColumnResizingState,\n header_getResizeHandler,\n table_resetHeaderSizeInfo,\n table_setColumnResizing,\n} from './columnResizingFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// Column_ColumnResizing,\n// Header_ColumnResizing,\n// TableOptions_ColumnResizing,\n// TableState_ColumnResizing,\n// Table_ColumnResizing,\n// } from './columnResizingFeature.types'\n\nexport interface ColumnResizingFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Column: Column_ColumnResizing\n // Header: Header_ColumnResizing\n // Table: Table_ColumnResizing\n // TableOptions: TableOptions_ColumnResizing\n // TableState: TableState_ColumnResizing\n}\n\nexport function constructColumnResizingFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<ColumnResizingFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n columnResizing: getDefaultColumnResizingState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnResizingChange: makeStateUpdater('columnResizing', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnResizingFeature', prototype, table, {\n column_getCanResize: {\n fn: (column) => column_getCanResize(column),\n },\n column_getIsResizing: {\n fn: (column) => column_getIsResizing(column),\n },\n })\n },\n\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnResizingFeature', prototype, table, {\n header_getResizeHandler: {\n fn: (header, _contextDocument) =>\n header_getResizeHandler(header, _contextDocument),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnResizingFeature', table, {\n table_setColumnResizing: {\n fn: (updater) => table_setColumnResizing(table, updater),\n },\n table_resetHeaderSizeInfo: {\n fn: (defaultState) => table_resetHeaderSizeInfo(table, defaultState),\n },\n })\n },\n }\n}\n\n/**\n * The Column Resizing feature adds column resizing state and APIs to the table and column objects.\n * **Note:** This is dependent on the Column Sizing feature.\n */\nexport const columnResizingFeature = constructColumnResizingFeature()\n"],"mappings":";;;;AAkCA,SAAgB,iCAGuD;AACrE,QAAO;EACL,kBAAkB,iBAAiB;AACjC,UAAO;IACL,gBAAgBA,mEAA+B;IAC/C,GAAG;IACJ;;EAGH,yBAAyB,UAAU;AACjC,UAAO;IACL,kBAAkB;IAClB,uBAAuB;IACvB,wBAAwBC,+BAAiB,kBAAkB,MAAM;IAClE;;EAGH,wBAAwB,WAAW,UAAU;AAC3C,qCAAoB,yBAAyB,WAAW,OAAO;IAC7D,qBAAqB,EACnB,KAAK,WAAWC,wDAAoB,OAAO,EAC5C;IACD,sBAAsB,EACpB,KAAK,WAAWC,yDAAqB,OAAO,EAC7C;IACF,CAAC;;EAGJ,wBAAwB,WAAW,UAAU;AAC3C,qCAAoB,yBAAyB,WAAW,OAAO,EAC7D,yBAAyB,EACvB,KAAK,QAAQ,qBACXC,4DAAwB,QAAQ,iBAAiB,EACpD,EACF,CAAC;;EAGJ,qBAAqB,UAAU;AAC7B,iCAAgB,yBAAyB,OAAO;IAC9C,yBAAyB,EACvB,KAAK,YAAYC,4DAAwB,OAAO,QAAQ,EACzD;IACD,2BAA2B,EACzB,KAAK,iBAAiBC,8DAA0B,OAAO,aAAa,EACrE;IACF,CAAC;;EAEL;;;;;;AAOH,MAAa,wBAAwB,gCAAgC"}
1
+ {"version":3,"file":"columnResizingFeature.cjs","names":["getDefaultColumnResizingState","makeStateUpdater","column_getCanResize","column_getIsResizing","header_getResizeHandler","table_setColumnResizing","table_resetHeaderSizeInfo"],"sources":["../../../src/features/column-resizing/columnResizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanResize,\n column_getIsResizing,\n getDefaultColumnResizingState,\n header_getResizeHandler,\n table_resetHeaderSizeInfo,\n table_setColumnResizing,\n} from './columnResizingFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// Column_ColumnResizing,\n// Header_ColumnResizing,\n// TableOptions_ColumnResizing,\n// TableState_ColumnResizing,\n// Table_ColumnResizing,\n// } from './columnResizingFeature.types'\n\nexport interface ColumnResizingFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Column: Column_ColumnResizing\n // Header: Header_ColumnResizing\n // Table: Table_ColumnResizing\n // TableOptions: TableOptions_ColumnResizing\n // TableState: TableState_ColumnResizing\n}\n\n/**\n * Creates the stock column resizing feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructColumnResizingFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<ColumnResizingFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n columnResizing: getDefaultColumnResizingState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnResizingChange: makeStateUpdater('columnResizing', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnResizingFeature', prototype, table, {\n column_getCanResize: {\n fn: (column) => column_getCanResize(column),\n },\n column_getIsResizing: {\n fn: (column) => column_getIsResizing(column),\n },\n })\n },\n\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnResizingFeature', prototype, table, {\n header_getResizeHandler: {\n fn: (header, _contextDocument) =>\n header_getResizeHandler(header, _contextDocument),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnResizingFeature', table, {\n table_setColumnResizing: {\n fn: (updater) => table_setColumnResizing(table, updater),\n },\n table_resetHeaderSizeInfo: {\n fn: (defaultState) => table_resetHeaderSizeInfo(table, defaultState),\n },\n })\n },\n }\n}\n\n/**\n * The stock column resizing feature.\n *\n * Register this feature with `columnSizingFeature` to add resize interaction\n * state and APIs for drag-based column resizing.\n */\nexport const columnResizingFeature = constructColumnResizingFeature()\n"],"mappings":";;;;;;;;;AAuCA,SAAgB,iCAGuD;CACrE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,gBAAgBA,mEAA+B;IAC/C,GAAG;IACJ;;EAGH,yBAAyB,UAAU;GACjC,OAAO;IACL,kBAAkB;IAClB,uBAAuB;IACvB,wBAAwBC,+BAAiB,kBAAkB,MAAM;IAClE;;EAGH,wBAAwB,WAAW,UAAU;GAC3C,kCAAoB,yBAAyB,WAAW,OAAO;IAC7D,qBAAqB,EACnB,KAAK,WAAWC,wDAAoB,OAAO,EAC5C;IACD,sBAAsB,EACpB,KAAK,WAAWC,yDAAqB,OAAO,EAC7C;IACF,CAAC;;EAGJ,wBAAwB,WAAW,UAAU;GAC3C,kCAAoB,yBAAyB,WAAW,OAAO,EAC7D,yBAAyB,EACvB,KAAK,QAAQ,qBACXC,4DAAwB,QAAQ,iBAAiB,EACpD,EACF,CAAC;;EAGJ,qBAAqB,UAAU;GAC7B,8BAAgB,yBAAyB,OAAO;IAC9C,yBAAyB,EACvB,KAAK,YAAYC,4DAAwB,OAAO,QAAQ,EACzD;IACD,2BAA2B,EACzB,KAAK,iBAAiBC,8DAA0B,OAAO,aAAa,EACrE;IACF,CAAC;;EAEL;;;;;;;;AASH,MAAa,wBAAwB,gCAAgC"}
@@ -3,10 +3,17 @@ import { TableFeature, TableFeatures } from "../../types/TableFeatures.cjs";
3
3
 
4
4
  //#region src/features/column-resizing/columnResizingFeature.d.ts
5
5
  interface ColumnResizingFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {}
6
+ /**
7
+ * Creates the stock column resizing feature.
8
+ *
9
+ * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
10
+ */
6
11
  declare function constructColumnResizingFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<ColumnResizingFeatureConstructors<TFeatures, TData>>;
7
12
  /**
8
- * The Column Resizing feature adds column resizing state and APIs to the table and column objects.
9
- * **Note:** This is dependent on the Column Sizing feature.
13
+ * The stock column resizing feature.
14
+ *
15
+ * Register this feature with `columnSizingFeature` to add resize interaction
16
+ * state and APIs for drag-based column resizing.
10
17
  */
11
18
  declare const columnResizingFeature: TableFeature<ColumnResizingFeatureConstructors<TableFeatures, RowData>>;
12
19
  //#endregion
@@ -3,10 +3,17 @@ import { TableFeature, TableFeatures } from "../../types/TableFeatures.js";
3
3
 
4
4
  //#region src/features/column-resizing/columnResizingFeature.d.ts
5
5
  interface ColumnResizingFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {}
6
+ /**
7
+ * Creates the stock column resizing feature.
8
+ *
9
+ * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
10
+ */
6
11
  declare function constructColumnResizingFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<ColumnResizingFeatureConstructors<TFeatures, TData>>;
7
12
  /**
8
- * The Column Resizing feature adds column resizing state and APIs to the table and column objects.
9
- * **Note:** This is dependent on the Column Sizing feature.
13
+ * The stock column resizing feature.
14
+ *
15
+ * Register this feature with `columnSizingFeature` to add resize interaction
16
+ * state and APIs for drag-based column resizing.
10
17
  */
11
18
  declare const columnResizingFeature: TableFeature<ColumnResizingFeatureConstructors<TableFeatures, RowData>>;
12
19
  //#endregion
@@ -2,6 +2,11 @@ import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from "../../ut
2
2
  import { column_getCanResize, column_getIsResizing, getDefaultColumnResizingState, header_getResizeHandler, table_resetHeaderSizeInfo, table_setColumnResizing } from "./columnResizingFeature.utils.js";
3
3
 
4
4
  //#region src/features/column-resizing/columnResizingFeature.ts
5
+ /**
6
+ * Creates the stock column resizing feature.
7
+ *
8
+ * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
9
+ */
5
10
  function constructColumnResizingFeature() {
6
11
  return {
7
12
  getInitialState: (initialState) => {
@@ -35,8 +40,10 @@ function constructColumnResizingFeature() {
35
40
  };
36
41
  }
37
42
  /**
38
- * The Column Resizing feature adds column resizing state and APIs to the table and column objects.
39
- * **Note:** This is dependent on the Column Sizing feature.
43
+ * The stock column resizing feature.
44
+ *
45
+ * Register this feature with `columnSizingFeature` to add resize interaction
46
+ * state and APIs for drag-based column resizing.
40
47
  */
41
48
  const columnResizingFeature = constructColumnResizingFeature();
42
49
 
@@ -1 +1 @@
1
- {"version":3,"file":"columnResizingFeature.js","names":[],"sources":["../../../src/features/column-resizing/columnResizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanResize,\n column_getIsResizing,\n getDefaultColumnResizingState,\n header_getResizeHandler,\n table_resetHeaderSizeInfo,\n table_setColumnResizing,\n} from './columnResizingFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// Column_ColumnResizing,\n// Header_ColumnResizing,\n// TableOptions_ColumnResizing,\n// TableState_ColumnResizing,\n// Table_ColumnResizing,\n// } from './columnResizingFeature.types'\n\nexport interface ColumnResizingFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Column: Column_ColumnResizing\n // Header: Header_ColumnResizing\n // Table: Table_ColumnResizing\n // TableOptions: TableOptions_ColumnResizing\n // TableState: TableState_ColumnResizing\n}\n\nexport function constructColumnResizingFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<ColumnResizingFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n columnResizing: getDefaultColumnResizingState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnResizingChange: makeStateUpdater('columnResizing', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnResizingFeature', prototype, table, {\n column_getCanResize: {\n fn: (column) => column_getCanResize(column),\n },\n column_getIsResizing: {\n fn: (column) => column_getIsResizing(column),\n },\n })\n },\n\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnResizingFeature', prototype, table, {\n header_getResizeHandler: {\n fn: (header, _contextDocument) =>\n header_getResizeHandler(header, _contextDocument),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnResizingFeature', table, {\n table_setColumnResizing: {\n fn: (updater) => table_setColumnResizing(table, updater),\n },\n table_resetHeaderSizeInfo: {\n fn: (defaultState) => table_resetHeaderSizeInfo(table, defaultState),\n },\n })\n },\n }\n}\n\n/**\n * The Column Resizing feature adds column resizing state and APIs to the table and column objects.\n * **Note:** This is dependent on the Column Sizing feature.\n */\nexport const columnResizingFeature = constructColumnResizingFeature()\n"],"mappings":";;;;AAkCA,SAAgB,iCAGuD;AACrE,QAAO;EACL,kBAAkB,iBAAiB;AACjC,UAAO;IACL,gBAAgB,+BAA+B;IAC/C,GAAG;IACJ;;EAGH,yBAAyB,UAAU;AACjC,UAAO;IACL,kBAAkB;IAClB,uBAAuB;IACvB,wBAAwB,iBAAiB,kBAAkB,MAAM;IAClE;;EAGH,wBAAwB,WAAW,UAAU;AAC3C,uBAAoB,yBAAyB,WAAW,OAAO;IAC7D,qBAAqB,EACnB,KAAK,WAAW,oBAAoB,OAAO,EAC5C;IACD,sBAAsB,EACpB,KAAK,WAAW,qBAAqB,OAAO,EAC7C;IACF,CAAC;;EAGJ,wBAAwB,WAAW,UAAU;AAC3C,uBAAoB,yBAAyB,WAAW,OAAO,EAC7D,yBAAyB,EACvB,KAAK,QAAQ,qBACX,wBAAwB,QAAQ,iBAAiB,EACpD,EACF,CAAC;;EAGJ,qBAAqB,UAAU;AAC7B,mBAAgB,yBAAyB,OAAO;IAC9C,yBAAyB,EACvB,KAAK,YAAY,wBAAwB,OAAO,QAAQ,EACzD;IACD,2BAA2B,EACzB,KAAK,iBAAiB,0BAA0B,OAAO,aAAa,EACrE;IACF,CAAC;;EAEL;;;;;;AAOH,MAAa,wBAAwB,gCAAgC"}
1
+ {"version":3,"file":"columnResizingFeature.js","names":[],"sources":["../../../src/features/column-resizing/columnResizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanResize,\n column_getIsResizing,\n getDefaultColumnResizingState,\n header_getResizeHandler,\n table_resetHeaderSizeInfo,\n table_setColumnResizing,\n} from './columnResizingFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// Column_ColumnResizing,\n// Header_ColumnResizing,\n// TableOptions_ColumnResizing,\n// TableState_ColumnResizing,\n// Table_ColumnResizing,\n// } from './columnResizingFeature.types'\n\nexport interface ColumnResizingFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Column: Column_ColumnResizing\n // Header: Header_ColumnResizing\n // Table: Table_ColumnResizing\n // TableOptions: TableOptions_ColumnResizing\n // TableState: TableState_ColumnResizing\n}\n\n/**\n * Creates the stock column resizing feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructColumnResizingFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<ColumnResizingFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n columnResizing: getDefaultColumnResizingState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnResizingChange: makeStateUpdater('columnResizing', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnResizingFeature', prototype, table, {\n column_getCanResize: {\n fn: (column) => column_getCanResize(column),\n },\n column_getIsResizing: {\n fn: (column) => column_getIsResizing(column),\n },\n })\n },\n\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnResizingFeature', prototype, table, {\n header_getResizeHandler: {\n fn: (header, _contextDocument) =>\n header_getResizeHandler(header, _contextDocument),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnResizingFeature', table, {\n table_setColumnResizing: {\n fn: (updater) => table_setColumnResizing(table, updater),\n },\n table_resetHeaderSizeInfo: {\n fn: (defaultState) => table_resetHeaderSizeInfo(table, defaultState),\n },\n })\n },\n }\n}\n\n/**\n * The stock column resizing feature.\n *\n * Register this feature with `columnSizingFeature` to add resize interaction\n * state and APIs for drag-based column resizing.\n */\nexport const columnResizingFeature = constructColumnResizingFeature()\n"],"mappings":";;;;;;;;;AAuCA,SAAgB,iCAGuD;CACrE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,gBAAgB,+BAA+B;IAC/C,GAAG;IACJ;;EAGH,yBAAyB,UAAU;GACjC,OAAO;IACL,kBAAkB;IAClB,uBAAuB;IACvB,wBAAwB,iBAAiB,kBAAkB,MAAM;IAClE;;EAGH,wBAAwB,WAAW,UAAU;GAC3C,oBAAoB,yBAAyB,WAAW,OAAO;IAC7D,qBAAqB,EACnB,KAAK,WAAW,oBAAoB,OAAO,EAC5C;IACD,sBAAsB,EACpB,KAAK,WAAW,qBAAqB,OAAO,EAC7C;IACF,CAAC;;EAGJ,wBAAwB,WAAW,UAAU;GAC3C,oBAAoB,yBAAyB,WAAW,OAAO,EAC7D,yBAAyB,EACvB,KAAK,QAAQ,qBACX,wBAAwB,QAAQ,iBAAiB,EACpD,EACF,CAAC;;EAGJ,qBAAqB,UAAU;GAC7B,gBAAgB,yBAAyB,OAAO;IAC9C,yBAAyB,EACvB,KAAK,YAAY,wBAAwB,OAAO,QAAQ,EACzD;IACD,2BAA2B,EACzB,KAAK,iBAAiB,0BAA0B,OAAO,aAAa,EACrE;IACF,CAAC;;EAEL;;;;;;;;AASH,MAAa,wBAAwB,gCAAgC"}
@@ -16,30 +16,38 @@ type ColumnResizeMode = 'onChange' | 'onEnd';
16
16
  type ColumnResizeDirection = 'ltr' | 'rtl';
17
17
  interface TableOptions_ColumnResizing {
18
18
  /**
19
- * Determines when the columnSizing state is updated. `onChange` updates the state when the user is dragging the resize handle. `onEnd` updates the state when the user releases the resize handle.
19
+ * Determines when committed `columnSizing` values are updated. `onChange`
20
+ * commits sizes while the resize handle is dragged; `onEnd` commits when the
21
+ * resize interaction finishes.
20
22
  */
21
23
  columnResizeMode?: ColumnResizeMode;
22
24
  /**
23
- * Enables or disables column resizing for the column.
25
+ * Enables or disables column resizing for the whole table.
24
26
  */
25
27
  enableColumnResizing?: boolean;
26
28
  /**
27
- * Enables or disables right-to-left support for resizing the column. defaults to 'ltr'.
29
+ * Sets the resize direction used to calculate drag offsets. Defaults to `ltr`.
28
30
  */
29
31
  columnResizeDirection?: ColumnResizeDirection;
30
32
  /**
31
- * If provided, this function will be called with an `updaterFn` when `state.columnResizing` changes. This overrides the default internal state management, so you will also need to supply `state.columnResizing` from your own managed state.
33
+ * Called with an updater when the transient `columnResizing` state changes.
34
+ * Pair this with `state.columnResizing` when using external state; external
35
+ * atoms can own the slice without this callback.
32
36
  */
33
37
  onColumnResizingChange?: OnChangeFn<columnResizingState>;
34
38
  }
35
39
  type ColumnResizingDefaultOptions = Pick<TableOptions_ColumnResizing, 'columnResizeMode' | 'onColumnResizingChange' | 'columnResizeDirection'>;
36
40
  interface Table_ColumnResizing {
37
41
  /**
38
- * Resets column sizing info to its initial state. If `defaultState` is `true`, the default state for the table will be used instead of the initialValue provided to the table.
42
+ * Resets transient resize interaction state to `initialState.columnResizing`.
43
+ * Pass `true` to reset to the feature's default blank resize state instead.
39
44
  */
40
45
  resetHeaderSizeInfo: (defaultState?: boolean) => void;
41
46
  /**
42
- * Sets the column sizing info state using an updater function or a value. This will trigger the underlying `oncolumnResizingChange` function if one is passed to the table options, otherwise the state will be managed automatically by the table.
47
+ * Sets the transient resize interaction state using a value or updater.
48
+ *
49
+ * The lowercase `c` in this API name matches the current generated v9 table
50
+ * API for the `columnResizing` state slice.
43
51
  */
44
52
  setcolumnResizing: (updater: Updater<columnResizingState>) => void;
45
53
  }
@@ -16,30 +16,38 @@ type ColumnResizeMode = 'onChange' | 'onEnd';
16
16
  type ColumnResizeDirection = 'ltr' | 'rtl';
17
17
  interface TableOptions_ColumnResizing {
18
18
  /**
19
- * Determines when the columnSizing state is updated. `onChange` updates the state when the user is dragging the resize handle. `onEnd` updates the state when the user releases the resize handle.
19
+ * Determines when committed `columnSizing` values are updated. `onChange`
20
+ * commits sizes while the resize handle is dragged; `onEnd` commits when the
21
+ * resize interaction finishes.
20
22
  */
21
23
  columnResizeMode?: ColumnResizeMode;
22
24
  /**
23
- * Enables or disables column resizing for the column.
25
+ * Enables or disables column resizing for the whole table.
24
26
  */
25
27
  enableColumnResizing?: boolean;
26
28
  /**
27
- * Enables or disables right-to-left support for resizing the column. defaults to 'ltr'.
29
+ * Sets the resize direction used to calculate drag offsets. Defaults to `ltr`.
28
30
  */
29
31
  columnResizeDirection?: ColumnResizeDirection;
30
32
  /**
31
- * If provided, this function will be called with an `updaterFn` when `state.columnResizing` changes. This overrides the default internal state management, so you will also need to supply `state.columnResizing` from your own managed state.
33
+ * Called with an updater when the transient `columnResizing` state changes.
34
+ * Pair this with `state.columnResizing` when using external state; external
35
+ * atoms can own the slice without this callback.
32
36
  */
33
37
  onColumnResizingChange?: OnChangeFn<columnResizingState>;
34
38
  }
35
39
  type ColumnResizingDefaultOptions = Pick<TableOptions_ColumnResizing, 'columnResizeMode' | 'onColumnResizingChange' | 'columnResizeDirection'>;
36
40
  interface Table_ColumnResizing {
37
41
  /**
38
- * Resets column sizing info to its initial state. If `defaultState` is `true`, the default state for the table will be used instead of the initialValue provided to the table.
42
+ * Resets transient resize interaction state to `initialState.columnResizing`.
43
+ * Pass `true` to reset to the feature's default blank resize state instead.
39
44
  */
40
45
  resetHeaderSizeInfo: (defaultState?: boolean) => void;
41
46
  /**
42
- * Sets the column sizing info state using an updater function or a value. This will trigger the underlying `oncolumnResizingChange` function if one is passed to the table options, otherwise the state will be managed automatically by the table.
47
+ * Sets the transient resize interaction state using a value or updater.
48
+ *
49
+ * The lowercase `c` in this API name matches the current generated v9 table
50
+ * API for the `columnResizing` state slice.
43
51
  */
44
52
  setcolumnResizing: (updater: Updater<columnResizingState>) => void;
45
53
  }
@@ -3,6 +3,16 @@ const require_coreColumnsFeature_utils = require('../../core/columns/coreColumns
3
3
  const require_columnSizingFeature_utils = require('../column-sizing/columnSizingFeature.utils.cjs');
4
4
 
5
5
  //#region src/features/column-resizing/columnResizingFeature.utils.ts
6
+ /**
7
+ * Returns the default column resizing state.
8
+ *
9
+ * Feature constructors use this value to initialize the table state or option defaults when no user value is provided.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const initialValue = getDefaultColumnResizingState()
14
+ * ```
15
+ */
6
16
  function getDefaultColumnResizingState() {
7
17
  return {
8
18
  startOffset: null,
@@ -13,13 +23,43 @@ function getDefaultColumnResizingState() {
13
23
  columnSizingStart: []
14
24
  };
15
25
  }
26
+ /**
27
+ * Returns whether a column can use resize.
28
+ *
29
+ * This combines column options, table options, and any required accessor or feature state for the capability.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const value = column_getCanResize(column)
34
+ * ```
35
+ */
16
36
  function column_getCanResize(column) {
17
37
  return (column.columnDef.enableResizing ?? true) && (column.table.options.enableColumnResizing ?? true);
18
38
  }
39
+ /**
40
+ * Returns is resizing for a column.
41
+ *
42
+ * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * const value = column_getIsResizing(column)
47
+ * ```
48
+ */
19
49
  function column_getIsResizing(column) {
20
50
  var _column$table$atoms$c;
21
51
  return ((_column$table$atoms$c = column.table.atoms.columnResizing) === null || _column$table$atoms$c === void 0 || (_column$table$atoms$c = _column$table$atoms$c.get()) === null || _column$table$atoms$c === void 0 ? void 0 : _column$table$atoms$c.isResizingColumn) === column.id;
22
52
  }
53
+ /**
54
+ * Returns resize handler for a header.
55
+ *
56
+ * This is the static implementation behind the matching header instance API and can account for nested header groups.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * const onMouseDown = header_getResizeHandler(header)
61
+ * ```
62
+ */
23
63
  function header_getResizeHandler(header, _contextDocument) {
24
64
  const column = require_coreColumnsFeature_utils.table_getColumn(header.column.table, header.column.id);
25
65
  const canResize = column_getCanResize(column);
@@ -116,13 +156,44 @@ function header_getResizeHandler(header, _contextDocument) {
116
156
  }));
117
157
  };
118
158
  }
159
+ /**
160
+ * Updates the table's column resizing state slice.
161
+ *
162
+ * The updater follows TanStack Table updater semantics and is routed through the corresponding `on*Change` option or backing atom.
163
+ *
164
+ * @example
165
+ * ```ts
166
+ * table_setColumnResizing(table, (old) => old)
167
+ * ```
168
+ */
119
169
  function table_setColumnResizing(table, updater) {
120
170
  var _table$options$onColu, _table$options;
121
171
  (_table$options$onColu = (_table$options = table.options).onColumnResizingChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
122
172
  }
173
+ /**
174
+ * Resets the table's header size info state slice.
175
+ *
176
+ * By default the reset uses `table.initialState`; when supported, a blank/default reset bypasses the saved initial value.
177
+ *
178
+ * @example
179
+ * ```ts
180
+ * table_resetHeaderSizeInfo(table)
181
+ * table_resetHeaderSizeInfo(table, true)
182
+ * ```
183
+ */
123
184
  function table_resetHeaderSizeInfo(table, defaultState) {
124
185
  table_setColumnResizing(table, defaultState ? getDefaultColumnResizingState() : require_utils.cloneState(table.initialState.columnResizing ?? getDefaultColumnResizingState()));
125
186
  }
187
+ /**
188
+ * Detects whether the current environment supports passive event listeners.
189
+ *
190
+ * Column resizing uses this to register pointer and touch listeners with the safest available options.
191
+ *
192
+ * @example
193
+ * ```ts
194
+ * const canUsePassiveListeners = passiveEventSupported()
195
+ * ```
196
+ */
126
197
  function passiveEventSupported() {
127
198
  let passiveSupported = null;
128
199
  if (typeof passiveSupported === "boolean") return passiveSupported;
@@ -141,6 +212,16 @@ function passiveEventSupported() {
141
212
  passiveSupported = supported;
142
213
  return passiveSupported;
143
214
  }
215
+ /**
216
+ * Returns whether an event is a touch-start event.
217
+ *
218
+ * Column resizing uses this to normalize mouse and touch resize interactions.
219
+ *
220
+ * @example
221
+ * ```ts
222
+ * const isTouch = isTouchStartEvent(event)
223
+ * ```
224
+ */
144
225
  function isTouchStartEvent(e) {
145
226
  return e.type === "touchstart";
146
227
  }
@@ -1 +1 @@
1
- {"version":3,"file":"columnResizingFeature.utils.cjs","names":["table_getColumn","header_getSize","column_getSize","cloneState"],"sources":["../../../src/features/column-resizing/columnResizingFeature.utils.ts"],"sourcesContent":["import {\n column_getSize,\n header_getSize,\n table_setColumnSizing,\n} from '../column-sizing/columnSizingFeature.utils'\nimport { table_getColumn } from '../../core/columns/coreColumnsFeature.utils'\nimport { cloneState } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Header } from '../../types/Header'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnSizingState } from '../column-sizing/columnSizingFeature.types'\nimport type { columnResizingState } from './columnResizingFeature.types'\n\nexport function getDefaultColumnResizingState(): columnResizingState {\n return {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n }\n}\n\nexport function column_getCanResize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (column.table.options.enableColumnResizing ?? true)\n )\n}\n\nexport function column_getIsResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n column.table.atoms.columnResizing?.get()?.isResizingColumn === column.id\n )\n}\n\nexport function header_getResizeHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>, _contextDocument?: Document) {\n const column = table_getColumn(header.column.table, header.column.id)!\n const canResize = column_getCanResize(column)\n\n return (event: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(event as any).persist?.()\n\n if (isTouchStartEvent(event)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (event.touches.length > 1) {\n return\n }\n }\n\n const startSize = header_getSize(header)\n\n const columnSizingStart: Array<[string, number]> = header\n .getLeafHeaders()\n .map((leafHeader) => [\n leafHeader.column.id,\n column_getSize(leafHeader.column),\n ])\n\n const clientX = isTouchStartEvent(event)\n ? Math.round(event.touches[0]!.clientX)\n : (event as MouseEvent).clientX\n\n const newColumnSizing: ColumnSizingState = {}\n\n const updateOffset = (eventType: 'move' | 'end', clientXPos?: number) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n table_setColumnResizing(column.table, (old) => {\n const deltaDirection =\n column.table.options.columnResizeDirection === 'rtl' ? -1 : 1\n const deltaOffset =\n (clientXPos - (old.startOffset ?? 0)) * deltaDirection\n const startSize = old.startSize ?? 0\n const deltaPercentage = Math.max(\n startSize > 0 ? deltaOffset / startSize : 0,\n -0.999999,\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(\n headerSize > 0\n ? headerSize + headerSize * deltaPercentage\n : deltaOffset / old.columnSizingStart.length,\n 0,\n ) * 100,\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n column.table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table_setColumnSizing(column.table, (old) => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) => updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const contextDocument =\n _contextDocument || typeof document !== 'undefined' ? document : null\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n contextDocument?.removeEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n )\n contextDocument?.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (touchEvent: TouchEvent) => {\n if (touchEvent.cancelable) {\n touchEvent.preventDefault()\n touchEvent.stopPropagation()\n }\n onMove(touchEvent.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n contextDocument?.removeEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n )\n contextDocument?.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]?.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(event)) {\n contextDocument?.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported,\n )\n } else {\n contextDocument?.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported,\n )\n }\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n}\n\nexport function table_setColumnResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<columnResizingState>,\n) {\n table.options.onColumnResizingChange?.(updater)\n}\n\nexport function table_resetHeaderSizeInfo<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnResizing(\n table,\n defaultState\n ? getDefaultColumnResizingState()\n : cloneState(\n table.initialState.columnResizing ?? getDefaultColumnResizingState(),\n ),\n )\n}\n\nexport function passiveEventSupported() {\n let passiveSupported: boolean | null = null\n\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nexport function isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"columnResizingFeature.utils.cjs","names":["table_getColumn","header_getSize","column_getSize","cloneState"],"sources":["../../../src/features/column-resizing/columnResizingFeature.utils.ts"],"sourcesContent":["import {\n column_getSize,\n header_getSize,\n table_setColumnSizing,\n} from '../column-sizing/columnSizingFeature.utils'\nimport { table_getColumn } from '../../core/columns/coreColumnsFeature.utils'\nimport { cloneState } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Header } from '../../types/Header'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnSizingState } from '../column-sizing/columnSizingFeature.types'\nimport type { columnResizingState } from './columnResizingFeature.types'\n\n/**\n * Returns the default column resizing state.\n *\n * Feature constructors use this value to initialize the table state or option defaults when no user value is provided.\n *\n * @example\n * ```ts\n * const initialValue = getDefaultColumnResizingState()\n * ```\n */\nexport function getDefaultColumnResizingState(): columnResizingState {\n return {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n }\n}\n\n/**\n * Returns whether a column can use resize.\n *\n * This combines column options, table options, and any required accessor or feature state for the capability.\n *\n * @example\n * ```ts\n * const value = column_getCanResize(column)\n * ```\n */\nexport function column_getCanResize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (column.table.options.enableColumnResizing ?? true)\n )\n}\n\n/**\n * Returns is resizing 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_getIsResizing(column)\n * ```\n */\nexport function column_getIsResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n column.table.atoms.columnResizing?.get()?.isResizingColumn === column.id\n )\n}\n\n/**\n * Returns resize handler for a header.\n *\n * This is the static implementation behind the matching header instance API and can account for nested header groups.\n *\n * @example\n * ```ts\n * const onMouseDown = header_getResizeHandler(header)\n * ```\n */\nexport function header_getResizeHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>, _contextDocument?: Document) {\n const column = table_getColumn(header.column.table, header.column.id)!\n const canResize = column_getCanResize(column)\n\n return (event: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(event as any).persist?.()\n\n if (isTouchStartEvent(event)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (event.touches.length > 1) {\n return\n }\n }\n\n const startSize = header_getSize(header)\n\n const columnSizingStart: Array<[string, number]> = header\n .getLeafHeaders()\n .map((leafHeader) => [\n leafHeader.column.id,\n column_getSize(leafHeader.column),\n ])\n\n const clientX = isTouchStartEvent(event)\n ? Math.round(event.touches[0]!.clientX)\n : (event as MouseEvent).clientX\n\n const newColumnSizing: ColumnSizingState = {}\n\n const updateOffset = (eventType: 'move' | 'end', clientXPos?: number) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n table_setColumnResizing(column.table, (old) => {\n const deltaDirection =\n column.table.options.columnResizeDirection === 'rtl' ? -1 : 1\n const deltaOffset =\n (clientXPos - (old.startOffset ?? 0)) * deltaDirection\n const startSize = old.startSize ?? 0\n const deltaPercentage = Math.max(\n startSize > 0 ? deltaOffset / startSize : 0,\n -0.999999,\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(\n headerSize > 0\n ? headerSize + headerSize * deltaPercentage\n : deltaOffset / old.columnSizingStart.length,\n 0,\n ) * 100,\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n column.table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table_setColumnSizing(column.table, (old) => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) => updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const contextDocument =\n _contextDocument || typeof document !== 'undefined' ? document : null\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n contextDocument?.removeEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n )\n contextDocument?.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (touchEvent: TouchEvent) => {\n if (touchEvent.cancelable) {\n touchEvent.preventDefault()\n touchEvent.stopPropagation()\n }\n onMove(touchEvent.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n contextDocument?.removeEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n )\n contextDocument?.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]?.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(event)) {\n contextDocument?.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported,\n )\n } else {\n contextDocument?.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported,\n )\n }\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n}\n\n/**\n * Updates the table's column resizing state slice.\n *\n * The updater follows TanStack Table updater semantics and is routed through the corresponding `on*Change` option or backing atom.\n *\n * @example\n * ```ts\n * table_setColumnResizing(table, (old) => old)\n * ```\n */\nexport function table_setColumnResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<columnResizingState>,\n) {\n table.options.onColumnResizingChange?.(updater)\n}\n\n/**\n * Resets the table's header size info state slice.\n *\n * By default the reset uses `table.initialState`; when supported, a blank/default reset bypasses the saved initial value.\n *\n * @example\n * ```ts\n * table_resetHeaderSizeInfo(table)\n * table_resetHeaderSizeInfo(table, true)\n * ```\n */\nexport function table_resetHeaderSizeInfo<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnResizing(\n table,\n defaultState\n ? getDefaultColumnResizingState()\n : cloneState(\n table.initialState.columnResizing ?? getDefaultColumnResizingState(),\n ),\n )\n}\n\n/**\n * Detects whether the current environment supports passive event listeners.\n *\n * Column resizing uses this to register pointer and touch listeners with the safest available options.\n *\n * @example\n * ```ts\n * const canUsePassiveListeners = passiveEventSupported()\n * ```\n */\nexport function passiveEventSupported() {\n let passiveSupported: boolean | null = null\n\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\n/**\n * Returns whether an event is a touch-start event.\n *\n * Column resizing uses this to normalize mouse and touch resize interactions.\n *\n * @example\n * ```ts\n * const isTouch = isTouchStartEvent(event)\n * ```\n */\nexport function isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"mappings":"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"}