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

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 (271) hide show
  1. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  2. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  3. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  4. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  5. package/dist/core/cells/coreCellsFeature.js +12 -20
  6. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  7. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  8. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  9. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  10. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  11. package/dist/core/columns/coreColumnsFeature.js +60 -68
  12. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  13. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  14. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  15. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  16. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  17. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  18. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  19. package/dist/core/headers/coreHeadersFeature.js +45 -53
  20. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  21. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  22. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  23. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  24. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  25. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  26. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  27. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  28. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  29. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +3 -5
  30. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +3 -5
  31. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  32. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  33. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  34. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  35. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  36. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  37. package/dist/core/rows/coreRowsFeature.js +28 -36
  38. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  39. package/dist/core/table/constructTable.cjs +2 -2
  40. package/dist/core/table/constructTable.cjs.map +1 -1
  41. package/dist/core/table/constructTable.js +2 -2
  42. package/dist/core/table/constructTable.js.map +1 -1
  43. package/dist/core/table/coreTablesFeature.cjs +7 -16
  44. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  45. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  46. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  47. package/dist/core/table/coreTablesFeature.js +8 -16
  48. package/dist/core/table/coreTablesFeature.js.map +1 -1
  49. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  50. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  51. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  52. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  53. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  54. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  55. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  56. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  57. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  58. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  59. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  60. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  61. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  62. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  63. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  64. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  65. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  66. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  67. package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
  68. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  69. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +3 -3
  70. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +3 -3
  71. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  72. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +1 -1
  73. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +1 -1
  74. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  75. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  76. package/dist/features/column-filtering/createFilteredRowModel.d.cts +1 -1
  77. package/dist/features/column-filtering/createFilteredRowModel.d.ts +1 -1
  78. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  79. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  80. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  81. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  82. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  83. package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
  84. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  85. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  86. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  87. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  88. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  89. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  90. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  91. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  92. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  93. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  94. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  95. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  96. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  97. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  98. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  99. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  100. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +12 -12
  101. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +12 -12
  102. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  103. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  104. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  105. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  106. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  107. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  108. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  109. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  110. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  111. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  112. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  113. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  114. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  115. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +3 -3
  116. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +3 -3
  117. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  118. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  119. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  120. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  121. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  122. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  123. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  124. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  125. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  126. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  127. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  128. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  129. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  130. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +4 -2
  131. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +4 -2
  132. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  133. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  134. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  135. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  136. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  137. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  138. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  139. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  140. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  141. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  142. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  143. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  144. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  145. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  146. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  147. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  148. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  149. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  150. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  151. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  152. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  153. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  154. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  155. package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
  156. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  157. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  158. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  159. package/dist/features/row-selection/rowSelectionFeature.js +66 -77
  160. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  161. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  162. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  163. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  164. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  165. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  166. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  167. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  168. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  169. package/dist/fns/aggregationFns.cjs +18 -18
  170. package/dist/fns/aggregationFns.cjs.map +1 -1
  171. package/dist/fns/aggregationFns.d.cts +21 -19
  172. package/dist/fns/aggregationFns.d.ts +21 -19
  173. package/dist/fns/aggregationFns.js +18 -18
  174. package/dist/fns/aggregationFns.js.map +1 -1
  175. package/dist/fns/filterFns.cjs +51 -65
  176. package/dist/fns/filterFns.cjs.map +1 -1
  177. package/dist/fns/filterFns.d.cts +82 -28
  178. package/dist/fns/filterFns.d.ts +82 -28
  179. package/dist/fns/filterFns.js +51 -65
  180. package/dist/fns/filterFns.js.map +1 -1
  181. package/dist/fns/sortFns.cjs.map +1 -1
  182. package/dist/fns/sortFns.d.cts +15 -13
  183. package/dist/fns/sortFns.d.ts +15 -13
  184. package/dist/fns/sortFns.js.map +1 -1
  185. package/dist/index.cjs +0 -20
  186. package/dist/index.d.cts +34 -34
  187. package/dist/index.d.ts +34 -34
  188. package/dist/index.js +21 -21
  189. package/dist/types/Cell.d.cts +7 -9
  190. package/dist/types/Cell.d.ts +7 -9
  191. package/dist/types/Column.d.cts +16 -9
  192. package/dist/types/Column.d.ts +16 -9
  193. package/dist/types/ColumnDef.d.cts +13 -8
  194. package/dist/types/ColumnDef.d.ts +13 -8
  195. package/dist/types/Header.d.cts +8 -9
  196. package/dist/types/Header.d.ts +8 -9
  197. package/dist/types/HeaderGroup.d.cts +3 -8
  198. package/dist/types/HeaderGroup.d.ts +3 -8
  199. package/dist/types/Row.d.cts +13 -9
  200. package/dist/types/Row.d.ts +13 -9
  201. package/dist/types/RowModel.d.cts +21 -11
  202. package/dist/types/RowModel.d.ts +21 -11
  203. package/dist/types/RowModelFns.d.cts +9 -9
  204. package/dist/types/RowModelFns.d.ts +9 -9
  205. package/dist/types/Table.d.cts +20 -9
  206. package/dist/types/Table.d.ts +20 -9
  207. package/dist/types/TableFeatures.d.cts +14 -38
  208. package/dist/types/TableFeatures.d.ts +14 -38
  209. package/dist/types/TableOptions.d.cts +20 -5
  210. package/dist/types/TableOptions.d.ts +20 -5
  211. package/dist/types/TableState.d.cts +20 -11
  212. package/dist/types/TableState.d.ts +20 -11
  213. package/dist/utils.cjs.map +1 -1
  214. package/dist/utils.d.cts +1 -1
  215. package/dist/utils.d.ts +1 -1
  216. package/dist/utils.js.map +1 -1
  217. package/package.json +1 -1
  218. package/src/core/cells/coreCellsFeature.ts +17 -39
  219. package/src/core/columns/coreColumnsFeature.ts +56 -83
  220. package/src/core/headers/buildHeaderGroups.ts +1 -1
  221. package/src/core/headers/coreHeadersFeature.ts +42 -64
  222. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  223. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  224. package/src/core/row-models/coreRowModelsFeature.types.ts +2 -6
  225. package/src/core/row-models/createCoreRowModel.ts +1 -1
  226. package/src/core/rows/coreRowsFeature.ts +45 -72
  227. package/src/core/table/constructTable.ts +10 -7
  228. package/src/core/table/coreTablesFeature.ts +13 -35
  229. package/src/core/table/coreTablesFeature.utils.ts +1 -1
  230. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  231. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  232. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  233. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  234. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  235. package/src/features/column-filtering/columnFilteringFeature.types.ts +3 -3
  236. package/src/features/column-filtering/columnFilteringFeature.utils.ts +4 -4
  237. package/src/features/column-filtering/createFilteredRowModel.ts +2 -2
  238. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  239. package/src/features/column-grouping/createGroupedRowModel.ts +1 -1
  240. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  241. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  242. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  243. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  244. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  245. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  246. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  247. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  248. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  249. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  250. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  251. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  252. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  253. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  254. package/src/features/row-sorting/createSortedRowModel.ts +1 -1
  255. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  256. package/src/fns/aggregationFns.ts +26 -42
  257. package/src/fns/filterFns.ts +231 -264
  258. package/src/fns/sortFns.ts +18 -19
  259. package/src/types/Cell.ts +8 -28
  260. package/src/types/Column.ts +18 -53
  261. package/src/types/ColumnDef.ts +20 -47
  262. package/src/types/Header.ts +8 -30
  263. package/src/types/HeaderGroup.ts +2 -13
  264. package/src/types/Row.ts +15 -36
  265. package/src/types/RowModel.ts +28 -67
  266. package/src/types/RowModelFns.ts +11 -30
  267. package/src/types/Table.ts +23 -64
  268. package/src/types/TableFeatures.ts +60 -109
  269. package/src/types/TableOptions.ts +32 -71
  270. package/src/types/TableState.ts +20 -73
  271. package/src/utils.ts +5 -4
@@ -1,4 +1,4 @@
1
- import { RowData, UnionToIntersection } from "./type-utils.js";
1
+ import { RowData } from "./type-utils.js";
2
2
  import { Row_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.js";
3
3
  import { Row_ColumnPinning } from "../features/column-pinning/columnPinningFeature.types.js";
4
4
  import { Row_ColumnVisibility } from "../features/column-visibility/columnVisibilityFeature.types.js";
@@ -6,17 +6,21 @@ import { Row_RowExpanding } from "../features/row-expanding/rowExpandingFeature.
6
6
  import { Row_RowPinning } from "../features/row-pinning/rowPinningFeature.types.js";
7
7
  import { Row_RowSelection } from "../features/row-selection/rowSelectionFeature.types.js";
8
8
  import { Row_Row } from "../core/rows/coreRowsFeature.types.js";
9
- import { ExtractFeatureTypes, TableFeatures } from "./TableFeatures.js";
9
+ import { ExtractFeatureMapTypes, TableFeatures } from "./TableFeatures.js";
10
10
  import { Row_ColumnGrouping } from "../features/column-grouping/columnGroupingFeature.types.js";
11
11
 
12
12
  //#region src/types/Row.d.ts
13
- /**
14
- * Use this interface as a target for declaration merging to add your own plugin properties.
15
- * Note: This will affect the types of all tables in your project.
16
- */
17
- interface Row_Plugins<TFeatures extends TableFeatures, TData extends RowData> {}
18
13
  interface Row_Core<TFeatures extends TableFeatures, TData extends RowData> extends Row_Row<TFeatures, TData> {}
19
- type Row<TFeatures extends TableFeatures, TData extends RowData> = Row_Core<TFeatures, TData> & UnionToIntersection<('columnFilteringFeature' extends keyof TFeatures ? Row_ColumnFiltering<TFeatures, TData> : never) | ('columnGroupingFeature' extends keyof TFeatures ? Row_ColumnGrouping : never) | ('columnPinningFeature' extends keyof TFeatures ? Row_ColumnPinning<TFeatures, TData> : never) | ('columnVisibilityFeature' extends keyof TFeatures ? Row_ColumnVisibility<TFeatures, TData> : never) | ('rowExpandingFeature' extends keyof TFeatures ? Row_RowExpanding : never) | ('rowPinningFeature' extends keyof TFeatures ? Row_RowPinning : never) | ('rowSelectionFeature' extends keyof TFeatures ? Row_RowSelection : never)> & ExtractFeatureTypes<'Row', TFeatures> & Row_Plugins<TFeatures, TData>;
14
+ interface Row_FeatureMap<TFeatures extends TableFeatures, TData extends RowData> {
15
+ columnFilteringFeature: Row_ColumnFiltering<TFeatures, TData>;
16
+ columnGroupingFeature: Row_ColumnGrouping;
17
+ columnPinningFeature: Row_ColumnPinning<TFeatures, TData>;
18
+ columnVisibilityFeature: Row_ColumnVisibility<TFeatures, TData>;
19
+ rowExpandingFeature: Row_RowExpanding;
20
+ rowPinningFeature: Row_RowPinning;
21
+ rowSelectionFeature: Row_RowSelection;
22
+ }
23
+ type Row<TFeatures extends TableFeatures, TData extends RowData> = Row_Core<TFeatures, TData> & ExtractFeatureMapTypes<TFeatures, Row_FeatureMap<TFeatures, TData>>;
20
24
  //#endregion
21
- export { Row, Row_Core, Row_Plugins };
25
+ export { Row, Row_Core, Row_FeatureMap };
22
26
  //# sourceMappingURL=Row.d.ts.map
@@ -1,26 +1,36 @@
1
- import { RowData, UnionToIntersection } from "./type-utils.cjs";
1
+ import { RowData } from "./type-utils.cjs";
2
2
  import { CachedRowModel_Sorted, CreateRowModel_Sorted } from "../features/row-sorting/rowSortingFeature.types.cjs";
3
3
  import { CachedRowModel_Filtered, CreateRowModel_Filtered } from "../features/column-filtering/columnFilteringFeature.types.cjs";
4
4
  import { CachedRowModel_Expanded, CreateRowModel_Expanded } from "../features/row-expanding/rowExpandingFeature.types.cjs";
5
5
  import { CachedRowModel_Paginated, CreateRowModel_Paginated } from "../features/row-pagination/rowPaginationFeature.types.cjs";
6
- import { ExtractFeatureTypes, TableFeatures } from "./TableFeatures.cjs";
6
+ import { ExtractFeatureMapTypes, TableFeatures } from "./TableFeatures.cjs";
7
7
  import { CachedRowModel_Faceted, CreateRowModel_Faceted } from "../features/column-faceting/columnFacetingFeature.types.cjs";
8
8
  import { CachedRowModel_Core, CreateRowModel_Core, RowModel } from "../core/row-models/coreRowModelsFeature.types.cjs";
9
9
  import { CachedRowModel_Grouped, CreateRowModel_Grouped } from "../features/column-grouping/columnGroupingFeature.types.cjs";
10
10
 
11
11
  //#region src/types/RowModel.d.ts
12
- /**
13
- * Use this interface as a target for declaration merging to add your own plugin properties.
14
- * Note: This will affect the types of all tables in your project.
15
- */
16
- interface CreateRowModels_Plugins<TFeatures extends TableFeatures, TData extends RowData> {}
17
- type CreateRowModels<TFeatures extends TableFeatures, TData extends RowData> = CreateRowModel_Core<TFeatures, TData> & UnionToIntersection<('columnFacetingFeature' extends keyof TFeatures ? CreateRowModel_Faceted<TFeatures, TData> : never) | ('columnFilteringFeature' extends keyof TFeatures ? CreateRowModel_Filtered<TFeatures, TData> : never) | ('rowExpandingFeature' extends keyof TFeatures ? CreateRowModel_Expanded<TFeatures, TData> : never) | ('columnGroupingFeature' extends keyof TFeatures ? CreateRowModel_Grouped<TFeatures, TData> : never) | ('rowPaginationFeature' extends keyof TFeatures ? CreateRowModel_Paginated<TFeatures, TData> : never) | ('rowSortingFeature' extends keyof TFeatures ? CreateRowModel_Sorted<TFeatures, TData> : never)> & ExtractFeatureTypes<'CreateRowModels', TFeatures> & CreateRowModels_Plugins<TFeatures, TData>;
12
+ interface CreateRowModels_FeatureMap<TFeatures extends TableFeatures, TData extends RowData> {
13
+ columnFacetingFeature: CreateRowModel_Faceted<TFeatures, TData>;
14
+ columnFilteringFeature: CreateRowModel_Filtered<TFeatures, TData>;
15
+ rowExpandingFeature: CreateRowModel_Expanded<TFeatures, TData>;
16
+ columnGroupingFeature: CreateRowModel_Grouped<TFeatures, TData>;
17
+ rowPaginationFeature: CreateRowModel_Paginated<TFeatures, TData>;
18
+ rowSortingFeature: CreateRowModel_Sorted<TFeatures, TData>;
19
+ }
20
+ type CreateRowModels<TFeatures extends TableFeatures, TData extends RowData> = CreateRowModel_Core<TFeatures, TData> & ExtractFeatureMapTypes<TFeatures, CreateRowModels_FeatureMap<TFeatures, TData>>;
18
21
  type CreateRowModels_All<TFeatures extends TableFeatures, TData extends RowData> = CreateRowModel_Core<TFeatures, TData> & CreateRowModel_Expanded<TFeatures, TData> & CreateRowModel_Faceted<TFeatures, TData> & CreateRowModel_Filtered<TFeatures, TData> & CreateRowModel_Grouped<TFeatures, TData> & CreateRowModel_Paginated<TFeatures, TData> & CreateRowModel_Sorted<TFeatures, TData>;
19
- interface CachedRowModels_Plugins<TFeatures extends TableFeatures, TData extends RowData> {}
22
+ interface CachedRowModels_FeatureMap<TFeatures extends TableFeatures, TData extends RowData> {
23
+ columnFacetingFeature: CachedRowModel_Faceted<TFeatures, TData>;
24
+ columnFilteringFeature: CachedRowModel_Filtered<TFeatures, TData>;
25
+ rowExpandingFeature: CachedRowModel_Expanded<TFeatures, TData>;
26
+ columnGroupingFeature: CachedRowModel_Grouped<TFeatures, TData>;
27
+ rowPaginationFeature: CachedRowModel_Paginated<TFeatures, TData>;
28
+ rowSortingFeature: CachedRowModel_Sorted<TFeatures, TData>;
29
+ }
20
30
  type CachedRowModels<TFeatures extends TableFeatures, TData extends RowData> = {
21
31
  CachedRowModel_Core: () => RowModel<TFeatures, TData>;
22
- } & UnionToIntersection<('columnFacetingFeature' extends keyof TFeatures ? CachedRowModel_Faceted<TFeatures, TData> : never) | ('columnFilteringFeature' extends keyof TFeatures ? CachedRowModel_Filtered<TFeatures, TData> : never) | ('rowExpandingFeature' extends keyof TFeatures ? CachedRowModel_Expanded<TFeatures, TData> : never) | ('columnGroupingFeature' extends keyof TFeatures ? CachedRowModel_Grouped<TFeatures, TData> : never) | ('rowPaginationFeature' extends keyof TFeatures ? CachedRowModel_Paginated<TFeatures, TData> : never) | ('rowSortingFeature' extends keyof TFeatures ? CachedRowModel_Sorted<TFeatures, TData> : never)> & ExtractFeatureTypes<'CachedRowModel', TFeatures> & CachedRowModels_Plugins<TFeatures, TData>;
32
+ } & ExtractFeatureMapTypes<TFeatures, CachedRowModels_FeatureMap<TFeatures, TData>>;
23
33
  type CachedRowModel_All<TFeatures extends TableFeatures, TData extends RowData = any> = Partial<CachedRowModel_Core<TFeatures, TData> & CachedRowModel_Expanded<TFeatures, TData> & CachedRowModel_Faceted<TFeatures, TData> & CachedRowModel_Filtered<TFeatures, TData> & CachedRowModel_Grouped<TFeatures, TData> & CachedRowModel_Paginated<TFeatures, TData> & CachedRowModel_Sorted<TFeatures, TData>>;
24
34
  //#endregion
25
- export { CachedRowModel_All, CachedRowModels, CachedRowModels_Plugins, CreateRowModels, CreateRowModels_All, CreateRowModels_Plugins };
35
+ export { CachedRowModel_All, CachedRowModels, CachedRowModels_FeatureMap, CreateRowModels, CreateRowModels_All, CreateRowModels_FeatureMap };
26
36
  //# sourceMappingURL=RowModel.d.cts.map
@@ -1,26 +1,36 @@
1
- import { RowData, UnionToIntersection } from "./type-utils.js";
1
+ import { RowData } from "./type-utils.js";
2
2
  import { CachedRowModel_Sorted, CreateRowModel_Sorted } from "../features/row-sorting/rowSortingFeature.types.js";
3
3
  import { CachedRowModel_Filtered, CreateRowModel_Filtered } from "../features/column-filtering/columnFilteringFeature.types.js";
4
4
  import { CachedRowModel_Expanded, CreateRowModel_Expanded } from "../features/row-expanding/rowExpandingFeature.types.js";
5
5
  import { CachedRowModel_Paginated, CreateRowModel_Paginated } from "../features/row-pagination/rowPaginationFeature.types.js";
6
- import { ExtractFeatureTypes, TableFeatures } from "./TableFeatures.js";
6
+ import { ExtractFeatureMapTypes, TableFeatures } from "./TableFeatures.js";
7
7
  import { CachedRowModel_Faceted, CreateRowModel_Faceted } from "../features/column-faceting/columnFacetingFeature.types.js";
8
8
  import { CachedRowModel_Core, CreateRowModel_Core, RowModel } from "../core/row-models/coreRowModelsFeature.types.js";
9
9
  import { CachedRowModel_Grouped, CreateRowModel_Grouped } from "../features/column-grouping/columnGroupingFeature.types.js";
10
10
 
11
11
  //#region src/types/RowModel.d.ts
12
- /**
13
- * Use this interface as a target for declaration merging to add your own plugin properties.
14
- * Note: This will affect the types of all tables in your project.
15
- */
16
- interface CreateRowModels_Plugins<TFeatures extends TableFeatures, TData extends RowData> {}
17
- type CreateRowModels<TFeatures extends TableFeatures, TData extends RowData> = CreateRowModel_Core<TFeatures, TData> & UnionToIntersection<('columnFacetingFeature' extends keyof TFeatures ? CreateRowModel_Faceted<TFeatures, TData> : never) | ('columnFilteringFeature' extends keyof TFeatures ? CreateRowModel_Filtered<TFeatures, TData> : never) | ('rowExpandingFeature' extends keyof TFeatures ? CreateRowModel_Expanded<TFeatures, TData> : never) | ('columnGroupingFeature' extends keyof TFeatures ? CreateRowModel_Grouped<TFeatures, TData> : never) | ('rowPaginationFeature' extends keyof TFeatures ? CreateRowModel_Paginated<TFeatures, TData> : never) | ('rowSortingFeature' extends keyof TFeatures ? CreateRowModel_Sorted<TFeatures, TData> : never)> & ExtractFeatureTypes<'CreateRowModels', TFeatures> & CreateRowModels_Plugins<TFeatures, TData>;
12
+ interface CreateRowModels_FeatureMap<TFeatures extends TableFeatures, TData extends RowData> {
13
+ columnFacetingFeature: CreateRowModel_Faceted<TFeatures, TData>;
14
+ columnFilteringFeature: CreateRowModel_Filtered<TFeatures, TData>;
15
+ rowExpandingFeature: CreateRowModel_Expanded<TFeatures, TData>;
16
+ columnGroupingFeature: CreateRowModel_Grouped<TFeatures, TData>;
17
+ rowPaginationFeature: CreateRowModel_Paginated<TFeatures, TData>;
18
+ rowSortingFeature: CreateRowModel_Sorted<TFeatures, TData>;
19
+ }
20
+ type CreateRowModels<TFeatures extends TableFeatures, TData extends RowData> = CreateRowModel_Core<TFeatures, TData> & ExtractFeatureMapTypes<TFeatures, CreateRowModels_FeatureMap<TFeatures, TData>>;
18
21
  type CreateRowModels_All<TFeatures extends TableFeatures, TData extends RowData> = CreateRowModel_Core<TFeatures, TData> & CreateRowModel_Expanded<TFeatures, TData> & CreateRowModel_Faceted<TFeatures, TData> & CreateRowModel_Filtered<TFeatures, TData> & CreateRowModel_Grouped<TFeatures, TData> & CreateRowModel_Paginated<TFeatures, TData> & CreateRowModel_Sorted<TFeatures, TData>;
19
- interface CachedRowModels_Plugins<TFeatures extends TableFeatures, TData extends RowData> {}
22
+ interface CachedRowModels_FeatureMap<TFeatures extends TableFeatures, TData extends RowData> {
23
+ columnFacetingFeature: CachedRowModel_Faceted<TFeatures, TData>;
24
+ columnFilteringFeature: CachedRowModel_Filtered<TFeatures, TData>;
25
+ rowExpandingFeature: CachedRowModel_Expanded<TFeatures, TData>;
26
+ columnGroupingFeature: CachedRowModel_Grouped<TFeatures, TData>;
27
+ rowPaginationFeature: CachedRowModel_Paginated<TFeatures, TData>;
28
+ rowSortingFeature: CachedRowModel_Sorted<TFeatures, TData>;
29
+ }
20
30
  type CachedRowModels<TFeatures extends TableFeatures, TData extends RowData> = {
21
31
  CachedRowModel_Core: () => RowModel<TFeatures, TData>;
22
- } & UnionToIntersection<('columnFacetingFeature' extends keyof TFeatures ? CachedRowModel_Faceted<TFeatures, TData> : never) | ('columnFilteringFeature' extends keyof TFeatures ? CachedRowModel_Filtered<TFeatures, TData> : never) | ('rowExpandingFeature' extends keyof TFeatures ? CachedRowModel_Expanded<TFeatures, TData> : never) | ('columnGroupingFeature' extends keyof TFeatures ? CachedRowModel_Grouped<TFeatures, TData> : never) | ('rowPaginationFeature' extends keyof TFeatures ? CachedRowModel_Paginated<TFeatures, TData> : never) | ('rowSortingFeature' extends keyof TFeatures ? CachedRowModel_Sorted<TFeatures, TData> : never)> & ExtractFeatureTypes<'CachedRowModel', TFeatures> & CachedRowModels_Plugins<TFeatures, TData>;
32
+ } & ExtractFeatureMapTypes<TFeatures, CachedRowModels_FeatureMap<TFeatures, TData>>;
23
33
  type CachedRowModel_All<TFeatures extends TableFeatures, TData extends RowData = any> = Partial<CachedRowModel_Core<TFeatures, TData> & CachedRowModel_Expanded<TFeatures, TData> & CachedRowModel_Faceted<TFeatures, TData> & CachedRowModel_Filtered<TFeatures, TData> & CachedRowModel_Grouped<TFeatures, TData> & CachedRowModel_Paginated<TFeatures, TData> & CachedRowModel_Sorted<TFeatures, TData>>;
24
34
  //#endregion
25
- export { CachedRowModel_All, CachedRowModels, CachedRowModels_Plugins, CreateRowModels, CreateRowModels_All, CreateRowModels_Plugins };
35
+ export { CachedRowModel_All, CachedRowModels, CachedRowModels_FeatureMap, CreateRowModels, CreateRowModels_All, CreateRowModels_FeatureMap };
26
36
  //# sourceMappingURL=RowModel.d.ts.map
@@ -1,18 +1,18 @@
1
- import { RowData, UnionToIntersection } from "./type-utils.cjs";
1
+ import { RowData } from "./type-utils.cjs";
2
2
  import { RowModelFns_RowSorting } from "../features/row-sorting/rowSortingFeature.types.cjs";
3
3
  import { RowModelFns_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.cjs";
4
- import { ExtractFeatureTypes, TableFeatures } from "./TableFeatures.cjs";
4
+ import { ExtractFeatureMapTypes, TableFeatures } from "./TableFeatures.cjs";
5
5
  import { RowModelFns_ColumnGrouping } from "../features/column-grouping/columnGroupingFeature.types.cjs";
6
6
 
7
7
  //#region src/types/RowModelFns.d.ts
8
- /**
9
- * Use this interface as a target for declaration merging to add your own plugin properties.
10
- * Note: This will affect the types of all tables in your project.
11
- */
12
- interface RowModelFns_Plugins<TFeatures extends TableFeatures, TData extends RowData> {}
13
8
  interface RowModelFns_Core {}
14
- type RowModelFns<TFeatures extends TableFeatures, TData extends RowData> = Partial<UnionToIntersection<('columnFilteringFeature' extends keyof TFeatures ? RowModelFns_ColumnFiltering<TFeatures, TData> : never) | ('columnGroupingFeature' extends keyof TFeatures ? RowModelFns_ColumnGrouping<TFeatures, TData> : never) | ('rowSortingFeature' extends keyof TFeatures ? RowModelFns_RowSorting<TFeatures, TData> : never)> & ExtractFeatureTypes<'RowModelFns', TFeatures> & RowModelFns_Plugins<TFeatures, TData>>;
9
+ interface RowModelFns_FeatureMap<TFeatures extends TableFeatures, TData extends RowData> {
10
+ columnFilteringFeature: RowModelFns_ColumnFiltering<TFeatures, TData>;
11
+ columnGroupingFeature: RowModelFns_ColumnGrouping<TFeatures, TData>;
12
+ rowSortingFeature: RowModelFns_RowSorting<TFeatures, TData>;
13
+ }
14
+ type RowModelFns<TFeatures extends TableFeatures, TData extends RowData> = Partial<ExtractFeatureMapTypes<TFeatures, RowModelFns_FeatureMap<TFeatures, TData>>>;
15
15
  type RowModelFns_All<TFeatures extends TableFeatures, TData extends RowData> = Partial<RowModelFns_ColumnFiltering<TFeatures, TData> & RowModelFns_ColumnGrouping<TFeatures, TData> & RowModelFns_RowSorting<TFeatures, TData>>;
16
16
  //#endregion
17
- export { RowModelFns, RowModelFns_All, RowModelFns_Core, RowModelFns_Plugins };
17
+ export { RowModelFns, RowModelFns_All, RowModelFns_Core, RowModelFns_FeatureMap };
18
18
  //# sourceMappingURL=RowModelFns.d.cts.map
@@ -1,18 +1,18 @@
1
- import { RowData, UnionToIntersection } from "./type-utils.js";
1
+ import { RowData } from "./type-utils.js";
2
2
  import { RowModelFns_RowSorting } from "../features/row-sorting/rowSortingFeature.types.js";
3
3
  import { RowModelFns_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.js";
4
- import { ExtractFeatureTypes, TableFeatures } from "./TableFeatures.js";
4
+ import { ExtractFeatureMapTypes, TableFeatures } from "./TableFeatures.js";
5
5
  import { RowModelFns_ColumnGrouping } from "../features/column-grouping/columnGroupingFeature.types.js";
6
6
 
7
7
  //#region src/types/RowModelFns.d.ts
8
- /**
9
- * Use this interface as a target for declaration merging to add your own plugin properties.
10
- * Note: This will affect the types of all tables in your project.
11
- */
12
- interface RowModelFns_Plugins<TFeatures extends TableFeatures, TData extends RowData> {}
13
8
  interface RowModelFns_Core {}
14
- type RowModelFns<TFeatures extends TableFeatures, TData extends RowData> = Partial<UnionToIntersection<('columnFilteringFeature' extends keyof TFeatures ? RowModelFns_ColumnFiltering<TFeatures, TData> : never) | ('columnGroupingFeature' extends keyof TFeatures ? RowModelFns_ColumnGrouping<TFeatures, TData> : never) | ('rowSortingFeature' extends keyof TFeatures ? RowModelFns_RowSorting<TFeatures, TData> : never)> & ExtractFeatureTypes<'RowModelFns', TFeatures> & RowModelFns_Plugins<TFeatures, TData>>;
9
+ interface RowModelFns_FeatureMap<TFeatures extends TableFeatures, TData extends RowData> {
10
+ columnFilteringFeature: RowModelFns_ColumnFiltering<TFeatures, TData>;
11
+ columnGroupingFeature: RowModelFns_ColumnGrouping<TFeatures, TData>;
12
+ rowSortingFeature: RowModelFns_RowSorting<TFeatures, TData>;
13
+ }
14
+ type RowModelFns<TFeatures extends TableFeatures, TData extends RowData> = Partial<ExtractFeatureMapTypes<TFeatures, RowModelFns_FeatureMap<TFeatures, TData>>>;
15
15
  type RowModelFns_All<TFeatures extends TableFeatures, TData extends RowData> = Partial<RowModelFns_ColumnFiltering<TFeatures, TData> & RowModelFns_ColumnGrouping<TFeatures, TData> & RowModelFns_RowSorting<TFeatures, TData>>;
16
16
  //#endregion
17
- export { RowModelFns, RowModelFns_All, RowModelFns_Core, RowModelFns_Plugins };
17
+ export { RowModelFns, RowModelFns_All, RowModelFns_Core, RowModelFns_FeatureMap };
18
18
  //# sourceMappingURL=RowModelFns.d.ts.map
@@ -1,4 +1,4 @@
1
- import { RowData, UnionToIntersection } from "./type-utils.cjs";
1
+ import { RowData } from "./type-utils.cjs";
2
2
  import { Table_RowSorting } from "../features/row-sorting/rowSortingFeature.types.cjs";
3
3
  import { Table_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.cjs";
4
4
  import { Table_ColumnSizing } from "../features/column-sizing/columnSizingFeature.types.cjs";
@@ -19,27 +19,38 @@ import { CachedRowModel_All, CreateRowModels_All } from "./RowModel.cjs";
19
19
  import { TableState_All } from "./TableState.cjs";
20
20
  import { Atoms_All, BaseAtoms_All, ExternalAtoms_All, Table_Table } from "../core/table/coreTablesFeature.types.cjs";
21
21
  import { TableOptions_All } from "./TableOptions.cjs";
22
- import { ExtractFeatureTypes, TableFeatures } from "./TableFeatures.cjs";
22
+ import { ExtractFeatureMapTypes, TableFeatures } from "./TableFeatures.cjs";
23
23
  import { Table_ColumnFaceting } from "../features/column-faceting/columnFacetingFeature.types.cjs";
24
24
  import { Table_RowModels } from "../core/row-models/coreRowModelsFeature.types.cjs";
25
25
  import { Table_ColumnGrouping } from "../features/column-grouping/columnGroupingFeature.types.cjs";
26
26
  import { ReadonlyStore } from "@tanstack/store";
27
27
 
28
28
  //#region src/types/Table.d.ts
29
- /**
30
- * Use this interface as a target for declaration merging to add your own plugin properties.
31
- * Note: This will affect the types of all tables in your project.
32
- */
33
- interface Table_Plugins<TFeatures extends TableFeatures, TData extends RowData> {}
34
29
  /**
35
30
  * The core table object that only includes the core table functionality such as column, header, row, and table APIS.
36
31
  * No features are included.
37
32
  */
38
33
  type Table_Core<TFeatures extends TableFeatures, TData extends RowData> = Table_Table<TFeatures, TData> & Table_Columns<TFeatures, TData> & Table_Rows<TFeatures, TData> & Table_RowModels<TFeatures, TData> & Table_Headers<TFeatures, TData>;
34
+ interface Table_FeatureMap<TFeatures extends TableFeatures, TData extends RowData> {
35
+ columnFilteringFeature: Table_ColumnFiltering;
36
+ columnGroupingFeature: Table_ColumnGrouping<TFeatures, TData>;
37
+ columnOrderingFeature: Table_ColumnOrdering<TFeatures, TData>;
38
+ columnPinningFeature: Table_ColumnPinning<TFeatures, TData>;
39
+ columnResizingFeature: Table_ColumnResizing;
40
+ columnSizingFeature: Table_ColumnSizing;
41
+ columnVisibilityFeature: Table_ColumnVisibility<TFeatures, TData>;
42
+ columnFacetingFeature: Table_ColumnFaceting<TFeatures, TData>;
43
+ globalFilteringFeature: Table_GlobalFiltering<TFeatures, TData>;
44
+ rowExpandingFeature: Table_RowExpanding<TFeatures, TData>;
45
+ rowPaginationFeature: Table_RowPagination<TFeatures, TData>;
46
+ rowPinningFeature: Table_RowPinning<TFeatures, TData>;
47
+ rowSelectionFeature: Table_RowSelection<TFeatures, TData>;
48
+ rowSortingFeature: Table_RowSorting<TFeatures, TData>;
49
+ }
39
50
  /**
40
51
  * The table object that includes both the core table functionality and the features that are enabled via the `features` table option.
41
52
  */
42
- type Table<TFeatures extends TableFeatures, TData extends RowData> = Table_Core<TFeatures, TData> & UnionToIntersection<('columnFilteringFeature' extends keyof TFeatures ? Table_ColumnFiltering : never) | ('columnGroupingFeature' extends keyof TFeatures ? Table_ColumnGrouping<TFeatures, TData> : never) | ('columnOrderingFeature' extends keyof TFeatures ? Table_ColumnOrdering<TFeatures, TData> : never) | ('columnPinningFeature' extends keyof TFeatures ? Table_ColumnPinning<TFeatures, TData> : never) | ('columnResizingFeature' extends keyof TFeatures ? Table_ColumnResizing : never) | ('columnSizingFeature' extends keyof TFeatures ? Table_ColumnSizing : never) | ('columnVisibilityFeature' extends keyof TFeatures ? Table_ColumnVisibility<TFeatures, TData> : never) | ('columnFacetingFeature' extends keyof TFeatures ? Table_ColumnFaceting<TFeatures, TData> : never) | ('globalFilteringFeature' extends keyof TFeatures ? Table_GlobalFiltering<TFeatures, TData> : never) | ('rowExpandingFeature' extends keyof TFeatures ? Table_RowExpanding<TFeatures, TData> : never) | ('rowPaginationFeature' extends keyof TFeatures ? Table_RowPagination<TFeatures, TData> : never) | ('rowPinningFeature' extends keyof TFeatures ? Table_RowPinning<TFeatures, TData> : never) | ('rowSelectionFeature' extends keyof TFeatures ? Table_RowSelection<TFeatures, TData> : never) | ('rowSortingFeature' extends keyof TFeatures ? Table_RowSorting<TFeatures, TData> : never)> & ExtractFeatureTypes<'Table', TFeatures> & Table_Plugins<TFeatures, TData>;
53
+ type Table<TFeatures extends TableFeatures, TData extends RowData> = Table_Core<TFeatures, TData> & ExtractFeatureMapTypes<TFeatures, Table_FeatureMap<TFeatures, TData>>;
43
54
  type Table_Internal<TFeatures extends TableFeatures, TData extends RowData = any> = Table<TFeatures, TData> & {
44
55
  _rowModels: CachedRowModel_All<TFeatures, TData>;
45
56
  _rowModelFns: RowModelFns_All<TFeatures, TData>;
@@ -55,5 +66,5 @@ type Table_Internal<TFeatures extends TableFeatures, TData extends RowData = any
55
66
  store: ReadonlyStore<TableState_All>;
56
67
  };
57
68
  //#endregion
58
- export { Table, Table_Core, Table_Internal, Table_Plugins };
69
+ export { Table, Table_Core, Table_FeatureMap, Table_Internal };
59
70
  //# sourceMappingURL=Table.d.cts.map
@@ -1,4 +1,4 @@
1
- import { RowData, UnionToIntersection } from "./type-utils.js";
1
+ import { RowData } from "./type-utils.js";
2
2
  import { Table_RowSorting } from "../features/row-sorting/rowSortingFeature.types.js";
3
3
  import { Table_ColumnFiltering } from "../features/column-filtering/columnFilteringFeature.types.js";
4
4
  import { Table_ColumnSizing } from "../features/column-sizing/columnSizingFeature.types.js";
@@ -19,27 +19,38 @@ import { CachedRowModel_All, CreateRowModels_All } from "./RowModel.js";
19
19
  import { TableState_All } from "./TableState.js";
20
20
  import { Atoms_All, BaseAtoms_All, ExternalAtoms_All, Table_Table } from "../core/table/coreTablesFeature.types.js";
21
21
  import { TableOptions_All } from "./TableOptions.js";
22
- import { ExtractFeatureTypes, TableFeatures } from "./TableFeatures.js";
22
+ import { ExtractFeatureMapTypes, TableFeatures } from "./TableFeatures.js";
23
23
  import { Table_ColumnFaceting } from "../features/column-faceting/columnFacetingFeature.types.js";
24
24
  import { Table_RowModels } from "../core/row-models/coreRowModelsFeature.types.js";
25
25
  import { Table_ColumnGrouping } from "../features/column-grouping/columnGroupingFeature.types.js";
26
26
  import { ReadonlyStore } from "@tanstack/store";
27
27
 
28
28
  //#region src/types/Table.d.ts
29
- /**
30
- * Use this interface as a target for declaration merging to add your own plugin properties.
31
- * Note: This will affect the types of all tables in your project.
32
- */
33
- interface Table_Plugins<TFeatures extends TableFeatures, TData extends RowData> {}
34
29
  /**
35
30
  * The core table object that only includes the core table functionality such as column, header, row, and table APIS.
36
31
  * No features are included.
37
32
  */
38
33
  type Table_Core<TFeatures extends TableFeatures, TData extends RowData> = Table_Table<TFeatures, TData> & Table_Columns<TFeatures, TData> & Table_Rows<TFeatures, TData> & Table_RowModels<TFeatures, TData> & Table_Headers<TFeatures, TData>;
34
+ interface Table_FeatureMap<TFeatures extends TableFeatures, TData extends RowData> {
35
+ columnFilteringFeature: Table_ColumnFiltering;
36
+ columnGroupingFeature: Table_ColumnGrouping<TFeatures, TData>;
37
+ columnOrderingFeature: Table_ColumnOrdering<TFeatures, TData>;
38
+ columnPinningFeature: Table_ColumnPinning<TFeatures, TData>;
39
+ columnResizingFeature: Table_ColumnResizing;
40
+ columnSizingFeature: Table_ColumnSizing;
41
+ columnVisibilityFeature: Table_ColumnVisibility<TFeatures, TData>;
42
+ columnFacetingFeature: Table_ColumnFaceting<TFeatures, TData>;
43
+ globalFilteringFeature: Table_GlobalFiltering<TFeatures, TData>;
44
+ rowExpandingFeature: Table_RowExpanding<TFeatures, TData>;
45
+ rowPaginationFeature: Table_RowPagination<TFeatures, TData>;
46
+ rowPinningFeature: Table_RowPinning<TFeatures, TData>;
47
+ rowSelectionFeature: Table_RowSelection<TFeatures, TData>;
48
+ rowSortingFeature: Table_RowSorting<TFeatures, TData>;
49
+ }
39
50
  /**
40
51
  * The table object that includes both the core table functionality and the features that are enabled via the `features` table option.
41
52
  */
42
- type Table<TFeatures extends TableFeatures, TData extends RowData> = Table_Core<TFeatures, TData> & UnionToIntersection<('columnFilteringFeature' extends keyof TFeatures ? Table_ColumnFiltering : never) | ('columnGroupingFeature' extends keyof TFeatures ? Table_ColumnGrouping<TFeatures, TData> : never) | ('columnOrderingFeature' extends keyof TFeatures ? Table_ColumnOrdering<TFeatures, TData> : never) | ('columnPinningFeature' extends keyof TFeatures ? Table_ColumnPinning<TFeatures, TData> : never) | ('columnResizingFeature' extends keyof TFeatures ? Table_ColumnResizing : never) | ('columnSizingFeature' extends keyof TFeatures ? Table_ColumnSizing : never) | ('columnVisibilityFeature' extends keyof TFeatures ? Table_ColumnVisibility<TFeatures, TData> : never) | ('columnFacetingFeature' extends keyof TFeatures ? Table_ColumnFaceting<TFeatures, TData> : never) | ('globalFilteringFeature' extends keyof TFeatures ? Table_GlobalFiltering<TFeatures, TData> : never) | ('rowExpandingFeature' extends keyof TFeatures ? Table_RowExpanding<TFeatures, TData> : never) | ('rowPaginationFeature' extends keyof TFeatures ? Table_RowPagination<TFeatures, TData> : never) | ('rowPinningFeature' extends keyof TFeatures ? Table_RowPinning<TFeatures, TData> : never) | ('rowSelectionFeature' extends keyof TFeatures ? Table_RowSelection<TFeatures, TData> : never) | ('rowSortingFeature' extends keyof TFeatures ? Table_RowSorting<TFeatures, TData> : never)> & ExtractFeatureTypes<'Table', TFeatures> & Table_Plugins<TFeatures, TData>;
53
+ type Table<TFeatures extends TableFeatures, TData extends RowData> = Table_Core<TFeatures, TData> & ExtractFeatureMapTypes<TFeatures, Table_FeatureMap<TFeatures, TData>>;
43
54
  type Table_Internal<TFeatures extends TableFeatures, TData extends RowData = any> = Table<TFeatures, TData> & {
44
55
  _rowModels: CachedRowModel_All<TFeatures, TData>;
45
56
  _rowModelFns: RowModelFns_All<TFeatures, TData>;
@@ -55,5 +66,5 @@ type Table_Internal<TFeatures extends TableFeatures, TData extends RowData = any
55
66
  store: ReadonlyStore<TableState_All>;
56
67
  };
57
68
  //#endregion
58
- export { Table, Table_Core, Table_Internal, Table_Plugins };
69
+ export { Table, Table_Core, Table_FeatureMap, Table_Internal };
59
70
  //# sourceMappingURL=Table.d.ts.map
@@ -8,70 +8,46 @@ import { StockFeatures } from "../features/stockFeatures.cjs";
8
8
  import { Table_Internal } from "./Table.cjs";
9
9
 
10
10
  //#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
- }
11
+ type IsAny<T> = 0 extends 1 & T ? true : false;
12
+ type UnionToIntersectionOrEmpty<T> = [T] extends [never] ? {} : UnionToIntersection<T> & {};
13
+ type ExtractFeatureMapTypes<TFeatures extends TableFeatures, TFeatureMap extends object> = IsAny<TFeatures> extends true ? UnionToIntersection<TFeatureMap[keyof TFeatureMap]> : UnionToIntersectionOrEmpty<TFeatureMap[Extract<keyof TFeatures, keyof TFeatureMap>]>;
26
14
  interface Plugins {}
27
15
  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> {
16
+ interface TableFeature {
41
17
  /**
42
18
  * Assigns Cell APIs to the cell prototype for memory-efficient method sharing.
43
19
  * This is called once per table to build a shared prototype for all cells.
44
20
  */
45
- assignCellPrototype?: AssignCellPrototype<TConstructors>;
21
+ assignCellPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
46
22
  /**
47
23
  * Assigns Column APIs to the column prototype for memory-efficient method sharing.
48
24
  * This is called once per table to build a shared prototype for all columns.
49
25
  */
50
- assignColumnPrototype?: AssignColumnPrototype<TConstructors>;
26
+ assignColumnPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
51
27
  /**
52
28
  * Assigns Header APIs to the header prototype for memory-efficient method sharing.
53
29
  * This is called once per table to build a shared prototype for all headers.
54
30
  */
55
- assignHeaderPrototype?: AssignHeaderPrototype<TConstructors>;
31
+ assignHeaderPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
56
32
  /**
57
33
  * Assigns Row APIs to the row prototype for memory-efficient method sharing.
58
34
  * This is called once per table to build a shared prototype for all rows.
59
35
  */
60
- assignRowPrototype?: AssignRowPrototype<TConstructors>;
36
+ assignRowPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
61
37
  /**
62
38
  * Assigns Table APIs to the table instance.
63
39
  * Unlike row/cell/column/header, the table is a singleton so methods are assigned directly.
64
40
  */
65
- constructTableAPIs?: ConstructTableAPIs<TConstructors>;
66
- getDefaultColumnDef?: GetDefaultColumnDef<TConstructors>;
67
- getDefaultTableOptions?: GetDefaultTableOptions<TConstructors>;
68
- getInitialState?: GetInitialState<TConstructors>;
41
+ constructTableAPIs?: <TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>) => void;
42
+ getDefaultColumnDef?: <TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>() => ColumnDefBase_All<TFeatures, TData, TValue>;
43
+ getDefaultTableOptions?: <TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>) => Partial<TableOptions_All<TFeatures, TData>>;
44
+ getInitialState?: (initialState: Partial<TableState_All>) => TableState_All;
69
45
  /**
70
46
  * Initializes instance-specific data on each row (e.g., caches).
71
47
  * Methods should be assigned via assignRowPrototype instead.
72
48
  */
73
- initRowInstanceData?: InitRowInstanceData<TConstructors>;
49
+ initRowInstanceData?: <TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>) => void;
74
50
  }
75
51
  //#endregion
76
- export { AssignCellPrototype, AssignColumnPrototype, AssignHeaderPrototype, AssignRowPrototype, ConstructTableAPIs, ExtractFeatureTypes, FeatureConstructors, GetDefaultColumnDef, GetDefaultStateSelector, GetDefaultTableOptions, GetInitialState, InitRowInstanceData, Plugins, TableFeature, TableFeatures };
52
+ export { ExtractFeatureMapTypes, Plugins, TableFeature, TableFeatures };
77
53
  //# sourceMappingURL=TableFeatures.d.cts.map
@@ -8,70 +8,46 @@ import { StockFeatures } from "../features/stockFeatures.js";
8
8
  import { Table_Internal } from "./Table.js";
9
9
 
10
10
  //#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
- }
11
+ type IsAny<T> = 0 extends 1 & T ? true : false;
12
+ type UnionToIntersectionOrEmpty<T> = [T] extends [never] ? {} : UnionToIntersection<T> & {};
13
+ type ExtractFeatureMapTypes<TFeatures extends TableFeatures, TFeatureMap extends object> = IsAny<TFeatures> extends true ? UnionToIntersection<TFeatureMap[keyof TFeatureMap]> : UnionToIntersectionOrEmpty<TFeatureMap[Extract<keyof TFeatures, keyof TFeatureMap>]>;
26
14
  interface Plugins {}
27
15
  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> {
16
+ interface TableFeature {
41
17
  /**
42
18
  * Assigns Cell APIs to the cell prototype for memory-efficient method sharing.
43
19
  * This is called once per table to build a shared prototype for all cells.
44
20
  */
45
- assignCellPrototype?: AssignCellPrototype<TConstructors>;
21
+ assignCellPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
46
22
  /**
47
23
  * Assigns Column APIs to the column prototype for memory-efficient method sharing.
48
24
  * This is called once per table to build a shared prototype for all columns.
49
25
  */
50
- assignColumnPrototype?: AssignColumnPrototype<TConstructors>;
26
+ assignColumnPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
51
27
  /**
52
28
  * Assigns Header APIs to the header prototype for memory-efficient method sharing.
53
29
  * This is called once per table to build a shared prototype for all headers.
54
30
  */
55
- assignHeaderPrototype?: AssignHeaderPrototype<TConstructors>;
31
+ assignHeaderPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
56
32
  /**
57
33
  * Assigns Row APIs to the row prototype for memory-efficient method sharing.
58
34
  * This is called once per table to build a shared prototype for all rows.
59
35
  */
60
- assignRowPrototype?: AssignRowPrototype<TConstructors>;
36
+ assignRowPrototype?: <TFeatures extends TableFeatures, TData extends RowData>(prototype: Record<string, any>, table: Table_Internal<TFeatures, TData>) => void;
61
37
  /**
62
38
  * Assigns Table APIs to the table instance.
63
39
  * Unlike row/cell/column/header, the table is a singleton so methods are assigned directly.
64
40
  */
65
- constructTableAPIs?: ConstructTableAPIs<TConstructors>;
66
- getDefaultColumnDef?: GetDefaultColumnDef<TConstructors>;
67
- getDefaultTableOptions?: GetDefaultTableOptions<TConstructors>;
68
- getInitialState?: GetInitialState<TConstructors>;
41
+ constructTableAPIs?: <TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>) => void;
42
+ getDefaultColumnDef?: <TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>() => ColumnDefBase_All<TFeatures, TData, TValue>;
43
+ getDefaultTableOptions?: <TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>) => Partial<TableOptions_All<TFeatures, TData>>;
44
+ getInitialState?: (initialState: Partial<TableState_All>) => TableState_All;
69
45
  /**
70
46
  * Initializes instance-specific data on each row (e.g., caches).
71
47
  * Methods should be assigned via assignRowPrototype instead.
72
48
  */
73
- initRowInstanceData?: InitRowInstanceData<TConstructors>;
49
+ initRowInstanceData?: <TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>) => void;
74
50
  }
75
51
  //#endregion
76
- export { AssignCellPrototype, AssignColumnPrototype, AssignHeaderPrototype, AssignRowPrototype, ConstructTableAPIs, ExtractFeatureTypes, FeatureConstructors, GetDefaultColumnDef, GetDefaultStateSelector, GetDefaultTableOptions, GetInitialState, InitRowInstanceData, Plugins, TableFeature, TableFeatures };
52
+ export { ExtractFeatureMapTypes, Plugins, TableFeature, TableFeatures };
77
53
  //# sourceMappingURL=TableFeatures.d.ts.map
@@ -16,11 +16,10 @@ import { TableOptions_Rows } from "../core/rows/coreRowsFeature.types.cjs";
16
16
  import { TableOptions_Cell } from "../core/cells/coreCellsFeature.types.cjs";
17
17
  import { TableOptions_RowPagination } from "../features/row-pagination/rowPaginationFeature.types.cjs";
18
18
  import { TableOptions_Table } from "../core/table/coreTablesFeature.types.cjs";
19
- import { ExtractFeatureTypes, TableFeatures } from "./TableFeatures.cjs";
19
+ import { ExtractFeatureMapTypes, 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.
@@ -36,6 +35,22 @@ type DebugOptions<TFeatures extends TableFeatures> = {
36
35
  debugRows?: boolean;
37
36
  debugTable?: boolean;
38
37
  } & DebugKeysFor<CoreFeatures & TFeatures>;
38
+ interface TableOptions_FeatureMap<TFeatures extends TableFeatures, 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_FeatureMap_All<TFeatures extends TableFeatures, TData extends RowData> = UnionToIntersection<TableOptions_FeatureMap<TFeatures, TData>[keyof TableOptions_FeatureMap<TFeatures, TData>]>;
39
54
  /**
40
55
  * Complete table options for a specific feature set.
41
56
  *
@@ -43,12 +58,12 @@ type DebugOptions<TFeatures extends TableFeatures> = {
43
58
  * `TFeatures`, then custom feature/plugin options and debug options are mixed
44
59
  * in.
45
60
  */
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>;
61
+ type TableOptions<TFeatures extends TableFeatures, TData extends RowData> = TableOptions_Core<TFeatures, TData> & ExtractFeatureMapTypes<TFeatures, TableOptions_FeatureMap<TFeatures, TData>> & DebugOptions<TFeatures>;
47
62
  /**
48
63
  * Internal broad option shape used where feature code may need to read options
49
64
  * from features that are not present in the current generic feature set.
50
65
  */
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>;
66
+ type TableOptions_All<TFeatures extends TableFeatures, TData extends RowData> = TableOptions_Core<TFeatures, TData> & Partial<TableOptions_FeatureMap_All<TFeatures, TData>>;
52
67
  //#endregion
53
- export { DebugOptions, TableOptions, TableOptions_All, TableOptions_Core, TableOptions_Plugins };
68
+ export { DebugOptions, TableOptions, TableOptions_All, TableOptions_Core, TableOptions_FeatureMap, TableOptions_FeatureMap_All };
54
69
  //# sourceMappingURL=TableOptions.d.cts.map