@tanstack/table-core 9.0.0-beta.2 → 9.0.0-beta.20

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 (524) hide show
  1. package/dist/core/cells/constructCell.d.cts +3 -3
  2. package/dist/core/cells/constructCell.d.ts +3 -3
  3. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  4. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  5. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  6. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  7. package/dist/core/cells/coreCellsFeature.js +12 -20
  8. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  9. package/dist/core/cells/coreCellsFeature.types.d.cts +6 -6
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +6 -6
  11. package/dist/core/cells/coreCellsFeature.utils.d.cts +3 -3
  12. package/dist/core/cells/coreCellsFeature.utils.d.ts +3 -3
  13. package/dist/core/columns/constructColumn.cjs +5 -0
  14. package/dist/core/columns/constructColumn.cjs.map +1 -1
  15. package/dist/core/columns/constructColumn.d.cts +3 -3
  16. package/dist/core/columns/constructColumn.d.ts +3 -3
  17. package/dist/core/columns/constructColumn.js +5 -0
  18. package/dist/core/columns/constructColumn.js.map +1 -1
  19. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  20. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  22. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  23. package/dist/core/columns/coreColumnsFeature.js +60 -68
  24. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  25. package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -7
  26. package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -7
  27. package/dist/core/columns/coreColumnsFeature.utils.cjs +2 -2
  28. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  29. package/dist/core/columns/coreColumnsFeature.utils.d.cts +9 -9
  30. package/dist/core/columns/coreColumnsFeature.utils.d.ts +9 -9
  31. package/dist/core/columns/coreColumnsFeature.utils.js +3 -3
  32. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  33. package/dist/core/coreFeatures.cjs.map +1 -1
  34. package/dist/core/coreFeatures.d.cts +1 -1
  35. package/dist/core/coreFeatures.d.ts +1 -1
  36. package/dist/core/coreFeatures.js.map +1 -1
  37. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  38. package/dist/core/headers/buildHeaderGroups.d.cts +2 -2
  39. package/dist/core/headers/buildHeaderGroups.d.ts +2 -2
  40. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  41. package/dist/core/headers/constructHeader.d.cts +2 -2
  42. package/dist/core/headers/constructHeader.d.ts +2 -2
  43. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  44. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  45. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  46. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  47. package/dist/core/headers/coreHeadersFeature.js +45 -53
  48. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  49. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  50. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  51. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  52. package/dist/core/headers/coreHeadersFeature.utils.d.cts +6 -6
  53. package/dist/core/headers/coreHeadersFeature.utils.d.ts +6 -6
  54. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  55. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  56. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  57. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  58. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  59. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  60. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  61. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +6 -16
  62. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +6 -16
  63. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
  64. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  65. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +14 -14
  66. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +14 -14
  67. package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
  68. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  69. package/dist/core/row-models/createCoreRowModel.cjs +2 -3
  70. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  71. package/dist/core/row-models/createCoreRowModel.d.cts +1 -1
  72. package/dist/core/row-models/createCoreRowModel.d.ts +1 -1
  73. package/dist/core/row-models/createCoreRowModel.js +3 -4
  74. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  75. package/dist/core/rows/constructRow.cjs +3 -2
  76. package/dist/core/rows/constructRow.cjs.map +1 -1
  77. package/dist/core/rows/constructRow.d.cts +2 -2
  78. package/dist/core/rows/constructRow.d.ts +2 -2
  79. package/dist/core/rows/constructRow.js +4 -2
  80. package/dist/core/rows/constructRow.js.map +1 -1
  81. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  82. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  83. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  84. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  85. package/dist/core/rows/coreRowsFeature.js +28 -36
  86. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  87. package/dist/core/rows/coreRowsFeature.types.d.cts +6 -6
  88. package/dist/core/rows/coreRowsFeature.types.d.ts +6 -6
  89. package/dist/core/rows/coreRowsFeature.utils.cjs +3 -3
  90. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  91. package/dist/core/rows/coreRowsFeature.utils.d.cts +3 -3
  92. package/dist/core/rows/coreRowsFeature.utils.d.ts +3 -3
  93. package/dist/core/rows/coreRowsFeature.utils.js +4 -4
  94. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  95. package/dist/core/table/constructTable.cjs +21 -6
  96. package/dist/core/table/constructTable.cjs.map +1 -1
  97. package/dist/core/table/constructTable.d.cts +1 -1
  98. package/dist/core/table/constructTable.d.ts +1 -1
  99. package/dist/core/table/constructTable.js +21 -6
  100. package/dist/core/table/constructTable.js.map +1 -1
  101. package/dist/core/table/coreTablesFeature.cjs +7 -16
  102. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  103. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  104. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  105. package/dist/core/table/coreTablesFeature.js +8 -16
  106. package/dist/core/table/coreTablesFeature.js.map +1 -1
  107. package/dist/core/table/coreTablesFeature.types.d.cts +28 -16
  108. package/dist/core/table/coreTablesFeature.types.d.ts +28 -16
  109. package/dist/core/table/coreTablesFeature.utils.cjs +33 -12
  110. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  111. package/dist/core/table/coreTablesFeature.utils.d.cts +8 -6
  112. package/dist/core/table/coreTablesFeature.utils.d.ts +8 -6
  113. package/dist/core/table/coreTablesFeature.utils.js +33 -12
  114. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  115. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  116. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  117. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  118. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  119. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  120. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  121. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
  122. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
  123. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  124. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  125. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +8 -8
  126. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +8 -8
  127. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  128. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  129. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  130. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  131. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  132. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  133. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  134. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  135. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  136. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  137. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  138. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  139. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  140. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  141. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  142. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  143. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  144. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  145. package/dist/features/column-filtering/columnFilteringFeature.js +42 -54
  146. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  147. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
  148. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
  149. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  150. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  151. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +12 -12
  152. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +12 -12
  153. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  154. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  155. package/dist/features/column-filtering/createFilteredRowModel.cjs +12 -7
  156. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  157. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  158. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  159. package/dist/features/column-filtering/createFilteredRowModel.js +13 -8
  160. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  161. package/dist/features/column-filtering/filterRowsUtils.cjs +3 -2
  162. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
  163. package/dist/features/column-filtering/filterRowsUtils.js +3 -2
  164. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
  165. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  166. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  167. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  168. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  169. package/dist/features/column-grouping/columnGroupingFeature.js +59 -70
  170. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  171. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +23 -19
  172. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +23 -19
  173. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +3 -3
  174. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  175. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +11 -11
  176. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +11 -11
  177. package/dist/features/column-grouping/columnGroupingFeature.utils.js +4 -4
  178. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  179. package/dist/features/column-grouping/createGroupedRowModel.cjs +9 -7
  180. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  181. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  182. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  183. package/dist/features/column-grouping/createGroupedRowModel.js +10 -8
  184. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  185. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  186. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  187. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  188. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  189. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  190. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  191. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
  192. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
  193. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +9 -9
  194. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +9 -9
  195. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  196. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  197. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  198. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  199. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  200. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  201. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
  202. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
  203. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  204. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +31 -30
  205. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +31 -30
  206. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  207. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  208. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  209. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  210. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  211. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  212. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  213. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +1 -4
  214. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
  215. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +2 -5
  216. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  217. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +6 -6
  218. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +6 -6
  219. package/dist/features/column-resizing/columnResizingFeature.utils.js +3 -6
  220. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  221. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  222. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  223. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  224. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  225. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  226. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  227. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +11 -4
  228. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  229. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +12 -12
  230. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +12 -12
  231. package/dist/features/column-sizing/columnSizingFeature.utils.js +12 -5
  232. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  233. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  234. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  235. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  236. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  237. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  238. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  239. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
  240. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
  241. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +12 -9
  242. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  243. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +14 -14
  244. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +14 -14
  245. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +13 -10
  246. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  247. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  248. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  249. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  250. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  251. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  252. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  253. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +2 -2
  254. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +2 -2
  255. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  256. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +10 -8
  257. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -8
  258. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  259. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  260. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  261. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  262. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  263. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  264. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  265. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  266. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  267. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  268. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  269. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
  270. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
  271. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +21 -12
  272. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  273. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +10 -10
  274. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +10 -10
  275. package/dist/features/row-expanding/rowExpandingFeature.utils.js +22 -13
  276. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  277. package/dist/features/row-pagination/createPaginatedRowModel.cjs +1 -1
  278. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  279. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  280. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  281. package/dist/features/row-pagination/createPaginatedRowModel.js +1 -1
  282. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  283. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  284. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  285. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  286. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  287. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  288. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  289. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
  290. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
  291. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +17 -17
  292. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +17 -17
  293. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  294. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  295. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  296. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  297. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  298. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  299. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  300. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  301. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +2 -2
  302. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  303. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +7 -7
  304. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +7 -7
  305. package/dist/features/row-pinning/rowPinningFeature.utils.js +2 -2
  306. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  307. package/dist/features/row-selection/rowSelectionFeature.cjs +108 -77
  308. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  309. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  310. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  311. package/dist/features/row-selection/rowSelectionFeature.js +110 -78
  312. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  313. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +13 -5
  314. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +13 -5
  315. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +76 -60
  316. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  317. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +48 -23
  318. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +48 -23
  319. package/dist/features/row-selection/rowSelectionFeature.utils.js +77 -62
  320. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  321. package/dist/features/row-sorting/createSortedRowModel.cjs +5 -3
  322. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  323. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  324. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  325. package/dist/features/row-sorting/createSortedRowModel.js +6 -4
  326. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  327. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  328. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  329. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  330. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  331. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  332. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  333. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +24 -21
  334. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +24 -21
  335. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  336. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  337. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +16 -16
  338. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +16 -16
  339. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  340. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  341. package/dist/fns/aggregationFns.cjs +18 -18
  342. package/dist/fns/aggregationFns.cjs.map +1 -1
  343. package/dist/fns/aggregationFns.d.cts +21 -19
  344. package/dist/fns/aggregationFns.d.ts +21 -19
  345. package/dist/fns/aggregationFns.js +18 -18
  346. package/dist/fns/aggregationFns.js.map +1 -1
  347. package/dist/fns/filterFns.cjs +51 -65
  348. package/dist/fns/filterFns.cjs.map +1 -1
  349. package/dist/fns/filterFns.d.cts +82 -28
  350. package/dist/fns/filterFns.d.ts +82 -28
  351. package/dist/fns/filterFns.js +51 -65
  352. package/dist/fns/filterFns.js.map +1 -1
  353. package/dist/fns/sortFns.cjs +18 -6
  354. package/dist/fns/sortFns.cjs.map +1 -1
  355. package/dist/fns/sortFns.d.cts +15 -13
  356. package/dist/fns/sortFns.d.ts +15 -13
  357. package/dist/fns/sortFns.js +18 -6
  358. package/dist/fns/sortFns.js.map +1 -1
  359. package/dist/helpers/columnHelper.cjs.map +1 -1
  360. package/dist/helpers/columnHelper.d.cts +2 -2
  361. package/dist/helpers/columnHelper.d.ts +2 -2
  362. package/dist/helpers/columnHelper.js.map +1 -1
  363. package/dist/helpers/metaHelper.cjs +30 -0
  364. package/dist/helpers/metaHelper.cjs.map +1 -0
  365. package/dist/helpers/metaHelper.d.cts +26 -0
  366. package/dist/helpers/metaHelper.d.ts +26 -0
  367. package/dist/helpers/metaHelper.js +29 -0
  368. package/dist/helpers/metaHelper.js.map +1 -0
  369. package/dist/helpers/tableFeatures.cjs +31 -3
  370. package/dist/helpers/tableFeatures.cjs.map +1 -1
  371. package/dist/helpers/tableFeatures.d.cts +33 -5
  372. package/dist/helpers/tableFeatures.d.ts +33 -5
  373. package/dist/helpers/tableFeatures.js +31 -3
  374. package/dist/helpers/tableFeatures.js.map +1 -1
  375. package/dist/index.cjs +4 -20
  376. package/dist/index.d.cts +50 -49
  377. package/dist/index.d.ts +50 -49
  378. package/dist/index.js +23 -22
  379. package/dist/static-functions.cjs +1 -0
  380. package/dist/static-functions.d.cts +2 -2
  381. package/dist/static-functions.d.ts +2 -2
  382. package/dist/static-functions.js +2 -2
  383. package/dist/store-reactivity-bindings.cjs +1 -1
  384. package/dist/store-reactivity-bindings.cjs.map +1 -1
  385. package/dist/store-reactivity-bindings.d.cts +1 -1
  386. package/dist/store-reactivity-bindings.d.ts +1 -1
  387. package/dist/store-reactivity-bindings.js +1 -1
  388. package/dist/store-reactivity-bindings.js.map +1 -1
  389. package/dist/types/Cell.d.cts +4 -9
  390. package/dist/types/Cell.d.ts +4 -9
  391. package/dist/types/Column.d.cts +11 -18
  392. package/dist/types/Column.d.ts +11 -18
  393. package/dist/types/ColumnDef.d.cts +23 -14
  394. package/dist/types/ColumnDef.d.ts +23 -14
  395. package/dist/types/Header.d.cts +5 -10
  396. package/dist/types/Header.d.ts +5 -10
  397. package/dist/types/HeaderGroup.d.cts +4 -9
  398. package/dist/types/HeaderGroup.d.ts +4 -9
  399. package/dist/types/Row.d.cts +7 -12
  400. package/dist/types/Row.d.ts +7 -12
  401. package/dist/types/RowModel.d.cts +12 -28
  402. package/dist/types/RowModel.d.ts +12 -28
  403. package/dist/types/RowModelFns.d.cts +6 -11
  404. package/dist/types/RowModelFns.d.ts +6 -11
  405. package/dist/types/Table.d.cts +26 -36
  406. package/dist/types/Table.d.ts +26 -36
  407. package/dist/types/TableFeatures.d.cts +328 -54
  408. package/dist/types/TableFeatures.d.ts +328 -54
  409. package/dist/types/TableOptions.d.cts +22 -17
  410. package/dist/types/TableOptions.d.ts +22 -17
  411. package/dist/types/TableState.d.cts +11 -16
  412. package/dist/types/TableState.d.ts +11 -16
  413. package/dist/utils.cjs +24 -2
  414. package/dist/utils.cjs.map +1 -1
  415. package/dist/utils.d.cts +23 -7
  416. package/dist/utils.d.ts +23 -7
  417. package/dist/utils.js +23 -3
  418. package/dist/utils.js.map +1 -1
  419. package/package.json +2 -2
  420. package/skills/column-definitions/SKILL.md +3 -6
  421. package/skills/column-layout/SKILL.md +0 -2
  422. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  423. package/skills/filtering/SKILL.md +60 -42
  424. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  425. package/skills/grouping/SKILL.md +49 -54
  426. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  427. package/skills/pagination/SKILL.md +22 -20
  428. package/skills/row-expanding/SKILL.md +33 -25
  429. package/skills/row-pinning/SKILL.md +11 -7
  430. package/skills/row-selection/SKILL.md +0 -3
  431. package/skills/setup/SKILL.md +55 -65
  432. package/skills/sorting/SKILL.md +21 -21
  433. package/skills/state-management/SKILL.md +40 -25
  434. package/src/core/cells/coreCellsFeature.ts +17 -39
  435. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  436. package/src/core/columns/constructColumn.ts +6 -0
  437. package/src/core/columns/coreColumnsFeature.ts +56 -83
  438. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  439. package/src/core/columns/coreColumnsFeature.utils.ts +4 -4
  440. package/src/core/coreFeatures.ts +1 -1
  441. package/src/core/headers/buildHeaderGroups.ts +4 -2
  442. package/src/core/headers/coreHeadersFeature.ts +42 -64
  443. package/src/core/headers/coreHeadersFeature.types.ts +12 -12
  444. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  445. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  446. package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
  447. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  448. package/src/core/row-models/createCoreRowModel.ts +7 -6
  449. package/src/core/rows/constructRow.ts +3 -2
  450. package/src/core/rows/coreRowsFeature.ts +45 -72
  451. package/src/core/rows/coreRowsFeature.types.ts +8 -8
  452. package/src/core/rows/coreRowsFeature.utils.ts +4 -4
  453. package/src/core/table/constructTable.ts +50 -13
  454. package/src/core/table/coreTablesFeature.ts +13 -35
  455. package/src/core/table/coreTablesFeature.types.ts +40 -17
  456. package/src/core/table/coreTablesFeature.utils.ts +52 -18
  457. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  458. package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
  459. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  460. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  461. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  462. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  463. package/src/features/column-filtering/columnFilteringFeature.ts +61 -103
  464. package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
  465. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  466. package/src/features/column-filtering/createFilteredRowModel.ts +18 -17
  467. package/src/features/column-filtering/filterRowsUtils.ts +3 -2
  468. package/src/features/column-grouping/columnGroupingFeature.ts +83 -126
  469. package/src/features/column-grouping/columnGroupingFeature.types.ts +32 -31
  470. package/src/features/column-grouping/columnGroupingFeature.utils.ts +2 -2
  471. package/src/features/column-grouping/createGroupedRowModel.ts +17 -16
  472. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  473. package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
  474. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  475. package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
  476. package/src/features/column-pinning/columnPinningFeature.utils.ts +11 -19
  477. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  478. package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
  479. package/src/features/column-resizing/columnResizingFeature.utils.ts +5 -6
  480. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  481. package/src/features/column-sizing/columnSizingFeature.utils.ts +27 -5
  482. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  483. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  484. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +31 -15
  485. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  486. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  487. package/src/features/global-filtering/globalFilteringFeature.utils.ts +5 -3
  488. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  489. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  490. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
  491. package/src/features/row-expanding/rowExpandingFeature.utils.ts +38 -13
  492. package/src/features/row-pagination/createPaginatedRowModel.ts +2 -2
  493. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  494. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
  495. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  496. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  497. package/src/features/row-selection/rowSelectionFeature.ts +125 -135
  498. package/src/features/row-selection/rowSelectionFeature.types.ts +17 -7
  499. package/src/features/row-selection/rowSelectionFeature.utils.ts +144 -66
  500. package/src/features/row-sorting/createSortedRowModel.ts +12 -15
  501. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  502. package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
  503. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  504. package/src/fns/aggregationFns.ts +26 -42
  505. package/src/fns/filterFns.ts +237 -264
  506. package/src/fns/sortFns.ts +51 -29
  507. package/src/helpers/columnHelper.ts +4 -4
  508. package/src/helpers/metaHelper.ts +24 -0
  509. package/src/helpers/tableFeatures.ts +36 -5
  510. package/src/index.ts +1 -0
  511. package/src/store-reactivity-bindings.ts +1 -1
  512. package/src/types/Cell.ts +5 -21
  513. package/src/types/Column.ts +12 -26
  514. package/src/types/ColumnDef.ts +28 -18
  515. package/src/types/Header.ts +4 -20
  516. package/src/types/HeaderGroup.ts +7 -18
  517. package/src/types/Row.ts +6 -21
  518. package/src/types/RowModel.ts +15 -88
  519. package/src/types/RowModelFns.ts +9 -24
  520. package/src/types/Table.ts +54 -44
  521. package/src/types/TableFeatures.ts +402 -123
  522. package/src/types/TableOptions.ts +59 -21
  523. package/src/types/TableState.ts +5 -17
  524. package/src/utils.ts +40 -8
@@ -3,76 +3,65 @@ import { getDefaultRowPinningState, row_getCanPin, row_getIsPinned, row_getPinne
3
3
 
4
4
  //#region src/features/row-pinning/rowPinningFeature.ts
5
5
  /**
6
- * Creates the stock row pinning feature.
7
- *
8
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
6
+ * Feature that adds row pinning state and APIs for top, center, and bottom rows.
9
7
  */
10
- function constructRowPinningFeature() {
11
- return {
12
- getInitialState: (initialState) => {
13
- return {
14
- ...initialState,
15
- rowPinning: {
16
- ...getDefaultRowPinningState(),
17
- ...initialState.rowPinning
8
+ const rowPinningFeature = {
9
+ getInitialState: (initialState) => {
10
+ return {
11
+ ...initialState,
12
+ rowPinning: {
13
+ ...getDefaultRowPinningState(),
14
+ ...initialState.rowPinning
15
+ }
16
+ };
17
+ },
18
+ getDefaultTableOptions: (table) => {
19
+ return { onRowPinningChange: makeStateUpdater("rowPinning", table) };
20
+ },
21
+ assignRowPrototype: (prototype, table) => {
22
+ assignPrototypeAPIs("rowPinningFeature", prototype, table, {
23
+ row_getCanPin: { fn: (row) => row_getCanPin(row) },
24
+ row_getIsPinned: { fn: (row) => row_getIsPinned(row) },
25
+ row_getPinnedIndex: {
26
+ fn: (row) => row_getPinnedIndex(row),
27
+ memoDeps: (row) => {
28
+ var _row$table$atoms$rowP;
29
+ return [row.table.getRowModel().rows, (_row$table$atoms$rowP = row.table.atoms.rowPinning) === null || _row$table$atoms$rowP === void 0 ? void 0 : _row$table$atoms$rowP.get()];
18
30
  }
19
- };
20
- },
21
- getDefaultTableOptions: (table) => {
22
- return { onRowPinningChange: makeStateUpdater("rowPinning", table) };
23
- },
24
- assignRowPrototype: (prototype, table) => {
25
- assignPrototypeAPIs("rowPinningFeature", prototype, table, {
26
- row_getCanPin: { fn: (row) => row_getCanPin(row) },
27
- row_getIsPinned: { fn: (row) => row_getIsPinned(row) },
28
- row_getPinnedIndex: {
29
- fn: (row) => row_getPinnedIndex(row),
30
- memoDeps: (row) => {
31
- var _row$table$atoms$rowP;
32
- return [row.table.getRowModel().rows, (_row$table$atoms$rowP = row.table.atoms.rowPinning) === null || _row$table$atoms$rowP === void 0 ? void 0 : _row$table$atoms$rowP.get()];
33
- }
34
- },
35
- row_pin: { fn: (row, position, includeLeafRows, includeParentRows) => row_pin(row, position, includeLeafRows, includeParentRows) }
36
- });
37
- },
38
- constructTableAPIs: (table) => {
39
- assignTableAPIs("rowPinningFeature", table, {
40
- table_setRowPinning: { fn: (updater) => table_setRowPinning(table, updater) },
41
- table_resetRowPinning: { fn: (defaultState) => table_resetRowPinning(table, defaultState) },
42
- table_getIsSomeRowsPinned: { fn: (position) => table_getIsSomeRowsPinned(table, position) },
43
- table_getTopRows: {
44
- fn: () => table_getTopRows(table),
45
- memoDeps: () => {
46
- var _table$atoms$rowPinni;
47
- return [table.getRowModel().rows, (_table$atoms$rowPinni = table.atoms.rowPinning) === null || _table$atoms$rowPinni === void 0 || (_table$atoms$rowPinni = _table$atoms$rowPinni.get()) === null || _table$atoms$rowPinni === void 0 ? void 0 : _table$atoms$rowPinni.top];
48
- }
49
- },
50
- table_getBottomRows: {
51
- fn: () => table_getBottomRows(table),
52
- memoDeps: () => {
53
- var _table$atoms$rowPinni2;
54
- return [table.getRowModel().rows, (_table$atoms$rowPinni2 = table.atoms.rowPinning) === null || _table$atoms$rowPinni2 === void 0 || (_table$atoms$rowPinni2 = _table$atoms$rowPinni2.get()) === null || _table$atoms$rowPinni2 === void 0 ? void 0 : _table$atoms$rowPinni2.bottom];
55
- }
56
- },
57
- table_getCenterRows: {
58
- fn: () => table_getCenterRows(table),
59
- memoDeps: () => {
60
- var _table$atoms$rowPinni3;
61
- return [table.getRowModel().rows, (_table$atoms$rowPinni3 = table.atoms.rowPinning) === null || _table$atoms$rowPinni3 === void 0 ? void 0 : _table$atoms$rowPinni3.get()];
62
- }
31
+ },
32
+ row_pin: { fn: (row, position, includeLeafRows, includeParentRows) => row_pin(row, position, includeLeafRows, includeParentRows) }
33
+ });
34
+ },
35
+ constructTableAPIs: (table) => {
36
+ assignTableAPIs("rowPinningFeature", table, {
37
+ table_setRowPinning: { fn: (updater) => table_setRowPinning(table, updater) },
38
+ table_resetRowPinning: { fn: (defaultState) => table_resetRowPinning(table, defaultState) },
39
+ table_getIsSomeRowsPinned: { fn: (position) => table_getIsSomeRowsPinned(table, position) },
40
+ table_getTopRows: {
41
+ fn: () => table_getTopRows(table),
42
+ memoDeps: () => {
43
+ var _table$atoms$rowPinni;
44
+ return [table.getRowModel().rows, (_table$atoms$rowPinni = table.atoms.rowPinning) === null || _table$atoms$rowPinni === void 0 || (_table$atoms$rowPinni = _table$atoms$rowPinni.get()) === null || _table$atoms$rowPinni === void 0 ? void 0 : _table$atoms$rowPinni.top];
63
45
  }
64
- });
65
- }
66
- };
67
- }
68
- /**
69
- * The stock row pinning feature.
70
- *
71
- * Register this feature to add row pinning state and APIs for deriving top,
72
- * center, and bottom row regions.
73
- */
74
- const rowPinningFeature = constructRowPinningFeature();
46
+ },
47
+ table_getBottomRows: {
48
+ fn: () => table_getBottomRows(table),
49
+ memoDeps: () => {
50
+ var _table$atoms$rowPinni2;
51
+ return [table.getRowModel().rows, (_table$atoms$rowPinni2 = table.atoms.rowPinning) === null || _table$atoms$rowPinni2 === void 0 || (_table$atoms$rowPinni2 = _table$atoms$rowPinni2.get()) === null || _table$atoms$rowPinni2 === void 0 ? void 0 : _table$atoms$rowPinni2.bottom];
52
+ }
53
+ },
54
+ table_getCenterRows: {
55
+ fn: () => table_getCenterRows(table),
56
+ memoDeps: () => {
57
+ var _table$atoms$rowPinni3;
58
+ return [table.getRowModel().rows, (_table$atoms$rowPinni3 = table.atoms.rowPinning) === null || _table$atoms$rowPinni3 === void 0 ? void 0 : _table$atoms$rowPinni3.get()];
59
+ }
60
+ }
61
+ });
62
+ }
63
+ };
75
64
 
76
65
  //#endregion
77
- export { constructRowPinningFeature, rowPinningFeature };
66
+ export { rowPinningFeature };
78
67
  //# sourceMappingURL=rowPinningFeature.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rowPinningFeature.js","names":[],"sources":["../../../src/features/row-pinning/rowPinningFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n getDefaultRowPinningState,\n row_getCanPin,\n row_getIsPinned,\n row_getPinnedIndex,\n row_pin,\n table_getBottomRows,\n table_getCenterRows,\n table_getIsSomeRowsPinned,\n table_getTopRows,\n table_resetRowPinning,\n table_setRowPinning,\n} from './rowPinningFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// Row_RowPinning,\n// TableOptions_RowPinning,\n// TableState_RowPinning,\n// Table_RowPinning,\n// } from './rowPinningFeature.types'\n\nexport interface RowPinningFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Row: Row_RowPinning\n // Table: Table_RowPinning<TFeatures, RowData>\n // TableOptions: TableOptions_RowPinning<TFeatures, RowData>\n // TableState: TableState_RowPinning\n}\n\n/**\n * Creates the stock row pinning 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 constructRowPinningFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<RowPinningFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n ...initialState,\n rowPinning: {\n ...getDefaultRowPinningState(),\n ...initialState.rowPinning,\n },\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onRowPinningChange: makeStateUpdater('rowPinning', table),\n }\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('rowPinningFeature', prototype, table, {\n row_getCanPin: {\n fn: (row) => row_getCanPin(row),\n },\n row_getIsPinned: {\n fn: (row) => row_getIsPinned(row),\n },\n row_getPinnedIndex: {\n fn: (row) => row_getPinnedIndex(row),\n memoDeps: (row) => [\n row.table.getRowModel().rows,\n row.table.atoms.rowPinning?.get(),\n ],\n },\n row_pin: {\n fn: (row, position, includeLeafRows, includeParentRows) =>\n row_pin(row, position, includeLeafRows, includeParentRows),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowPinningFeature', table, {\n table_setRowPinning: {\n fn: (updater) => table_setRowPinning(table, updater),\n },\n table_resetRowPinning: {\n fn: (defaultState) => table_resetRowPinning(table, defaultState),\n },\n table_getIsSomeRowsPinned: {\n fn: (position) => table_getIsSomeRowsPinned(table, position),\n },\n table_getTopRows: {\n fn: () => table_getTopRows(table),\n memoDeps: () => [\n table.getRowModel().rows,\n table.atoms.rowPinning?.get()?.top,\n ],\n },\n table_getBottomRows: {\n fn: () => table_getBottomRows(table),\n memoDeps: () => [\n table.getRowModel().rows,\n table.atoms.rowPinning?.get()?.bottom,\n ],\n },\n table_getCenterRows: {\n fn: () => table_getCenterRows(table),\n memoDeps: () => [\n table.getRowModel().rows,\n table.atoms.rowPinning?.get(),\n ],\n },\n })\n },\n }\n}\n\n/**\n * The stock row pinning feature.\n *\n * Register this feature to add row pinning state and APIs for deriving top,\n * center, and bottom row regions.\n */\nexport const rowPinningFeature = constructRowPinningFeature()\n"],"mappings":";;;;;;;;;AA0CA,SAAgB,6BAGmD;CACjE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,GAAG;IACH,YAAY;KACV,GAAG,0BAA0B;KAC7B,GAAG,aAAa;IAClB;GACF;EACF;EAEA,yBAAyB,UAAU;GACjC,OAAO,EACL,oBAAoB,iBAAiB,cAAc,KAAK,EAC1D;EACF;EAEA,qBAAqB,WAAW,UAAU;GACxC,oBAAoB,qBAAqB,WAAW,OAAO;IACzD,eAAe,EACb,KAAK,QAAQ,cAAc,GAAG,EAChC;IACA,iBAAiB,EACf,KAAK,QAAQ,gBAAgB,GAAG,EAClC;IACA,oBAAoB;KAClB,KAAK,QAAQ,mBAAmB,GAAG;KACnC,WAAW,QAAQ;;cACjB,IAAI,MAAM,YAAY,CAAC,CAAC,+BACxB,IAAI,MAAM,MAAM,0FAAY,IAAI,CAClC;;IACF;IACA,SAAS,EACP,KAAK,KAAK,UAAU,iBAAiB,sBACnC,QAAQ,KAAK,UAAU,iBAAiB,iBAAiB,EAC7D;GACF,CAAC;EACH;EAEA,qBAAqB,UAAU;GAC7B,gBAAgB,qBAAqB,OAAO;IAC1C,qBAAqB,EACnB,KAAK,YAAY,oBAAoB,OAAO,OAAO,EACrD;IACA,uBAAuB,EACrB,KAAK,iBAAiB,sBAAsB,OAAO,YAAY,EACjE;IACA,2BAA2B,EACzB,KAAK,aAAa,0BAA0B,OAAO,QAAQ,EAC7D;IACA,kBAAkB;KAChB,UAAU,iBAAiB,KAAK;KAChC,gBAAgB;;cACd,MAAM,YAAY,CAAC,CAAC,+BACpB,MAAM,MAAM,2GAAY,IAAI,iFAAG,GACjC;;IACF;IACA,qBAAqB;KACnB,UAAU,oBAAoB,KAAK;KACnC,gBAAgB;;cACd,MAAM,YAAY,CAAC,CAAC,gCACpB,MAAM,MAAM,8GAAY,IAAI,mFAAG,MACjC;;IACF;IACA,qBAAqB;KACnB,UAAU,oBAAoB,KAAK;KACnC,gBAAgB;;cACd,MAAM,YAAY,CAAC,CAAC,gCACpB,MAAM,MAAM,4FAAY,IAAI,CAC9B;;IACF;GACF,CAAC;EACH;CACF;AACF;;;;;;;AAQA,MAAa,oBAAoB,2BAA2B"}
1
+ {"version":3,"file":"rowPinningFeature.js","names":[],"sources":["../../../src/features/row-pinning/rowPinningFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n getDefaultRowPinningState,\n row_getCanPin,\n row_getIsPinned,\n row_getPinnedIndex,\n row_pin,\n table_getBottomRows,\n table_getCenterRows,\n table_getIsSomeRowsPinned,\n table_getTopRows,\n table_resetRowPinning,\n table_setRowPinning,\n} from './rowPinningFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds row pinning state and APIs for top, center, and bottom rows.\n */\nexport const rowPinningFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n ...initialState,\n rowPinning: {\n ...getDefaultRowPinningState(),\n ...initialState.rowPinning,\n },\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onRowPinningChange: makeStateUpdater('rowPinning', table),\n }\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('rowPinningFeature', prototype, table, {\n row_getCanPin: {\n fn: (row) => row_getCanPin(row),\n },\n row_getIsPinned: {\n fn: (row) => row_getIsPinned(row),\n },\n row_getPinnedIndex: {\n fn: (row) => row_getPinnedIndex(row),\n memoDeps: (row) => [\n row.table.getRowModel().rows,\n row.table.atoms.rowPinning?.get(),\n ],\n },\n row_pin: {\n fn: (row, position, includeLeafRows, includeParentRows) =>\n row_pin(row, position, includeLeafRows, includeParentRows),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowPinningFeature', table, {\n table_setRowPinning: {\n fn: (updater) => table_setRowPinning(table, updater),\n },\n table_resetRowPinning: {\n fn: (defaultState) => table_resetRowPinning(table, defaultState),\n },\n table_getIsSomeRowsPinned: {\n fn: (position) => table_getIsSomeRowsPinned(table, position),\n },\n table_getTopRows: {\n fn: () => table_getTopRows(table),\n memoDeps: () => [\n table.getRowModel().rows,\n table.atoms.rowPinning?.get()?.top,\n ],\n },\n table_getBottomRows: {\n fn: () => table_getBottomRows(table),\n memoDeps: () => [\n table.getRowModel().rows,\n table.atoms.rowPinning?.get()?.bottom,\n ],\n },\n table_getCenterRows: {\n fn: () => table_getCenterRows(table),\n memoDeps: () => [\n table.getRowModel().rows,\n table.atoms.rowPinning?.get(),\n ],\n },\n })\n },\n}\n"],"mappings":";;;;;;;AAuBA,MAAa,oBAAkC;CAC7C,kBAAkB,iBAAiB;EACjC,OAAO;GACL,GAAG;GACH,YAAY;IACV,GAAG,0BAA0B;IAC7B,GAAG,aAAa;GAClB;EACF;CACF;CAEA,yBAAyB,UAAU;EACjC,OAAO,EACL,oBAAoB,iBAAiB,cAAc,KAAK,EAC1D;CACF;CAEA,qBAAqB,WAAW,UAAU;EACxC,oBAAoB,qBAAqB,WAAW,OAAO;GACzD,eAAe,EACb,KAAK,QAAQ,cAAc,GAAG,EAChC;GACA,iBAAiB,EACf,KAAK,QAAQ,gBAAgB,GAAG,EAClC;GACA,oBAAoB;IAClB,KAAK,QAAQ,mBAAmB,GAAG;IACnC,WAAW,QAAQ;;aACjB,IAAI,MAAM,YAAY,CAAC,CAAC,+BACxB,IAAI,MAAM,MAAM,0FAAY,IAAI,CAClC;;GACF;GACA,SAAS,EACP,KAAK,KAAK,UAAU,iBAAiB,sBACnC,QAAQ,KAAK,UAAU,iBAAiB,iBAAiB,EAC7D;EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,gBAAgB,qBAAqB,OAAO;GAC1C,qBAAqB,EACnB,KAAK,YAAY,oBAAoB,OAAO,OAAO,EACrD;GACA,uBAAuB,EACrB,KAAK,iBAAiB,sBAAsB,OAAO,YAAY,EACjE;GACA,2BAA2B,EACzB,KAAK,aAAa,0BAA0B,OAAO,QAAQ,EAC7D;GACA,kBAAkB;IAChB,UAAU,iBAAiB,KAAK;IAChC,gBAAgB;;aACd,MAAM,YAAY,CAAC,CAAC,+BACpB,MAAM,MAAM,2GAAY,IAAI,iFAAG,GACjC;;GACF;GACA,qBAAqB;IACnB,UAAU,oBAAoB,KAAK;IACnC,gBAAgB;;aACd,MAAM,YAAY,CAAC,CAAC,gCACpB,MAAM,MAAM,8GAAY,IAAI,mFAAG,MACjC;;GACF;GACA,qBAAqB;IACnB,UAAU,oBAAoB,KAAK;IACnC,gBAAgB;;aACd,MAAM,YAAY,CAAC,CAAC,gCACpB,MAAM,MAAM,4FAAY,IAAI,CAC9B;;GACF;EACF,CAAC;CACH;AACF"}
@@ -11,7 +11,7 @@ interface RowPinningState {
11
11
  interface TableState_RowPinning {
12
12
  rowPinning: RowPinningState;
13
13
  }
14
- interface TableOptions_RowPinning<TFeatures extends TableFeatures, TData extends RowData> {
14
+ interface TableOptions_RowPinning<in out TFeatures extends TableFeatures, in out TData extends RowData> {
15
15
  /**
16
16
  * Allows rows to be pinned to top or bottom regions.
17
17
  *
@@ -50,7 +50,7 @@ interface Row_RowPinning {
50
50
  */
51
51
  pin: (position: RowPinningPosition, includeLeafRows?: boolean, includeParentRows?: boolean) => void;
52
52
  }
53
- interface Table_RowPinning<TFeatures extends TableFeatures, TData extends RowData> {
53
+ interface Table_RowPinning<in out TFeatures extends TableFeatures, in out TData extends RowData> {
54
54
  /**
55
55
  * Gets rows pinned to the bottom region.
56
56
  */
@@ -11,7 +11,7 @@ interface RowPinningState {
11
11
  interface TableState_RowPinning {
12
12
  rowPinning: RowPinningState;
13
13
  }
14
- interface TableOptions_RowPinning<TFeatures extends TableFeatures, TData extends RowData> {
14
+ interface TableOptions_RowPinning<in out TFeatures extends TableFeatures, in out TData extends RowData> {
15
15
  /**
16
16
  * Allows rows to be pinned to top or bottom regions.
17
17
  *
@@ -50,7 +50,7 @@ interface Row_RowPinning {
50
50
  */
51
51
  pin: (position: RowPinningPosition, includeLeafRows?: boolean, includeParentRows?: boolean) => void;
52
52
  }
53
- interface Table_RowPinning<TFeatures extends TableFeatures, TData extends RowData> {
53
+ interface Table_RowPinning<in out TFeatures extends TableFeatures, in out TData extends RowData> {
54
54
  /**
55
55
  * Gets rows pinned to the bottom region.
56
56
  */
@@ -129,7 +129,7 @@ function table_getCenterRows(table) {
129
129
  var _table$atoms$rowPinni3;
130
130
  const { top, bottom } = ((_table$atoms$rowPinni3 = table.atoms.rowPinning) === null || _table$atoms$rowPinni3 === void 0 ? void 0 : _table$atoms$rowPinni3.get()) ?? getDefaultRowPinningState();
131
131
  const allRows = table.getRowModel().rows;
132
- const topAndBottom = new Set([...top, ...bottom]);
132
+ const topAndBottom = /* @__PURE__ */ new Set([...top, ...bottom]);
133
133
  return allRows.filter((d) => !topAndBottom.has(d.id));
134
134
  }
135
135
  /**
@@ -193,7 +193,7 @@ function row_getPinnedIndex(row) {
193
193
  function row_pin(row, position, includeLeafRows, includeParentRows) {
194
194
  const leafRowIds = includeLeafRows ? row.getLeafRows().map(({ id }) => id) : [];
195
195
  const parentRowIds = includeParentRows ? row.getParentRows().map(({ id }) => id) : [];
196
- const rowIds = new Set([
196
+ const rowIds = /* @__PURE__ */ new Set([
197
197
  ...parentRowIds,
198
198
  row.id,
199
199
  ...leafRowIds
@@ -1 +1 @@
1
- {"version":3,"file":"rowPinningFeature.utils.cjs","names":["cloneState","row_getIsAllParentsExpanded","callMemoOrStaticFn"],"sources":["../../../src/features/row-pinning/rowPinningFeature.utils.ts"],"sourcesContent":["import { row_getIsAllParentsExpanded } from '../row-expanding/rowExpandingFeature.utils'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n RowPinningPosition,\n RowPinningState,\n} from './rowPinningFeature.types'\n\n// State Utils\n\n/**\n * Creates the default row pinning state.\n *\n * Both pinning regions start empty. Reset APIs use this value when\n * `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const pinning = getDefaultRowPinningState()\n * ```\n */\nexport function getDefaultRowPinningState(): RowPinningState {\n return {\n top: [],\n bottom: [],\n }\n}\n\n/**\n * Routes a row pinning updater through the table's row-pinning change handler.\n *\n * The updater may be a next `{ top, bottom }` state or a function of the\n * previous state, matching the instance `table.setRowPinning` behavior.\n *\n * @example\n * ```ts\n * table_setRowPinning(table, (old) => ({ ...old, top: [rowId] }))\n * ```\n */\nexport function table_setRowPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<RowPinningState>,\n): void {\n table.options.onRowPinningChange?.(updater)\n}\n\n/**\n * Resets `rowPinning` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.rowPinning` when it\n * exists. Passing `true` ignores initial state and resets to empty top/bottom\n * arrays.\n *\n * @example\n * ```ts\n * table_resetRowPinning(table)\n * table_resetRowPinning(table, true)\n * ```\n */\nexport function table_resetRowPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void {\n table_setRowPinning(\n table,\n defaultState\n ? getDefaultRowPinningState()\n : cloneState(\n table.initialState.rowPinning ?? getDefaultRowPinningState(),\n ),\n )\n}\n\n// Table Utils\n\n/**\n * Checks whether any rows are pinned.\n *\n * Omit `position` to check both regions, or pass `'top'`/`'bottom'` to inspect\n * one region.\n *\n * @example\n * ```ts\n * const hasPinnedRows = table_getIsSomeRowsPinned(table)\n * ```\n */\nexport function table_getIsSomeRowsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: RowPinningPosition,\n): boolean {\n const rowPinning = table.atoms.rowPinning?.get()\n\n if (!position) {\n return Boolean(rowPinning?.top.length || rowPinning?.bottom.length)\n }\n return Boolean(rowPinning?.[position].length)\n}\n\nfunction table_getPinnedRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: 'top' | 'bottom',\n): Array<Row<TFeatures, TData>> {\n const visibleRows = table.getRowModel().rows\n const pinnedRowIds = table.atoms.rowPinning?.get()?.[position] ?? []\n const keepPinnedRows = table.options.keepPinnedRows ?? true\n\n const result: Array<Row<TFeatures, TData>> = []\n for (let i = 0; i < pinnedRowIds.length; i++) {\n const rowId = pinnedRowIds[i]!\n let row: Row<TFeatures, TData> | undefined\n if (keepPinnedRows) {\n // get all rows that are pinned even if they would not be otherwise\n // visible; account for expanded parent rows, but not pagination/filtering\n const fullRow = table.getRow(rowId, true)\n if (row_getIsAllParentsExpanded(fullRow)) row = fullRow\n } else {\n // else get only visible rows that are pinned\n row = visibleRows.find((r) => r.id === rowId)\n }\n if (!row)\n continue\n // Assign position property directly to preserve prototype chain\n ;(row as any).position = position\n result.push(row)\n }\n return result\n}\n\n/**\n * Resolves the visible rows pinned to the top region.\n *\n * The result follows `state.rowPinning.top` order and marks each row with\n * `position = 'top'`.\n *\n * @example\n * ```ts\n * const rows = table_getTopRows(table)\n * ```\n */\nexport function table_getTopRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return table_getPinnedRows(table, 'top')\n}\n\n/**\n * Resolves the visible rows pinned to the bottom region.\n *\n * The result follows `state.rowPinning.bottom` order and marks each row with\n * `position = 'bottom'`.\n *\n * @example\n * ```ts\n * const rows = table_getBottomRows(table)\n * ```\n */\nexport function table_getBottomRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return table_getPinnedRows(table, 'bottom')\n}\n\n/**\n * Resolves rows that are not pinned to top or bottom.\n *\n * The current row model is filtered by `state.rowPinning.top` and\n * `state.rowPinning.bottom`.\n *\n * @example\n * ```ts\n * const rows = table_getCenterRows(table)\n * ```\n */\nexport function table_getCenterRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n const { top, bottom } =\n table.atoms.rowPinning?.get() ?? getDefaultRowPinningState()\n const allRows = table.getRowModel().rows\n\n const topAndBottom = new Set([...top, ...bottom])\n return allRows.filter((d) => !topAndBottom.has(d.id))\n}\n\n// Row Utils\n\n/**\n * Checks whether this row can be pinned.\n *\n * `options.enableRowPinning` may be a boolean or a row predicate; it defaults\n * to `true`.\n *\n * @example\n * ```ts\n * const canPin = row_getCanPin(row)\n * ```\n */\nexport function row_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): boolean {\n const { enableRowPinning } = row.table.options\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row)\n }\n return enableRowPinning ?? true\n}\n\n/**\n * Reads this row's current pinning region.\n *\n * Rows listed in `state.rowPinning.top` return `'top'`, rows listed in\n * `bottom` return `'bottom'`, and unpinned rows return `false`.\n *\n * @example\n * ```ts\n * const position = row_getIsPinned(row)\n * ```\n */\nexport function row_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): RowPinningPosition {\n const { top, bottom } =\n row.table.atoms.rowPinning?.get() ?? getDefaultRowPinningState()\n\n return top.includes(row.id)\n ? 'top'\n : bottom.includes(row.id)\n ? 'bottom'\n : false\n}\n\n/**\n * Finds this row's visible index within its pinned region.\n *\n * Unpinned rows return `-1`.\n *\n * @example\n * ```ts\n * const index = row_getPinnedIndex(row)\n * ```\n */\nexport function row_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): number {\n const position = row_getIsPinned(row)\n if (!position) return -1\n\n const visiblePinnedRowIds = (\n position === 'top'\n ? callMemoOrStaticFn(row.table, 'getTopRows', table_getTopRows)\n : callMemoOrStaticFn(row.table, 'getBottomRows', table_getBottomRows)\n ).map(({ id }) => id)\n\n return visiblePinnedRowIds.indexOf(row.id)\n}\n\n/**\n * Pins or unpins a row.\n *\n * Optional flags let callers include parent rows or leaf rows when updating\n * the row pinning state.\n *\n * @example\n * ```ts\n * row_pin(row, 'top')\n * ```\n */\nexport function row_pin<TFeatures extends TableFeatures, TData extends RowData>(\n row: Row<TFeatures, TData>,\n position: RowPinningPosition,\n includeLeafRows?: boolean,\n includeParentRows?: boolean,\n): void {\n const leafRowIds = includeLeafRows\n ? row.getLeafRows().map(({ id }) => id)\n : []\n const parentRowIds = includeParentRows\n ? row.getParentRows().map(({ id }) => id)\n : []\n const rowIds: Set<string> = new Set([...parentRowIds, row.id, ...leafRowIds])\n\n table_setRowPinning(row.table, (old) => {\n if (position === 'bottom') {\n return {\n top: old.top.filter((d) => !rowIds.has(d)),\n bottom: [\n ...old.bottom.filter((d) => !rowIds.has(d)),\n ...Array.from(rowIds),\n ],\n }\n }\n\n if (position === 'top') {\n return {\n top: [...old.top.filter((d) => !rowIds.has(d)), ...Array.from(rowIds)],\n bottom: old.bottom.filter((d) => !rowIds.has(d)),\n }\n }\n\n return {\n top: old.top.filter((d) => !rowIds.has(d)),\n bottom: old.bottom.filter((d) => !rowIds.has(d)),\n }\n })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"rowPinningFeature.utils.cjs","names":["cloneState","row_getIsAllParentsExpanded","callMemoOrStaticFn"],"sources":["../../../src/features/row-pinning/rowPinningFeature.utils.ts"],"sourcesContent":["import { row_getIsAllParentsExpanded } from '../row-expanding/rowExpandingFeature.utils'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n RowPinningPosition,\n RowPinningState,\n} from './rowPinningFeature.types'\n\n// State Utils\n\n/**\n * Creates the default row pinning state.\n *\n * Both pinning regions start empty. Reset APIs use this value when\n * `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const pinning = getDefaultRowPinningState()\n * ```\n */\nexport function getDefaultRowPinningState(): RowPinningState {\n return {\n top: [],\n bottom: [],\n }\n}\n\n/**\n * Routes a row pinning updater through the table's row-pinning change handler.\n *\n * The updater may be a next `{ top, bottom }` state or a function of the\n * previous state, matching the instance `table.setRowPinning` behavior.\n *\n * @example\n * ```ts\n * table_setRowPinning(table, (old) => ({ ...old, top: [rowId] }))\n * ```\n */\nexport function table_setRowPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<RowPinningState>,\n): void {\n table.options.onRowPinningChange?.(updater)\n}\n\n/**\n * Resets `rowPinning` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.rowPinning` when it\n * exists. Passing `true` ignores initial state and resets to empty top/bottom\n * arrays.\n *\n * @example\n * ```ts\n * table_resetRowPinning(table)\n * table_resetRowPinning(table, true)\n * ```\n */\nexport function table_resetRowPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void {\n table_setRowPinning(\n table,\n defaultState\n ? getDefaultRowPinningState()\n : cloneState(\n table.initialState.rowPinning ?? getDefaultRowPinningState(),\n ),\n )\n}\n\n// Table Utils\n\n/**\n * Checks whether any rows are pinned.\n *\n * Omit `position` to check both regions, or pass `'top'`/`'bottom'` to inspect\n * one region.\n *\n * @example\n * ```ts\n * const hasPinnedRows = table_getIsSomeRowsPinned(table)\n * ```\n */\nexport function table_getIsSomeRowsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: RowPinningPosition,\n): boolean {\n const rowPinning = table.atoms.rowPinning?.get()\n\n if (!position) {\n return Boolean(rowPinning?.top.length || rowPinning?.bottom.length)\n }\n return Boolean(rowPinning?.[position].length)\n}\n\nfunction table_getPinnedRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: 'top' | 'bottom',\n): Array<Row<TFeatures, TData>> {\n const visibleRows = table.getRowModel().rows\n const pinnedRowIds = table.atoms.rowPinning?.get()?.[position] ?? []\n const keepPinnedRows = table.options.keepPinnedRows ?? true\n\n const result: Array<Row<TFeatures, TData>> = []\n for (let i = 0; i < pinnedRowIds.length; i++) {\n const rowId = pinnedRowIds[i]!\n let row: Row<TFeatures, TData> | undefined\n if (keepPinnedRows) {\n // get all rows that are pinned even if they would not be otherwise\n // visible; account for expanded parent rows, but not pagination/filtering\n const fullRow = table.getRow(rowId, true)\n if (row_getIsAllParentsExpanded(fullRow)) row = fullRow\n } else {\n // else get only visible rows that are pinned\n row = visibleRows.find((r) => r.id === rowId)\n }\n if (!row)\n continue\n // Assign position property directly to preserve prototype chain\n ;(row as any).position = position\n result.push(row)\n }\n return result\n}\n\n/**\n * Resolves the visible rows pinned to the top region.\n *\n * The result follows `state.rowPinning.top` order and marks each row with\n * `position = 'top'`.\n *\n * @example\n * ```ts\n * const rows = table_getTopRows(table)\n * ```\n */\nexport function table_getTopRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return table_getPinnedRows(table, 'top')\n}\n\n/**\n * Resolves the visible rows pinned to the bottom region.\n *\n * The result follows `state.rowPinning.bottom` order and marks each row with\n * `position = 'bottom'`.\n *\n * @example\n * ```ts\n * const rows = table_getBottomRows(table)\n * ```\n */\nexport function table_getBottomRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return table_getPinnedRows(table, 'bottom')\n}\n\n/**\n * Resolves rows that are not pinned to top or bottom.\n *\n * The current row model is filtered by `state.rowPinning.top` and\n * `state.rowPinning.bottom`.\n *\n * @example\n * ```ts\n * const rows = table_getCenterRows(table)\n * ```\n */\nexport function table_getCenterRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n const { top, bottom } =\n table.atoms.rowPinning?.get() ?? getDefaultRowPinningState()\n const allRows = table.getRowModel().rows\n\n const topAndBottom = new Set([...top, ...bottom])\n return allRows.filter((d) => !topAndBottom.has(d.id))\n}\n\n// Row Utils\n\n/**\n * Checks whether this row can be pinned.\n *\n * `options.enableRowPinning` may be a boolean or a row predicate; it defaults\n * to `true`.\n *\n * @example\n * ```ts\n * const canPin = row_getCanPin(row)\n * ```\n */\nexport function row_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): boolean {\n const { enableRowPinning } = row.table.options\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row)\n }\n return enableRowPinning ?? true\n}\n\n/**\n * Reads this row's current pinning region.\n *\n * Rows listed in `state.rowPinning.top` return `'top'`, rows listed in\n * `bottom` return `'bottom'`, and unpinned rows return `false`.\n *\n * @example\n * ```ts\n * const position = row_getIsPinned(row)\n * ```\n */\nexport function row_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): RowPinningPosition {\n const { top, bottom } =\n row.table.atoms.rowPinning?.get() ?? getDefaultRowPinningState()\n\n return top.includes(row.id)\n ? 'top'\n : bottom.includes(row.id)\n ? 'bottom'\n : false\n}\n\n/**\n * Finds this row's visible index within its pinned region.\n *\n * Unpinned rows return `-1`.\n *\n * @example\n * ```ts\n * const index = row_getPinnedIndex(row)\n * ```\n */\nexport function row_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): number {\n const position = row_getIsPinned(row)\n if (!position) return -1\n\n const visiblePinnedRowIds = (\n position === 'top'\n ? callMemoOrStaticFn(row.table, 'getTopRows', table_getTopRows)\n : callMemoOrStaticFn(row.table, 'getBottomRows', table_getBottomRows)\n ).map(({ id }) => id)\n\n return visiblePinnedRowIds.indexOf(row.id)\n}\n\n/**\n * Pins or unpins a row.\n *\n * Optional flags let callers include parent rows or leaf rows when updating\n * the row pinning state.\n *\n * @example\n * ```ts\n * row_pin(row, 'top')\n * ```\n */\nexport function row_pin<TFeatures extends TableFeatures, TData extends RowData>(\n row: Row<TFeatures, TData>,\n position: RowPinningPosition,\n includeLeafRows?: boolean,\n includeParentRows?: boolean,\n): void {\n const leafRowIds = includeLeafRows\n ? row.getLeafRows().map(({ id }) => id)\n : []\n const parentRowIds = includeParentRows\n ? row.getParentRows().map(({ id }) => id)\n : []\n const rowIds: Set<string> = new Set([...parentRowIds, row.id, ...leafRowIds])\n\n table_setRowPinning(row.table, (old) => {\n if (position === 'bottom') {\n return {\n top: old.top.filter((d) => !rowIds.has(d)),\n bottom: [\n ...old.bottom.filter((d) => !rowIds.has(d)),\n ...Array.from(rowIds),\n ],\n }\n }\n\n if (position === 'top') {\n return {\n top: [...old.top.filter((d) => !rowIds.has(d)), ...Array.from(rowIds)],\n bottom: old.bottom.filter((d) => !rowIds.has(d)),\n }\n }\n\n return {\n top: old.top.filter((d) => !rowIds.has(d)),\n bottom: old.bottom.filter((d) => !rowIds.has(d)),\n }\n })\n}\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { RowData, Updater } from "../../types/type-utils.cjs";
2
2
  import { RowPinningPosition, RowPinningState } from "./rowPinningFeature.types.cjs";
3
3
  import { Row } from "../../types/Row.cjs";
4
+ import { Table } from "../../types/Table.cjs";
4
5
  import { TableFeatures } from "../../types/TableFeatures.cjs";
5
- import { Table_Internal } from "../../types/Table.cjs";
6
6
 
7
7
  //#region src/features/row-pinning/rowPinningFeature.utils.d.ts
8
8
  /**
@@ -28,7 +28,7 @@ declare function getDefaultRowPinningState(): RowPinningState;
28
28
  * table_setRowPinning(table, (old) => ({ ...old, top: [rowId] }))
29
29
  * ```
30
30
  */
31
- declare function table_setRowPinning<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, updater: Updater<RowPinningState>): void;
31
+ declare function table_setRowPinning<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, updater: Updater<RowPinningState>): void;
32
32
  /**
33
33
  * Resets `rowPinning` to the configured initial state or feature default.
34
34
  *
@@ -42,7 +42,7 @@ declare function table_setRowPinning<TFeatures extends TableFeatures, TData exte
42
42
  * table_resetRowPinning(table, true)
43
43
  * ```
44
44
  */
45
- declare function table_resetRowPinning<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void;
45
+ declare function table_resetRowPinning<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, defaultState?: boolean): void;
46
46
  /**
47
47
  * Checks whether any rows are pinned.
48
48
  *
@@ -54,7 +54,7 @@ declare function table_resetRowPinning<TFeatures extends TableFeatures, TData ex
54
54
  * const hasPinnedRows = table_getIsSomeRowsPinned(table)
55
55
  * ```
56
56
  */
57
- declare function table_getIsSomeRowsPinned<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, position?: RowPinningPosition): boolean;
57
+ declare function table_getIsSomeRowsPinned<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, position?: RowPinningPosition): boolean;
58
58
  /**
59
59
  * Resolves the visible rows pinned to the top region.
60
60
  *
@@ -66,7 +66,7 @@ declare function table_getIsSomeRowsPinned<TFeatures extends TableFeatures, TDat
66
66
  * const rows = table_getTopRows(table)
67
67
  * ```
68
68
  */
69
- declare function table_getTopRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>>;
69
+ declare function table_getTopRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Array<Row<TFeatures, TData>>;
70
70
  /**
71
71
  * Resolves the visible rows pinned to the bottom region.
72
72
  *
@@ -78,7 +78,7 @@ declare function table_getTopRows<TFeatures extends TableFeatures, TData extends
78
78
  * const rows = table_getBottomRows(table)
79
79
  * ```
80
80
  */
81
- declare function table_getBottomRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>>;
81
+ declare function table_getBottomRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Array<Row<TFeatures, TData>>;
82
82
  /**
83
83
  * Resolves rows that are not pinned to top or bottom.
84
84
  *
@@ -90,7 +90,7 @@ declare function table_getBottomRows<TFeatures extends TableFeatures, TData exte
90
90
  * const rows = table_getCenterRows(table)
91
91
  * ```
92
92
  */
93
- declare function table_getCenterRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>>;
93
+ declare function table_getCenterRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Array<Row<TFeatures, TData>>;
94
94
  /**
95
95
  * Checks whether this row can be pinned.
96
96
  *
@@ -1,8 +1,8 @@
1
1
  import { RowData, Updater } from "../../types/type-utils.js";
2
2
  import { RowPinningPosition, RowPinningState } from "./rowPinningFeature.types.js";
3
3
  import { Row } from "../../types/Row.js";
4
+ import { Table } from "../../types/Table.js";
4
5
  import { TableFeatures } from "../../types/TableFeatures.js";
5
- import { Table_Internal } from "../../types/Table.js";
6
6
 
7
7
  //#region src/features/row-pinning/rowPinningFeature.utils.d.ts
8
8
  /**
@@ -28,7 +28,7 @@ declare function getDefaultRowPinningState(): RowPinningState;
28
28
  * table_setRowPinning(table, (old) => ({ ...old, top: [rowId] }))
29
29
  * ```
30
30
  */
31
- declare function table_setRowPinning<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, updater: Updater<RowPinningState>): void;
31
+ declare function table_setRowPinning<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, updater: Updater<RowPinningState>): void;
32
32
  /**
33
33
  * Resets `rowPinning` to the configured initial state or feature default.
34
34
  *
@@ -42,7 +42,7 @@ declare function table_setRowPinning<TFeatures extends TableFeatures, TData exte
42
42
  * table_resetRowPinning(table, true)
43
43
  * ```
44
44
  */
45
- declare function table_resetRowPinning<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void;
45
+ declare function table_resetRowPinning<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, defaultState?: boolean): void;
46
46
  /**
47
47
  * Checks whether any rows are pinned.
48
48
  *
@@ -54,7 +54,7 @@ declare function table_resetRowPinning<TFeatures extends TableFeatures, TData ex
54
54
  * const hasPinnedRows = table_getIsSomeRowsPinned(table)
55
55
  * ```
56
56
  */
57
- declare function table_getIsSomeRowsPinned<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, position?: RowPinningPosition): boolean;
57
+ declare function table_getIsSomeRowsPinned<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, position?: RowPinningPosition): boolean;
58
58
  /**
59
59
  * Resolves the visible rows pinned to the top region.
60
60
  *
@@ -66,7 +66,7 @@ declare function table_getIsSomeRowsPinned<TFeatures extends TableFeatures, TDat
66
66
  * const rows = table_getTopRows(table)
67
67
  * ```
68
68
  */
69
- declare function table_getTopRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>>;
69
+ declare function table_getTopRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Array<Row<TFeatures, TData>>;
70
70
  /**
71
71
  * Resolves the visible rows pinned to the bottom region.
72
72
  *
@@ -78,7 +78,7 @@ declare function table_getTopRows<TFeatures extends TableFeatures, TData extends
78
78
  * const rows = table_getBottomRows(table)
79
79
  * ```
80
80
  */
81
- declare function table_getBottomRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>>;
81
+ declare function table_getBottomRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Array<Row<TFeatures, TData>>;
82
82
  /**
83
83
  * Resolves rows that are not pinned to top or bottom.
84
84
  *
@@ -90,7 +90,7 @@ declare function table_getBottomRows<TFeatures extends TableFeatures, TData exte
90
90
  * const rows = table_getCenterRows(table)
91
91
  * ```
92
92
  */
93
- declare function table_getCenterRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>>;
93
+ declare function table_getCenterRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Array<Row<TFeatures, TData>>;
94
94
  /**
95
95
  * Checks whether this row can be pinned.
96
96
  *
@@ -129,7 +129,7 @@ function table_getCenterRows(table) {
129
129
  var _table$atoms$rowPinni3;
130
130
  const { top, bottom } = ((_table$atoms$rowPinni3 = table.atoms.rowPinning) === null || _table$atoms$rowPinni3 === void 0 ? void 0 : _table$atoms$rowPinni3.get()) ?? getDefaultRowPinningState();
131
131
  const allRows = table.getRowModel().rows;
132
- const topAndBottom = new Set([...top, ...bottom]);
132
+ const topAndBottom = /* @__PURE__ */ new Set([...top, ...bottom]);
133
133
  return allRows.filter((d) => !topAndBottom.has(d.id));
134
134
  }
135
135
  /**
@@ -193,7 +193,7 @@ function row_getPinnedIndex(row) {
193
193
  function row_pin(row, position, includeLeafRows, includeParentRows) {
194
194
  const leafRowIds = includeLeafRows ? row.getLeafRows().map(({ id }) => id) : [];
195
195
  const parentRowIds = includeParentRows ? row.getParentRows().map(({ id }) => id) : [];
196
- const rowIds = new Set([
196
+ const rowIds = /* @__PURE__ */ new Set([
197
197
  ...parentRowIds,
198
198
  row.id,
199
199
  ...leafRowIds
@@ -1 +1 @@
1
- {"version":3,"file":"rowPinningFeature.utils.js","names":[],"sources":["../../../src/features/row-pinning/rowPinningFeature.utils.ts"],"sourcesContent":["import { row_getIsAllParentsExpanded } from '../row-expanding/rowExpandingFeature.utils'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n RowPinningPosition,\n RowPinningState,\n} from './rowPinningFeature.types'\n\n// State Utils\n\n/**\n * Creates the default row pinning state.\n *\n * Both pinning regions start empty. Reset APIs use this value when\n * `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const pinning = getDefaultRowPinningState()\n * ```\n */\nexport function getDefaultRowPinningState(): RowPinningState {\n return {\n top: [],\n bottom: [],\n }\n}\n\n/**\n * Routes a row pinning updater through the table's row-pinning change handler.\n *\n * The updater may be a next `{ top, bottom }` state or a function of the\n * previous state, matching the instance `table.setRowPinning` behavior.\n *\n * @example\n * ```ts\n * table_setRowPinning(table, (old) => ({ ...old, top: [rowId] }))\n * ```\n */\nexport function table_setRowPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<RowPinningState>,\n): void {\n table.options.onRowPinningChange?.(updater)\n}\n\n/**\n * Resets `rowPinning` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.rowPinning` when it\n * exists. Passing `true` ignores initial state and resets to empty top/bottom\n * arrays.\n *\n * @example\n * ```ts\n * table_resetRowPinning(table)\n * table_resetRowPinning(table, true)\n * ```\n */\nexport function table_resetRowPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void {\n table_setRowPinning(\n table,\n defaultState\n ? getDefaultRowPinningState()\n : cloneState(\n table.initialState.rowPinning ?? getDefaultRowPinningState(),\n ),\n )\n}\n\n// Table Utils\n\n/**\n * Checks whether any rows are pinned.\n *\n * Omit `position` to check both regions, or pass `'top'`/`'bottom'` to inspect\n * one region.\n *\n * @example\n * ```ts\n * const hasPinnedRows = table_getIsSomeRowsPinned(table)\n * ```\n */\nexport function table_getIsSomeRowsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: RowPinningPosition,\n): boolean {\n const rowPinning = table.atoms.rowPinning?.get()\n\n if (!position) {\n return Boolean(rowPinning?.top.length || rowPinning?.bottom.length)\n }\n return Boolean(rowPinning?.[position].length)\n}\n\nfunction table_getPinnedRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: 'top' | 'bottom',\n): Array<Row<TFeatures, TData>> {\n const visibleRows = table.getRowModel().rows\n const pinnedRowIds = table.atoms.rowPinning?.get()?.[position] ?? []\n const keepPinnedRows = table.options.keepPinnedRows ?? true\n\n const result: Array<Row<TFeatures, TData>> = []\n for (let i = 0; i < pinnedRowIds.length; i++) {\n const rowId = pinnedRowIds[i]!\n let row: Row<TFeatures, TData> | undefined\n if (keepPinnedRows) {\n // get all rows that are pinned even if they would not be otherwise\n // visible; account for expanded parent rows, but not pagination/filtering\n const fullRow = table.getRow(rowId, true)\n if (row_getIsAllParentsExpanded(fullRow)) row = fullRow\n } else {\n // else get only visible rows that are pinned\n row = visibleRows.find((r) => r.id === rowId)\n }\n if (!row)\n continue\n // Assign position property directly to preserve prototype chain\n ;(row as any).position = position\n result.push(row)\n }\n return result\n}\n\n/**\n * Resolves the visible rows pinned to the top region.\n *\n * The result follows `state.rowPinning.top` order and marks each row with\n * `position = 'top'`.\n *\n * @example\n * ```ts\n * const rows = table_getTopRows(table)\n * ```\n */\nexport function table_getTopRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return table_getPinnedRows(table, 'top')\n}\n\n/**\n * Resolves the visible rows pinned to the bottom region.\n *\n * The result follows `state.rowPinning.bottom` order and marks each row with\n * `position = 'bottom'`.\n *\n * @example\n * ```ts\n * const rows = table_getBottomRows(table)\n * ```\n */\nexport function table_getBottomRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return table_getPinnedRows(table, 'bottom')\n}\n\n/**\n * Resolves rows that are not pinned to top or bottom.\n *\n * The current row model is filtered by `state.rowPinning.top` and\n * `state.rowPinning.bottom`.\n *\n * @example\n * ```ts\n * const rows = table_getCenterRows(table)\n * ```\n */\nexport function table_getCenterRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n const { top, bottom } =\n table.atoms.rowPinning?.get() ?? getDefaultRowPinningState()\n const allRows = table.getRowModel().rows\n\n const topAndBottom = new Set([...top, ...bottom])\n return allRows.filter((d) => !topAndBottom.has(d.id))\n}\n\n// Row Utils\n\n/**\n * Checks whether this row can be pinned.\n *\n * `options.enableRowPinning` may be a boolean or a row predicate; it defaults\n * to `true`.\n *\n * @example\n * ```ts\n * const canPin = row_getCanPin(row)\n * ```\n */\nexport function row_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): boolean {\n const { enableRowPinning } = row.table.options\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row)\n }\n return enableRowPinning ?? true\n}\n\n/**\n * Reads this row's current pinning region.\n *\n * Rows listed in `state.rowPinning.top` return `'top'`, rows listed in\n * `bottom` return `'bottom'`, and unpinned rows return `false`.\n *\n * @example\n * ```ts\n * const position = row_getIsPinned(row)\n * ```\n */\nexport function row_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): RowPinningPosition {\n const { top, bottom } =\n row.table.atoms.rowPinning?.get() ?? getDefaultRowPinningState()\n\n return top.includes(row.id)\n ? 'top'\n : bottom.includes(row.id)\n ? 'bottom'\n : false\n}\n\n/**\n * Finds this row's visible index within its pinned region.\n *\n * Unpinned rows return `-1`.\n *\n * @example\n * ```ts\n * const index = row_getPinnedIndex(row)\n * ```\n */\nexport function row_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): number {\n const position = row_getIsPinned(row)\n if (!position) return -1\n\n const visiblePinnedRowIds = (\n position === 'top'\n ? callMemoOrStaticFn(row.table, 'getTopRows', table_getTopRows)\n : callMemoOrStaticFn(row.table, 'getBottomRows', table_getBottomRows)\n ).map(({ id }) => id)\n\n return visiblePinnedRowIds.indexOf(row.id)\n}\n\n/**\n * Pins or unpins a row.\n *\n * Optional flags let callers include parent rows or leaf rows when updating\n * the row pinning state.\n *\n * @example\n * ```ts\n * row_pin(row, 'top')\n * ```\n */\nexport function row_pin<TFeatures extends TableFeatures, TData extends RowData>(\n row: Row<TFeatures, TData>,\n position: RowPinningPosition,\n includeLeafRows?: boolean,\n includeParentRows?: boolean,\n): void {\n const leafRowIds = includeLeafRows\n ? row.getLeafRows().map(({ id }) => id)\n : []\n const parentRowIds = includeParentRows\n ? row.getParentRows().map(({ id }) => id)\n : []\n const rowIds: Set<string> = new Set([...parentRowIds, row.id, ...leafRowIds])\n\n table_setRowPinning(row.table, (old) => {\n if (position === 'bottom') {\n return {\n top: old.top.filter((d) => !rowIds.has(d)),\n bottom: [\n ...old.bottom.filter((d) => !rowIds.has(d)),\n ...Array.from(rowIds),\n ],\n }\n }\n\n if (position === 'top') {\n return {\n top: [...old.top.filter((d) => !rowIds.has(d)), ...Array.from(rowIds)],\n bottom: old.bottom.filter((d) => !rowIds.has(d)),\n }\n }\n\n return {\n top: old.top.filter((d) => !rowIds.has(d)),\n bottom: old.bottom.filter((d) => !rowIds.has(d)),\n }\n })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"rowPinningFeature.utils.js","names":[],"sources":["../../../src/features/row-pinning/rowPinningFeature.utils.ts"],"sourcesContent":["import { row_getIsAllParentsExpanded } from '../row-expanding/rowExpandingFeature.utils'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n RowPinningPosition,\n RowPinningState,\n} from './rowPinningFeature.types'\n\n// State Utils\n\n/**\n * Creates the default row pinning state.\n *\n * Both pinning regions start empty. Reset APIs use this value when\n * `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const pinning = getDefaultRowPinningState()\n * ```\n */\nexport function getDefaultRowPinningState(): RowPinningState {\n return {\n top: [],\n bottom: [],\n }\n}\n\n/**\n * Routes a row pinning updater through the table's row-pinning change handler.\n *\n * The updater may be a next `{ top, bottom }` state or a function of the\n * previous state, matching the instance `table.setRowPinning` behavior.\n *\n * @example\n * ```ts\n * table_setRowPinning(table, (old) => ({ ...old, top: [rowId] }))\n * ```\n */\nexport function table_setRowPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<RowPinningState>,\n): void {\n table.options.onRowPinningChange?.(updater)\n}\n\n/**\n * Resets `rowPinning` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.rowPinning` when it\n * exists. Passing `true` ignores initial state and resets to empty top/bottom\n * arrays.\n *\n * @example\n * ```ts\n * table_resetRowPinning(table)\n * table_resetRowPinning(table, true)\n * ```\n */\nexport function table_resetRowPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void {\n table_setRowPinning(\n table,\n defaultState\n ? getDefaultRowPinningState()\n : cloneState(\n table.initialState.rowPinning ?? getDefaultRowPinningState(),\n ),\n )\n}\n\n// Table Utils\n\n/**\n * Checks whether any rows are pinned.\n *\n * Omit `position` to check both regions, or pass `'top'`/`'bottom'` to inspect\n * one region.\n *\n * @example\n * ```ts\n * const hasPinnedRows = table_getIsSomeRowsPinned(table)\n * ```\n */\nexport function table_getIsSomeRowsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: RowPinningPosition,\n): boolean {\n const rowPinning = table.atoms.rowPinning?.get()\n\n if (!position) {\n return Boolean(rowPinning?.top.length || rowPinning?.bottom.length)\n }\n return Boolean(rowPinning?.[position].length)\n}\n\nfunction table_getPinnedRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: 'top' | 'bottom',\n): Array<Row<TFeatures, TData>> {\n const visibleRows = table.getRowModel().rows\n const pinnedRowIds = table.atoms.rowPinning?.get()?.[position] ?? []\n const keepPinnedRows = table.options.keepPinnedRows ?? true\n\n const result: Array<Row<TFeatures, TData>> = []\n for (let i = 0; i < pinnedRowIds.length; i++) {\n const rowId = pinnedRowIds[i]!\n let row: Row<TFeatures, TData> | undefined\n if (keepPinnedRows) {\n // get all rows that are pinned even if they would not be otherwise\n // visible; account for expanded parent rows, but not pagination/filtering\n const fullRow = table.getRow(rowId, true)\n if (row_getIsAllParentsExpanded(fullRow)) row = fullRow\n } else {\n // else get only visible rows that are pinned\n row = visibleRows.find((r) => r.id === rowId)\n }\n if (!row)\n continue\n // Assign position property directly to preserve prototype chain\n ;(row as any).position = position\n result.push(row)\n }\n return result\n}\n\n/**\n * Resolves the visible rows pinned to the top region.\n *\n * The result follows `state.rowPinning.top` order and marks each row with\n * `position = 'top'`.\n *\n * @example\n * ```ts\n * const rows = table_getTopRows(table)\n * ```\n */\nexport function table_getTopRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return table_getPinnedRows(table, 'top')\n}\n\n/**\n * Resolves the visible rows pinned to the bottom region.\n *\n * The result follows `state.rowPinning.bottom` order and marks each row with\n * `position = 'bottom'`.\n *\n * @example\n * ```ts\n * const rows = table_getBottomRows(table)\n * ```\n */\nexport function table_getBottomRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return table_getPinnedRows(table, 'bottom')\n}\n\n/**\n * Resolves rows that are not pinned to top or bottom.\n *\n * The current row model is filtered by `state.rowPinning.top` and\n * `state.rowPinning.bottom`.\n *\n * @example\n * ```ts\n * const rows = table_getCenterRows(table)\n * ```\n */\nexport function table_getCenterRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n const { top, bottom } =\n table.atoms.rowPinning?.get() ?? getDefaultRowPinningState()\n const allRows = table.getRowModel().rows\n\n const topAndBottom = new Set([...top, ...bottom])\n return allRows.filter((d) => !topAndBottom.has(d.id))\n}\n\n// Row Utils\n\n/**\n * Checks whether this row can be pinned.\n *\n * `options.enableRowPinning` may be a boolean or a row predicate; it defaults\n * to `true`.\n *\n * @example\n * ```ts\n * const canPin = row_getCanPin(row)\n * ```\n */\nexport function row_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): boolean {\n const { enableRowPinning } = row.table.options\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row)\n }\n return enableRowPinning ?? true\n}\n\n/**\n * Reads this row's current pinning region.\n *\n * Rows listed in `state.rowPinning.top` return `'top'`, rows listed in\n * `bottom` return `'bottom'`, and unpinned rows return `false`.\n *\n * @example\n * ```ts\n * const position = row_getIsPinned(row)\n * ```\n */\nexport function row_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): RowPinningPosition {\n const { top, bottom } =\n row.table.atoms.rowPinning?.get() ?? getDefaultRowPinningState()\n\n return top.includes(row.id)\n ? 'top'\n : bottom.includes(row.id)\n ? 'bottom'\n : false\n}\n\n/**\n * Finds this row's visible index within its pinned region.\n *\n * Unpinned rows return `-1`.\n *\n * @example\n * ```ts\n * const index = row_getPinnedIndex(row)\n * ```\n */\nexport function row_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): number {\n const position = row_getIsPinned(row)\n if (!position) return -1\n\n const visiblePinnedRowIds = (\n position === 'top'\n ? callMemoOrStaticFn(row.table, 'getTopRows', table_getTopRows)\n : callMemoOrStaticFn(row.table, 'getBottomRows', table_getBottomRows)\n ).map(({ id }) => id)\n\n return visiblePinnedRowIds.indexOf(row.id)\n}\n\n/**\n * Pins or unpins a row.\n *\n * Optional flags let callers include parent rows or leaf rows when updating\n * the row pinning state.\n *\n * @example\n * ```ts\n * row_pin(row, 'top')\n * ```\n */\nexport function row_pin<TFeatures extends TableFeatures, TData extends RowData>(\n row: Row<TFeatures, TData>,\n position: RowPinningPosition,\n includeLeafRows?: boolean,\n includeParentRows?: boolean,\n): void {\n const leafRowIds = includeLeafRows\n ? row.getLeafRows().map(({ id }) => id)\n : []\n const parentRowIds = includeParentRows\n ? row.getParentRows().map(({ id }) => id)\n : []\n const rowIds: Set<string> = new Set([...parentRowIds, row.id, ...leafRowIds])\n\n table_setRowPinning(row.table, (old) => {\n if (position === 'bottom') {\n return {\n top: old.top.filter((d) => !rowIds.has(d)),\n bottom: [\n ...old.bottom.filter((d) => !rowIds.has(d)),\n ...Array.from(rowIds),\n ],\n }\n }\n\n if (position === 'top') {\n return {\n top: [...old.top.filter((d) => !rowIds.has(d)), ...Array.from(rowIds)],\n bottom: old.bottom.filter((d) => !rowIds.has(d)),\n }\n }\n\n return {\n top: old.top.filter((d) => !rowIds.has(d)),\n bottom: old.bottom.filter((d) => !rowIds.has(d)),\n }\n })\n}\n"],"mappings":"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"}