@tanstack/table-core 9.0.0-beta.2 → 9.0.0-beta.21

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 (524) hide show
  1. package/dist/core/cells/constructCell.d.cts +3 -3
  2. package/dist/core/cells/constructCell.d.ts +3 -3
  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 +6 -6
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +6 -6
  11. package/dist/core/cells/coreCellsFeature.utils.d.cts +3 -3
  12. package/dist/core/cells/coreCellsFeature.utils.d.ts +3 -3
  13. package/dist/core/columns/constructColumn.cjs +5 -0
  14. package/dist/core/columns/constructColumn.cjs.map +1 -1
  15. package/dist/core/columns/constructColumn.d.cts +3 -3
  16. package/dist/core/columns/constructColumn.d.ts +3 -3
  17. package/dist/core/columns/constructColumn.js +5 -0
  18. package/dist/core/columns/constructColumn.js.map +1 -1
  19. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  20. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  22. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  23. package/dist/core/columns/coreColumnsFeature.js +60 -68
  24. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  25. package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -7
  26. package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -7
  27. package/dist/core/columns/coreColumnsFeature.utils.cjs +2 -2
  28. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  29. package/dist/core/columns/coreColumnsFeature.utils.d.cts +9 -9
  30. package/dist/core/columns/coreColumnsFeature.utils.d.ts +9 -9
  31. package/dist/core/columns/coreColumnsFeature.utils.js +3 -3
  32. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  33. package/dist/core/coreFeatures.cjs.map +1 -1
  34. package/dist/core/coreFeatures.d.cts +1 -1
  35. package/dist/core/coreFeatures.d.ts +1 -1
  36. package/dist/core/coreFeatures.js.map +1 -1
  37. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  38. package/dist/core/headers/buildHeaderGroups.d.cts +2 -2
  39. package/dist/core/headers/buildHeaderGroups.d.ts +2 -2
  40. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  41. package/dist/core/headers/constructHeader.d.cts +2 -2
  42. package/dist/core/headers/constructHeader.d.ts +2 -2
  43. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  44. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  45. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  46. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  47. package/dist/core/headers/coreHeadersFeature.js +45 -53
  48. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  49. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  50. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  51. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  52. package/dist/core/headers/coreHeadersFeature.utils.d.cts +6 -6
  53. package/dist/core/headers/coreHeadersFeature.utils.d.ts +6 -6
  54. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  55. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  56. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  57. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  58. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  59. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  60. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  61. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +6 -16
  62. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +6 -16
  63. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
  64. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  65. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +14 -14
  66. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +14 -14
  67. package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
  68. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  69. package/dist/core/row-models/createCoreRowModel.cjs +2 -3
  70. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  71. package/dist/core/row-models/createCoreRowModel.d.cts +1 -1
  72. package/dist/core/row-models/createCoreRowModel.d.ts +1 -1
  73. package/dist/core/row-models/createCoreRowModel.js +3 -4
  74. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  75. package/dist/core/rows/constructRow.cjs +3 -2
  76. package/dist/core/rows/constructRow.cjs.map +1 -1
  77. package/dist/core/rows/constructRow.d.cts +2 -2
  78. package/dist/core/rows/constructRow.d.ts +2 -2
  79. package/dist/core/rows/constructRow.js +4 -2
  80. package/dist/core/rows/constructRow.js.map +1 -1
  81. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  82. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  83. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  84. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  85. package/dist/core/rows/coreRowsFeature.js +28 -36
  86. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  87. package/dist/core/rows/coreRowsFeature.types.d.cts +6 -6
  88. package/dist/core/rows/coreRowsFeature.types.d.ts +6 -6
  89. package/dist/core/rows/coreRowsFeature.utils.cjs +3 -3
  90. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  91. package/dist/core/rows/coreRowsFeature.utils.d.cts +3 -3
  92. package/dist/core/rows/coreRowsFeature.utils.d.ts +3 -3
  93. package/dist/core/rows/coreRowsFeature.utils.js +4 -4
  94. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  95. package/dist/core/table/constructTable.cjs +21 -6
  96. package/dist/core/table/constructTable.cjs.map +1 -1
  97. package/dist/core/table/constructTable.d.cts +1 -1
  98. package/dist/core/table/constructTable.d.ts +1 -1
  99. package/dist/core/table/constructTable.js +21 -6
  100. package/dist/core/table/constructTable.js.map +1 -1
  101. package/dist/core/table/coreTablesFeature.cjs +7 -16
  102. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  103. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  104. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  105. package/dist/core/table/coreTablesFeature.js +8 -16
  106. package/dist/core/table/coreTablesFeature.js.map +1 -1
  107. package/dist/core/table/coreTablesFeature.types.d.cts +28 -16
  108. package/dist/core/table/coreTablesFeature.types.d.ts +28 -16
  109. package/dist/core/table/coreTablesFeature.utils.cjs +33 -12
  110. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  111. package/dist/core/table/coreTablesFeature.utils.d.cts +8 -6
  112. package/dist/core/table/coreTablesFeature.utils.d.ts +8 -6
  113. package/dist/core/table/coreTablesFeature.utils.js +33 -12
  114. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  115. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  116. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  117. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  118. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  119. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  120. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  121. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
  122. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
  123. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  124. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  125. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +8 -8
  126. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +8 -8
  127. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  128. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  129. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  130. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  131. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  132. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  133. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  134. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  135. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  136. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  137. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  138. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  139. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  140. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  141. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  142. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  143. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  144. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  145. package/dist/features/column-filtering/columnFilteringFeature.js +42 -54
  146. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  147. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
  148. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
  149. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  150. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  151. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +12 -12
  152. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +12 -12
  153. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  154. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  155. package/dist/features/column-filtering/createFilteredRowModel.cjs +12 -7
  156. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  157. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  158. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  159. package/dist/features/column-filtering/createFilteredRowModel.js +13 -8
  160. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  161. package/dist/features/column-filtering/filterRowsUtils.cjs +3 -2
  162. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
  163. package/dist/features/column-filtering/filterRowsUtils.js +3 -2
  164. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
  165. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  166. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  167. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  168. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  169. package/dist/features/column-grouping/columnGroupingFeature.js +59 -70
  170. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  171. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +28 -21
  172. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +28 -21
  173. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +4 -4
  174. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  175. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +11 -11
  176. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +11 -11
  177. package/dist/features/column-grouping/columnGroupingFeature.utils.js +5 -5
  178. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  179. package/dist/features/column-grouping/createGroupedRowModel.cjs +9 -7
  180. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  181. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  182. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  183. package/dist/features/column-grouping/createGroupedRowModel.js +10 -8
  184. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  185. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  186. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  187. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  188. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  189. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  190. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  191. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
  192. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
  193. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +9 -9
  194. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +9 -9
  195. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  196. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  197. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  198. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  199. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  200. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  201. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
  202. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
  203. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  204. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +31 -30
  205. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +31 -30
  206. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  207. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  208. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  209. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  210. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  211. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  212. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  213. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +1 -4
  214. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
  215. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +2 -5
  216. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  217. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +6 -6
  218. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +6 -6
  219. package/dist/features/column-resizing/columnResizingFeature.utils.js +3 -6
  220. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  221. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  222. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  223. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  224. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  225. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  226. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  227. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +11 -4
  228. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  229. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +12 -12
  230. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +12 -12
  231. package/dist/features/column-sizing/columnSizingFeature.utils.js +12 -5
  232. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  233. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  234. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  235. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  236. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  237. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  238. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  239. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
  240. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
  241. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +12 -9
  242. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  243. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +14 -14
  244. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +14 -14
  245. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +13 -10
  246. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  247. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  248. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  249. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  250. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  251. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  252. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  253. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +2 -2
  254. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +2 -2
  255. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  256. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +10 -8
  257. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -8
  258. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  259. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  260. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  261. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  262. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  263. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  264. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  265. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  266. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  267. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  268. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  269. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
  270. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
  271. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +21 -12
  272. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  273. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +10 -10
  274. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +10 -10
  275. package/dist/features/row-expanding/rowExpandingFeature.utils.js +22 -13
  276. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  277. package/dist/features/row-pagination/createPaginatedRowModel.cjs +1 -1
  278. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  279. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  280. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  281. package/dist/features/row-pagination/createPaginatedRowModel.js +1 -1
  282. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  283. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  284. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  285. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  286. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  287. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  288. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  289. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
  290. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
  291. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +17 -17
  292. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +17 -17
  293. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  294. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  295. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  296. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  297. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  298. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  299. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  300. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  301. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +2 -2
  302. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  303. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +7 -7
  304. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +7 -7
  305. package/dist/features/row-pinning/rowPinningFeature.utils.js +2 -2
  306. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  307. package/dist/features/row-selection/rowSelectionFeature.cjs +108 -77
  308. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  309. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  310. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  311. package/dist/features/row-selection/rowSelectionFeature.js +110 -78
  312. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  313. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +13 -5
  314. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +13 -5
  315. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +76 -60
  316. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  317. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +48 -23
  318. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +48 -23
  319. package/dist/features/row-selection/rowSelectionFeature.utils.js +77 -62
  320. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  321. package/dist/features/row-sorting/createSortedRowModel.cjs +5 -3
  322. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  323. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  324. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  325. package/dist/features/row-sorting/createSortedRowModel.js +6 -4
  326. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  327. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  328. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  329. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  330. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  331. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  332. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  333. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +24 -21
  334. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +24 -21
  335. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  336. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  337. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +16 -16
  338. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +16 -16
  339. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  340. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  341. package/dist/fns/aggregationFns.cjs +18 -18
  342. package/dist/fns/aggregationFns.cjs.map +1 -1
  343. package/dist/fns/aggregationFns.d.cts +21 -19
  344. package/dist/fns/aggregationFns.d.ts +21 -19
  345. package/dist/fns/aggregationFns.js +18 -18
  346. package/dist/fns/aggregationFns.js.map +1 -1
  347. package/dist/fns/filterFns.cjs +51 -65
  348. package/dist/fns/filterFns.cjs.map +1 -1
  349. package/dist/fns/filterFns.d.cts +82 -28
  350. package/dist/fns/filterFns.d.ts +82 -28
  351. package/dist/fns/filterFns.js +51 -65
  352. package/dist/fns/filterFns.js.map +1 -1
  353. package/dist/fns/sortFns.cjs +18 -6
  354. package/dist/fns/sortFns.cjs.map +1 -1
  355. package/dist/fns/sortFns.d.cts +15 -13
  356. package/dist/fns/sortFns.d.ts +15 -13
  357. package/dist/fns/sortFns.js +18 -6
  358. package/dist/fns/sortFns.js.map +1 -1
  359. package/dist/helpers/columnHelper.cjs.map +1 -1
  360. package/dist/helpers/columnHelper.d.cts +2 -2
  361. package/dist/helpers/columnHelper.d.ts +2 -2
  362. package/dist/helpers/columnHelper.js.map +1 -1
  363. package/dist/helpers/metaHelper.cjs +30 -0
  364. package/dist/helpers/metaHelper.cjs.map +1 -0
  365. package/dist/helpers/metaHelper.d.cts +26 -0
  366. package/dist/helpers/metaHelper.d.ts +26 -0
  367. package/dist/helpers/metaHelper.js +29 -0
  368. package/dist/helpers/metaHelper.js.map +1 -0
  369. package/dist/helpers/tableFeatures.cjs +31 -3
  370. package/dist/helpers/tableFeatures.cjs.map +1 -1
  371. package/dist/helpers/tableFeatures.d.cts +33 -5
  372. package/dist/helpers/tableFeatures.d.ts +33 -5
  373. package/dist/helpers/tableFeatures.js +31 -3
  374. package/dist/helpers/tableFeatures.js.map +1 -1
  375. package/dist/index.cjs +4 -20
  376. package/dist/index.d.cts +50 -49
  377. package/dist/index.d.ts +50 -49
  378. package/dist/index.js +23 -22
  379. package/dist/static-functions.cjs +1 -0
  380. package/dist/static-functions.d.cts +2 -2
  381. package/dist/static-functions.d.ts +2 -2
  382. package/dist/static-functions.js +2 -2
  383. package/dist/store-reactivity-bindings.cjs +1 -1
  384. package/dist/store-reactivity-bindings.cjs.map +1 -1
  385. package/dist/store-reactivity-bindings.d.cts +1 -1
  386. package/dist/store-reactivity-bindings.d.ts +1 -1
  387. package/dist/store-reactivity-bindings.js +1 -1
  388. package/dist/store-reactivity-bindings.js.map +1 -1
  389. package/dist/types/Cell.d.cts +4 -9
  390. package/dist/types/Cell.d.ts +4 -9
  391. package/dist/types/Column.d.cts +11 -18
  392. package/dist/types/Column.d.ts +11 -18
  393. package/dist/types/ColumnDef.d.cts +23 -14
  394. package/dist/types/ColumnDef.d.ts +23 -14
  395. package/dist/types/Header.d.cts +5 -10
  396. package/dist/types/Header.d.ts +5 -10
  397. package/dist/types/HeaderGroup.d.cts +4 -9
  398. package/dist/types/HeaderGroup.d.ts +4 -9
  399. package/dist/types/Row.d.cts +7 -12
  400. package/dist/types/Row.d.ts +7 -12
  401. package/dist/types/RowModel.d.cts +12 -28
  402. package/dist/types/RowModel.d.ts +12 -28
  403. package/dist/types/RowModelFns.d.cts +6 -11
  404. package/dist/types/RowModelFns.d.ts +6 -11
  405. package/dist/types/Table.d.cts +26 -36
  406. package/dist/types/Table.d.ts +26 -36
  407. package/dist/types/TableFeatures.d.cts +328 -54
  408. package/dist/types/TableFeatures.d.ts +328 -54
  409. package/dist/types/TableOptions.d.cts +22 -17
  410. package/dist/types/TableOptions.d.ts +22 -17
  411. package/dist/types/TableState.d.cts +11 -16
  412. package/dist/types/TableState.d.ts +11 -16
  413. package/dist/utils.cjs +24 -2
  414. package/dist/utils.cjs.map +1 -1
  415. package/dist/utils.d.cts +23 -7
  416. package/dist/utils.d.ts +23 -7
  417. package/dist/utils.js +23 -3
  418. package/dist/utils.js.map +1 -1
  419. package/package.json +2 -2
  420. package/skills/column-definitions/SKILL.md +3 -6
  421. package/skills/column-layout/SKILL.md +0 -2
  422. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  423. package/skills/filtering/SKILL.md +60 -42
  424. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  425. package/skills/grouping/SKILL.md +49 -54
  426. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  427. package/skills/pagination/SKILL.md +22 -20
  428. package/skills/row-expanding/SKILL.md +33 -25
  429. package/skills/row-pinning/SKILL.md +11 -7
  430. package/skills/row-selection/SKILL.md +0 -3
  431. package/skills/setup/SKILL.md +55 -65
  432. package/skills/sorting/SKILL.md +21 -21
  433. package/skills/state-management/SKILL.md +40 -25
  434. package/src/core/cells/coreCellsFeature.ts +17 -39
  435. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  436. package/src/core/columns/constructColumn.ts +6 -0
  437. package/src/core/columns/coreColumnsFeature.ts +56 -83
  438. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  439. package/src/core/columns/coreColumnsFeature.utils.ts +4 -4
  440. package/src/core/coreFeatures.ts +1 -1
  441. package/src/core/headers/buildHeaderGroups.ts +4 -2
  442. package/src/core/headers/coreHeadersFeature.ts +42 -64
  443. package/src/core/headers/coreHeadersFeature.types.ts +12 -12
  444. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  445. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  446. package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
  447. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  448. package/src/core/row-models/createCoreRowModel.ts +7 -6
  449. package/src/core/rows/constructRow.ts +3 -2
  450. package/src/core/rows/coreRowsFeature.ts +45 -72
  451. package/src/core/rows/coreRowsFeature.types.ts +8 -8
  452. package/src/core/rows/coreRowsFeature.utils.ts +4 -4
  453. package/src/core/table/constructTable.ts +50 -13
  454. package/src/core/table/coreTablesFeature.ts +13 -35
  455. package/src/core/table/coreTablesFeature.types.ts +40 -17
  456. package/src/core/table/coreTablesFeature.utils.ts +52 -18
  457. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  458. package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
  459. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  460. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  461. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  462. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  463. package/src/features/column-filtering/columnFilteringFeature.ts +61 -103
  464. package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
  465. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  466. package/src/features/column-filtering/createFilteredRowModel.ts +18 -17
  467. package/src/features/column-filtering/filterRowsUtils.ts +3 -2
  468. package/src/features/column-grouping/columnGroupingFeature.ts +83 -126
  469. package/src/features/column-grouping/columnGroupingFeature.types.ts +42 -34
  470. package/src/features/column-grouping/columnGroupingFeature.utils.ts +4 -2
  471. package/src/features/column-grouping/createGroupedRowModel.ts +17 -16
  472. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  473. package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
  474. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  475. package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
  476. package/src/features/column-pinning/columnPinningFeature.utils.ts +11 -19
  477. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  478. package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
  479. package/src/features/column-resizing/columnResizingFeature.utils.ts +5 -6
  480. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  481. package/src/features/column-sizing/columnSizingFeature.utils.ts +27 -5
  482. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  483. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  484. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +31 -15
  485. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  486. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  487. package/src/features/global-filtering/globalFilteringFeature.utils.ts +5 -3
  488. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  489. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  490. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
  491. package/src/features/row-expanding/rowExpandingFeature.utils.ts +38 -13
  492. package/src/features/row-pagination/createPaginatedRowModel.ts +2 -2
  493. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  494. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
  495. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  496. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  497. package/src/features/row-selection/rowSelectionFeature.ts +125 -135
  498. package/src/features/row-selection/rowSelectionFeature.types.ts +17 -7
  499. package/src/features/row-selection/rowSelectionFeature.utils.ts +144 -66
  500. package/src/features/row-sorting/createSortedRowModel.ts +12 -15
  501. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  502. package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
  503. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  504. package/src/fns/aggregationFns.ts +26 -42
  505. package/src/fns/filterFns.ts +237 -264
  506. package/src/fns/sortFns.ts +51 -29
  507. package/src/helpers/columnHelper.ts +4 -4
  508. package/src/helpers/metaHelper.ts +24 -0
  509. package/src/helpers/tableFeatures.ts +36 -5
  510. package/src/index.ts +1 -0
  511. package/src/store-reactivity-bindings.ts +1 -1
  512. package/src/types/Cell.ts +5 -21
  513. package/src/types/Column.ts +12 -26
  514. package/src/types/ColumnDef.ts +28 -18
  515. package/src/types/Header.ts +4 -20
  516. package/src/types/HeaderGroup.ts +7 -18
  517. package/src/types/Row.ts +6 -21
  518. package/src/types/RowModel.ts +15 -88
  519. package/src/types/RowModelFns.ts +9 -24
  520. package/src/types/Table.ts +54 -44
  521. package/src/types/TableFeatures.ts +402 -123
  522. package/src/types/TableOptions.ts +59 -21
  523. package/src/types/TableState.ts +5 -17
  524. package/src/utils.ts +40 -8
@@ -1,79 +1,353 @@
1
1
  import { CellData, RowData, UnionToIntersection } from "./type-utils.js";
2
2
  import { CoreFeatures } from "../core/coreFeatures.js";
3
3
  import { Row } from "./Row.js";
4
- import { ColumnDefBase_All } from "./ColumnDef.js";
4
+ import { FilterFn } from "../features/column-filtering/columnFilteringFeature.types.js";
5
+ import { SortFn } from "../features/row-sorting/rowSortingFeature.types.js";
5
6
  import { TableState_All } from "./TableState.js";
7
+ import { ColumnDefBase_All } from "./ColumnDef.js";
6
8
  import { TableOptions_All } from "./TableOptions.js";
9
+ import { Table } from "./Table.js";
10
+ import { Column } from "./Column.js";
7
11
  import { StockFeatures } from "../features/stockFeatures.js";
8
- import { Table_Internal } from "./Table.js";
12
+ import { RowModel } from "../core/row-models/coreRowModelsFeature.types.js";
13
+ import { AggregationFn } from "../features/column-grouping/columnGroupingFeature.types.js";
9
14
 
10
15
  //#region src/types/TableFeatures.d.ts
11
- type ExtractFeatureTypes<TKey extends keyof FeatureConstructors, TFeatures extends TableFeatures> = UnionToIntersection<{ [K in keyof TFeatures]: K extends 'coreReativityFeature' ? never : TFeatures[K] extends TableFeature<infer FeatureConstructorOptions> ? TKey extends keyof FeatureConstructorOptions ? FeatureConstructorOptions[TKey] : never : any }[keyof TFeatures]>;
16
+ /**
17
+ * Detects whether a type is `any`.
18
+ *
19
+ * Several feature-map helpers need a separate `any` path so broad generic
20
+ * usage still exposes all known feature APIs instead of narrowing to no keys.
21
+ */
12
22
  type IsAny<T> = 0 extends 1 & T ? true : false;
13
- type ExtractFeatureMapTypes<TFeatures extends TableFeatures, TFeatureMap extends object> = IsAny<TFeatures> extends true ? UnionToIntersection<TFeatureMap[keyof TFeatureMap]> : UnionToIntersection<TFeatureMap[Extract<keyof TFeatures, keyof TFeatureMap>]>;
14
- interface FeatureConstructors {
15
- CachedRowModel?: any;
16
- Cell?: any;
17
- Column?: any;
18
- ColumnDef?: any;
19
- CreateRowModels?: any;
20
- Header?: any;
21
- HeaderGroup?: any;
22
- Row?: any;
23
- RowModelFns?: any;
24
- Table?: any;
25
- TableOptions?: any;
26
- TableState?: any;
27
- }
23
+ /**
24
+ * Converts a union to an intersection, returning `{}` for `never`.
25
+ *
26
+ * This keeps empty feature-map lookups usable as an intersection member.
27
+ */
28
+ type UnionToIntersectionOrEmpty<T> = [T] extends [never] ? {} : UnionToIntersection<T> & {};
29
+ /**
30
+ * Extracts the API/types contributed by the features present in `TFeatures`.
31
+ *
32
+ * `TFeatureMap` maps feature keys to the types they contribute. When
33
+ * `TFeatures` is `any`, all feature-map entries are included to preserve the
34
+ * permissive behavior expected by broad table types. Otherwise, only entries
35
+ * whose keys are present in `TFeatures` are intersected together.
36
+ */
37
+ type ExtractFeatureMapTypes<TFeatures extends TableFeatures, TFeatureMap extends object> = IsAny<TFeatures> extends true ? UnionToIntersection<TFeatureMap[keyof TFeatureMap]> : UnionToIntersectionOrEmpty<TFeatureMap[Extract<keyof TFeatures, keyof TFeatureMap>]>;
38
+ /**
39
+ * Declaration-merge target for custom table features.
40
+ *
41
+ * Add custom feature keys here so `TableFeatures` can accept them in the
42
+ * `features` option and use the same feature-map extraction system as built-in
43
+ * features.
44
+ */
28
45
  interface Plugins {}
29
- interface TableFeatures extends Partial<CoreFeatures>, Partial<StockFeatures>, Partial<Plugins> {}
30
- type ConstructTableAPIs<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData> & Partial<TConstructors['Table']> & {
31
- options: Partial<TConstructors['TableOptions']>;
32
- }) => void;
33
- type GetDefaultColumnDef<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>() => ColumnDefBase_All<TFeatures, TData, TValue> & Partial<TConstructors['ColumnDef']>;
34
- type GetDefaultTableOptions<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData> & Partial<TConstructors['Table']>) => Partial<TableOptions_All<TFeatures, TData>> & Partial<TConstructors['TableOptions']>;
35
- type GetInitialState<TConstructors extends FeatureConstructors> = (initialState: Partial<TableState_All> & Partial<TConstructors['TableState']>) => TableState_All & Partial<TConstructors['TableState']>;
36
- type GetDefaultStateSelector<TConstructors extends FeatureConstructors> = (state: TableState_All) => Partial<TableState_All> & Partial<TConstructors['TableState']>;
37
- type AssignCellPrototype<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
38
- type AssignColumnPrototype<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
39
- type AssignHeaderPrototype<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
40
- type AssignRowPrototype<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
41
- type InitRowInstanceData<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData> & Partial<TConstructors['Row']>) => void;
42
- interface TableFeature<TConstructors extends FeatureConstructors> {
46
+ /**
47
+ * Keys of the `features` option that are not table features themselves.
48
+ *
49
+ * These slots carry per-table types (`tableMeta`, `columnMeta`), row model
50
+ * factories, and row model function registries. They are stripped from the
51
+ * table's registered `_features` at runtime and excluded from feature-derived
52
+ * options such as the generated `debug*` keys.
53
+ */
54
+ type NonFeatureKeys = 'aggregationFns' | 'columnMeta' | 'coreRowModel' | 'expandedRowModel' | 'facetedMinMaxValues' | 'facetedRowModel' | 'facetedUniqueValues' | 'filterFns' | 'filterMeta' | 'filteredRowModel' | 'groupedRowModel' | 'paginatedRowModel' | 'sortFns' | 'sortedRowModel' | 'tableMeta';
55
+ /**
56
+ * Maps each row model and fn registry slot to the feature(s) that must be
57
+ * registered alongside it in the same features object.
58
+ *
59
+ * Custom features can declaration-merge their own slot prerequisites into this
60
+ * interface to get the same validation from `tableFeatures()`.
61
+ */
62
+ interface FeatureSlotPrereqs {
63
+ /**
64
+ * Named aggregation functions are only meaningful when grouping is enabled.
65
+ */
66
+ aggregationFns: 'columnGroupingFeature';
67
+ /**
68
+ * Column resizing builds on the column sizing state and APIs.
69
+ */
70
+ columnResizingFeature: 'columnSizingFeature';
71
+ /**
72
+ * Expanded row-model factories require row expanding APIs and state.
73
+ */
74
+ expandedRowModel: 'rowExpandingFeature';
75
+ /**
76
+ * Faceted min/max factories require column faceting APIs.
77
+ */
78
+ facetedMinMaxValues: 'columnFacetingFeature';
79
+ /**
80
+ * Faceted row-model factories require column faceting APIs.
81
+ */
82
+ facetedRowModel: 'columnFacetingFeature';
83
+ /**
84
+ * Faceted unique-value factories require column faceting APIs.
85
+ */
86
+ facetedUniqueValues: 'columnFacetingFeature';
87
+ /**
88
+ * Filtered row-model factories require column filtering APIs and state.
89
+ */
90
+ filteredRowModel: 'columnFilteringFeature';
91
+ /**
92
+ * Named filter functions are only meaningful when column filtering is enabled.
93
+ */
94
+ filterFns: 'columnFilteringFeature';
95
+ /**
96
+ * Filter metadata types are only read and written by filtering features.
97
+ */
98
+ filterMeta: 'columnFilteringFeature';
99
+ /**
100
+ * Global filtering builds on column filtering state and filter functions.
101
+ */
102
+ globalFilteringFeature: 'columnFilteringFeature';
103
+ /**
104
+ * Grouped row-model factories require column grouping APIs and state.
105
+ */
106
+ groupedRowModel: 'columnGroupingFeature';
107
+ /**
108
+ * Paginated row-model factories require row pagination APIs and state.
109
+ */
110
+ paginatedRowModel: 'rowPaginationFeature';
111
+ /**
112
+ * Sorted row-model factories require row sorting APIs and state.
113
+ */
114
+ sortedRowModel: 'rowSortingFeature';
115
+ /**
116
+ * Named sorting functions are only meaningful when row sorting is enabled.
117
+ */
118
+ sortFns: 'rowSortingFeature';
119
+ }
120
+ /**
121
+ * Validates that every row model and fn registry slot in a features object is
122
+ * accompanied by its prerequisite feature.
123
+ *
124
+ * Slots whose prerequisite is missing have their type replaced with a literal
125
+ * error message, so the offending property fails to type-check with a message
126
+ * naming the feature that needs to be added.
127
+ */
128
+ type ValidateFeatureSlots<TFeatures extends TableFeatures> = IsAny<TFeatures> extends true ? {} : { [K in keyof TFeatures as K extends keyof FeatureSlotPrereqs ? K : never]: K extends keyof FeatureSlotPrereqs ? [Extract<FeatureSlotPrereqs[K], keyof TFeatures>] extends [never] ? `Error: '${K & string}' requires '${FeatureSlotPrereqs[K] & string}' to be included in this table's features.` : TFeatures[K] : never };
129
+ /**
130
+ * Complete feature registry for a table.
131
+ *
132
+ * This type combines core features, stock features, declaration-merged custom
133
+ * plugins, row-model factory slots, function registries, and type-only meta
134
+ * slots. The concrete `features` object passed to `tableFeatures()` determines
135
+ * which feature APIs are included throughout table, row, column, cell, header,
136
+ * options, and state types.
137
+ */
138
+ interface TableFeatures extends Partial<CoreFeatures>, Partial<StockFeatures>, Partial<Plugins> {
139
+ /**
140
+ * Registry of aggregation functions available to this table by name.
141
+ *
142
+ * Keys registered here become the valid string values for `aggregationFn` on
143
+ * column definitions, with full inference. Spread the exported
144
+ * `aggregationFns` to register the built-in aggregation functions:
145
+ * `aggregationFns: { ...aggregationFns, myCustomAggregationFn }`.
146
+ */
147
+ aggregationFns?: Record<string, AggregationFn<any, any>>;
148
+ /**
149
+ * Type-only slot for declaring the type of `columnDef.meta` for all columns
150
+ * of this table.
151
+ *
152
+ * Pass a phantom value: `columnMeta: {} as MyColumnMeta`. The value itself is
153
+ * ignored and stripped from the table's registered features at runtime — only
154
+ * its type is used, inferred wherever `TFeatures` flows.
155
+ *
156
+ * When omitted, the global declaration-merged `ColumnMeta` interface applies.
157
+ */
158
+ columnMeta?: object;
159
+ /**
160
+ * Factory for the table's core (unmodified) row model. Defaults to the
161
+ * built-in `createCoreRowModel()` when omitted.
162
+ */
163
+ coreRowModel?: (table: any) => () => RowModel<any, any>;
164
+ /**
165
+ * Factory for the client-side expanded row model. Pass the exported
166
+ * `createExpandedRowModel()` or implement your own. Not needed for
167
+ * server-side expansion.
168
+ */
169
+ expandedRowModel?: (table: any) => () => RowModel<any, any>;
170
+ /**
171
+ * Factory for per-column faceted min/max values. Pass the exported
172
+ * `createFacetedMinMaxValues()` or implement your own. Not needed for
173
+ * server-side faceting.
174
+ */
175
+ facetedMinMaxValues?: (table: any, columnId: string) => () => [number, number] | undefined;
176
+ /**
177
+ * Factory for the per-column faceted row model. Pass the exported
178
+ * `createFacetedRowModel()` or implement your own. Not needed for
179
+ * server-side faceting.
180
+ */
181
+ facetedRowModel?: (table: any, columnId: string) => () => RowModel<any, any>;
182
+ /**
183
+ * Factory for per-column faceted unique values. Pass the exported
184
+ * `createFacetedUniqueValues()` or implement your own. Not needed for
185
+ * server-side faceting.
186
+ */
187
+ facetedUniqueValues?: (table: any, columnId: string) => () => Map<any, number>;
188
+ /**
189
+ * Factory for the client-side filtered row model. Pass the exported
190
+ * `createFilteredRowModel()` or implement your own. Not needed for
191
+ * server-side filtering.
192
+ */
193
+ filteredRowModel?: (table: any) => () => RowModel<any, any>;
194
+ /**
195
+ * Registry of filter functions available to this table by name.
196
+ *
197
+ * Keys registered here become the valid string values for `filterFn` on
198
+ * column definitions and the `globalFilterFn` option, with full inference.
199
+ * Spread the exported `filterFns` to register the built-in filter functions:
200
+ * `filterFns: { ...filterFns, myCustomFilterFn }`.
201
+ */
202
+ filterFns?: Record<string, FilterFn<any, any>>;
203
+ /**
204
+ * Type-only slot for declaring the type of the filter meta that filter
205
+ * functions attach to rows via `addMeta` and that is read back from
206
+ * `row.columnFiltersMeta`.
207
+ *
208
+ * Pass a phantom value: `filterMeta: {} as MyFilterMeta` (or
209
+ * `metaHelper<MyFilterMeta>()`). The value itself is ignored and stripped
210
+ * from the table's registered features at runtime; only its type is used.
211
+ *
212
+ * When omitted, the global declaration-merged `FilterMeta` interface applies.
213
+ */
214
+ filterMeta?: object;
215
+ /**
216
+ * Factory for the client-side grouped row model. Pass the exported
217
+ * `createGroupedRowModel()` or implement your own. Not needed for
218
+ * server-side grouping.
219
+ */
220
+ groupedRowModel?: (table: any) => () => RowModel<any, any>;
221
+ /**
222
+ * Factory for the client-side paginated row model. Pass the exported
223
+ * `createPaginatedRowModel()` or implement your own. Not needed for
224
+ * server-side pagination.
225
+ */
226
+ paginatedRowModel?: (table: any) => () => RowModel<any, any>;
227
+ /**
228
+ * Factory for the client-side sorted row model. Pass the exported
229
+ * `createSortedRowModel()` or implement your own. Not needed for
230
+ * server-side sorting.
231
+ */
232
+ sortedRowModel?: (table: any) => () => RowModel<any, any>;
233
+ /**
234
+ * Registry of sorting functions available to this table by name.
235
+ *
236
+ * Keys registered here become the valid string values for `sortFn` on column
237
+ * definitions, with full inference. Spread the exported `sortFns` to register
238
+ * the built-in sorting functions: `sortFns: { ...sortFns, myCustomSortFn }`.
239
+ */
240
+ sortFns?: Record<string, SortFn<any, any>>;
241
+ /**
242
+ * Type-only slot for declaring the type of this table's `options.meta`.
243
+ *
244
+ * Pass a phantom value: `tableMeta: {} as MyTableMeta`. The value itself is
245
+ * ignored and stripped from the table's registered features at runtime — only
246
+ * its type is used, inferred wherever `TFeatures` flows.
247
+ *
248
+ * When omitted, the global declaration-merged `TableMeta` interface applies.
249
+ */
250
+ tableMeta?: object;
251
+ }
252
+ /**
253
+ * Lifecycle hooks and defaults contributed by a table feature.
254
+ *
255
+ * Feature objects are registered in the table's `features` option. They can
256
+ * contribute default state/options, default column definitions, table APIs,
257
+ * shared prototype APIs for rows/columns/headers/cells, and per-instance row
258
+ * or column data.
259
+ */
260
+ interface TableFeature {
261
+ /**
262
+ * Adds feature methods to the shared cell prototype for a table.
263
+ *
264
+ * This runs lazily the first time a cell is constructed for a table. Methods
265
+ * assigned here are shared by every cell instance created by that table, so
266
+ * this hook should be used for APIs and memoized methods rather than
267
+ * per-cell mutable data.
268
+ */
269
+ assignCellPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table<TFeatures, TData>) => void;
270
+ /**
271
+ * Adds feature methods to the shared column prototype for a table.
272
+ *
273
+ * This runs lazily the first time a column is constructed for a table.
274
+ * Methods assigned here are shared by every column instance created by that
275
+ * table, so this hook should be used for APIs and memoized methods rather
276
+ * than per-column mutable data.
277
+ */
278
+ assignColumnPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table<TFeatures, TData>) => void;
279
+ /**
280
+ * Adds feature methods to the shared header prototype for a table.
281
+ *
282
+ * This runs lazily the first time a header is constructed for a table.
283
+ * Methods assigned here are shared by every header instance created by that
284
+ * table, so this hook should be used for APIs and memoized methods rather
285
+ * than per-header mutable data.
286
+ */
287
+ assignHeaderPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table<TFeatures, TData>) => void;
288
+ /**
289
+ * Adds feature methods to the shared row prototype for a table.
290
+ *
291
+ * This runs lazily the first time a row is constructed for a table. Methods
292
+ * assigned here are shared by every row instance created by that table, so
293
+ * this hook should be used for APIs and memoized methods rather than per-row
294
+ * mutable data.
295
+ */
296
+ assignRowPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table<TFeatures, TData>) => void;
43
297
  /**
44
- * Assigns Cell APIs to the cell prototype for memory-efficient method sharing.
45
- * This is called once per table to build a shared prototype for all cells.
298
+ * Adds feature APIs directly to the table instance.
299
+ *
300
+ * The table is a singleton, unlike rows, columns, headers, and cells, so
301
+ * table APIs are assigned directly instead of through a shared prototype.
302
+ * This runs while the table is being constructed, after options and initial
303
+ * state have been resolved.
46
304
  */
47
- assignCellPrototype?: AssignCellPrototype<TConstructors>;
305
+ constructTableAPIs?: <TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>) => void;
48
306
  /**
49
- * Assigns Column APIs to the column prototype for memory-efficient method sharing.
50
- * This is called once per table to build a shared prototype for all columns.
307
+ * Returns default column definition options contributed by this feature.
308
+ *
309
+ * These defaults are merged into the table's default column definition before
310
+ * `options.defaultColumn` and before each user-supplied column definition is
311
+ * resolved, so users can override values supplied here.
51
312
  */
52
- assignColumnPrototype?: AssignColumnPrototype<TConstructors>;
313
+ getDefaultColumnDef?: <TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>() => ColumnDefBase_All<TFeatures, TData, TValue>;
53
314
  /**
54
- * Assigns Header APIs to the header prototype for memory-efficient method sharing.
55
- * This is called once per table to build a shared prototype for all headers.
315
+ * Returns default table options contributed by this feature.
316
+ *
317
+ * This runs while table options are being resolved. Use it for option
318
+ * defaults such as feature enablement flags and default state-updater
319
+ * callbacks. User-supplied table options take precedence over values returned
320
+ * here.
56
321
  */
57
- assignHeaderPrototype?: AssignHeaderPrototype<TConstructors>;
322
+ getDefaultTableOptions?: <TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>) => Partial<TableOptions_All<TFeatures, TData>>;
58
323
  /**
59
- * Assigns Row APIs to the row prototype for memory-efficient method sharing.
60
- * This is called once per table to build a shared prototype for all rows.
324
+ * Returns this feature's initial table state.
325
+ *
326
+ * The incoming `initialState` contains state accumulated from earlier
327
+ * features and user-provided initial state. Return a complete state object
328
+ * for this feature, preserving `initialState` so user-provided values can
329
+ * override feature defaults.
61
330
  */
62
- assignRowPrototype?: AssignRowPrototype<TConstructors>;
331
+ getInitialState?: (initialState: Partial<TableState_All>) => TableState_All;
63
332
  /**
64
- * Assigns Table APIs to the table instance.
65
- * Unlike row/cell/column/header, the table is a singleton so methods are assigned directly.
333
+ * Initializes instance-specific data on each column.
334
+ *
335
+ * This runs for every constructed column after core column fields such as
336
+ * `id`, `depth`, `parent`, `columnDef`, and `columns` have been assigned.
337
+ * Use this for per-column mutable data, caches, or annotations. Shared
338
+ * methods should be assigned via `assignColumnPrototype` instead.
66
339
  */
67
- constructTableAPIs?: ConstructTableAPIs<TConstructors>;
68
- getDefaultColumnDef?: GetDefaultColumnDef<TConstructors>;
69
- getDefaultTableOptions?: GetDefaultTableOptions<TConstructors>;
70
- getInitialState?: GetInitialState<TConstructors>;
340
+ initColumnInstanceData?: <TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>) => void;
71
341
  /**
72
- * Initializes instance-specific data on each row (e.g., caches).
73
- * Methods should be assigned via assignRowPrototype instead.
342
+ * Initializes instance-specific data on each row.
343
+ *
344
+ * This runs for every constructed row after core row fields such as `id`,
345
+ * `index`, `depth`, `original`, `parentId`, and `subRows` have been assigned.
346
+ * Use this for per-row mutable data, caches, or annotations. Shared methods
347
+ * should be assigned via `assignRowPrototype` instead.
74
348
  */
75
- initRowInstanceData?: InitRowInstanceData<TConstructors>;
349
+ initRowInstanceData?: <TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>) => void;
76
350
  }
77
351
  //#endregion
78
- export { AssignCellPrototype, AssignColumnPrototype, AssignHeaderPrototype, AssignRowPrototype, ConstructTableAPIs, ExtractFeatureMapTypes, ExtractFeatureTypes, FeatureConstructors, GetDefaultColumnDef, GetDefaultStateSelector, GetDefaultTableOptions, GetInitialState, InitRowInstanceData, Plugins, TableFeature, TableFeatures };
352
+ export { ExtractFeatureMapTypes, FeatureSlotPrereqs, IsAny, NonFeatureKeys, Plugins, TableFeature, TableFeatures, ValidateFeatureSlots };
79
353
  //# sourceMappingURL=TableFeatures.d.ts.map
@@ -1,32 +1,31 @@
1
1
  import { RowData, UnionToIntersection } from "./type-utils.cjs";
2
2
  import { CoreFeatures } from "../core/coreFeatures.cjs";
3
- import { TableOptions_RowSorting } from "../features/row-sorting/rowSortingFeature.types.cjs";
4
- import { TableOptions_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.cjs";
5
- import { TableOptions_ColumnSizing } from "../features/column-sizing/columnSizingFeature.types.cjs";
6
3
  import { TableOptions_ColumnResizing } from "../features/column-resizing/columnResizingFeature.types.cjs";
7
- import { TableOptions_ColumnPinning } from "../features/column-pinning/columnPinningFeature.types.cjs";
8
- import { TableOptions_ColumnOrdering } from "../features/column-ordering/columnOrderingFeature.types.cjs";
9
- import { TableOptions_GlobalFiltering } from "../features/global-filtering/globalFilteringFeature.types.cjs";
10
- import { TableOptions_Columns } from "../core/columns/coreColumnsFeature.types.cjs";
11
4
  import { TableOptions_ColumnVisibility } from "../features/column-visibility/columnVisibilityFeature.types.cjs";
5
+ import { TableOptions_ColumnSizing } from "../features/column-sizing/columnSizingFeature.types.cjs";
6
+ import { TableOptions_ColumnPinning } from "../features/column-pinning/columnPinningFeature.types.cjs";
12
7
  import { TableOptions_RowExpanding } from "../features/row-expanding/rowExpandingFeature.types.cjs";
13
8
  import { TableOptions_RowPinning } from "../features/row-pinning/rowPinningFeature.types.cjs";
14
9
  import { TableOptions_RowSelection } from "../features/row-selection/rowSelectionFeature.types.cjs";
15
10
  import { TableOptions_Rows } from "../core/rows/coreRowsFeature.types.cjs";
16
- import { TableOptions_Cell } from "../core/cells/coreCellsFeature.types.cjs";
11
+ import { TableOptions_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.cjs";
12
+ import { TableOptions_ColumnOrdering } from "../features/column-ordering/columnOrderingFeature.types.cjs";
13
+ import { TableOptions_GlobalFiltering } from "../features/global-filtering/globalFilteringFeature.types.cjs";
17
14
  import { TableOptions_RowPagination } from "../features/row-pagination/rowPaginationFeature.types.cjs";
15
+ import { TableOptions_RowSorting } from "../features/row-sorting/rowSortingFeature.types.cjs";
16
+ import { TableOptions_Cell } from "../core/cells/coreCellsFeature.types.cjs";
17
+ import { TableOptions_Columns } from "../core/columns/coreColumnsFeature.types.cjs";
18
18
  import { TableOptions_Table } from "../core/table/coreTablesFeature.types.cjs";
19
- import { ExtractFeatureMapTypes, ExtractFeatureTypes, TableFeatures } from "./TableFeatures.cjs";
19
+ import { ExtractFeatureMapTypes, NonFeatureKeys, TableFeatures } from "./TableFeatures.cjs";
20
20
  import { TableOptions_ColumnGrouping } from "../features/column-grouping/columnGroupingFeature.types.cjs";
21
21
 
22
22
  //#region src/types/TableOptions.d.ts
23
- interface TableOptions_Plugins<TFeatures extends TableFeatures, TData extends RowData> {}
24
23
  /**
25
24
  * Core options that are always available on a table, before optional feature
26
25
  * options are mixed in.
27
26
  */
28
- interface TableOptions_Core<TFeatures extends TableFeatures, TData extends RowData> extends TableOptions_Table<TFeatures, TData>, TableOptions_Cell, TableOptions_Columns<TFeatures, TData>, TableOptions_Rows<TFeatures, TData> {}
29
- type DebugKeysFor<TFeatures extends TableFeatures> = { [K in keyof TFeatures & string as `debug${Capitalize<K>}`]?: boolean };
27
+ interface TableOptions_Core<in out TFeatures extends TableFeatures, in out TData extends RowData> extends TableOptions_Table<TFeatures, TData>, TableOptions_Cell, TableOptions_Columns<TFeatures, TData>, TableOptions_Rows<TFeatures, TData> {}
28
+ type DebugKeysFor<TFeatures extends TableFeatures> = { [K in Exclude<keyof TFeatures & string, NonFeatureKeys> as `debug${Capitalize<K>}`]?: boolean };
30
29
  type DebugOptions<TFeatures extends TableFeatures> = {
31
30
  debugAll?: boolean;
32
31
  debugCache?: boolean;
@@ -36,7 +35,7 @@ type DebugOptions<TFeatures extends TableFeatures> = {
36
35
  debugRows?: boolean;
37
36
  debugTable?: boolean;
38
37
  } & DebugKeysFor<CoreFeatures & TFeatures>;
39
- interface TableOptions_FeatureMap<TFeatures extends TableFeatures, TData extends RowData> {
38
+ interface TableOptions_FeatureMap<in out TFeatures extends TableFeatures, in out TData extends RowData> {
40
39
  columnFilteringFeature: TableOptions_ColumnFiltering<TFeatures, TData>;
41
40
  columnGroupingFeature: TableOptions_ColumnGrouping;
42
41
  columnOrderingFeature: TableOptions_ColumnOrdering;
@@ -51,7 +50,13 @@ interface TableOptions_FeatureMap<TFeatures extends TableFeatures, TData extends
51
50
  rowSelectionFeature: TableOptions_RowSelection<TFeatures, TData>;
52
51
  rowSortingFeature: TableOptions_RowSorting;
53
52
  }
54
- type TableOptions_FeatureMap_All<TFeatures extends TableFeatures, TData extends RowData> = UnionToIntersection<TableOptions_FeatureMap<TFeatures, TData>[keyof TableOptions_FeatureMap<TFeatures, TData>]>;
53
+ type TableOptions_StockFeatureKeys = 'columnFilteringFeature' | 'columnGroupingFeature' | 'columnOrderingFeature' | 'columnPinningFeature' | 'columnResizingFeature' | 'columnSizingFeature' | 'columnVisibilityFeature' | 'globalFilteringFeature' | 'rowExpandingFeature' | 'rowPaginationFeature' | 'rowPinningFeature' | 'rowSelectionFeature' | 'rowSortingFeature';
54
+ /**
55
+ * Plugin entries declaration-merged into `TableOptions_FeatureMap`, i.e. keys
56
+ * beyond the stock set. Resolves to `unknown` (an intersection no-op) when no
57
+ * plugins are merged so the common case skips the union-to-intersection work.
58
+ */
59
+ type TableOptions_PluginFeatureMapTypes<TFeatures extends TableFeatures, TData extends RowData> = [Exclude<keyof TableOptions_FeatureMap<TFeatures, TData>, TableOptions_StockFeatureKeys>] extends [never] ? unknown : UnionToIntersection<TableOptions_FeatureMap<TFeatures, TData>[Exclude<keyof TableOptions_FeatureMap<TFeatures, TData>, TableOptions_StockFeatureKeys>]>;
55
60
  /**
56
61
  * Complete table options for a specific feature set.
57
62
  *
@@ -59,12 +64,12 @@ type TableOptions_FeatureMap_All<TFeatures extends TableFeatures, TData extends
59
64
  * `TFeatures`, then custom feature/plugin options and debug options are mixed
60
65
  * in.
61
66
  */
62
- type TableOptions<TFeatures extends TableFeatures, TData extends RowData> = TableOptions_Core<TFeatures, TData> & ExtractFeatureMapTypes<TFeatures, TableOptions_FeatureMap<TFeatures, TData>> & ExtractFeatureTypes<'TableOptions', TFeatures> & TableOptions_Plugins<TFeatures, TData> & DebugOptions<TFeatures>;
67
+ type TableOptions<TFeatures extends TableFeatures, TData extends RowData> = TableOptions_Core<TFeatures, TData> & ExtractFeatureMapTypes<TFeatures, TableOptions_FeatureMap<TFeatures, TData>> & DebugOptions<TFeatures>;
63
68
  /**
64
69
  * Internal broad option shape used where feature code may need to read options
65
70
  * from features that are not present in the current generic feature set.
66
71
  */
67
- type TableOptions_All<TFeatures extends TableFeatures, TData extends RowData> = TableOptions_Core<TFeatures, TData> & Partial<TableOptions_FeatureMap_All<TFeatures, TData>>;
72
+ type TableOptions_All<TFeatures extends TableFeatures, TData extends RowData> = TableOptions_Core<TFeatures, TData> & Partial<TableOptions_ColumnFiltering<TFeatures, TData> & TableOptions_ColumnGrouping & TableOptions_ColumnOrdering & TableOptions_ColumnPinning & TableOptions_ColumnResizing & TableOptions_ColumnSizing & TableOptions_ColumnVisibility & TableOptions_GlobalFiltering<TFeatures, TData> & TableOptions_RowExpanding<TFeatures, TData> & TableOptions_RowPagination & TableOptions_RowPinning<TFeatures, TData> & TableOptions_RowSelection<TFeatures, TData> & TableOptions_RowSorting & TableOptions_PluginFeatureMapTypes<TFeatures, TData>>;
68
73
  //#endregion
69
- export { DebugOptions, TableOptions, TableOptions_All, TableOptions_Core, TableOptions_FeatureMap, TableOptions_FeatureMap_All, TableOptions_Plugins };
74
+ export { DebugOptions, TableOptions, TableOptions_All, TableOptions_Core, TableOptions_FeatureMap };
70
75
  //# sourceMappingURL=TableOptions.d.cts.map
@@ -1,32 +1,31 @@
1
1
  import { RowData, UnionToIntersection } from "./type-utils.js";
2
2
  import { CoreFeatures } from "../core/coreFeatures.js";
3
- import { TableOptions_RowSorting } from "../features/row-sorting/rowSortingFeature.types.js";
4
- import { TableOptions_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.js";
5
- import { TableOptions_ColumnSizing } from "../features/column-sizing/columnSizingFeature.types.js";
6
3
  import { TableOptions_ColumnResizing } from "../features/column-resizing/columnResizingFeature.types.js";
7
- import { TableOptions_ColumnPinning } from "../features/column-pinning/columnPinningFeature.types.js";
8
- import { TableOptions_ColumnOrdering } from "../features/column-ordering/columnOrderingFeature.types.js";
9
- import { TableOptions_GlobalFiltering } from "../features/global-filtering/globalFilteringFeature.types.js";
10
- import { TableOptions_Columns } from "../core/columns/coreColumnsFeature.types.js";
11
4
  import { TableOptions_ColumnVisibility } from "../features/column-visibility/columnVisibilityFeature.types.js";
5
+ import { TableOptions_ColumnSizing } from "../features/column-sizing/columnSizingFeature.types.js";
6
+ import { TableOptions_ColumnPinning } from "../features/column-pinning/columnPinningFeature.types.js";
12
7
  import { TableOptions_RowExpanding } from "../features/row-expanding/rowExpandingFeature.types.js";
13
8
  import { TableOptions_RowPinning } from "../features/row-pinning/rowPinningFeature.types.js";
14
9
  import { TableOptions_RowSelection } from "../features/row-selection/rowSelectionFeature.types.js";
15
10
  import { TableOptions_Rows } from "../core/rows/coreRowsFeature.types.js";
16
- import { TableOptions_Cell } from "../core/cells/coreCellsFeature.types.js";
11
+ import { TableOptions_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.js";
12
+ import { TableOptions_ColumnOrdering } from "../features/column-ordering/columnOrderingFeature.types.js";
13
+ import { TableOptions_GlobalFiltering } from "../features/global-filtering/globalFilteringFeature.types.js";
17
14
  import { TableOptions_RowPagination } from "../features/row-pagination/rowPaginationFeature.types.js";
15
+ import { TableOptions_RowSorting } from "../features/row-sorting/rowSortingFeature.types.js";
16
+ import { TableOptions_Cell } from "../core/cells/coreCellsFeature.types.js";
17
+ import { TableOptions_Columns } from "../core/columns/coreColumnsFeature.types.js";
18
18
  import { TableOptions_Table } from "../core/table/coreTablesFeature.types.js";
19
- import { ExtractFeatureMapTypes, ExtractFeatureTypes, TableFeatures } from "./TableFeatures.js";
19
+ import { ExtractFeatureMapTypes, NonFeatureKeys, TableFeatures } from "./TableFeatures.js";
20
20
  import { TableOptions_ColumnGrouping } from "../features/column-grouping/columnGroupingFeature.types.js";
21
21
 
22
22
  //#region src/types/TableOptions.d.ts
23
- interface TableOptions_Plugins<TFeatures extends TableFeatures, TData extends RowData> {}
24
23
  /**
25
24
  * Core options that are always available on a table, before optional feature
26
25
  * options are mixed in.
27
26
  */
28
- interface TableOptions_Core<TFeatures extends TableFeatures, TData extends RowData> extends TableOptions_Table<TFeatures, TData>, TableOptions_Cell, TableOptions_Columns<TFeatures, TData>, TableOptions_Rows<TFeatures, TData> {}
29
- type DebugKeysFor<TFeatures extends TableFeatures> = { [K in keyof TFeatures & string as `debug${Capitalize<K>}`]?: boolean };
27
+ interface TableOptions_Core<in out TFeatures extends TableFeatures, in out TData extends RowData> extends TableOptions_Table<TFeatures, TData>, TableOptions_Cell, TableOptions_Columns<TFeatures, TData>, TableOptions_Rows<TFeatures, TData> {}
28
+ type DebugKeysFor<TFeatures extends TableFeatures> = { [K in Exclude<keyof TFeatures & string, NonFeatureKeys> as `debug${Capitalize<K>}`]?: boolean };
30
29
  type DebugOptions<TFeatures extends TableFeatures> = {
31
30
  debugAll?: boolean;
32
31
  debugCache?: boolean;
@@ -36,7 +35,7 @@ type DebugOptions<TFeatures extends TableFeatures> = {
36
35
  debugRows?: boolean;
37
36
  debugTable?: boolean;
38
37
  } & DebugKeysFor<CoreFeatures & TFeatures>;
39
- interface TableOptions_FeatureMap<TFeatures extends TableFeatures, TData extends RowData> {
38
+ interface TableOptions_FeatureMap<in out TFeatures extends TableFeatures, in out TData extends RowData> {
40
39
  columnFilteringFeature: TableOptions_ColumnFiltering<TFeatures, TData>;
41
40
  columnGroupingFeature: TableOptions_ColumnGrouping;
42
41
  columnOrderingFeature: TableOptions_ColumnOrdering;
@@ -51,7 +50,13 @@ interface TableOptions_FeatureMap<TFeatures extends TableFeatures, TData extends
51
50
  rowSelectionFeature: TableOptions_RowSelection<TFeatures, TData>;
52
51
  rowSortingFeature: TableOptions_RowSorting;
53
52
  }
54
- type TableOptions_FeatureMap_All<TFeatures extends TableFeatures, TData extends RowData> = UnionToIntersection<TableOptions_FeatureMap<TFeatures, TData>[keyof TableOptions_FeatureMap<TFeatures, TData>]>;
53
+ type TableOptions_StockFeatureKeys = 'columnFilteringFeature' | 'columnGroupingFeature' | 'columnOrderingFeature' | 'columnPinningFeature' | 'columnResizingFeature' | 'columnSizingFeature' | 'columnVisibilityFeature' | 'globalFilteringFeature' | 'rowExpandingFeature' | 'rowPaginationFeature' | 'rowPinningFeature' | 'rowSelectionFeature' | 'rowSortingFeature';
54
+ /**
55
+ * Plugin entries declaration-merged into `TableOptions_FeatureMap`, i.e. keys
56
+ * beyond the stock set. Resolves to `unknown` (an intersection no-op) when no
57
+ * plugins are merged so the common case skips the union-to-intersection work.
58
+ */
59
+ type TableOptions_PluginFeatureMapTypes<TFeatures extends TableFeatures, TData extends RowData> = [Exclude<keyof TableOptions_FeatureMap<TFeatures, TData>, TableOptions_StockFeatureKeys>] extends [never] ? unknown : UnionToIntersection<TableOptions_FeatureMap<TFeatures, TData>[Exclude<keyof TableOptions_FeatureMap<TFeatures, TData>, TableOptions_StockFeatureKeys>]>;
55
60
  /**
56
61
  * Complete table options for a specific feature set.
57
62
  *
@@ -59,12 +64,12 @@ type TableOptions_FeatureMap_All<TFeatures extends TableFeatures, TData extends
59
64
  * `TFeatures`, then custom feature/plugin options and debug options are mixed
60
65
  * in.
61
66
  */
62
- type TableOptions<TFeatures extends TableFeatures, TData extends RowData> = TableOptions_Core<TFeatures, TData> & ExtractFeatureMapTypes<TFeatures, TableOptions_FeatureMap<TFeatures, TData>> & ExtractFeatureTypes<'TableOptions', TFeatures> & TableOptions_Plugins<TFeatures, TData> & DebugOptions<TFeatures>;
67
+ type TableOptions<TFeatures extends TableFeatures, TData extends RowData> = TableOptions_Core<TFeatures, TData> & ExtractFeatureMapTypes<TFeatures, TableOptions_FeatureMap<TFeatures, TData>> & DebugOptions<TFeatures>;
63
68
  /**
64
69
  * Internal broad option shape used where feature code may need to read options
65
70
  * from features that are not present in the current generic feature set.
66
71
  */
67
- type TableOptions_All<TFeatures extends TableFeatures, TData extends RowData> = TableOptions_Core<TFeatures, TData> & Partial<TableOptions_FeatureMap_All<TFeatures, TData>>;
72
+ type TableOptions_All<TFeatures extends TableFeatures, TData extends RowData> = TableOptions_Core<TFeatures, TData> & Partial<TableOptions_ColumnFiltering<TFeatures, TData> & TableOptions_ColumnGrouping & TableOptions_ColumnOrdering & TableOptions_ColumnPinning & TableOptions_ColumnResizing & TableOptions_ColumnSizing & TableOptions_ColumnVisibility & TableOptions_GlobalFiltering<TFeatures, TData> & TableOptions_RowExpanding<TFeatures, TData> & TableOptions_RowPagination & TableOptions_RowPinning<TFeatures, TData> & TableOptions_RowSelection<TFeatures, TData> & TableOptions_RowSorting & TableOptions_PluginFeatureMapTypes<TFeatures, TData>>;
68
73
  //#endregion
69
- export { DebugOptions, TableOptions, TableOptions_All, TableOptions_Core, TableOptions_FeatureMap, TableOptions_FeatureMap_All, TableOptions_Plugins };
74
+ export { DebugOptions, TableOptions, TableOptions_All, TableOptions_Core, TableOptions_FeatureMap };
70
75
  //# sourceMappingURL=TableOptions.d.ts.map