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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/README.md +10 -0
  2. package/dist/core/cells/constructCell.cjs +4 -3
  3. package/dist/core/cells/constructCell.cjs.map +1 -1
  4. package/dist/core/cells/constructCell.js +4 -3
  5. package/dist/core/cells/constructCell.js.map +1 -1
  6. package/dist/core/cells/coreCellsFeature.utils.cjs +11 -8
  7. package/dist/core/cells/coreCellsFeature.utils.cjs.map +1 -1
  8. package/dist/core/cells/coreCellsFeature.utils.d.cts +11 -8
  9. package/dist/core/cells/coreCellsFeature.utils.d.ts +11 -8
  10. package/dist/core/cells/coreCellsFeature.utils.js +11 -8
  11. package/dist/core/cells/coreCellsFeature.utils.js.map +1 -1
  12. package/dist/core/columns/constructColumn.cjs +6 -4
  13. package/dist/core/columns/constructColumn.cjs.map +1 -1
  14. package/dist/core/columns/constructColumn.js +6 -4
  15. package/dist/core/columns/constructColumn.js.map +1 -1
  16. package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -6
  17. package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -6
  18. package/dist/core/columns/coreColumnsFeature.utils.cjs +47 -29
  19. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  20. package/dist/core/columns/coreColumnsFeature.utils.d.cts +37 -27
  21. package/dist/core/columns/coreColumnsFeature.utils.d.ts +37 -27
  22. package/dist/core/columns/coreColumnsFeature.utils.js +47 -29
  23. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  24. package/dist/core/headers/buildHeaderGroups.cjs +27 -19
  25. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  26. package/dist/core/headers/buildHeaderGroups.js +27 -19
  27. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  28. package/dist/core/headers/constructHeader.cjs +4 -3
  29. package/dist/core/headers/constructHeader.cjs.map +1 -1
  30. package/dist/core/headers/constructHeader.js +4 -3
  31. package/dist/core/headers/constructHeader.js.map +1 -1
  32. package/dist/core/headers/coreHeadersFeature.cjs +1 -6
  33. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  34. package/dist/core/headers/coreHeadersFeature.js +2 -7
  35. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  36. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -4
  37. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -4
  38. package/dist/core/headers/coreHeadersFeature.utils.cjs +43 -36
  39. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  40. package/dist/core/headers/coreHeadersFeature.utils.d.cts +24 -19
  41. package/dist/core/headers/coreHeadersFeature.utils.d.ts +24 -19
  42. package/dist/core/headers/coreHeadersFeature.utils.js +44 -37
  43. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  44. package/dist/core/reactivity/coreReactivityFeature.types.d.cts +4 -0
  45. package/dist/core/reactivity/coreReactivityFeature.types.d.ts +4 -0
  46. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +48 -36
  47. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  48. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +48 -36
  49. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +48 -36
  50. package/dist/core/row-models/coreRowModelsFeature.utils.js +48 -36
  51. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  52. package/dist/core/rows/constructRow.cjs +8 -6
  53. package/dist/core/rows/constructRow.cjs.map +1 -1
  54. package/dist/core/rows/constructRow.js +8 -6
  55. package/dist/core/rows/constructRow.js.map +1 -1
  56. package/dist/core/rows/coreRowsFeature.types.d.cts +4 -4
  57. package/dist/core/rows/coreRowsFeature.types.d.ts +4 -4
  58. package/dist/core/rows/coreRowsFeature.utils.cjs +43 -32
  59. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  60. package/dist/core/rows/coreRowsFeature.utils.d.cts +34 -28
  61. package/dist/core/rows/coreRowsFeature.utils.d.ts +34 -28
  62. package/dist/core/rows/coreRowsFeature.utils.js +43 -32
  63. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  64. package/dist/core/table/constructTable.cjs +9 -5
  65. package/dist/core/table/constructTable.cjs.map +1 -1
  66. package/dist/core/table/constructTable.js +9 -5
  67. package/dist/core/table/constructTable.js.map +1 -1
  68. package/dist/core/table/coreTablesFeature.types.d.cts +6 -2
  69. package/dist/core/table/coreTablesFeature.types.d.ts +6 -2
  70. package/dist/core/table/coreTablesFeature.utils.cjs +7 -3
  71. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  72. package/dist/core/table/coreTablesFeature.utils.d.cts +2 -2
  73. package/dist/core/table/coreTablesFeature.utils.d.ts +2 -2
  74. package/dist/core/table/coreTablesFeature.utils.js +7 -3
  75. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  76. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +16 -10
  77. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +16 -10
  78. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +26 -18
  79. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  80. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +26 -18
  81. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +26 -18
  82. package/dist/features/column-faceting/columnFacetingFeature.utils.js +26 -18
  83. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  84. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +8 -5
  85. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  86. package/dist/features/column-faceting/createFacetedMinMaxValues.js +8 -5
  87. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  88. package/dist/features/column-faceting/createFacetedRowModel.cjs +8 -3
  89. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  90. package/dist/features/column-faceting/createFacetedRowModel.js +8 -3
  91. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  92. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +7 -4
  93. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  94. package/dist/features/column-faceting/createFacetedUniqueValues.js +7 -4
  95. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  96. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +21 -11
  97. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +21 -11
  98. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +39 -28
  99. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  100. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +39 -28
  101. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +39 -28
  102. package/dist/features/column-filtering/columnFilteringFeature.utils.js +39 -28
  103. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  104. package/dist/features/column-filtering/createFilteredRowModel.cjs +11 -5
  105. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  106. package/dist/features/column-filtering/createFilteredRowModel.js +11 -5
  107. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  108. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +18 -14
  109. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +18 -14
  110. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +55 -43
  111. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  112. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +55 -43
  113. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +55 -43
  114. package/dist/features/column-grouping/columnGroupingFeature.utils.js +55 -43
  115. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  116. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +14 -5
  117. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +14 -5
  118. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +46 -29
  119. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
  120. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +30 -23
  121. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +30 -23
  122. package/dist/features/column-ordering/columnOrderingFeature.utils.js +46 -29
  123. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
  124. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +43 -31
  125. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +43 -31
  126. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +152 -115
  127. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  128. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +116 -95
  129. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +116 -95
  130. package/dist/features/column-pinning/columnPinningFeature.utils.js +153 -116
  131. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  132. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +9 -9
  133. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +9 -9
  134. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +28 -19
  135. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  136. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +28 -19
  137. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +28 -19
  138. package/dist/features/column-resizing/columnResizingFeature.utils.js +28 -19
  139. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  140. package/dist/features/column-sizing/columnSizingFeature.cjs +28 -4
  141. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  142. package/dist/features/column-sizing/columnSizingFeature.js +28 -4
  143. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  144. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +19 -12
  145. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +19 -12
  146. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +52 -41
  147. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  148. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +52 -41
  149. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +52 -41
  150. package/dist/features/column-sizing/columnSizingFeature.utils.js +52 -41
  151. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  152. package/dist/features/column-visibility/columnVisibilityFeature.cjs +23 -14
  153. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  154. package/dist/features/column-visibility/columnVisibilityFeature.js +24 -15
  155. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  156. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +19 -12
  157. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +19 -12
  158. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +91 -52
  159. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  160. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +63 -40
  161. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +63 -40
  162. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +91 -53
  163. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  164. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +10 -5
  165. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +10 -5
  166. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +20 -14
  167. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  168. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +20 -14
  169. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +20 -14
  170. package/dist/features/global-filtering/globalFilteringFeature.utils.js +20 -14
  171. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  172. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +16 -15
  173. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +16 -15
  174. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +58 -43
  175. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  176. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +56 -41
  177. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +56 -41
  178. package/dist/features/row-expanding/rowExpandingFeature.utils.js +58 -43
  179. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  180. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +19 -12
  181. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +19 -12
  182. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +49 -32
  183. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
  184. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +49 -32
  185. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +49 -32
  186. package/dist/features/row-pagination/rowPaginationFeature.utils.js +49 -32
  187. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
  188. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +12 -8
  189. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +12 -8
  190. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +52 -36
  191. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  192. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +39 -29
  193. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +39 -29
  194. package/dist/features/row-pinning/rowPinningFeature.utils.js +52 -36
  195. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  196. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +30 -24
  197. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +30 -24
  198. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +95 -72
  199. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  200. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +89 -69
  201. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +89 -69
  202. package/dist/features/row-selection/rowSelectionFeature.utils.js +95 -72
  203. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  204. package/dist/features/row-sorting/createSortedRowModel.cjs +13 -8
  205. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  206. package/dist/features/row-sorting/createSortedRowModel.js +13 -8
  207. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  208. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +10 -8
  209. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +10 -8
  210. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +63 -46
  211. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  212. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +61 -44
  213. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +61 -44
  214. package/dist/features/row-sorting/rowSortingFeature.utils.js +63 -46
  215. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  216. package/dist/fns/aggregationFns.cjs +47 -16
  217. package/dist/fns/aggregationFns.cjs.map +1 -1
  218. package/dist/fns/aggregationFns.d.cts +33 -9
  219. package/dist/fns/aggregationFns.d.ts +33 -9
  220. package/dist/fns/aggregationFns.js +47 -17
  221. package/dist/fns/aggregationFns.js.map +1 -1
  222. package/dist/fns/filterFns.cjs +48 -17
  223. package/dist/fns/filterFns.cjs.map +1 -1
  224. package/dist/fns/filterFns.d.cts +42 -15
  225. package/dist/fns/filterFns.d.ts +42 -15
  226. package/dist/fns/filterFns.js +48 -17
  227. package/dist/fns/filterFns.js.map +1 -1
  228. package/dist/helpers/columnHelper.cjs +9 -4
  229. package/dist/helpers/columnHelper.cjs.map +1 -1
  230. package/dist/helpers/columnHelper.d.cts +9 -4
  231. package/dist/helpers/columnHelper.d.ts +9 -4
  232. package/dist/helpers/columnHelper.js +9 -4
  233. package/dist/helpers/columnHelper.js.map +1 -1
  234. package/dist/helpers/tableOptions.cjs.map +1 -1
  235. package/dist/helpers/tableOptions.d.cts +12 -9
  236. package/dist/helpers/tableOptions.d.ts +12 -9
  237. package/dist/helpers/tableOptions.js.map +1 -1
  238. package/dist/index.cjs +0 -4
  239. package/dist/index.d.cts +2 -2
  240. package/dist/index.d.ts +2 -2
  241. package/dist/index.js +2 -2
  242. package/dist/static-functions.cjs +1 -0
  243. package/dist/static-functions.d.cts +2 -2
  244. package/dist/static-functions.d.ts +2 -2
  245. package/dist/static-functions.js +2 -2
  246. package/dist/store-reactivity-bindings.cjs +1 -0
  247. package/dist/store-reactivity-bindings.cjs.map +1 -1
  248. package/dist/store-reactivity-bindings.js +1 -0
  249. package/dist/store-reactivity-bindings.js.map +1 -1
  250. package/dist/types/ColumnDef.d.cts +38 -0
  251. package/dist/types/ColumnDef.d.ts +38 -0
  252. package/dist/types/TableOptions.d.cts +15 -0
  253. package/dist/types/TableOptions.d.ts +15 -0
  254. package/dist/types/TableState.d.cts +12 -0
  255. package/dist/types/TableState.d.ts +12 -0
  256. package/dist/utils.cjs +18 -39
  257. package/dist/utils.cjs.map +1 -1
  258. package/dist/utils.d.cts +1 -23
  259. package/dist/utils.d.ts +1 -23
  260. package/dist/utils.js +19 -36
  261. package/dist/utils.js.map +1 -1
  262. package/package.json +5 -3
  263. package/skills/column-definitions/SKILL.md +333 -0
  264. package/skills/column-layout/SKILL.md +328 -0
  265. package/skills/column-layout/references/subsystems.md +220 -0
  266. package/skills/customizing-feature-behavior/SKILL.md +416 -0
  267. package/skills/filtering/SKILL.md +357 -0
  268. package/skills/filtering/references/faceting-and-fuzzy.md +191 -0
  269. package/skills/grouping/SKILL.md +448 -0
  270. package/skills/migrate-v8-to-v9/SKILL.md +495 -0
  271. package/skills/pagination/SKILL.md +385 -0
  272. package/skills/row-expanding/SKILL.md +348 -0
  273. package/skills/row-pinning/SKILL.md +269 -0
  274. package/skills/row-selection/SKILL.md +391 -0
  275. package/skills/setup/SKILL.md +400 -0
  276. package/skills/sorting/SKILL.md +344 -0
  277. package/skills/state-management/SKILL.md +388 -0
  278. package/src/core/cells/constructCell.ts +3 -2
  279. package/src/core/cells/coreCellsFeature.utils.ts +11 -8
  280. package/src/core/columns/constructColumn.ts +5 -3
  281. package/src/core/columns/coreColumnsFeature.types.ts +7 -6
  282. package/src/core/columns/coreColumnsFeature.utils.ts +43 -29
  283. package/src/core/headers/buildHeaderGroups.ts +29 -30
  284. package/src/core/headers/constructHeader.ts +3 -2
  285. package/src/core/headers/coreHeadersFeature.ts +2 -27
  286. package/src/core/headers/coreHeadersFeature.types.ts +6 -4
  287. package/src/core/headers/coreHeadersFeature.utils.ts +52 -61
  288. package/src/core/reactivity/coreReactivityFeature.types.ts +4 -0
  289. package/src/core/row-models/coreRowModelsFeature.utils.ts +48 -36
  290. package/src/core/rows/constructRow.ts +6 -4
  291. package/src/core/rows/coreRowsFeature.types.ts +4 -4
  292. package/src/core/rows/coreRowsFeature.utils.ts +45 -32
  293. package/src/core/table/constructTable.ts +6 -4
  294. package/src/core/table/coreTablesFeature.types.ts +6 -2
  295. package/src/core/table/coreTablesFeature.utils.ts +5 -3
  296. package/src/features/column-faceting/columnFacetingFeature.types.ts +16 -10
  297. package/src/features/column-faceting/columnFacetingFeature.utils.ts +26 -18
  298. package/src/features/column-faceting/createFacetedMinMaxValues.ts +8 -10
  299. package/src/features/column-faceting/createFacetedRowModel.ts +10 -6
  300. package/src/features/column-faceting/createFacetedUniqueValues.ts +4 -3
  301. package/src/features/column-filtering/columnFilteringFeature.types.ts +21 -11
  302. package/src/features/column-filtering/columnFilteringFeature.utils.ts +39 -28
  303. package/src/features/column-filtering/createFilteredRowModel.ts +14 -8
  304. package/src/features/column-grouping/columnGroupingFeature.types.ts +18 -14
  305. package/src/features/column-grouping/columnGroupingFeature.utils.ts +55 -43
  306. package/src/features/column-ordering/columnOrderingFeature.types.ts +14 -5
  307. package/src/features/column-ordering/columnOrderingFeature.utils.ts +44 -29
  308. package/src/features/column-pinning/columnPinningFeature.types.ts +43 -31
  309. package/src/features/column-pinning/columnPinningFeature.utils.ts +164 -128
  310. package/src/features/column-resizing/columnResizingFeature.types.ts +9 -9
  311. package/src/features/column-resizing/columnResizingFeature.utils.ts +28 -19
  312. package/src/features/column-sizing/columnSizingFeature.ts +16 -0
  313. package/src/features/column-sizing/columnSizingFeature.types.ts +19 -12
  314. package/src/features/column-sizing/columnSizingFeature.utils.ts +52 -41
  315. package/src/features/column-visibility/columnVisibilityFeature.ts +8 -0
  316. package/src/features/column-visibility/columnVisibilityFeature.types.ts +22 -12
  317. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +101 -56
  318. package/src/features/global-filtering/globalFilteringFeature.types.ts +10 -5
  319. package/src/features/global-filtering/globalFilteringFeature.utils.ts +20 -14
  320. package/src/features/row-expanding/rowExpandingFeature.types.ts +16 -15
  321. package/src/features/row-expanding/rowExpandingFeature.utils.ts +58 -43
  322. package/src/features/row-pagination/rowPaginationFeature.types.ts +19 -12
  323. package/src/features/row-pagination/rowPaginationFeature.utils.ts +49 -32
  324. package/src/features/row-pinning/rowPinningFeature.types.ts +12 -8
  325. package/src/features/row-pinning/rowPinningFeature.utils.ts +59 -47
  326. package/src/features/row-selection/rowSelectionFeature.types.ts +30 -24
  327. package/src/features/row-selection/rowSelectionFeature.utils.ts +109 -88
  328. package/src/features/row-sorting/createSortedRowModel.ts +16 -13
  329. package/src/features/row-sorting/rowSortingFeature.types.ts +10 -8
  330. package/src/features/row-sorting/rowSortingFeature.utils.ts +63 -46
  331. package/src/fns/aggregationFns.ts +53 -17
  332. package/src/fns/filterFns.ts +48 -17
  333. package/src/helpers/columnHelper.ts +9 -4
  334. package/src/helpers/tableOptions.ts +12 -9
  335. package/src/store-reactivity-bindings.ts +1 -0
  336. package/src/types/ColumnDef.ts +38 -0
  337. package/src/types/TableOptions.ts +15 -0
  338. package/src/types/TableState.ts +12 -0
  339. package/src/utils.ts +19 -46
@@ -1,5 +1,5 @@
1
1
  import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from "../../utils.js";
2
- import { column_getCanHide, column_getIsVisible, column_getToggleVisibilityHandler, column_toggleVisibility, getDefaultColumnVisibilityState, row_getVisibleCells, table_getIsAllColumnsVisible, table_getIsSomeColumnsVisible, table_getToggleAllColumnsVisibilityHandler, table_getVisibleFlatColumns, table_getVisibleLeafColumns, table_resetColumnVisibility, table_setColumnVisibility, table_toggleAllColumnsVisible } from "./columnVisibilityFeature.utils.js";
2
+ import { column_getCanHide, column_getIsVisible, column_getToggleVisibilityHandler, column_toggleVisibility, getDefaultColumnVisibilityState, row_getVisibleCells, row_getVisibleCellsByColumnId, table_getIsAllColumnsVisible, table_getIsSomeColumnsVisible, table_getToggleAllColumnsVisibilityHandler, table_getVisibleFlatColumns, table_getVisibleLeafColumns, table_resetColumnVisibility, table_setColumnVisibility, table_toggleAllColumnsVisible } from "./columnVisibilityFeature.utils.js";
3
3
 
4
4
  //#region src/features/column-visibility/columnVisibilityFeature.ts
5
5
  /**
@@ -37,26 +37,35 @@ function constructColumnVisibilityFeature() {
37
37
  });
38
38
  },
39
39
  assignRowPrototype: (prototype, table) => {
40
- assignPrototypeAPIs("columnVisibilityFeature", prototype, table, { row_getVisibleCells: {
41
- fn: (row) => row_getVisibleCells(row),
42
- memoDeps: (row) => {
43
- var _table$atoms$columnPi, _table$atoms$columnVi2;
44
- return [
45
- row.getAllCells(),
46
- (_table$atoms$columnPi = table.atoms.columnPinning) === null || _table$atoms$columnPi === void 0 ? void 0 : _table$atoms$columnPi.get(),
47
- (_table$atoms$columnVi2 = table.atoms.columnVisibility) === null || _table$atoms$columnVi2 === void 0 ? void 0 : _table$atoms$columnVi2.get()
48
- ];
40
+ assignPrototypeAPIs("columnVisibilityFeature", prototype, table, {
41
+ row_getVisibleCells: {
42
+ fn: (row) => row_getVisibleCells(row),
43
+ memoDeps: (row) => {
44
+ var _table$atoms$columnPi, _table$atoms$columnVi2;
45
+ return [
46
+ row.getAllCells(),
47
+ (_table$atoms$columnPi = table.atoms.columnPinning) === null || _table$atoms$columnPi === void 0 ? void 0 : _table$atoms$columnPi.get(),
48
+ (_table$atoms$columnVi2 = table.atoms.columnVisibility) === null || _table$atoms$columnVi2 === void 0 ? void 0 : _table$atoms$columnVi2.get()
49
+ ];
50
+ }
51
+ },
52
+ row_getVisibleCellsByColumnId: {
53
+ fn: (row) => row_getVisibleCellsByColumnId(row),
54
+ memoDeps: (row) => {
55
+ var _table$atoms$columnVi3;
56
+ return [row.getAllCells(), (_table$atoms$columnVi3 = table.atoms.columnVisibility) === null || _table$atoms$columnVi3 === void 0 ? void 0 : _table$atoms$columnVi3.get()];
57
+ }
49
58
  }
50
- } });
59
+ });
51
60
  },
52
61
  constructTableAPIs: (table) => {
53
62
  assignTableAPIs("columnVisibilityFeature", table, {
54
63
  table_getVisibleFlatColumns: {
55
64
  fn: () => table_getVisibleFlatColumns(table),
56
65
  memoDeps: () => {
57
- var _table$atoms$columnVi3, _table$atoms$columnOr;
66
+ var _table$atoms$columnVi4, _table$atoms$columnOr;
58
67
  return [
59
- (_table$atoms$columnVi3 = table.atoms.columnVisibility) === null || _table$atoms$columnVi3 === void 0 ? void 0 : _table$atoms$columnVi3.get(),
68
+ (_table$atoms$columnVi4 = table.atoms.columnVisibility) === null || _table$atoms$columnVi4 === void 0 ? void 0 : _table$atoms$columnVi4.get(),
60
69
  (_table$atoms$columnOr = table.atoms.columnOrder) === null || _table$atoms$columnOr === void 0 ? void 0 : _table$atoms$columnOr.get(),
61
70
  table.options.columns
62
71
  ];
@@ -65,9 +74,9 @@ function constructColumnVisibilityFeature() {
65
74
  table_getVisibleLeafColumns: {
66
75
  fn: () => table_getVisibleLeafColumns(table),
67
76
  memoDeps: () => {
68
- var _table$atoms$columnVi4, _table$atoms$columnOr2;
77
+ var _table$atoms$columnVi5, _table$atoms$columnOr2;
69
78
  return [
70
- (_table$atoms$columnVi4 = table.atoms.columnVisibility) === null || _table$atoms$columnVi4 === void 0 ? void 0 : _table$atoms$columnVi4.get(),
79
+ (_table$atoms$columnVi5 = table.atoms.columnVisibility) === null || _table$atoms$columnVi5 === void 0 ? void 0 : _table$atoms$columnVi5.get(),
71
80
  (_table$atoms$columnOr2 = table.atoms.columnOrder) === null || _table$atoms$columnOr2 === void 0 ? void 0 : _table$atoms$columnOr2.get(),
72
81
  table.options.columns
73
82
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"columnVisibilityFeature.js","names":[],"sources":["../../../src/features/column-visibility/columnVisibilityFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanHide,\n column_getIsVisible,\n column_getToggleVisibilityHandler,\n column_toggleVisibility,\n getDefaultColumnVisibilityState,\n row_getVisibleCells,\n table_getIsAllColumnsVisible,\n table_getIsSomeColumnsVisible,\n table_getToggleAllColumnsVisibilityHandler,\n table_getVisibleFlatColumns,\n table_getVisibleLeafColumns,\n table_resetColumnVisibility,\n table_setColumnVisibility,\n table_toggleAllColumnsVisible,\n} from './columnVisibilityFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// ColumnDef_ColumnVisibility,\n// Column_ColumnVisibility,\n// Row_ColumnVisibility,\n// TableOptions_ColumnVisibility,\n// TableState_ColumnVisibility,\n// Table_ColumnVisibility,\n// } from './columnVisibilityFeature.types'\n\nexport interface ColumnVisibilityFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // ColumnDef: ColumnDef_ColumnVisibility\n // Column: Column_ColumnVisibility\n // Row: Row_ColumnVisibility<TFeatures, TData>\n // Table: Table_ColumnVisibility<TFeatures, TData>\n // TableOptions: TableOptions_ColumnVisibility\n // TableState: TableState_ColumnVisibility\n}\n\n/**\n * Creates the stock column visibility feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructColumnVisibilityFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<ColumnVisibilityFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n columnVisibility: getDefaultColumnVisibilityState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {\n column_getIsVisible: {\n fn: (column) => column_getIsVisible(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnVisibility?.get(),\n column.columns,\n ],\n },\n column_getCanHide: {\n fn: (column) => column_getCanHide(column),\n },\n column_getToggleVisibilityHandler: {\n fn: (column) => column_getToggleVisibilityHandler(column),\n },\n column_toggleVisibility: {\n fn: (column, visible) => column_toggleVisibility(column, visible),\n },\n })\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {\n row_getVisibleCells: {\n fn: (row) => row_getVisibleCells(row),\n memoDeps: (row) => [\n row.getAllCells(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnVisibilityFeature', table, {\n table_getVisibleFlatColumns: {\n fn: () => table_getVisibleFlatColumns(table),\n memoDeps: () => [\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.options.columns,\n ],\n },\n table_getVisibleLeafColumns: {\n fn: () => table_getVisibleLeafColumns(table),\n memoDeps: () => [\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.options.columns,\n ],\n },\n table_setColumnVisibility: {\n fn: (updater) => table_setColumnVisibility(table, updater),\n },\n table_resetColumnVisibility: {\n fn: (defaultState) =>\n table_resetColumnVisibility(table, defaultState),\n },\n table_toggleAllColumnsVisible: {\n fn: (value) => table_toggleAllColumnsVisible(table, value),\n },\n table_getIsAllColumnsVisible: {\n fn: () => table_getIsAllColumnsVisible(table),\n },\n table_getIsSomeColumnsVisible: {\n fn: () => table_getIsSomeColumnsVisible(table),\n },\n table_getToggleAllColumnsVisibilityHandler: {\n fn: () => table_getToggleAllColumnsVisibilityHandler(table),\n },\n })\n },\n }\n}\n\n/**\n * The stock column visibility feature.\n *\n * Register this feature to add column visibility state and APIs for deriving\n * visible columns and visible row cells.\n */\nexport const columnVisibilityFeature = constructColumnVisibilityFeature()\n"],"mappings":";;;;;;;;;AAiDA,SAAgB,mCAGyD;CACvE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,kBAAkB,iCAAiC;IACnD,GAAG;IACJ;;EAGH,yBAAyB,UAAU;GACjC,OAAO,EACL,0BAA0B,iBAAiB,oBAAoB,MAAM,EACtE;;EAGH,wBAAwB,WAAW,UAAU;GAC3C,oBAAoB,2BAA2B,WAAW,OAAO;IAC/D,qBAAqB;KACnB,KAAK,WAAW,oBAAoB,OAAO;KAC3C,WAAW,WAAW;;;OACpB,MAAM,QAAQ;gCACd,MAAM,MAAM,gGAAkB,KAAK;OACnC,OAAO;OACR;;KACF;IACD,mBAAmB,EACjB,KAAK,WAAW,kBAAkB,OAAO,EAC1C;IACD,mCAAmC,EACjC,KAAK,WAAW,kCAAkC,OAAO,EAC1D;IACD,yBAAyB,EACvB,KAAK,QAAQ,YAAY,wBAAwB,QAAQ,QAAQ,EAClE;IACF,CAAC;;EAGJ,qBAAqB,WAAW,UAAU;GACxC,oBAAoB,2BAA2B,WAAW,OAAO,EAC/D,qBAAqB;IACnB,KAAK,QAAQ,oBAAoB,IAAI;IACrC,WAAW,QAAQ;;;MACjB,IAAI,aAAa;+BACjB,MAAM,MAAM,6FAAe,KAAK;gCAChC,MAAM,MAAM,kGAAkB,KAAK;MACpC;;IACF,EACF,CAAC;;EAGJ,qBAAqB,UAAU;GAC7B,gBAAgB,2BAA2B,OAAO;IAChD,6BAA6B;KAC3B,UAAU,4BAA4B,MAAM;KAC5C,gBAAgB;;;iCACd,MAAM,MAAM,kGAAkB,KAAK;gCACnC,MAAM,MAAM,2FAAa,KAAK;OAC9B,MAAM,QAAQ;OACf;;KACF;IACD,6BAA6B;KAC3B,UAAU,4BAA4B,MAAM;KAC5C,gBAAgB;;;iCACd,MAAM,MAAM,kGAAkB,KAAK;iCACnC,MAAM,MAAM,6FAAa,KAAK;OAC9B,MAAM,QAAQ;OACf;;KACF;IACD,2BAA2B,EACzB,KAAK,YAAY,0BAA0B,OAAO,QAAQ,EAC3D;IACD,6BAA6B,EAC3B,KAAK,iBACH,4BAA4B,OAAO,aAAa,EACnD;IACD,+BAA+B,EAC7B,KAAK,UAAU,8BAA8B,OAAO,MAAM,EAC3D;IACD,8BAA8B,EAC5B,UAAU,6BAA6B,MAAM,EAC9C;IACD,+BAA+B,EAC7B,UAAU,8BAA8B,MAAM,EAC/C;IACD,4CAA4C,EAC1C,UAAU,2CAA2C,MAAM,EAC5D;IACF,CAAC;;EAEL;;;;;;;;AASH,MAAa,0BAA0B,kCAAkC"}
1
+ {"version":3,"file":"columnVisibilityFeature.js","names":[],"sources":["../../../src/features/column-visibility/columnVisibilityFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanHide,\n column_getIsVisible,\n column_getToggleVisibilityHandler,\n column_toggleVisibility,\n getDefaultColumnVisibilityState,\n row_getVisibleCells,\n row_getVisibleCellsByColumnId,\n table_getIsAllColumnsVisible,\n table_getIsSomeColumnsVisible,\n table_getToggleAllColumnsVisibilityHandler,\n table_getVisibleFlatColumns,\n table_getVisibleLeafColumns,\n table_resetColumnVisibility,\n table_setColumnVisibility,\n table_toggleAllColumnsVisible,\n} from './columnVisibilityFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// ColumnDef_ColumnVisibility,\n// Column_ColumnVisibility,\n// Row_ColumnVisibility,\n// TableOptions_ColumnVisibility,\n// TableState_ColumnVisibility,\n// Table_ColumnVisibility,\n// } from './columnVisibilityFeature.types'\n\nexport interface ColumnVisibilityFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // ColumnDef: ColumnDef_ColumnVisibility\n // Column: Column_ColumnVisibility\n // Row: Row_ColumnVisibility<TFeatures, TData>\n // Table: Table_ColumnVisibility<TFeatures, TData>\n // TableOptions: TableOptions_ColumnVisibility\n // TableState: TableState_ColumnVisibility\n}\n\n/**\n * Creates the stock column visibility feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructColumnVisibilityFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<ColumnVisibilityFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n columnVisibility: getDefaultColumnVisibilityState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {\n column_getIsVisible: {\n fn: (column) => column_getIsVisible(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnVisibility?.get(),\n column.columns,\n ],\n },\n column_getCanHide: {\n fn: (column) => column_getCanHide(column),\n },\n column_getToggleVisibilityHandler: {\n fn: (column) => column_getToggleVisibilityHandler(column),\n },\n column_toggleVisibility: {\n fn: (column, visible) => column_toggleVisibility(column, visible),\n },\n })\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {\n row_getVisibleCells: {\n fn: (row) => row_getVisibleCells(row),\n memoDeps: (row) => [\n row.getAllCells(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n row_getVisibleCellsByColumnId: {\n fn: (row) => row_getVisibleCellsByColumnId(row),\n memoDeps: (row) => [\n row.getAllCells(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnVisibilityFeature', table, {\n table_getVisibleFlatColumns: {\n fn: () => table_getVisibleFlatColumns(table),\n memoDeps: () => [\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.options.columns,\n ],\n },\n table_getVisibleLeafColumns: {\n fn: () => table_getVisibleLeafColumns(table),\n memoDeps: () => [\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.options.columns,\n ],\n },\n table_setColumnVisibility: {\n fn: (updater) => table_setColumnVisibility(table, updater),\n },\n table_resetColumnVisibility: {\n fn: (defaultState) =>\n table_resetColumnVisibility(table, defaultState),\n },\n table_toggleAllColumnsVisible: {\n fn: (value) => table_toggleAllColumnsVisible(table, value),\n },\n table_getIsAllColumnsVisible: {\n fn: () => table_getIsAllColumnsVisible(table),\n },\n table_getIsSomeColumnsVisible: {\n fn: () => table_getIsSomeColumnsVisible(table),\n },\n table_getToggleAllColumnsVisibilityHandler: {\n fn: () => table_getToggleAllColumnsVisibilityHandler(table),\n },\n })\n },\n }\n}\n\n/**\n * The stock column visibility feature.\n *\n * Register this feature to add column visibility state and APIs for deriving\n * visible columns and visible row cells.\n */\nexport const columnVisibilityFeature = constructColumnVisibilityFeature()\n"],"mappings":";;;;;;;;;AAkDA,SAAgB,mCAGyD;CACvE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,kBAAkB,iCAAiC;IACnD,GAAG;IACJ;;EAGH,yBAAyB,UAAU;GACjC,OAAO,EACL,0BAA0B,iBAAiB,oBAAoB,MAAM,EACtE;;EAGH,wBAAwB,WAAW,UAAU;GAC3C,oBAAoB,2BAA2B,WAAW,OAAO;IAC/D,qBAAqB;KACnB,KAAK,WAAW,oBAAoB,OAAO;KAC3C,WAAW,WAAW;;;OACpB,MAAM,QAAQ;gCACd,MAAM,MAAM,gGAAkB,KAAK;OACnC,OAAO;OACR;;KACF;IACD,mBAAmB,EACjB,KAAK,WAAW,kBAAkB,OAAO,EAC1C;IACD,mCAAmC,EACjC,KAAK,WAAW,kCAAkC,OAAO,EAC1D;IACD,yBAAyB,EACvB,KAAK,QAAQ,YAAY,wBAAwB,QAAQ,QAAQ,EAClE;IACF,CAAC;;EAGJ,qBAAqB,WAAW,UAAU;GACxC,oBAAoB,2BAA2B,WAAW,OAAO;IAC/D,qBAAqB;KACnB,KAAK,QAAQ,oBAAoB,IAAI;KACrC,WAAW,QAAQ;;;OACjB,IAAI,aAAa;gCACjB,MAAM,MAAM,6FAAe,KAAK;iCAChC,MAAM,MAAM,kGAAkB,KAAK;OACpC;;KACF;IACD,+BAA+B;KAC7B,KAAK,QAAQ,8BAA8B,IAAI;KAC/C,WAAW,QAAQ;;cACjB,IAAI,aAAa,4BACjB,MAAM,MAAM,kGAAkB,KAAK,CACpC;;KACF;IACF,CAAC;;EAGJ,qBAAqB,UAAU;GAC7B,gBAAgB,2BAA2B,OAAO;IAChD,6BAA6B;KAC3B,UAAU,4BAA4B,MAAM;KAC5C,gBAAgB;;;iCACd,MAAM,MAAM,kGAAkB,KAAK;gCACnC,MAAM,MAAM,2FAAa,KAAK;OAC9B,MAAM,QAAQ;OACf;;KACF;IACD,6BAA6B;KAC3B,UAAU,4BAA4B,MAAM;KAC5C,gBAAgB;;;iCACd,MAAM,MAAM,kGAAkB,KAAK;iCACnC,MAAM,MAAM,6FAAa,KAAK;OAC9B,MAAM,QAAQ;OACf;;KACF;IACD,2BAA2B,EACzB,KAAK,YAAY,0BAA0B,OAAO,QAAQ,EAC3D;IACD,6BAA6B,EAC3B,KAAK,iBACH,4BAA4B,OAAO,aAAa,EACnD;IACD,+BAA+B,EAC7B,KAAK,UAAU,8BAA8B,OAAO,MAAM,EAC3D;IACD,8BAA8B,EAC5B,UAAU,6BAA6B,MAAM,EAC9C;IACD,+BAA+B,EAC7B,UAAU,8BAA8B,MAAM,EAC/C;IACD,4CAA4C,EAC1C,UAAU,2CAA2C,MAAM,EAC5D;IACF,CAAC;;EAEL;;;;;;;;AASH,MAAa,0BAA0B,kCAAkC"}
@@ -23,31 +23,34 @@ interface TableOptions_ColumnVisibility {
23
23
  type VisibilityDefaultOptions = Pick<TableOptions_ColumnVisibility, 'onColumnVisibilityChange'>;
24
24
  interface Table_ColumnVisibility<TFeatures extends TableFeatures, TData extends RowData> {
25
25
  /**
26
- * Returns whether all columns are visible
26
+ * Checks whether every leaf column is currently visible.
27
27
  */
28
28
  getIsAllColumnsVisible: () => boolean;
29
29
  /**
30
- * Returns whether any columns are visible
30
+ * Checks whether at least one leaf column is currently visible.
31
31
  */
32
32
  getIsSomeColumnsVisible: () => boolean;
33
33
  /**
34
- * Returns a handler for toggling the visibility of all columns, meant to be bound to a `input[type=checkbox]` element.
34
+ * Creates a checkbox-style handler that shows or hides all columns.
35
35
  */
36
36
  getToggleAllColumnsVisibilityHandler: () => (event: unknown) => void;
37
37
  /**
38
- * Returns a flat array of columns that are visible, including parent columns.
38
+ * Lists visible columns in flat table order, including parent columns that
39
+ * have visible descendants.
39
40
  */
40
41
  getVisibleFlatColumns: () => Array<Column<TFeatures, TData, unknown>>;
41
42
  /**
42
- * Returns a flat array of leaf-node columns that are visible.
43
+ * Lists visible leaf columns in the order used for row cells and headers.
43
44
  */
44
45
  getVisibleLeafColumns: () => Array<Column<TFeatures, TData, unknown>>;
45
46
  /**
46
- * Resets the column visibility state to the initial state. If `defaultState` is provided, the state will be reset to `{}`
47
+ * Resets `columnVisibility` to `initialState.columnVisibility`.
48
+ *
49
+ * Pass `true` to ignore initial state and reset to `{}`.
47
50
  */
48
51
  resetColumnVisibility: (defaultState?: boolean) => void;
49
52
  /**
50
- * Sets column visibility state using a value or updater.
53
+ * Updates column visibility state with a next map or updater function.
51
54
  */
52
55
  setColumnVisibility: (updater: Updater<ColumnVisibilityState>) => void;
53
56
  /**
@@ -57,27 +60,31 @@ interface Table_ColumnVisibility<TFeatures extends TableFeatures, TData extends
57
60
  }
58
61
  interface ColumnDef_ColumnVisibility {
59
62
  /**
60
- * Enables/disables column hiding for this column. Defaults to `true`.
63
+ * Allows this column to be hidden. Defaults to `true`.
61
64
  */
62
65
  enableHiding?: boolean;
63
66
  }
64
67
  interface Row_ColumnVisibility<TFeatures extends TableFeatures, TData extends RowData> {
65
68
  /**
66
- * Returns an array of cells that account for column visibility for the row.
69
+ * Gets this row's cells for currently visible columns.
67
70
  */
68
71
  getVisibleCells: () => Array<Cell<TFeatures, TData, unknown>>;
72
+ /**
73
+ * Maps this row's currently visible cells by column id.
74
+ */
75
+ getVisibleCellsByColumnId: () => Record<string, Cell<TFeatures, TData, unknown>>;
69
76
  }
70
77
  interface Column_ColumnVisibility {
71
78
  /**
72
- * Returns whether the column can be hidden
79
+ * Checks whether this column is allowed to be hidden.
73
80
  */
74
81
  getCanHide: () => boolean;
75
82
  /**
76
- * Returns whether the column is visible
83
+ * Checks whether this column is currently visible.
77
84
  */
78
85
  getIsVisible: () => boolean;
79
86
  /**
80
- * Returns a function that can be used to toggle the column visibility. This function can be used to bind to an event handler to a checkbox.
87
+ * Creates a checkbox-style handler that toggles this column's visibility.
81
88
  */
82
89
  getToggleVisibilityHandler: () => (event: unknown) => void;
83
90
  /**
@@ -23,31 +23,34 @@ interface TableOptions_ColumnVisibility {
23
23
  type VisibilityDefaultOptions = Pick<TableOptions_ColumnVisibility, 'onColumnVisibilityChange'>;
24
24
  interface Table_ColumnVisibility<TFeatures extends TableFeatures, TData extends RowData> {
25
25
  /**
26
- * Returns whether all columns are visible
26
+ * Checks whether every leaf column is currently visible.
27
27
  */
28
28
  getIsAllColumnsVisible: () => boolean;
29
29
  /**
30
- * Returns whether any columns are visible
30
+ * Checks whether at least one leaf column is currently visible.
31
31
  */
32
32
  getIsSomeColumnsVisible: () => boolean;
33
33
  /**
34
- * Returns a handler for toggling the visibility of all columns, meant to be bound to a `input[type=checkbox]` element.
34
+ * Creates a checkbox-style handler that shows or hides all columns.
35
35
  */
36
36
  getToggleAllColumnsVisibilityHandler: () => (event: unknown) => void;
37
37
  /**
38
- * Returns a flat array of columns that are visible, including parent columns.
38
+ * Lists visible columns in flat table order, including parent columns that
39
+ * have visible descendants.
39
40
  */
40
41
  getVisibleFlatColumns: () => Array<Column<TFeatures, TData, unknown>>;
41
42
  /**
42
- * Returns a flat array of leaf-node columns that are visible.
43
+ * Lists visible leaf columns in the order used for row cells and headers.
43
44
  */
44
45
  getVisibleLeafColumns: () => Array<Column<TFeatures, TData, unknown>>;
45
46
  /**
46
- * Resets the column visibility state to the initial state. If `defaultState` is provided, the state will be reset to `{}`
47
+ * Resets `columnVisibility` to `initialState.columnVisibility`.
48
+ *
49
+ * Pass `true` to ignore initial state and reset to `{}`.
47
50
  */
48
51
  resetColumnVisibility: (defaultState?: boolean) => void;
49
52
  /**
50
- * Sets column visibility state using a value or updater.
53
+ * Updates column visibility state with a next map or updater function.
51
54
  */
52
55
  setColumnVisibility: (updater: Updater<ColumnVisibilityState>) => void;
53
56
  /**
@@ -57,27 +60,31 @@ interface Table_ColumnVisibility<TFeatures extends TableFeatures, TData extends
57
60
  }
58
61
  interface ColumnDef_ColumnVisibility {
59
62
  /**
60
- * Enables/disables column hiding for this column. Defaults to `true`.
63
+ * Allows this column to be hidden. Defaults to `true`.
61
64
  */
62
65
  enableHiding?: boolean;
63
66
  }
64
67
  interface Row_ColumnVisibility<TFeatures extends TableFeatures, TData extends RowData> {
65
68
  /**
66
- * Returns an array of cells that account for column visibility for the row.
69
+ * Gets this row's cells for currently visible columns.
67
70
  */
68
71
  getVisibleCells: () => Array<Cell<TFeatures, TData, unknown>>;
72
+ /**
73
+ * Maps this row's currently visible cells by column id.
74
+ */
75
+ getVisibleCellsByColumnId: () => Record<string, Cell<TFeatures, TData, unknown>>;
69
76
  }
70
77
  interface Column_ColumnVisibility {
71
78
  /**
72
- * Returns whether the column can be hidden
79
+ * Checks whether this column is allowed to be hidden.
73
80
  */
74
81
  getCanHide: () => boolean;
75
82
  /**
76
- * Returns whether the column is visible
83
+ * Checks whether this column is currently visible.
77
84
  */
78
85
  getIsVisible: () => boolean;
79
86
  /**
80
- * Returns a function that can be used to toggle the column visibility. This function can be used to bind to an event handler to a checkbox.
87
+ * Creates a checkbox-style handler that toggles this column's visibility.
81
88
  */
82
89
  getToggleVisibilityHandler: () => (event: unknown) => void;
83
90
  /**
@@ -3,22 +3,24 @@ const require_columnPinningFeature_utils = require('../column-pinning/columnPinn
3
3
 
4
4
  //#region src/features/column-visibility/columnVisibilityFeature.utils.ts
5
5
  /**
6
- * Returns the default column visibility state.
6
+ * Creates the default column visibility state.
7
7
  *
8
- * Feature constructors use this value to initialize the table state or option defaults when no user value is provided.
8
+ * The feature default is an empty object, where missing column ids are treated
9
+ * as visible. Reset APIs use this value when `defaultState` is `true`.
9
10
  *
10
11
  * @example
11
12
  * ```ts
12
- * const initialValue = getDefaultColumnVisibilityState()
13
+ * const visibility = getDefaultColumnVisibilityState()
13
14
  * ```
14
15
  */
15
16
  function getDefaultColumnVisibilityState() {
16
17
  return {};
17
18
  }
18
19
  /**
19
- * Toggles visibility for a column.
20
+ * Updates this column's visibility when hiding is allowed.
20
21
  *
21
- * The update is applied through the owning table state slice and respects the feature options for that column.
22
+ * Passing `visible` stores that value. Omitting it flips the column's current
23
+ * visibility state. Columns that cannot hide are left unchanged.
22
24
  *
23
25
  * @example
24
26
  * ```ts
@@ -32,13 +34,15 @@ function column_toggleVisibility(column, visible) {
32
34
  }));
33
35
  }
34
36
  /**
35
- * Returns is visible for a column.
37
+ * Checks whether this column is visible.
36
38
  *
37
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
39
+ * Leaf columns read `state.columnVisibility[column.id]`, where missing entries
40
+ * default to visible. Parent columns are visible when at least one child column
41
+ * is visible.
38
42
  *
39
43
  * @example
40
44
  * ```ts
41
- * const value = column_getIsVisible(column)
45
+ * const visible = column_getIsVisible(column)
42
46
  * ```
43
47
  */
44
48
  function column_getIsVisible(column) {
@@ -47,26 +51,27 @@ function column_getIsVisible(column) {
47
51
  return (childColumns.length ? childColumns.some((childColumn) => require_utils.callMemoOrStaticFn(childColumn, "getIsVisible", column_getIsVisible)) : (_column$table$atoms$c = column.table.atoms.columnVisibility) === 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[column.id]) ?? true;
48
52
  }
49
53
  /**
50
- * Returns whether a column can use hide.
54
+ * Checks whether this column is allowed to be hidden.
51
55
  *
52
- * This combines column options, table options, and any required accessor or feature state for the capability.
56
+ * Both `columnDef.enableHiding` and table `enableHiding` default to `true`.
53
57
  *
54
58
  * @example
55
59
  * ```ts
56
- * const value = column_getCanHide(column)
60
+ * const canHide = column_getCanHide(column)
57
61
  * ```
58
62
  */
59
63
  function column_getCanHide(column) {
60
64
  return (column.columnDef.enableHiding ?? true) && (column.table.options.enableHiding ?? true);
61
65
  }
62
66
  /**
63
- * Returns an event handler for toggling visibility handler.
67
+ * Creates a checkbox-style handler that writes this column's visibility.
64
68
  *
65
- * The handler is intended for direct use in column header controls such as buttons or checkboxes.
69
+ * The handler reads `event.target.checked`, so it is intended for visibility
70
+ * controls whose checked state means "visible".
66
71
  *
67
72
  * @example
68
73
  * ```ts
69
- * const value = column_getToggleVisibilityHandler(column)
74
+ * const onChange = column_getToggleVisibilityHandler(column)
70
75
  * ```
71
76
  */
72
77
  function column_getToggleVisibilityHandler(column) {
@@ -75,38 +80,42 @@ function column_getToggleVisibilityHandler(column) {
75
80
  };
76
81
  }
77
82
  /**
78
- * Returns visible cells for a row.
83
+ * Collects the cells from this row whose columns are visible.
79
84
  *
80
- * This is the static implementation behind the matching row instance API and may read row caches or table state atoms.
85
+ * When column pinning is active, the result is ordered as left-pinned cells,
86
+ * center cells, then right-pinned cells.
81
87
  *
82
88
  * @example
83
89
  * ```ts
84
- * const value = row_getVisibleCells(row)
90
+ * const visibleCells = row_getVisibleCells(row)
85
91
  * ```
86
92
  */
87
93
  function row_getVisibleCells(row) {
88
94
  var _row$table$atoms$colu;
89
- const cells = row.getAllCells().filter((cell) => require_utils.callMemoOrStaticFn(cell.column, "getIsVisible", column_getIsVisible));
95
+ const allCells = row.getAllCells();
96
+ const visibleCells = [];
97
+ for (let i = 0; i < allCells.length; i++) {
98
+ const cell = allCells[i];
99
+ if (require_utils.callMemoOrStaticFn(cell.column, "getIsVisible", column_getIsVisible)) visibleCells.push(cell);
100
+ }
90
101
  const { left, right } = ((_row$table$atoms$colu = row.table.atoms.columnPinning) === null || _row$table$atoms$colu === void 0 ? void 0 : _row$table$atoms$colu.get()) ?? require_columnPinningFeature_utils.getDefaultColumnPinningState();
91
- if (!left.length && !right.length) return cells;
92
- const cellsByColumnId = /* @__PURE__ */ new Map();
93
- for (const cell of cells) cellsByColumnId.set(cell.column.id, cell);
102
+ if (!left.length && !right.length) return visibleCells;
103
+ const visibleCellsByColumnId = require_utils.callMemoOrStaticFn(row, "getVisibleCellsByColumnId", row_getVisibleCellsByColumnId);
94
104
  const leftCells = [];
95
- for (const columnId of left) {
96
- const cell = cellsByColumnId.get(columnId);
105
+ for (let i = 0; i < left.length; i++) {
106
+ const cell = visibleCellsByColumnId[left[i]];
97
107
  if (cell) leftCells.push(cell);
98
108
  }
99
109
  const rightCells = [];
100
- for (const columnId of right) {
101
- const cell = cellsByColumnId.get(columnId);
110
+ for (let i = 0; i < right.length; i++) {
111
+ const cell = visibleCellsByColumnId[right[i]];
102
112
  if (cell) rightCells.push(cell);
103
113
  }
104
- const leftSet = new Set(left);
105
- const rightSet = new Set(right);
106
114
  const centerCells = [];
107
- for (const cell of cells) {
115
+ for (let i = 0; i < visibleCells.length; i++) {
116
+ const cell = visibleCells[i];
108
117
  const id = cell.column.id;
109
- if (!leftSet.has(id) && !rightSet.has(id)) centerCells.push(cell);
118
+ if (!left.includes(id) && !right.includes(id)) centerCells.push(cell);
110
119
  }
111
120
  return [
112
121
  ...leftCells,
@@ -115,39 +124,61 @@ function row_getVisibleCells(row) {
115
124
  ];
116
125
  }
117
126
  /**
118
- * Returns visible flat columns for the table.
127
+ * Builds a lookup map of this row's visible cells keyed by column id.
119
128
  *
120
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
129
+ * Hidden columns are omitted from the map.
121
130
  *
122
131
  * @example
123
132
  * ```ts
124
- * const value = table_getVisibleFlatColumns(table)
133
+ * const visibleCellsById = row_getVisibleCellsByColumnId(row)
134
+ * ```
135
+ */
136
+ function row_getVisibleCellsByColumnId(row) {
137
+ const result = {};
138
+ const allCells = row.getAllCells();
139
+ for (let i = 0; i < allCells.length; i++) {
140
+ const cell = allCells[i];
141
+ if (require_utils.callMemoOrStaticFn(cell.column, "getIsVisible", column_getIsVisible)) result[cell.column.id] = cell;
142
+ }
143
+ return result;
144
+ }
145
+ /**
146
+ * Filters the flat column list down to visible columns.
147
+ *
148
+ * Parent/group columns are included when `column_getIsVisible` considers them
149
+ * visible.
150
+ *
151
+ * @example
152
+ * ```ts
153
+ * const columns = table_getVisibleFlatColumns(table)
125
154
  * ```
126
155
  */
127
156
  function table_getVisibleFlatColumns(table) {
128
157
  return table.getAllFlatColumns().filter((column) => require_utils.callMemoOrStaticFn(column, "getIsVisible", column_getIsVisible));
129
158
  }
130
159
  /**
131
- * Returns visible leaf columns for the table.
160
+ * Filters leaf columns down to those currently visible.
132
161
  *
133
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
162
+ * This is the column list most row rendering code uses before pinning-specific
163
+ * partitioning.
134
164
  *
135
165
  * @example
136
166
  * ```ts
137
- * const value = table_getVisibleLeafColumns(table)
167
+ * const columns = table_getVisibleLeafColumns(table)
138
168
  * ```
139
169
  */
140
170
  function table_getVisibleLeafColumns(table) {
141
171
  return table.getAllLeafColumns().filter((column) => require_utils.callMemoOrStaticFn(column, "getIsVisible", column_getIsVisible));
142
172
  }
143
173
  /**
144
- * Updates the table's column visibility state slice.
174
+ * Routes a column visibility updater through the table's visibility change handler.
145
175
  *
146
- * The updater follows TanStack Table updater semantics and is routed through the corresponding `on*Change` option or backing atom.
176
+ * The updater may be a next visibility map or a function of the previous map,
177
+ * matching the instance `table.setColumnVisibility` behavior.
147
178
  *
148
179
  * @example
149
180
  * ```ts
150
- * table_setColumnVisibility(table, (old) => old)
181
+ * table_setColumnVisibility(table, (old) => ({ ...old, age: false }))
151
182
  * ```
152
183
  */
153
184
  function table_setColumnVisibility(table, updater) {
@@ -155,9 +186,10 @@ function table_setColumnVisibility(table, updater) {
155
186
  (_table$options$onColu = (_table$options = table.options).onColumnVisibilityChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
156
187
  }
157
188
  /**
158
- * Resets the table's column visibility state slice.
189
+ * Resets `columnVisibility` to the configured initial state or feature default.
159
190
  *
160
- * By default the reset uses `table.initialState`; when supported, a blank/default reset bypasses the saved initial value.
191
+ * With no argument, the reset clones `table.initialState.columnVisibility` when
192
+ * it exists. Passing `true` ignores initial state and resets to `{}`.
161
193
  *
162
194
  * @example
163
195
  * ```ts
@@ -169,9 +201,9 @@ function table_resetColumnVisibility(table, defaultState) {
169
201
  table_setColumnVisibility(table, defaultState ? {} : require_utils.cloneState(table.initialState.columnVisibility ?? {}));
170
202
  }
171
203
  /**
172
- * Toggles all columns visible for the table.
204
+ * Shows or hides every hideable leaf column.
173
205
  *
174
- * This is the table-level convenience API used by UI controls that affect many columns or rows at once.
206
+ * Columns that cannot hide stay visible when toggling all columns off.
175
207
  *
176
208
  * @example
177
209
  * ```ts
@@ -181,43 +213,49 @@ function table_resetColumnVisibility(table, defaultState) {
181
213
  function table_toggleAllColumnsVisible(table, value) {
182
214
  value = value ?? !table_getIsAllColumnsVisible(table);
183
215
  const visibility = {};
184
- for (const column of table.getAllLeafColumns()) visibility[column.id] = !value ? !column_getCanHide(column) : value;
216
+ const leafColumns = table.getAllLeafColumns();
217
+ for (let i = 0; i < leafColumns.length; i++) {
218
+ const column = leafColumns[i];
219
+ visibility[column.id] = !value ? !column_getCanHide(column) : value;
220
+ }
185
221
  table_setColumnVisibility(table, visibility);
186
222
  }
187
223
  /**
188
- * Returns is all columns visible for the table.
224
+ * Checks whether every leaf column is currently visible.
189
225
  *
190
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
226
+ * Non-hideable columns are naturally visible because missing visibility entries
227
+ * default to `true`.
191
228
  *
192
229
  * @example
193
230
  * ```ts
194
- * const value = table_getIsAllColumnsVisible(table)
231
+ * const allVisible = table_getIsAllColumnsVisible(table)
195
232
  * ```
196
233
  */
197
234
  function table_getIsAllColumnsVisible(table) {
198
235
  return !table.getAllLeafColumns().some((column) => !require_utils.callMemoOrStaticFn(column, "getIsVisible", column_getIsVisible));
199
236
  }
200
237
  /**
201
- * Returns is some columns visible for the table.
238
+ * Checks whether at least one leaf column is currently visible.
202
239
  *
203
- * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.
240
+ * This is useful for tri-state "show all columns" controls.
204
241
  *
205
242
  * @example
206
243
  * ```ts
207
- * const value = table_getIsSomeColumnsVisible(table)
244
+ * const someVisible = table_getIsSomeColumnsVisible(table)
208
245
  * ```
209
246
  */
210
247
  function table_getIsSomeColumnsVisible(table) {
211
248
  return table.getAllLeafColumns().some((column) => require_utils.callMemoOrStaticFn(column, "getIsVisible", column_getIsVisible));
212
249
  }
213
250
  /**
214
- * Returns an event handler for all columns visibility handler.
251
+ * Creates a checkbox-style handler that shows or hides all columns.
215
252
  *
216
- * The handler calls the matching table toggle API and can be attached directly to checkbox or button UI.
253
+ * The handler reads `event.target.checked`, so it is intended for controls whose
254
+ * checked state means "all columns visible".
217
255
  *
218
256
  * @example
219
257
  * ```ts
220
- * const value = table_getToggleAllColumnsVisibilityHandler(table)
258
+ * const onChange = table_getToggleAllColumnsVisibilityHandler(table)
221
259
  * ```
222
260
  */
223
261
  function table_getToggleAllColumnsVisibilityHandler(table) {
@@ -233,6 +271,7 @@ exports.column_getToggleVisibilityHandler = column_getToggleVisibilityHandler;
233
271
  exports.column_toggleVisibility = column_toggleVisibility;
234
272
  exports.getDefaultColumnVisibilityState = getDefaultColumnVisibilityState;
235
273
  exports.row_getVisibleCells = row_getVisibleCells;
274
+ exports.row_getVisibleCellsByColumnId = row_getVisibleCellsByColumnId;
236
275
  exports.table_getIsAllColumnsVisible = table_getIsAllColumnsVisible;
237
276
  exports.table_getIsSomeColumnsVisible = table_getIsSomeColumnsVisible;
238
277
  exports.table_getToggleAllColumnsVisibilityHandler = table_getToggleAllColumnsVisibilityHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"columnVisibilityFeature.utils.cjs","names":["callMemoOrStaticFn","getDefaultColumnPinningState","cloneState"],"sources":["../../../src/features/column-visibility/columnVisibilityFeature.utils.ts"],"sourcesContent":["import { callMemoOrStaticFn, cloneState } from '../../utils'\nimport { getDefaultColumnPinningState } from '../column-pinning/columnPinningFeature.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 { Cell } from '../../types/Cell'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnVisibilityState } from './columnVisibilityFeature.types'\nimport type { Row } from '../../types/Row'\n\n/**\n * Returns the default column visibility state.\n *\n * Feature constructors use this value to initialize the table state or option defaults when no user value is provided.\n *\n * @example\n * ```ts\n * const initialValue = getDefaultColumnVisibilityState()\n * ```\n */\nexport function getDefaultColumnVisibilityState(): ColumnVisibilityState {\n return {}\n}\n\n/**\n * Toggles visibility for a column.\n *\n * The update is applied through the owning table state slice and respects the feature options for that column.\n *\n * @example\n * ```ts\n * column_toggleVisibility(column)\n * ```\n */\nexport function column_toggleVisibility<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>, visible?: boolean): void {\n if (column_getCanHide(column)) {\n table_setColumnVisibility(column.table, (old) => ({\n ...old,\n [column.id]:\n visible ??\n !callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n }))\n }\n}\n\n/**\n * Returns is visible for a column.\n *\n * This derives the value from the column definition, table options, and the feature state atoms registered on the table.\n *\n * @example\n * ```ts\n * const value = column_getIsVisible(column)\n * ```\n */\nexport function column_getIsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n const childColumns = column.columns\n return (\n (childColumns.length\n ? childColumns.some((childColumn) =>\n callMemoOrStaticFn(childColumn, 'getIsVisible', column_getIsVisible),\n )\n : column.table.atoms.columnVisibility?.get()?.[column.id]) ?? true\n )\n}\n\n/**\n * Returns whether a column can use hide.\n *\n * This combines column options, table options, and any required accessor or feature state for the capability.\n *\n * @example\n * ```ts\n * const value = column_getCanHide(column)\n * ```\n */\nexport function column_getCanHide<\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.enableHiding ?? true) &&\n (column.table.options.enableHiding ?? true)\n )\n}\n\n/**\n * Returns an event handler for toggling visibility handler.\n *\n * The handler is intended for direct use in column header controls such as buttons or checkboxes.\n *\n * @example\n * ```ts\n * const value = column_getToggleVisibilityHandler(column)\n * ```\n */\nexport function column_getToggleVisibilityHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (e: unknown) => {\n column_toggleVisibility(\n column,\n ((e as MouseEvent).target as HTMLInputElement).checked,\n )\n }\n}\n\n/**\n * Returns visible cells for a row.\n *\n * This is the static implementation behind the matching row instance API and may read row caches or table state atoms.\n *\n * @example\n * ```ts\n * const value = row_getVisibleCells(row)\n * ```\n */\nexport function row_getVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const cells = row\n .getAllCells()\n .filter((cell) =>\n callMemoOrStaticFn(cell.column, 'getIsVisible', column_getIsVisible),\n )\n const { left, right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!left.length && !right.length) return cells // no pinning, return early\n\n const cellsByColumnId = new Map<string, Cell<TFeatures, TData, unknown>>()\n for (const cell of cells) cellsByColumnId.set(cell.column.id, cell)\n\n const leftCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (const columnId of left) {\n const cell = cellsByColumnId.get(columnId)\n if (cell) leftCells.push(cell)\n }\n\n const rightCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (const columnId of right) {\n const cell = cellsByColumnId.get(columnId)\n if (cell) rightCells.push(cell)\n }\n\n // Center cells: visible cells in natural column order, minus pinned ones.\n const leftSet = new Set(left)\n const rightSet = new Set(right)\n const centerCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (const cell of cells) {\n const id = cell.column.id\n if (!leftSet.has(id) && !rightSet.has(id)) centerCells.push(cell)\n }\n\n return [...leftCells, ...centerCells, ...rightCells]\n}\n\n/**\n * Returns visible flat columns for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getVisibleFlatColumns(table)\n * ```\n */\nexport function table_getVisibleFlatColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getAllFlatColumns()\n .filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Returns visible leaf columns for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getVisibleLeafColumns(table)\n * ```\n */\nexport function table_getVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getAllLeafColumns()\n .filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Updates the table's column visibility state slice.\n *\n * The updater follows TanStack Table updater semantics and is routed through the corresponding `on*Change` option or backing atom.\n *\n * @example\n * ```ts\n * table_setColumnVisibility(table, (old) => old)\n * ```\n */\nexport function table_setColumnVisibility<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnVisibilityState>,\n) {\n table.options.onColumnVisibilityChange?.(updater)\n}\n\n/**\n * Resets the table's column visibility state slice.\n *\n * By default the reset uses `table.initialState`; when supported, a blank/default reset bypasses the saved initial value.\n *\n * @example\n * ```ts\n * table_resetColumnVisibility(table)\n * table_resetColumnVisibility(table, true)\n * ```\n */\nexport function table_resetColumnVisibility<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnVisibility(\n table,\n defaultState ? {} : cloneState(table.initialState.columnVisibility ?? {}),\n )\n}\n\n/**\n * Toggles all columns visible for the table.\n *\n * This is the table-level convenience API used by UI controls that affect many columns or rows at once.\n *\n * @example\n * ```ts\n * table_toggleAllColumnsVisible(table)\n * ```\n */\nexport function table_toggleAllColumnsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, value?: boolean) {\n value = value ?? !table_getIsAllColumnsVisible(table)\n\n const visibility: Record<string, boolean> = {}\n for (const column of table.getAllLeafColumns()) {\n visibility[column.id] = !value ? !column_getCanHide(column) : value\n }\n\n table_setColumnVisibility(table, visibility)\n}\n\n/**\n * Returns is all columns visible for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getIsAllColumnsVisible(table)\n * ```\n */\nexport function table_getIsAllColumnsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return !table\n .getAllLeafColumns()\n .some(\n (column) =>\n !callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Returns is some columns visible for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getIsSomeColumnsVisible(table)\n * ```\n */\nexport function table_getIsSomeColumnsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getAllLeafColumns()\n .some((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Returns an event handler for all columns visibility handler.\n *\n * The handler calls the matching table toggle API and can be attached directly to checkbox or button UI.\n *\n * @example\n * ```ts\n * const value = table_getToggleAllColumnsVisibilityHandler(table)\n * ```\n */\nexport function table_getToggleAllColumnsVisibilityHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n table_toggleAllColumnsVisible(\n table,\n ((e as MouseEvent).target as HTMLInputElement).checked,\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"columnVisibilityFeature.utils.cjs","names":["callMemoOrStaticFn","getDefaultColumnPinningState","cloneState"],"sources":["../../../src/features/column-visibility/columnVisibilityFeature.utils.ts"],"sourcesContent":["import { callMemoOrStaticFn, cloneState } from '../../utils'\nimport { getDefaultColumnPinningState } from '../column-pinning/columnPinningFeature.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 { Cell } from '../../types/Cell'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnVisibilityState } from './columnVisibilityFeature.types'\nimport type { Row } from '../../types/Row'\n\n/**\n * Creates the default column visibility state.\n *\n * The feature default is an empty object, where missing column ids are treated\n * as visible. Reset APIs use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const visibility = getDefaultColumnVisibilityState()\n * ```\n */\nexport function getDefaultColumnVisibilityState(): ColumnVisibilityState {\n return {}\n}\n\n/**\n * Updates this column's visibility when hiding is allowed.\n *\n * Passing `visible` stores that value. Omitting it flips the column's current\n * visibility state. Columns that cannot hide are left unchanged.\n *\n * @example\n * ```ts\n * column_toggleVisibility(column)\n * ```\n */\nexport function column_toggleVisibility<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>, visible?: boolean): void {\n if (column_getCanHide(column)) {\n table_setColumnVisibility(column.table, (old) => ({\n ...old,\n [column.id]:\n visible ??\n !callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n }))\n }\n}\n\n/**\n * Checks whether this column is visible.\n *\n * Leaf columns read `state.columnVisibility[column.id]`, where missing entries\n * default to visible. Parent columns are visible when at least one child column\n * is visible.\n *\n * @example\n * ```ts\n * const visible = column_getIsVisible(column)\n * ```\n */\nexport function column_getIsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n const childColumns = column.columns\n return (\n (childColumns.length\n ? childColumns.some((childColumn) =>\n callMemoOrStaticFn(childColumn, 'getIsVisible', column_getIsVisible),\n )\n : column.table.atoms.columnVisibility?.get()?.[column.id]) ?? true\n )\n}\n\n/**\n * Checks whether this column is allowed to be hidden.\n *\n * Both `columnDef.enableHiding` and table `enableHiding` default to `true`.\n *\n * @example\n * ```ts\n * const canHide = column_getCanHide(column)\n * ```\n */\nexport function column_getCanHide<\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.enableHiding ?? true) &&\n (column.table.options.enableHiding ?? true)\n )\n}\n\n/**\n * Creates a checkbox-style handler that writes this column's visibility.\n *\n * The handler reads `event.target.checked`, so it is intended for visibility\n * controls whose checked state means \"visible\".\n *\n * @example\n * ```ts\n * const onChange = column_getToggleVisibilityHandler(column)\n * ```\n */\nexport function column_getToggleVisibilityHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (e: unknown) => {\n column_toggleVisibility(\n column,\n ((e as MouseEvent).target as HTMLInputElement).checked,\n )\n }\n}\n\n/**\n * Collects the cells from this row whose columns are visible.\n *\n * When column pinning is active, the result is ordered as left-pinned cells,\n * center cells, then right-pinned cells.\n *\n * @example\n * ```ts\n * const visibleCells = row_getVisibleCells(row)\n * ```\n */\nexport function row_getVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const allCells = row.getAllCells()\n const visibleCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < allCells.length; i++) {\n const cell = allCells[i]!\n if (callMemoOrStaticFn(cell.column, 'getIsVisible', column_getIsVisible)) {\n visibleCells.push(cell)\n }\n }\n\n const { left, right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!left.length && !right.length) return visibleCells // no pinning, return early\n\n const visibleCellsByColumnId = callMemoOrStaticFn(\n row,\n 'getVisibleCellsByColumnId',\n row_getVisibleCellsByColumnId,\n )\n\n const leftCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < left.length; i++) {\n const cell = visibleCellsByColumnId[left[i]!]\n if (cell) leftCells.push(cell)\n }\n\n const rightCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < right.length; i++) {\n const cell = visibleCellsByColumnId[right[i]!]\n if (cell) rightCells.push(cell)\n }\n\n // Center cells: visible cells in natural column order, minus pinned ones.\n const centerCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < visibleCells.length; i++) {\n const cell = visibleCells[i]!\n const id = cell.column.id\n if (!left.includes(id) && !right.includes(id)) centerCells.push(cell)\n }\n\n return [...leftCells, ...centerCells, ...rightCells]\n}\n\n/**\n * Builds a lookup map of this row's visible cells keyed by column id.\n *\n * Hidden columns are omitted from the map.\n *\n * @example\n * ```ts\n * const visibleCellsById = row_getVisibleCellsByColumnId(row)\n * ```\n */\nexport function row_getVisibleCellsByColumnId<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Record<string, Cell<TFeatures, TData, unknown>> {\n const result: Record<string, Cell<TFeatures, TData, unknown>> = {}\n const allCells = row.getAllCells()\n for (let i = 0; i < allCells.length; i++) {\n const cell = allCells[i]!\n if (callMemoOrStaticFn(cell.column, 'getIsVisible', column_getIsVisible)) {\n result[cell.column.id] = cell\n }\n }\n return result\n}\n\n/**\n * Filters the flat column list down to visible columns.\n *\n * Parent/group columns are included when `column_getIsVisible` considers them\n * visible.\n *\n * @example\n * ```ts\n * const columns = table_getVisibleFlatColumns(table)\n * ```\n */\nexport function table_getVisibleFlatColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getAllFlatColumns()\n .filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Filters leaf columns down to those currently visible.\n *\n * This is the column list most row rendering code uses before pinning-specific\n * partitioning.\n *\n * @example\n * ```ts\n * const columns = table_getVisibleLeafColumns(table)\n * ```\n */\nexport function table_getVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getAllLeafColumns()\n .filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Routes a column visibility updater through the table's visibility change handler.\n *\n * The updater may be a next visibility map or a function of the previous map,\n * matching the instance `table.setColumnVisibility` behavior.\n *\n * @example\n * ```ts\n * table_setColumnVisibility(table, (old) => ({ ...old, age: false }))\n * ```\n */\nexport function table_setColumnVisibility<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnVisibilityState>,\n) {\n table.options.onColumnVisibilityChange?.(updater)\n}\n\n/**\n * Resets `columnVisibility` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnVisibility` when\n * it exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetColumnVisibility(table)\n * table_resetColumnVisibility(table, true)\n * ```\n */\nexport function table_resetColumnVisibility<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnVisibility(\n table,\n defaultState ? {} : cloneState(table.initialState.columnVisibility ?? {}),\n )\n}\n\n/**\n * Shows or hides every hideable leaf column.\n *\n * Columns that cannot hide stay visible when toggling all columns off.\n *\n * @example\n * ```ts\n * table_toggleAllColumnsVisible(table)\n * ```\n */\nexport function table_toggleAllColumnsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, value?: boolean) {\n value = value ?? !table_getIsAllColumnsVisible(table)\n\n const visibility: Record<string, boolean> = {}\n const leafColumns = table.getAllLeafColumns()\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]!\n visibility[column.id] = !value ? !column_getCanHide(column) : value\n }\n\n table_setColumnVisibility(table, visibility)\n}\n\n/**\n * Checks whether every leaf column is currently visible.\n *\n * Non-hideable columns are naturally visible because missing visibility entries\n * default to `true`.\n *\n * @example\n * ```ts\n * const allVisible = table_getIsAllColumnsVisible(table)\n * ```\n */\nexport function table_getIsAllColumnsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return !table\n .getAllLeafColumns()\n .some(\n (column) =>\n !callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Checks whether at least one leaf column is currently visible.\n *\n * This is useful for tri-state \"show all columns\" controls.\n *\n * @example\n * ```ts\n * const someVisible = table_getIsSomeColumnsVisible(table)\n * ```\n */\nexport function table_getIsSomeColumnsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getAllLeafColumns()\n .some((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Creates a checkbox-style handler that shows or hides all columns.\n *\n * The handler reads `event.target.checked`, so it is intended for controls whose\n * checked state means \"all columns visible\".\n *\n * @example\n * ```ts\n * const onChange = table_getToggleAllColumnsVisibilityHandler(table)\n * ```\n */\nexport function table_getToggleAllColumnsVisibilityHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n table_toggleAllColumnsVisible(\n table,\n ((e as MouseEvent).target as HTMLInputElement).checked,\n )\n }\n}\n"],"mappings":"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"}