@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,18 +1,26 @@
1
1
  import {
2
2
  table_getCenterHeaderGroups,
3
- table_getLeftHeaderGroups,
3
+ table_getEndHeaderGroups,
4
4
  table_getPinnedVisibleLeafColumns,
5
- table_getRightHeaderGroups,
5
+ table_getStartHeaderGroups,
6
6
  } from '../column-pinning/columnPinningFeature.utils'
7
- import { column_getIndex } from '../column-ordering/columnOrderingFeature.utils'
8
- import { callMemoOrStaticFn, cloneState } from '../../utils'
7
+ import {
8
+ callMemoOrStaticFn,
9
+ cloneState,
10
+ hasOwn,
11
+ makeObjectMap,
12
+ } from '../../utils'
9
13
  import type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'
10
14
  import type { CellData, RowData, Updater } from '../../types/type-utils'
11
15
  import type { TableFeatures } from '../../types/TableFeatures'
12
16
  import type { Table_Internal } from '../../types/Table'
13
17
  import type { Header } from '../../types/Header'
14
18
  import type { Column_Internal } from '../../types/Column'
15
- import type { ColumnSizingState } from './columnSizingFeature.types'
19
+ import type {
20
+ ColumnOffsets,
21
+ ColumnOffsetsByPosition,
22
+ ColumnSizingState,
23
+ } from './columnSizingFeature.types'
16
24
 
17
25
  /**
18
26
  * Creates the default committed column sizing state.
@@ -26,7 +34,7 @@ import type { ColumnSizingState } from './columnSizingFeature.types'
26
34
  * ```
27
35
  */
28
36
  export function getDefaultColumnSizingState(): ColumnSizingState {
29
- return {}
37
+ return makeObjectMap()
30
38
  }
31
39
 
32
40
  /**
@@ -66,7 +74,11 @@ export function column_getSize<
66
74
  TValue extends CellData = CellData,
67
75
  >(column: Column_Internal<TFeatures, TData, TValue>): number {
68
76
  const defaultSizes = getDefaultColumnSizingColumnDef()
69
- const columnSize = column.table.atoms.columnSizing?.get()?.[column.id]
77
+ const columnSizing = column.table.atoms.columnSizing?.get()
78
+ const columnSize =
79
+ columnSizing && hasOwn(columnSizing, column.id)
80
+ ? columnSizing[column.id]
81
+ : undefined
70
82
 
71
83
  return Math.min(
72
84
  Math.max(
@@ -77,15 +89,98 @@ export function column_getSize<
77
89
  )
78
90
  }
79
91
 
92
+ function buildColumnOffsets<
93
+ TFeatures extends TableFeatures,
94
+ TData extends RowData,
95
+ >(columns: Array<Column_Internal<TFeatures, TData, unknown>>): ColumnOffsets {
96
+ const starts = makeObjectMap<number>()
97
+ const afters = makeObjectMap<number>()
98
+ const sizes = new Array<number>(columns.length)
99
+
100
+ let start = 0
101
+ for (let i = 0; i < columns.length; i++) {
102
+ const column = columns[i]!
103
+ const size = callMemoOrStaticFn(column, 'getSize', column_getSize)
104
+ sizes[i] = size
105
+ starts[column.id] = start
106
+ start += size
107
+ }
108
+
109
+ let after = 0
110
+ for (let i = columns.length - 1; i >= 0; i--) {
111
+ afters[columns[i]!.id] = after
112
+ after += sizes[i]!
113
+ }
114
+
115
+ return { starts, afters }
116
+ }
117
+
118
+ /**
119
+ * Builds start and after offset maps for every visible leaf column, computed
120
+ * once per pinning region plus the full visible list.
121
+ *
122
+ * A single table-level memo of this result backs all `column.getStart()` and
123
+ * `column.getAfter()` calls with O(1) lookups.
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * const offsets = table_getColumnOffsets(table)
128
+ * const startOffset = offsets.start.starts[column.id]
129
+ * ```
130
+ */
131
+ export function table_getColumnOffsets<
132
+ TFeatures extends TableFeatures,
133
+ TData extends RowData,
134
+ >(table: Table_Internal<TFeatures, TData>): ColumnOffsetsByPosition {
135
+ return {
136
+ all: buildColumnOffsets(
137
+ table_getPinnedVisibleLeafColumns(table) as Array<
138
+ Column_Internal<TFeatures, TData, unknown>
139
+ >,
140
+ ),
141
+ center: buildColumnOffsets(
142
+ table_getPinnedVisibleLeafColumns(table, 'center') as Array<
143
+ Column_Internal<TFeatures, TData, unknown>
144
+ >,
145
+ ),
146
+ start: buildColumnOffsets(
147
+ table_getPinnedVisibleLeafColumns(table, 'start') as Array<
148
+ Column_Internal<TFeatures, TData, unknown>
149
+ >,
150
+ ),
151
+ end: buildColumnOffsets(
152
+ table_getPinnedVisibleLeafColumns(table, 'end') as Array<
153
+ Column_Internal<TFeatures, TData, unknown>
154
+ >,
155
+ ),
156
+ }
157
+ }
158
+
159
+ function toOffsetsKey(
160
+ position: ColumnPinningPosition | 'center' | undefined,
161
+ ): keyof ColumnOffsetsByPosition {
162
+ return position === 'start'
163
+ ? 'start'
164
+ : position === 'end'
165
+ ? 'end'
166
+ : position === 'center'
167
+ ? 'center'
168
+ : 'all' // undefined | false use the full visible list
169
+ }
170
+
80
171
  /**
81
172
  * Computes the offset from the start edge of a pinning region to this column.
82
173
  *
83
174
  * The value is the sum of all previous visible leaf column sizes in the
84
- * requested `'left'`, `'center'`, or `'right'` region.
175
+ * requested `'start'`, `'center'`, or `'end'` region.
176
+ *
177
+ * `start` and `end` are logical positions. In LTR languages/layouts, `start`
178
+ * usually corresponds to left and `end` to right. In RTL languages/layouts,
179
+ * `start` usually corresponds to right and `end` to left.
85
180
  *
86
181
  * @example
87
182
  * ```ts
88
- * const leftOffset = column_getStart(column, 'left')
183
+ * const startOffset = column_getStart(column, 'start')
89
184
  * ```
90
185
  */
91
186
  export function column_getStart<
@@ -94,28 +189,14 @@ export function column_getStart<
94
189
  TValue extends CellData = CellData,
95
190
  >(
96
191
  column: Column_Internal<TFeatures, TData, TValue>,
97
- position: ColumnPinningPosition | 'center',
192
+ position?: ColumnPinningPosition | 'center',
98
193
  ): number {
99
- const index = callMemoOrStaticFn(
100
- column,
101
- 'getIndex',
102
- column_getIndex,
103
- position,
104
- )
105
- if (index <= 0) return 0
106
-
107
- const visibleLeafColumns = callMemoOrStaticFn(
194
+ const offsets = callMemoOrStaticFn(
108
195
  column.table,
109
- 'getPinnedVisibleLeafColumns',
110
- table_getPinnedVisibleLeafColumns,
111
- position,
112
- )
113
-
114
- const prevColumn = visibleLeafColumns[index - 1]!
115
- return (
116
- callMemoOrStaticFn(prevColumn, 'getStart', column_getStart, position) +
117
- callMemoOrStaticFn(prevColumn, 'getSize', column_getSize)
196
+ 'getColumnOffsets',
197
+ table_getColumnOffsets,
118
198
  )
199
+ return offsets[toOffsetsKey(position)].starts[column.id] ?? 0
119
200
  }
120
201
 
121
202
  /**
@@ -126,7 +207,7 @@ export function column_getStart<
126
207
  *
127
208
  * @example
128
209
  * ```ts
129
- * const rightOffset = column_getAfter(column, 'right')
210
+ * const endOffset = column_getAfter(column, 'end')
130
211
  * ```
131
212
  */
132
213
  export function column_getAfter<
@@ -135,27 +216,14 @@ export function column_getAfter<
135
216
  TValue extends CellData = CellData,
136
217
  >(
137
218
  column: Column_Internal<TFeatures, TData, TValue>,
138
- position: ColumnPinningPosition | 'center',
219
+ position?: ColumnPinningPosition | 'center',
139
220
  ): number {
140
- const visibleLeafColumns = callMemoOrStaticFn(
221
+ const offsets = callMemoOrStaticFn(
141
222
  column.table,
142
- 'getPinnedVisibleLeafColumns',
143
- table_getPinnedVisibleLeafColumns,
144
- position,
145
- )
146
- const index = callMemoOrStaticFn(
147
- column,
148
- 'getIndex',
149
- column_getIndex,
150
- position,
151
- )
152
- if (index < 0 || index >= visibleLeafColumns.length - 1) return 0
153
-
154
- const nextColumn = visibleLeafColumns[index + 1]!
155
- return (
156
- callMemoOrStaticFn(nextColumn, 'getSize', column_getSize) +
157
- callMemoOrStaticFn(nextColumn, 'getAfter', column_getAfter, position)
223
+ 'getColumnOffsets',
224
+ table_getColumnOffsets,
158
225
  )
226
+ return offsets[toOffsetsKey(position)].afters[column.id] ?? 0
159
227
  }
160
228
 
161
229
  /**
@@ -174,7 +242,15 @@ export function column_resetSize<
174
242
  TData extends RowData,
175
243
  TValue extends CellData = CellData,
176
244
  >(column: Column_Internal<TFeatures, TData, TValue>) {
177
- table_setColumnSizing(column.table, ({ [column.id]: _, ...rest }) => {
245
+ table_setColumnSizing(column.table, (old) => {
246
+ const rest = makeObjectMap<number>()
247
+ const columnIds = Object.keys(old)
248
+ for (let i = 0; i < columnIds.length; i++) {
249
+ const columnId = columnIds[i]!
250
+ if (columnId !== column.id) {
251
+ rest[columnId] = old[columnId]!
252
+ }
253
+ }
178
254
  return rest
179
255
  })
180
256
  }
@@ -280,14 +356,19 @@ export function table_resetColumnSizing<
280
356
  >(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
281
357
  table_setColumnSizing(
282
358
  table,
283
- defaultState ? {} : cloneState(table.initialState.columnSizing ?? {}),
359
+ defaultState
360
+ ? makeObjectMap()
361
+ : Object.assign(
362
+ makeObjectMap<number>(),
363
+ cloneState(table.initialState.columnSizing ?? {}),
364
+ ),
284
365
  )
285
366
  }
286
367
 
287
368
  /**
288
369
  * Sums the rendered size of the full table header row.
289
370
  *
290
- * This includes left, center, and right columns in the main header group.
371
+ * This includes start, center, and end columns in the main header group.
291
372
  *
292
373
  * @example
293
374
  * ```ts
@@ -306,24 +387,24 @@ export function table_getTotalSize<
306
387
  }
307
388
 
308
389
  /**
309
- * Sums the rendered size of the left pinned header region.
390
+ * Sums the rendered size of the logical start pinned header region.
310
391
  *
311
- * An empty left pinning region returns `0`.
392
+ * An empty start pinning region returns `0`.
312
393
  *
313
394
  * @example
314
395
  * ```ts
315
- * const width = table_getLeftTotalSize(table)
396
+ * const width = table_getStartTotalSize(table)
316
397
  * ```
317
398
  */
318
- export function table_getLeftTotalSize<
399
+ export function table_getStartTotalSize<
319
400
  TFeatures extends TableFeatures,
320
401
  TData extends RowData,
321
402
  >(table: Table_Internal<TFeatures, TData>) {
322
403
  return (
323
404
  callMemoOrStaticFn(
324
405
  table,
325
- 'getLeftHeaderGroups',
326
- table_getLeftHeaderGroups,
406
+ 'getStartHeaderGroups',
407
+ table_getStartHeaderGroups,
327
408
  )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {
328
409
  return sum + header_getSize(header)
329
410
  }, 0) ?? 0
@@ -356,24 +437,24 @@ export function table_getCenterTotalSize<
356
437
  }
357
438
 
358
439
  /**
359
- * Sums the rendered size of the right pinned header region.
440
+ * Sums the rendered size of the logical end pinned header region.
360
441
  *
361
- * An empty right pinning region returns `0`.
442
+ * An empty end pinning region returns `0`.
362
443
  *
363
444
  * @example
364
445
  * ```ts
365
- * const width = table_getRightTotalSize(table)
446
+ * const width = table_getEndTotalSize(table)
366
447
  * ```
367
448
  */
368
- export function table_getRightTotalSize<
449
+ export function table_getEndTotalSize<
369
450
  TFeatures extends TableFeatures,
370
451
  TData extends RowData,
371
452
  >(table: Table_Internal<TFeatures, TData>) {
372
453
  return (
373
454
  callMemoOrStaticFn(
374
455
  table,
375
- 'getRightHeaderGroups',
376
- table_getRightHeaderGroups,
456
+ 'getEndHeaderGroups',
457
+ table_getEndHeaderGroups,
377
458
  )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {
378
459
  return sum + header_getSize(header)
379
460
  }, 0) ?? 0
@@ -88,7 +88,9 @@ export const columnVisibilityFeature: TableFeature = {
88
88
  memoDeps: () => [
89
89
  table.atoms.columnVisibility?.get(),
90
90
  table.atoms.columnOrder?.get(),
91
+ table.atoms.grouping?.get(),
91
92
  table.options.columns,
93
+ table.options.groupedColumnMode,
92
94
  ],
93
95
  },
94
96
  table_getVisibleLeafColumns: {
@@ -96,7 +98,9 @@ export const columnVisibilityFeature: TableFeature = {
96
98
  memoDeps: () => [
97
99
  table.atoms.columnVisibility?.get(),
98
100
  table.atoms.columnOrder?.get(),
101
+ table.atoms.grouping?.get(),
99
102
  table.options.columns,
103
+ table.options.groupedColumnMode,
100
104
  ],
101
105
  },
102
106
  table_setColumnVisibility: {
@@ -28,8 +28,8 @@ export type VisibilityDefaultOptions = Pick<
28
28
  >
29
29
 
30
30
  export interface Table_ColumnVisibility<
31
- TFeatures extends TableFeatures,
32
- TData extends RowData,
31
+ in out TFeatures extends TableFeatures,
32
+ in out TData extends RowData,
33
33
  > {
34
34
  /**
35
35
  * Checks whether every leaf column is currently visible.
@@ -76,8 +76,8 @@ export interface ColumnDef_ColumnVisibility {
76
76
  }
77
77
 
78
78
  export interface Row_ColumnVisibility<
79
- TFeatures extends TableFeatures,
80
- TData extends RowData,
79
+ in out TFeatures extends TableFeatures,
80
+ in out TData extends RowData,
81
81
  > {
82
82
  /**
83
83
  * Gets this row's cells for currently visible columns.
@@ -1,4 +1,9 @@
1
- import { callMemoOrStaticFn, cloneState } from '../../utils'
1
+ import {
2
+ callMemoOrStaticFn,
3
+ cloneState,
4
+ hasOwn,
5
+ makeObjectMap,
6
+ } from '../../utils'
2
7
  import { getDefaultColumnPinningState } from '../column-pinning/columnPinningFeature.utils'
3
8
  import type { CellData, RowData, Updater } from '../../types/type-utils'
4
9
  import type { TableFeatures } from '../../types/TableFeatures'
@@ -20,14 +25,14 @@ import type { Row } from '../../types/Row'
20
25
  * ```
21
26
  */
22
27
  export function getDefaultColumnVisibilityState(): ColumnVisibilityState {
23
- return {}
28
+ return makeObjectMap()
24
29
  }
25
30
 
26
31
  /**
27
32
  * Updates this column's visibility when hiding is allowed.
28
33
  *
29
34
  * Passing `visible` stores that value. Omitting it flips the column's current
30
- * visibility state. Columns that cannot hide are left unchanged.
35
+ * visibility state. Columns that cannot hide are start unchanged.
31
36
  *
32
37
  * @example
33
38
  * ```ts
@@ -40,12 +45,13 @@ export function column_toggleVisibility<
40
45
  TValue extends CellData = CellData,
41
46
  >(column: Column_Internal<TFeatures, TData, TValue>, visible?: boolean): void {
42
47
  if (column_getCanHide(column)) {
43
- table_setColumnVisibility(column.table, (old) => ({
44
- ...old,
45
- [column.id]:
48
+ table_setColumnVisibility(column.table, (old) => {
49
+ const next = Object.assign(makeObjectMap<boolean>(), old)
50
+ next[column.id] =
46
51
  visible ??
47
- !callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
48
- }))
52
+ !callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)
53
+ return next
54
+ })
49
55
  }
50
56
  }
51
57
 
@@ -66,13 +72,20 @@ export function column_getIsVisible<
66
72
  TData extends RowData,
67
73
  TValue extends CellData = CellData,
68
74
  >(column: Column_Internal<TFeatures, TData, TValue>): boolean {
75
+ const columnVisibility = column.table.atoms.columnVisibility?.get()
76
+ if (!columnVisibility) return true
77
+
69
78
  const childColumns = column.columns
79
+ if (childColumns.length) {
80
+ return childColumns.some((childColumn) =>
81
+ callMemoOrStaticFn(childColumn, 'getIsVisible', column_getIsVisible),
82
+ )
83
+ }
84
+
70
85
  return (
71
- (childColumns.length
72
- ? childColumns.some((childColumn) =>
73
- callMemoOrStaticFn(childColumn, 'getIsVisible', column_getIsVisible),
74
- )
75
- : column.table.atoms.columnVisibility?.get()?.[column.id]) ?? true
86
+ (hasOwn(columnVisibility, column.id)
87
+ ? columnVisibility[column.id]
88
+ : undefined) ?? true
76
89
  )
77
90
  }
78
91
 
@@ -124,8 +137,8 @@ export function column_getToggleVisibilityHandler<
124
137
  /**
125
138
  * Collects the cells from this row whose columns are visible.
126
139
  *
127
- * When column pinning is active, the result is ordered as left-pinned cells,
128
- * center cells, then right-pinned cells.
140
+ * When column pinning is active, the result is ordered as start-pinned cells,
141
+ * center cells, then end-pinned cells.
129
142
  *
130
143
  * @example
131
144
  * ```ts
@@ -145,9 +158,9 @@ export function row_getVisibleCells<
145
158
  }
146
159
  }
147
160
 
148
- const { left, right } =
161
+ const { start, end } =
149
162
  row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()
150
- if (!left.length && !right.length) return visibleCells // no pinning, return early
163
+ if (!start.length && !end.length) return visibleCells // no pinning, return early
151
164
 
152
165
  const visibleCellsByColumnId = callMemoOrStaticFn(
153
166
  row,
@@ -155,16 +168,16 @@ export function row_getVisibleCells<
155
168
  row_getVisibleCellsByColumnId,
156
169
  )
157
170
 
158
- const leftCells: Array<Cell<TFeatures, TData, unknown>> = []
159
- for (let i = 0; i < left.length; i++) {
160
- const cell = visibleCellsByColumnId[left[i]!]
161
- if (cell) leftCells.push(cell)
171
+ const startCells: Array<Cell<TFeatures, TData, unknown>> = []
172
+ for (let i = 0; i < start.length; i++) {
173
+ const cell = visibleCellsByColumnId[start[i]!]
174
+ if (cell) startCells.push(cell)
162
175
  }
163
176
 
164
- const rightCells: Array<Cell<TFeatures, TData, unknown>> = []
165
- for (let i = 0; i < right.length; i++) {
166
- const cell = visibleCellsByColumnId[right[i]!]
167
- if (cell) rightCells.push(cell)
177
+ const endCells: Array<Cell<TFeatures, TData, unknown>> = []
178
+ for (let i = 0; i < end.length; i++) {
179
+ const cell = visibleCellsByColumnId[end[i]!]
180
+ if (cell) endCells.push(cell)
168
181
  }
169
182
 
170
183
  // Center cells: visible cells in natural column order, minus pinned ones.
@@ -172,10 +185,10 @@ export function row_getVisibleCells<
172
185
  for (let i = 0; i < visibleCells.length; i++) {
173
186
  const cell = visibleCells[i]!
174
187
  const id = cell.column.id
175
- if (!left.includes(id) && !right.includes(id)) centerCells.push(cell)
188
+ if (!start.includes(id) && !end.includes(id)) centerCells.push(cell)
176
189
  }
177
190
 
178
- return [...leftCells, ...centerCells, ...rightCells]
191
+ return [...startCells, ...centerCells, ...endCells]
179
192
  }
180
193
 
181
194
  /**
@@ -192,7 +205,7 @@ export function row_getVisibleCellsByColumnId<
192
205
  TFeatures extends TableFeatures,
193
206
  TData extends RowData,
194
207
  >(row: Row<TFeatures, TData>): Record<string, Cell<TFeatures, TData, unknown>> {
195
- const result: Record<string, Cell<TFeatures, TData, unknown>> = {}
208
+ const result = makeObjectMap<Cell<TFeatures, TData, unknown>>()
196
209
  const allCells = row.getAllCells()
197
210
  for (let i = 0; i < allCells.length; i++) {
198
211
  const cell = allCells[i]!
@@ -286,7 +299,12 @@ export function table_resetColumnVisibility<
286
299
  >(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
287
300
  table_setColumnVisibility(
288
301
  table,
289
- defaultState ? {} : cloneState(table.initialState.columnVisibility ?? {}),
302
+ defaultState
303
+ ? makeObjectMap()
304
+ : Object.assign(
305
+ makeObjectMap<boolean>(),
306
+ cloneState(table.initialState.columnVisibility ?? {}),
307
+ ),
290
308
  )
291
309
  }
292
310
 
@@ -306,7 +324,7 @@ export function table_toggleAllColumnsVisible<
306
324
  >(table: Table_Internal<TFeatures, TData>, value?: boolean) {
307
325
  value = value ?? !table_getIsAllColumnsVisible(table)
308
326
 
309
- const visibility: Record<string, boolean> = {}
327
+ const visibility = makeObjectMap<boolean>()
310
328
  const leafColumns = table.getAllLeafColumns()
311
329
  for (let i = 0; i < leafColumns.length; i++) {
312
330
  const column = leafColumns[i]!
@@ -33,8 +33,8 @@ export interface Column_GlobalFiltering {
33
33
  }
34
34
 
35
35
  export interface TableOptions_GlobalFiltering<
36
- TFeatures extends TableFeatures,
37
- TData extends RowData,
36
+ in out TFeatures extends TableFeatures,
37
+ in out TData extends RowData,
38
38
  > {
39
39
  /**
40
40
  * Enables global filtering across columns that allow it.
@@ -67,8 +67,8 @@ export interface TableOptions_GlobalFiltering<
67
67
  }
68
68
 
69
69
  export interface Table_GlobalFiltering<
70
- TFeatures extends TableFeatures,
71
- TData extends RowData,
70
+ in out TFeatures extends TableFeatures,
71
+ in out TData extends RowData,
72
72
  > {
73
73
  /**
74
74
  * Currently, this function returns the built-in `includesString` filter function. In future releases, it may return more dynamic filter functions based on the nature of the data provided.
@@ -1,4 +1,4 @@
1
- import { filterFn_includesString } from '../../fns/filterFns'
1
+ import { filterFn_includesString } from '../column-filtering/filterFns'
2
2
  import { cloneState, isFunction } from '../../utils'
3
3
  import type { Column_Internal } from '../../types/Column'
4
4
  import type { FilterFn } from '../column-filtering/columnFilteringFeature.types'
@@ -26,7 +26,7 @@ export function column_getCanGlobalFilter<
26
26
  (column.columnDef.enableGlobalFilter ?? true) &&
27
27
  (column.table.options.enableGlobalFilter ?? true) &&
28
28
  (column.table.options.enableFilters ?? true) &&
29
- (column.table.options.getColumnCanGlobalFilter?.(column) ?? true) &&
29
+ (column.table.options.getColumnCanGlobalFilter?.(column as any) ?? true) &&
30
30
  !!column.accessorFn
31
31
  )
32
32
  }
@@ -63,9 +63,9 @@ export function table_getGlobalFilterFn<
63
63
  TData extends RowData,
64
64
  >(
65
65
  table: Table_Internal<TFeatures, TData>,
66
- ): FilterFn<TFeatures, TData> | FilterFn<TFeatures, TData> | undefined {
66
+ ): FilterFn<TFeatures, TData> | undefined {
67
67
  const { globalFilterFn: globalFilterFn } = table.options
68
- const filterFns: Record<string, FilterFn<TFeatures, RowData>> | undefined =
68
+ const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =
69
69
  table._rowModelFns.filterFns
70
70
 
71
71
  const filterFn = isFunction(globalFilterFn)
@@ -74,7 +74,15 @@ export function table_getGlobalFilterFn<
74
74
  ? table_getGlobalAutoFilterFn()
75
75
  : filterFns?.[globalFilterFn as string]
76
76
 
77
- return filterFn as FilterFn<TFeatures, TData> | undefined
77
+ if (
78
+ process.env.NODE_ENV === 'development' &&
79
+ !filterFn &&
80
+ globalFilterFn != null
81
+ ) {
82
+ console.warn(`globalFilterFn '${String(globalFilterFn)}' is not registered`)
83
+ }
84
+
85
+ return filterFn
78
86
  }
79
87
 
80
88
  /**