@tanstack/table-core 9.0.0-beta.1 → 9.0.0-beta.11

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 (454) hide show
  1. package/dist/core/cells/constructCell.d.cts +1 -1
  2. package/dist/core/cells/constructCell.d.ts +1 -1
  3. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  4. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  5. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  6. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  7. package/dist/core/cells/coreCellsFeature.js +12 -20
  8. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  9. package/dist/core/cells/coreCellsFeature.types.d.cts +4 -4
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +4 -4
  11. package/dist/core/cells/coreCellsFeature.utils.d.cts +1 -1
  12. package/dist/core/cells/coreCellsFeature.utils.d.ts +1 -1
  13. package/dist/core/columns/constructColumn.d.cts +1 -1
  14. package/dist/core/columns/constructColumn.d.ts +1 -1
  15. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  16. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  17. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  18. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  19. package/dist/core/columns/coreColumnsFeature.js +60 -68
  20. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.types.d.cts +5 -5
  22. package/dist/core/columns/coreColumnsFeature.types.d.ts +5 -5
  23. package/dist/core/columns/coreColumnsFeature.utils.d.cts +1 -1
  24. package/dist/core/columns/coreColumnsFeature.utils.d.ts +1 -1
  25. package/dist/core/coreFeatures.cjs.map +1 -1
  26. package/dist/core/coreFeatures.d.cts +1 -1
  27. package/dist/core/coreFeatures.d.ts +1 -1
  28. package/dist/core/coreFeatures.js.map +1 -1
  29. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  30. package/dist/core/headers/buildHeaderGroups.d.cts +1 -1
  31. package/dist/core/headers/buildHeaderGroups.d.ts +1 -1
  32. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  33. package/dist/core/headers/constructHeader.d.cts +1 -1
  34. package/dist/core/headers/constructHeader.d.ts +1 -1
  35. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  36. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  37. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  38. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  39. package/dist/core/headers/coreHeadersFeature.js +45 -53
  40. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  41. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  42. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  43. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  44. package/dist/core/headers/coreHeadersFeature.utils.d.cts +1 -1
  45. package/dist/core/headers/coreHeadersFeature.utils.d.ts +1 -1
  46. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  47. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  48. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  49. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  50. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  51. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  52. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  53. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +5 -15
  54. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +5 -15
  55. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
  56. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  57. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +2 -2
  58. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +2 -2
  59. package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
  60. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  61. package/dist/core/row-models/createCoreRowModel.cjs +1 -2
  62. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  63. package/dist/core/row-models/createCoreRowModel.d.cts +2 -2
  64. package/dist/core/row-models/createCoreRowModel.d.ts +2 -2
  65. package/dist/core/row-models/createCoreRowModel.js +1 -2
  66. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  67. package/dist/core/rows/constructRow.d.cts +1 -1
  68. package/dist/core/rows/constructRow.d.ts +1 -1
  69. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  70. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  71. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  72. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  73. package/dist/core/rows/coreRowsFeature.js +28 -36
  74. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  75. package/dist/core/rows/coreRowsFeature.types.d.cts +5 -5
  76. package/dist/core/rows/coreRowsFeature.types.d.ts +5 -5
  77. package/dist/core/rows/coreRowsFeature.utils.d.cts +1 -1
  78. package/dist/core/rows/coreRowsFeature.utils.d.ts +1 -1
  79. package/dist/core/table/constructTable.cjs +21 -6
  80. package/dist/core/table/constructTable.cjs.map +1 -1
  81. package/dist/core/table/constructTable.d.cts +1 -1
  82. package/dist/core/table/constructTable.d.ts +1 -1
  83. package/dist/core/table/constructTable.js +21 -6
  84. package/dist/core/table/constructTable.js.map +1 -1
  85. package/dist/core/table/coreTablesFeature.cjs +7 -16
  86. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  87. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  88. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  89. package/dist/core/table/coreTablesFeature.js +8 -16
  90. package/dist/core/table/coreTablesFeature.js.map +1 -1
  91. package/dist/core/table/coreTablesFeature.types.d.cts +27 -15
  92. package/dist/core/table/coreTablesFeature.types.d.ts +27 -15
  93. package/dist/core/table/coreTablesFeature.utils.cjs +1 -2
  94. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  95. package/dist/core/table/coreTablesFeature.utils.d.cts +1 -1
  96. package/dist/core/table/coreTablesFeature.utils.d.ts +1 -1
  97. package/dist/core/table/coreTablesFeature.utils.js +1 -2
  98. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  99. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  100. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  101. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  102. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  103. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  104. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  105. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
  106. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
  107. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  108. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  109. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +1 -1
  110. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +1 -1
  111. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  112. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  113. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  114. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  115. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  116. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  117. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  118. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  119. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  120. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  121. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  122. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  123. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  124. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  125. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  126. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  127. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  128. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  129. package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
  130. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  131. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
  132. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
  133. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  134. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  135. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +2 -2
  136. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +2 -2
  137. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  138. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  139. package/dist/features/column-filtering/createFilteredRowModel.cjs +4 -2
  140. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  141. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  142. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  143. package/dist/features/column-filtering/createFilteredRowModel.js +4 -2
  144. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  145. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  146. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  147. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  148. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  149. package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
  150. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  151. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +23 -19
  152. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +23 -19
  153. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +1 -1
  154. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +1 -1
  155. package/dist/features/column-grouping/createGroupedRowModel.cjs +5 -2
  156. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  157. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  158. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  159. package/dist/features/column-grouping/createGroupedRowModel.js +5 -2
  160. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  161. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  162. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  163. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  164. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  165. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  166. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  167. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
  168. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
  169. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +1 -1
  170. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +1 -1
  171. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  172. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  173. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  174. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  175. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  176. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  177. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
  178. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
  179. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  180. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +13 -13
  181. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +13 -13
  182. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  183. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  184. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  185. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  186. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  187. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  188. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  189. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +1 -1
  190. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +1 -1
  191. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  192. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  193. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  194. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  195. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  196. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  197. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +4 -4
  198. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +4 -4
  199. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  200. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  201. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  202. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  203. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  204. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  205. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
  206. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
  207. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +1 -1
  208. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +1 -1
  209. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  210. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  211. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  212. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  213. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  214. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  215. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +3 -3
  216. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +3 -3
  217. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  218. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +7 -5
  219. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +7 -5
  220. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  221. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  222. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  223. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  224. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  225. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  226. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  227. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  228. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  229. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  230. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  231. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
  232. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
  233. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +1 -1
  234. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +1 -1
  235. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  236. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  237. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  238. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  239. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  240. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  241. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  242. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  243. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  244. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  245. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
  246. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
  247. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +1 -1
  248. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +1 -1
  249. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  250. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  251. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  252. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  253. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  254. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  255. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  256. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  257. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +1 -1
  258. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +1 -1
  259. package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
  260. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  261. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  262. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  263. package/dist/features/row-selection/rowSelectionFeature.js +66 -77
  264. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  265. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +2 -2
  266. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +2 -2
  267. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +10 -6
  268. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  269. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +1 -1
  270. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +1 -1
  271. package/dist/features/row-selection/rowSelectionFeature.utils.js +10 -6
  272. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  273. package/dist/features/row-sorting/createSortedRowModel.cjs +4 -2
  274. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  275. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  276. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  277. package/dist/features/row-sorting/createSortedRowModel.js +4 -2
  278. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  279. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  280. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  281. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  282. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  283. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  284. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  285. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +23 -20
  286. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +23 -20
  287. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  288. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  289. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +1 -1
  290. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +1 -1
  291. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  292. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  293. package/dist/fns/aggregationFns.cjs +18 -18
  294. package/dist/fns/aggregationFns.cjs.map +1 -1
  295. package/dist/fns/aggregationFns.d.cts +21 -19
  296. package/dist/fns/aggregationFns.d.ts +21 -19
  297. package/dist/fns/aggregationFns.js +18 -18
  298. package/dist/fns/aggregationFns.js.map +1 -1
  299. package/dist/fns/filterFns.cjs +51 -65
  300. package/dist/fns/filterFns.cjs.map +1 -1
  301. package/dist/fns/filterFns.d.cts +82 -28
  302. package/dist/fns/filterFns.d.ts +82 -28
  303. package/dist/fns/filterFns.js +51 -65
  304. package/dist/fns/filterFns.js.map +1 -1
  305. package/dist/fns/sortFns.cjs +18 -6
  306. package/dist/fns/sortFns.cjs.map +1 -1
  307. package/dist/fns/sortFns.d.cts +15 -13
  308. package/dist/fns/sortFns.d.ts +15 -13
  309. package/dist/fns/sortFns.js +18 -6
  310. package/dist/fns/sortFns.js.map +1 -1
  311. package/dist/helpers/metaHelper.cjs +30 -0
  312. package/dist/helpers/metaHelper.cjs.map +1 -0
  313. package/dist/helpers/metaHelper.d.cts +26 -0
  314. package/dist/helpers/metaHelper.d.ts +26 -0
  315. package/dist/helpers/metaHelper.js +29 -0
  316. package/dist/helpers/metaHelper.js.map +1 -0
  317. package/dist/helpers/tableFeatures.cjs +31 -3
  318. package/dist/helpers/tableFeatures.cjs.map +1 -1
  319. package/dist/helpers/tableFeatures.d.cts +33 -5
  320. package/dist/helpers/tableFeatures.d.ts +33 -5
  321. package/dist/helpers/tableFeatures.js +31 -3
  322. package/dist/helpers/tableFeatures.js.map +1 -1
  323. package/dist/index.cjs +2 -20
  324. package/dist/index.d.cts +44 -43
  325. package/dist/index.d.ts +44 -43
  326. package/dist/index.js +22 -21
  327. package/dist/store-reactivity-bindings.cjs +1 -1
  328. package/dist/store-reactivity-bindings.cjs.map +1 -1
  329. package/dist/store-reactivity-bindings.d.cts +1 -1
  330. package/dist/store-reactivity-bindings.d.ts +1 -1
  331. package/dist/store-reactivity-bindings.js +1 -1
  332. package/dist/store-reactivity-bindings.js.map +1 -1
  333. package/dist/types/Cell.d.cts +8 -10
  334. package/dist/types/Cell.d.ts +8 -10
  335. package/dist/types/Column.d.cts +19 -12
  336. package/dist/types/Column.d.ts +19 -12
  337. package/dist/types/ColumnDef.d.cts +30 -11
  338. package/dist/types/ColumnDef.d.ts +30 -11
  339. package/dist/types/Header.d.cts +10 -11
  340. package/dist/types/Header.d.ts +10 -11
  341. package/dist/types/HeaderGroup.d.cts +4 -9
  342. package/dist/types/HeaderGroup.d.ts +4 -9
  343. package/dist/types/Row.d.cts +15 -11
  344. package/dist/types/Row.d.ts +15 -11
  345. package/dist/types/RowModel.d.cts +19 -19
  346. package/dist/types/RowModel.d.ts +19 -19
  347. package/dist/types/RowModelFns.d.cts +9 -9
  348. package/dist/types/RowModelFns.d.ts +9 -9
  349. package/dist/types/Table.d.cts +52 -24
  350. package/dist/types/Table.d.ts +52 -24
  351. package/dist/types/TableFeatures.d.cts +178 -41
  352. package/dist/types/TableFeatures.d.ts +178 -41
  353. package/dist/types/TableOptions.d.cts +31 -10
  354. package/dist/types/TableOptions.d.ts +31 -10
  355. package/dist/types/TableState.d.cts +22 -13
  356. package/dist/types/TableState.d.ts +22 -13
  357. package/dist/utils.cjs.map +1 -1
  358. package/dist/utils.d.cts +8 -3
  359. package/dist/utils.d.ts +8 -3
  360. package/dist/utils.js.map +1 -1
  361. package/package.json +1 -1
  362. package/skills/column-definitions/SKILL.md +3 -6
  363. package/skills/column-layout/SKILL.md +0 -2
  364. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  365. package/skills/filtering/SKILL.md +60 -42
  366. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  367. package/skills/grouping/SKILL.md +49 -54
  368. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  369. package/skills/pagination/SKILL.md +22 -20
  370. package/skills/row-expanding/SKILL.md +33 -25
  371. package/skills/row-pinning/SKILL.md +11 -7
  372. package/skills/row-selection/SKILL.md +0 -3
  373. package/skills/setup/SKILL.md +55 -65
  374. package/skills/sorting/SKILL.md +21 -21
  375. package/skills/state-management/SKILL.md +40 -25
  376. package/src/core/cells/coreCellsFeature.ts +17 -39
  377. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  378. package/src/core/columns/coreColumnsFeature.ts +56 -83
  379. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  380. package/src/core/coreFeatures.ts +1 -1
  381. package/src/core/headers/buildHeaderGroups.ts +1 -1
  382. package/src/core/headers/coreHeadersFeature.ts +42 -64
  383. package/src/core/headers/coreHeadersFeature.types.ts +10 -10
  384. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  385. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  386. package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
  387. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  388. package/src/core/row-models/createCoreRowModel.ts +5 -4
  389. package/src/core/rows/coreRowsFeature.ts +45 -72
  390. package/src/core/rows/coreRowsFeature.types.ts +8 -8
  391. package/src/core/table/constructTable.ts +50 -13
  392. package/src/core/table/coreTablesFeature.ts +13 -35
  393. package/src/core/table/coreTablesFeature.types.ts +40 -17
  394. package/src/core/table/coreTablesFeature.utils.ts +10 -5
  395. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  396. package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
  397. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  398. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  399. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  400. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  401. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  402. package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
  403. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  404. package/src/features/column-filtering/createFilteredRowModel.ts +5 -7
  405. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  406. package/src/features/column-grouping/columnGroupingFeature.types.ts +32 -31
  407. package/src/features/column-grouping/createGroupedRowModel.ts +7 -11
  408. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  409. package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
  410. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  411. package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
  412. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  413. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  414. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  415. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  416. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  417. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  418. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  419. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  420. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  421. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  422. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
  423. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  424. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  425. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
  426. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  427. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  428. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  429. package/src/features/row-selection/rowSelectionFeature.types.ts +4 -4
  430. package/src/features/row-selection/rowSelectionFeature.utils.ts +12 -7
  431. package/src/features/row-sorting/createSortedRowModel.ts +6 -6
  432. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  433. package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
  434. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  435. package/src/fns/aggregationFns.ts +26 -42
  436. package/src/fns/filterFns.ts +231 -264
  437. package/src/fns/sortFns.ts +51 -29
  438. package/src/helpers/metaHelper.ts +24 -0
  439. package/src/helpers/tableFeatures.ts +36 -5
  440. package/src/index.ts +1 -0
  441. package/src/store-reactivity-bindings.ts +1 -1
  442. package/src/types/Cell.ts +10 -30
  443. package/src/types/Column.ts +21 -56
  444. package/src/types/ColumnDef.ts +48 -49
  445. package/src/types/Header.ts +10 -32
  446. package/src/types/HeaderGroup.ts +4 -15
  447. package/src/types/Row.ts +18 -39
  448. package/src/types/RowModel.ts +24 -114
  449. package/src/types/RowModelFns.ts +12 -31
  450. package/src/types/Table.ts +85 -80
  451. package/src/types/TableFeatures.ts +253 -108
  452. package/src/types/TableOptions.ts +70 -60
  453. package/src/types/TableState.ts +20 -73
  454. package/src/utils.ts +16 -6
@@ -1,7 +1,6 @@
1
1
  import type { RowData } from '../types/type-utils'
2
2
  import type { TableFeatures } from '../types/TableFeatures'
3
3
  import type { Row } from '../types/Row'
4
- import type { SortFn } from '../features/row-sorting/rowSortingFeature.types'
5
4
 
6
5
  /**
7
6
  * Regular expression used to split mixed text and numeric chunks.
@@ -16,12 +15,12 @@ export const reSplitAlphaNumeric = /([0-9]+)/gm
16
15
  *
17
16
  * This comparator returns ascending-order results; descending order is applied by the sorting row model.
18
17
  */
19
- export const sortFn_alphanumeric: SortFn<any, any> = <
18
+ export const sortFn_alphanumeric = <
20
19
  TFeatures extends TableFeatures,
21
20
  TData extends RowData,
22
21
  >(
23
- rowA: Row<any, any>,
24
- rowB: Row<any, any>,
22
+ rowA: Row<TFeatures, TData>,
23
+ rowB: Row<TFeatures, TData>,
25
24
  columnId: string,
26
25
  ) => {
27
26
  return compareAlphanumeric(
@@ -35,12 +34,12 @@ export const sortFn_alphanumeric: SortFn<any, any> = <
35
34
  *
36
35
  * This comparator returns ascending-order results; descending order is applied by the sorting row model.
37
36
  */
38
- export const sortFn_alphanumericCaseSensitive: SortFn<any, any> = <
37
+ export const sortFn_alphanumericCaseSensitive = <
39
38
  TFeatures extends TableFeatures,
40
39
  TData extends RowData,
41
40
  >(
42
- rowA: Row<any, any>,
43
- rowB: Row<any, any>,
41
+ rowA: Row<TFeatures, TData>,
42
+ rowB: Row<TFeatures, TData>,
44
43
  columnId: string,
45
44
  ) => {
46
45
  return compareAlphanumeric(
@@ -56,12 +55,12 @@ export const sortFn_alphanumericCaseSensitive: SortFn<any, any> = <
56
55
  *
57
56
  * This comparator returns ascending-order results; descending order is applied by the sorting row model.
58
57
  */
59
- export const sortFn_text: SortFn<any, any> = <
58
+ export const sortFn_text = <
60
59
  TFeatures extends TableFeatures,
61
60
  TData extends RowData,
62
61
  >(
63
- rowA: Row<any, any>,
64
- rowB: Row<any, any>,
62
+ rowA: Row<TFeatures, TData>,
63
+ rowB: Row<TFeatures, TData>,
65
64
  columnId: string,
66
65
  ) => {
67
66
  return compareBasic(
@@ -77,12 +76,12 @@ export const sortFn_text: SortFn<any, any> = <
77
76
  *
78
77
  * This comparator returns ascending-order results; descending order is applied by the sorting row model.
79
78
  */
80
- export const sortFn_textCaseSensitive: SortFn<any, any> = <
79
+ export const sortFn_textCaseSensitive = <
81
80
  TFeatures extends TableFeatures,
82
81
  TData extends RowData,
83
82
  >(
84
- rowA: Row<any, any>,
85
- rowB: Row<any, any>,
83
+ rowA: Row<TFeatures, TData>,
84
+ rowB: Row<TFeatures, TData>,
86
85
  columnId: string,
87
86
  ) => {
88
87
  return compareBasic(
@@ -96,12 +95,12 @@ export const sortFn_textCaseSensitive: SortFn<any, any> = <
96
95
  *
97
96
  * This comparator returns ascending-order results; descending order is applied by the sorting row model.
98
97
  */
99
- export const sortFn_datetime: SortFn<any, any> = <
98
+ export const sortFn_datetime = <
100
99
  TFeatures extends TableFeatures,
101
100
  TData extends RowData,
102
101
  >(
103
- rowA: Row<any, any>,
104
- rowB: Row<any, any>,
102
+ rowA: Row<TFeatures, TData>,
103
+ rowB: Row<TFeatures, TData>,
105
104
  columnId: string,
106
105
  ) => {
107
106
  const a: number | string = rowA.getValue(columnId)
@@ -118,12 +117,12 @@ export const sortFn_datetime: SortFn<any, any> = <
118
117
  *
119
118
  * This comparator returns ascending-order results; descending order is applied by the sorting row model.
120
119
  */
121
- export const sortFn_basic: SortFn<any, any> = <
120
+ export const sortFn_basic = <
122
121
  TFeatures extends TableFeatures,
123
122
  TData extends RowData,
124
123
  >(
125
- rowA: Row<any, any>,
126
- rowB: Row<any, any>,
124
+ rowA: Row<TFeatures, TData>,
125
+ rowB: Row<TFeatures, TData>,
127
126
  columnId: string,
128
127
  ) => {
129
128
  return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId))
@@ -152,10 +151,8 @@ function toString(a: any) {
152
151
  // It handles numbers, mixed alphanumeric combinations, and even
153
152
  // null, undefined, and Infinity
154
153
  function compareAlphanumeric(aStr: string, bStr: string) {
155
- // Split on number groups, but keep the delimiter
156
- // Then remove falsey split values
157
- const a = aStr.split(reSplitAlphaNumeric).filter(Boolean)
158
- const b = bStr.split(reSplitAlphaNumeric).filter(Boolean)
154
+ const a = aStr.split(reSplitAlphaNumeric)
155
+ const b = bStr.split(reSplitAlphaNumeric)
159
156
 
160
157
  let ai = 0
161
158
  let bi = 0
@@ -163,16 +160,29 @@ function compareAlphanumeric(aStr: string, bStr: string) {
163
160
  const bLen = b.length
164
161
 
165
162
  while (ai < aLen && bi < bLen) {
163
+ // Skip the empty boundary chunks that .filter(Boolean) used to remove
164
+ if (!a[ai]) {
165
+ ai++
166
+ continue
167
+ }
168
+ if (!b[bi]) {
169
+ bi++
170
+ continue
171
+ }
172
+
166
173
  const aa = a[ai++]!
167
174
  const bb = b[bi++]!
168
175
 
176
+ // Chunks are either all-digit (parseInt always succeeds) or digit-free
177
+ // (parseInt is always NaN), so NaN-ness fully classifies each chunk
169
178
  const an = parseInt(aa, 10)
170
179
  const bn = parseInt(bb, 10)
171
180
 
172
- const combo = [an, bn].sort()
181
+ const aIsNaN = isNaN(an)
182
+ const bIsNaN = isNaN(bn)
173
183
 
174
184
  // Both are string
175
- if (isNaN(combo[0]!)) {
185
+ if (aIsNaN && bIsNaN) {
176
186
  if (aa > bb) {
177
187
  return 1
178
188
  }
@@ -182,9 +192,9 @@ function compareAlphanumeric(aStr: string, bStr: string) {
182
192
  continue
183
193
  }
184
194
 
185
- // One is a string, one is a number
186
- if (isNaN(combo[1]!)) {
187
- return isNaN(an) ? -1 : 1
195
+ // One is a string, one is a number — the string chunk sorts first
196
+ if (aIsNaN || bIsNaN) {
197
+ return aIsNaN ? -1 : 1
188
198
  }
189
199
 
190
200
  // Both are numbers
@@ -196,7 +206,19 @@ function compareAlphanumeric(aStr: string, bStr: string) {
196
206
  }
197
207
  }
198
208
 
199
- return aLen - ai - (bLen - bi)
209
+ // One side is exhausted compare the counts of remaining non-empty chunks
210
+ let remaining = 0
211
+ for (; ai < aLen; ai++) {
212
+ if (a[ai]) {
213
+ remaining++
214
+ }
215
+ }
216
+ for (; bi < bLen; bi++) {
217
+ if (b[bi]) {
218
+ remaining--
219
+ }
220
+ }
221
+ return remaining
200
222
  }
201
223
 
202
224
  // Exports
@@ -0,0 +1,24 @@
1
+ /**
2
+ * A helper for declaring the `tableMeta`/`columnMeta` type-only slots in the
3
+ * `features` option without a type assertion.
4
+ *
5
+ * Equivalent to `{} as TMeta`, but reads as type-only at the call site and
6
+ * avoids `@typescript-eslint/no-unnecessary-type-assertion` false positives
7
+ * when the meta type has only optional properties (where an auto-fix removing
8
+ * the assertion would silently degrade the inferred meta type to `{}`).
9
+ *
10
+ * The returned value is a phantom — it is ignored and stripped from the
11
+ * table's registered features at runtime; only its type is used.
12
+ * @example
13
+ * ```
14
+ * import { metaHelper, tableFeatures, rowSortingFeature } from '@tanstack/react-table'
15
+ * const features = tableFeatures({
16
+ * rowSortingFeature,
17
+ * tableMeta: metaHelper<MyTableMeta>(),
18
+ * columnMeta: metaHelper<MyColumnMeta>(),
19
+ * });
20
+ * ```
21
+ */
22
+ export function metaHelper<TMeta extends object>(): TMeta {
23
+ return {} as TMeta
24
+ }
@@ -1,18 +1,49 @@
1
- import type { TableFeatures } from '../types/TableFeatures'
1
+ import type {
2
+ TableFeatures,
3
+ ValidateFeatureSlots,
4
+ } from '../types/TableFeatures'
2
5
 
3
6
  /**
4
7
  * A helper function to help define the features that are to be imported and applied to a table instance.
5
8
  * Use this utility to make it easier to have the correct type inference for the features that are being imported.
6
9
  * **Note:** It is recommended to use this utility statically outside of a component.
10
+ *
11
+ * Alongside feature modules, this object carries everything else that is
12
+ * statically stitched into the table:
13
+ *
14
+ * - Row model factories (`sortedRowModel`, `filteredRowModel`, etc.)
15
+ * - Row model function registries (`sortFns`, `filterFns`, `aggregationFns`),
16
+ * whose keys become the valid string values for `sortFn`, `filterFn`,
17
+ * `globalFilterFn`, and `aggregationFn` with full inference
18
+ * - Type-only `tableMeta`/`columnMeta` slots for declaring per-table meta types
19
+ * instead of using global declaration merging. The values are phantom
20
+ * (ignored and stripped at runtime); only their types are used.
7
21
  * @example
8
22
  * ```
9
- * import { tableFeatures, columnVisibilityFeature, rowPinningFeature } from '@tanstack/react-table'
10
- * const features = tableFeatures({ columnVisibilityFeature, rowPinningFeature });
11
- * const table = useTable({ features, rowModels: {}, columns, data });
23
+ * import {
24
+ * columnFilteringFeature,
25
+ * createFilteredRowModel,
26
+ * createSortedRowModel,
27
+ * filterFns,
28
+ * rowSortingFeature,
29
+ * sortFns,
30
+ * tableFeatures,
31
+ * } from '@tanstack/react-table'
32
+ * const features = tableFeatures({
33
+ * columnFilteringFeature,
34
+ * rowSortingFeature,
35
+ * filteredRowModel: createFilteredRowModel(),
36
+ * sortedRowModel: createSortedRowModel(),
37
+ * filterFns: { ...filterFns, myCustomFilterFn },
38
+ * sortFns,
39
+ * tableMeta: {} as { updateData: (rowIndex: number, columnId: string, value: unknown) => void },
40
+ * columnMeta: {} as { align?: 'left' | 'right' },
41
+ * });
42
+ * const table = useTable({ features, columns, data });
12
43
  * ```
13
44
  */
14
45
  export function tableFeatures<TFeatures extends TableFeatures>(
15
- features: TFeatures,
46
+ features: TFeatures & ValidateFeatureSlots<TFeatures>,
16
47
  ): TFeatures {
17
48
  return features
18
49
  }
package/src/index.ts CHANGED
@@ -22,6 +22,7 @@ export * from './types/type-utils'
22
22
 
23
23
  export * from './core/coreFeatures'
24
24
  export * from './helpers/columnHelper'
25
+ export * from './helpers/metaHelper'
25
26
  export * from './helpers/tableFeatures'
26
27
  export * from './helpers/tableOptions'
27
28
  export * from './utils'
@@ -11,7 +11,7 @@ import type { TableReactivityBindings } from './core/reactivity/coreReactivityFe
11
11
  * import { storeReactivityBindings } from '@tanstack/table-core/store-reactivity-bindings'
12
12
  *
13
13
  * const table = constructTable({
14
- * features: tableFeatures({ coreReativityFeature: storeReactivityBindings() }),
14
+ * features: tableFeatures({ coreReactivityFeature: storeReactivityBindings() }),
15
15
  * // ...
16
16
  * })
17
17
  * ```
package/src/types/Cell.ts CHANGED
@@ -1,41 +1,21 @@
1
1
  import type { Cell_ColumnGrouping } from '../features/column-grouping/columnGroupingFeature.types'
2
- import type { CellData, RowData, UnionToIntersection } from './type-utils'
3
- import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
2
+ import type { CellData, RowData } from './type-utils'
3
+ import type { ExtractFeatureMapTypes, TableFeatures } from './TableFeatures'
4
4
  import type { Cell_Cell } from '../core/cells/coreCellsFeature.types'
5
5
 
6
- /**
7
- * Use this interface as a target for declaration merging to add your own plugin properties.
8
- * Note: This will affect the types of all tables in your project.
9
- */
10
- export interface Cell_Plugins<
11
- TFeatures extends TableFeatures,
12
- TData extends RowData,
13
- TValue extends CellData = CellData,
14
- > {}
15
-
16
6
  export interface Cell_Core<
17
- TFeatures extends TableFeatures,
18
- TData extends RowData,
7
+ in out TFeatures extends TableFeatures,
8
+ in out TData extends RowData,
19
9
  TValue extends CellData = CellData,
20
10
  > extends Cell_Cell<TFeatures, TData, TValue> {}
21
11
 
12
+ export interface Cell_FeatureMap {
13
+ columnGroupingFeature: Cell_ColumnGrouping
14
+ }
15
+
22
16
  export type Cell<
23
17
  TFeatures extends TableFeatures,
24
18
  TData extends RowData,
25
19
  TValue extends CellData = CellData,
26
- > = Cell_Cell<TFeatures, TData, TValue> &
27
- UnionToIntersection<
28
- 'columnGroupingFeature' extends keyof TFeatures
29
- ? Cell_ColumnGrouping
30
- : never
31
- > &
32
- ExtractFeatureTypes<'Cell', TFeatures> &
33
- Cell_Plugins<TFeatures, TData, TValue>
34
-
35
- // export type Cell<
36
- // TFeatures extends TableFeatures,
37
- // TData extends RowData,
38
- // TValue extends CellData = CellData,
39
- // > = Cell_Core<TFeatures, TData, TValue> &
40
- // ExtractFeatureTypes<TFeatures, 'Cell'> &
41
- // Cell_Plugins<TFeatures, TData, TValue>
20
+ > = Cell_Core<TFeatures, TData, TValue> &
21
+ ExtractFeatureMapTypes<TFeatures, Cell_FeatureMap>
@@ -9,73 +9,38 @@ import type { Column_ColumnResizing } from '../features/column-resizing/columnRe
9
9
  import type { Column_ColumnSizing } from '../features/column-sizing/columnSizingFeature.types'
10
10
  import type { Column_ColumnVisibility } from '../features/column-visibility/columnVisibilityFeature.types'
11
11
  import type { ColumnDefBase_All } from './ColumnDef'
12
- import type { RowData, UnionToIntersection } from './type-utils'
13
- import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
12
+ import type { RowData } from './type-utils'
13
+ import type { ExtractFeatureMapTypes, TableFeatures } from './TableFeatures'
14
14
  import type { Column_Column } from '../core/columns/coreColumnsFeature.types'
15
15
 
16
- /**
17
- * Use this interface as a target for declaration merging to add your own plugin properties.
18
- * Note: This will affect the types of all tables in your project.
19
- */
20
- export interface Column_Plugins<
21
- TFeatures extends TableFeatures,
22
- TData extends RowData,
23
- TValue = unknown,
24
- > {}
25
-
26
16
  export interface Column_Core<
27
- TFeatures extends TableFeatures,
28
- TData extends RowData,
17
+ in out TFeatures extends TableFeatures,
18
+ in out TData extends RowData,
29
19
  TValue = unknown,
30
20
  > extends Column_Column<TFeatures, TData, TValue> {}
31
21
 
22
+ export interface Column_FeatureMap<
23
+ in out TFeatures extends TableFeatures,
24
+ in out TData extends RowData,
25
+ > {
26
+ columnFacetingFeature: Column_ColumnFaceting<TFeatures, TData>
27
+ columnFilteringFeature: Column_ColumnFiltering<TFeatures, TData>
28
+ columnGroupingFeature: Column_ColumnGrouping<TFeatures, TData>
29
+ columnOrderingFeature: Column_ColumnOrdering
30
+ columnPinningFeature: Column_ColumnPinning
31
+ columnResizingFeature: Column_ColumnResizing
32
+ columnSizingFeature: Column_ColumnSizing
33
+ columnVisibilityFeature: Column_ColumnVisibility
34
+ globalFilteringFeature: Column_GlobalFiltering
35
+ rowSortingFeature: Column_RowSorting<TFeatures, TData>
36
+ }
37
+
32
38
  export type Column<
33
39
  TFeatures extends TableFeatures,
34
40
  TData extends RowData,
35
41
  TValue = unknown,
36
42
  > = Column_Core<TFeatures, TData, TValue> &
37
- UnionToIntersection<
38
- | ('columnFacetingFeature' extends keyof TFeatures
39
- ? Column_ColumnFaceting<TFeatures, TData>
40
- : never)
41
- | ('columnFilteringFeature' extends keyof TFeatures
42
- ? Column_ColumnFiltering<TFeatures, TData>
43
- : never)
44
- | ('columnGroupingFeature' extends keyof TFeatures
45
- ? Column_ColumnGrouping<TFeatures, TData>
46
- : never)
47
- | ('columnOrderingFeature' extends keyof TFeatures
48
- ? Column_ColumnOrdering
49
- : never)
50
- | ('columnPinningFeature' extends keyof TFeatures
51
- ? Column_ColumnPinning
52
- : never)
53
- | ('columnResizingFeature' extends keyof TFeatures
54
- ? Column_ColumnResizing
55
- : never)
56
- | ('columnSizingFeature' extends keyof TFeatures
57
- ? Column_ColumnSizing
58
- : never)
59
- | ('columnVisibilityFeature' extends keyof TFeatures
60
- ? Column_ColumnVisibility
61
- : never)
62
- | ('globalFilteringFeature' extends keyof TFeatures
63
- ? Column_GlobalFiltering
64
- : never)
65
- | ('rowSortingFeature' extends keyof TFeatures
66
- ? Column_RowSorting<TFeatures, TData>
67
- : never)
68
- > &
69
- ExtractFeatureTypes<'Column', TFeatures> &
70
- Column_Plugins<TFeatures, TData, TValue>
71
-
72
- // export type Column<
73
- // TFeatures extends TableFeatures,
74
- // TData extends RowData,
75
- // TValue = unknown,
76
- // > = Column_Core<TFeatures, TData, TValue> &
77
- // ExtractFeatureTypes<'Column', TFeatures> &
78
- // Column_Plugins<TFeatures, TData, TValue>
43
+ ExtractFeatureMapTypes<TFeatures, Column_FeatureMap<TFeatures, TData>>
79
44
 
80
45
  export type Column_Internal<
81
46
  TFeatures extends TableFeatures,
@@ -1,5 +1,9 @@
1
1
  import type { CellData, RowData, UnionToIntersection } from './type-utils'
2
- import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
2
+ import type {
3
+ ExtractFeatureMapTypes,
4
+ IsAny,
5
+ TableFeatures,
6
+ } from './TableFeatures'
3
7
  import type { CellContext } from '../core/cells/coreCellsFeature.types'
4
8
  import type { HeaderContext } from '../core/headers/coreHeadersFeature.types'
5
9
  import type { ColumnDef_ColumnFiltering } from '../features/column-filtering/columnFilteringFeature.types'
@@ -11,21 +15,30 @@ import type { ColumnDef_ColumnVisibility } from '../features/column-visibility/c
11
15
  import type { ColumnDef_GlobalFiltering } from '../features/global-filtering/globalFilteringFeature.types'
12
16
  import type { ColumnDef_RowSorting } from '../features/row-sorting/rowSortingFeature.types'
13
17
 
14
- /**
15
- * Use this interface as a target for declaration merging to add your own plugin properties.
16
- * Note: This will affect the types of all tables in your project.
17
- */
18
- export interface ColumnDef_Plugins<
19
- TFeatures extends TableFeatures,
20
- TData extends RowData,
18
+ export interface ColumnMeta<
19
+ in out TFeatures extends TableFeatures,
20
+ in out TData extends RowData,
21
21
  TValue extends CellData = CellData,
22
22
  > {}
23
23
 
24
- export interface ColumnMeta<
24
+ /**
25
+ * Resolves the type of `columnDef.meta` for a feature set.
26
+ *
27
+ * When the features object declares a `columnMeta` type-only slot
28
+ * (`tableFeatures({ ..., columnMeta: {} as MyColumnMeta })`), that type wins.
29
+ * Otherwise this falls back to the global declaration-merged `ColumnMeta`
30
+ * interface.
31
+ */
32
+ export type ExtractColumnMeta<
25
33
  TFeatures extends TableFeatures,
26
34
  TData extends RowData,
27
35
  TValue extends CellData = CellData,
28
- > {}
36
+ > =
37
+ IsAny<TFeatures> extends true
38
+ ? ColumnMeta<TFeatures, TData, TValue>
39
+ : TFeatures extends { columnMeta: infer TMeta extends object }
40
+ ? TMeta
41
+ : ColumnMeta<TFeatures, TData, TValue>
29
42
 
30
43
  /**
31
44
  * Reads a cell value from an original row object.
@@ -66,8 +79,8 @@ export interface StringHeaderIdentifier {
66
79
  }
67
80
 
68
81
  export interface IdIdentifier<
69
- TFeatures extends TableFeatures,
70
- TData extends RowData,
82
+ in out TFeatures extends TableFeatures,
83
+ in out TData extends RowData,
71
84
  TValue extends CellData = CellData,
72
85
  > {
73
86
  /**
@@ -106,8 +119,26 @@ interface ColumnDefBase_Core<
106
119
  cell?: ColumnDefTemplate<CellContext<TFeatures, TData, TValue>>
107
120
  /**
108
121
  * User-defined metadata available on the resolved column definition.
122
+ *
123
+ * Declare its type per-table via the `columnMeta` type-only slot on the
124
+ * `features` option, or globally via declaration merging on `ColumnMeta`.
109
125
  */
110
- meta?: ColumnMeta<TFeatures, TData, TValue>
126
+ meta?: ExtractColumnMeta<TFeatures, TData, TValue>
127
+ }
128
+
129
+ export interface ColumnDef_FeatureMap<
130
+ in out TFeatures extends TableFeatures,
131
+ in out TData extends RowData,
132
+ TValue extends CellData,
133
+ > {
134
+ columnVisibilityFeature: ColumnDef_ColumnVisibility
135
+ columnPinningFeature: ColumnDef_ColumnPinning
136
+ columnFilteringFeature: ColumnDef_ColumnFiltering<TFeatures, TData>
137
+ globalFilteringFeature: ColumnDef_GlobalFiltering
138
+ rowSortingFeature: ColumnDef_RowSorting<TFeatures, TData>
139
+ columnGroupingFeature: ColumnDef_ColumnGrouping<TFeatures, TData, TValue>
140
+ columnSizingFeature: ColumnDef_ColumnSizing
141
+ columnResizingFeature: ColumnDef_ColumnResizing
111
142
  }
112
143
 
113
144
  export type ColumnDefBase<
@@ -115,42 +146,10 @@ export type ColumnDefBase<
115
146
  TData extends RowData,
116
147
  TValue extends CellData = CellData,
117
148
  > = ColumnDefBase_Core<TFeatures, TData, TValue> &
118
- UnionToIntersection<
119
- | ('columnVisibilityFeature' extends keyof TFeatures
120
- ? ColumnDef_ColumnVisibility
121
- : never)
122
- | ('columnPinningFeature' extends keyof TFeatures
123
- ? ColumnDef_ColumnPinning
124
- : never)
125
- | ('columnFilteringFeature' extends keyof TFeatures
126
- ? ColumnDef_ColumnFiltering<TFeatures, TData>
127
- : never)
128
- | ('globalFilteringFeature' extends keyof TFeatures
129
- ? ColumnDef_GlobalFiltering
130
- : never)
131
- | ('rowSortingFeature' extends keyof TFeatures
132
- ? ColumnDef_RowSorting<TFeatures, TData>
133
- : never)
134
- | ('columnGroupingFeature' extends keyof TFeatures
135
- ? ColumnDef_ColumnGrouping<TFeatures, TData, TValue>
136
- : never)
137
- | ('columnSizingFeature' extends keyof TFeatures
138
- ? ColumnDef_ColumnSizing
139
- : never)
140
- | ('columnResizingFeature' extends keyof TFeatures
141
- ? ColumnDef_ColumnResizing
142
- : never)
143
- > &
144
- ExtractFeatureTypes<'ColumnDef', TFeatures> &
145
- ColumnDef_Plugins<TFeatures, TData, TValue>
146
-
147
- // export type ColumnDefBase<
148
- // TFeatures extends TableFeatures,
149
- // TData extends RowData,
150
- // TValue extends CellData = CellData,
151
- // > = ColumnDefBase_Core<TFeatures, TData, TValue> &
152
- // ExtractFeatureTypes<'ColumnDef', TFeatures> &
153
- // ColumnDef_Plugins<TFeatures, TData, TValue>
149
+ ExtractFeatureMapTypes<
150
+ TFeatures,
151
+ ColumnDef_FeatureMap<TFeatures, TData, TValue>
152
+ >
154
153
 
155
154
  export type ColumnDefBase_All<
156
155
  TFeatures extends TableFeatures,
@@ -1,45 +1,23 @@
1
1
  import type { Header_ColumnSizing } from '../features/column-sizing/columnSizingFeature.types'
2
- import type { CellData, RowData, UnionToIntersection } from './type-utils'
3
- import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
2
+ import type { CellData, RowData } from './type-utils'
3
+ import type { ExtractFeatureMapTypes, TableFeatures } from './TableFeatures'
4
4
  import type { Header_Header } from '../core/headers/coreHeadersFeature.types'
5
5
  import type { Header_ColumnResizing } from '../features/column-resizing/columnResizingFeature.types'
6
6
 
7
- /**
8
- * Use this interface as a target for declaration merging to add your own plugin properties.
9
- * Note: This will affect the types of all tables in your project.
10
- */
11
- export interface Header_Plugins<
12
- TFeatures extends TableFeatures,
13
- TData extends RowData,
14
- TValue extends CellData = CellData,
15
- > {}
16
-
17
7
  export interface Header_Core<
18
- TFeatures extends TableFeatures,
19
- TData extends RowData,
8
+ in out TFeatures extends TableFeatures,
9
+ in out TData extends RowData,
20
10
  TValue extends CellData = CellData,
21
11
  > extends Header_Header<TFeatures, TData, TValue> {}
22
12
 
13
+ export interface Header_FeatureMap {
14
+ columnSizingFeature: Header_ColumnSizing
15
+ columnResizingFeature: Header_ColumnResizing
16
+ }
17
+
23
18
  export type Header<
24
19
  TFeatures extends TableFeatures,
25
20
  TData extends RowData,
26
21
  TValue extends CellData = CellData,
27
22
  > = Header_Core<TFeatures, TData, TValue> &
28
- UnionToIntersection<
29
- | ('columnSizingFeature' extends keyof TFeatures
30
- ? Header_ColumnSizing
31
- : never)
32
- | ('columnResizingFeature' extends keyof TFeatures
33
- ? Header_ColumnResizing
34
- : never)
35
- > &
36
- ExtractFeatureTypes<'Header', TFeatures> &
37
- Header_Plugins<TFeatures, TData, TValue>
38
-
39
- // export type Header<
40
- // TFeatures extends TableFeatures,
41
- // TData extends RowData,
42
- // TValue extends CellData = CellData,
43
- // > = Header_Core<TFeatures, TData, TValue> &
44
- // ExtractFeatureTypes<'Header', TFeatures> &
45
- // Header_Plugins<TFeatures, TData, TValue>
23
+ ExtractFeatureMapTypes<TFeatures, Header_FeatureMap>
@@ -1,24 +1,13 @@
1
1
  import type { HeaderGroup_Header } from '../core/headers/coreHeadersFeature.types'
2
- import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
2
+ import type { TableFeatures } from './TableFeatures'
3
3
  import type { RowData } from './type-utils'
4
4
 
5
- /**
6
- * Use this interface as a target for declaration merging to add your own plugin properties.
7
- * Note: This will affect the types of all tables in your project.
8
- */
9
- export interface HeaderGroup_Plugins<
10
- TFeatures extends TableFeatures,
11
- TData extends RowData,
12
- > {}
13
-
14
5
  export interface HeaderGroup_Core<
15
- TFeatures extends TableFeatures,
16
- TData extends RowData,
6
+ in out TFeatures extends TableFeatures,
7
+ in out TData extends RowData,
17
8
  > extends HeaderGroup_Header<TFeatures, TData> {}
18
9
 
19
10
  export type HeaderGroup<
20
11
  TFeatures extends TableFeatures,
21
12
  TData extends RowData,
22
- > = HeaderGroup_Core<TFeatures, TData> &
23
- ExtractFeatureTypes<'HeaderGroup', TFeatures> &
24
- HeaderGroup_Plugins<TFeatures, TData>
13
+ > = HeaderGroup_Core<TFeatures, TData>