@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
@@ -6,8 +6,8 @@ import type { Cell } from '../../types/Cell'
6
6
  import type { Column } from '../../types/Column'
7
7
 
8
8
  export interface CellContext<
9
- TFeatures extends TableFeatures,
10
- TData extends RowData,
9
+ in out TFeatures extends TableFeatures,
10
+ in out TData extends RowData,
11
11
  TValue extends CellData = CellData,
12
12
  > {
13
13
  cell: Cell<TFeatures, TData, TValue>
@@ -19,8 +19,8 @@ export interface CellContext<
19
19
  }
20
20
 
21
21
  export interface Cell_CoreProperties<
22
- TFeatures extends TableFeatures,
23
- TData extends RowData,
22
+ in out TFeatures extends TableFeatures,
23
+ in out TData extends RowData,
24
24
  TValue extends CellData = CellData,
25
25
  > {
26
26
  /**
@@ -42,8 +42,8 @@ export interface Cell_CoreProperties<
42
42
  }
43
43
 
44
44
  export interface Cell_Cell<
45
- TFeatures extends TableFeatures,
46
- TData extends RowData,
45
+ in out TFeatures extends TableFeatures,
46
+ in out TData extends RowData,
47
47
  TValue extends CellData = CellData,
48
48
  > extends Cell_CoreProperties<TFeatures, TData, TValue> {
49
49
  /**
@@ -115,5 +115,11 @@ export function constructColumn<
115
115
  column.id = `${String(id)}`
116
116
  column.parent = parent
117
117
 
118
+ // Initialize instance-specific data for features that need it
119
+ const features = Object.values(table._features)
120
+ for (let i = 0; i < features.length; i++) {
121
+ features[i]!.initColumnInstanceData?.(column)
122
+ }
123
+
118
124
  return column as Column<TFeatures, TData, TValue>
119
125
  }
@@ -5,8 +5,8 @@ import type { AccessorFn, ColumnDef } from '../../types/ColumnDef'
5
5
  import type { Column } from '../../types/Column'
6
6
 
7
7
  export interface Column_CoreProperties<
8
- TFeatures extends TableFeatures,
9
- TData extends RowData,
8
+ in out TFeatures extends TableFeatures,
9
+ in out TData extends RowData,
10
10
  TValue extends CellData = CellData,
11
11
  > {
12
12
  /**
@@ -43,8 +43,8 @@ export interface Column_CoreProperties<
43
43
  }
44
44
 
45
45
  export interface Column_Column<
46
- TFeatures extends TableFeatures,
47
- TData extends RowData,
46
+ in out TFeatures extends TableFeatures,
47
+ in out TData extends RowData,
48
48
  TValue extends CellData = CellData,
49
49
  > extends Column_CoreProperties<TFeatures, TData, TValue> {
50
50
  /**
@@ -59,8 +59,8 @@ export interface Column_Column<
59
59
  }
60
60
 
61
61
  export interface TableOptions_Columns<
62
- TFeatures extends TableFeatures,
63
- TData extends RowData,
62
+ in out TFeatures extends TableFeatures,
63
+ in out TData extends RowData,
64
64
  TValue extends CellData = CellData,
65
65
  > {
66
66
  /**
@@ -74,8 +74,8 @@ export interface TableOptions_Columns<
74
74
  }
75
75
 
76
76
  export interface Table_Columns<
77
- TFeatures extends TableFeatures,
78
- TData extends RowData,
77
+ in out TFeatures extends TableFeatures,
78
+ in out TData extends RowData,
79
79
  > {
80
80
  /**
81
81
  * Returns a map of all flat columns by their ID.
@@ -1,4 +1,4 @@
1
- import { callMemoOrStaticFn } from '../../utils'
1
+ import { callMemoOrStaticFn, makeObjectMap } from '../../utils'
2
2
  import { table_getOrderColumnsFn } from '../../features/column-ordering/columnOrderingFeature.utils'
3
3
  import { constructColumn } from './constructColumn'
4
4
  import type { Table_Internal } from '../../types/Table'
@@ -185,7 +185,7 @@ export function table_getAllFlatColumnsById<
185
185
  >(
186
186
  table: Table_Internal<TFeatures, TData>,
187
187
  ): Record<string, Column<TFeatures, TData, unknown>> {
188
- const result: Record<string, Column<TFeatures, TData, unknown>> = {}
188
+ const result = makeObjectMap<Column<TFeatures, TData, unknown>>()
189
189
  const flatColumns = table.getAllFlatColumns()
190
190
  for (let i = 0; i < flatColumns.length; i++) {
191
191
  const column = flatColumns[i]!
@@ -218,7 +218,7 @@ export function table_getAllLeafColumns<
218
218
  table,
219
219
  'getOrderColumns',
220
220
  table_getOrderColumnsFn,
221
- )(leafColumns)
221
+ )(leafColumns) as Array<Column<TFeatures, TData, unknown>>
222
222
  }
223
223
 
224
224
  /**
@@ -238,7 +238,7 @@ export function table_getAllLeafColumnsById<
238
238
  >(
239
239
  table: Table_Internal<TFeatures, TData>,
240
240
  ): Record<string, Column<TFeatures, TData, unknown>> {
241
- const result: Record<string, Column<TFeatures, TData, unknown>> = {}
241
+ const result = makeObjectMap<Column<TFeatures, TData, unknown>>()
242
242
  const leafColumns = table.getAllLeafColumns()
243
243
  for (let i = 0; i < leafColumns.length; i++) {
244
244
  const column = leafColumns[i]!
@@ -7,7 +7,7 @@ import { coreTablesFeature } from './table/coreTablesFeature'
7
7
  import type { TableReactivityBindings } from '../reactivity'
8
8
 
9
9
  export interface CoreFeatures {
10
- coreReativityFeature?: TableReactivityBindings
10
+ coreReactivityFeature?: TableReactivityBindings
11
11
  coreCellsFeature: typeof coreCellsFeature
12
12
  coreColumnsFeature: typeof coreColumnsFeature
13
13
  coreHeadersFeature: typeof coreHeadersFeature
@@ -21,7 +21,7 @@ export function buildHeaderGroups<
21
21
  allColumns: Array<Column<TFeatures, TData, TValue>>,
22
22
  columnsToGroup: Array<Column<TFeatures, TData, TValue>>,
23
23
  table: Table_Internal<TFeatures, TData>,
24
- headerFamily?: 'center' | 'left' | 'right',
24
+ headerFamily?: 'center' | 'start' | 'end',
25
25
  ) {
26
26
  // Find the max depth of the columns:
27
27
  // build the leaf column row
@@ -113,7 +113,9 @@ export function buildHeaderGroups<
113
113
  pendingParentHeaders.push(header)
114
114
  }
115
115
 
116
- headerGroup.headers.push(headerToGroup)
116
+ headerGroup.headers.push(
117
+ headerToGroup as Header<TFeatures, TData, unknown>,
118
+ )
117
119
  headerToGroup.headerGroup = headerGroup
118
120
  })
119
121
 
@@ -1,13 +1,13 @@
1
1
  import type { CellData, RowData } from '../../types/type-utils'
2
2
  import type { TableFeatures } from '../../types/TableFeatures'
3
- import type { Table } from '../../types/Table'
3
+ import type { Table, Table_Internal } from '../../types/Table'
4
4
  import type { Header } from '../../types/Header'
5
5
  import type { HeaderGroup } from '../../types/HeaderGroup'
6
6
  import type { Column } from '../../types/Column'
7
7
 
8
8
  export interface Table_Headers<
9
- TFeatures extends TableFeatures,
10
- TData extends RowData,
9
+ in out TFeatures extends TableFeatures,
10
+ in out TData extends RowData,
11
11
  > {
12
12
  /**
13
13
  * Builds the visible header groups for the current column tree, visibility,
@@ -30,8 +30,8 @@ export interface Table_Headers<
30
30
  }
31
31
 
32
32
  export interface HeaderContext<
33
- TFeatures extends TableFeatures,
34
- TData extends RowData,
33
+ in out TFeatures extends TableFeatures,
34
+ in out TData extends RowData,
35
35
  TValue extends CellData = CellData,
36
36
  > {
37
37
  /**
@@ -49,8 +49,8 @@ export interface HeaderContext<
49
49
  }
50
50
 
51
51
  export interface Header_CoreProperties<
52
- TFeatures extends TableFeatures,
53
- TData extends RowData,
52
+ in out TFeatures extends TableFeatures,
53
+ in out TData extends RowData,
54
54
  TValue extends CellData = CellData,
55
55
  > {
56
56
  /**
@@ -96,12 +96,12 @@ export interface Header_CoreProperties<
96
96
  /**
97
97
  * Reference to the parent table instance.
98
98
  */
99
- table: Table<TFeatures, TData>
99
+ table: Table_Internal<TFeatures, TData>
100
100
  }
101
101
 
102
102
  export interface Header_Header<
103
- TFeatures extends TableFeatures,
104
- TData extends RowData,
103
+ in out TFeatures extends TableFeatures,
104
+ in out TData extends RowData,
105
105
  TValue extends CellData = CellData,
106
106
  > extends Header_CoreProperties<TFeatures, TData, TValue> {
107
107
  /**
@@ -115,8 +115,8 @@ export interface Header_Header<
115
115
  }
116
116
 
117
117
  export interface HeaderGroup_Header<
118
- TFeatures extends TableFeatures,
119
- TData extends RowData,
118
+ in out TFeatures extends TableFeatures,
119
+ in out TData extends RowData,
120
120
  TValue extends CellData = CellData,
121
121
  > {
122
122
  depth: number
@@ -10,7 +10,6 @@ import type { Header } from '../../types/Header'
10
10
  import type { RowData } from '../../types/type-utils'
11
11
  import type { TableFeatures } from '../../types/TableFeatures'
12
12
  import type { Header_Header } from './coreHeadersFeature.types'
13
- import type { Column } from '../../types/Column'
14
13
 
15
14
  /**
16
15
  * Walks a header tree and collects all descendant leaf headers.
@@ -79,7 +78,7 @@ export function table_getHeaderGroups<
79
78
  TFeatures extends TableFeatures,
80
79
  TData extends RowData,
81
80
  >(table: Table_Internal<TFeatures, TData>) {
82
- const { left, right } =
81
+ const { start, end } =
83
82
  table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()
84
83
  const allColumns = table.getAllColumns()
85
84
  const leafColumns = callMemoOrStaticFn(
@@ -89,15 +88,15 @@ export function table_getHeaderGroups<
89
88
  )
90
89
 
91
90
  // Fast path: no columns are pinned — skip per-side lookups, partition, and spread.
92
- if (!left.length && !right.length) {
91
+ if (!start.length && !end.length) {
93
92
  return buildHeaderGroups(allColumns, leafColumns, table)
94
93
  }
95
94
 
96
95
  const leafColumnsById = table.getAllLeafColumnsById()
97
96
 
98
97
  const leftColumns: typeof leafColumns = []
99
- for (let i = 0; i < left.length; i++) {
100
- const column = leafColumnsById[left[i]!]
98
+ for (let i = 0; i < start.length; i++) {
99
+ const column = leafColumnsById[start[i]!]
101
100
  if (
102
101
  column &&
103
102
  callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)
@@ -107,8 +106,8 @@ export function table_getHeaderGroups<
107
106
  }
108
107
 
109
108
  const rightColumns: typeof leafColumns = []
110
- for (let i = 0; i < right.length; i++) {
111
- const column = leafColumnsById[right[i]!]
109
+ for (let i = 0; i < end.length; i++) {
110
+ const column = leafColumnsById[end[i]!]
112
111
  if (
113
112
  column &&
114
113
  callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)
@@ -118,7 +117,7 @@ export function table_getHeaderGroups<
118
117
  }
119
118
 
120
119
  const centerColumns = leafColumns.filter(
121
- (column) => !left.includes(column.id) && !right.includes(column.id),
120
+ (column) => !start.includes(column.id) && !end.includes(column.id),
122
121
  )
123
122
 
124
123
  return buildHeaderGroups(
@@ -1,4 +1,3 @@
1
- import type { Table } from '../../types/Table'
2
1
  import type { Table_RowModels_Faceted } from '../../features/column-faceting/columnFacetingFeature.types'
3
2
  import type { Table_RowModels_Filtered } from '../../features/column-filtering/columnFilteringFeature.types'
4
3
  import type { Table_RowModels_Grouped } from '../../features/column-grouping/columnGroupingFeature.types'
@@ -10,37 +9,24 @@ import type { TableFeatures } from '../../types/TableFeatures'
10
9
  import type { RowData } from '../../types/type-utils'
11
10
 
12
11
  export interface RowModel<
13
- TFeatures extends TableFeatures,
14
- TData extends RowData,
12
+ in out TFeatures extends TableFeatures,
13
+ in out TData extends RowData,
15
14
  > {
16
15
  rows: Array<Row<TFeatures, TData>>
17
16
  flatRows: Array<Row<TFeatures, TData>>
18
17
  rowsById: Record<string, Row<TFeatures, TData>>
19
18
  }
20
19
 
21
- export interface CreateRowModel_Core<
22
- TFeatures extends TableFeatures,
23
- TData extends RowData,
24
- > {
25
- /**
26
- * Optional factory for the core row model. When omitted, the built-in
27
- * `createCoreRowModel()` factory is used.
28
- */
29
- coreRowModel?: (
30
- table: Table<TFeatures, TData>,
31
- ) => () => RowModel<TFeatures, TData>
32
- }
33
-
34
20
  export interface CachedRowModel_Core<
35
- TFeatures extends TableFeatures,
36
- TData extends RowData,
21
+ in out TFeatures extends TableFeatures,
22
+ in out TData extends RowData,
37
23
  > {
38
24
  coreRowModel: () => RowModel<TFeatures, TData>
39
25
  }
40
26
 
41
27
  export interface Table_RowModels_Core<
42
- TFeatures extends TableFeatures,
43
- TData extends RowData,
28
+ in out TFeatures extends TableFeatures,
29
+ in out TData extends RowData,
44
30
  > {
45
31
  /**
46
32
  * Returns the core row model before any processing has been applied.
@@ -7,7 +7,7 @@ import type { RowModel } from './coreRowModelsFeature.types'
7
7
  /**
8
8
  * Resolves the table's unmodified core row model.
9
9
  *
10
- * The factory is created once per table, either from `options.rowModels.coreRowModel`
10
+ * The factory is created once per table, either from the `coreRowModel` slot on the `features` option
11
11
  * or the built-in `createCoreRowModel()`, then reused for later calls.
12
12
  *
13
13
  * @example
@@ -21,7 +21,7 @@ export function table_getCoreRowModel<
21
21
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
22
22
  if (!table._rowModels.coreRowModel) {
23
23
  table._rowModels.coreRowModel =
24
- table.options.rowModels?.coreRowModel?.(table) ??
24
+ table.options.features.coreRowModel?.(table) ??
25
25
  createCoreRowModel<TFeatures, TData>()(table)
26
26
  }
27
27
 
@@ -64,7 +64,7 @@ export function table_getFilteredRowModel<
64
64
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
65
65
  if (!table._rowModels.filteredRowModel) {
66
66
  table._rowModels.filteredRowModel =
67
- table.options.rowModels?.filteredRowModel?.(table)
67
+ table.options.features.filteredRowModel?.(table)
68
68
  }
69
69
 
70
70
  if (table.options.manualFiltering || !table._rowModels.filteredRowModel) {
@@ -92,7 +92,7 @@ export function table_getPreGroupedRowModel<
92
92
  }
93
93
 
94
94
  /**
95
- * Resolves the row model after grouping has produced grouped and aggregated rows.
95
+ * Resolves the row model after grouping has produced grouped rows.
96
96
  *
97
97
  * When `manualGrouping` is enabled, or no grouped row-model factory was
98
98
  * registered, this returns the pre-grouped row model unchanged.
@@ -108,7 +108,7 @@ export function table_getGroupedRowModel<
108
108
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
109
109
  if (!table._rowModels.groupedRowModel) {
110
110
  table._rowModels.groupedRowModel =
111
- table.options.rowModels?.groupedRowModel?.(table)
111
+ table.options.features.groupedRowModel?.(table)
112
112
  }
113
113
 
114
114
  if (table.options.manualGrouping || !table._rowModels.groupedRowModel) {
@@ -153,7 +153,7 @@ export function table_getSortedRowModel<
153
153
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
154
154
  if (!table._rowModels.sortedRowModel) {
155
155
  table._rowModels.sortedRowModel =
156
- table.options.rowModels?.sortedRowModel?.(table)
156
+ table.options.features.sortedRowModel?.(table)
157
157
  }
158
158
 
159
159
  if (table.options.manualSorting || !table._rowModels.sortedRowModel) {
@@ -197,7 +197,7 @@ export function table_getExpandedRowModel<
197
197
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
198
198
  if (!table._rowModels.expandedRowModel) {
199
199
  table._rowModels.expandedRowModel =
200
- table.options.rowModels?.expandedRowModel?.(table)
200
+ table.options.features.expandedRowModel?.(table)
201
201
  }
202
202
 
203
203
  if (table.options.manualExpanding || !table._rowModels.expandedRowModel) {
@@ -243,7 +243,7 @@ export function table_getPaginatedRowModel<
243
243
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
244
244
  if (!table._rowModels.paginatedRowModel) {
245
245
  table._rowModels.paginatedRowModel =
246
- table.options.rowModels?.paginatedRowModel?.(table)
246
+ table.options.features.paginatedRowModel?.(table)
247
247
  }
248
248
 
249
249
  if (table.options.manualPagination || !table._rowModels.paginatedRowModel) {
@@ -1,7 +1,7 @@
1
1
  import { constructRow } from '../rows/constructRow'
2
- import { tableMemo } from '../../utils'
2
+ import { makeObjectMap, tableMemo } from '../../utils'
3
3
  import { table_autoResetPageIndex } from '../../features/row-pagination/rowPaginationFeature.utils'
4
- import type { Table, Table_Internal } from '../../types/Table'
4
+ import type { Table_Internal } from '../../types/Table'
5
5
  import type { RowModel } from './coreRowModelsFeature.types'
6
6
  import type { TableFeatures } from '../../types/TableFeatures'
7
7
  import type { Row } from '../../types/Row'
@@ -15,9 +15,10 @@ import type { RowData } from '../../types/type-utils'
15
15
  export function createCoreRowModel<
16
16
  TFeatures extends TableFeatures,
17
17
  TData extends RowData,
18
- >(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
19
- return (_table) => {
20
- const table = _table as unknown as Table_Internal<TFeatures, TData>
18
+ >(): (
19
+ table: Table_Internal<TFeatures, TData>,
20
+ ) => () => RowModel<TFeatures, TData> {
21
+ return (table) => {
21
22
  return tableMemo({
22
23
  feature: 'coreRowModelsFeature',
23
24
  table,
@@ -43,7 +44,7 @@ function _createCoreRowModel<
43
44
  const rowModel: RowModel<TFeatures, TData> = {
44
45
  rows: [],
45
46
  flatRows: [],
46
- rowsById: {},
47
+ rowsById: makeObjectMap(),
47
48
  }
48
49
 
49
50
  const accessRows = (
@@ -1,3 +1,4 @@
1
+ import { makeObjectMap } from '../../utils'
1
2
  import type { Table_Internal } from '../../types/Table'
2
3
  import type { RowData } from '../../types/type-utils'
3
4
  import type { TableFeatures } from '../../types/TableFeatures'
@@ -47,8 +48,9 @@ export const constructRow = <
47
48
  >
48
49
 
49
50
  // Only assign instance-specific properties
50
- row._uniqueValuesCache = {}
51
- row._valuesCache = {}
51
+ row._displayIndexCache = -1
52
+ row._uniqueValuesCache = makeObjectMap()
53
+ row._valuesCache = makeObjectMap()
52
54
  row.depth = depth
53
55
  row.id = id
54
56
  row.index = rowIndex
@@ -2,14 +2,17 @@ import { assignPrototypeAPIs, assignTableAPIs } from '../../utils'
2
2
  import {
3
3
  row_getAllCells,
4
4
  row_getAllCellsByColumnId,
5
+ row_getDisplayIndex,
5
6
  row_getLeafRows,
6
7
  row_getParentRow,
7
8
  row_getParentRows,
8
9
  row_getUniqueValues,
9
10
  row_getValue,
10
11
  row_renderValue,
12
+ table_getMaxSubRowDepth,
11
13
  table_getRow,
12
14
  table_getRowId,
15
+ table_getRowsInDisplayOrder,
13
16
  } from './coreRowsFeature.utils'
14
17
  import type { TableFeature } from '../../types/TableFeatures'
15
18
 
@@ -19,6 +22,9 @@ import type { TableFeature } from '../../types/TableFeatures'
19
22
  export const coreRowsFeature: TableFeature = {
20
23
  assignRowPrototype: (prototype, table) => {
21
24
  assignPrototypeAPIs('coreRowsFeature', prototype, table, {
25
+ row_getDisplayIndex: {
26
+ fn: (row) => row_getDisplayIndex(row),
27
+ },
22
28
  row_getAllCellsByColumnId: {
23
29
  fn: (row) => row_getAllCellsByColumnId(row),
24
30
  memoDeps: (row) => [row.getAllCells()],
@@ -29,6 +35,7 @@ export const coreRowsFeature: TableFeature = {
29
35
  },
30
36
  row_getLeafRows: {
31
37
  fn: (row) => row_getLeafRows(row),
38
+ memoDeps: (row) => [row.subRows],
32
39
  },
33
40
  row_getParentRow: {
34
41
  fn: (row) => row_getParentRow(row),
@@ -49,6 +56,16 @@ export const coreRowsFeature: TableFeature = {
49
56
  },
50
57
  constructTableAPIs: (table) => {
51
58
  assignTableAPIs('coreRowsFeature', table, {
59
+ table_getRowsInDisplayOrder: {
60
+ fn: () => table_getRowsInDisplayOrder(table),
61
+ memoDeps: () => [
62
+ table.getPrePaginatedRowModel().rows,
63
+ table.options.paginateExpandedRows,
64
+ table.options.paginateExpandedRows === false
65
+ ? table.atoms.expanded?.get()
66
+ : undefined,
67
+ ],
68
+ },
52
69
  table_getRowId: {
53
70
  fn: (originalRow, index, parent) =>
54
71
  table_getRowId(originalRow, table, index, parent),
@@ -57,6 +74,10 @@ export const coreRowsFeature: TableFeature = {
57
74
  fn: (id: string, searchAll?: boolean) =>
58
75
  table_getRow(table, id, searchAll),
59
76
  },
77
+ table_getMaxSubRowDepth: {
78
+ fn: () => table_getMaxSubRowDepth(table),
79
+ memoDeps: () => [table.getCoreRowModel()],
80
+ },
60
81
  })
61
82
  },
62
83
  }
@@ -3,11 +3,26 @@ import type { RowData } from '../../types/type-utils'
3
3
  import type { TableFeatures } from '../../types/TableFeatures'
4
4
  import type { Row } from '../../types/Row'
5
5
  import type { Cell } from '../../types/Cell'
6
+ import type { Column } from '../../types/Column'
6
7
 
7
8
  export interface Row_CoreProperties<
8
- TFeatures extends TableFeatures,
9
- TData extends RowData,
9
+ in out TFeatures extends TableFeatures,
10
+ in out TData extends RowData,
10
11
  > {
12
+ _cellsCache?: WeakMap<
13
+ Column<TFeatures, TData, unknown>,
14
+ Cell<TFeatures, TData, unknown>
15
+ >
16
+ /**
17
+ * Internal cache used while resolving the current display order.
18
+ *
19
+ * This value may be stale until display order is recomputed. Use
20
+ * `row.getDisplayIndex()` instead; it refreshes and validates the cached
21
+ * position before returning it.
22
+ *
23
+ * @internal
24
+ */
25
+ _displayIndexCache: number
11
26
  _uniqueValuesCache: Record<string, unknown>
12
27
  _valuesCache: Record<string, unknown>
13
28
  /**
@@ -45,9 +60,16 @@ export interface Row_CoreProperties<
45
60
  }
46
61
 
47
62
  export interface Row_Row<
48
- TFeatures extends TableFeatures,
49
- TData extends RowData,
63
+ in out TFeatures extends TableFeatures,
64
+ in out TData extends RowData,
50
65
  > extends Row_CoreProperties<TFeatures, TData> {
66
+ /**
67
+ * Returns the zero-based index of the row in the current display order
68
+ * before pagination, or `-1` if the row is not in that model. Use this for
69
+ * display row-number columns instead of `row.index` or the internal
70
+ * `_displayIndexCache` field.
71
+ */
72
+ getDisplayIndex: () => number
51
73
  /**
52
74
  * Builds a lookup of this row's cells keyed by leaf column id.
53
75
  */
@@ -83,8 +105,8 @@ export interface Row_Row<
83
105
  }
84
106
 
85
107
  export interface TableOptions_Rows<
86
- TFeatures extends TableFeatures,
87
- TData extends RowData,
108
+ in out TFeatures extends TableFeatures,
109
+ in out TData extends RowData,
88
110
  > {
89
111
  /**
90
112
  * This optional function is used to derive a unique ID for any given row. If not provided the rows index is used (nested rows join together with `.` using their grandparents' index eg. `index.index.index`). If you need to identify individual rows that are originating from any server-side operations, it's suggested you use this function to return an ID that makes sense regardless of network IO/ambiguity eg. a userId, taskId, database ID field, etc.
@@ -106,9 +128,24 @@ export interface TableOptions_Rows<
106
128
  }
107
129
 
108
130
  export interface Table_Rows<
109
- TFeatures extends TableFeatures,
110
- TData extends RowData,
131
+ in out TFeatures extends TableFeatures,
132
+ in out TData extends RowData,
111
133
  > {
134
+ /**
135
+ * Returns the deepest structural row depth in the core row model.
136
+ * Root rows are depth `0`, direct sub-rows are depth `1`, and so on.
137
+ */
138
+ getMaxSubRowDepth: () => number
139
+ /**
140
+ * Returns the rows in the current display order and assigns their display
141
+ * indexes. When expanded rows bypass pagination, expanded descendants are
142
+ * included in this order. This is the memoized source for
143
+ * `row.getDisplayIndex()`.
144
+ */
145
+ getRowsInDisplayOrder: () => Array<Row<TFeatures, TData>>
146
+ /**
147
+ * Returns the row id for a given row.
148
+ */
112
149
  getRowId: (_: TData, index: number, parent?: Row<TFeatures, TData>) => string
113
150
  /**
114
151
  * Returns the row with the given ID.