@tanstack/table-core 9.0.0-beta.5 → 9.0.0-beta.51

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 (602) hide show
  1. package/README.md +2 -0
  2. package/dist/core/cells/constructCell.cjs +1 -4
  3. package/dist/core/cells/constructCell.cjs.map +1 -1
  4. package/dist/core/cells/constructCell.d.cts +4 -4
  5. package/dist/core/cells/constructCell.d.ts +4 -4
  6. package/dist/core/cells/constructCell.js +1 -4
  7. package/dist/core/cells/constructCell.js.map +1 -1
  8. package/dist/core/cells/coreCellsFeature.types.d.cts +7 -7
  9. package/dist/core/cells/coreCellsFeature.types.d.ts +7 -7
  10. package/dist/core/cells/coreCellsFeature.utils.d.cts +4 -4
  11. package/dist/core/cells/coreCellsFeature.utils.d.ts +4 -4
  12. package/dist/core/columns/constructColumn.cjs +4 -5
  13. package/dist/core/columns/constructColumn.cjs.map +1 -1
  14. package/dist/core/columns/constructColumn.d.cts +3 -3
  15. package/dist/core/columns/constructColumn.d.ts +3 -3
  16. package/dist/core/columns/constructColumn.js +4 -5
  17. package/dist/core/columns/constructColumn.js.map +1 -1
  18. package/dist/core/columns/coreColumnsFeature.cjs +12 -18
  19. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  20. package/dist/core/columns/coreColumnsFeature.js +12 -18
  21. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  22. package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -7
  23. package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -7
  24. package/dist/core/columns/coreColumnsFeature.utils.cjs +4 -8
  25. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  26. package/dist/core/columns/coreColumnsFeature.utils.d.cts +9 -9
  27. package/dist/core/columns/coreColumnsFeature.utils.d.ts +9 -9
  28. package/dist/core/columns/coreColumnsFeature.utils.js +5 -9
  29. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  30. package/dist/core/coreFeatures.cjs.map +1 -1
  31. package/dist/core/coreFeatures.d.cts +1 -1
  32. package/dist/core/coreFeatures.d.ts +1 -1
  33. package/dist/core/coreFeatures.js.map +1 -1
  34. package/dist/core/headers/buildHeaderGroups.cjs +1 -2
  35. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  36. package/dist/core/headers/buildHeaderGroups.d.cts +2 -2
  37. package/dist/core/headers/buildHeaderGroups.d.ts +2 -2
  38. package/dist/core/headers/buildHeaderGroups.js +1 -2
  39. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  40. package/dist/core/headers/constructHeader.cjs +1 -4
  41. package/dist/core/headers/constructHeader.cjs.map +1 -1
  42. package/dist/core/headers/constructHeader.d.cts +2 -2
  43. package/dist/core/headers/constructHeader.d.ts +2 -2
  44. package/dist/core/headers/constructHeader.js +1 -4
  45. package/dist/core/headers/constructHeader.js.map +1 -1
  46. package/dist/core/headers/coreHeadersFeature.cjs +8 -11
  47. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  48. package/dist/core/headers/coreHeadersFeature.js +8 -11
  49. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  50. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  51. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  52. package/dist/core/headers/coreHeadersFeature.utils.cjs +8 -10
  53. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  54. package/dist/core/headers/coreHeadersFeature.utils.d.cts +6 -6
  55. package/dist/core/headers/coreHeadersFeature.utils.d.ts +6 -6
  56. package/dist/core/headers/coreHeadersFeature.utils.js +8 -10
  57. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  58. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +7 -15
  59. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +7 -15
  60. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +8 -26
  61. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  62. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +16 -16
  63. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +16 -16
  64. package/dist/core/row-models/coreRowModelsFeature.utils.js +8 -26
  65. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  66. package/dist/core/row-models/createCoreRowModel.cjs +4 -6
  67. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  68. package/dist/core/row-models/createCoreRowModel.d.cts +2 -2
  69. package/dist/core/row-models/createCoreRowModel.d.ts +2 -2
  70. package/dist/core/row-models/createCoreRowModel.js +5 -7
  71. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  72. package/dist/core/rows/constructRow.cjs +6 -10
  73. package/dist/core/rows/constructRow.cjs.map +1 -1
  74. package/dist/core/rows/constructRow.d.cts +2 -2
  75. package/dist/core/rows/constructRow.d.ts +2 -2
  76. package/dist/core/rows/constructRow.js +7 -10
  77. package/dist/core/rows/constructRow.js.map +1 -1
  78. package/dist/core/rows/coreRowsFeature.cjs +18 -2
  79. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  80. package/dist/core/rows/coreRowsFeature.js +19 -3
  81. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  82. package/dist/core/rows/coreRowsFeature.types.d.cts +41 -7
  83. package/dist/core/rows/coreRowsFeature.types.d.ts +41 -7
  84. package/dist/core/rows/coreRowsFeature.utils.cjs +62 -8
  85. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  86. package/dist/core/rows/coreRowsFeature.utils.d.cts +24 -5
  87. package/dist/core/rows/coreRowsFeature.utils.d.ts +24 -5
  88. package/dist/core/rows/coreRowsFeature.utils.js +61 -10
  89. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  90. package/dist/core/table/constructTable.cjs +24 -14
  91. package/dist/core/table/constructTable.cjs.map +1 -1
  92. package/dist/core/table/constructTable.d.cts +1 -1
  93. package/dist/core/table/constructTable.d.ts +1 -1
  94. package/dist/core/table/constructTable.js +24 -14
  95. package/dist/core/table/constructTable.js.map +1 -1
  96. package/dist/core/table/coreTablesFeature.types.d.cts +32 -19
  97. package/dist/core/table/coreTablesFeature.types.d.ts +32 -19
  98. package/dist/core/table/coreTablesFeature.utils.cjs +38 -14
  99. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  100. package/dist/core/table/coreTablesFeature.utils.d.cts +10 -7
  101. package/dist/core/table/coreTablesFeature.utils.d.ts +10 -7
  102. package/dist/core/table/coreTablesFeature.utils.js +38 -14
  103. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  104. package/dist/experimental-worker-plugin.cjs +14 -0
  105. package/dist/experimental-worker-plugin.d.cts +5 -0
  106. package/dist/experimental-worker-plugin.d.ts +5 -0
  107. package/dist/experimental-worker-plugin.js +6 -0
  108. package/dist/features/column-faceting/columnFacetingFeature.cjs +12 -18
  109. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  110. package/dist/features/column-faceting/columnFacetingFeature.js +12 -18
  111. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  112. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +15 -33
  113. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +15 -33
  114. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +23 -12
  115. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  116. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +9 -9
  117. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +9 -9
  118. package/dist/features/column-faceting/columnFacetingFeature.utils.js +24 -12
  119. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  120. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +7 -4
  121. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  122. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  123. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  124. package/dist/features/column-faceting/createFacetedMinMaxValues.js +8 -5
  125. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  126. package/dist/features/column-faceting/createFacetedRowModel.cjs +10 -15
  127. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  128. package/dist/features/column-faceting/createFacetedRowModel.d.cts +2 -2
  129. package/dist/features/column-faceting/createFacetedRowModel.d.ts +2 -2
  130. package/dist/features/column-faceting/createFacetedRowModel.js +10 -15
  131. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  132. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +10 -6
  133. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  134. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  135. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  136. package/dist/features/column-faceting/createFacetedUniqueValues.js +11 -7
  137. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  138. package/dist/features/column-filtering/columnFilteringFeature.cjs +2 -2
  139. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  140. package/dist/features/column-filtering/columnFilteringFeature.js +3 -3
  141. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  142. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +83 -29
  143. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +83 -29
  144. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +23 -17
  145. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  146. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +18 -14
  147. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +18 -14
  148. package/dist/features/column-filtering/columnFilteringFeature.utils.js +23 -17
  149. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  150. package/dist/features/column-filtering/createFilteredRowModel.cjs +29 -25
  151. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  152. package/dist/features/column-filtering/createFilteredRowModel.d.cts +10 -4
  153. package/dist/features/column-filtering/createFilteredRowModel.d.ts +10 -4
  154. package/dist/features/column-filtering/createFilteredRowModel.js +30 -26
  155. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  156. package/dist/features/column-filtering/filterFns.cjs +399 -0
  157. package/dist/features/column-filtering/filterFns.cjs.map +1 -0
  158. package/dist/features/column-filtering/filterFns.d.cts +210 -0
  159. package/dist/features/column-filtering/filterFns.d.ts +210 -0
  160. package/dist/features/column-filtering/filterFns.js +375 -0
  161. package/dist/features/column-filtering/filterFns.js.map +1 -0
  162. package/dist/features/column-filtering/filterRowsUtils.cjs +3 -2
  163. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
  164. package/dist/features/column-filtering/filterRowsUtils.js +3 -2
  165. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
  166. package/dist/features/column-grouping/columnGroupingFeature.cjs +4 -16
  167. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  168. package/dist/features/column-grouping/columnGroupingFeature.d.cts +1 -1
  169. package/dist/features/column-grouping/columnGroupingFeature.d.ts +1 -1
  170. package/dist/features/column-grouping/columnGroupingFeature.js +6 -18
  171. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  172. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +14 -50
  173. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +14 -50
  174. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +6 -61
  175. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  176. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +12 -49
  177. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +12 -49
  178. package/dist/features/column-grouping/columnGroupingFeature.utils.js +8 -60
  179. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  180. package/dist/features/column-grouping/createGroupedRowModel.cjs +37 -24
  181. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  182. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -4
  183. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -4
  184. package/dist/features/column-grouping/createGroupedRowModel.js +39 -26
  185. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  186. package/dist/features/column-ordering/columnOrderingFeature.cjs +17 -21
  187. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  188. package/dist/features/column-ordering/columnOrderingFeature.js +18 -22
  189. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  190. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +28 -3
  191. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +28 -3
  192. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +35 -15
  193. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
  194. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +26 -14
  195. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +26 -14
  196. package/dist/features/column-ordering/columnOrderingFeature.utils.js +36 -17
  197. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
  198. package/dist/features/column-pinning/columnPinningFeature.cjs +124 -143
  199. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  200. package/dist/features/column-pinning/columnPinningFeature.d.cts +6 -1
  201. package/dist/features/column-pinning/columnPinningFeature.d.ts +6 -1
  202. package/dist/features/column-pinning/columnPinningFeature.js +125 -144
  203. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  204. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +52 -41
  205. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +52 -41
  206. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +161 -162
  207. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  208. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +101 -92
  209. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +101 -92
  210. package/dist/features/column-pinning/columnPinningFeature.utils.js +148 -149
  211. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  212. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +1 -4
  213. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
  214. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +84 -44
  215. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  216. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +6 -6
  217. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +6 -6
  218. package/dist/features/column-resizing/columnResizingFeature.utils.js +85 -45
  219. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  220. package/dist/features/column-sizing/columnSizingFeature.cjs +33 -67
  221. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  222. package/dist/features/column-sizing/columnSizingFeature.js +34 -68
  223. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  224. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +52 -9
  225. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +52 -9
  226. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +88 -45
  227. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  228. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +43 -25
  229. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +43 -25
  230. package/dist/features/column-sizing/columnSizingFeature.utils.js +88 -46
  231. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  232. package/dist/features/column-visibility/columnVisibilityFeature.cjs +25 -36
  233. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  234. package/dist/features/column-visibility/columnVisibilityFeature.js +25 -36
  235. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  236. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +3 -3
  237. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +3 -3
  238. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +30 -29
  239. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  240. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +18 -18
  241. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +18 -18
  242. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +31 -30
  243. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  244. package/dist/features/global-filtering/globalFilteringFeature.cjs +1 -2
  245. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  246. package/dist/features/global-filtering/globalFilteringFeature.js +1 -2
  247. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  248. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +2 -2
  249. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +2 -2
  250. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +6 -6
  251. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  252. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +8 -11
  253. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +8 -11
  254. package/dist/features/global-filtering/globalFilteringFeature.utils.js +6 -6
  255. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  256. package/dist/features/row-aggregation/aggregationFns.cjs +246 -0
  257. package/dist/features/row-aggregation/aggregationFns.cjs.map +1 -0
  258. package/dist/features/row-aggregation/aggregationFns.d.cts +68 -0
  259. package/dist/features/row-aggregation/aggregationFns.d.ts +68 -0
  260. package/dist/features/row-aggregation/aggregationFns.js +235 -0
  261. package/dist/features/row-aggregation/aggregationFns.js.map +1 -0
  262. package/dist/features/row-aggregation/rowAggregationFeature.cjs +39 -0
  263. package/dist/features/row-aggregation/rowAggregationFeature.cjs.map +1 -0
  264. package/dist/features/row-aggregation/rowAggregationFeature.d.cts +10 -0
  265. package/dist/features/row-aggregation/rowAggregationFeature.d.ts +10 -0
  266. package/dist/features/row-aggregation/rowAggregationFeature.js +39 -0
  267. package/dist/features/row-aggregation/rowAggregationFeature.js.map +1 -0
  268. package/dist/features/row-aggregation/rowAggregationFeature.types.cjs +13 -0
  269. package/dist/features/row-aggregation/rowAggregationFeature.types.cjs.map +1 -0
  270. package/dist/features/row-aggregation/rowAggregationFeature.types.d.cts +195 -0
  271. package/dist/features/row-aggregation/rowAggregationFeature.types.d.ts +195 -0
  272. package/dist/features/row-aggregation/rowAggregationFeature.types.js +12 -0
  273. package/dist/features/row-aggregation/rowAggregationFeature.types.js.map +1 -0
  274. package/dist/features/row-aggregation/rowAggregationFeature.utils.cjs +212 -0
  275. package/dist/features/row-aggregation/rowAggregationFeature.utils.cjs.map +1 -0
  276. package/dist/features/row-aggregation/rowAggregationFeature.utils.d.cts +34 -0
  277. package/dist/features/row-aggregation/rowAggregationFeature.utils.d.ts +34 -0
  278. package/dist/features/row-aggregation/rowAggregationFeature.utils.js +206 -0
  279. package/dist/features/row-aggregation/rowAggregationFeature.utils.js.map +1 -0
  280. package/dist/features/row-expanding/createExpandedRowModel.cjs +6 -10
  281. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  282. package/dist/features/row-expanding/createExpandedRowModel.d.cts +2 -2
  283. package/dist/features/row-expanding/createExpandedRowModel.d.ts +2 -2
  284. package/dist/features/row-expanding/createExpandedRowModel.js +6 -10
  285. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  286. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +6 -15
  287. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +6 -15
  288. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +28 -26
  289. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  290. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +10 -10
  291. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +10 -10
  292. package/dist/features/row-expanding/rowExpandingFeature.utils.js +29 -27
  293. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  294. package/dist/features/row-pagination/createPaginatedRowModel.cjs +6 -10
  295. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  296. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +2 -2
  297. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +2 -2
  298. package/dist/features/row-pagination/createPaginatedRowModel.js +6 -10
  299. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  300. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +5 -14
  301. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +5 -14
  302. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +9 -15
  303. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
  304. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +17 -17
  305. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +17 -17
  306. package/dist/features/row-pagination/rowPaginationFeature.utils.js +9 -15
  307. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
  308. package/dist/features/row-pinning/rowPinningFeature.cjs +4 -16
  309. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  310. package/dist/features/row-pinning/rowPinningFeature.js +4 -16
  311. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  312. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  313. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  314. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +9 -14
  315. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  316. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +7 -7
  317. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +7 -7
  318. package/dist/features/row-pinning/rowPinningFeature.utils.js +9 -14
  319. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  320. package/dist/features/row-selection/rowSelectionFeature.cjs +66 -22
  321. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  322. package/dist/features/row-selection/rowSelectionFeature.js +67 -23
  323. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  324. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +49 -11
  325. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +49 -11
  326. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +128 -72
  327. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  328. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +57 -30
  329. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +57 -30
  330. package/dist/features/row-selection/rowSelectionFeature.utils.js +129 -74
  331. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  332. package/dist/features/row-sorting/createSortedRowModel.cjs +69 -50
  333. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  334. package/dist/features/row-sorting/createSortedRowModel.d.cts +10 -4
  335. package/dist/features/row-sorting/createSortedRowModel.d.ts +10 -4
  336. package/dist/features/row-sorting/createSortedRowModel.js +70 -51
  337. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  338. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +54 -22
  339. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +54 -22
  340. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +31 -17
  341. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  342. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +16 -16
  343. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +16 -16
  344. package/dist/features/row-sorting/rowSortingFeature.utils.js +31 -17
  345. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  346. package/dist/features/row-sorting/sortFns.cjs +226 -0
  347. package/dist/features/row-sorting/sortFns.cjs.map +1 -0
  348. package/dist/features/row-sorting/sortFns.d.cts +98 -0
  349. package/dist/features/row-sorting/sortFns.d.ts +98 -0
  350. package/dist/features/row-sorting/sortFns.js +217 -0
  351. package/dist/features/row-sorting/sortFns.js.map +1 -0
  352. package/dist/features/stockFeatures.cjs +2 -0
  353. package/dist/features/stockFeatures.cjs.map +1 -1
  354. package/dist/features/stockFeatures.d.cts +2 -0
  355. package/dist/features/stockFeatures.d.ts +2 -0
  356. package/dist/features/stockFeatures.js +2 -0
  357. package/dist/features/stockFeatures.js.map +1 -1
  358. package/dist/flex-render.d.cts +1 -1
  359. package/dist/flex-render.d.ts +1 -1
  360. package/dist/helpers/columnHelper.cjs.map +1 -1
  361. package/dist/helpers/columnHelper.d.cts +2 -2
  362. package/dist/helpers/columnHelper.d.ts +2 -2
  363. package/dist/helpers/columnHelper.js.map +1 -1
  364. package/dist/helpers/metaHelper.cjs +30 -0
  365. package/dist/helpers/metaHelper.cjs.map +1 -0
  366. package/dist/helpers/metaHelper.d.cts +26 -0
  367. package/dist/helpers/metaHelper.d.ts +26 -0
  368. package/dist/helpers/metaHelper.js +29 -0
  369. package/dist/helpers/metaHelper.js.map +1 -0
  370. package/dist/helpers/tableFeatures.cjs +32 -3
  371. package/dist/helpers/tableFeatures.cjs.map +1 -1
  372. package/dist/helpers/tableFeatures.d.cts +34 -5
  373. package/dist/helpers/tableFeatures.d.ts +34 -5
  374. package/dist/helpers/tableFeatures.js +32 -3
  375. package/dist/helpers/tableFeatures.js.map +1 -1
  376. package/dist/index.cjs +23 -3
  377. package/dist/index.d.cts +31 -28
  378. package/dist/index.d.ts +31 -28
  379. package/dist/index.js +8 -5
  380. package/dist/static-functions.cjs +30 -19
  381. package/dist/static-functions.d.cts +8 -7
  382. package/dist/static-functions.d.ts +8 -7
  383. package/dist/static-functions.js +8 -7
  384. package/dist/store-reactivity-bindings.cjs +3 -3
  385. package/dist/store-reactivity-bindings.cjs.map +1 -1
  386. package/dist/store-reactivity-bindings.d.cts +1 -1
  387. package/dist/store-reactivity-bindings.d.ts +1 -1
  388. package/dist/store-reactivity-bindings.js +3 -3
  389. package/dist/store-reactivity-bindings.js.map +1 -1
  390. package/dist/types/Cell.d.cts +4 -2
  391. package/dist/types/Cell.d.ts +4 -2
  392. package/dist/types/Column.d.cts +15 -15
  393. package/dist/types/Column.d.ts +15 -15
  394. package/dist/types/ColumnDef.d.cts +30 -14
  395. package/dist/types/ColumnDef.d.ts +30 -14
  396. package/dist/types/Header.d.cts +2 -2
  397. package/dist/types/Header.d.ts +2 -2
  398. package/dist/types/HeaderGroup.d.cts +2 -2
  399. package/dist/types/HeaderGroup.d.ts +2 -2
  400. package/dist/types/Row.d.cts +6 -4
  401. package/dist/types/Row.d.ts +6 -4
  402. package/dist/types/RowModel.d.cts +11 -23
  403. package/dist/types/RowModel.d.ts +11 -23
  404. package/dist/types/RowModelFns.d.cts +4 -4
  405. package/dist/types/RowModelFns.d.ts +4 -4
  406. package/dist/types/Table.d.cts +26 -31
  407. package/dist/types/Table.d.ts +26 -31
  408. package/dist/types/TableFeatures.d.cts +350 -22
  409. package/dist/types/TableFeatures.d.ts +350 -22
  410. package/dist/types/TableOptions.d.cts +22 -14
  411. package/dist/types/TableOptions.d.ts +22 -14
  412. package/dist/types/TableState.d.cts +6 -6
  413. package/dist/types/TableState.d.ts +6 -6
  414. package/dist/types/type-utils.d.cts +8 -1
  415. package/dist/types/type-utils.d.ts +8 -1
  416. package/dist/utils.cjs +51 -29
  417. package/dist/utils.cjs.map +1 -1
  418. package/dist/utils.d.cts +30 -8
  419. package/dist/utils.d.ts +30 -8
  420. package/dist/utils.js +49 -30
  421. package/dist/utils.js.map +1 -1
  422. package/dist/worker/createTableWorker.cjs +189 -0
  423. package/dist/worker/createTableWorker.cjs.map +1 -0
  424. package/dist/worker/createTableWorker.d.cts +102 -0
  425. package/dist/worker/createTableWorker.d.ts +102 -0
  426. package/dist/worker/createTableWorker.js +186 -0
  427. package/dist/worker/createTableWorker.js.map +1 -0
  428. package/dist/worker/createWorkerRowModel.cjs +78 -0
  429. package/dist/worker/createWorkerRowModel.cjs.map +1 -0
  430. package/dist/worker/createWorkerRowModel.d.cts +42 -0
  431. package/dist/worker/createWorkerRowModel.d.ts +42 -0
  432. package/dist/worker/createWorkerRowModel.js +78 -0
  433. package/dist/worker/createWorkerRowModel.js.map +1 -0
  434. package/dist/worker/initTableWorker.cjs +100 -0
  435. package/dist/worker/initTableWorker.cjs.map +1 -0
  436. package/dist/worker/initTableWorker.d.cts +33 -0
  437. package/dist/worker/initTableWorker.d.ts +33 -0
  438. package/dist/worker/initTableWorker.js +100 -0
  439. package/dist/worker/initTableWorker.js.map +1 -0
  440. package/dist/worker/rebuildRowModel.cjs +72 -0
  441. package/dist/worker/rebuildRowModel.cjs.map +1 -0
  442. package/dist/worker/rebuildRowModel.d.cts +9 -0
  443. package/dist/worker/rebuildRowModel.d.ts +9 -0
  444. package/dist/worker/rebuildRowModel.js +72 -0
  445. package/dist/worker/rebuildRowModel.js.map +1 -0
  446. package/dist/worker/serializeRowModel.cjs +53 -0
  447. package/dist/worker/serializeRowModel.cjs.map +1 -0
  448. package/dist/worker/serializeRowModel.js +52 -0
  449. package/dist/worker/serializeRowModel.js.map +1 -0
  450. package/dist/worker/tableWorkerProtocol.cjs +29 -0
  451. package/dist/worker/tableWorkerProtocol.cjs.map +1 -0
  452. package/dist/worker/tableWorkerProtocol.d.cts +88 -0
  453. package/dist/worker/tableWorkerProtocol.d.ts +88 -0
  454. package/dist/worker/tableWorkerProtocol.js +27 -0
  455. package/dist/worker/tableWorkerProtocol.js.map +1 -0
  456. package/package.json +8 -3
  457. package/skills/aggregation/SKILL.md +141 -0
  458. package/skills/api-not-found/SKILL.md +113 -0
  459. package/skills/client-vs-server/SKILL.md +164 -0
  460. package/skills/column-faceting/SKILL.md +97 -0
  461. package/skills/column-filtering/SKILL.md +87 -0
  462. package/skills/column-ordering/SKILL.md +75 -0
  463. package/skills/column-pinning/SKILL.md +89 -0
  464. package/skills/column-resizing/SKILL.md +91 -0
  465. package/skills/column-sizing/SKILL.md +72 -0
  466. package/skills/column-visibility/SKILL.md +75 -0
  467. package/skills/core/SKILL.md +175 -0
  468. package/skills/custom-features/SKILL.md +235 -0
  469. package/skills/expanding/SKILL.md +80 -0
  470. package/skills/global-filtering/SKILL.md +84 -0
  471. package/skills/grouping/SKILL.md +51 -401
  472. package/skills/migrate-v8-to-v9/SKILL.md +274 -416
  473. package/skills/pagination/SKILL.md +37 -344
  474. package/skills/row-pinning/SKILL.md +47 -234
  475. package/skills/row-selection/SKILL.md +75 -302
  476. package/skills/sorting/SKILL.md +45 -303
  477. package/skills/table-features/SKILL.md +159 -0
  478. package/skills/typescript/SKILL.md +126 -0
  479. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  480. package/src/core/columns/constructColumn.ts +6 -0
  481. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  482. package/src/core/columns/coreColumnsFeature.utils.ts +4 -4
  483. package/src/core/coreFeatures.ts +1 -1
  484. package/src/core/headers/buildHeaderGroups.ts +4 -2
  485. package/src/core/headers/coreHeadersFeature.types.ts +12 -12
  486. package/src/core/headers/coreHeadersFeature.utils.ts +7 -8
  487. package/src/core/row-models/coreRowModelsFeature.types.ts +6 -20
  488. package/src/core/row-models/coreRowModelsFeature.utils.ts +8 -8
  489. package/src/core/row-models/createCoreRowModel.ts +7 -6
  490. package/src/core/rows/constructRow.ts +4 -2
  491. package/src/core/rows/coreRowsFeature.ts +21 -0
  492. package/src/core/rows/coreRowsFeature.types.ts +45 -8
  493. package/src/core/rows/coreRowsFeature.utils.ts +93 -5
  494. package/src/core/table/constructTable.ts +44 -6
  495. package/src/core/table/coreTablesFeature.types.ts +45 -20
  496. package/src/core/table/coreTablesFeature.utils.ts +59 -19
  497. package/src/experimental-worker-plugin.ts +22 -0
  498. package/src/features/column-faceting/columnFacetingFeature.types.ts +17 -48
  499. package/src/features/column-faceting/columnFacetingFeature.utils.ts +53 -18
  500. package/src/features/column-faceting/createFacetedMinMaxValues.ts +33 -7
  501. package/src/features/column-faceting/createFacetedRowModel.ts +8 -1
  502. package/src/features/column-faceting/createFacetedUniqueValues.ts +41 -10
  503. package/src/features/column-filtering/columnFilteringFeature.ts +3 -2
  504. package/src/features/column-filtering/columnFilteringFeature.types.ts +117 -41
  505. package/src/features/column-filtering/columnFilteringFeature.utils.ts +37 -23
  506. package/src/features/column-filtering/createFilteredRowModel.ts +28 -17
  507. package/src/features/column-filtering/filterFns.ts +533 -0
  508. package/src/features/column-filtering/filterRowsUtils.ts +3 -2
  509. package/src/features/column-grouping/columnGroupingFeature.ts +3 -21
  510. package/src/features/column-grouping/columnGroupingFeature.types.ts +21 -95
  511. package/src/features/column-grouping/columnGroupingFeature.utils.ts +4 -87
  512. package/src/features/column-grouping/createGroupedRowModel.ts +46 -45
  513. package/src/features/column-ordering/columnOrderingFeature.ts +12 -7
  514. package/src/features/column-ordering/columnOrderingFeature.types.ts +29 -3
  515. package/src/features/column-ordering/columnOrderingFeature.utils.ts +59 -8
  516. package/src/features/column-pinning/columnPinningFeature.ts +76 -59
  517. package/src/features/column-pinning/columnPinningFeature.types.ts +53 -42
  518. package/src/features/column-pinning/columnPinningFeature.utils.ts +184 -170
  519. package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
  520. package/src/features/column-resizing/columnResizingFeature.utils.ts +120 -52
  521. package/src/features/column-sizing/columnSizingFeature.ts +24 -24
  522. package/src/features/column-sizing/columnSizingFeature.types.ts +53 -8
  523. package/src/features/column-sizing/columnSizingFeature.utils.ts +143 -62
  524. package/src/features/column-visibility/columnVisibilityFeature.ts +4 -0
  525. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  526. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +48 -30
  527. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  528. package/src/features/global-filtering/globalFilteringFeature.utils.ts +13 -5
  529. package/src/features/row-aggregation/aggregationFns.ts +345 -0
  530. package/src/features/row-aggregation/rowAggregationFeature.ts +60 -0
  531. package/src/features/row-aggregation/rowAggregationFeature.types.ts +339 -0
  532. package/src/features/row-aggregation/rowAggregationFeature.utils.ts +430 -0
  533. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -23
  534. package/src/features/row-expanding/rowExpandingFeature.utils.ts +38 -13
  535. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  536. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -21
  537. package/src/features/row-pagination/rowPaginationFeature.utils.ts +1 -1
  538. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  539. package/src/features/row-selection/rowSelectionFeature.ts +53 -3
  540. package/src/features/row-selection/rowSelectionFeature.types.ts +54 -10
  541. package/src/features/row-selection/rowSelectionFeature.utils.ts +273 -91
  542. package/src/features/row-sorting/createSortedRowModel.ts +107 -75
  543. package/src/features/row-sorting/rowSortingFeature.types.ts +87 -34
  544. package/src/features/row-sorting/rowSortingFeature.utils.ts +49 -23
  545. package/src/features/row-sorting/sortFns.ts +366 -0
  546. package/src/features/stockFeatures.ts +3 -0
  547. package/src/helpers/columnHelper.ts +4 -4
  548. package/src/helpers/metaHelper.ts +24 -0
  549. package/src/helpers/tableFeatures.ts +37 -5
  550. package/src/index.ts +8 -8
  551. package/src/static-functions.ts +1 -0
  552. package/src/store-reactivity-bindings.ts +1 -1
  553. package/src/types/Cell.ts +4 -2
  554. package/src/types/Column.ts +13 -9
  555. package/src/types/ColumnDef.ts +40 -10
  556. package/src/types/Header.ts +2 -2
  557. package/src/types/HeaderGroup.ts +6 -6
  558. package/src/types/Row.ts +6 -4
  559. package/src/types/RowModel.ts +19 -74
  560. package/src/types/RowModelFns.ts +10 -10
  561. package/src/types/Table.ts +52 -27
  562. package/src/types/TableFeatures.ts +392 -14
  563. package/src/types/TableOptions.ts +67 -14
  564. package/src/types/TableState.ts +15 -1
  565. package/src/types/type-utils.ts +8 -0
  566. package/src/utils.ts +60 -8
  567. package/src/worker/createTableWorker.ts +357 -0
  568. package/src/worker/createWorkerRowModel.ts +121 -0
  569. package/src/worker/initTableWorker.ts +164 -0
  570. package/src/worker/rebuildRowModel.ts +120 -0
  571. package/src/worker/serializeRowModel.ts +80 -0
  572. package/src/worker/tableWorkerProtocol.ts +105 -0
  573. package/dist/fns/aggregationFns.cjs +0 -161
  574. package/dist/fns/aggregationFns.cjs.map +0 -1
  575. package/dist/fns/aggregationFns.d.cts +0 -85
  576. package/dist/fns/aggregationFns.d.ts +0 -85
  577. package/dist/fns/aggregationFns.js +0 -151
  578. package/dist/fns/aggregationFns.js.map +0 -1
  579. package/dist/fns/filterFns.cjs +0 -201
  580. package/dist/fns/filterFns.cjs.map +0 -1
  581. package/dist/fns/filterFns.d.cts +0 -167
  582. package/dist/fns/filterFns.d.ts +0 -167
  583. package/dist/fns/filterFns.js +0 -185
  584. package/dist/fns/filterFns.js.map +0 -1
  585. package/dist/fns/sortFns.cjs +0 -118
  586. package/dist/fns/sortFns.cjs.map +0 -1
  587. package/dist/fns/sortFns.d.cts +0 -65
  588. package/dist/fns/sortFns.d.ts +0 -65
  589. package/dist/fns/sortFns.js +0 -110
  590. package/dist/fns/sortFns.js.map +0 -1
  591. package/skills/column-definitions/SKILL.md +0 -333
  592. package/skills/column-layout/SKILL.md +0 -328
  593. package/skills/column-layout/references/subsystems.md +0 -220
  594. package/skills/customizing-feature-behavior/SKILL.md +0 -416
  595. package/skills/filtering/SKILL.md +0 -357
  596. package/skills/filtering/references/faceting-and-fuzzy.md +0 -191
  597. package/skills/row-expanding/SKILL.md +0 -348
  598. package/skills/setup/SKILL.md +0 -400
  599. package/skills/state-management/SKILL.md +0 -388
  600. package/src/fns/aggregationFns.ts +0 -245
  601. package/src/fns/filterFns.ts +0 -382
  602. package/src/fns/sortFns.ts +0 -217
@@ -3,6 +3,38 @@ const require_constructCell = require('../cells/constructCell.cjs');
3
3
 
4
4
  //#region src/core/rows/coreRowsFeature.utils.ts
5
5
  /**
6
+ * Returns this row's zero-based position in the current pre-pagination row
7
+ * model. Rows outside that model return `-1`.
8
+ */
9
+ function row_getDisplayIndex(row) {
10
+ const rows = row.table.getRowsInDisplayOrder();
11
+ const displayIndex = row._displayIndexCache;
12
+ return rows[displayIndex] === row ? displayIndex : -1;
13
+ }
14
+ /**
15
+ * Returns the rows in the current display order after assigning their
16
+ * zero-based display indexes.
17
+ *
18
+ * When expanded rows bypass pagination, expanded descendants are inserted into
19
+ * the returned order even though they are absent from the pre-pagination row
20
+ * model.
21
+ */
22
+ function table_getRowsInDisplayOrder(table) {
23
+ const rows = table.getPrePaginatedRowModel().rows;
24
+ if (table.options.paginateExpandedRows === false) {
25
+ const displayRows = [];
26
+ const handleRow = (row) => {
27
+ row._displayIndexCache = displayRows.length;
28
+ displayRows.push(row);
29
+ if (row.subRows.length && row.getIsExpanded?.()) row.subRows.forEach(handleRow);
30
+ };
31
+ rows.forEach(handleRow);
32
+ return displayRows;
33
+ }
34
+ for (let i = 0; i < rows.length; i++) rows[i]._displayIndexCache = i;
35
+ return rows;
36
+ }
37
+ /**
6
38
  * Reads and caches this row's value for a column.
7
39
  *
8
40
  * The value is produced by the column accessor. Missing columns or display
@@ -14,9 +46,9 @@ const require_constructCell = require('../cells/constructCell.cjs');
14
46
  * ```
15
47
  */
16
48
  function row_getValue(row, columnId) {
17
- if (row._valuesCache.hasOwnProperty(columnId)) return row._valuesCache[columnId];
49
+ if (require_utils.hasOwn(row._valuesCache, columnId)) return row._valuesCache[columnId];
18
50
  const column = row.table.getColumn(columnId);
19
- if (!(column === null || column === void 0 ? void 0 : column.accessorFn)) return;
51
+ if (!column?.accessorFn) return;
20
52
  row._valuesCache[columnId] = column.accessorFn(row.original, row.index);
21
53
  return row._valuesCache[columnId];
22
54
  }
@@ -32,9 +64,9 @@ function row_getValue(row, columnId) {
32
64
  * ```
33
65
  */
34
66
  function row_getUniqueValues(row, columnId) {
35
- if (row._uniqueValuesCache.hasOwnProperty(columnId)) return row._uniqueValuesCache[columnId];
67
+ if (require_utils.hasOwn(row._uniqueValuesCache, columnId)) return row._uniqueValuesCache[columnId];
36
68
  const column = row.table.getColumn(columnId);
37
- if (!(column === null || column === void 0 ? void 0 : column.accessorFn)) return;
69
+ if (!column?.accessorFn) return;
38
70
  if (!column.columnDef.getUniqueValues) {
39
71
  row._uniqueValuesCache[columnId] = [row.getValue(columnId)];
40
72
  return row._uniqueValuesCache[columnId];
@@ -70,6 +102,16 @@ function row_getLeafRows(row) {
70
102
  return require_utils.flattenBy(row.subRows, (d) => d.subRows);
71
103
  }
72
104
  /**
105
+ * Returns the deepest structural row depth in the core row model.
106
+ * Root rows are depth `0`, their direct sub-rows are depth `1`, and so on.
107
+ */
108
+ function table_getMaxSubRowDepth(table) {
109
+ const rows = table.getCoreRowModel().flatRows;
110
+ let maxDepth = 0;
111
+ for (let i = 0; i < rows.length; i++) maxDepth = Math.max(maxDepth, rows[i].depth);
112
+ return maxDepth;
113
+ }
114
+ /**
73
115
  * Looks up this row's direct parent, if it has one.
74
116
  *
75
117
  * Parent lookup searches the pre-pagination row model so parent relationships
@@ -117,8 +159,18 @@ function row_getParentRows(row) {
117
159
  */
118
160
  function row_getAllCells(row) {
119
161
  const columns = row.table.getAllLeafColumns();
162
+ let cache = row._cellsCache;
163
+ if (!cache) cache = row._cellsCache = /* @__PURE__ */ new WeakMap();
120
164
  const cells = new Array(columns.length);
121
- for (let i = 0; i < columns.length; i++) cells[i] = require_constructCell.constructCell(columns[i], row, row.table);
165
+ for (let i = 0; i < columns.length; i++) {
166
+ const column = columns[i];
167
+ let cell = cache.get(column);
168
+ if (!cell) {
169
+ cell = require_constructCell.constructCell(column, row, row.table);
170
+ cache.set(column, cell);
171
+ }
172
+ cells[i] = cell;
173
+ }
122
174
  return cells;
123
175
  }
124
176
  /**
@@ -132,7 +184,7 @@ function row_getAllCells(row) {
132
184
  * ```
133
185
  */
134
186
  function row_getAllCellsByColumnId(row) {
135
- const result = {};
187
+ const result = require_utils.makeObjectMap();
136
188
  const cells = row.getAllCells();
137
189
  for (let i = 0; i < cells.length; i++) {
138
190
  const cell = cells[i];
@@ -152,8 +204,7 @@ function row_getAllCellsByColumnId(row) {
152
204
  * ```
153
205
  */
154
206
  function table_getRowId(originalRow, table, index, parent) {
155
- var _table$options$getRow, _table$options;
156
- return ((_table$options$getRow = (_table$options = table.options).getRowId) === null || _table$options$getRow === void 0 ? void 0 : _table$options$getRow.call(_table$options, originalRow, index, parent)) ?? `${parent ? [parent.id, index].join(".") : index}`;
207
+ return table.options.getRowId?.(originalRow, index, parent) ?? `${parent ? [parent.id, index].join(".") : index}`;
157
208
  }
158
209
  /**
159
210
  * Looks up a row by id from the current or full row model.
@@ -181,12 +232,15 @@ function table_getRow(table, rowId, searchAll) {
181
232
  //#endregion
182
233
  exports.row_getAllCells = row_getAllCells;
183
234
  exports.row_getAllCellsByColumnId = row_getAllCellsByColumnId;
235
+ exports.row_getDisplayIndex = row_getDisplayIndex;
184
236
  exports.row_getLeafRows = row_getLeafRows;
185
237
  exports.row_getParentRow = row_getParentRow;
186
238
  exports.row_getParentRows = row_getParentRows;
187
239
  exports.row_getUniqueValues = row_getUniqueValues;
188
240
  exports.row_getValue = row_getValue;
189
241
  exports.row_renderValue = row_renderValue;
242
+ exports.table_getMaxSubRowDepth = table_getMaxSubRowDepth;
190
243
  exports.table_getRow = table_getRow;
191
244
  exports.table_getRowId = table_getRowId;
245
+ exports.table_getRowsInDisplayOrder = table_getRowsInDisplayOrder;
192
246
  //# sourceMappingURL=coreRowsFeature.utils.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"coreRowsFeature.utils.cjs","names":["flattenBy","constructCell"],"sources":["../../../src/core/rows/coreRowsFeature.utils.ts"],"sourcesContent":["import { flattenBy } from '../../utils'\nimport { constructCell } from '../cells/constructCell'\nimport type { Table_Internal } from '../../types/Table'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Row } from '../../types/Row'\nimport type { Cell } from '../../types/Cell'\n\n/**\n * Reads and caches this row's value for a column.\n *\n * The value is produced by the column accessor. Missing columns or display\n * columns without an accessor return `undefined`.\n *\n * @example\n * ```ts\n * const firstName = row_getValue(row, 'firstName')\n * ```\n */\nexport function row_getValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = row.table.getColumn(columnId)\n\n if (!column?.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(row.original, row.index)\n\n return row._valuesCache[columnId]\n}\n\n/**\n * Reads and caches the values used by faceting/grouping for a column.\n *\n * If the column defines `getUniqueValues`, that result is used. Otherwise the\n * row's accessor value is wrapped in a single-item array.\n *\n * @example\n * ```ts\n * const values = row_getUniqueValues(row, 'tags')\n * ```\n */\nexport function row_getUniqueValues<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId]\n }\n\n const column = row.table.getColumn(columnId)\n\n if (!column?.accessorFn) {\n return undefined\n }\n\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)]\n return row._uniqueValuesCache[columnId]\n }\n\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(\n row.original,\n row.index,\n )\n\n return row._uniqueValuesCache[columnId]\n}\n\n/**\n * Returns a renderable row value for a column.\n *\n * If the accessor value is nullish, the table's `renderFallbackValue` is used\n * instead.\n *\n * @example\n * ```ts\n * const value = row_renderValue(row, 'firstName')\n * ```\n */\nexport function row_renderValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n return row.getValue(columnId) ?? row.table.options.renderFallbackValue\n}\n\n/**\n * Flattens this row's descendant tree into leaf rows.\n *\n * The row itself is not included; only nested `subRows` are walked.\n *\n * @example\n * ```ts\n * const descendants = row_getLeafRows(row)\n * ```\n */\nexport function row_getLeafRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return flattenBy(row.subRows, (d) => d.subRows)\n}\n\n/**\n * Looks up this row's direct parent, if it has one.\n *\n * Parent lookup searches the pre-pagination row model so parent relationships\n * are available even when the parent is not on the current page.\n *\n * @example\n * ```ts\n * const parent = row_getParentRow(row)\n * ```\n */\nexport function row_getParentRow<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return row.parentId ? row.table.getRow(row.parentId, true) : undefined\n}\n\n/**\n * Collects this row's ancestor chain from root to direct parent.\n *\n * The current row is not included. Rows without a parent return an empty array.\n *\n * @example\n * ```ts\n * const ancestors = row_getParentRows(row)\n * ```\n */\nexport function row_getParentRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const parentRows: Array<Row<TFeatures, TData>> = []\n let currentRow = row\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while (true) {\n const parentRow = currentRow.getParentRow()\n if (!parentRow) break\n parentRows.push(parentRow)\n currentRow = parentRow\n }\n return parentRows.reverse()\n}\n\n/**\n * Constructs one cell for each leaf column in this row.\n *\n * The result follows `table.getAllLeafColumns()` order and includes hidden\n * columns; visibility-specific APIs filter this list later.\n *\n * @example\n * ```ts\n * const cells = row_getAllCells(row)\n * ```\n */\nexport function row_getAllCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const columns = row.table.getAllLeafColumns()\n const cells: Array<Cell<TFeatures, TData, unknown>> = new Array(\n columns.length,\n )\n for (let i = 0; i < columns.length; i++) {\n cells[i] = constructCell(columns[i]!, row, row.table)\n }\n return cells\n}\n\n/**\n * Builds a lookup map of this row's cells keyed by column id.\n *\n * This is the static implementation behind `row.getAllCellsByColumnId()`.\n *\n * @example\n * ```ts\n * const cellsById = row_getAllCellsByColumnId(row)\n * ```\n */\nexport function row_getAllCellsByColumnId<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const result: Record<string, Cell<TFeatures, TData, unknown>> = {}\n const cells = row.getAllCells()\n for (let i = 0; i < cells.length; i++) {\n const cell = cells[i]!\n result[cell.column.id] = cell\n }\n return result\n}\n\n/**\n * Resolves the stable id for a row.\n *\n * `options.getRowId` wins when provided. Otherwise root rows use their index\n * and child rows append their index to the parent id, such as `0.2`.\n *\n * @example\n * ```ts\n * const id = table_getRowId(originalRow, table, index, parentRow)\n * ```\n */\nexport function table_getRowId<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n originalRow: TData,\n table: Table_Internal<TFeatures, TData>,\n index: number,\n parent?: Row<TFeatures, TData>,\n) {\n return (\n table.options.getRowId?.(originalRow, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`\n )\n}\n\n/**\n * Looks up a row by id from the current or full row model.\n *\n * By default this searches `table.getRowModel()`. Passing `searchAll` searches\n * the pre-pagination model first, then falls back to the core model.\n *\n * @example\n * ```ts\n * const row = table_getRow(table, rowId, true)\n * ```\n */\nexport function table_getRow<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n rowId: string,\n searchAll?: boolean,\n): Row<TFeatures, TData> {\n // TODO - simplify this across different row models\n let row = (searchAll ? table.getPrePaginatedRowModel() : table.getRowModel())\n .rowsById[rowId]\n\n if (!row) {\n row = table.getCoreRowModel().rowsById[rowId]\n if (!row) {\n if (process.env.NODE_ENV === 'development') {\n throw new Error(`getRow could not find row with ID: ${rowId}`)\n }\n throw new Error()\n }\n }\n\n return row\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAgB,aAGd,KAA4B,UAAkB;CAC9C,IAAI,IAAI,aAAa,eAAe,QAAQ,GAC1C,OAAO,IAAI,aAAa;CAG1B,MAAM,SAAS,IAAI,MAAM,UAAU,QAAQ;CAE3C,IAAI,kDAAC,OAAQ,aACX;CAGF,IAAI,aAAa,YAAY,OAAO,WAAW,IAAI,UAAU,IAAI,KAAK;CAEtE,OAAO,IAAI,aAAa;AAC1B;;;;;;;;;;;;AAaA,SAAgB,oBAGd,KAA4B,UAAkB;CAC9C,IAAI,IAAI,mBAAmB,eAAe,QAAQ,GAChD,OAAO,IAAI,mBAAmB;CAGhC,MAAM,SAAS,IAAI,MAAM,UAAU,QAAQ;CAE3C,IAAI,kDAAC,OAAQ,aACX;CAGF,IAAI,CAAC,OAAO,UAAU,iBAAiB;EACrC,IAAI,mBAAmB,YAAY,CAAC,IAAI,SAAS,QAAQ,CAAC;EAC1D,OAAO,IAAI,mBAAmB;CAChC;CAEA,IAAI,mBAAmB,YAAY,OAAO,UAAU,gBAClD,IAAI,UACJ,IAAI,KACN;CAEA,OAAO,IAAI,mBAAmB;AAChC;;;;;;;;;;;;AAaA,SAAgB,gBAGd,KAA4B,UAAkB;CAC9C,OAAO,IAAI,SAAS,QAAQ,KAAK,IAAI,MAAM,QAAQ;AACrD;;;;;;;;;;;AAYA,SAAgB,gBAGd,KAA0D;CAC1D,OAAOA,wBAAU,IAAI,UAAU,MAAM,EAAE,OAAO;AAChD;;;;;;;;;;;;AAaA,SAAgB,iBAGd,KAA4B;CAC5B,OAAO,IAAI,WAAW,IAAI,MAAM,OAAO,IAAI,UAAU,IAAI,IAAI;AAC/D;;;;;;;;;;;AAYA,SAAgB,kBAGd,KAA4B;CAC5B,MAAM,aAA2C,CAAC;CAClD,IAAI,aAAa;CAEjB,OAAO,MAAM;EACX,MAAM,YAAY,WAAW,aAAa;EAC1C,IAAI,CAAC,WAAW;EAChB,WAAW,KAAK,SAAS;EACzB,aAAa;CACf;CACA,OAAO,WAAW,QAAQ;AAC5B;;;;;;;;;;;;AAaA,SAAgB,gBAGd,KAAoE;CACpE,MAAM,UAAU,IAAI,MAAM,kBAAkB;CAC5C,MAAM,QAAgD,IAAI,MACxD,QAAQ,MACV;CACA,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAClC,MAAM,KAAKC,oCAAc,QAAQ,IAAK,KAAK,IAAI,KAAK;CAEtD,OAAO;AACT;;;;;;;;;;;AAYA,SAAgB,0BAGd,KAA4B;CAC5B,MAAM,SAA0D,CAAC;CACjE,MAAM,QAAQ,IAAI,YAAY;CAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;EACrC,MAAM,OAAO,MAAM;EACnB,OAAO,KAAK,OAAO,MAAM;CAC3B;CACA,OAAO;AACT;;;;;;;;;;;;AAaA,SAAgB,eAId,aACA,OACA,OACA,QACA;;CACA,mDACE,MAAM,SAAQ,6GAAW,aAAa,OAAO,MAAM,MACnD,GAAG,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI;AAE/C;;;;;;;;;;;;AAaA,SAAgB,aAId,OACA,OACA,WACuB;CAEvB,IAAI,OAAO,YAAY,MAAM,wBAAwB,IAAI,MAAM,YAAY,EAAC,CACzE,SAAS;CAEZ,IAAI,CAAC,KAAK;EACR,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS;EACvC,IAAI,CAAC,KAAK;GACR,IAAI,QAAQ,IAAI,aAAa,eAC3B,MAAM,IAAI,MAAM,sCAAsC,OAAO;GAE/D,MAAM,IAAI,MAAM;EAClB;CACF;CAEA,OAAO;AACT"}
1
+ {"version":3,"file":"coreRowsFeature.utils.cjs","names":["hasOwn","flattenBy","constructCell","makeObjectMap"],"sources":["../../../src/core/rows/coreRowsFeature.utils.ts"],"sourcesContent":["import { flattenBy, hasOwn, makeObjectMap } from '../../utils'\nimport { constructCell } from '../cells/constructCell'\nimport type { Table_Internal } from '../../types/Table'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Row } from '../../types/Row'\nimport type { Cell } from '../../types/Cell'\nimport type { Row_RowExpanding } from '../../features/row-expanding/rowExpandingFeature.types'\n\n/**\n * Returns this row's zero-based position in the current pre-pagination row\n * model. Rows outside that model return `-1`.\n */\nexport function row_getDisplayIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const rows = row.table.getRowsInDisplayOrder()\n const displayIndex = row._displayIndexCache\n\n return rows[displayIndex] === row ? displayIndex : -1\n}\n\n/**\n * Returns the rows in the current display order after assigning their\n * zero-based display indexes.\n *\n * When expanded rows bypass pagination, expanded descendants are inserted into\n * the returned order even though they are absent from the pre-pagination row\n * model.\n */\nexport function table_getRowsInDisplayOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rows = table.getPrePaginatedRowModel().rows\n\n if (table.options.paginateExpandedRows === false) {\n const displayRows: Array<Row<TFeatures, TData>> = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n row._displayIndexCache = displayRows.length\n displayRows.push(row)\n\n if (\n row.subRows.length &&\n (\n row as Row<TFeatures, TData> & Partial<Row_RowExpanding>\n ).getIsExpanded?.()\n ) {\n row.subRows.forEach(handleRow)\n }\n }\n\n rows.forEach(handleRow)\n\n return displayRows\n }\n\n for (let i = 0; i < rows.length; i++) {\n rows[i]!._displayIndexCache = i\n }\n\n return rows\n}\n\n/**\n * Reads and caches this row's value for a column.\n *\n * The value is produced by the column accessor. Missing columns or display\n * columns without an accessor return `undefined`.\n *\n * @example\n * ```ts\n * const firstName = row_getValue(row, 'firstName')\n * ```\n */\nexport function row_getValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n if (hasOwn(row._valuesCache, columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = row.table.getColumn(columnId)\n\n if (!column?.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(row.original, row.index)\n\n return row._valuesCache[columnId]\n}\n\n/**\n * Reads and caches the values used by faceting/grouping for a column.\n *\n * If the column defines `getUniqueValues`, that result is used. Otherwise the\n * row's accessor value is wrapped in a single-item array.\n *\n * @example\n * ```ts\n * const values = row_getUniqueValues(row, 'tags')\n * ```\n */\nexport function row_getUniqueValues<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n if (hasOwn(row._uniqueValuesCache, columnId)) {\n return row._uniqueValuesCache[columnId]\n }\n\n const column = row.table.getColumn(columnId)\n\n if (!column?.accessorFn) {\n return undefined\n }\n\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)]\n return row._uniqueValuesCache[columnId]\n }\n\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(\n row.original,\n row.index,\n )\n\n return row._uniqueValuesCache[columnId]\n}\n\n/**\n * Returns a renderable row value for a column.\n *\n * If the accessor value is nullish, the table's `renderFallbackValue` is used\n * instead.\n *\n * @example\n * ```ts\n * const value = row_renderValue(row, 'firstName')\n * ```\n */\nexport function row_renderValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n return row.getValue(columnId) ?? row.table.options.renderFallbackValue\n}\n\n/**\n * Flattens this row's descendant tree into leaf rows.\n *\n * The row itself is not included; only nested `subRows` are walked.\n *\n * @example\n * ```ts\n * const descendants = row_getLeafRows(row)\n * ```\n */\nexport function row_getLeafRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return flattenBy(row.subRows, (d) => d.subRows)\n}\n\n/**\n * Returns the deepest structural row depth in the core row model.\n * Root rows are depth `0`, their direct sub-rows are depth `1`, and so on.\n */\nexport function table_getMaxSubRowDepth<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): number {\n const rows = table.getCoreRowModel().flatRows\n let maxDepth = 0\n\n for (let i = 0; i < rows.length; i++) {\n maxDepth = Math.max(maxDepth, rows[i]!.depth)\n }\n\n return maxDepth\n}\n\n/**\n * Looks up this row's direct parent, if it has one.\n *\n * Parent lookup searches the pre-pagination row model so parent relationships\n * are available even when the parent is not on the current page.\n *\n * @example\n * ```ts\n * const parent = row_getParentRow(row)\n * ```\n */\nexport function row_getParentRow<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return row.parentId ? row.table.getRow(row.parentId, true) : undefined\n}\n\n/**\n * Collects this row's ancestor chain from root to direct parent.\n *\n * The current row is not included. Rows without a parent return an empty array.\n *\n * @example\n * ```ts\n * const ancestors = row_getParentRows(row)\n * ```\n */\nexport function row_getParentRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const parentRows: Array<Row<TFeatures, TData>> = []\n let currentRow = row\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while (true) {\n const parentRow = currentRow.getParentRow()\n if (!parentRow) break\n parentRows.push(parentRow)\n currentRow = parentRow\n }\n return parentRows.reverse()\n}\n\n/**\n * Constructs one cell for each leaf column in this row.\n *\n * The result follows `table.getAllLeafColumns()` order and includes hidden\n * columns; visibility-specific APIs filter this list later.\n *\n * @example\n * ```ts\n * const cells = row_getAllCells(row)\n * ```\n */\nexport function row_getAllCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const columns = row.table.getAllLeafColumns()\n // WeakMap so cells keyed by replaced column instances can be collected;\n // rows are memoized on data only and outlive column generations\n let cache = row._cellsCache\n if (!cache) {\n cache = row._cellsCache = new WeakMap()\n }\n const cells: Array<Cell<TFeatures, TData, unknown>> = new Array(\n columns.length,\n )\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n let cell = cache.get(column)\n if (!cell) {\n cell = constructCell(column, row, row.table)\n cache.set(column, cell)\n }\n cells[i] = cell\n }\n return cells\n}\n\n/**\n * Builds a lookup map of this row's cells keyed by column id.\n *\n * This is the static implementation behind `row.getAllCellsByColumnId()`.\n *\n * @example\n * ```ts\n * const cellsById = row_getAllCellsByColumnId(row)\n * ```\n */\nexport function row_getAllCellsByColumnId<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const result = makeObjectMap<Cell<TFeatures, TData, unknown>>()\n const cells = row.getAllCells()\n for (let i = 0; i < cells.length; i++) {\n const cell = cells[i]!\n result[cell.column.id] = cell\n }\n return result\n}\n\n/**\n * Resolves the stable id for a row.\n *\n * `options.getRowId` wins when provided. Otherwise root rows use their index\n * and child rows append their index to the parent id, such as `0.2`.\n *\n * @example\n * ```ts\n * const id = table_getRowId(originalRow, table, index, parentRow)\n * ```\n */\nexport function table_getRowId<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n originalRow: TData,\n table: Table_Internal<TFeatures, TData>,\n index: number,\n parent?: Row<TFeatures, TData>,\n) {\n return (\n table.options.getRowId?.(originalRow, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`\n )\n}\n\n/**\n * Looks up a row by id from the current or full row model.\n *\n * By default this searches `table.getRowModel()`. Passing `searchAll` searches\n * the pre-pagination model first, then falls back to the core model.\n *\n * @example\n * ```ts\n * const row = table_getRow(table, rowId, true)\n * ```\n */\nexport function table_getRow<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n rowId: string,\n searchAll?: boolean,\n): Row<TFeatures, TData> {\n // TODO - simplify this across different row models\n let row = (searchAll ? table.getPrePaginatedRowModel() : table.getRowModel())\n .rowsById[rowId]\n\n if (!row) {\n row = table.getCoreRowModel().rowsById[rowId]\n if (!row) {\n if (process.env.NODE_ENV === 'development') {\n throw new Error(`getRow could not find row with ID: ${rowId}`)\n }\n throw new Error()\n }\n }\n\n return row\n}\n"],"mappings":"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"}
@@ -1,10 +1,24 @@
1
1
  import { RowData } from "../../types/type-utils.cjs";
2
+ import { Cell } from "../../types/Cell.cjs";
2
3
  import { Row } from "../../types/Row.cjs";
4
+ import { Table } from "../../types/Table.cjs";
3
5
  import { TableFeatures } from "../../types/TableFeatures.cjs";
4
- import { Table_Internal } from "../../types/Table.cjs";
5
- import { Cell } from "../../types/Cell.cjs";
6
6
 
7
7
  //#region src/core/rows/coreRowsFeature.utils.d.ts
8
+ /**
9
+ * Returns this row's zero-based position in the current pre-pagination row
10
+ * model. Rows outside that model return `-1`.
11
+ */
12
+ declare function row_getDisplayIndex<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): number;
13
+ /**
14
+ * Returns the rows in the current display order after assigning their
15
+ * zero-based display indexes.
16
+ *
17
+ * When expanded rows bypass pagination, expanded descendants are inserted into
18
+ * the returned order even though they are absent from the pre-pagination row
19
+ * model.
20
+ */
21
+ declare function table_getRowsInDisplayOrder<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Row<TFeatures, TData>[];
8
22
  /**
9
23
  * Reads and caches this row's value for a column.
10
24
  *
@@ -52,6 +66,11 @@ declare function row_renderValue<TFeatures extends TableFeatures, TData extends
52
66
  * ```
53
67
  */
54
68
  declare function row_getLeafRows<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): Array<Row<TFeatures, TData>>;
69
+ /**
70
+ * Returns the deepest structural row depth in the core row model.
71
+ * Root rows are depth `0`, their direct sub-rows are depth `1`, and so on.
72
+ */
73
+ declare function table_getMaxSubRowDepth<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): number;
55
74
  /**
56
75
  * Looks up this row's direct parent, if it has one.
57
76
  *
@@ -109,7 +128,7 @@ declare function row_getAllCellsByColumnId<TFeatures extends TableFeatures, TDat
109
128
  * const id = table_getRowId(originalRow, table, index, parentRow)
110
129
  * ```
111
130
  */
112
- declare function table_getRowId<TFeatures extends TableFeatures, TData extends RowData>(originalRow: TData, table: Table_Internal<TFeatures, TData>, index: number, parent?: Row<TFeatures, TData>): string;
131
+ declare function table_getRowId<TFeatures extends TableFeatures, TData extends RowData>(originalRow: TData, table: Table<TFeatures, TData>, index: number, parent?: Row<TFeatures, TData>): string;
113
132
  /**
114
133
  * Looks up a row by id from the current or full row model.
115
134
  *
@@ -121,7 +140,7 @@ declare function table_getRowId<TFeatures extends TableFeatures, TData extends R
121
140
  * const row = table_getRow(table, rowId, true)
122
141
  * ```
123
142
  */
124
- declare function table_getRow<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, rowId: string, searchAll?: boolean): Row<TFeatures, TData>;
143
+ declare function table_getRow<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, rowId: string, searchAll?: boolean): Row<TFeatures, TData>;
125
144
  //#endregion
126
- export { row_getAllCells, row_getAllCellsByColumnId, row_getLeafRows, row_getParentRow, row_getParentRows, row_getUniqueValues, row_getValue, row_renderValue, table_getRow, table_getRowId };
145
+ export { row_getAllCells, row_getAllCellsByColumnId, row_getDisplayIndex, row_getLeafRows, row_getParentRow, row_getParentRows, row_getUniqueValues, row_getValue, row_renderValue, table_getMaxSubRowDepth, table_getRow, table_getRowId, table_getRowsInDisplayOrder };
127
146
  //# sourceMappingURL=coreRowsFeature.utils.d.cts.map
@@ -1,10 +1,24 @@
1
1
  import { RowData } from "../../types/type-utils.js";
2
+ import { Cell } from "../../types/Cell.js";
2
3
  import { Row } from "../../types/Row.js";
4
+ import { Table } from "../../types/Table.js";
3
5
  import { TableFeatures } from "../../types/TableFeatures.js";
4
- import { Table_Internal } from "../../types/Table.js";
5
- import { Cell } from "../../types/Cell.js";
6
6
 
7
7
  //#region src/core/rows/coreRowsFeature.utils.d.ts
8
+ /**
9
+ * Returns this row's zero-based position in the current pre-pagination row
10
+ * model. Rows outside that model return `-1`.
11
+ */
12
+ declare function row_getDisplayIndex<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): number;
13
+ /**
14
+ * Returns the rows in the current display order after assigning their
15
+ * zero-based display indexes.
16
+ *
17
+ * When expanded rows bypass pagination, expanded descendants are inserted into
18
+ * the returned order even though they are absent from the pre-pagination row
19
+ * model.
20
+ */
21
+ declare function table_getRowsInDisplayOrder<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): Row<TFeatures, TData>[];
8
22
  /**
9
23
  * Reads and caches this row's value for a column.
10
24
  *
@@ -52,6 +66,11 @@ declare function row_renderValue<TFeatures extends TableFeatures, TData extends
52
66
  * ```
53
67
  */
54
68
  declare function row_getLeafRows<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): Array<Row<TFeatures, TData>>;
69
+ /**
70
+ * Returns the deepest structural row depth in the core row model.
71
+ * Root rows are depth `0`, their direct sub-rows are depth `1`, and so on.
72
+ */
73
+ declare function table_getMaxSubRowDepth<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>): number;
55
74
  /**
56
75
  * Looks up this row's direct parent, if it has one.
57
76
  *
@@ -109,7 +128,7 @@ declare function row_getAllCellsByColumnId<TFeatures extends TableFeatures, TDat
109
128
  * const id = table_getRowId(originalRow, table, index, parentRow)
110
129
  * ```
111
130
  */
112
- declare function table_getRowId<TFeatures extends TableFeatures, TData extends RowData>(originalRow: TData, table: Table_Internal<TFeatures, TData>, index: number, parent?: Row<TFeatures, TData>): string;
131
+ declare function table_getRowId<TFeatures extends TableFeatures, TData extends RowData>(originalRow: TData, table: Table<TFeatures, TData>, index: number, parent?: Row<TFeatures, TData>): string;
113
132
  /**
114
133
  * Looks up a row by id from the current or full row model.
115
134
  *
@@ -121,7 +140,7 @@ declare function table_getRowId<TFeatures extends TableFeatures, TData extends R
121
140
  * const row = table_getRow(table, rowId, true)
122
141
  * ```
123
142
  */
124
- declare function table_getRow<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, rowId: string, searchAll?: boolean): Row<TFeatures, TData>;
143
+ declare function table_getRow<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, rowId: string, searchAll?: boolean): Row<TFeatures, TData>;
125
144
  //#endregion
126
- export { row_getAllCells, row_getAllCellsByColumnId, row_getLeafRows, row_getParentRow, row_getParentRows, row_getUniqueValues, row_getValue, row_renderValue, table_getRow, table_getRowId };
145
+ export { row_getAllCells, row_getAllCellsByColumnId, row_getDisplayIndex, row_getLeafRows, row_getParentRow, row_getParentRows, row_getUniqueValues, row_getValue, row_renderValue, table_getMaxSubRowDepth, table_getRow, table_getRowId, table_getRowsInDisplayOrder };
127
146
  //# sourceMappingURL=coreRowsFeature.utils.d.ts.map
@@ -1,8 +1,40 @@
1
- import { flattenBy } from "../../utils.js";
1
+ import { flattenBy, hasOwn, makeObjectMap } from "../../utils.js";
2
2
  import { constructCell } from "../cells/constructCell.js";
3
3
 
4
4
  //#region src/core/rows/coreRowsFeature.utils.ts
5
5
  /**
6
+ * Returns this row's zero-based position in the current pre-pagination row
7
+ * model. Rows outside that model return `-1`.
8
+ */
9
+ function row_getDisplayIndex(row) {
10
+ const rows = row.table.getRowsInDisplayOrder();
11
+ const displayIndex = row._displayIndexCache;
12
+ return rows[displayIndex] === row ? displayIndex : -1;
13
+ }
14
+ /**
15
+ * Returns the rows in the current display order after assigning their
16
+ * zero-based display indexes.
17
+ *
18
+ * When expanded rows bypass pagination, expanded descendants are inserted into
19
+ * the returned order even though they are absent from the pre-pagination row
20
+ * model.
21
+ */
22
+ function table_getRowsInDisplayOrder(table) {
23
+ const rows = table.getPrePaginatedRowModel().rows;
24
+ if (table.options.paginateExpandedRows === false) {
25
+ const displayRows = [];
26
+ const handleRow = (row) => {
27
+ row._displayIndexCache = displayRows.length;
28
+ displayRows.push(row);
29
+ if (row.subRows.length && row.getIsExpanded?.()) row.subRows.forEach(handleRow);
30
+ };
31
+ rows.forEach(handleRow);
32
+ return displayRows;
33
+ }
34
+ for (let i = 0; i < rows.length; i++) rows[i]._displayIndexCache = i;
35
+ return rows;
36
+ }
37
+ /**
6
38
  * Reads and caches this row's value for a column.
7
39
  *
8
40
  * The value is produced by the column accessor. Missing columns or display
@@ -14,9 +46,9 @@ import { constructCell } from "../cells/constructCell.js";
14
46
  * ```
15
47
  */
16
48
  function row_getValue(row, columnId) {
17
- if (row._valuesCache.hasOwnProperty(columnId)) return row._valuesCache[columnId];
49
+ if (hasOwn(row._valuesCache, columnId)) return row._valuesCache[columnId];
18
50
  const column = row.table.getColumn(columnId);
19
- if (!(column === null || column === void 0 ? void 0 : column.accessorFn)) return;
51
+ if (!column?.accessorFn) return;
20
52
  row._valuesCache[columnId] = column.accessorFn(row.original, row.index);
21
53
  return row._valuesCache[columnId];
22
54
  }
@@ -32,9 +64,9 @@ function row_getValue(row, columnId) {
32
64
  * ```
33
65
  */
34
66
  function row_getUniqueValues(row, columnId) {
35
- if (row._uniqueValuesCache.hasOwnProperty(columnId)) return row._uniqueValuesCache[columnId];
67
+ if (hasOwn(row._uniqueValuesCache, columnId)) return row._uniqueValuesCache[columnId];
36
68
  const column = row.table.getColumn(columnId);
37
- if (!(column === null || column === void 0 ? void 0 : column.accessorFn)) return;
69
+ if (!column?.accessorFn) return;
38
70
  if (!column.columnDef.getUniqueValues) {
39
71
  row._uniqueValuesCache[columnId] = [row.getValue(columnId)];
40
72
  return row._uniqueValuesCache[columnId];
@@ -70,6 +102,16 @@ function row_getLeafRows(row) {
70
102
  return flattenBy(row.subRows, (d) => d.subRows);
71
103
  }
72
104
  /**
105
+ * Returns the deepest structural row depth in the core row model.
106
+ * Root rows are depth `0`, their direct sub-rows are depth `1`, and so on.
107
+ */
108
+ function table_getMaxSubRowDepth(table) {
109
+ const rows = table.getCoreRowModel().flatRows;
110
+ let maxDepth = 0;
111
+ for (let i = 0; i < rows.length; i++) maxDepth = Math.max(maxDepth, rows[i].depth);
112
+ return maxDepth;
113
+ }
114
+ /**
73
115
  * Looks up this row's direct parent, if it has one.
74
116
  *
75
117
  * Parent lookup searches the pre-pagination row model so parent relationships
@@ -117,8 +159,18 @@ function row_getParentRows(row) {
117
159
  */
118
160
  function row_getAllCells(row) {
119
161
  const columns = row.table.getAllLeafColumns();
162
+ let cache = row._cellsCache;
163
+ if (!cache) cache = row._cellsCache = /* @__PURE__ */ new WeakMap();
120
164
  const cells = new Array(columns.length);
121
- for (let i = 0; i < columns.length; i++) cells[i] = constructCell(columns[i], row, row.table);
165
+ for (let i = 0; i < columns.length; i++) {
166
+ const column = columns[i];
167
+ let cell = cache.get(column);
168
+ if (!cell) {
169
+ cell = constructCell(column, row, row.table);
170
+ cache.set(column, cell);
171
+ }
172
+ cells[i] = cell;
173
+ }
122
174
  return cells;
123
175
  }
124
176
  /**
@@ -132,7 +184,7 @@ function row_getAllCells(row) {
132
184
  * ```
133
185
  */
134
186
  function row_getAllCellsByColumnId(row) {
135
- const result = {};
187
+ const result = makeObjectMap();
136
188
  const cells = row.getAllCells();
137
189
  for (let i = 0; i < cells.length; i++) {
138
190
  const cell = cells[i];
@@ -152,8 +204,7 @@ function row_getAllCellsByColumnId(row) {
152
204
  * ```
153
205
  */
154
206
  function table_getRowId(originalRow, table, index, parent) {
155
- var _table$options$getRow, _table$options;
156
- return ((_table$options$getRow = (_table$options = table.options).getRowId) === null || _table$options$getRow === void 0 ? void 0 : _table$options$getRow.call(_table$options, originalRow, index, parent)) ?? `${parent ? [parent.id, index].join(".") : index}`;
207
+ return table.options.getRowId?.(originalRow, index, parent) ?? `${parent ? [parent.id, index].join(".") : index}`;
157
208
  }
158
209
  /**
159
210
  * Looks up a row by id from the current or full row model.
@@ -179,5 +230,5 @@ function table_getRow(table, rowId, searchAll) {
179
230
  }
180
231
 
181
232
  //#endregion
182
- export { row_getAllCells, row_getAllCellsByColumnId, row_getLeafRows, row_getParentRow, row_getParentRows, row_getUniqueValues, row_getValue, row_renderValue, table_getRow, table_getRowId };
233
+ export { row_getAllCells, row_getAllCellsByColumnId, row_getDisplayIndex, row_getLeafRows, row_getParentRow, row_getParentRows, row_getUniqueValues, row_getValue, row_renderValue, table_getMaxSubRowDepth, table_getRow, table_getRowId, table_getRowsInDisplayOrder };
183
234
  //# sourceMappingURL=coreRowsFeature.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coreRowsFeature.utils.js","names":[],"sources":["../../../src/core/rows/coreRowsFeature.utils.ts"],"sourcesContent":["import { flattenBy } from '../../utils'\nimport { constructCell } from '../cells/constructCell'\nimport type { Table_Internal } from '../../types/Table'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Row } from '../../types/Row'\nimport type { Cell } from '../../types/Cell'\n\n/**\n * Reads and caches this row's value for a column.\n *\n * The value is produced by the column accessor. Missing columns or display\n * columns without an accessor return `undefined`.\n *\n * @example\n * ```ts\n * const firstName = row_getValue(row, 'firstName')\n * ```\n */\nexport function row_getValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = row.table.getColumn(columnId)\n\n if (!column?.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(row.original, row.index)\n\n return row._valuesCache[columnId]\n}\n\n/**\n * Reads and caches the values used by faceting/grouping for a column.\n *\n * If the column defines `getUniqueValues`, that result is used. Otherwise the\n * row's accessor value is wrapped in a single-item array.\n *\n * @example\n * ```ts\n * const values = row_getUniqueValues(row, 'tags')\n * ```\n */\nexport function row_getUniqueValues<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId]\n }\n\n const column = row.table.getColumn(columnId)\n\n if (!column?.accessorFn) {\n return undefined\n }\n\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)]\n return row._uniqueValuesCache[columnId]\n }\n\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(\n row.original,\n row.index,\n )\n\n return row._uniqueValuesCache[columnId]\n}\n\n/**\n * Returns a renderable row value for a column.\n *\n * If the accessor value is nullish, the table's `renderFallbackValue` is used\n * instead.\n *\n * @example\n * ```ts\n * const value = row_renderValue(row, 'firstName')\n * ```\n */\nexport function row_renderValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n return row.getValue(columnId) ?? row.table.options.renderFallbackValue\n}\n\n/**\n * Flattens this row's descendant tree into leaf rows.\n *\n * The row itself is not included; only nested `subRows` are walked.\n *\n * @example\n * ```ts\n * const descendants = row_getLeafRows(row)\n * ```\n */\nexport function row_getLeafRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return flattenBy(row.subRows, (d) => d.subRows)\n}\n\n/**\n * Looks up this row's direct parent, if it has one.\n *\n * Parent lookup searches the pre-pagination row model so parent relationships\n * are available even when the parent is not on the current page.\n *\n * @example\n * ```ts\n * const parent = row_getParentRow(row)\n * ```\n */\nexport function row_getParentRow<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return row.parentId ? row.table.getRow(row.parentId, true) : undefined\n}\n\n/**\n * Collects this row's ancestor chain from root to direct parent.\n *\n * The current row is not included. Rows without a parent return an empty array.\n *\n * @example\n * ```ts\n * const ancestors = row_getParentRows(row)\n * ```\n */\nexport function row_getParentRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const parentRows: Array<Row<TFeatures, TData>> = []\n let currentRow = row\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while (true) {\n const parentRow = currentRow.getParentRow()\n if (!parentRow) break\n parentRows.push(parentRow)\n currentRow = parentRow\n }\n return parentRows.reverse()\n}\n\n/**\n * Constructs one cell for each leaf column in this row.\n *\n * The result follows `table.getAllLeafColumns()` order and includes hidden\n * columns; visibility-specific APIs filter this list later.\n *\n * @example\n * ```ts\n * const cells = row_getAllCells(row)\n * ```\n */\nexport function row_getAllCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const columns = row.table.getAllLeafColumns()\n const cells: Array<Cell<TFeatures, TData, unknown>> = new Array(\n columns.length,\n )\n for (let i = 0; i < columns.length; i++) {\n cells[i] = constructCell(columns[i]!, row, row.table)\n }\n return cells\n}\n\n/**\n * Builds a lookup map of this row's cells keyed by column id.\n *\n * This is the static implementation behind `row.getAllCellsByColumnId()`.\n *\n * @example\n * ```ts\n * const cellsById = row_getAllCellsByColumnId(row)\n * ```\n */\nexport function row_getAllCellsByColumnId<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const result: Record<string, Cell<TFeatures, TData, unknown>> = {}\n const cells = row.getAllCells()\n for (let i = 0; i < cells.length; i++) {\n const cell = cells[i]!\n result[cell.column.id] = cell\n }\n return result\n}\n\n/**\n * Resolves the stable id for a row.\n *\n * `options.getRowId` wins when provided. Otherwise root rows use their index\n * and child rows append their index to the parent id, such as `0.2`.\n *\n * @example\n * ```ts\n * const id = table_getRowId(originalRow, table, index, parentRow)\n * ```\n */\nexport function table_getRowId<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n originalRow: TData,\n table: Table_Internal<TFeatures, TData>,\n index: number,\n parent?: Row<TFeatures, TData>,\n) {\n return (\n table.options.getRowId?.(originalRow, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`\n )\n}\n\n/**\n * Looks up a row by id from the current or full row model.\n *\n * By default this searches `table.getRowModel()`. Passing `searchAll` searches\n * the pre-pagination model first, then falls back to the core model.\n *\n * @example\n * ```ts\n * const row = table_getRow(table, rowId, true)\n * ```\n */\nexport function table_getRow<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n rowId: string,\n searchAll?: boolean,\n): Row<TFeatures, TData> {\n // TODO - simplify this across different row models\n let row = (searchAll ? table.getPrePaginatedRowModel() : table.getRowModel())\n .rowsById[rowId]\n\n if (!row) {\n row = table.getCoreRowModel().rowsById[rowId]\n if (!row) {\n if (process.env.NODE_ENV === 'development') {\n throw new Error(`getRow could not find row with ID: ${rowId}`)\n }\n throw new Error()\n }\n }\n\n return row\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAgB,aAGd,KAA4B,UAAkB;CAC9C,IAAI,IAAI,aAAa,eAAe,QAAQ,GAC1C,OAAO,IAAI,aAAa;CAG1B,MAAM,SAAS,IAAI,MAAM,UAAU,QAAQ;CAE3C,IAAI,kDAAC,OAAQ,aACX;CAGF,IAAI,aAAa,YAAY,OAAO,WAAW,IAAI,UAAU,IAAI,KAAK;CAEtE,OAAO,IAAI,aAAa;AAC1B;;;;;;;;;;;;AAaA,SAAgB,oBAGd,KAA4B,UAAkB;CAC9C,IAAI,IAAI,mBAAmB,eAAe,QAAQ,GAChD,OAAO,IAAI,mBAAmB;CAGhC,MAAM,SAAS,IAAI,MAAM,UAAU,QAAQ;CAE3C,IAAI,kDAAC,OAAQ,aACX;CAGF,IAAI,CAAC,OAAO,UAAU,iBAAiB;EACrC,IAAI,mBAAmB,YAAY,CAAC,IAAI,SAAS,QAAQ,CAAC;EAC1D,OAAO,IAAI,mBAAmB;CAChC;CAEA,IAAI,mBAAmB,YAAY,OAAO,UAAU,gBAClD,IAAI,UACJ,IAAI,KACN;CAEA,OAAO,IAAI,mBAAmB;AAChC;;;;;;;;;;;;AAaA,SAAgB,gBAGd,KAA4B,UAAkB;CAC9C,OAAO,IAAI,SAAS,QAAQ,KAAK,IAAI,MAAM,QAAQ;AACrD;;;;;;;;;;;AAYA,SAAgB,gBAGd,KAA0D;CAC1D,OAAO,UAAU,IAAI,UAAU,MAAM,EAAE,OAAO;AAChD;;;;;;;;;;;;AAaA,SAAgB,iBAGd,KAA4B;CAC5B,OAAO,IAAI,WAAW,IAAI,MAAM,OAAO,IAAI,UAAU,IAAI,IAAI;AAC/D;;;;;;;;;;;AAYA,SAAgB,kBAGd,KAA4B;CAC5B,MAAM,aAA2C,CAAC;CAClD,IAAI,aAAa;CAEjB,OAAO,MAAM;EACX,MAAM,YAAY,WAAW,aAAa;EAC1C,IAAI,CAAC,WAAW;EAChB,WAAW,KAAK,SAAS;EACzB,aAAa;CACf;CACA,OAAO,WAAW,QAAQ;AAC5B;;;;;;;;;;;;AAaA,SAAgB,gBAGd,KAAoE;CACpE,MAAM,UAAU,IAAI,MAAM,kBAAkB;CAC5C,MAAM,QAAgD,IAAI,MACxD,QAAQ,MACV;CACA,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAClC,MAAM,KAAK,cAAc,QAAQ,IAAK,KAAK,IAAI,KAAK;CAEtD,OAAO;AACT;;;;;;;;;;;AAYA,SAAgB,0BAGd,KAA4B;CAC5B,MAAM,SAA0D,CAAC;CACjE,MAAM,QAAQ,IAAI,YAAY;CAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;EACrC,MAAM,OAAO,MAAM;EACnB,OAAO,KAAK,OAAO,MAAM;CAC3B;CACA,OAAO;AACT;;;;;;;;;;;;AAaA,SAAgB,eAId,aACA,OACA,OACA,QACA;;CACA,mDACE,MAAM,SAAQ,6GAAW,aAAa,OAAO,MAAM,MACnD,GAAG,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI;AAE/C;;;;;;;;;;;;AAaA,SAAgB,aAId,OACA,OACA,WACuB;CAEvB,IAAI,OAAO,YAAY,MAAM,wBAAwB,IAAI,MAAM,YAAY,EAAC,CACzE,SAAS;CAEZ,IAAI,CAAC,KAAK;EACR,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS;EACvC,IAAI,CAAC,KAAK;GACR,IAAI,QAAQ,IAAI,aAAa,eAC3B,MAAM,IAAI,MAAM,sCAAsC,OAAO;GAE/D,MAAM,IAAI,MAAM;EAClB;CACF;CAEA,OAAO;AACT"}
1
+ {"version":3,"file":"coreRowsFeature.utils.js","names":[],"sources":["../../../src/core/rows/coreRowsFeature.utils.ts"],"sourcesContent":["import { flattenBy, hasOwn, makeObjectMap } from '../../utils'\nimport { constructCell } from '../cells/constructCell'\nimport type { Table_Internal } from '../../types/Table'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Row } from '../../types/Row'\nimport type { Cell } from '../../types/Cell'\nimport type { Row_RowExpanding } from '../../features/row-expanding/rowExpandingFeature.types'\n\n/**\n * Returns this row's zero-based position in the current pre-pagination row\n * model. Rows outside that model return `-1`.\n */\nexport function row_getDisplayIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const rows = row.table.getRowsInDisplayOrder()\n const displayIndex = row._displayIndexCache\n\n return rows[displayIndex] === row ? displayIndex : -1\n}\n\n/**\n * Returns the rows in the current display order after assigning their\n * zero-based display indexes.\n *\n * When expanded rows bypass pagination, expanded descendants are inserted into\n * the returned order even though they are absent from the pre-pagination row\n * model.\n */\nexport function table_getRowsInDisplayOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rows = table.getPrePaginatedRowModel().rows\n\n if (table.options.paginateExpandedRows === false) {\n const displayRows: Array<Row<TFeatures, TData>> = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n row._displayIndexCache = displayRows.length\n displayRows.push(row)\n\n if (\n row.subRows.length &&\n (\n row as Row<TFeatures, TData> & Partial<Row_RowExpanding>\n ).getIsExpanded?.()\n ) {\n row.subRows.forEach(handleRow)\n }\n }\n\n rows.forEach(handleRow)\n\n return displayRows\n }\n\n for (let i = 0; i < rows.length; i++) {\n rows[i]!._displayIndexCache = i\n }\n\n return rows\n}\n\n/**\n * Reads and caches this row's value for a column.\n *\n * The value is produced by the column accessor. Missing columns or display\n * columns without an accessor return `undefined`.\n *\n * @example\n * ```ts\n * const firstName = row_getValue(row, 'firstName')\n * ```\n */\nexport function row_getValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n if (hasOwn(row._valuesCache, columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = row.table.getColumn(columnId)\n\n if (!column?.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(row.original, row.index)\n\n return row._valuesCache[columnId]\n}\n\n/**\n * Reads and caches the values used by faceting/grouping for a column.\n *\n * If the column defines `getUniqueValues`, that result is used. Otherwise the\n * row's accessor value is wrapped in a single-item array.\n *\n * @example\n * ```ts\n * const values = row_getUniqueValues(row, 'tags')\n * ```\n */\nexport function row_getUniqueValues<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n if (hasOwn(row._uniqueValuesCache, columnId)) {\n return row._uniqueValuesCache[columnId]\n }\n\n const column = row.table.getColumn(columnId)\n\n if (!column?.accessorFn) {\n return undefined\n }\n\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)]\n return row._uniqueValuesCache[columnId]\n }\n\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(\n row.original,\n row.index,\n )\n\n return row._uniqueValuesCache[columnId]\n}\n\n/**\n * Returns a renderable row value for a column.\n *\n * If the accessor value is nullish, the table's `renderFallbackValue` is used\n * instead.\n *\n * @example\n * ```ts\n * const value = row_renderValue(row, 'firstName')\n * ```\n */\nexport function row_renderValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n return row.getValue(columnId) ?? row.table.options.renderFallbackValue\n}\n\n/**\n * Flattens this row's descendant tree into leaf rows.\n *\n * The row itself is not included; only nested `subRows` are walked.\n *\n * @example\n * ```ts\n * const descendants = row_getLeafRows(row)\n * ```\n */\nexport function row_getLeafRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return flattenBy(row.subRows, (d) => d.subRows)\n}\n\n/**\n * Returns the deepest structural row depth in the core row model.\n * Root rows are depth `0`, their direct sub-rows are depth `1`, and so on.\n */\nexport function table_getMaxSubRowDepth<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): number {\n const rows = table.getCoreRowModel().flatRows\n let maxDepth = 0\n\n for (let i = 0; i < rows.length; i++) {\n maxDepth = Math.max(maxDepth, rows[i]!.depth)\n }\n\n return maxDepth\n}\n\n/**\n * Looks up this row's direct parent, if it has one.\n *\n * Parent lookup searches the pre-pagination row model so parent relationships\n * are available even when the parent is not on the current page.\n *\n * @example\n * ```ts\n * const parent = row_getParentRow(row)\n * ```\n */\nexport function row_getParentRow<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return row.parentId ? row.table.getRow(row.parentId, true) : undefined\n}\n\n/**\n * Collects this row's ancestor chain from root to direct parent.\n *\n * The current row is not included. Rows without a parent return an empty array.\n *\n * @example\n * ```ts\n * const ancestors = row_getParentRows(row)\n * ```\n */\nexport function row_getParentRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const parentRows: Array<Row<TFeatures, TData>> = []\n let currentRow = row\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while (true) {\n const parentRow = currentRow.getParentRow()\n if (!parentRow) break\n parentRows.push(parentRow)\n currentRow = parentRow\n }\n return parentRows.reverse()\n}\n\n/**\n * Constructs one cell for each leaf column in this row.\n *\n * The result follows `table.getAllLeafColumns()` order and includes hidden\n * columns; visibility-specific APIs filter this list later.\n *\n * @example\n * ```ts\n * const cells = row_getAllCells(row)\n * ```\n */\nexport function row_getAllCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const columns = row.table.getAllLeafColumns()\n // WeakMap so cells keyed by replaced column instances can be collected;\n // rows are memoized on data only and outlive column generations\n let cache = row._cellsCache\n if (!cache) {\n cache = row._cellsCache = new WeakMap()\n }\n const cells: Array<Cell<TFeatures, TData, unknown>> = new Array(\n columns.length,\n )\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n let cell = cache.get(column)\n if (!cell) {\n cell = constructCell(column, row, row.table)\n cache.set(column, cell)\n }\n cells[i] = cell\n }\n return cells\n}\n\n/**\n * Builds a lookup map of this row's cells keyed by column id.\n *\n * This is the static implementation behind `row.getAllCellsByColumnId()`.\n *\n * @example\n * ```ts\n * const cellsById = row_getAllCellsByColumnId(row)\n * ```\n */\nexport function row_getAllCellsByColumnId<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const result = makeObjectMap<Cell<TFeatures, TData, unknown>>()\n const cells = row.getAllCells()\n for (let i = 0; i < cells.length; i++) {\n const cell = cells[i]!\n result[cell.column.id] = cell\n }\n return result\n}\n\n/**\n * Resolves the stable id for a row.\n *\n * `options.getRowId` wins when provided. Otherwise root rows use their index\n * and child rows append their index to the parent id, such as `0.2`.\n *\n * @example\n * ```ts\n * const id = table_getRowId(originalRow, table, index, parentRow)\n * ```\n */\nexport function table_getRowId<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n originalRow: TData,\n table: Table_Internal<TFeatures, TData>,\n index: number,\n parent?: Row<TFeatures, TData>,\n) {\n return (\n table.options.getRowId?.(originalRow, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`\n )\n}\n\n/**\n * Looks up a row by id from the current or full row model.\n *\n * By default this searches `table.getRowModel()`. Passing `searchAll` searches\n * the pre-pagination model first, then falls back to the core model.\n *\n * @example\n * ```ts\n * const row = table_getRow(table, rowId, true)\n * ```\n */\nexport function table_getRow<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n rowId: string,\n searchAll?: boolean,\n): Row<TFeatures, TData> {\n // TODO - simplify this across different row models\n let row = (searchAll ? table.getPrePaginatedRowModel() : table.getRowModel())\n .rowsById[rowId]\n\n if (!row) {\n row = table.getCoreRowModel().rowsById[rowId]\n if (!row) {\n if (process.env.NODE_ENV === 'development') {\n throw new Error(`getRow could not find row with ID: ${rowId}`)\n }\n throw new Error()\n }\n }\n\n return row\n}\n"],"mappings":";;;;;;;;AAaA,SAAgB,oBAGd,KAA4B;CAC5B,MAAM,OAAO,IAAI,MAAM,sBAAsB;CAC7C,MAAM,eAAe,IAAI;CAEzB,OAAO,KAAK,kBAAkB,MAAM,eAAe;AACrD;;;;;;;;;AAUA,SAAgB,4BAGd,OAAyC;CACzC,MAAM,OAAO,MAAM,wBAAwB,CAAC,CAAC;CAE7C,IAAI,MAAM,QAAQ,yBAAyB,OAAO;EAChD,MAAM,cAA4C,CAAC;EAEnD,MAAM,aAAa,QAA+B;GAChD,IAAI,qBAAqB,YAAY;GACrC,YAAY,KAAK,GAAG;GAEpB,IACE,IAAI,QAAQ,UAEV,IACA,gBAAgB,GAElB,IAAI,QAAQ,QAAQ,SAAS;EAEjC;EAEA,KAAK,QAAQ,SAAS;EAEtB,OAAO;CACT;CAEA,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAC/B,KAAK,EAAE,CAAE,qBAAqB;CAGhC,OAAO;AACT;;;;;;;;;;;;AAaA,SAAgB,aAGd,KAA4B,UAAkB;CAC9C,IAAI,OAAO,IAAI,cAAc,QAAQ,GACnC,OAAO,IAAI,aAAa;CAG1B,MAAM,SAAS,IAAI,MAAM,UAAU,QAAQ;CAE3C,IAAI,CAAC,QAAQ,YACX;CAGF,IAAI,aAAa,YAAY,OAAO,WAAW,IAAI,UAAU,IAAI,KAAK;CAEtE,OAAO,IAAI,aAAa;AAC1B;;;;;;;;;;;;AAaA,SAAgB,oBAGd,KAA4B,UAAkB;CAC9C,IAAI,OAAO,IAAI,oBAAoB,QAAQ,GACzC,OAAO,IAAI,mBAAmB;CAGhC,MAAM,SAAS,IAAI,MAAM,UAAU,QAAQ;CAE3C,IAAI,CAAC,QAAQ,YACX;CAGF,IAAI,CAAC,OAAO,UAAU,iBAAiB;EACrC,IAAI,mBAAmB,YAAY,CAAC,IAAI,SAAS,QAAQ,CAAC;EAC1D,OAAO,IAAI,mBAAmB;CAChC;CAEA,IAAI,mBAAmB,YAAY,OAAO,UAAU,gBAClD,IAAI,UACJ,IAAI,KACN;CAEA,OAAO,IAAI,mBAAmB;AAChC;;;;;;;;;;;;AAaA,SAAgB,gBAGd,KAA4B,UAAkB;CAC9C,OAAO,IAAI,SAAS,QAAQ,KAAK,IAAI,MAAM,QAAQ;AACrD;;;;;;;;;;;AAYA,SAAgB,gBAGd,KAA0D;CAC1D,OAAO,UAAU,IAAI,UAAU,MAAM,EAAE,OAAO;AAChD;;;;;AAMA,SAAgB,wBAGd,OAAiD;CACjD,MAAM,OAAO,MAAM,gBAAgB,CAAC,CAAC;CACrC,IAAI,WAAW;CAEf,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAC/B,WAAW,KAAK,IAAI,UAAU,KAAK,EAAE,CAAE,KAAK;CAG9C,OAAO;AACT;;;;;;;;;;;;AAaA,SAAgB,iBAGd,KAA4B;CAC5B,OAAO,IAAI,WAAW,IAAI,MAAM,OAAO,IAAI,UAAU,IAAI,IAAI;AAC/D;;;;;;;;;;;AAYA,SAAgB,kBAGd,KAA4B;CAC5B,MAAM,aAA2C,CAAC;CAClD,IAAI,aAAa;CAEjB,OAAO,MAAM;EACX,MAAM,YAAY,WAAW,aAAa;EAC1C,IAAI,CAAC,WAAW;EAChB,WAAW,KAAK,SAAS;EACzB,aAAa;CACf;CACA,OAAO,WAAW,QAAQ;AAC5B;;;;;;;;;;;;AAaA,SAAgB,gBAGd,KAAoE;CACpE,MAAM,UAAU,IAAI,MAAM,kBAAkB;CAG5C,IAAI,QAAQ,IAAI;CAChB,IAAI,CAAC,OACH,QAAQ,IAAI,8BAAc,IAAI,QAAQ;CAExC,MAAM,QAAgD,IAAI,MACxD,QAAQ,MACV;CACA,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;EACvC,MAAM,SAAS,QAAQ;EACvB,IAAI,OAAO,MAAM,IAAI,MAAM;EAC3B,IAAI,CAAC,MAAM;GACT,OAAO,cAAc,QAAQ,KAAK,IAAI,KAAK;GAC3C,MAAM,IAAI,QAAQ,IAAI;EACxB;EACA,MAAM,KAAK;CACb;CACA,OAAO;AACT;;;;;;;;;;;AAYA,SAAgB,0BAGd,KAA4B;CAC5B,MAAM,SAAS,cAA+C;CAC9D,MAAM,QAAQ,IAAI,YAAY;CAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;EACrC,MAAM,OAAO,MAAM;EACnB,OAAO,KAAK,OAAO,MAAM;CAC3B;CACA,OAAO;AACT;;;;;;;;;;;;AAaA,SAAgB,eAId,aACA,OACA,OACA,QACA;CACA,OACE,MAAM,QAAQ,WAAW,aAAa,OAAO,MAAM,KACnD,GAAG,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI;AAE/C;;;;;;;;;;;;AAaA,SAAgB,aAId,OACA,OACA,WACuB;CAEvB,IAAI,OAAO,YAAY,MAAM,wBAAwB,IAAI,MAAM,YAAY,EAAC,CACzE,SAAS;CAEZ,IAAI,CAAC,KAAK;EACR,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS;EACvC,IAAI,CAAC,KAAK;GACR,IAAI,QAAQ,IAAI,aAAa,eAC3B,MAAM,IAAI,MAAM,sCAAsC,OAAO;GAE/D,MAAM,IAAI,MAAM;EAClB;CACF;CAEA,OAAO;AACT"}
@@ -11,8 +11,7 @@ const require_coreReactivityFeature_utils = require('../reactivity/coreReactivit
11
11
  */
12
12
  function getInitialTableState(features, initialState = {}) {
13
13
  Object.values(features).forEach((feature) => {
14
- var _feature$getInitialSt;
15
- initialState = ((_feature$getInitialSt = feature.getInitialState) === null || _feature$getInitialSt === void 0 ? void 0 : _feature$getInitialSt.call(feature, initialState)) ?? initialState;
14
+ initialState = feature.getInitialState?.(initialState) ?? initialState;
16
15
  });
17
16
  return require_utils.cloneState(initialState);
18
17
  }
@@ -22,23 +21,27 @@ function getInitialTableState(features, initialState = {}) {
22
21
  * This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.
23
22
  */
24
23
  function constructTable(tableOptions) {
25
- const _reactivity = tableOptions.features.coreReativityFeature;
24
+ const _reactivity = tableOptions.features.coreReactivityFeature;
25
+ const { aggregationFns, columnMeta: _columnMeta, coreRowModel, expandedRowModel, facetedMinMaxValues, facetedRowModel, facetedUniqueValues, filterFns, filterMeta: _filterMeta, filteredRowModel, groupedRowModel, paginatedRowModel, sortFns, sortedRowModel, tableMeta: _tableMeta, ...features } = tableOptions.features;
26
26
  const table = {
27
27
  _reactivity,
28
28
  _features: {
29
29
  ...require_coreFeatures.coreFeatures,
30
- ...tableOptions.features
30
+ ...features
31
31
  },
32
32
  _rowModels: {},
33
- _rowModelFns: {},
33
+ _rowModelFns: {
34
+ aggregationFns,
35
+ filterFns,
36
+ sortFns
37
+ },
34
38
  baseAtoms: {},
35
39
  atoms: {}
36
40
  };
37
41
  const featuresList = Object.values(table._features);
38
42
  const mergedOptions = {
39
43
  ...featuresList.reduce((obj, feature) => {
40
- var _feature$getDefaultTa;
41
- return Object.assign(obj, (_feature$getDefaultTa = feature.getDefaultTableOptions) === null || _feature$getDefaultTa === void 0 ? void 0 : _feature$getDefaultTa.call(feature, table));
44
+ return Object.assign(obj, feature.getDefaultTableOptions?.(table));
42
45
  }, {}),
43
46
  ...tableOptions
44
47
  };
@@ -78,8 +81,7 @@ function constructTable(tableOptions) {
78
81
  const key = stateKeys[i];
79
82
  table.baseAtoms[key] = _reactivity.createWritableAtom(table.initialState[key], { debugName: `table/baseAtoms/${key}` });
80
83
  table.atoms[key] = _reactivity.createReadonlyAtom(() => {
81
- const externalAtoms = table.options.atoms;
82
- const externalAtom = externalAtoms === null || externalAtoms === void 0 ? void 0 : externalAtoms[key];
84
+ const externalAtom = table.options.atoms?.[key];
83
85
  if (externalAtom) return externalAtom.get();
84
86
  return table.baseAtoms[key].get();
85
87
  }, { debugName: `table/atoms/${key}` });
@@ -93,9 +95,20 @@ function constructTable(tableOptions) {
93
95
  }
94
96
  return snapshot;
95
97
  }, { debugName: "table/store" }));
98
+ for (let i = 0; i < featuresList.length; i++) featuresList[i].initTableInstanceData?.(table);
96
99
  if (process.env.NODE_ENV === "development" && (tableOptions.debugAll || tableOptions.debugTable)) {
97
100
  const features = Object.keys(table._features);
98
- const rowModels = Object.keys(table.options.rowModels || {});
101
+ const rowModels = Object.entries({
102
+ coreRowModel,
103
+ filteredRowModel,
104
+ groupedRowModel,
105
+ sortedRowModel,
106
+ expandedRowModel,
107
+ paginatedRowModel,
108
+ facetedRowModel,
109
+ facetedMinMaxValues,
110
+ facetedUniqueValues
111
+ }).filter(([, factory]) => factory).map(([key]) => key);
99
112
  const states = Object.keys(table.initialState);
100
113
  console.log(`Constructing Table Instance
101
114
 
@@ -105,10 +118,7 @@ function constructTable(tableOptions) {
105
118
 
106
119
  States: ${states.join("\n ")}\n`, { table });
107
120
  }
108
- for (let i = 0; i < featuresList.length; i++) {
109
- var _constructTableAPIs, _ref;
110
- (_constructTableAPIs = (_ref = featuresList[i]).constructTableAPIs) === null || _constructTableAPIs === void 0 || _constructTableAPIs.call(_ref, table);
111
- }
121
+ for (let i = 0; i < featuresList.length; i++) featuresList[i].constructTableAPIs?.(table);
112
122
  return table;
113
123
  }
114
124
 
@@ -1 +1 @@
1
- {"version":3,"file":"constructTable.cjs","names":["cloneState","coreFeatures","atomToStore"],"sources":["../../../src/core/table/constructTable.ts"],"sourcesContent":["import { coreFeatures } from '../coreFeatures'\nimport { cloneState } from '../../utils'\nimport { atomToStore } from '../reactivity/coreReactivityFeature.utils'\nimport { table_syncExternalStateToBaseAtoms } from './coreTablesFeature.utils'\nimport type { Atom } from '@tanstack/store'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { TableOptions } from '../../types/TableOptions'\nimport type { TableState, TableState_All } from '../../types/TableState'\n\n/**\n * Builds the initial table state from registered features and user initial state.\n *\n * Each feature contributes its default state before user-provided `initialState` values are merged in.\n */\nexport function getInitialTableState<TFeatures extends TableFeatures>(\n features: TFeatures,\n initialState: Partial<TableState<TFeatures>> | undefined = {},\n): TableState<TFeatures> {\n Object.values(features).forEach((feature) => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n return cloneState(initialState) as TableState<TFeatures>\n}\n\n/**\n * Constructs a table instance from normalized table internals.\n *\n * This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n */\nexport function constructTable<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(tableOptions: TableOptions<TFeatures, TData>): Table<TFeatures, TData> {\n const _reactivity = tableOptions.features.coreReativityFeature!\n\n const table = {\n _reactivity,\n _features: { ...coreFeatures, ...tableOptions.features },\n _rowModels: {},\n _rowModelFns: {},\n baseAtoms: {},\n atoms: {},\n } as Table_Internal<TFeatures, TData>\n\n const featuresList: Array<TableFeature> = Object.values(table._features)\n\n const defaultOptions = featuresList.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultTableOptions?.(table))\n }, {}) as TableOptions<TFeatures, TData>\n\n const mergedOptions = { ...defaultOptions, ...tableOptions }\n\n if (_reactivity.wrapExternalAtoms && mergedOptions.atoms) {\n for (const [atomKey, _atom] of Object.entries(mergedOptions.atoms)) {\n const atom = _atom as Atom<any>\n const wrappedAtom = _reactivity.createWritableAtom(atom.get(), {\n debugName: `externalAtom/${atomKey}`,\n })\n ;(mergedOptions.atoms as any)[atomKey] = wrappedAtom\n // Two-way syncing between the original atom and the wrapped one.\n let syncExternal = false\n const syncAtomToWrappedSub = atom.subscribe((value) => {\n if (syncExternal) return\n wrappedAtom.set(value)\n })\n const syncWrappedToAtomSub = wrappedAtom.subscribe((value) => {\n syncExternal = true\n atom.set(value)\n syncExternal = false\n })\n _reactivity.addSubscription(syncAtomToWrappedSub)\n _reactivity.addSubscription(syncWrappedToAtomSub)\n }\n }\n\n if (_reactivity.createOptionsStore) {\n // @ts-ignore - direct set\n table.optionsStore = _reactivity.createWritableAtom<\n TableOptions<TFeatures, TData>\n >(mergedOptions, { debugName: 'table/optionsStore' })\n Object.defineProperty(table, 'options', {\n configurable: true,\n enumerable: true,\n get() {\n return table.optionsStore!.get()\n },\n set(value) {\n table.optionsStore!.set(() => value) // or your real update shape\n },\n })\n } else {\n table.options = mergedOptions\n }\n\n table.initialState = getInitialTableState(\n table._features,\n table.options.initialState,\n )\n\n const stateKeys = Object.keys(table.initialState) as Array<\n string & keyof TableState_All\n >\n\n for (let i = 0; i < stateKeys.length; i++) {\n const key = stateKeys[i]!\n table.baseAtoms[key] = _reactivity.createWritableAtom(\n table.initialState[key],\n {\n debugName: `table/baseAtoms/${key}`,\n },\n ) as any\n\n // create readonly derived atom: on each get(), read either external atom or base atom\n ;(table.atoms as any)[key] = _reactivity.createReadonlyAtom(\n () => {\n const externalAtoms = table.options.atoms as\n | Partial<Record<keyof TableState_All, Atom<unknown>>>\n | undefined\n const externalAtom = externalAtoms?.[key]\n if (externalAtom) {\n return externalAtom.get()\n }\n return table.baseAtoms[key]!.get()\n },\n { debugName: `table/atoms/${key}` },\n )\n }\n\n table_syncExternalStateToBaseAtoms(table)\n\n table.store = atomToStore(\n _reactivity.createReadonlyAtom(\n () => {\n const snapshot = {} as TableState<TFeatures> & TableState_All\n for (let i = 0; i < stateKeys.length; i++) {\n const key = stateKeys[i]!\n ;(snapshot as Record<string, unknown>)[key] = table.atoms[key]!.get()\n }\n return snapshot\n },\n { debugName: 'table/store' },\n ),\n )\n\n if (\n process.env.NODE_ENV === 'development' &&\n (tableOptions.debugAll || tableOptions.debugTable)\n ) {\n const features = Object.keys(table._features)\n const rowModels = Object.keys(table.options.rowModels || {})\n const states = Object.keys(table.initialState)\n\n console.log(\n `Constructing Table Instance\n\n Features: ${features.join('\\n ')}\n\n Row Models: ${rowModels.length ? rowModels.join('\\n ') : '(none)'}\n\n States: ${states.join('\\n ')}\\n`,\n { table },\n )\n }\n\n for (let i = 0; i < featuresList.length; i++) {\n featuresList[i]!.constructTableAPIs?.(table)\n }\n\n return table\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"constructTable.cjs","names":["cloneState","coreFeatures","atomToStore"],"sources":["../../../src/core/table/constructTable.ts"],"sourcesContent":["import { coreFeatures } from '../coreFeatures'\nimport { cloneState } from '../../utils'\nimport { atomToStore } from '../reactivity/coreReactivityFeature.utils'\nimport { table_syncExternalStateToBaseAtoms } from './coreTablesFeature.utils'\nimport type { Atom } from '@tanstack/store'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { TableOptions } from '../../types/TableOptions'\nimport type { TableState, TableState_All } from '../../types/TableState'\n\n/**\n * Builds the initial table state from registered features and user initial state.\n *\n * Each feature contributes its default state before user-provided `initialState` values are merged in.\n */\nexport function getInitialTableState<TFeatures extends TableFeatures>(\n features: TFeatures,\n initialState: Partial<TableState<TFeatures>> | undefined = {},\n): TableState<TFeatures> {\n Object.values(features).forEach((feature) => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n return cloneState(initialState) as TableState<TFeatures>\n}\n\n/**\n * Constructs a table instance from normalized table internals.\n *\n * This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n */\nexport function constructTable<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(tableOptions: TableOptions<TFeatures, TData>): Table<TFeatures, TData> {\n const _reactivity = tableOptions.features.coreReactivityFeature!\n\n // Strip the non-feature slots: type-only meta slots, row model factories,\n // and row model fn registries all live on the `features` option but are not\n // table features themselves.\n const {\n aggregationFns,\n columnMeta: _columnMeta,\n coreRowModel,\n expandedRowModel,\n facetedMinMaxValues,\n facetedRowModel,\n facetedUniqueValues,\n filterFns,\n filterMeta: _filterMeta,\n filteredRowModel,\n groupedRowModel,\n paginatedRowModel,\n sortFns,\n sortedRowModel,\n tableMeta: _tableMeta,\n ...features\n } = tableOptions.features\n\n const table = {\n _reactivity,\n _features: { ...coreFeatures, ...features },\n _rowModels: {},\n _rowModelFns: { aggregationFns, filterFns, sortFns },\n baseAtoms: {},\n atoms: {},\n } as unknown as Table_Internal<TFeatures, TData>\n\n const featuresList: Array<TableFeature> = Object.values(table._features)\n\n const defaultOptions = featuresList.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultTableOptions?.(table))\n }, {}) as TableOptions<TFeatures, TData>\n\n const mergedOptions = { ...defaultOptions, ...tableOptions }\n\n if (_reactivity.wrapExternalAtoms && mergedOptions.atoms) {\n for (const [atomKey, _atom] of Object.entries(mergedOptions.atoms)) {\n const atom = _atom as Atom<any>\n const wrappedAtom = _reactivity.createWritableAtom(atom.get(), {\n debugName: `externalAtom/${atomKey}`,\n })\n ;(mergedOptions.atoms as any)[atomKey] = wrappedAtom\n // Two-way syncing between the original atom and the wrapped one.\n let syncExternal = false\n const syncAtomToWrappedSub = atom.subscribe((value) => {\n if (syncExternal) return\n wrappedAtom.set(value)\n })\n const syncWrappedToAtomSub = wrappedAtom.subscribe((value) => {\n syncExternal = true\n atom.set(value)\n syncExternal = false\n })\n _reactivity.addSubscription(syncAtomToWrappedSub)\n _reactivity.addSubscription(syncWrappedToAtomSub)\n }\n }\n\n if (_reactivity.createOptionsStore) {\n // @ts-ignore - direct set\n table.optionsStore = _reactivity.createWritableAtom<\n TableOptions<TFeatures, TData>\n >(mergedOptions, { debugName: 'table/optionsStore' })\n Object.defineProperty(table, 'options', {\n configurable: true,\n enumerable: true,\n get() {\n return table.optionsStore!.get()\n },\n set(value) {\n table.optionsStore!.set(() => value) // or your real update shape\n },\n })\n } else {\n table.options = mergedOptions\n }\n\n table.initialState = getInitialTableState(\n table._features,\n table.options.initialState,\n )\n\n const stateKeys = Object.keys(table.initialState) as Array<\n string & keyof TableState_All\n >\n\n for (let i = 0; i < stateKeys.length; i++) {\n const key = stateKeys[i]!\n table.baseAtoms[key] = _reactivity.createWritableAtom(\n table.initialState[key],\n {\n debugName: `table/baseAtoms/${key}`,\n },\n ) as any\n\n // create readonly derived atom: on each get(), read either external atom or base atom\n ;(table.atoms as any)[key] = _reactivity.createReadonlyAtom(\n () => {\n const externalAtoms = table.options.atoms as\n | Partial<Record<keyof TableState_All, Atom<unknown>>>\n | undefined\n const externalAtom = externalAtoms?.[key]\n if (externalAtom) {\n return externalAtom.get()\n }\n return table.baseAtoms[key]!.get()\n },\n { debugName: `table/atoms/${key}` },\n )\n }\n\n table_syncExternalStateToBaseAtoms(table)\n\n table.store = atomToStore(\n _reactivity.createReadonlyAtom(\n () => {\n const snapshot = {} as TableState<TFeatures> & TableState_All\n for (let i = 0; i < stateKeys.length; i++) {\n const key = stateKeys[i]!\n ;(snapshot as Record<string, unknown>)[key] = table.atoms[key]!.get()\n }\n return snapshot\n },\n { debugName: 'table/store' },\n ),\n )\n\n for (let i = 0; i < featuresList.length; i++) {\n featuresList[i]!.initTableInstanceData?.(table)\n }\n\n if (\n process.env.NODE_ENV === 'development' &&\n (tableOptions.debugAll || tableOptions.debugTable)\n ) {\n const features = Object.keys(table._features)\n const rowModels = Object.entries({\n coreRowModel,\n filteredRowModel,\n groupedRowModel,\n sortedRowModel,\n expandedRowModel,\n paginatedRowModel,\n facetedRowModel,\n facetedMinMaxValues,\n facetedUniqueValues,\n })\n .filter(([, factory]) => factory)\n .map(([key]) => key)\n const states = Object.keys(table.initialState)\n\n console.log(\n `Constructing Table Instance\n\n Features: ${features.join('\\n ')}\n\n Row Models: ${rowModels.length ? rowModels.join('\\n ') : '(none)'}\n\n States: ${states.join('\\n ')}\\n`,\n { table },\n )\n }\n\n for (let i = 0; i < featuresList.length; i++) {\n featuresList[i]!.constructTableAPIs?.(table)\n }\n\n return table as unknown as Table<TFeatures, TData>\n}\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { RowData } from "../../types/type-utils.cjs";
2
2
  import { TableState } from "../../types/TableState.cjs";
3
3
  import { TableOptions } from "../../types/TableOptions.cjs";
4
- import { TableFeatures } from "../../types/TableFeatures.cjs";
5
4
  import { Table } from "../../types/Table.cjs";
5
+ import { TableFeatures } from "../../types/TableFeatures.cjs";
6
6
 
7
7
  //#region src/core/table/constructTable.d.ts
8
8
  /**