@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
@@ -1,12 +1,15 @@
1
1
  import { table_getPinnedVisibleLeafColumns } from '../column-pinning/columnPinningFeature.utils'
2
- import { cloneState } from '../../utils'
2
+ import { callMemoOrStaticFn, cloneState, makeObjectMap } from '../../utils'
3
3
  import type { GroupingState } from '../column-grouping/columnGroupingFeature.types'
4
4
  import type { CellData, RowData, Updater } from '../../types/type-utils'
5
5
  import type { TableFeatures } from '../../types/TableFeatures'
6
6
  import type { Table_Internal } from '../../types/Table'
7
- import type { Column_Internal } from '../../types/Column'
7
+ import type { Column, Column_Internal } from '../../types/Column'
8
8
  import type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'
9
- import type { ColumnOrderState } from './columnOrderingFeature.types'
9
+ import type {
10
+ ColumnIndexes,
11
+ ColumnOrderState,
12
+ } from './columnOrderingFeature.types'
10
13
 
11
14
  /**
12
15
  * Creates the default column order state.
@@ -23,10 +26,46 @@ export function getDefaultColumnOrderState(): ColumnOrderState {
23
26
  return []
24
27
  }
25
28
 
29
+ /**
30
+ * Builds column-id to index records for each visible pinning region.
31
+ *
32
+ * All four regions are built in one pass so a single memo entry serves every
33
+ * `column_getIndex` lookup without per-column scans.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const indexes = table_getColumnIndexes(table)
38
+ * ```
39
+ */
40
+ export function table_getColumnIndexes<
41
+ TFeatures extends TableFeatures,
42
+ TData extends RowData,
43
+ >(table: Table_Internal<TFeatures, TData>): ColumnIndexes {
44
+ const buildIndexes = (
45
+ columns: ReadonlyArray<
46
+ | Column<TFeatures, TData, unknown>
47
+ | Column_Internal<TFeatures, TData, unknown>
48
+ >,
49
+ ): Record<string, number> => {
50
+ const indexes = makeObjectMap<number>()
51
+ for (let i = 0; i < columns.length; i++) {
52
+ indexes[columns[i]!.id] = i
53
+ }
54
+ return indexes
55
+ }
56
+
57
+ return {
58
+ all: buildIndexes(table_getPinnedVisibleLeafColumns(table)),
59
+ center: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'center')),
60
+ start: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'start')),
61
+ end: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'end')),
62
+ }
63
+ }
64
+
26
65
  /**
27
66
  * Finds this column's index within a visible pinning region.
28
67
  *
29
- * Pass `'left'`, `'center'`, or `'right'` to search that region; omit the
68
+ * Pass `'start'`, `'center'`, or `'end'` to search that region; omit the
30
69
  * position to search the full visible leaf column list.
31
70
  *
32
71
  * @example
@@ -42,8 +81,20 @@ export function column_getIndex<
42
81
  column: Column_Internal<TFeatures, TData, TValue>,
43
82
  position?: ColumnPinningPosition | 'center',
44
83
  ) {
45
- const columns = table_getPinnedVisibleLeafColumns(column.table, position)
46
- return columns.findIndex((d) => d.id === column.id)
84
+ const indexes = callMemoOrStaticFn(
85
+ column.table,
86
+ 'getColumnIndexes',
87
+ table_getColumnIndexes,
88
+ )
89
+ const key =
90
+ position === 'start'
91
+ ? 'start'
92
+ : position === 'end'
93
+ ? 'end'
94
+ : position === 'center'
95
+ ? 'center'
96
+ : 'all'
97
+ return indexes[key][column.id] ?? -1
47
98
  }
48
99
 
49
100
  /**
@@ -53,7 +104,7 @@ export function column_getIndex<
53
104
  *
54
105
  * @example
55
106
  * ```ts
56
- * const isFirst = column_getIsFirstColumn(column, 'left')
107
+ * const isFirst = column_getIsFirstColumn(column, 'start')
57
108
  * ```
58
109
  */
59
110
  export function column_getIsFirstColumn<
@@ -75,7 +126,7 @@ export function column_getIsFirstColumn<
75
126
  *
76
127
  * @example
77
128
  * ```ts
78
- * const isLast = column_getIsLastColumn(column, 'right')
129
+ * const isLast = column_getIsLastColumn(column, 'end')
79
130
  * ```
80
131
  */
81
132
  export function column_getIsLastColumn<
@@ -12,36 +12,41 @@ import {
12
12
  column_pin,
13
13
  getDefaultColumnPinningState,
14
14
  row_getCenterVisibleCells,
15
- row_getLeftVisibleCells,
16
- row_getRightVisibleCells,
15
+ row_getEndVisibleCells,
16
+ row_getStartVisibleCells,
17
17
  table_getCenterFlatHeaders,
18
18
  table_getCenterFooterGroups,
19
19
  table_getCenterHeaderGroups,
20
20
  table_getCenterLeafColumns,
21
21
  table_getCenterLeafHeaders,
22
22
  table_getCenterVisibleLeafColumns,
23
+ table_getEndFlatHeaders,
24
+ table_getEndFooterGroups,
25
+ table_getEndHeaderGroups,
26
+ table_getEndLeafColumns,
27
+ table_getEndLeafHeaders,
28
+ table_getEndVisibleLeafColumns,
23
29
  table_getIsSomeColumnsPinned,
24
- table_getLeftFlatHeaders,
25
- table_getLeftFooterGroups,
26
- table_getLeftHeaderGroups,
27
- table_getLeftLeafColumns,
28
- table_getLeftLeafHeaders,
29
- table_getLeftVisibleLeafColumns,
30
30
  table_getPinnedLeafColumns,
31
31
  table_getPinnedVisibleLeafColumns,
32
- table_getRightFlatHeaders,
33
- table_getRightFooterGroups,
34
- table_getRightHeaderGroups,
35
- table_getRightLeafColumns,
36
- table_getRightLeafHeaders,
37
- table_getRightVisibleLeafColumns,
32
+ table_getStartFlatHeaders,
33
+ table_getStartFooterGroups,
34
+ table_getStartHeaderGroups,
35
+ table_getStartLeafColumns,
36
+ table_getStartLeafHeaders,
37
+ table_getStartVisibleLeafColumns,
38
38
  table_resetColumnPinning,
39
39
  table_setColumnPinning,
40
40
  } from './columnPinningFeature.utils'
41
41
  import type { TableFeature } from '../../types/TableFeatures'
42
42
 
43
43
  /**
44
- * Feature that adds column pinning state and APIs for left, center, and right regions.
44
+ * Feature that adds column pinning state and APIs for logical start, center,
45
+ * and end regions.
46
+ *
47
+ * In LTR languages/layouts, start usually corresponds to left and end to
48
+ * right. In RTL languages/layouts, start usually corresponds to right and end
49
+ * to left.
45
50
  */
46
51
  export const columnPinningFeature: TableFeature = {
47
52
  getInitialState: (initialState) => {
@@ -87,19 +92,19 @@ export const columnPinningFeature: TableFeature = {
87
92
  row.table.atoms.columnVisibility?.get(),
88
93
  ],
89
94
  },
90
- row_getLeftVisibleCells: {
91
- fn: (row) => row_getLeftVisibleCells(row),
95
+ row_getStartVisibleCells: {
96
+ fn: (row) => row_getStartVisibleCells(row),
92
97
  memoDeps: (row) => [
93
98
  row.getAllCells(),
94
- row.table.atoms.columnPinning?.get()?.left,
99
+ row.table.atoms.columnPinning?.get()?.start,
95
100
  row.table.atoms.columnVisibility?.get(),
96
101
  ],
97
102
  },
98
- row_getRightVisibleCells: {
99
- fn: (row) => row_getRightVisibleCells(row),
103
+ row_getEndVisibleCells: {
104
+ fn: (row) => row_getEndVisibleCells(row),
100
105
  memoDeps: (row) => [
101
106
  row.getAllCells(),
102
- row.table.atoms.columnPinning?.get()?.right,
107
+ row.table.atoms.columnPinning?.get()?.end,
103
108
  row.table.atoms.columnVisibility?.get(),
104
109
  ],
105
110
  },
@@ -118,8 +123,8 @@ export const columnPinningFeature: TableFeature = {
118
123
  fn: (position) => table_getIsSomeColumnsPinned(table, position),
119
124
  },
120
125
  // header groups
121
- table_getLeftHeaderGroups: {
122
- fn: () => table_getLeftHeaderGroups(table),
126
+ table_getStartHeaderGroups: {
127
+ fn: () => table_getStartHeaderGroups(table),
123
128
  memoDeps: () => [
124
129
  table.getAllColumns(),
125
130
  callMemoOrStaticFn(
@@ -127,7 +132,7 @@ export const columnPinningFeature: TableFeature = {
127
132
  'getVisibleLeafColumns',
128
133
  table_getVisibleLeafColumns,
129
134
  ),
130
- table.atoms.columnPinning?.get()?.left,
135
+ table.atoms.columnPinning?.get()?.start,
131
136
  table.atoms.columnOrder?.get(),
132
137
  ],
133
138
  },
@@ -144,8 +149,8 @@ export const columnPinningFeature: TableFeature = {
144
149
  table.atoms.columnOrder?.get(),
145
150
  ],
146
151
  },
147
- table_getRightHeaderGroups: {
148
- fn: () => table_getRightHeaderGroups(table),
152
+ table_getEndHeaderGroups: {
153
+ fn: () => table_getEndHeaderGroups(table),
149
154
  memoDeps: () => [
150
155
  table.getAllColumns(),
151
156
  callMemoOrStaticFn(
@@ -153,18 +158,18 @@ export const columnPinningFeature: TableFeature = {
153
158
  'getVisibleLeafColumns',
154
159
  table_getVisibleLeafColumns,
155
160
  ),
156
- table.atoms.columnPinning?.get()?.right,
161
+ table.atoms.columnPinning?.get()?.end,
157
162
  table.atoms.columnOrder?.get(),
158
163
  ],
159
164
  },
160
165
  // footer groups
161
- table_getLeftFooterGroups: {
162
- fn: () => table_getLeftFooterGroups(table),
166
+ table_getStartFooterGroups: {
167
+ fn: () => table_getStartFooterGroups(table),
163
168
  memoDeps: () => [
164
169
  callMemoOrStaticFn(
165
170
  table,
166
- 'getLeftHeaderGroups',
167
- table_getLeftHeaderGroups,
171
+ 'getStartHeaderGroups',
172
+ table_getStartHeaderGroups,
168
173
  ),
169
174
  ],
170
175
  },
@@ -178,34 +183,34 @@ export const columnPinningFeature: TableFeature = {
178
183
  ),
179
184
  ],
180
185
  },
181
- table_getRightFooterGroups: {
182
- fn: () => table_getRightFooterGroups(table),
186
+ table_getEndFooterGroups: {
187
+ fn: () => table_getEndFooterGroups(table),
183
188
  memoDeps: () => [
184
189
  callMemoOrStaticFn(
185
190
  table,
186
- 'getRightHeaderGroups',
187
- table_getRightHeaderGroups,
191
+ 'getEndHeaderGroups',
192
+ table_getEndHeaderGroups,
188
193
  ),
189
194
  ],
190
195
  },
191
196
  // flat headers
192
- table_getLeftFlatHeaders: {
193
- fn: () => table_getLeftFlatHeaders(table),
197
+ table_getStartFlatHeaders: {
198
+ fn: () => table_getStartFlatHeaders(table),
194
199
  memoDeps: () => [
195
200
  callMemoOrStaticFn(
196
201
  table,
197
- 'getLeftHeaderGroups',
198
- table_getLeftHeaderGroups,
202
+ 'getStartHeaderGroups',
203
+ table_getStartHeaderGroups,
199
204
  ),
200
205
  ],
201
206
  },
202
- table_getRightFlatHeaders: {
203
- fn: () => table_getRightFlatHeaders(table),
207
+ table_getEndFlatHeaders: {
208
+ fn: () => table_getEndFlatHeaders(table),
204
209
  memoDeps: () => [
205
210
  callMemoOrStaticFn(
206
211
  table,
207
- 'getRightHeaderGroups',
208
- table_getRightHeaderGroups,
212
+ 'getEndHeaderGroups',
213
+ table_getEndHeaderGroups,
209
214
  ),
210
215
  ],
211
216
  },
@@ -220,23 +225,23 @@ export const columnPinningFeature: TableFeature = {
220
225
  ],
221
226
  },
222
227
  // leaf headers
223
- table_getLeftLeafHeaders: {
224
- fn: () => table_getLeftLeafHeaders(table),
228
+ table_getStartLeafHeaders: {
229
+ fn: () => table_getStartLeafHeaders(table),
225
230
  memoDeps: () => [
226
231
  callMemoOrStaticFn(
227
232
  table,
228
- 'getLeftHeaderGroups',
229
- table_getLeftHeaderGroups,
233
+ 'getStartHeaderGroups',
234
+ table_getStartHeaderGroups,
230
235
  ),
231
236
  ],
232
237
  },
233
- table_getRightLeafHeaders: {
234
- fn: () => table_getRightLeafHeaders(table),
238
+ table_getEndLeafHeaders: {
239
+ fn: () => table_getEndLeafHeaders(table),
235
240
  memoDeps: () => [
236
241
  callMemoOrStaticFn(
237
242
  table,
238
- 'getRightHeaderGroups',
239
- table_getRightHeaderGroups,
243
+ 'getEndHeaderGroups',
244
+ table_getEndHeaderGroups,
240
245
  ),
241
246
  ],
242
247
  },
@@ -251,20 +256,24 @@ export const columnPinningFeature: TableFeature = {
251
256
  ],
252
257
  },
253
258
  // leaf columns
254
- table_getLeftLeafColumns: {
255
- fn: () => table_getLeftLeafColumns(table),
259
+ table_getStartLeafColumns: {
260
+ fn: () => table_getStartLeafColumns(table),
256
261
  memoDeps: () => [
257
262
  table.options.columns,
258
263
  table.atoms.columnPinning?.get(),
259
264
  table.atoms.columnOrder?.get(),
265
+ table.atoms.grouping?.get(),
266
+ table.options.groupedColumnMode,
260
267
  ],
261
268
  },
262
- table_getRightLeafColumns: {
263
- fn: () => table_getRightLeafColumns(table),
269
+ table_getEndLeafColumns: {
270
+ fn: () => table_getEndLeafColumns(table),
264
271
  memoDeps: () => [
265
272
  table.options.columns,
266
273
  table.atoms.columnPinning?.get(),
267
274
  table.atoms.columnOrder?.get(),
275
+ table.atoms.grouping?.get(),
276
+ table.options.groupedColumnMode,
268
277
  ],
269
278
  },
270
279
  table_getCenterLeafColumns: {
@@ -273,6 +282,8 @@ export const columnPinningFeature: TableFeature = {
273
282
  table.options.columns,
274
283
  table.atoms.columnPinning?.get(),
275
284
  table.atoms.columnOrder?.get(),
285
+ table.atoms.grouping?.get(),
286
+ table.options.groupedColumnMode,
276
287
  ],
277
288
  },
278
289
  table_getPinnedLeafColumns: {
@@ -280,13 +291,15 @@ export const columnPinningFeature: TableFeature = {
280
291
  // must not memo here as it's just a shortcut function
281
292
  },
282
293
  // visible leaf columns
283
- table_getLeftVisibleLeafColumns: {
284
- fn: () => table_getLeftVisibleLeafColumns(table),
294
+ table_getStartVisibleLeafColumns: {
295
+ fn: () => table_getStartVisibleLeafColumns(table),
285
296
  memoDeps: () => [
286
297
  table.options.columns,
287
298
  table.atoms.columnPinning?.get(),
288
299
  table.atoms.columnVisibility?.get(),
289
300
  table.atoms.columnOrder?.get(),
301
+ table.atoms.grouping?.get(),
302
+ table.options.groupedColumnMode,
290
303
  ],
291
304
  },
292
305
  table_getCenterVisibleLeafColumns: {
@@ -296,15 +309,19 @@ export const columnPinningFeature: TableFeature = {
296
309
  table.atoms.columnPinning?.get(),
297
310
  table.atoms.columnVisibility?.get(),
298
311
  table.atoms.columnOrder?.get(),
312
+ table.atoms.grouping?.get(),
313
+ table.options.groupedColumnMode,
299
314
  ],
300
315
  },
301
- table_getRightVisibleLeafColumns: {
302
- fn: () => table_getRightVisibleLeafColumns(table),
316
+ table_getEndVisibleLeafColumns: {
317
+ fn: () => table_getEndVisibleLeafColumns(table),
303
318
  memoDeps: () => [
304
319
  table.options.columns,
305
320
  table.atoms.columnPinning?.get(),
306
321
  table.atoms.columnVisibility?.get(),
307
322
  table.atoms.columnOrder?.get(),
323
+ table.atoms.grouping?.get(),
324
+ table.options.groupedColumnMode,
308
325
  ],
309
326
  },
310
327
  table_getPinnedVisibleLeafColumns: {
@@ -5,11 +5,18 @@ 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
- export type ColumnPinningPosition = false | 'left' | 'right'
8
+ /**
9
+ * Logical column pinning region.
10
+ *
11
+ * In LTR languages/layouts, `start` usually corresponds to left and `end`
12
+ * usually corresponds to right. In RTL languages/layouts, `start` usually
13
+ * corresponds to right and `end` usually corresponds to left.
14
+ */
15
+ export type ColumnPinningPosition = false | 'start' | 'end'
9
16
 
10
17
  export interface ColumnPinningState {
11
- left: Array<string>
12
- right: Array<string>
18
+ start: Array<string>
19
+ end: Array<string>
13
20
  }
14
21
 
15
22
  export interface TableState_ColumnPinning {
@@ -18,7 +25,11 @@ export interface TableState_ColumnPinning {
18
25
 
19
26
  export interface TableOptions_ColumnPinning {
20
27
  /**
21
- * Allows columns to be pinned into left and right regions.
28
+ * Allows columns to be pinned into logical start and end regions.
29
+ *
30
+ * In LTR languages/layouts, start usually corresponds to left and end to
31
+ * right. In RTL languages/layouts, start usually corresponds to right and end
32
+ * to left.
22
33
  *
23
34
  * Defaults to `true`; column-level `enablePinning` can still opt individual
24
35
  * columns out.
@@ -52,7 +63,7 @@ export interface Column_ColumnPinning {
52
63
  */
53
64
  getCanPin: () => boolean
54
65
  /**
55
- * Reads the column's pinned position: `'left'`, `'right'`, or `false`.
66
+ * Reads the column's logical pinned position: `'start'`, `'end'`, or `false`.
56
67
  */
57
68
  getIsPinned: () => ColumnPinningPosition
58
69
  /**
@@ -60,33 +71,33 @@ export interface Column_ColumnPinning {
60
71
  */
61
72
  getPinnedIndex: () => number
62
73
  /**
63
- * Pins this column's leaf columns left or right, or unpins them when `false`
64
- * is passed.
74
+ * Pins this column's leaf columns to logical start or end, or unpins them
75
+ * when `false` is passed.
65
76
  */
66
77
  pin: (position: ColumnPinningPosition) => void
67
78
  }
68
79
 
69
80
  export interface Row_ColumnPinning<
70
- TFeatures extends TableFeatures,
71
- TData extends RowData,
81
+ in out TFeatures extends TableFeatures,
82
+ in out TData extends RowData,
72
83
  > {
73
84
  /**
74
- * Gets visible row cells whose columns are not pinned left or right.
85
+ * Gets visible row cells whose columns are not pinned start or end.
75
86
  */
76
87
  getCenterVisibleCells: () => Array<Cell<TFeatures, TData, unknown>>
77
88
  /**
78
- * Gets visible row cells whose columns are pinned left.
89
+ * Gets visible row cells whose columns are pinned to logical start.
79
90
  */
80
- getLeftVisibleCells: () => Array<Cell<TFeatures, TData, unknown>>
91
+ getStartVisibleCells: () => Array<Cell<TFeatures, TData, unknown>>
81
92
  /**
82
- * Gets visible row cells whose columns are pinned right.
93
+ * Gets visible row cells whose columns are pinned to logical end.
83
94
  */
84
- getRightVisibleCells: () => Array<Cell<TFeatures, TData, unknown>>
95
+ getEndVisibleCells: () => Array<Cell<TFeatures, TData, unknown>>
85
96
  }
86
97
 
87
98
  export interface Table_ColumnPinning<
88
- TFeatures extends TableFeatures,
89
- TData extends RowData,
99
+ in out TFeatures extends TableFeatures,
100
+ in out TData extends RowData,
90
101
  > {
91
102
  /**
92
103
  * Builds flat center-region headers for columns that are not pinned,
@@ -102,7 +113,7 @@ export interface Table_ColumnPinning<
102
113
  */
103
114
  getCenterHeaderGroups: () => Array<HeaderGroup<TFeatures, TData>>
104
115
  /**
105
- * Gets leaf columns that are not pinned left or right.
116
+ * Gets leaf columns that are not pinned start or end.
106
117
  */
107
118
  getCenterLeafColumns: () => Array<Column<TFeatures, TData, unknown>>
108
119
  /**
@@ -118,59 +129,59 @@ export interface Table_ColumnPinning<
118
129
  */
119
130
  getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean
120
131
  /**
121
- * Builds flat left-region headers for pinned columns, including parent
132
+ * Builds flat logical start-region headers for pinned columns, including parent
122
133
  * headers.
123
134
  */
124
- getLeftFlatHeaders: () => Array<Header<TFeatures, TData, unknown>>
135
+ getStartFlatHeaders: () => Array<Header<TFeatures, TData, unknown>>
125
136
  /**
126
- * Builds footer groups for left-pinned columns.
137
+ * Builds footer groups for logical start-pinned columns.
127
138
  */
128
- getLeftFooterGroups: () => Array<HeaderGroup<TFeatures, TData>>
139
+ getStartFooterGroups: () => Array<HeaderGroup<TFeatures, TData>>
129
140
  /**
130
- * Builds header groups for left-pinned columns.
141
+ * Builds header groups for logical start-pinned columns.
131
142
  */
132
- getLeftHeaderGroups: () => Array<HeaderGroup<TFeatures, TData>>
143
+ getStartHeaderGroups: () => Array<HeaderGroup<TFeatures, TData>>
133
144
  /**
134
- * Gets leaf columns pinned to the left region in pinning-state order.
145
+ * Gets leaf columns pinned to the logical start region in pinning-state order.
135
146
  */
136
- getLeftLeafColumns: () => Array<Column<TFeatures, TData, unknown>>
147
+ getStartLeafColumns: () => Array<Column<TFeatures, TData, unknown>>
137
148
  /**
138
- * Builds leaf headers for left-pinned columns.
149
+ * Builds leaf headers for logical start-pinned columns.
139
150
  */
140
- getLeftLeafHeaders: () => Array<Header<TFeatures, TData, unknown>>
151
+ getStartLeafHeaders: () => Array<Header<TFeatures, TData, unknown>>
141
152
  /**
142
- * Lists visible leaf columns in the left pinned region.
153
+ * Lists visible leaf columns in the logical start pinned region.
143
154
  */
144
- getLeftVisibleLeafColumns: () => Array<Column<TFeatures, TData, unknown>>
155
+ getStartVisibleLeafColumns: () => Array<Column<TFeatures, TData, unknown>>
145
156
  /**
146
- * Builds flat right-region headers for pinned columns, including parent
157
+ * Builds flat logical end-region headers for pinned columns, including parent
147
158
  * headers.
148
159
  */
149
- getRightFlatHeaders: () => Array<Header<TFeatures, TData, unknown>>
160
+ getEndFlatHeaders: () => Array<Header<TFeatures, TData, unknown>>
150
161
  /**
151
- * Builds footer groups for right-pinned columns.
162
+ * Builds footer groups for logical end-pinned columns.
152
163
  */
153
- getRightFooterGroups: () => Array<HeaderGroup<TFeatures, TData>>
164
+ getEndFooterGroups: () => Array<HeaderGroup<TFeatures, TData>>
154
165
  /**
155
- * Builds header groups for right-pinned columns.
166
+ * Builds header groups for logical end-pinned columns.
156
167
  */
157
- getRightHeaderGroups: () => Array<HeaderGroup<TFeatures, TData>>
168
+ getEndHeaderGroups: () => Array<HeaderGroup<TFeatures, TData>>
158
169
  /**
159
- * Gets leaf columns pinned to the right region in pinning-state order.
170
+ * Gets leaf columns pinned to the logical end region in pinning-state order.
160
171
  */
161
- getRightLeafColumns: () => Array<Column<TFeatures, TData, unknown>>
172
+ getEndLeafColumns: () => Array<Column<TFeatures, TData, unknown>>
162
173
  /**
163
- * Builds leaf headers for right-pinned columns.
174
+ * Builds leaf headers for logical end-pinned columns.
164
175
  */
165
- getRightLeafHeaders: () => Array<Header<TFeatures, TData, unknown>>
176
+ getEndLeafHeaders: () => Array<Header<TFeatures, TData, unknown>>
166
177
  /**
167
- * Lists visible leaf columns in the right pinned region.
178
+ * Lists visible leaf columns in the logical end pinned region.
168
179
  */
169
- getRightVisibleLeafColumns: () => Array<Column<TFeatures, TData, unknown>>
180
+ getEndVisibleLeafColumns: () => Array<Column<TFeatures, TData, unknown>>
170
181
  /**
171
182
  * Resets `columnPinning` to `initialState.columnPinning`.
172
183
  *
173
- * Pass `true` to ignore initial state and reset to empty left/right arrays.
184
+ * Pass `true` to ignore initial state and reset to empty start/end arrays.
174
185
  */
175
186
  resetColumnPinning: (defaultState?: boolean) => void
176
187
  /**