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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/dist/core/cells/constructCell.d.cts +1 -1
  2. package/dist/core/cells/constructCell.d.ts +1 -1
  3. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  4. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  5. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  6. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  7. package/dist/core/cells/coreCellsFeature.js +12 -20
  8. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  9. package/dist/core/cells/coreCellsFeature.types.d.cts +4 -4
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +4 -4
  11. package/dist/core/cells/coreCellsFeature.utils.d.cts +1 -1
  12. package/dist/core/cells/coreCellsFeature.utils.d.ts +1 -1
  13. package/dist/core/columns/constructColumn.d.cts +1 -1
  14. package/dist/core/columns/constructColumn.d.ts +1 -1
  15. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  16. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  17. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  18. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  19. package/dist/core/columns/coreColumnsFeature.js +60 -68
  20. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.types.d.cts +5 -5
  22. package/dist/core/columns/coreColumnsFeature.types.d.ts +5 -5
  23. package/dist/core/columns/coreColumnsFeature.utils.d.cts +1 -1
  24. package/dist/core/columns/coreColumnsFeature.utils.d.ts +1 -1
  25. package/dist/core/coreFeatures.cjs.map +1 -1
  26. package/dist/core/coreFeatures.d.cts +1 -1
  27. package/dist/core/coreFeatures.d.ts +1 -1
  28. package/dist/core/coreFeatures.js.map +1 -1
  29. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  30. package/dist/core/headers/buildHeaderGroups.d.cts +1 -1
  31. package/dist/core/headers/buildHeaderGroups.d.ts +1 -1
  32. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  33. package/dist/core/headers/constructHeader.d.cts +1 -1
  34. package/dist/core/headers/constructHeader.d.ts +1 -1
  35. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  36. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  37. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  38. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  39. package/dist/core/headers/coreHeadersFeature.js +45 -53
  40. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  41. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  42. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  43. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  44. package/dist/core/headers/coreHeadersFeature.utils.d.cts +1 -1
  45. package/dist/core/headers/coreHeadersFeature.utils.d.ts +1 -1
  46. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  47. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  48. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  49. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  50. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  51. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  52. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  53. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +5 -15
  54. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +5 -15
  55. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
  56. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  57. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +2 -2
  58. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +2 -2
  59. package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
  60. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  61. package/dist/core/row-models/createCoreRowModel.cjs +1 -2
  62. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  63. package/dist/core/row-models/createCoreRowModel.d.cts +2 -2
  64. package/dist/core/row-models/createCoreRowModel.d.ts +2 -2
  65. package/dist/core/row-models/createCoreRowModel.js +1 -2
  66. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  67. package/dist/core/rows/constructRow.d.cts +1 -1
  68. package/dist/core/rows/constructRow.d.ts +1 -1
  69. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  70. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  71. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  72. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  73. package/dist/core/rows/coreRowsFeature.js +28 -36
  74. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  75. package/dist/core/rows/coreRowsFeature.types.d.cts +5 -5
  76. package/dist/core/rows/coreRowsFeature.types.d.ts +5 -5
  77. package/dist/core/rows/coreRowsFeature.utils.d.cts +1 -1
  78. package/dist/core/rows/coreRowsFeature.utils.d.ts +1 -1
  79. package/dist/core/table/constructTable.cjs +21 -6
  80. package/dist/core/table/constructTable.cjs.map +1 -1
  81. package/dist/core/table/constructTable.d.cts +1 -1
  82. package/dist/core/table/constructTable.d.ts +1 -1
  83. package/dist/core/table/constructTable.js +21 -6
  84. package/dist/core/table/constructTable.js.map +1 -1
  85. package/dist/core/table/coreTablesFeature.cjs +7 -16
  86. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  87. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  88. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  89. package/dist/core/table/coreTablesFeature.js +8 -16
  90. package/dist/core/table/coreTablesFeature.js.map +1 -1
  91. package/dist/core/table/coreTablesFeature.types.d.cts +27 -15
  92. package/dist/core/table/coreTablesFeature.types.d.ts +27 -15
  93. package/dist/core/table/coreTablesFeature.utils.cjs +1 -2
  94. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  95. package/dist/core/table/coreTablesFeature.utils.d.cts +1 -1
  96. package/dist/core/table/coreTablesFeature.utils.d.ts +1 -1
  97. package/dist/core/table/coreTablesFeature.utils.js +1 -2
  98. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  99. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  100. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  101. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  102. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  103. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  104. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  105. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
  106. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
  107. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  108. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  109. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +1 -1
  110. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +1 -1
  111. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  112. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  113. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  114. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  115. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  116. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  117. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  118. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  119. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  120. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  121. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  122. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  123. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  124. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  125. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  126. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  127. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  128. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  129. package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
  130. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  131. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
  132. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
  133. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  134. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  135. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +2 -2
  136. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +2 -2
  137. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  138. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  139. package/dist/features/column-filtering/createFilteredRowModel.cjs +4 -2
  140. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  141. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  142. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  143. package/dist/features/column-filtering/createFilteredRowModel.js +4 -2
  144. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  145. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  146. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  147. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  148. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  149. package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
  150. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  151. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +23 -19
  152. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +23 -19
  153. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +1 -1
  154. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +1 -1
  155. package/dist/features/column-grouping/createGroupedRowModel.cjs +5 -2
  156. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  157. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  158. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  159. package/dist/features/column-grouping/createGroupedRowModel.js +5 -2
  160. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  161. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  162. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  163. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  164. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  165. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  166. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  167. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
  168. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
  169. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +1 -1
  170. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +1 -1
  171. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  172. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  173. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  174. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  175. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  176. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  177. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
  178. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
  179. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  180. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +13 -13
  181. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +13 -13
  182. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  183. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  184. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  185. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  186. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  187. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  188. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  189. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +1 -1
  190. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +1 -1
  191. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  192. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  193. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  194. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  195. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  196. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  197. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +4 -4
  198. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +4 -4
  199. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  200. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  201. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  202. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  203. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  204. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  205. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
  206. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
  207. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +1 -1
  208. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +1 -1
  209. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  210. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  211. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  212. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  213. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  214. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  215. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +3 -3
  216. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +3 -3
  217. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  218. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +7 -5
  219. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +7 -5
  220. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  221. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  222. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  223. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  224. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  225. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  226. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  227. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  228. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  229. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  230. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  231. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
  232. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
  233. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +1 -1
  234. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +1 -1
  235. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  236. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  237. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  238. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  239. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  240. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  241. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  242. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  243. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  244. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  245. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
  246. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
  247. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +1 -1
  248. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +1 -1
  249. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  250. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  251. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  252. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  253. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  254. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  255. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  256. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  257. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +1 -1
  258. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +1 -1
  259. package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
  260. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  261. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  262. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  263. package/dist/features/row-selection/rowSelectionFeature.js +66 -77
  264. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  265. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +2 -2
  266. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +2 -2
  267. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +10 -6
  268. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  269. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +1 -1
  270. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +1 -1
  271. package/dist/features/row-selection/rowSelectionFeature.utils.js +10 -6
  272. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  273. package/dist/features/row-sorting/createSortedRowModel.cjs +4 -2
  274. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  275. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  276. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  277. package/dist/features/row-sorting/createSortedRowModel.js +4 -2
  278. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  279. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  280. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  281. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  282. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  283. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  284. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  285. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +23 -20
  286. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +23 -20
  287. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  288. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  289. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +1 -1
  290. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +1 -1
  291. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  292. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  293. package/dist/fns/aggregationFns.cjs +18 -18
  294. package/dist/fns/aggregationFns.cjs.map +1 -1
  295. package/dist/fns/aggregationFns.d.cts +21 -19
  296. package/dist/fns/aggregationFns.d.ts +21 -19
  297. package/dist/fns/aggregationFns.js +18 -18
  298. package/dist/fns/aggregationFns.js.map +1 -1
  299. package/dist/fns/filterFns.cjs +51 -65
  300. package/dist/fns/filterFns.cjs.map +1 -1
  301. package/dist/fns/filterFns.d.cts +82 -28
  302. package/dist/fns/filterFns.d.ts +82 -28
  303. package/dist/fns/filterFns.js +51 -65
  304. package/dist/fns/filterFns.js.map +1 -1
  305. package/dist/fns/sortFns.cjs +18 -6
  306. package/dist/fns/sortFns.cjs.map +1 -1
  307. package/dist/fns/sortFns.d.cts +15 -13
  308. package/dist/fns/sortFns.d.ts +15 -13
  309. package/dist/fns/sortFns.js +18 -6
  310. package/dist/fns/sortFns.js.map +1 -1
  311. package/dist/helpers/metaHelper.cjs +30 -0
  312. package/dist/helpers/metaHelper.cjs.map +1 -0
  313. package/dist/helpers/metaHelper.d.cts +26 -0
  314. package/dist/helpers/metaHelper.d.ts +26 -0
  315. package/dist/helpers/metaHelper.js +29 -0
  316. package/dist/helpers/metaHelper.js.map +1 -0
  317. package/dist/helpers/tableFeatures.cjs +31 -3
  318. package/dist/helpers/tableFeatures.cjs.map +1 -1
  319. package/dist/helpers/tableFeatures.d.cts +33 -5
  320. package/dist/helpers/tableFeatures.d.ts +33 -5
  321. package/dist/helpers/tableFeatures.js +31 -3
  322. package/dist/helpers/tableFeatures.js.map +1 -1
  323. package/dist/index.cjs +2 -20
  324. package/dist/index.d.cts +44 -43
  325. package/dist/index.d.ts +44 -43
  326. package/dist/index.js +22 -21
  327. package/dist/store-reactivity-bindings.cjs +1 -1
  328. package/dist/store-reactivity-bindings.cjs.map +1 -1
  329. package/dist/store-reactivity-bindings.d.cts +1 -1
  330. package/dist/store-reactivity-bindings.d.ts +1 -1
  331. package/dist/store-reactivity-bindings.js +1 -1
  332. package/dist/store-reactivity-bindings.js.map +1 -1
  333. package/dist/types/Cell.d.cts +8 -10
  334. package/dist/types/Cell.d.ts +8 -10
  335. package/dist/types/Column.d.cts +19 -12
  336. package/dist/types/Column.d.ts +19 -12
  337. package/dist/types/ColumnDef.d.cts +30 -11
  338. package/dist/types/ColumnDef.d.ts +30 -11
  339. package/dist/types/Header.d.cts +10 -11
  340. package/dist/types/Header.d.ts +10 -11
  341. package/dist/types/HeaderGroup.d.cts +4 -9
  342. package/dist/types/HeaderGroup.d.ts +4 -9
  343. package/dist/types/Row.d.cts +15 -11
  344. package/dist/types/Row.d.ts +15 -11
  345. package/dist/types/RowModel.d.cts +19 -19
  346. package/dist/types/RowModel.d.ts +19 -19
  347. package/dist/types/RowModelFns.d.cts +9 -9
  348. package/dist/types/RowModelFns.d.ts +9 -9
  349. package/dist/types/Table.d.cts +52 -24
  350. package/dist/types/Table.d.ts +52 -24
  351. package/dist/types/TableFeatures.d.cts +178 -41
  352. package/dist/types/TableFeatures.d.ts +178 -41
  353. package/dist/types/TableOptions.d.cts +31 -10
  354. package/dist/types/TableOptions.d.ts +31 -10
  355. package/dist/types/TableState.d.cts +22 -13
  356. package/dist/types/TableState.d.ts +22 -13
  357. package/dist/utils.cjs.map +1 -1
  358. package/dist/utils.d.cts +8 -3
  359. package/dist/utils.d.ts +8 -3
  360. package/dist/utils.js.map +1 -1
  361. package/package.json +1 -1
  362. package/skills/column-definitions/SKILL.md +3 -6
  363. package/skills/column-layout/SKILL.md +0 -2
  364. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  365. package/skills/filtering/SKILL.md +60 -42
  366. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  367. package/skills/grouping/SKILL.md +49 -54
  368. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  369. package/skills/pagination/SKILL.md +22 -20
  370. package/skills/row-expanding/SKILL.md +33 -25
  371. package/skills/row-pinning/SKILL.md +11 -7
  372. package/skills/row-selection/SKILL.md +0 -3
  373. package/skills/setup/SKILL.md +55 -65
  374. package/skills/sorting/SKILL.md +21 -21
  375. package/skills/state-management/SKILL.md +40 -25
  376. package/src/core/cells/coreCellsFeature.ts +17 -39
  377. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  378. package/src/core/columns/coreColumnsFeature.ts +56 -83
  379. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  380. package/src/core/coreFeatures.ts +1 -1
  381. package/src/core/headers/buildHeaderGroups.ts +1 -1
  382. package/src/core/headers/coreHeadersFeature.ts +42 -64
  383. package/src/core/headers/coreHeadersFeature.types.ts +10 -10
  384. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  385. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  386. package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
  387. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  388. package/src/core/row-models/createCoreRowModel.ts +5 -4
  389. package/src/core/rows/coreRowsFeature.ts +45 -72
  390. package/src/core/rows/coreRowsFeature.types.ts +8 -8
  391. package/src/core/table/constructTable.ts +50 -13
  392. package/src/core/table/coreTablesFeature.ts +13 -35
  393. package/src/core/table/coreTablesFeature.types.ts +40 -17
  394. package/src/core/table/coreTablesFeature.utils.ts +10 -5
  395. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  396. package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
  397. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  398. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  399. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  400. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  401. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  402. package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
  403. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  404. package/src/features/column-filtering/createFilteredRowModel.ts +5 -7
  405. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  406. package/src/features/column-grouping/columnGroupingFeature.types.ts +32 -31
  407. package/src/features/column-grouping/createGroupedRowModel.ts +7 -11
  408. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  409. package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
  410. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  411. package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
  412. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  413. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  414. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  415. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  416. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  417. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  418. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  419. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  420. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  421. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  422. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
  423. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  424. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  425. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
  426. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  427. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  428. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  429. package/src/features/row-selection/rowSelectionFeature.types.ts +4 -4
  430. package/src/features/row-selection/rowSelectionFeature.utils.ts +12 -7
  431. package/src/features/row-sorting/createSortedRowModel.ts +6 -6
  432. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  433. package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
  434. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  435. package/src/fns/aggregationFns.ts +26 -42
  436. package/src/fns/filterFns.ts +231 -264
  437. package/src/fns/sortFns.ts +51 -29
  438. package/src/helpers/metaHelper.ts +24 -0
  439. package/src/helpers/tableFeatures.ts +36 -5
  440. package/src/index.ts +1 -0
  441. package/src/store-reactivity-bindings.ts +1 -1
  442. package/src/types/Cell.ts +10 -30
  443. package/src/types/Column.ts +21 -56
  444. package/src/types/ColumnDef.ts +48 -49
  445. package/src/types/Header.ts +10 -32
  446. package/src/types/HeaderGroup.ts +4 -15
  447. package/src/types/Row.ts +18 -39
  448. package/src/types/RowModel.ts +24 -114
  449. package/src/types/RowModelFns.ts +12 -31
  450. package/src/types/Table.ts +85 -80
  451. package/src/types/TableFeatures.ts +253 -108
  452. package/src/types/TableOptions.ts +70 -60
  453. package/src/types/TableState.ts +20 -73
  454. package/src/utils.ts +16 -6
@@ -1,77 +1,214 @@
1
1
  import { CellData, RowData, UnionToIntersection } from "./type-utils.js";
2
2
  import { CoreFeatures } from "../core/coreFeatures.js";
3
+ import { SortFn } from "../features/row-sorting/rowSortingFeature.types.js";
3
4
  import { Row } from "./Row.js";
4
- import { ColumnDefBase_All } from "./ColumnDef.js";
5
+ import { FilterFn } from "../features/column-filtering/columnFilteringFeature.types.js";
5
6
  import { TableState_All } from "./TableState.js";
6
7
  import { TableOptions_All } from "./TableOptions.js";
7
- import { StockFeatures } from "../features/stockFeatures.js";
8
8
  import { Table_Internal } from "./Table.js";
9
+ import { ColumnDefBase_All } from "./ColumnDef.js";
10
+ import { StockFeatures } from "../features/stockFeatures.js";
11
+ import { RowModel } from "../core/row-models/coreRowModelsFeature.types.js";
12
+ import { AggregationFn } from "../features/column-grouping/columnGroupingFeature.types.js";
9
13
 
10
14
  //#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]>;
12
- interface FeatureConstructors {
13
- CachedRowModel?: any;
14
- Cell?: any;
15
- Column?: any;
16
- ColumnDef?: any;
17
- CreateRowModels?: any;
18
- Header?: any;
19
- HeaderGroup?: any;
20
- Row?: any;
21
- RowModelFns?: any;
22
- Table?: any;
23
- TableOptions?: any;
24
- TableState?: any;
25
- }
15
+ type IsAny<T> = 0 extends 1 & T ? true : false;
16
+ type UnionToIntersectionOrEmpty<T> = [T] extends [never] ? {} : UnionToIntersection<T> & {};
17
+ type ExtractFeatureMapTypes<TFeatures extends TableFeatures, TFeatureMap extends object> = IsAny<TFeatures> extends true ? UnionToIntersection<TFeatureMap[keyof TFeatureMap]> : UnionToIntersectionOrEmpty<TFeatureMap[Extract<keyof TFeatures, keyof TFeatureMap>]>;
18
+ /**
19
+ * This is an interface that you can delcaration-merge into to allow for custom plugins to be added to the table.
20
+ */
26
21
  interface Plugins {}
27
- interface TableFeatures extends Partial<CoreFeatures>, Partial<StockFeatures>, Partial<Plugins> {}
28
- type ConstructTableAPIs<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData> & Partial<TConstructors['Table']> & {
29
- options: Partial<TConstructors['TableOptions']>;
30
- }) => void;
31
- type GetDefaultColumnDef<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>() => ColumnDefBase_All<TFeatures, TData, TValue> & Partial<TConstructors['ColumnDef']>;
32
- 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']>;
33
- type GetInitialState<TConstructors extends FeatureConstructors> = (initialState: Partial<TableState_All> & Partial<TConstructors['TableState']>) => TableState_All & Partial<TConstructors['TableState']>;
34
- type GetDefaultStateSelector<TConstructors extends FeatureConstructors> = (state: TableState_All) => Partial<TableState_All> & Partial<TConstructors['TableState']>;
35
- type AssignCellPrototype<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
36
- type AssignColumnPrototype<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
37
- type AssignHeaderPrototype<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
38
- type AssignRowPrototype<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
39
- type InitRowInstanceData<TConstructors extends FeatureConstructors> = <TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData> & Partial<TConstructors['Row']>) => void;
40
- interface TableFeature<TConstructors extends FeatureConstructors> {
22
+ /**
23
+ * Keys of the `features` option that are not table features themselves.
24
+ *
25
+ * These slots carry per-table types (`tableMeta`, `columnMeta`), row model
26
+ * factories, and row model function registries. They are stripped from the
27
+ * table's registered `_features` at runtime and excluded from feature-derived
28
+ * options such as the generated `debug*` keys.
29
+ */
30
+ type NonFeatureKeys = 'aggregationFns' | 'columnMeta' | 'coreRowModel' | 'expandedRowModel' | 'facetedMinMaxValues' | 'facetedRowModel' | 'facetedUniqueValues' | 'filterFns' | 'filterMeta' | 'filteredRowModel' | 'groupedRowModel' | 'paginatedRowModel' | 'sortFns' | 'sortedRowModel' | 'tableMeta';
31
+ /**
32
+ * Maps each row model and fn registry slot to the feature(s) that must be
33
+ * registered alongside it in the same features object.
34
+ *
35
+ * Custom features can declaration-merge their own slot prerequisites into this
36
+ * interface to get the same validation from `tableFeatures()`.
37
+ */
38
+ interface FeatureSlotPrereqs {
39
+ aggregationFns: 'columnGroupingFeature';
40
+ columnResizingFeature: 'columnSizingFeature';
41
+ expandedRowModel: 'rowExpandingFeature';
42
+ facetedMinMaxValues: 'columnFacetingFeature';
43
+ facetedRowModel: 'columnFacetingFeature';
44
+ facetedUniqueValues: 'columnFacetingFeature';
45
+ filteredRowModel: 'columnFilteringFeature';
46
+ filterFns: 'columnFilteringFeature';
47
+ filterMeta: 'columnFilteringFeature';
48
+ globalFilteringFeature: 'columnFilteringFeature';
49
+ groupedRowModel: 'columnGroupingFeature';
50
+ paginatedRowModel: 'rowPaginationFeature';
51
+ sortedRowModel: 'rowSortingFeature';
52
+ sortFns: 'rowSortingFeature';
53
+ }
54
+ /**
55
+ * Validates that every row model and fn registry slot in a features object is
56
+ * accompanied by its prerequisite feature.
57
+ *
58
+ * Slots whose prerequisite is missing have their type replaced with a literal
59
+ * error message, so the offending property fails to type-check with a message
60
+ * naming the feature that needs to be added.
61
+ */
62
+ 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 };
63
+ interface TableFeatures extends Partial<CoreFeatures>, Partial<StockFeatures>, Partial<Plugins> {
64
+ /**
65
+ * Registry of aggregation functions available to this table by name.
66
+ *
67
+ * Keys registered here become the valid string values for `aggregationFn` on
68
+ * column definitions, with full inference. Spread the exported
69
+ * `aggregationFns` to register the built-in aggregation functions:
70
+ * `aggregationFns: { ...aggregationFns, myCustomAggregationFn }`.
71
+ */
72
+ aggregationFns?: Record<string, AggregationFn<any, any>>;
73
+ /**
74
+ * Type-only slot for declaring the type of `columnDef.meta` for all columns
75
+ * of this table.
76
+ *
77
+ * Pass a phantom value: `columnMeta: {} as MyColumnMeta`. The value itself is
78
+ * ignored and stripped from the table's registered features at runtime — only
79
+ * its type is used, inferred wherever `TFeatures` flows.
80
+ *
81
+ * When omitted, the global declaration-merged `ColumnMeta` interface applies.
82
+ */
83
+ columnMeta?: object;
84
+ /**
85
+ * Factory for the table's core (unmodified) row model. Defaults to the
86
+ * built-in `createCoreRowModel()` when omitted.
87
+ */
88
+ coreRowModel?: (table: any) => () => RowModel<any, any>;
89
+ /**
90
+ * Factory for the client-side expanded row model. Pass the exported
91
+ * `createExpandedRowModel()` or implement your own. Not needed for
92
+ * server-side expansion.
93
+ */
94
+ expandedRowModel?: (table: any) => () => RowModel<any, any>;
95
+ /**
96
+ * Factory for per-column faceted min/max values. Pass the exported
97
+ * `createFacetedMinMaxValues()` or implement your own. Not needed for
98
+ * server-side faceting.
99
+ */
100
+ facetedMinMaxValues?: (table: any, columnId: string) => () => [number, number] | undefined;
101
+ /**
102
+ * Factory for the per-column faceted row model. Pass the exported
103
+ * `createFacetedRowModel()` or implement your own. Not needed for
104
+ * server-side faceting.
105
+ */
106
+ facetedRowModel?: (table: any, columnId: string) => () => RowModel<any, any>;
107
+ /**
108
+ * Factory for per-column faceted unique values. Pass the exported
109
+ * `createFacetedUniqueValues()` or implement your own. Not needed for
110
+ * server-side faceting.
111
+ */
112
+ facetedUniqueValues?: (table: any, columnId: string) => () => Map<any, number>;
113
+ /**
114
+ * Factory for the client-side filtered row model. Pass the exported
115
+ * `createFilteredRowModel()` or implement your own. Not needed for
116
+ * server-side filtering.
117
+ */
118
+ filteredRowModel?: (table: any) => () => RowModel<any, any>;
119
+ /**
120
+ * Registry of filter functions available to this table by name.
121
+ *
122
+ * Keys registered here become the valid string values for `filterFn` on
123
+ * column definitions and the `globalFilterFn` option, with full inference.
124
+ * Spread the exported `filterFns` to register the built-in filter functions:
125
+ * `filterFns: { ...filterFns, myCustomFilterFn }`.
126
+ */
127
+ filterFns?: Record<string, FilterFn<any, any>>;
128
+ /**
129
+ * Type-only slot for declaring the type of the filter meta that filter
130
+ * functions attach to rows via `addMeta` and that is read back from
131
+ * `row.columnFiltersMeta`.
132
+ *
133
+ * Pass a phantom value: `filterMeta: {} as MyFilterMeta` (or
134
+ * `metaHelper<MyFilterMeta>()`). The value itself is ignored and stripped
135
+ * from the table's registered features at runtime; only its type is used.
136
+ *
137
+ * When omitted, the global declaration-merged `FilterMeta` interface applies.
138
+ */
139
+ filterMeta?: object;
140
+ /**
141
+ * Factory for the client-side grouped row model. Pass the exported
142
+ * `createGroupedRowModel()` or implement your own. Not needed for
143
+ * server-side grouping.
144
+ */
145
+ groupedRowModel?: (table: any) => () => RowModel<any, any>;
146
+ /**
147
+ * Factory for the client-side paginated row model. Pass the exported
148
+ * `createPaginatedRowModel()` or implement your own. Not needed for
149
+ * server-side pagination.
150
+ */
151
+ paginatedRowModel?: (table: any) => () => RowModel<any, any>;
152
+ /**
153
+ * Factory for the client-side sorted row model. Pass the exported
154
+ * `createSortedRowModel()` or implement your own. Not needed for
155
+ * server-side sorting.
156
+ */
157
+ sortedRowModel?: (table: any) => () => RowModel<any, any>;
158
+ /**
159
+ * Registry of sorting functions available to this table by name.
160
+ *
161
+ * Keys registered here become the valid string values for `sortFn` on column
162
+ * definitions, with full inference. Spread the exported `sortFns` to register
163
+ * the built-in sorting functions: `sortFns: { ...sortFns, myCustomSortFn }`.
164
+ */
165
+ sortFns?: Record<string, SortFn<any, any>>;
166
+ /**
167
+ * Type-only slot for declaring the type of this table's `options.meta`.
168
+ *
169
+ * Pass a phantom value: `tableMeta: {} as MyTableMeta`. The value itself is
170
+ * ignored and stripped from the table's registered features at runtime — only
171
+ * its type is used, inferred wherever `TFeatures` flows.
172
+ *
173
+ * When omitted, the global declaration-merged `TableMeta` interface applies.
174
+ */
175
+ tableMeta?: object;
176
+ }
177
+ interface TableFeature {
41
178
  /**
42
179
  * Assigns Cell APIs to the cell prototype for memory-efficient method sharing.
43
180
  * This is called once per table to build a shared prototype for all cells.
44
181
  */
45
- assignCellPrototype?: AssignCellPrototype<TConstructors>;
182
+ assignCellPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
46
183
  /**
47
184
  * Assigns Column APIs to the column prototype for memory-efficient method sharing.
48
185
  * This is called once per table to build a shared prototype for all columns.
49
186
  */
50
- assignColumnPrototype?: AssignColumnPrototype<TConstructors>;
187
+ assignColumnPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
51
188
  /**
52
189
  * Assigns Header APIs to the header prototype for memory-efficient method sharing.
53
190
  * This is called once per table to build a shared prototype for all headers.
54
191
  */
55
- assignHeaderPrototype?: AssignHeaderPrototype<TConstructors>;
192
+ assignHeaderPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
56
193
  /**
57
194
  * Assigns Row APIs to the row prototype for memory-efficient method sharing.
58
195
  * This is called once per table to build a shared prototype for all rows.
59
196
  */
60
- assignRowPrototype?: AssignRowPrototype<TConstructors>;
197
+ assignRowPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
61
198
  /**
62
199
  * Assigns Table APIs to the table instance.
63
200
  * Unlike row/cell/column/header, the table is a singleton so methods are assigned directly.
64
201
  */
65
- constructTableAPIs?: ConstructTableAPIs<TConstructors>;
66
- getDefaultColumnDef?: GetDefaultColumnDef<TConstructors>;
67
- getDefaultTableOptions?: GetDefaultTableOptions<TConstructors>;
68
- getInitialState?: GetInitialState<TConstructors>;
202
+ constructTableAPIs?: <TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>) => void;
203
+ getDefaultColumnDef?: <TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>() => ColumnDefBase_All<TFeatures, TData, TValue>;
204
+ getDefaultTableOptions?: <TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>) => Partial<TableOptions_All<TFeatures, TData>>;
205
+ getInitialState?: (initialState: Partial<TableState_All>) => TableState_All;
69
206
  /**
70
207
  * Initializes instance-specific data on each row (e.g., caches).
71
208
  * Methods should be assigned via assignRowPrototype instead.
72
209
  */
73
- initRowInstanceData?: InitRowInstanceData<TConstructors>;
210
+ initRowInstanceData?: <TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>) => void;
74
211
  }
75
212
  //#endregion
76
- export { AssignCellPrototype, AssignColumnPrototype, AssignHeaderPrototype, AssignRowPrototype, ConstructTableAPIs, ExtractFeatureTypes, FeatureConstructors, GetDefaultColumnDef, GetDefaultStateSelector, GetDefaultTableOptions, GetInitialState, InitRowInstanceData, Plugins, TableFeature, TableFeatures };
213
+ export { ExtractFeatureMapTypes, FeatureSlotPrereqs, IsAny, NonFeatureKeys, Plugins, TableFeature, TableFeatures, ValidateFeatureSlots };
77
214
  //# sourceMappingURL=TableFeatures.d.ts.map
@@ -1,9 +1,8 @@
1
1
  import { RowData, UnionToIntersection } from "./type-utils.cjs";
2
2
  import { CoreFeatures } from "../core/coreFeatures.cjs";
3
+ import { TableOptions_ColumnResizing } from "../features/column-resizing/columnResizingFeature.types.cjs";
3
4
  import { TableOptions_RowSorting } from "../features/row-sorting/rowSortingFeature.types.cjs";
4
- import { TableOptions_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.cjs";
5
5
  import { TableOptions_ColumnSizing } from "../features/column-sizing/columnSizingFeature.types.cjs";
6
- import { TableOptions_ColumnResizing } from "../features/column-resizing/columnResizingFeature.types.cjs";
7
6
  import { TableOptions_ColumnPinning } from "../features/column-pinning/columnPinningFeature.types.cjs";
8
7
  import { TableOptions_ColumnOrdering } from "../features/column-ordering/columnOrderingFeature.types.cjs";
9
8
  import { TableOptions_GlobalFiltering } from "../features/global-filtering/globalFilteringFeature.types.cjs";
@@ -13,20 +12,20 @@ import { TableOptions_RowExpanding } from "../features/row-expanding/rowExpandin
13
12
  import { TableOptions_RowPinning } from "../features/row-pinning/rowPinningFeature.types.cjs";
14
13
  import { TableOptions_RowSelection } from "../features/row-selection/rowSelectionFeature.types.cjs";
15
14
  import { TableOptions_Rows } from "../core/rows/coreRowsFeature.types.cjs";
16
- import { TableOptions_Cell } from "../core/cells/coreCellsFeature.types.cjs";
15
+ import { TableOptions_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.cjs";
17
16
  import { TableOptions_RowPagination } from "../features/row-pagination/rowPaginationFeature.types.cjs";
18
17
  import { TableOptions_Table } from "../core/table/coreTablesFeature.types.cjs";
19
- import { ExtractFeatureTypes, TableFeatures } from "./TableFeatures.cjs";
18
+ import { TableOptions_Cell } from "../core/cells/coreCellsFeature.types.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,6 +35,28 @@ type DebugOptions<TFeatures extends TableFeatures> = {
36
35
  debugRows?: boolean;
37
36
  debugTable?: boolean;
38
37
  } & DebugKeysFor<CoreFeatures & TFeatures>;
38
+ interface TableOptions_FeatureMap<in out TFeatures extends TableFeatures, in out TData extends RowData> {
39
+ columnFilteringFeature: TableOptions_ColumnFiltering<TFeatures, TData>;
40
+ columnGroupingFeature: TableOptions_ColumnGrouping;
41
+ columnOrderingFeature: TableOptions_ColumnOrdering;
42
+ columnPinningFeature: TableOptions_ColumnPinning;
43
+ columnResizingFeature: TableOptions_ColumnResizing;
44
+ columnSizingFeature: TableOptions_ColumnSizing;
45
+ columnVisibilityFeature: TableOptions_ColumnVisibility;
46
+ globalFilteringFeature: TableOptions_GlobalFiltering<TFeatures, TData>;
47
+ rowExpandingFeature: TableOptions_RowExpanding<TFeatures, TData>;
48
+ rowPaginationFeature: TableOptions_RowPagination;
49
+ rowPinningFeature: TableOptions_RowPinning<TFeatures, TData>;
50
+ rowSelectionFeature: TableOptions_RowSelection<TFeatures, TData>;
51
+ rowSortingFeature: TableOptions_RowSorting;
52
+ }
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>]>;
39
60
  /**
40
61
  * Complete table options for a specific feature set.
41
62
  *
@@ -43,12 +64,12 @@ type DebugOptions<TFeatures extends TableFeatures> = {
43
64
  * `TFeatures`, then custom feature/plugin options and debug options are mixed
44
65
  * in.
45
66
  */
46
- type TableOptions<TFeatures extends TableFeatures, TData extends RowData> = TableOptions_Core<TFeatures, TData> & UnionToIntersection<('columnFilteringFeature' extends keyof TFeatures ? TableOptions_ColumnFiltering<TFeatures, TData> : never) | ('columnGroupingFeature' extends keyof TFeatures ? TableOptions_ColumnGrouping : never) | ('columnOrderingFeature' extends keyof TFeatures ? TableOptions_ColumnOrdering : never) | ('columnPinningFeature' extends keyof TFeatures ? TableOptions_ColumnPinning : never) | ('columnResizingFeature' extends keyof TFeatures ? TableOptions_ColumnResizing : never) | ('columnSizingFeature' extends keyof TFeatures ? TableOptions_ColumnSizing : never) | ('columnVisibilityFeature' extends keyof TFeatures ? TableOptions_ColumnVisibility : never) | ('globalFilteringFeature' extends keyof TFeatures ? TableOptions_GlobalFiltering<TFeatures, TData> : never) | ('rowExpandingFeature' extends keyof TFeatures ? TableOptions_RowExpanding<TFeatures, TData> : never) | ('rowPaginationFeature' extends keyof TFeatures ? TableOptions_RowPagination : never) | ('rowPinningFeature' extends keyof TFeatures ? TableOptions_RowPinning<TFeatures, TData> : never) | ('rowSelectionFeature' extends keyof TFeatures ? TableOptions_RowSelection<TFeatures, TData> : never) | ('rowSortingFeature' extends keyof TFeatures ? TableOptions_RowSorting : never)> & 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>;
47
68
  /**
48
69
  * Internal broad option shape used where feature code may need to read options
49
70
  * from features that are not present in the current generic feature set.
50
71
  */
51
- 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>;
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>>;
52
73
  //#endregion
53
- export { DebugOptions, TableOptions, TableOptions_All, TableOptions_Core, TableOptions_Plugins };
74
+ export { DebugOptions, TableOptions, TableOptions_All, TableOptions_Core, TableOptions_FeatureMap };
54
75
  //# sourceMappingURL=TableOptions.d.cts.map
@@ -1,9 +1,8 @@
1
1
  import { RowData, UnionToIntersection } from "./type-utils.js";
2
2
  import { CoreFeatures } from "../core/coreFeatures.js";
3
+ import { TableOptions_ColumnResizing } from "../features/column-resizing/columnResizingFeature.types.js";
3
4
  import { TableOptions_RowSorting } from "../features/row-sorting/rowSortingFeature.types.js";
4
- import { TableOptions_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.js";
5
5
  import { TableOptions_ColumnSizing } from "../features/column-sizing/columnSizingFeature.types.js";
6
- import { TableOptions_ColumnResizing } from "../features/column-resizing/columnResizingFeature.types.js";
7
6
  import { TableOptions_ColumnPinning } from "../features/column-pinning/columnPinningFeature.types.js";
8
7
  import { TableOptions_ColumnOrdering } from "../features/column-ordering/columnOrderingFeature.types.js";
9
8
  import { TableOptions_GlobalFiltering } from "../features/global-filtering/globalFilteringFeature.types.js";
@@ -13,20 +12,20 @@ import { TableOptions_RowExpanding } from "../features/row-expanding/rowExpandin
13
12
  import { TableOptions_RowPinning } from "../features/row-pinning/rowPinningFeature.types.js";
14
13
  import { TableOptions_RowSelection } from "../features/row-selection/rowSelectionFeature.types.js";
15
14
  import { TableOptions_Rows } from "../core/rows/coreRowsFeature.types.js";
16
- import { TableOptions_Cell } from "../core/cells/coreCellsFeature.types.js";
15
+ import { TableOptions_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.js";
17
16
  import { TableOptions_RowPagination } from "../features/row-pagination/rowPaginationFeature.types.js";
18
17
  import { TableOptions_Table } from "../core/table/coreTablesFeature.types.js";
19
- import { ExtractFeatureTypes, TableFeatures } from "./TableFeatures.js";
18
+ import { TableOptions_Cell } from "../core/cells/coreCellsFeature.types.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,6 +35,28 @@ type DebugOptions<TFeatures extends TableFeatures> = {
36
35
  debugRows?: boolean;
37
36
  debugTable?: boolean;
38
37
  } & DebugKeysFor<CoreFeatures & TFeatures>;
38
+ interface TableOptions_FeatureMap<in out TFeatures extends TableFeatures, in out TData extends RowData> {
39
+ columnFilteringFeature: TableOptions_ColumnFiltering<TFeatures, TData>;
40
+ columnGroupingFeature: TableOptions_ColumnGrouping;
41
+ columnOrderingFeature: TableOptions_ColumnOrdering;
42
+ columnPinningFeature: TableOptions_ColumnPinning;
43
+ columnResizingFeature: TableOptions_ColumnResizing;
44
+ columnSizingFeature: TableOptions_ColumnSizing;
45
+ columnVisibilityFeature: TableOptions_ColumnVisibility;
46
+ globalFilteringFeature: TableOptions_GlobalFiltering<TFeatures, TData>;
47
+ rowExpandingFeature: TableOptions_RowExpanding<TFeatures, TData>;
48
+ rowPaginationFeature: TableOptions_RowPagination;
49
+ rowPinningFeature: TableOptions_RowPinning<TFeatures, TData>;
50
+ rowSelectionFeature: TableOptions_RowSelection<TFeatures, TData>;
51
+ rowSortingFeature: TableOptions_RowSorting;
52
+ }
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>]>;
39
60
  /**
40
61
  * Complete table options for a specific feature set.
41
62
  *
@@ -43,12 +64,12 @@ type DebugOptions<TFeatures extends TableFeatures> = {
43
64
  * `TFeatures`, then custom feature/plugin options and debug options are mixed
44
65
  * in.
45
66
  */
46
- type TableOptions<TFeatures extends TableFeatures, TData extends RowData> = TableOptions_Core<TFeatures, TData> & UnionToIntersection<('columnFilteringFeature' extends keyof TFeatures ? TableOptions_ColumnFiltering<TFeatures, TData> : never) | ('columnGroupingFeature' extends keyof TFeatures ? TableOptions_ColumnGrouping : never) | ('columnOrderingFeature' extends keyof TFeatures ? TableOptions_ColumnOrdering : never) | ('columnPinningFeature' extends keyof TFeatures ? TableOptions_ColumnPinning : never) | ('columnResizingFeature' extends keyof TFeatures ? TableOptions_ColumnResizing : never) | ('columnSizingFeature' extends keyof TFeatures ? TableOptions_ColumnSizing : never) | ('columnVisibilityFeature' extends keyof TFeatures ? TableOptions_ColumnVisibility : never) | ('globalFilteringFeature' extends keyof TFeatures ? TableOptions_GlobalFiltering<TFeatures, TData> : never) | ('rowExpandingFeature' extends keyof TFeatures ? TableOptions_RowExpanding<TFeatures, TData> : never) | ('rowPaginationFeature' extends keyof TFeatures ? TableOptions_RowPagination : never) | ('rowPinningFeature' extends keyof TFeatures ? TableOptions_RowPinning<TFeatures, TData> : never) | ('rowSelectionFeature' extends keyof TFeatures ? TableOptions_RowSelection<TFeatures, TData> : never) | ('rowSortingFeature' extends keyof TFeatures ? TableOptions_RowSorting : never)> & 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>;
47
68
  /**
48
69
  * Internal broad option shape used where feature code may need to read options
49
70
  * from features that are not present in the current generic feature set.
50
71
  */
51
- 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>;
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>>;
52
73
  //#endregion
53
- export { DebugOptions, TableOptions, TableOptions_All, TableOptions_Core, TableOptions_Plugins };
74
+ export { DebugOptions, TableOptions, TableOptions_All, TableOptions_Core, TableOptions_FeatureMap };
54
75
  //# sourceMappingURL=TableOptions.d.ts.map
@@ -1,8 +1,6 @@
1
- import { UnionToIntersection } from "./type-utils.cjs";
1
+ import { TableState_ColumnResizing } from "../features/column-resizing/columnResizingFeature.types.cjs";
2
2
  import { TableState_RowSorting } from "../features/row-sorting/rowSortingFeature.types.cjs";
3
- import { TableState_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.cjs";
4
3
  import { TableState_ColumnSizing } from "../features/column-sizing/columnSizingFeature.types.cjs";
5
- import { TableState_ColumnResizing } from "../features/column-resizing/columnResizingFeature.types.cjs";
6
4
  import { TableState_ColumnPinning } from "../features/column-pinning/columnPinningFeature.types.cjs";
7
5
  import { TableState_ColumnOrdering } from "../features/column-ordering/columnOrderingFeature.types.cjs";
8
6
  import { TableState_GlobalFiltering } from "../features/global-filtering/globalFilteringFeature.types.cjs";
@@ -10,30 +8,41 @@ import { TableState_ColumnVisibility } from "../features/column-visibility/colum
10
8
  import { TableState_RowExpanding } from "../features/row-expanding/rowExpandingFeature.types.cjs";
11
9
  import { TableState_RowPinning } from "../features/row-pinning/rowPinningFeature.types.cjs";
12
10
  import { TableState_RowSelection } from "../features/row-selection/rowSelectionFeature.types.cjs";
11
+ import { TableState_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.cjs";
13
12
  import { TableState_RowPagination } from "../features/row-pagination/rowPaginationFeature.types.cjs";
14
- import { ExtractFeatureTypes, TableFeatures } from "./TableFeatures.cjs";
13
+ import { ExtractFeatureMapTypes, TableFeatures } from "./TableFeatures.cjs";
15
14
  import { TableState_ColumnGrouping } from "../features/column-grouping/columnGroupingFeature.types.cjs";
16
15
 
17
16
  //#region src/types/TableState.d.ts
18
- /**
19
- * Use this interface as a target for declaration merging to add your own state properties.
20
- * Note: This will affect the types of all tables in your project.
21
- */
22
- interface TableState_Plugins<TFeatures extends TableFeatures> {}
17
+ interface TableState_FeatureMap {
18
+ columnFilteringFeature: TableState_ColumnFiltering;
19
+ columnGroupingFeature: TableState_ColumnGrouping;
20
+ columnOrderingFeature: TableState_ColumnOrdering;
21
+ columnPinningFeature: TableState_ColumnPinning;
22
+ columnResizingFeature: TableState_ColumnResizing;
23
+ columnSizingFeature: TableState_ColumnSizing;
24
+ columnVisibilityFeature: TableState_ColumnVisibility;
25
+ globalFilteringFeature: TableState_GlobalFiltering;
26
+ rowExpandingFeature: TableState_RowExpanding;
27
+ rowPaginationFeature: TableState_RowPagination;
28
+ rowPinningFeature: TableState_RowPinning;
29
+ rowSelectionFeature: TableState_RowSelection;
30
+ rowSortingFeature: TableState_RowSorting;
31
+ }
23
32
  /**
24
33
  * Complete table state for a specific feature set.
25
34
  *
26
35
  * State slices are included only when their feature is present in `TFeatures`,
27
36
  * then custom feature/plugin state is mixed in.
28
37
  */
29
- type TableState<TFeatures extends TableFeatures> = UnionToIntersection<('columnFilteringFeature' extends keyof TFeatures ? TableState_ColumnFiltering : never) | ('columnGroupingFeature' extends keyof TFeatures ? TableState_ColumnGrouping : never) | ('columnOrderingFeature' extends keyof TFeatures ? TableState_ColumnOrdering : never) | ('columnPinningFeature' extends keyof TFeatures ? TableState_ColumnPinning : never) | ('columnResizingFeature' extends keyof TFeatures ? TableState_ColumnResizing : never) | ('columnSizingFeature' extends keyof TFeatures ? TableState_ColumnSizing : never) | ('columnVisibilityFeature' extends keyof TFeatures ? TableState_ColumnVisibility : never) | ('globalFilteringFeature' extends keyof TFeatures ? TableState_GlobalFiltering : never) | ('rowExpandingFeature' extends keyof TFeatures ? TableState_RowExpanding : never) | ('rowPaginationFeature' extends keyof TFeatures ? TableState_RowPagination : never) | ('rowPinningFeature' extends keyof TFeatures ? TableState_RowPinning : never) | ('rowSelectionFeature' extends keyof TFeatures ? TableState_RowSelection : never) | ('rowSortingFeature' extends keyof TFeatures ? TableState_RowSorting : never)> & ExtractFeatureTypes<'TableState', TFeatures> & TableState_Plugins<TFeatures>;
38
+ type TableState<TFeatures extends TableFeatures> = ExtractFeatureMapTypes<TFeatures, TableState_FeatureMap>;
30
39
  /**
31
- * Internal broad state shape containing every stock feature state slice.
40
+ * Internal broad state shape containing every registered feature state slice.
32
41
  *
33
42
  * Feature internals use this when they may need to inspect optional slices owned
34
43
  * by other features.
35
44
  */
36
- type TableState_All = Partial<TableState_ColumnFiltering & TableState_ColumnGrouping & TableState_ColumnOrdering & TableState_ColumnPinning & TableState_ColumnResizing & TableState_ColumnSizing & TableState_ColumnVisibility & TableState_GlobalFiltering & TableState_RowExpanding & TableState_RowPagination & TableState_RowPinning & TableState_RowSelection & TableState_RowSorting>;
45
+ type TableState_All = Partial<TableState<TableFeatures>>;
37
46
  //#endregion
38
- export { TableState, TableState_All, TableState_Plugins };
47
+ export { TableState, TableState_All, TableState_FeatureMap };
39
48
  //# sourceMappingURL=TableState.d.cts.map
@@ -1,8 +1,6 @@
1
- import { UnionToIntersection } from "./type-utils.js";
1
+ import { TableState_ColumnResizing } from "../features/column-resizing/columnResizingFeature.types.js";
2
2
  import { TableState_RowSorting } from "../features/row-sorting/rowSortingFeature.types.js";
3
- import { TableState_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.js";
4
3
  import { TableState_ColumnSizing } from "../features/column-sizing/columnSizingFeature.types.js";
5
- import { TableState_ColumnResizing } from "../features/column-resizing/columnResizingFeature.types.js";
6
4
  import { TableState_ColumnPinning } from "../features/column-pinning/columnPinningFeature.types.js";
7
5
  import { TableState_ColumnOrdering } from "../features/column-ordering/columnOrderingFeature.types.js";
8
6
  import { TableState_GlobalFiltering } from "../features/global-filtering/globalFilteringFeature.types.js";
@@ -10,30 +8,41 @@ import { TableState_ColumnVisibility } from "../features/column-visibility/colum
10
8
  import { TableState_RowExpanding } from "../features/row-expanding/rowExpandingFeature.types.js";
11
9
  import { TableState_RowPinning } from "../features/row-pinning/rowPinningFeature.types.js";
12
10
  import { TableState_RowSelection } from "../features/row-selection/rowSelectionFeature.types.js";
11
+ import { TableState_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.js";
13
12
  import { TableState_RowPagination } from "../features/row-pagination/rowPaginationFeature.types.js";
14
- import { ExtractFeatureTypes, TableFeatures } from "./TableFeatures.js";
13
+ import { ExtractFeatureMapTypes, TableFeatures } from "./TableFeatures.js";
15
14
  import { TableState_ColumnGrouping } from "../features/column-grouping/columnGroupingFeature.types.js";
16
15
 
17
16
  //#region src/types/TableState.d.ts
18
- /**
19
- * Use this interface as a target for declaration merging to add your own state properties.
20
- * Note: This will affect the types of all tables in your project.
21
- */
22
- interface TableState_Plugins<TFeatures extends TableFeatures> {}
17
+ interface TableState_FeatureMap {
18
+ columnFilteringFeature: TableState_ColumnFiltering;
19
+ columnGroupingFeature: TableState_ColumnGrouping;
20
+ columnOrderingFeature: TableState_ColumnOrdering;
21
+ columnPinningFeature: TableState_ColumnPinning;
22
+ columnResizingFeature: TableState_ColumnResizing;
23
+ columnSizingFeature: TableState_ColumnSizing;
24
+ columnVisibilityFeature: TableState_ColumnVisibility;
25
+ globalFilteringFeature: TableState_GlobalFiltering;
26
+ rowExpandingFeature: TableState_RowExpanding;
27
+ rowPaginationFeature: TableState_RowPagination;
28
+ rowPinningFeature: TableState_RowPinning;
29
+ rowSelectionFeature: TableState_RowSelection;
30
+ rowSortingFeature: TableState_RowSorting;
31
+ }
23
32
  /**
24
33
  * Complete table state for a specific feature set.
25
34
  *
26
35
  * State slices are included only when their feature is present in `TFeatures`,
27
36
  * then custom feature/plugin state is mixed in.
28
37
  */
29
- type TableState<TFeatures extends TableFeatures> = UnionToIntersection<('columnFilteringFeature' extends keyof TFeatures ? TableState_ColumnFiltering : never) | ('columnGroupingFeature' extends keyof TFeatures ? TableState_ColumnGrouping : never) | ('columnOrderingFeature' extends keyof TFeatures ? TableState_ColumnOrdering : never) | ('columnPinningFeature' extends keyof TFeatures ? TableState_ColumnPinning : never) | ('columnResizingFeature' extends keyof TFeatures ? TableState_ColumnResizing : never) | ('columnSizingFeature' extends keyof TFeatures ? TableState_ColumnSizing : never) | ('columnVisibilityFeature' extends keyof TFeatures ? TableState_ColumnVisibility : never) | ('globalFilteringFeature' extends keyof TFeatures ? TableState_GlobalFiltering : never) | ('rowExpandingFeature' extends keyof TFeatures ? TableState_RowExpanding : never) | ('rowPaginationFeature' extends keyof TFeatures ? TableState_RowPagination : never) | ('rowPinningFeature' extends keyof TFeatures ? TableState_RowPinning : never) | ('rowSelectionFeature' extends keyof TFeatures ? TableState_RowSelection : never) | ('rowSortingFeature' extends keyof TFeatures ? TableState_RowSorting : never)> & ExtractFeatureTypes<'TableState', TFeatures> & TableState_Plugins<TFeatures>;
38
+ type TableState<TFeatures extends TableFeatures> = ExtractFeatureMapTypes<TFeatures, TableState_FeatureMap>;
30
39
  /**
31
- * Internal broad state shape containing every stock feature state slice.
40
+ * Internal broad state shape containing every registered feature state slice.
32
41
  *
33
42
  * Feature internals use this when they may need to inspect optional slices owned
34
43
  * by other features.
35
44
  */
36
- type TableState_All = Partial<TableState_ColumnFiltering & TableState_ColumnGrouping & TableState_ColumnOrdering & TableState_ColumnPinning & TableState_ColumnResizing & TableState_ColumnSizing & TableState_ColumnVisibility & TableState_GlobalFiltering & TableState_RowExpanding & TableState_RowPagination & TableState_RowPinning & TableState_RowSelection & TableState_RowSorting>;
45
+ type TableState_All = Partial<TableState<TableFeatures>>;
37
46
  //#endregion
38
- export { TableState, TableState_All, TableState_Plugins };
47
+ export { TableState, TableState_All, TableState_FeatureMap };
39
48
  //# sourceMappingURL=TableState.d.ts.map