@tanstack/table-core 9.0.0-beta.5 → 9.0.0-beta.51

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