@tanstack/table-core 9.0.0-beta.31 → 9.0.0-beta.34

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 (323) hide show
  1. package/dist/core/cells/constructCell.cjs +1 -4
  2. package/dist/core/cells/constructCell.cjs.map +1 -1
  3. package/dist/core/cells/constructCell.d.cts +1 -1
  4. package/dist/core/cells/constructCell.d.ts +1 -1
  5. package/dist/core/cells/constructCell.js +1 -4
  6. package/dist/core/cells/constructCell.js.map +1 -1
  7. package/dist/core/cells/coreCellsFeature.types.d.cts +1 -1
  8. package/dist/core/cells/coreCellsFeature.types.d.ts +1 -1
  9. package/dist/core/cells/coreCellsFeature.utils.d.cts +1 -1
  10. package/dist/core/cells/coreCellsFeature.utils.d.ts +1 -1
  11. package/dist/core/columns/constructColumn.cjs +3 -9
  12. package/dist/core/columns/constructColumn.cjs.map +1 -1
  13. package/dist/core/columns/constructColumn.js +3 -9
  14. package/dist/core/columns/constructColumn.js.map +1 -1
  15. package/dist/core/columns/coreColumnsFeature.cjs +12 -18
  16. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  17. package/dist/core/columns/coreColumnsFeature.js +12 -18
  18. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  19. package/dist/core/columns/coreColumnsFeature.utils.cjs +2 -6
  20. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.utils.js +2 -6
  22. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  23. package/dist/core/headers/buildHeaderGroups.cjs +1 -2
  24. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  25. package/dist/core/headers/buildHeaderGroups.js +1 -2
  26. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  27. package/dist/core/headers/constructHeader.cjs +1 -4
  28. package/dist/core/headers/constructHeader.cjs.map +1 -1
  29. package/dist/core/headers/constructHeader.js +1 -4
  30. package/dist/core/headers/constructHeader.js.map +1 -1
  31. package/dist/core/headers/coreHeadersFeature.cjs +8 -11
  32. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  33. package/dist/core/headers/coreHeadersFeature.js +8 -11
  34. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  35. package/dist/core/headers/coreHeadersFeature.utils.cjs +2 -4
  36. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  37. package/dist/core/headers/coreHeadersFeature.utils.js +2 -4
  38. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  39. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +3 -3
  40. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +3 -3
  41. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +6 -24
  42. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  43. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +1 -1
  44. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +1 -1
  45. package/dist/core/row-models/coreRowModelsFeature.utils.js +6 -24
  46. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  47. package/dist/core/row-models/createCoreRowModel.cjs +2 -3
  48. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  49. package/dist/core/row-models/createCoreRowModel.d.cts +1 -1
  50. package/dist/core/row-models/createCoreRowModel.d.ts +1 -1
  51. package/dist/core/row-models/createCoreRowModel.js +2 -3
  52. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  53. package/dist/core/rows/constructRow.cjs +2 -8
  54. package/dist/core/rows/constructRow.cjs.map +1 -1
  55. package/dist/core/rows/constructRow.js +2 -8
  56. package/dist/core/rows/constructRow.js.map +1 -1
  57. package/dist/core/rows/coreRowsFeature.cjs +4 -1
  58. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  59. package/dist/core/rows/coreRowsFeature.js +4 -1
  60. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  61. package/dist/core/rows/coreRowsFeature.types.d.cts +1 -1
  62. package/dist/core/rows/coreRowsFeature.types.d.ts +1 -1
  63. package/dist/core/rows/coreRowsFeature.utils.cjs +3 -4
  64. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  65. package/dist/core/rows/coreRowsFeature.utils.d.cts +1 -1
  66. package/dist/core/rows/coreRowsFeature.utils.d.ts +1 -1
  67. package/dist/core/rows/coreRowsFeature.utils.js +3 -4
  68. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  69. package/dist/core/table/constructTable.cjs +4 -10
  70. package/dist/core/table/constructTable.cjs.map +1 -1
  71. package/dist/core/table/constructTable.js +4 -10
  72. package/dist/core/table/constructTable.js.map +1 -1
  73. package/dist/experimental-worker-plugin.cjs +14 -0
  74. package/dist/experimental-worker-plugin.d.cts +5 -0
  75. package/dist/experimental-worker-plugin.d.ts +5 -0
  76. package/dist/experimental-worker-plugin.js +6 -0
  77. package/dist/features/column-faceting/columnFacetingFeature.cjs +12 -18
  78. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  79. package/dist/features/column-faceting/columnFacetingFeature.js +12 -18
  80. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  81. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +1 -1
  82. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +1 -1
  83. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +7 -25
  84. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  85. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +1 -1
  86. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +1 -1
  87. package/dist/features/column-faceting/columnFacetingFeature.utils.js +7 -25
  88. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  89. package/dist/features/column-faceting/createFacetedRowModel.cjs +8 -14
  90. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  91. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  92. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  93. package/dist/features/column-faceting/createFacetedRowModel.js +8 -14
  94. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  95. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +1 -1
  96. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +1 -1
  97. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +10 -13
  98. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  99. package/dist/features/column-filtering/columnFilteringFeature.utils.js +10 -13
  100. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  101. package/dist/features/column-filtering/createFilteredRowModel.cjs +12 -18
  102. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  103. package/dist/features/column-filtering/createFilteredRowModel.d.cts +1 -1
  104. package/dist/features/column-filtering/createFilteredRowModel.d.ts +1 -1
  105. package/dist/features/column-filtering/createFilteredRowModel.js +12 -18
  106. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  107. package/dist/features/column-grouping/columnGroupingFeature.cjs +1 -4
  108. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  109. package/dist/features/column-grouping/columnGroupingFeature.js +1 -4
  110. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  111. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +4 -4
  112. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +4 -4
  113. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +8 -13
  114. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  115. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +2 -2
  116. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +2 -2
  117. package/dist/features/column-grouping/columnGroupingFeature.utils.js +8 -13
  118. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  119. package/dist/features/column-grouping/createGroupedRowModel.cjs +3 -7
  120. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  121. package/dist/features/column-grouping/createGroupedRowModel.d.cts +1 -1
  122. package/dist/features/column-grouping/createGroupedRowModel.d.ts +1 -1
  123. package/dist/features/column-grouping/createGroupedRowModel.js +3 -7
  124. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  125. package/dist/features/column-ordering/columnOrderingFeature.cjs +13 -19
  126. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  127. package/dist/features/column-ordering/columnOrderingFeature.js +13 -19
  128. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  129. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +6 -11
  130. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
  131. package/dist/features/column-ordering/columnOrderingFeature.utils.js +6 -11
  132. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
  133. package/dist/features/column-pinning/columnPinningFeature.cjs +78 -114
  134. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  135. package/dist/features/column-pinning/columnPinningFeature.js +78 -114
  136. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  137. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +1 -1
  138. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +1 -1
  139. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +15 -28
  140. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  141. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +2 -2
  142. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +2 -2
  143. package/dist/features/column-pinning/columnPinningFeature.utils.js +15 -28
  144. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  145. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +12 -16
  146. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  147. package/dist/features/column-resizing/columnResizingFeature.utils.js +12 -16
  148. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  149. package/dist/features/column-sizing/columnSizingFeature.cjs +24 -48
  150. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  151. package/dist/features/column-sizing/columnSizingFeature.js +24 -48
  152. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  153. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +11 -18
  154. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  155. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +1 -1
  156. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +1 -1
  157. package/dist/features/column-sizing/columnSizingFeature.utils.js +11 -18
  158. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  159. package/dist/features/column-visibility/columnVisibilityFeature.cjs +25 -40
  160. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  161. package/dist/features/column-visibility/columnVisibilityFeature.js +25 -40
  162. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  163. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +1 -1
  164. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +1 -1
  165. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +3 -6
  166. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  167. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +1 -1
  168. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +1 -1
  169. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +3 -6
  170. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  171. package/dist/features/global-filtering/globalFilteringFeature.cjs +1 -2
  172. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  173. package/dist/features/global-filtering/globalFilteringFeature.js +1 -2
  174. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  175. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +3 -5
  176. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  177. package/dist/features/global-filtering/globalFilteringFeature.utils.js +3 -5
  178. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  179. package/dist/features/row-expanding/createExpandedRowModel.cjs +6 -10
  180. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  181. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  182. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  183. package/dist/features/row-expanding/createExpandedRowModel.js +6 -10
  184. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  185. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +1 -1
  186. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +1 -1
  187. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +8 -15
  188. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  189. package/dist/features/row-expanding/rowExpandingFeature.utils.js +8 -15
  190. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  191. package/dist/features/row-pagination/createPaginatedRowModel.cjs +6 -10
  192. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  193. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  194. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  195. package/dist/features/row-pagination/createPaginatedRowModel.js +6 -10
  196. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  197. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +1 -1
  198. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +1 -1
  199. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +8 -14
  200. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
  201. package/dist/features/row-pagination/rowPaginationFeature.utils.js +8 -14
  202. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
  203. package/dist/features/row-pinning/rowPinningFeature.cjs +4 -16
  204. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  205. package/dist/features/row-pinning/rowPinningFeature.js +4 -16
  206. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  207. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +7 -12
  208. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  209. package/dist/features/row-pinning/rowPinningFeature.utils.js +7 -12
  210. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  211. package/dist/features/row-selection/rowSelectionFeature.cjs +30 -60
  212. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  213. package/dist/features/row-selection/rowSelectionFeature.js +30 -60
  214. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  215. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +1 -1
  216. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +1 -1
  217. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +11 -18
  218. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  219. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +1 -1
  220. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +1 -1
  221. package/dist/features/row-selection/rowSelectionFeature.utils.js +12 -19
  222. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  223. package/dist/features/row-sorting/createSortedRowModel.cjs +20 -14
  224. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  225. package/dist/features/row-sorting/createSortedRowModel.d.cts +1 -1
  226. package/dist/features/row-sorting/createSortedRowModel.d.ts +1 -1
  227. package/dist/features/row-sorting/createSortedRowModel.js +21 -15
  228. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  229. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +2 -2
  230. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +2 -2
  231. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +10 -14
  232. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  233. package/dist/features/row-sorting/rowSortingFeature.utils.js +10 -14
  234. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  235. package/dist/flex-render.d.cts +1 -1
  236. package/dist/flex-render.d.ts +1 -1
  237. package/dist/fns/filterFns.cjs +8 -12
  238. package/dist/fns/filterFns.cjs.map +1 -1
  239. package/dist/fns/filterFns.js +8 -12
  240. package/dist/fns/filterFns.js.map +1 -1
  241. package/dist/index.cjs +1 -0
  242. package/dist/index.d.cts +18 -18
  243. package/dist/index.d.ts +18 -18
  244. package/dist/index.js +2 -2
  245. package/dist/store-reactivity-bindings.cjs +2 -2
  246. package/dist/store-reactivity-bindings.cjs.map +1 -1
  247. package/dist/store-reactivity-bindings.js +2 -2
  248. package/dist/store-reactivity-bindings.js.map +1 -1
  249. package/dist/types/Cell.d.cts +1 -1
  250. package/dist/types/Cell.d.ts +1 -1
  251. package/dist/types/Column.d.cts +7 -7
  252. package/dist/types/Column.d.ts +7 -7
  253. package/dist/types/ColumnDef.d.cts +6 -6
  254. package/dist/types/ColumnDef.d.ts +6 -6
  255. package/dist/types/Header.d.cts +1 -1
  256. package/dist/types/Header.d.ts +1 -1
  257. package/dist/types/Row.d.cts +2 -2
  258. package/dist/types/Row.d.ts +2 -2
  259. package/dist/types/RowModel.d.cts +4 -4
  260. package/dist/types/RowModel.d.ts +4 -4
  261. package/dist/types/RowModelFns.d.cts +2 -2
  262. package/dist/types/RowModelFns.d.ts +2 -2
  263. package/dist/types/Table.d.cts +9 -9
  264. package/dist/types/Table.d.ts +9 -9
  265. package/dist/types/TableFeatures.d.cts +4 -4
  266. package/dist/types/TableFeatures.d.ts +4 -4
  267. package/dist/types/TableOptions.d.cts +7 -7
  268. package/dist/types/TableOptions.d.ts +7 -7
  269. package/dist/types/TableState.d.cts +6 -6
  270. package/dist/types/TableState.d.ts +6 -6
  271. package/dist/utils.cjs +23 -12
  272. package/dist/utils.cjs.map +1 -1
  273. package/dist/utils.d.cts +6 -1
  274. package/dist/utils.d.ts +6 -1
  275. package/dist/utils.js +23 -13
  276. package/dist/utils.js.map +1 -1
  277. package/dist/worker/createTableWorker.cjs +189 -0
  278. package/dist/worker/createTableWorker.cjs.map +1 -0
  279. package/dist/worker/createTableWorker.d.cts +102 -0
  280. package/dist/worker/createTableWorker.d.ts +102 -0
  281. package/dist/worker/createTableWorker.js +186 -0
  282. package/dist/worker/createTableWorker.js.map +1 -0
  283. package/dist/worker/createWorkerRowModel.cjs +78 -0
  284. package/dist/worker/createWorkerRowModel.cjs.map +1 -0
  285. package/dist/worker/createWorkerRowModel.d.cts +42 -0
  286. package/dist/worker/createWorkerRowModel.d.ts +42 -0
  287. package/dist/worker/createWorkerRowModel.js +78 -0
  288. package/dist/worker/createWorkerRowModel.js.map +1 -0
  289. package/dist/worker/initTableWorker.cjs +100 -0
  290. package/dist/worker/initTableWorker.cjs.map +1 -0
  291. package/dist/worker/initTableWorker.d.cts +33 -0
  292. package/dist/worker/initTableWorker.d.ts +33 -0
  293. package/dist/worker/initTableWorker.js +100 -0
  294. package/dist/worker/initTableWorker.js.map +1 -0
  295. package/dist/worker/rebuildRowModel.cjs +72 -0
  296. package/dist/worker/rebuildRowModel.cjs.map +1 -0
  297. package/dist/worker/rebuildRowModel.d.cts +9 -0
  298. package/dist/worker/rebuildRowModel.d.ts +9 -0
  299. package/dist/worker/rebuildRowModel.js +72 -0
  300. package/dist/worker/rebuildRowModel.js.map +1 -0
  301. package/dist/worker/serializeRowModel.cjs +53 -0
  302. package/dist/worker/serializeRowModel.cjs.map +1 -0
  303. package/dist/worker/serializeRowModel.js +52 -0
  304. package/dist/worker/serializeRowModel.js.map +1 -0
  305. package/dist/worker/tableWorkerProtocol.cjs +29 -0
  306. package/dist/worker/tableWorkerProtocol.cjs.map +1 -0
  307. package/dist/worker/tableWorkerProtocol.d.cts +88 -0
  308. package/dist/worker/tableWorkerProtocol.d.ts +88 -0
  309. package/dist/worker/tableWorkerProtocol.js +27 -0
  310. package/dist/worker/tableWorkerProtocol.js.map +1 -0
  311. package/package.json +6 -2
  312. package/src/core/rows/coreRowsFeature.ts +1 -0
  313. package/src/experimental-worker-plugin.ts +22 -0
  314. package/src/features/row-selection/rowSelectionFeature.utils.ts +2 -1
  315. package/src/features/row-sorting/createSortedRowModel.ts +31 -10
  316. package/src/features/row-sorting/rowSortingFeature.utils.ts +2 -10
  317. package/src/utils.ts +21 -0
  318. package/src/worker/createTableWorker.ts +357 -0
  319. package/src/worker/createWorkerRowModel.ts +121 -0
  320. package/src/worker/initTableWorker.ts +164 -0
  321. package/src/worker/rebuildRowModel.ts +117 -0
  322. package/src/worker/serializeRowModel.ts +80 -0
  323. package/src/worker/tableWorkerProtocol.ts +105 -0
@@ -1 +1 @@
1
- {"version":3,"file":"columnResizingFeature.utils.cjs","names":["header_getSize","column_getSize","makeObjectMap","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 { cloneState, makeObjectMap } 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 * Creates the default transient column resizing state.\n *\n * The feature default represents no active drag interaction. Reset APIs use\n * this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const resizeInfo = 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 * Checks whether this column can start a resize interaction.\n *\n * Both `columnDef.enableResizing` and table `enableColumnResizing` default to\n * `true`.\n *\n * @example\n * ```ts\n * const canResize = 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 * Checks whether this column is the active column resize target.\n *\n * The value is read from `state.columnResizing.isResizingColumn`.\n *\n * @example\n * ```ts\n * const isResizing = 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 * Creates the pointer/touch start handler for resizing a header.\n *\n * The handler records starting sizes for all leaf headers, tracks drag deltas,\n * writes transient resize info, and commits column sizes on change or drag end\n * depending on `columnResizeMode`.\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 = header.table.getColumn(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 = makeObjectMap()\n\n const updateOffset = (eventType: 'move' | 'end', clientXPos?: number) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n const table = column.table\n const isCommit =\n table.options.columnResizeMode === 'onChange' || eventType === 'end'\n\n // one notification flush per tick instead of two\n table._reactivity.batch(() => {\n table_setColumnResizing(table, (old) => {\n const deltaDirection =\n 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 // new sizes are only read at commit and are recomputed from\n // absolute positions each time, so skip them on onEnd-mode moves\n if (isCommit) {\n const columnSizingStart = old.columnSizingStart\n for (let i = 0; i < columnSizingStart.length; i++) {\n const entry = columnSizingStart[i]!\n const headerSize = entry[1]\n newColumnSizing[entry[0]] =\n Math.round(\n Math.max(\n headerSize > 0\n ? headerSize + headerSize * deltaPercentage\n : deltaOffset / columnSizingStart.length,\n 0,\n ) * 100,\n ) / 100\n }\n }\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (isCommit) {\n table_setColumnSizing(table, (old) =>\n Object.assign(makeObjectMap<number>(), old, newColumnSizing),\n )\n }\n })\n }\n\n // Pointer devices can report at several times the display refresh rate,\n // and every update between frames is overwritten by the next one. Apply\n // the first move of a frame immediately, then coalesce the rest into one\n // update per animation frame.\n let moveRafId: number | null = null\n let hasPendingMove = false\n let latestMoveX: number | undefined\n\n const flushMove = () => {\n if (hasPendingMove) {\n hasPendingMove = false\n updateOffset('move', latestMoveX)\n moveRafId = requestAnimationFrame(flushMove)\n } else {\n moveRafId = null\n }\n }\n\n const onMove = (clientXPos?: number) => {\n latestMoveX = clientXPos\n if (typeof requestAnimationFrame !== 'function') {\n updateOffset('move', clientXPos)\n return\n }\n if (moveRafId !== null) {\n hasPendingMove = true\n return\n }\n updateOffset('move', clientXPos)\n moveRafId = requestAnimationFrame(flushMove)\n }\n\n const onEnd = (clientXPos?: number) => {\n if (moveRafId !== null) {\n cancelAnimationFrame(moveRafId)\n moveRafId = null\n hasPendingMove = false\n }\n\n // batch the 'end' commit and the reset into one notification flush\n column.table._reactivity.batch(() => {\n // touchend events carry no touch position, so fall back to the last\n // observed move position for the final commit\n updateOffset('end', clientXPos ?? latestMoveX)\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\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 * Routes a transient column resizing updater through the table's resize handler.\n *\n * This state tracks the active drag interaction; committed widths live in\n * `columnSizing`.\n *\n * @example\n * ```ts\n * table_setColumnResizing(table, (old) => ({ ...old, deltaOffset: 12 }))\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 `columnResizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnResizing` when\n * it exists. Passing `true` ignores initial state and resets to the no-drag\n * default state.\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\nlet passiveSupported: boolean | null = null\n/**\n * Detects whether the current environment supports passive event listeners.\n *\n * Column resizing uses this to register pointer and touch listeners with\n * `passive: false` only when the environment understands passive options.\n *\n * @example\n * ```ts\n * const canUsePassiveListeners = passiveEventSupported()\n * ```\n */\nexport function passiveEventSupported() {\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 * Narrows an unknown event to a `touchstart` event.\n *\n * Column resizing uses this before reading touch coordinates and installing\n * touch-specific listeners.\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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"}
1
+ {"version":3,"file":"columnResizingFeature.utils.cjs","names":["header_getSize","column_getSize","makeObjectMap","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 { cloneState, makeObjectMap } 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 * Creates the default transient column resizing state.\n *\n * The feature default represents no active drag interaction. Reset APIs use\n * this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const resizeInfo = 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 * Checks whether this column can start a resize interaction.\n *\n * Both `columnDef.enableResizing` and table `enableColumnResizing` default to\n * `true`.\n *\n * @example\n * ```ts\n * const canResize = 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 * Checks whether this column is the active column resize target.\n *\n * The value is read from `state.columnResizing.isResizingColumn`.\n *\n * @example\n * ```ts\n * const isResizing = 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 * Creates the pointer/touch start handler for resizing a header.\n *\n * The handler records starting sizes for all leaf headers, tracks drag deltas,\n * writes transient resize info, and commits column sizes on change or drag end\n * depending on `columnResizeMode`.\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 = header.table.getColumn(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 = makeObjectMap()\n\n const updateOffset = (eventType: 'move' | 'end', clientXPos?: number) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n const table = column.table\n const isCommit =\n table.options.columnResizeMode === 'onChange' || eventType === 'end'\n\n // one notification flush per tick instead of two\n table._reactivity.batch(() => {\n table_setColumnResizing(table, (old) => {\n const deltaDirection =\n 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 // new sizes are only read at commit and are recomputed from\n // absolute positions each time, so skip them on onEnd-mode moves\n if (isCommit) {\n const columnSizingStart = old.columnSizingStart\n for (let i = 0; i < columnSizingStart.length; i++) {\n const entry = columnSizingStart[i]!\n const headerSize = entry[1]\n newColumnSizing[entry[0]] =\n Math.round(\n Math.max(\n headerSize > 0\n ? headerSize + headerSize * deltaPercentage\n : deltaOffset / columnSizingStart.length,\n 0,\n ) * 100,\n ) / 100\n }\n }\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (isCommit) {\n table_setColumnSizing(table, (old) =>\n Object.assign(makeObjectMap<number>(), old, newColumnSizing),\n )\n }\n })\n }\n\n // Pointer devices can report at several times the display refresh rate,\n // and every update between frames is overwritten by the next one. Apply\n // the first move of a frame immediately, then coalesce the rest into one\n // update per animation frame.\n let moveRafId: number | null = null\n let hasPendingMove = false\n let latestMoveX: number | undefined\n\n const flushMove = () => {\n if (hasPendingMove) {\n hasPendingMove = false\n updateOffset('move', latestMoveX)\n moveRafId = requestAnimationFrame(flushMove)\n } else {\n moveRafId = null\n }\n }\n\n const onMove = (clientXPos?: number) => {\n latestMoveX = clientXPos\n if (typeof requestAnimationFrame !== 'function') {\n updateOffset('move', clientXPos)\n return\n }\n if (moveRafId !== null) {\n hasPendingMove = true\n return\n }\n updateOffset('move', clientXPos)\n moveRafId = requestAnimationFrame(flushMove)\n }\n\n const onEnd = (clientXPos?: number) => {\n if (moveRafId !== null) {\n cancelAnimationFrame(moveRafId)\n moveRafId = null\n hasPendingMove = false\n }\n\n // batch the 'end' commit and the reset into one notification flush\n column.table._reactivity.batch(() => {\n // touchend events carry no touch position, so fall back to the last\n // observed move position for the final commit\n updateOffset('end', clientXPos ?? latestMoveX)\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\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 * Routes a transient column resizing updater through the table's resize handler.\n *\n * This state tracks the active drag interaction; committed widths live in\n * `columnSizing`.\n *\n * @example\n * ```ts\n * table_setColumnResizing(table, (old) => ({ ...old, deltaOffset: 12 }))\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 `columnResizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnResizing` when\n * it exists. Passing `true` ignores initial state and resets to the no-drag\n * default state.\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\nlet passiveSupported: boolean | null = null\n/**\n * Detects whether the current environment supports passive event listeners.\n *\n * Column resizing uses this to register pointer and touch listeners with\n * `passive: false` only when the environment understands passive options.\n *\n * @example\n * ```ts\n * const canUsePassiveListeners = passiveEventSupported()\n * ```\n */\nexport function passiveEventSupported() {\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 * Narrows an unknown event to a `touchstart` event.\n *\n * Column resizing uses this before reading touch coordinates and installing\n * touch-specific listeners.\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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"}
@@ -48,8 +48,7 @@ function column_getCanResize(column) {
48
48
  * ```
49
49
  */
50
50
  function column_getIsResizing(column) {
51
- var _column$table$atoms$c;
52
- 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;
51
+ return column.table.atoms.columnResizing?.get()?.isResizingColumn === column.id;
53
52
  }
54
53
  /**
55
54
  * Creates the pointer/touch start handler for resizing a header.
@@ -67,9 +66,8 @@ function header_getResizeHandler(header, _contextDocument) {
67
66
  const column = header.table.getColumn(header.column.id);
68
67
  const canResize = column_getCanResize(column);
69
68
  return (event) => {
70
- var _persist;
71
69
  if (!canResize) return;
72
- (_persist = event.persist) === null || _persist === void 0 || _persist.call(event);
70
+ event.persist?.();
73
71
  if (isTouchStartEvent(event)) {
74
72
  if (event.touches.length > 1) return;
75
73
  }
@@ -150,8 +148,8 @@ function header_getResizeHandler(header, _contextDocument) {
150
148
  const mouseEvents = {
151
149
  moveHandler: (e) => onMove(e.clientX),
152
150
  upHandler: (e) => {
153
- contextDocument === null || contextDocument === void 0 || contextDocument.removeEventListener("mousemove", mouseEvents.moveHandler);
154
- contextDocument === null || contextDocument === void 0 || contextDocument.removeEventListener("mouseup", mouseEvents.upHandler);
151
+ contextDocument?.removeEventListener("mousemove", mouseEvents.moveHandler);
152
+ contextDocument?.removeEventListener("mouseup", mouseEvents.upHandler);
155
153
  onEnd(e.clientX);
156
154
  }
157
155
  };
@@ -165,23 +163,22 @@ function header_getResizeHandler(header, _contextDocument) {
165
163
  return false;
166
164
  },
167
165
  upHandler: (e) => {
168
- var _e$touches$;
169
- contextDocument === null || contextDocument === void 0 || contextDocument.removeEventListener("touchmove", touchEvents.moveHandler);
170
- contextDocument === null || contextDocument === void 0 || contextDocument.removeEventListener("touchend", touchEvents.upHandler);
166
+ contextDocument?.removeEventListener("touchmove", touchEvents.moveHandler);
167
+ contextDocument?.removeEventListener("touchend", touchEvents.upHandler);
171
168
  if (e.cancelable) {
172
169
  e.preventDefault();
173
170
  e.stopPropagation();
174
171
  }
175
- onEnd((_e$touches$ = e.touches[0]) === null || _e$touches$ === void 0 ? void 0 : _e$touches$.clientX);
172
+ onEnd(e.touches[0]?.clientX);
176
173
  }
177
174
  };
178
175
  const passiveIfSupported = passiveEventSupported() ? { passive: false } : false;
179
176
  if (isTouchStartEvent(event)) {
180
- contextDocument === null || contextDocument === void 0 || contextDocument.addEventListener("touchmove", touchEvents.moveHandler, passiveIfSupported);
181
- contextDocument === null || contextDocument === void 0 || contextDocument.addEventListener("touchend", touchEvents.upHandler, passiveIfSupported);
177
+ contextDocument?.addEventListener("touchmove", touchEvents.moveHandler, passiveIfSupported);
178
+ contextDocument?.addEventListener("touchend", touchEvents.upHandler, passiveIfSupported);
182
179
  } else {
183
- contextDocument === null || contextDocument === void 0 || contextDocument.addEventListener("mousemove", mouseEvents.moveHandler, passiveIfSupported);
184
- contextDocument === null || contextDocument === void 0 || contextDocument.addEventListener("mouseup", mouseEvents.upHandler, passiveIfSupported);
180
+ contextDocument?.addEventListener("mousemove", mouseEvents.moveHandler, passiveIfSupported);
181
+ contextDocument?.addEventListener("mouseup", mouseEvents.upHandler, passiveIfSupported);
185
182
  }
186
183
  table_setColumnResizing(column.table, (old) => ({
187
184
  ...old,
@@ -206,8 +203,7 @@ function header_getResizeHandler(header, _contextDocument) {
206
203
  * ```
207
204
  */
208
205
  function table_setColumnResizing(table, updater) {
209
- var _table$options$onColu, _table$options;
210
- (_table$options$onColu = (_table$options = table.options).onColumnResizingChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
206
+ table.options.onColumnResizingChange?.(updater);
211
207
  }
212
208
  /**
213
209
  * Resets `columnResizing` to the configured initial state or feature default.
@@ -1 +1 @@
1
- {"version":3,"file":"columnResizingFeature.utils.js","names":[],"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 { cloneState, makeObjectMap } 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 * Creates the default transient column resizing state.\n *\n * The feature default represents no active drag interaction. Reset APIs use\n * this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const resizeInfo = 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 * Checks whether this column can start a resize interaction.\n *\n * Both `columnDef.enableResizing` and table `enableColumnResizing` default to\n * `true`.\n *\n * @example\n * ```ts\n * const canResize = 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 * Checks whether this column is the active column resize target.\n *\n * The value is read from `state.columnResizing.isResizingColumn`.\n *\n * @example\n * ```ts\n * const isResizing = 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 * Creates the pointer/touch start handler for resizing a header.\n *\n * The handler records starting sizes for all leaf headers, tracks drag deltas,\n * writes transient resize info, and commits column sizes on change or drag end\n * depending on `columnResizeMode`.\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 = header.table.getColumn(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 = makeObjectMap()\n\n const updateOffset = (eventType: 'move' | 'end', clientXPos?: number) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n const table = column.table\n const isCommit =\n table.options.columnResizeMode === 'onChange' || eventType === 'end'\n\n // one notification flush per tick instead of two\n table._reactivity.batch(() => {\n table_setColumnResizing(table, (old) => {\n const deltaDirection =\n 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 // new sizes are only read at commit and are recomputed from\n // absolute positions each time, so skip them on onEnd-mode moves\n if (isCommit) {\n const columnSizingStart = old.columnSizingStart\n for (let i = 0; i < columnSizingStart.length; i++) {\n const entry = columnSizingStart[i]!\n const headerSize = entry[1]\n newColumnSizing[entry[0]] =\n Math.round(\n Math.max(\n headerSize > 0\n ? headerSize + headerSize * deltaPercentage\n : deltaOffset / columnSizingStart.length,\n 0,\n ) * 100,\n ) / 100\n }\n }\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (isCommit) {\n table_setColumnSizing(table, (old) =>\n Object.assign(makeObjectMap<number>(), old, newColumnSizing),\n )\n }\n })\n }\n\n // Pointer devices can report at several times the display refresh rate,\n // and every update between frames is overwritten by the next one. Apply\n // the first move of a frame immediately, then coalesce the rest into one\n // update per animation frame.\n let moveRafId: number | null = null\n let hasPendingMove = false\n let latestMoveX: number | undefined\n\n const flushMove = () => {\n if (hasPendingMove) {\n hasPendingMove = false\n updateOffset('move', latestMoveX)\n moveRafId = requestAnimationFrame(flushMove)\n } else {\n moveRafId = null\n }\n }\n\n const onMove = (clientXPos?: number) => {\n latestMoveX = clientXPos\n if (typeof requestAnimationFrame !== 'function') {\n updateOffset('move', clientXPos)\n return\n }\n if (moveRafId !== null) {\n hasPendingMove = true\n return\n }\n updateOffset('move', clientXPos)\n moveRafId = requestAnimationFrame(flushMove)\n }\n\n const onEnd = (clientXPos?: number) => {\n if (moveRafId !== null) {\n cancelAnimationFrame(moveRafId)\n moveRafId = null\n hasPendingMove = false\n }\n\n // batch the 'end' commit and the reset into one notification flush\n column.table._reactivity.batch(() => {\n // touchend events carry no touch position, so fall back to the last\n // observed move position for the final commit\n updateOffset('end', clientXPos ?? latestMoveX)\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\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 * Routes a transient column resizing updater through the table's resize handler.\n *\n * This state tracks the active drag interaction; committed widths live in\n * `columnSizing`.\n *\n * @example\n * ```ts\n * table_setColumnResizing(table, (old) => ({ ...old, deltaOffset: 12 }))\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 `columnResizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnResizing` when\n * it exists. Passing `true` ignores initial state and resets to the no-drag\n * default state.\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\nlet passiveSupported: boolean | null = null\n/**\n * Detects whether the current environment supports passive event listeners.\n *\n * Column resizing uses this to register pointer and touch listeners with\n * `passive: false` only when the environment understands passive options.\n *\n * @example\n * ```ts\n * const canUsePassiveListeners = passiveEventSupported()\n * ```\n */\nexport function passiveEventSupported() {\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 * Narrows an unknown event to a `touchstart` event.\n *\n * Column resizing uses this before reading touch coordinates and installing\n * touch-specific listeners.\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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"}
1
+ {"version":3,"file":"columnResizingFeature.utils.js","names":[],"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 { cloneState, makeObjectMap } 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 * Creates the default transient column resizing state.\n *\n * The feature default represents no active drag interaction. Reset APIs use\n * this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const resizeInfo = 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 * Checks whether this column can start a resize interaction.\n *\n * Both `columnDef.enableResizing` and table `enableColumnResizing` default to\n * `true`.\n *\n * @example\n * ```ts\n * const canResize = 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 * Checks whether this column is the active column resize target.\n *\n * The value is read from `state.columnResizing.isResizingColumn`.\n *\n * @example\n * ```ts\n * const isResizing = 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 * Creates the pointer/touch start handler for resizing a header.\n *\n * The handler records starting sizes for all leaf headers, tracks drag deltas,\n * writes transient resize info, and commits column sizes on change or drag end\n * depending on `columnResizeMode`.\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 = header.table.getColumn(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 = makeObjectMap()\n\n const updateOffset = (eventType: 'move' | 'end', clientXPos?: number) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n const table = column.table\n const isCommit =\n table.options.columnResizeMode === 'onChange' || eventType === 'end'\n\n // one notification flush per tick instead of two\n table._reactivity.batch(() => {\n table_setColumnResizing(table, (old) => {\n const deltaDirection =\n 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 // new sizes are only read at commit and are recomputed from\n // absolute positions each time, so skip them on onEnd-mode moves\n if (isCommit) {\n const columnSizingStart = old.columnSizingStart\n for (let i = 0; i < columnSizingStart.length; i++) {\n const entry = columnSizingStart[i]!\n const headerSize = entry[1]\n newColumnSizing[entry[0]] =\n Math.round(\n Math.max(\n headerSize > 0\n ? headerSize + headerSize * deltaPercentage\n : deltaOffset / columnSizingStart.length,\n 0,\n ) * 100,\n ) / 100\n }\n }\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (isCommit) {\n table_setColumnSizing(table, (old) =>\n Object.assign(makeObjectMap<number>(), old, newColumnSizing),\n )\n }\n })\n }\n\n // Pointer devices can report at several times the display refresh rate,\n // and every update between frames is overwritten by the next one. Apply\n // the first move of a frame immediately, then coalesce the rest into one\n // update per animation frame.\n let moveRafId: number | null = null\n let hasPendingMove = false\n let latestMoveX: number | undefined\n\n const flushMove = () => {\n if (hasPendingMove) {\n hasPendingMove = false\n updateOffset('move', latestMoveX)\n moveRafId = requestAnimationFrame(flushMove)\n } else {\n moveRafId = null\n }\n }\n\n const onMove = (clientXPos?: number) => {\n latestMoveX = clientXPos\n if (typeof requestAnimationFrame !== 'function') {\n updateOffset('move', clientXPos)\n return\n }\n if (moveRafId !== null) {\n hasPendingMove = true\n return\n }\n updateOffset('move', clientXPos)\n moveRafId = requestAnimationFrame(flushMove)\n }\n\n const onEnd = (clientXPos?: number) => {\n if (moveRafId !== null) {\n cancelAnimationFrame(moveRafId)\n moveRafId = null\n hasPendingMove = false\n }\n\n // batch the 'end' commit and the reset into one notification flush\n column.table._reactivity.batch(() => {\n // touchend events carry no touch position, so fall back to the last\n // observed move position for the final commit\n updateOffset('end', clientXPos ?? latestMoveX)\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\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 * Routes a transient column resizing updater through the table's resize handler.\n *\n * This state tracks the active drag interaction; committed widths live in\n * `columnSizing`.\n *\n * @example\n * ```ts\n * table_setColumnResizing(table, (old) => ({ ...old, deltaOffset: 12 }))\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 `columnResizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnResizing` when\n * it exists. Passing `true` ignores initial state and resets to the no-drag\n * default state.\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\nlet passiveSupported: boolean | null = null\n/**\n * Detects whether the current environment supports passive event listeners.\n *\n * Column resizing uses this to register pointer and touch listeners with\n * `passive: false` only when the environment understands passive options.\n *\n * @example\n * ```ts\n * const canUsePassiveListeners = passiveEventSupported()\n * ```\n */\nexport function passiveEventSupported() {\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 * Narrows an unknown event to a `touchstart` event.\n *\n * Column resizing uses this before reading touch coordinates and installing\n * touch-specific listeners.\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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"}
@@ -22,10 +22,7 @@ const columnSizingFeature = {
22
22
  require_utils.assignPrototypeAPIs("columnSizingFeature", prototype, table, {
23
23
  column_getSize: {
24
24
  fn: (column) => require_columnSizingFeature_utils.column_getSize(column),
25
- memoDeps: (column) => {
26
- var _table$atoms$columnSi;
27
- return [table.options.columns, (_table$atoms$columnSi = table.atoms.columnSizing) === null || _table$atoms$columnSi === void 0 || (_table$atoms$columnSi = _table$atoms$columnSi.get()) === null || _table$atoms$columnSi === void 0 ? void 0 : _table$atoms$columnSi[column.id]];
28
- }
25
+ memoDeps: (column) => [table.options.columns, table.atoms.columnSizing?.get()?.[column.id]]
29
26
  },
30
27
  column_getStart: { fn: (column, position) => require_columnSizingFeature_utils.column_getStart(column, position) },
31
28
  column_getAfter: { fn: (column, position) => require_columnSizingFeature_utils.column_getAfter(column, position) },
@@ -36,25 +33,19 @@ const columnSizingFeature = {
36
33
  require_utils.assignPrototypeAPIs("columnSizingFeature", prototype, table, {
37
34
  header_getSize: {
38
35
  fn: (header) => require_columnSizingFeature_utils.header_getSize(header),
39
- memoDeps: (header) => {
40
- var _table$atoms$columnSi2, _table$atoms$columnSi3;
41
- return [table.options.columns, header.column.columns.length > 0 ? (_table$atoms$columnSi2 = table.atoms.columnSizing) === null || _table$atoms$columnSi2 === void 0 ? void 0 : _table$atoms$columnSi2.get() : (_table$atoms$columnSi3 = table.atoms.columnSizing) === null || _table$atoms$columnSi3 === void 0 || (_table$atoms$columnSi3 = _table$atoms$columnSi3.get()) === null || _table$atoms$columnSi3 === void 0 ? void 0 : _table$atoms$columnSi3[header.column.id]];
42
- }
36
+ memoDeps: (header) => [table.options.columns, header.column.columns.length > 0 ? table.atoms.columnSizing?.get() : table.atoms.columnSizing?.get()?.[header.column.id]]
43
37
  },
44
38
  header_getStart: {
45
39
  fn: (header) => require_columnSizingFeature_utils.header_getStart(header),
46
- memoDeps: () => {
47
- var _table$atoms$columnSi4, _table$atoms$columnOr, _table$atoms$columnPi, _table$atoms$columnVi, _table$atoms$grouping;
48
- return [
49
- table.options.columns,
50
- (_table$atoms$columnSi4 = table.atoms.columnSizing) === null || _table$atoms$columnSi4 === void 0 ? void 0 : _table$atoms$columnSi4.get(),
51
- (_table$atoms$columnOr = table.atoms.columnOrder) === null || _table$atoms$columnOr === void 0 ? void 0 : _table$atoms$columnOr.get(),
52
- (_table$atoms$columnPi = table.atoms.columnPinning) === null || _table$atoms$columnPi === void 0 ? void 0 : _table$atoms$columnPi.get(),
53
- (_table$atoms$columnVi = table.atoms.columnVisibility) === null || _table$atoms$columnVi === void 0 ? void 0 : _table$atoms$columnVi.get(),
54
- (_table$atoms$grouping = table.atoms.grouping) === null || _table$atoms$grouping === void 0 ? void 0 : _table$atoms$grouping.get(),
55
- table.options.groupedColumnMode
56
- ];
57
- }
40
+ memoDeps: () => [
41
+ table.options.columns,
42
+ table.atoms.columnSizing?.get(),
43
+ table.atoms.columnOrder?.get(),
44
+ table.atoms.columnPinning?.get(),
45
+ table.atoms.columnVisibility?.get(),
46
+ table.atoms.grouping?.get(),
47
+ table.options.groupedColumnMode
48
+ ]
58
49
  }
59
50
  });
60
51
  },
@@ -62,48 +53,33 @@ const columnSizingFeature = {
62
53
  require_utils.assignTableAPIs("columnSizingFeature", table, {
63
54
  table_getColumnOffsets: {
64
55
  fn: () => require_columnSizingFeature_utils.table_getColumnOffsets(table),
65
- memoDeps: () => {
66
- var _table$atoms$columnSi5, _table$atoms$columnOr2, _table$atoms$columnPi2, _table$atoms$columnVi2, _table$atoms$grouping2;
67
- return [
68
- table.options.columns,
69
- (_table$atoms$columnSi5 = table.atoms.columnSizing) === null || _table$atoms$columnSi5 === void 0 ? void 0 : _table$atoms$columnSi5.get(),
70
- (_table$atoms$columnOr2 = table.atoms.columnOrder) === null || _table$atoms$columnOr2 === void 0 ? void 0 : _table$atoms$columnOr2.get(),
71
- (_table$atoms$columnPi2 = table.atoms.columnPinning) === null || _table$atoms$columnPi2 === void 0 ? void 0 : _table$atoms$columnPi2.get(),
72
- (_table$atoms$columnVi2 = table.atoms.columnVisibility) === null || _table$atoms$columnVi2 === void 0 ? void 0 : _table$atoms$columnVi2.get(),
73
- (_table$atoms$grouping2 = table.atoms.grouping) === null || _table$atoms$grouping2 === void 0 ? void 0 : _table$atoms$grouping2.get(),
74
- table.options.groupedColumnMode
75
- ];
76
- }
56
+ memoDeps: () => [
57
+ table.options.columns,
58
+ table.atoms.columnSizing?.get(),
59
+ table.atoms.columnOrder?.get(),
60
+ table.atoms.columnPinning?.get(),
61
+ table.atoms.columnVisibility?.get(),
62
+ table.atoms.grouping?.get(),
63
+ table.options.groupedColumnMode
64
+ ]
77
65
  },
78
66
  table_setColumnSizing: { fn: (updater) => require_columnSizingFeature_utils.table_setColumnSizing(table, updater) },
79
67
  table_resetColumnSizing: { fn: (defaultState) => require_columnSizingFeature_utils.table_resetColumnSizing(table, defaultState) },
80
68
  table_getTotalSize: {
81
69
  fn: () => require_columnSizingFeature_utils.table_getTotalSize(table),
82
- memoDeps: () => {
83
- var _table$atoms$columnSi6;
84
- return [(_table$atoms$columnSi6 = table.atoms.columnSizing) === null || _table$atoms$columnSi6 === void 0 ? void 0 : _table$atoms$columnSi6.get(), table.getHeaderGroups()];
85
- }
70
+ memoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]
86
71
  },
87
72
  table_getLeftTotalSize: {
88
73
  fn: () => require_columnSizingFeature_utils.table_getLeftTotalSize(table),
89
- memoDeps: () => {
90
- var _table$atoms$columnSi7;
91
- return [(_table$atoms$columnSi7 = table.atoms.columnSizing) === null || _table$atoms$columnSi7 === void 0 ? void 0 : _table$atoms$columnSi7.get(), table.getHeaderGroups()];
92
- }
74
+ memoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]
93
75
  },
94
76
  table_getCenterTotalSize: {
95
77
  fn: () => require_columnSizingFeature_utils.table_getCenterTotalSize(table),
96
- memoDeps: () => {
97
- var _table$atoms$columnSi8;
98
- return [(_table$atoms$columnSi8 = table.atoms.columnSizing) === null || _table$atoms$columnSi8 === void 0 ? void 0 : _table$atoms$columnSi8.get(), table.getHeaderGroups()];
99
- }
78
+ memoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]
100
79
  },
101
80
  table_getRightTotalSize: {
102
81
  fn: () => require_columnSizingFeature_utils.table_getRightTotalSize(table),
103
- memoDeps: () => {
104
- var _table$atoms$columnSi9;
105
- return [(_table$atoms$columnSi9 = table.atoms.columnSizing) === null || _table$atoms$columnSi9 === void 0 ? void 0 : _table$atoms$columnSi9.get(), table.getHeaderGroups()];
106
- }
82
+ memoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]
107
83
  }
108
84
  });
109
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"columnSizingFeature.cjs","names":["getDefaultColumnSizingState","getDefaultColumnSizingColumnDef","makeStateUpdater","column_getSize","column_getStart","column_getAfter","column_resetSize","header_getSize","header_getStart","table_getColumnOffsets","table_setColumnSizing","table_resetColumnSizing","table_getTotalSize","table_getLeftTotalSize","table_getCenterTotalSize","table_getRightTotalSize"],"sources":["../../../src/features/column-sizing/columnSizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getAfter,\n column_getSize,\n column_getStart,\n column_resetSize,\n getDefaultColumnSizingColumnDef,\n getDefaultColumnSizingState,\n header_getSize,\n header_getStart,\n table_getCenterTotalSize,\n table_getColumnOffsets,\n table_getLeftTotalSize,\n table_getRightTotalSize,\n table_getTotalSize,\n table_resetColumnSizing,\n table_setColumnSizing,\n} from './columnSizingFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column sizing state, defaults, and size measurement APIs.\n */\nexport const columnSizingFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnSizing: getDefaultColumnSizingState(),\n ...initialState,\n }\n },\n\n getDefaultColumnDef: () => {\n return getDefaultColumnSizingColumnDef()\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n column_getSize: {\n fn: (column) => column_getSize(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnSizing?.get()?.[column.id], // just this column's size state\n ],\n },\n // O(1) lookups into the memoized table-level offsets, so no per-column\n // memos here\n column_getStart: {\n fn: (column, position) => column_getStart(column, position),\n },\n column_getAfter: {\n fn: (column, position) => column_getAfter(column, position),\n },\n column_resetSize: {\n fn: (column) => column_resetSize(column),\n },\n })\n },\n\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n header_getSize: {\n fn: (header) => header_getSize(header),\n memoDeps: (header) => [\n table.options.columns,\n header.column.columns.length > 0\n ? table.atoms.columnSizing?.get() // must be all columns (sum child columns)\n : table.atoms.columnSizing?.get()?.[header.column.id], // can just check it's associated column size state\n ],\n },\n header_getStart: {\n fn: (header) => header_getStart(header),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnSizingFeature', table, {\n table_getColumnOffsets: {\n fn: () => table_getColumnOffsets(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_setColumnSizing: {\n fn: (updater) => table_setColumnSizing(table, updater),\n },\n table_resetColumnSizing: {\n fn: (defaultState) => table_resetColumnSizing(table, defaultState),\n },\n table_getTotalSize: {\n fn: () => table_getTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getLeftTotalSize: {\n fn: () => table_getLeftTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getCenterTotalSize: {\n fn: () => table_getCenterTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getRightTotalSize: {\n fn: () => table_getRightTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n })\n },\n}\n"],"mappings":";;;;;;;AA2BA,MAAa,sBAAoC;CAC/C,kBAAkB,iBAAiB;EACjC,OAAO;GACL,cAAcA,8DAA4B;GAC1C,GAAG;EACL;CACF;CAEA,2BAA2B;EACzB,OAAOC,kEAAgC;CACzC;CAEA,yBAAyB,UAAU;EACjC,OAAO,EACL,sBAAsBC,+BAAiB,gBAAgB,KAAK,EAC9D;CACF;CAEA,wBAAwB,WAAW,UAAU;EAC3C,kCAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAWC,iDAAe,MAAM;IACrC,WAAW,WAAW;;aACpB,MAAM,QAAQ,kCACd,MAAM,MAAM,6GAAc,IAAI,iFAAI,OAAO,GAC3C;;GACF;GAGA,iBAAiB,EACf,KAAK,QAAQ,aAAaC,kDAAgB,QAAQ,QAAQ,EAC5D;GACA,iBAAiB,EACf,KAAK,QAAQ,aAAaC,kDAAgB,QAAQ,QAAQ,EAC5D;GACA,kBAAkB,EAChB,KAAK,WAAWC,mDAAiB,MAAM,EACzC;EACF,CAAC;CACH;CAEA,wBAAwB,WAAW,UAAU;EAC3C,kCAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAWC,iDAAe,MAAM;IACrC,WAAW,WAAW;;aACpB,MAAM,QAAQ,SACd,OAAO,OAAO,QAAQ,SAAS,8BAC3B,MAAM,MAAM,8FAAc,IAAI,8BAC9B,MAAM,MAAM,gHAAc,IAAI,mFAAI,OAAO,OAAO,GACtD;;GACF;GACA,iBAAiB;IACf,KAAK,WAAWC,kDAAgB,MAAM;IACtC,gBAAgB;;;MACd,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;+BAC9B,MAAM,MAAM,2FAAa,IAAI;+BAC7B,MAAM,MAAM,6FAAe,IAAI;+BAC/B,MAAM,MAAM,gGAAkB,IAAI;+BAClC,MAAM,MAAM,wFAAU,IAAI;MAC1B,MAAM,QAAQ;KAChB;;GACF;EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,8BAAgB,uBAAuB,OAAO;GAC5C,wBAAwB;IACtB,UAAUC,yDAAuB,KAAK;IACtC,gBAAgB;;;MACd,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;gCAC9B,MAAM,MAAM,6FAAa,IAAI;gCAC7B,MAAM,MAAM,+FAAe,IAAI;gCAC/B,MAAM,MAAM,kGAAkB,IAAI;gCAClC,MAAM,MAAM,0FAAU,IAAI;MAC1B,MAAM,QAAQ;KAChB;;GACF;GACA,uBAAuB,EACrB,KAAK,YAAYC,wDAAsB,OAAO,OAAO,EACvD;GACA,yBAAyB,EACvB,KAAK,iBAAiBC,0DAAwB,OAAO,YAAY,EACnE;GACA,oBAAoB;IAClB,UAAUC,qDAAmB,KAAK;IAClC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,wBAAwB;IACtB,UAAUC,yDAAuB,KAAK;IACtC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,0BAA0B;IACxB,UAAUC,2DAAyB,KAAK;IACxC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,yBAAyB;IACvB,UAAUC,0DAAwB,KAAK;IACvC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;EACF,CAAC;CACH;AACF"}
1
+ {"version":3,"file":"columnSizingFeature.cjs","names":["getDefaultColumnSizingState","getDefaultColumnSizingColumnDef","makeStateUpdater","column_getSize","column_getStart","column_getAfter","column_resetSize","header_getSize","header_getStart","table_getColumnOffsets","table_setColumnSizing","table_resetColumnSizing","table_getTotalSize","table_getLeftTotalSize","table_getCenterTotalSize","table_getRightTotalSize"],"sources":["../../../src/features/column-sizing/columnSizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getAfter,\n column_getSize,\n column_getStart,\n column_resetSize,\n getDefaultColumnSizingColumnDef,\n getDefaultColumnSizingState,\n header_getSize,\n header_getStart,\n table_getCenterTotalSize,\n table_getColumnOffsets,\n table_getLeftTotalSize,\n table_getRightTotalSize,\n table_getTotalSize,\n table_resetColumnSizing,\n table_setColumnSizing,\n} from './columnSizingFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column sizing state, defaults, and size measurement APIs.\n */\nexport const columnSizingFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnSizing: getDefaultColumnSizingState(),\n ...initialState,\n }\n },\n\n getDefaultColumnDef: () => {\n return getDefaultColumnSizingColumnDef()\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n column_getSize: {\n fn: (column) => column_getSize(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnSizing?.get()?.[column.id], // just this column's size state\n ],\n },\n // O(1) lookups into the memoized table-level offsets, so no per-column\n // memos here\n column_getStart: {\n fn: (column, position) => column_getStart(column, position),\n },\n column_getAfter: {\n fn: (column, position) => column_getAfter(column, position),\n },\n column_resetSize: {\n fn: (column) => column_resetSize(column),\n },\n })\n },\n\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n header_getSize: {\n fn: (header) => header_getSize(header),\n memoDeps: (header) => [\n table.options.columns,\n header.column.columns.length > 0\n ? table.atoms.columnSizing?.get() // must be all columns (sum child columns)\n : table.atoms.columnSizing?.get()?.[header.column.id], // can just check it's associated column size state\n ],\n },\n header_getStart: {\n fn: (header) => header_getStart(header),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnSizingFeature', table, {\n table_getColumnOffsets: {\n fn: () => table_getColumnOffsets(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_setColumnSizing: {\n fn: (updater) => table_setColumnSizing(table, updater),\n },\n table_resetColumnSizing: {\n fn: (defaultState) => table_resetColumnSizing(table, defaultState),\n },\n table_getTotalSize: {\n fn: () => table_getTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getLeftTotalSize: {\n fn: () => table_getLeftTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getCenterTotalSize: {\n fn: () => table_getCenterTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getRightTotalSize: {\n fn: () => table_getRightTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n })\n },\n}\n"],"mappings":";;;;;;;AA2BA,MAAa,sBAAoC;CAC/C,kBAAkB,iBAAiB;EACjC,OAAO;GACL,cAAcA,8DAA4B;GAC1C,GAAG;EACL;CACF;CAEA,2BAA2B;EACzB,OAAOC,kEAAgC;CACzC;CAEA,yBAAyB,UAAU;EACjC,OAAO,EACL,sBAAsBC,+BAAiB,gBAAgB,KAAK,EAC9D;CACF;CAEA,wBAAwB,WAAW,UAAU;EAC3C,kCAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAWC,iDAAe,MAAM;IACrC,WAAW,WAAW,CACpB,MAAM,QAAQ,SACd,MAAM,MAAM,cAAc,IAAI,CAAC,GAAG,OAAO,GAC3C;GACF;GAGA,iBAAiB,EACf,KAAK,QAAQ,aAAaC,kDAAgB,QAAQ,QAAQ,EAC5D;GACA,iBAAiB,EACf,KAAK,QAAQ,aAAaC,kDAAgB,QAAQ,QAAQ,EAC5D;GACA,kBAAkB,EAChB,KAAK,WAAWC,mDAAiB,MAAM,EACzC;EACF,CAAC;CACH;CAEA,wBAAwB,WAAW,UAAU;EAC3C,kCAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAWC,iDAAe,MAAM;IACrC,WAAW,WAAW,CACpB,MAAM,QAAQ,SACd,OAAO,OAAO,QAAQ,SAAS,IAC3B,MAAM,MAAM,cAAc,IAAI,IAC9B,MAAM,MAAM,cAAc,IAAI,CAAC,GAAG,OAAO,OAAO,GACtD;GACF;GACA,iBAAiB;IACf,KAAK,WAAWC,kDAAgB,MAAM;IACtC,gBAAgB;KACd,MAAM,QAAQ;KACd,MAAM,MAAM,cAAc,IAAI;KAC9B,MAAM,MAAM,aAAa,IAAI;KAC7B,MAAM,MAAM,eAAe,IAAI;KAC/B,MAAM,MAAM,kBAAkB,IAAI;KAClC,MAAM,MAAM,UAAU,IAAI;KAC1B,MAAM,QAAQ;IAChB;GACF;EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,8BAAgB,uBAAuB,OAAO;GAC5C,wBAAwB;IACtB,UAAUC,yDAAuB,KAAK;IACtC,gBAAgB;KACd,MAAM,QAAQ;KACd,MAAM,MAAM,cAAc,IAAI;KAC9B,MAAM,MAAM,aAAa,IAAI;KAC7B,MAAM,MAAM,eAAe,IAAI;KAC/B,MAAM,MAAM,kBAAkB,IAAI;KAClC,MAAM,MAAM,UAAU,IAAI;KAC1B,MAAM,QAAQ;IAChB;GACF;GACA,uBAAuB,EACrB,KAAK,YAAYC,wDAAsB,OAAO,OAAO,EACvD;GACA,yBAAyB,EACvB,KAAK,iBAAiBC,0DAAwB,OAAO,YAAY,EACnE;GACA,oBAAoB;IAClB,UAAUC,qDAAmB,KAAK;IAClC,gBAAgB,CACd,MAAM,MAAM,cAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;GACF;GACA,wBAAwB;IACtB,UAAUC,yDAAuB,KAAK;IACtC,gBAAgB,CACd,MAAM,MAAM,cAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;GACF;GACA,0BAA0B;IACxB,UAAUC,2DAAyB,KAAK;IACxC,gBAAgB,CACd,MAAM,MAAM,cAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;GACF;GACA,yBAAyB;IACvB,UAAUC,0DAAwB,KAAK;IACvC,gBAAgB,CACd,MAAM,MAAM,cAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;GACF;EACF,CAAC;CACH;AACF"}
@@ -22,10 +22,7 @@ const columnSizingFeature = {
22
22
  assignPrototypeAPIs("columnSizingFeature", prototype, table, {
23
23
  column_getSize: {
24
24
  fn: (column) => column_getSize(column),
25
- memoDeps: (column) => {
26
- var _table$atoms$columnSi;
27
- return [table.options.columns, (_table$atoms$columnSi = table.atoms.columnSizing) === null || _table$atoms$columnSi === void 0 || (_table$atoms$columnSi = _table$atoms$columnSi.get()) === null || _table$atoms$columnSi === void 0 ? void 0 : _table$atoms$columnSi[column.id]];
28
- }
25
+ memoDeps: (column) => [table.options.columns, table.atoms.columnSizing?.get()?.[column.id]]
29
26
  },
30
27
  column_getStart: { fn: (column, position) => column_getStart(column, position) },
31
28
  column_getAfter: { fn: (column, position) => column_getAfter(column, position) },
@@ -36,25 +33,19 @@ const columnSizingFeature = {
36
33
  assignPrototypeAPIs("columnSizingFeature", prototype, table, {
37
34
  header_getSize: {
38
35
  fn: (header) => header_getSize(header),
39
- memoDeps: (header) => {
40
- var _table$atoms$columnSi2, _table$atoms$columnSi3;
41
- return [table.options.columns, header.column.columns.length > 0 ? (_table$atoms$columnSi2 = table.atoms.columnSizing) === null || _table$atoms$columnSi2 === void 0 ? void 0 : _table$atoms$columnSi2.get() : (_table$atoms$columnSi3 = table.atoms.columnSizing) === null || _table$atoms$columnSi3 === void 0 || (_table$atoms$columnSi3 = _table$atoms$columnSi3.get()) === null || _table$atoms$columnSi3 === void 0 ? void 0 : _table$atoms$columnSi3[header.column.id]];
42
- }
36
+ memoDeps: (header) => [table.options.columns, header.column.columns.length > 0 ? table.atoms.columnSizing?.get() : table.atoms.columnSizing?.get()?.[header.column.id]]
43
37
  },
44
38
  header_getStart: {
45
39
  fn: (header) => header_getStart(header),
46
- memoDeps: () => {
47
- var _table$atoms$columnSi4, _table$atoms$columnOr, _table$atoms$columnPi, _table$atoms$columnVi, _table$atoms$grouping;
48
- return [
49
- table.options.columns,
50
- (_table$atoms$columnSi4 = table.atoms.columnSizing) === null || _table$atoms$columnSi4 === void 0 ? void 0 : _table$atoms$columnSi4.get(),
51
- (_table$atoms$columnOr = table.atoms.columnOrder) === null || _table$atoms$columnOr === void 0 ? void 0 : _table$atoms$columnOr.get(),
52
- (_table$atoms$columnPi = table.atoms.columnPinning) === null || _table$atoms$columnPi === void 0 ? void 0 : _table$atoms$columnPi.get(),
53
- (_table$atoms$columnVi = table.atoms.columnVisibility) === null || _table$atoms$columnVi === void 0 ? void 0 : _table$atoms$columnVi.get(),
54
- (_table$atoms$grouping = table.atoms.grouping) === null || _table$atoms$grouping === void 0 ? void 0 : _table$atoms$grouping.get(),
55
- table.options.groupedColumnMode
56
- ];
57
- }
40
+ memoDeps: () => [
41
+ table.options.columns,
42
+ table.atoms.columnSizing?.get(),
43
+ table.atoms.columnOrder?.get(),
44
+ table.atoms.columnPinning?.get(),
45
+ table.atoms.columnVisibility?.get(),
46
+ table.atoms.grouping?.get(),
47
+ table.options.groupedColumnMode
48
+ ]
58
49
  }
59
50
  });
60
51
  },
@@ -62,48 +53,33 @@ const columnSizingFeature = {
62
53
  assignTableAPIs("columnSizingFeature", table, {
63
54
  table_getColumnOffsets: {
64
55
  fn: () => table_getColumnOffsets(table),
65
- memoDeps: () => {
66
- var _table$atoms$columnSi5, _table$atoms$columnOr2, _table$atoms$columnPi2, _table$atoms$columnVi2, _table$atoms$grouping2;
67
- return [
68
- table.options.columns,
69
- (_table$atoms$columnSi5 = table.atoms.columnSizing) === null || _table$atoms$columnSi5 === void 0 ? void 0 : _table$atoms$columnSi5.get(),
70
- (_table$atoms$columnOr2 = table.atoms.columnOrder) === null || _table$atoms$columnOr2 === void 0 ? void 0 : _table$atoms$columnOr2.get(),
71
- (_table$atoms$columnPi2 = table.atoms.columnPinning) === null || _table$atoms$columnPi2 === void 0 ? void 0 : _table$atoms$columnPi2.get(),
72
- (_table$atoms$columnVi2 = table.atoms.columnVisibility) === null || _table$atoms$columnVi2 === void 0 ? void 0 : _table$atoms$columnVi2.get(),
73
- (_table$atoms$grouping2 = table.atoms.grouping) === null || _table$atoms$grouping2 === void 0 ? void 0 : _table$atoms$grouping2.get(),
74
- table.options.groupedColumnMode
75
- ];
76
- }
56
+ memoDeps: () => [
57
+ table.options.columns,
58
+ table.atoms.columnSizing?.get(),
59
+ table.atoms.columnOrder?.get(),
60
+ table.atoms.columnPinning?.get(),
61
+ table.atoms.columnVisibility?.get(),
62
+ table.atoms.grouping?.get(),
63
+ table.options.groupedColumnMode
64
+ ]
77
65
  },
78
66
  table_setColumnSizing: { fn: (updater) => table_setColumnSizing(table, updater) },
79
67
  table_resetColumnSizing: { fn: (defaultState) => table_resetColumnSizing(table, defaultState) },
80
68
  table_getTotalSize: {
81
69
  fn: () => table_getTotalSize(table),
82
- memoDeps: () => {
83
- var _table$atoms$columnSi6;
84
- return [(_table$atoms$columnSi6 = table.atoms.columnSizing) === null || _table$atoms$columnSi6 === void 0 ? void 0 : _table$atoms$columnSi6.get(), table.getHeaderGroups()];
85
- }
70
+ memoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]
86
71
  },
87
72
  table_getLeftTotalSize: {
88
73
  fn: () => table_getLeftTotalSize(table),
89
- memoDeps: () => {
90
- var _table$atoms$columnSi7;
91
- return [(_table$atoms$columnSi7 = table.atoms.columnSizing) === null || _table$atoms$columnSi7 === void 0 ? void 0 : _table$atoms$columnSi7.get(), table.getHeaderGroups()];
92
- }
74
+ memoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]
93
75
  },
94
76
  table_getCenterTotalSize: {
95
77
  fn: () => table_getCenterTotalSize(table),
96
- memoDeps: () => {
97
- var _table$atoms$columnSi8;
98
- return [(_table$atoms$columnSi8 = table.atoms.columnSizing) === null || _table$atoms$columnSi8 === void 0 ? void 0 : _table$atoms$columnSi8.get(), table.getHeaderGroups()];
99
- }
78
+ memoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]
100
79
  },
101
80
  table_getRightTotalSize: {
102
81
  fn: () => table_getRightTotalSize(table),
103
- memoDeps: () => {
104
- var _table$atoms$columnSi9;
105
- return [(_table$atoms$columnSi9 = table.atoms.columnSizing) === null || _table$atoms$columnSi9 === void 0 ? void 0 : _table$atoms$columnSi9.get(), table.getHeaderGroups()];
106
- }
82
+ memoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]
107
83
  }
108
84
  });
109
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"columnSizingFeature.js","names":[],"sources":["../../../src/features/column-sizing/columnSizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getAfter,\n column_getSize,\n column_getStart,\n column_resetSize,\n getDefaultColumnSizingColumnDef,\n getDefaultColumnSizingState,\n header_getSize,\n header_getStart,\n table_getCenterTotalSize,\n table_getColumnOffsets,\n table_getLeftTotalSize,\n table_getRightTotalSize,\n table_getTotalSize,\n table_resetColumnSizing,\n table_setColumnSizing,\n} from './columnSizingFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column sizing state, defaults, and size measurement APIs.\n */\nexport const columnSizingFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnSizing: getDefaultColumnSizingState(),\n ...initialState,\n }\n },\n\n getDefaultColumnDef: () => {\n return getDefaultColumnSizingColumnDef()\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n column_getSize: {\n fn: (column) => column_getSize(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnSizing?.get()?.[column.id], // just this column's size state\n ],\n },\n // O(1) lookups into the memoized table-level offsets, so no per-column\n // memos here\n column_getStart: {\n fn: (column, position) => column_getStart(column, position),\n },\n column_getAfter: {\n fn: (column, position) => column_getAfter(column, position),\n },\n column_resetSize: {\n fn: (column) => column_resetSize(column),\n },\n })\n },\n\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n header_getSize: {\n fn: (header) => header_getSize(header),\n memoDeps: (header) => [\n table.options.columns,\n header.column.columns.length > 0\n ? table.atoms.columnSizing?.get() // must be all columns (sum child columns)\n : table.atoms.columnSizing?.get()?.[header.column.id], // can just check it's associated column size state\n ],\n },\n header_getStart: {\n fn: (header) => header_getStart(header),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnSizingFeature', table, {\n table_getColumnOffsets: {\n fn: () => table_getColumnOffsets(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_setColumnSizing: {\n fn: (updater) => table_setColumnSizing(table, updater),\n },\n table_resetColumnSizing: {\n fn: (defaultState) => table_resetColumnSizing(table, defaultState),\n },\n table_getTotalSize: {\n fn: () => table_getTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getLeftTotalSize: {\n fn: () => table_getLeftTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getCenterTotalSize: {\n fn: () => table_getCenterTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getRightTotalSize: {\n fn: () => table_getRightTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n })\n },\n}\n"],"mappings":";;;;;;;AA2BA,MAAa,sBAAoC;CAC/C,kBAAkB,iBAAiB;EACjC,OAAO;GACL,cAAc,4BAA4B;GAC1C,GAAG;EACL;CACF;CAEA,2BAA2B;EACzB,OAAO,gCAAgC;CACzC;CAEA,yBAAyB,UAAU;EACjC,OAAO,EACL,sBAAsB,iBAAiB,gBAAgB,KAAK,EAC9D;CACF;CAEA,wBAAwB,WAAW,UAAU;EAC3C,oBAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAW,eAAe,MAAM;IACrC,WAAW,WAAW;;aACpB,MAAM,QAAQ,kCACd,MAAM,MAAM,6GAAc,IAAI,iFAAI,OAAO,GAC3C;;GACF;GAGA,iBAAiB,EACf,KAAK,QAAQ,aAAa,gBAAgB,QAAQ,QAAQ,EAC5D;GACA,iBAAiB,EACf,KAAK,QAAQ,aAAa,gBAAgB,QAAQ,QAAQ,EAC5D;GACA,kBAAkB,EAChB,KAAK,WAAW,iBAAiB,MAAM,EACzC;EACF,CAAC;CACH;CAEA,wBAAwB,WAAW,UAAU;EAC3C,oBAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAW,eAAe,MAAM;IACrC,WAAW,WAAW;;aACpB,MAAM,QAAQ,SACd,OAAO,OAAO,QAAQ,SAAS,8BAC3B,MAAM,MAAM,8FAAc,IAAI,8BAC9B,MAAM,MAAM,gHAAc,IAAI,mFAAI,OAAO,OAAO,GACtD;;GACF;GACA,iBAAiB;IACf,KAAK,WAAW,gBAAgB,MAAM;IACtC,gBAAgB;;;MACd,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;+BAC9B,MAAM,MAAM,2FAAa,IAAI;+BAC7B,MAAM,MAAM,6FAAe,IAAI;+BAC/B,MAAM,MAAM,gGAAkB,IAAI;+BAClC,MAAM,MAAM,wFAAU,IAAI;MAC1B,MAAM,QAAQ;KAChB;;GACF;EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,gBAAgB,uBAAuB,OAAO;GAC5C,wBAAwB;IACtB,UAAU,uBAAuB,KAAK;IACtC,gBAAgB;;;MACd,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;gCAC9B,MAAM,MAAM,6FAAa,IAAI;gCAC7B,MAAM,MAAM,+FAAe,IAAI;gCAC/B,MAAM,MAAM,kGAAkB,IAAI;gCAClC,MAAM,MAAM,0FAAU,IAAI;MAC1B,MAAM,QAAQ;KAChB;;GACF;GACA,uBAAuB,EACrB,KAAK,YAAY,sBAAsB,OAAO,OAAO,EACvD;GACA,yBAAyB,EACvB,KAAK,iBAAiB,wBAAwB,OAAO,YAAY,EACnE;GACA,oBAAoB;IAClB,UAAU,mBAAmB,KAAK;IAClC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,wBAAwB;IACtB,UAAU,uBAAuB,KAAK;IACtC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,0BAA0B;IACxB,UAAU,yBAAyB,KAAK;IACxC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,yBAAyB;IACvB,UAAU,wBAAwB,KAAK;IACvC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;EACF,CAAC;CACH;AACF"}
1
+ {"version":3,"file":"columnSizingFeature.js","names":[],"sources":["../../../src/features/column-sizing/columnSizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getAfter,\n column_getSize,\n column_getStart,\n column_resetSize,\n getDefaultColumnSizingColumnDef,\n getDefaultColumnSizingState,\n header_getSize,\n header_getStart,\n table_getCenterTotalSize,\n table_getColumnOffsets,\n table_getLeftTotalSize,\n table_getRightTotalSize,\n table_getTotalSize,\n table_resetColumnSizing,\n table_setColumnSizing,\n} from './columnSizingFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column sizing state, defaults, and size measurement APIs.\n */\nexport const columnSizingFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnSizing: getDefaultColumnSizingState(),\n ...initialState,\n }\n },\n\n getDefaultColumnDef: () => {\n return getDefaultColumnSizingColumnDef()\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n column_getSize: {\n fn: (column) => column_getSize(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnSizing?.get()?.[column.id], // just this column's size state\n ],\n },\n // O(1) lookups into the memoized table-level offsets, so no per-column\n // memos here\n column_getStart: {\n fn: (column, position) => column_getStart(column, position),\n },\n column_getAfter: {\n fn: (column, position) => column_getAfter(column, position),\n },\n column_resetSize: {\n fn: (column) => column_resetSize(column),\n },\n })\n },\n\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n header_getSize: {\n fn: (header) => header_getSize(header),\n memoDeps: (header) => [\n table.options.columns,\n header.column.columns.length > 0\n ? table.atoms.columnSizing?.get() // must be all columns (sum child columns)\n : table.atoms.columnSizing?.get()?.[header.column.id], // can just check it's associated column size state\n ],\n },\n header_getStart: {\n fn: (header) => header_getStart(header),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnSizingFeature', table, {\n table_getColumnOffsets: {\n fn: () => table_getColumnOffsets(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_setColumnSizing: {\n fn: (updater) => table_setColumnSizing(table, updater),\n },\n table_resetColumnSizing: {\n fn: (defaultState) => table_resetColumnSizing(table, defaultState),\n },\n table_getTotalSize: {\n fn: () => table_getTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getLeftTotalSize: {\n fn: () => table_getLeftTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getCenterTotalSize: {\n fn: () => table_getCenterTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getRightTotalSize: {\n fn: () => table_getRightTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n })\n },\n}\n"],"mappings":";;;;;;;AA2BA,MAAa,sBAAoC;CAC/C,kBAAkB,iBAAiB;EACjC,OAAO;GACL,cAAc,4BAA4B;GAC1C,GAAG;EACL;CACF;CAEA,2BAA2B;EACzB,OAAO,gCAAgC;CACzC;CAEA,yBAAyB,UAAU;EACjC,OAAO,EACL,sBAAsB,iBAAiB,gBAAgB,KAAK,EAC9D;CACF;CAEA,wBAAwB,WAAW,UAAU;EAC3C,oBAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAW,eAAe,MAAM;IACrC,WAAW,WAAW,CACpB,MAAM,QAAQ,SACd,MAAM,MAAM,cAAc,IAAI,CAAC,GAAG,OAAO,GAC3C;GACF;GAGA,iBAAiB,EACf,KAAK,QAAQ,aAAa,gBAAgB,QAAQ,QAAQ,EAC5D;GACA,iBAAiB,EACf,KAAK,QAAQ,aAAa,gBAAgB,QAAQ,QAAQ,EAC5D;GACA,kBAAkB,EAChB,KAAK,WAAW,iBAAiB,MAAM,EACzC;EACF,CAAC;CACH;CAEA,wBAAwB,WAAW,UAAU;EAC3C,oBAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAW,eAAe,MAAM;IACrC,WAAW,WAAW,CACpB,MAAM,QAAQ,SACd,OAAO,OAAO,QAAQ,SAAS,IAC3B,MAAM,MAAM,cAAc,IAAI,IAC9B,MAAM,MAAM,cAAc,IAAI,CAAC,GAAG,OAAO,OAAO,GACtD;GACF;GACA,iBAAiB;IACf,KAAK,WAAW,gBAAgB,MAAM;IACtC,gBAAgB;KACd,MAAM,QAAQ;KACd,MAAM,MAAM,cAAc,IAAI;KAC9B,MAAM,MAAM,aAAa,IAAI;KAC7B,MAAM,MAAM,eAAe,IAAI;KAC/B,MAAM,MAAM,kBAAkB,IAAI;KAClC,MAAM,MAAM,UAAU,IAAI;KAC1B,MAAM,QAAQ;IAChB;GACF;EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,gBAAgB,uBAAuB,OAAO;GAC5C,wBAAwB;IACtB,UAAU,uBAAuB,KAAK;IACtC,gBAAgB;KACd,MAAM,QAAQ;KACd,MAAM,MAAM,cAAc,IAAI;KAC9B,MAAM,MAAM,aAAa,IAAI;KAC7B,MAAM,MAAM,eAAe,IAAI;KAC/B,MAAM,MAAM,kBAAkB,IAAI;KAClC,MAAM,MAAM,UAAU,IAAI;KAC1B,MAAM,QAAQ;IAChB;GACF;GACA,uBAAuB,EACrB,KAAK,YAAY,sBAAsB,OAAO,OAAO,EACvD;GACA,yBAAyB,EACvB,KAAK,iBAAiB,wBAAwB,OAAO,YAAY,EACnE;GACA,oBAAoB;IAClB,UAAU,mBAAmB,KAAK;IAClC,gBAAgB,CACd,MAAM,MAAM,cAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;GACF;GACA,wBAAwB;IACtB,UAAU,uBAAuB,KAAK;IACtC,gBAAgB,CACd,MAAM,MAAM,cAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;GACF;GACA,0BAA0B;IACxB,UAAU,yBAAyB,KAAK;IACxC,gBAAgB,CACd,MAAM,MAAM,cAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;GACF;GACA,yBAAyB;IACvB,UAAU,wBAAwB,KAAK;IACvC,gBAAgB,CACd,MAAM,MAAM,cAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;GACF;EACF,CAAC;CACH;AACF"}
@@ -47,9 +47,8 @@ function getDefaultColumnSizingColumnDef() {
47
47
  * ```
48
48
  */
49
49
  function column_getSize(column) {
50
- var _column$table$atoms$c;
51
50
  const defaultSizes = getDefaultColumnSizingColumnDef();
52
- const columnSizing = (_column$table$atoms$c = column.table.atoms.columnSizing) === null || _column$table$atoms$c === void 0 ? void 0 : _column$table$atoms$c.get();
51
+ const columnSizing = column.table.atoms.columnSizing?.get();
53
52
  const columnSize = columnSizing && require_utils.hasOwn(columnSizing, column.id) ? columnSizing[column.id] : void 0;
54
53
  return Math.min(Math.max(column.columnDef.minSize ?? defaultSizes.minSize, columnSize ?? column.columnDef.size ?? defaultSizes.size), column.columnDef.maxSize ?? defaultSizes.maxSize);
55
54
  }
@@ -182,8 +181,7 @@ function header_getSize(header) {
182
181
  */
183
182
  function header_getStart(header) {
184
183
  if (header.index > 0) {
185
- var _header$headerGroup;
186
- const prevSiblingHeader = (_header$headerGroup = header.headerGroup) === null || _header$headerGroup === void 0 ? void 0 : _header$headerGroup.headers[header.index - 1];
184
+ const prevSiblingHeader = header.headerGroup?.headers[header.index - 1];
187
185
  if (prevSiblingHeader) return require_utils.callMemoOrStaticFn(prevSiblingHeader, "getStart", header_getStart) + require_utils.callMemoOrStaticFn(prevSiblingHeader, "getSize", header_getSize);
188
186
  }
189
187
  return 0;
@@ -200,8 +198,7 @@ function header_getStart(header) {
200
198
  * ```
201
199
  */
202
200
  function table_setColumnSizing(table, updater) {
203
- var _table$options$onColu, _table$options;
204
- (_table$options$onColu = (_table$options = table.options).onColumnSizingChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
201
+ table.options.onColumnSizingChange?.(updater);
205
202
  }
206
203
  /**
207
204
  * Resets `columnSizing` to the configured initial state or feature default.
@@ -229,10 +226,9 @@ function table_resetColumnSizing(table, defaultState) {
229
226
  * ```
230
227
  */
231
228
  function table_getTotalSize(table) {
232
- var _table$getHeaderGroup;
233
- return ((_table$getHeaderGroup = table.getHeaderGroups()[0]) === null || _table$getHeaderGroup === void 0 ? void 0 : _table$getHeaderGroup.headers.reduce((sum, header) => {
229
+ return table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {
234
230
  return sum + header_getSize(header);
235
- }, 0)) ?? 0;
231
+ }, 0) ?? 0;
236
232
  }
237
233
  /**
238
234
  * Sums the rendered size of the left pinned header region.
@@ -245,10 +241,9 @@ function table_getTotalSize(table) {
245
241
  * ```
246
242
  */
247
243
  function table_getLeftTotalSize(table) {
248
- var _callMemoOrStaticFn$;
249
- return ((_callMemoOrStaticFn$ = require_utils.callMemoOrStaticFn(table, "getLeftHeaderGroups", require_columnPinningFeature_utils.table_getLeftHeaderGroups)[0]) === null || _callMemoOrStaticFn$ === void 0 ? void 0 : _callMemoOrStaticFn$.headers.reduce((sum, header) => {
244
+ return require_utils.callMemoOrStaticFn(table, "getLeftHeaderGroups", require_columnPinningFeature_utils.table_getLeftHeaderGroups)[0]?.headers.reduce((sum, header) => {
250
245
  return sum + header_getSize(header);
251
- }, 0)) ?? 0;
246
+ }, 0) ?? 0;
252
247
  }
253
248
  /**
254
249
  * Sums the rendered size of the center, unpinned header region.
@@ -261,10 +256,9 @@ function table_getLeftTotalSize(table) {
261
256
  * ```
262
257
  */
263
258
  function table_getCenterTotalSize(table) {
264
- var _callMemoOrStaticFn$2;
265
- return ((_callMemoOrStaticFn$2 = require_utils.callMemoOrStaticFn(table, "getCenterHeaderGroups", require_columnPinningFeature_utils.table_getCenterHeaderGroups)[0]) === null || _callMemoOrStaticFn$2 === void 0 ? void 0 : _callMemoOrStaticFn$2.headers.reduce((sum, header) => {
259
+ return require_utils.callMemoOrStaticFn(table, "getCenterHeaderGroups", require_columnPinningFeature_utils.table_getCenterHeaderGroups)[0]?.headers.reduce((sum, header) => {
266
260
  return sum + header_getSize(header);
267
- }, 0)) ?? 0;
261
+ }, 0) ?? 0;
268
262
  }
269
263
  /**
270
264
  * Sums the rendered size of the right pinned header region.
@@ -277,10 +271,9 @@ function table_getCenterTotalSize(table) {
277
271
  * ```
278
272
  */
279
273
  function table_getRightTotalSize(table) {
280
- var _callMemoOrStaticFn$3;
281
- return ((_callMemoOrStaticFn$3 = require_utils.callMemoOrStaticFn(table, "getRightHeaderGroups", require_columnPinningFeature_utils.table_getRightHeaderGroups)[0]) === null || _callMemoOrStaticFn$3 === void 0 ? void 0 : _callMemoOrStaticFn$3.headers.reduce((sum, header) => {
274
+ return require_utils.callMemoOrStaticFn(table, "getRightHeaderGroups", require_columnPinningFeature_utils.table_getRightHeaderGroups)[0]?.headers.reduce((sum, header) => {
282
275
  return sum + header_getSize(header);
283
- }, 0)) ?? 0;
276
+ }, 0) ?? 0;
284
277
  }
285
278
 
286
279
  //#endregion