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

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 (432) 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 +1 -1
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +1 -1
  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 +1 -1
  22. package/dist/core/columns/coreColumnsFeature.types.d.ts +1 -1
  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 +1 -1
  42. package/dist/core/headers/coreHeadersFeature.types.d.ts +1 -1
  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 +3 -13
  54. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +3 -13
  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.map +1 -1
  62. package/dist/core/row-models/createCoreRowModel.d.cts +1 -1
  63. package/dist/core/row-models/createCoreRowModel.d.ts +1 -1
  64. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  65. package/dist/core/rows/constructRow.d.cts +1 -1
  66. package/dist/core/rows/constructRow.d.ts +1 -1
  67. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  68. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  69. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  70. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  71. package/dist/core/rows/coreRowsFeature.js +28 -36
  72. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  73. package/dist/core/rows/coreRowsFeature.types.d.cts +1 -1
  74. package/dist/core/rows/coreRowsFeature.types.d.ts +1 -1
  75. package/dist/core/rows/coreRowsFeature.utils.d.cts +1 -1
  76. package/dist/core/rows/coreRowsFeature.utils.d.ts +1 -1
  77. package/dist/core/table/constructTable.cjs +21 -6
  78. package/dist/core/table/constructTable.cjs.map +1 -1
  79. package/dist/core/table/constructTable.d.cts +1 -1
  80. package/dist/core/table/constructTable.d.ts +1 -1
  81. package/dist/core/table/constructTable.js +21 -6
  82. package/dist/core/table/constructTable.js.map +1 -1
  83. package/dist/core/table/coreTablesFeature.cjs +7 -16
  84. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  85. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  86. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  87. package/dist/core/table/coreTablesFeature.js +8 -16
  88. package/dist/core/table/coreTablesFeature.js.map +1 -1
  89. package/dist/core/table/coreTablesFeature.types.d.cts +23 -11
  90. package/dist/core/table/coreTablesFeature.types.d.ts +23 -11
  91. package/dist/core/table/coreTablesFeature.utils.cjs +1 -2
  92. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  93. package/dist/core/table/coreTablesFeature.utils.d.cts +1 -1
  94. package/dist/core/table/coreTablesFeature.utils.d.ts +1 -1
  95. package/dist/core/table/coreTablesFeature.utils.js +1 -2
  96. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  97. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  98. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  99. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  100. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  101. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  102. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  103. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +4 -25
  104. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +4 -25
  105. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  106. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  107. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +1 -1
  108. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +1 -1
  109. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  110. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  111. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  112. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  113. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  114. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  115. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  116. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  117. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  118. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  119. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  120. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  121. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  122. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  123. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  124. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  125. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  126. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  127. package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
  128. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  129. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +31 -17
  130. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +31 -17
  131. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  132. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  133. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +2 -2
  134. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +2 -2
  135. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  136. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  137. package/dist/features/column-filtering/createFilteredRowModel.cjs +4 -2
  138. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  139. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  140. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  141. package/dist/features/column-filtering/createFilteredRowModel.js +4 -2
  142. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  143. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  144. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  145. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  146. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  147. package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
  148. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  149. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +17 -13
  150. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +17 -13
  151. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +1 -1
  152. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +1 -1
  153. package/dist/features/column-grouping/createGroupedRowModel.cjs +5 -2
  154. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  155. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  156. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  157. package/dist/features/column-grouping/createGroupedRowModel.js +5 -2
  158. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  159. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  160. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  161. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  162. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  163. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  164. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  165. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +1 -1
  166. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +1 -1
  167. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  168. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  169. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  170. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  171. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  172. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  173. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  174. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +13 -13
  175. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +13 -13
  176. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  177. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  178. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  179. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  180. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  181. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  182. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  183. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +1 -1
  184. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +1 -1
  185. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  186. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  187. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  188. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  189. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  190. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  191. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +4 -4
  192. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +4 -4
  193. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  194. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  195. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  196. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  197. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  198. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  199. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +1 -1
  200. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +1 -1
  201. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  202. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  203. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  204. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  205. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  206. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  207. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +1 -1
  208. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +1 -1
  209. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  210. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +7 -5
  211. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +7 -5
  212. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  213. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  214. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  215. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  216. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  217. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  218. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  219. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  220. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  221. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  222. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  223. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +1 -10
  224. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +1 -10
  225. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +1 -1
  226. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +1 -1
  227. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  228. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  229. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  230. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  231. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  232. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  233. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  234. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  235. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  236. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  237. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +1 -10
  238. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +1 -10
  239. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +1 -1
  240. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +1 -1
  241. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  242. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  243. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  244. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  245. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  246. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  247. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +1 -1
  248. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +1 -1
  249. package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
  250. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  251. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  252. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  253. package/dist/features/row-selection/rowSelectionFeature.js +66 -77
  254. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  255. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +10 -6
  256. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  257. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +1 -1
  258. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +1 -1
  259. package/dist/features/row-selection/rowSelectionFeature.utils.js +10 -6
  260. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  261. package/dist/features/row-sorting/createSortedRowModel.cjs +4 -2
  262. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  263. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  264. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  265. package/dist/features/row-sorting/createSortedRowModel.js +4 -2
  266. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  267. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  268. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  269. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  270. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  271. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  272. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  273. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +16 -13
  274. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +16 -13
  275. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  276. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  277. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +1 -1
  278. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +1 -1
  279. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  280. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  281. package/dist/fns/aggregationFns.cjs +18 -18
  282. package/dist/fns/aggregationFns.cjs.map +1 -1
  283. package/dist/fns/aggregationFns.d.cts +21 -19
  284. package/dist/fns/aggregationFns.d.ts +21 -19
  285. package/dist/fns/aggregationFns.js +18 -18
  286. package/dist/fns/aggregationFns.js.map +1 -1
  287. package/dist/fns/filterFns.cjs +51 -65
  288. package/dist/fns/filterFns.cjs.map +1 -1
  289. package/dist/fns/filterFns.d.cts +82 -28
  290. package/dist/fns/filterFns.d.ts +82 -28
  291. package/dist/fns/filterFns.js +51 -65
  292. package/dist/fns/filterFns.js.map +1 -1
  293. package/dist/fns/sortFns.cjs +18 -6
  294. package/dist/fns/sortFns.cjs.map +1 -1
  295. package/dist/fns/sortFns.d.cts +15 -13
  296. package/dist/fns/sortFns.d.ts +15 -13
  297. package/dist/fns/sortFns.js +18 -6
  298. package/dist/fns/sortFns.js.map +1 -1
  299. package/dist/helpers/metaHelper.cjs +30 -0
  300. package/dist/helpers/metaHelper.cjs.map +1 -0
  301. package/dist/helpers/metaHelper.d.cts +26 -0
  302. package/dist/helpers/metaHelper.d.ts +26 -0
  303. package/dist/helpers/metaHelper.js +29 -0
  304. package/dist/helpers/metaHelper.js.map +1 -0
  305. package/dist/helpers/tableFeatures.cjs +31 -3
  306. package/dist/helpers/tableFeatures.cjs.map +1 -1
  307. package/dist/helpers/tableFeatures.d.cts +33 -5
  308. package/dist/helpers/tableFeatures.d.ts +33 -5
  309. package/dist/helpers/tableFeatures.js +31 -3
  310. package/dist/helpers/tableFeatures.js.map +1 -1
  311. package/dist/index.cjs +2 -20
  312. package/dist/index.d.cts +44 -43
  313. package/dist/index.d.ts +44 -43
  314. package/dist/index.js +22 -21
  315. package/dist/store-reactivity-bindings.cjs +1 -1
  316. package/dist/store-reactivity-bindings.cjs.map +1 -1
  317. package/dist/store-reactivity-bindings.d.cts +1 -1
  318. package/dist/store-reactivity-bindings.d.ts +1 -1
  319. package/dist/store-reactivity-bindings.js +1 -1
  320. package/dist/store-reactivity-bindings.js.map +1 -1
  321. package/dist/types/Cell.d.cts +7 -9
  322. package/dist/types/Cell.d.ts +7 -9
  323. package/dist/types/Column.d.cts +18 -11
  324. package/dist/types/Column.d.ts +18 -11
  325. package/dist/types/ColumnDef.d.cts +29 -10
  326. package/dist/types/ColumnDef.d.ts +29 -10
  327. package/dist/types/Header.d.cts +9 -10
  328. package/dist/types/Header.d.ts +9 -10
  329. package/dist/types/HeaderGroup.d.cts +3 -8
  330. package/dist/types/HeaderGroup.d.ts +3 -8
  331. package/dist/types/Row.d.cts +14 -10
  332. package/dist/types/Row.d.ts +14 -10
  333. package/dist/types/RowModel.d.cts +19 -19
  334. package/dist/types/RowModel.d.ts +19 -19
  335. package/dist/types/RowModelFns.d.cts +9 -9
  336. package/dist/types/RowModelFns.d.ts +9 -9
  337. package/dist/types/Table.d.cts +25 -15
  338. package/dist/types/Table.d.ts +25 -15
  339. package/dist/types/TableFeatures.d.cts +178 -41
  340. package/dist/types/TableFeatures.d.ts +178 -41
  341. package/dist/types/TableOptions.d.cts +24 -9
  342. package/dist/types/TableOptions.d.ts +24 -9
  343. package/dist/types/TableState.d.cts +22 -13
  344. package/dist/types/TableState.d.ts +22 -13
  345. package/dist/utils.cjs.map +1 -1
  346. package/dist/utils.d.cts +2 -2
  347. package/dist/utils.d.ts +2 -2
  348. package/dist/utils.js.map +1 -1
  349. package/package.json +1 -1
  350. package/skills/column-definitions/SKILL.md +3 -6
  351. package/skills/column-layout/SKILL.md +0 -2
  352. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  353. package/skills/filtering/SKILL.md +60 -42
  354. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  355. package/skills/grouping/SKILL.md +49 -54
  356. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  357. package/skills/pagination/SKILL.md +22 -20
  358. package/skills/row-expanding/SKILL.md +33 -25
  359. package/skills/row-pinning/SKILL.md +11 -7
  360. package/skills/row-selection/SKILL.md +0 -3
  361. package/skills/setup/SKILL.md +55 -65
  362. package/skills/sorting/SKILL.md +21 -21
  363. package/skills/state-management/SKILL.md +40 -25
  364. package/src/core/cells/coreCellsFeature.ts +17 -39
  365. package/src/core/columns/coreColumnsFeature.ts +56 -83
  366. package/src/core/coreFeatures.ts +1 -1
  367. package/src/core/headers/buildHeaderGroups.ts +1 -1
  368. package/src/core/headers/coreHeadersFeature.ts +42 -64
  369. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  370. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  371. package/src/core/row-models/coreRowModelsFeature.types.ts +1 -18
  372. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  373. package/src/core/row-models/createCoreRowModel.ts +1 -1
  374. package/src/core/rows/coreRowsFeature.ts +45 -72
  375. package/src/core/table/constructTable.ts +49 -12
  376. package/src/core/table/coreTablesFeature.ts +13 -35
  377. package/src/core/table/coreTablesFeature.types.ts +33 -10
  378. package/src/core/table/coreTablesFeature.utils.ts +2 -3
  379. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  380. package/src/features/column-faceting/columnFacetingFeature.types.ts +3 -36
  381. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  382. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  383. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  384. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  385. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  386. package/src/features/column-filtering/columnFilteringFeature.types.ts +37 -21
  387. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  388. package/src/features/column-filtering/createFilteredRowModel.ts +5 -7
  389. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  390. package/src/features/column-grouping/columnGroupingFeature.types.ts +20 -19
  391. package/src/features/column-grouping/createGroupedRowModel.ts +7 -11
  392. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  393. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  394. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  395. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  396. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  397. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  398. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  399. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  400. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  401. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  402. package/src/features/row-expanding/rowExpandingFeature.types.ts +0 -14
  403. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  404. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  405. package/src/features/row-pagination/rowPaginationFeature.types.ts +0 -14
  406. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  407. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  408. package/src/features/row-selection/rowSelectionFeature.utils.ts +12 -7
  409. package/src/features/row-sorting/createSortedRowModel.ts +6 -6
  410. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  411. package/src/features/row-sorting/rowSortingFeature.types.ts +19 -18
  412. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  413. package/src/fns/aggregationFns.ts +26 -42
  414. package/src/fns/filterFns.ts +231 -264
  415. package/src/fns/sortFns.ts +51 -29
  416. package/src/helpers/metaHelper.ts +24 -0
  417. package/src/helpers/tableFeatures.ts +36 -5
  418. package/src/index.ts +1 -0
  419. package/src/store-reactivity-bindings.ts +1 -1
  420. package/src/types/Cell.ts +8 -28
  421. package/src/types/Column.ts +18 -53
  422. package/src/types/ColumnDef.ts +44 -45
  423. package/src/types/Header.ts +8 -30
  424. package/src/types/HeaderGroup.ts +2 -13
  425. package/src/types/Row.ts +15 -36
  426. package/src/types/RowModel.ts +21 -111
  427. package/src/types/RowModelFns.ts +11 -30
  428. package/src/types/Table.ts +24 -66
  429. package/src/types/TableFeatures.ts +253 -108
  430. package/src/types/TableOptions.ts +40 -72
  431. package/src/types/TableState.ts +20 -73
  432. package/src/utils.ts +5 -4
@@ -1,8 +1,8 @@
1
1
  import { RowData } from "../../types/type-utils.cjs";
2
2
  import { TableState } from "../../types/TableState.cjs";
3
3
  import { TableOptions } from "../../types/TableOptions.cjs";
4
- import { TableFeatures } from "../../types/TableFeatures.cjs";
5
4
  import { Table } from "../../types/Table.cjs";
5
+ import { TableFeatures } from "../../types/TableFeatures.cjs";
6
6
 
7
7
  //#region src/core/table/constructTable.d.ts
8
8
  /**
@@ -1,8 +1,8 @@
1
1
  import { RowData } from "../../types/type-utils.js";
2
2
  import { TableState } from "../../types/TableState.js";
3
3
  import { TableOptions } from "../../types/TableOptions.js";
4
- import { TableFeatures } from "../../types/TableFeatures.js";
5
4
  import { Table } from "../../types/Table.js";
5
+ import { TableFeatures } from "../../types/TableFeatures.js";
6
6
 
7
7
  //#region src/core/table/constructTable.d.ts
8
8
  /**
@@ -22,15 +22,20 @@ function getInitialTableState(features, initialState = {}) {
22
22
  * This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.
23
23
  */
24
24
  function constructTable(tableOptions) {
25
- const _reactivity = tableOptions.features.coreReativityFeature;
25
+ const _reactivity = tableOptions.features.coreReactivityFeature;
26
+ const { aggregationFns, columnMeta: _columnMeta, coreRowModel, expandedRowModel, facetedMinMaxValues, facetedRowModel, facetedUniqueValues, filterFns, filterMeta: _filterMeta, filteredRowModel, groupedRowModel, paginatedRowModel, sortFns, sortedRowModel, tableMeta: _tableMeta, ...features } = tableOptions.features;
26
27
  const table = {
27
28
  _reactivity,
28
29
  _features: {
29
30
  ...coreFeatures,
30
- ...tableOptions.features
31
+ ...features
31
32
  },
32
33
  _rowModels: {},
33
- _rowModelFns: {},
34
+ _rowModelFns: {
35
+ aggregationFns,
36
+ filterFns,
37
+ sortFns
38
+ },
34
39
  baseAtoms: {},
35
40
  atoms: {}
36
41
  };
@@ -78,8 +83,8 @@ function constructTable(tableOptions) {
78
83
  const key = stateKeys[i];
79
84
  table.baseAtoms[key] = _reactivity.createWritableAtom(table.initialState[key], { debugName: `table/baseAtoms/${key}` });
80
85
  table.atoms[key] = _reactivity.createReadonlyAtom(() => {
81
- var _table$options$atoms;
82
- const externalAtom = (_table$options$atoms = table.options.atoms) === null || _table$options$atoms === void 0 ? void 0 : _table$options$atoms[key];
86
+ const externalAtoms = table.options.atoms;
87
+ const externalAtom = externalAtoms === null || externalAtoms === void 0 ? void 0 : externalAtoms[key];
83
88
  if (externalAtom) return externalAtom.get();
84
89
  return table.baseAtoms[key].get();
85
90
  }, { debugName: `table/atoms/${key}` });
@@ -95,7 +100,17 @@ function constructTable(tableOptions) {
95
100
  }, { debugName: "table/store" }));
96
101
  if (process.env.NODE_ENV === "development" && (tableOptions.debugAll || tableOptions.debugTable)) {
97
102
  const features = Object.keys(table._features);
98
- const rowModels = Object.keys(table.options.rowModels || {});
103
+ const rowModels = Object.entries({
104
+ coreRowModel,
105
+ filteredRowModel,
106
+ groupedRowModel,
107
+ sortedRowModel,
108
+ expandedRowModel,
109
+ paginatedRowModel,
110
+ facetedRowModel,
111
+ facetedMinMaxValues,
112
+ facetedUniqueValues
113
+ }).filter(([, factory]) => factory).map(([key]) => key);
99
114
  const states = Object.keys(table.initialState);
100
115
  console.log(`Constructing Table Instance
101
116
 
@@ -1 +1 @@
1
- {"version":3,"file":"constructTable.js","names":[],"sources":["../../../src/core/table/constructTable.ts"],"sourcesContent":["import { coreFeatures } from '../coreFeatures'\nimport { cloneState } from '../../utils'\nimport { atomToStore } from '../reactivity/coreReactivityFeature.utils'\nimport { table_syncExternalStateToBaseAtoms } from './coreTablesFeature.utils'\nimport type { Atom } from '@tanstack/store'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { TableOptions } from '../../types/TableOptions'\nimport type { TableState } from '../../types/TableState'\n\n/**\n * Builds the initial table state from registered features and user initial state.\n *\n * Each feature contributes its default state before user-provided `initialState` values are merged in.\n */\nexport function getInitialTableState<TFeatures extends TableFeatures>(\n features: TFeatures,\n initialState: Partial<TableState<TFeatures>> | undefined = {},\n): TableState<TFeatures> {\n Object.values(features).forEach((feature) => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n return cloneState(initialState) as TableState<TFeatures>\n}\n\n/**\n * Constructs a table instance from normalized table internals.\n *\n * This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n */\nexport function constructTable<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(tableOptions: TableOptions<TFeatures, TData>): Table<TFeatures, TData> {\n const _reactivity = tableOptions.features.coreReativityFeature!\n\n const table = {\n _reactivity,\n _features: { ...coreFeatures, ...tableOptions.features },\n _rowModels: {},\n _rowModelFns: {},\n baseAtoms: {},\n atoms: {},\n } as Table_Internal<TFeatures, TData>\n\n const featuresList: Array<TableFeature<{}>> = Object.values(table._features)\n\n const defaultOptions = featuresList.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultTableOptions?.(table))\n }, {}) as TableOptions<TFeatures, TData>\n\n const mergedOptions = { ...defaultOptions, ...tableOptions }\n\n if (_reactivity.wrapExternalAtoms && mergedOptions.atoms) {\n for (const [atomKey, _atom] of Object.entries(mergedOptions.atoms)) {\n const atom = _atom as Atom<any>\n const wrappedAtom = _reactivity.createWritableAtom(atom.get(), {\n debugName: `externalAtom/${atomKey}`,\n })\n ;(mergedOptions.atoms as any)[atomKey] = wrappedAtom\n // Two-way syncing between the original atom and the wrapped one.\n let syncExternal = false\n const syncAtomToWrappedSub = atom.subscribe((value) => {\n if (syncExternal) return\n wrappedAtom.set(value)\n })\n const syncWrappedToAtomSub = wrappedAtom.subscribe((value) => {\n syncExternal = true\n atom.set(value)\n syncExternal = false\n })\n _reactivity.addSubscription(syncAtomToWrappedSub)\n _reactivity.addSubscription(syncWrappedToAtomSub)\n }\n }\n\n if (_reactivity.createOptionsStore) {\n // @ts-ignore - direct set\n table.optionsStore = _reactivity.createWritableAtom<\n TableOptions<TFeatures, TData>\n >(mergedOptions, { debugName: 'table/optionsStore' })\n Object.defineProperty(table, 'options', {\n configurable: true,\n enumerable: true,\n get() {\n return table.optionsStore!.get()\n },\n set(value) {\n table.optionsStore!.set(() => value) // or your real update shape\n },\n })\n } else {\n table.options = mergedOptions\n }\n\n table.initialState = getInitialTableState(\n table._features,\n table.options.initialState,\n )\n\n const stateKeys = Object.keys(table.initialState) as Array<\n string & keyof TableState<TFeatures>\n >\n\n for (let i = 0; i < stateKeys.length; i++) {\n const key = stateKeys[i]!\n table.baseAtoms[key] = _reactivity.createWritableAtom(\n table.initialState[key],\n {\n debugName: `table/baseAtoms/${key}`,\n },\n ) as any\n\n // create readonly derived atom: on each get(), read either external atom or base atom\n ;(table.atoms as any)[key] = _reactivity.createReadonlyAtom(\n () => {\n const externalAtom = table.options.atoms?.[key]\n if (externalAtom) {\n return externalAtom.get()\n }\n return table.baseAtoms[key].get()\n },\n { debugName: `table/atoms/${key}` },\n )\n }\n\n table_syncExternalStateToBaseAtoms(table)\n\n table.store = atomToStore(\n _reactivity.createReadonlyAtom(\n () => {\n const snapshot = {} as TableState<TFeatures>\n for (let i = 0; i < stateKeys.length; i++) {\n const key = stateKeys[i]!\n snapshot[key] = table.atoms[key].get()\n }\n return snapshot\n },\n { debugName: 'table/store' },\n ),\n )\n\n if (\n process.env.NODE_ENV === 'development' &&\n (tableOptions.debugAll || tableOptions.debugTable)\n ) {\n const features = Object.keys(table._features)\n const rowModels = Object.keys(table.options.rowModels || {})\n const states = Object.keys(table.initialState)\n\n console.log(\n `Constructing Table Instance\n\n Features: ${features.join('\\n ')}\n\n Row Models: ${rowModels.length ? rowModels.join('\\n ') : '(none)'}\n\n States: ${states.join('\\n ')}\\n`,\n { table },\n )\n }\n\n for (let i = 0; i < featuresList.length; i++) {\n featuresList[i]!.constructTableAPIs?.(table)\n }\n\n return table\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"constructTable.js","names":[],"sources":["../../../src/core/table/constructTable.ts"],"sourcesContent":["import { coreFeatures } from '../coreFeatures'\nimport { cloneState } from '../../utils'\nimport { atomToStore } from '../reactivity/coreReactivityFeature.utils'\nimport { table_syncExternalStateToBaseAtoms } from './coreTablesFeature.utils'\nimport type { Atom } from '@tanstack/store'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { TableOptions } from '../../types/TableOptions'\nimport type { TableState, TableState_All } from '../../types/TableState'\n\n/**\n * Builds the initial table state from registered features and user initial state.\n *\n * Each feature contributes its default state before user-provided `initialState` values are merged in.\n */\nexport function getInitialTableState<TFeatures extends TableFeatures>(\n features: TFeatures,\n initialState: Partial<TableState<TFeatures>> | undefined = {},\n): TableState<TFeatures> {\n Object.values(features).forEach((feature) => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n return cloneState(initialState) as TableState<TFeatures>\n}\n\n/**\n * Constructs a table instance from normalized table internals.\n *\n * This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n */\nexport function constructTable<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(tableOptions: TableOptions<TFeatures, TData>): Table<TFeatures, TData> {\n const _reactivity = tableOptions.features.coreReactivityFeature!\n\n // Strip the non-feature slots: type-only meta slots, row model factories,\n // and row model fn registries all live on the `features` option but are not\n // table features themselves.\n const {\n aggregationFns,\n columnMeta: _columnMeta,\n coreRowModel,\n expandedRowModel,\n facetedMinMaxValues,\n facetedRowModel,\n facetedUniqueValues,\n filterFns,\n filterMeta: _filterMeta,\n filteredRowModel,\n groupedRowModel,\n paginatedRowModel,\n sortFns,\n sortedRowModel,\n tableMeta: _tableMeta,\n ...features\n } = tableOptions.features\n\n const table = {\n _reactivity,\n _features: { ...coreFeatures, ...features },\n _rowModels: {},\n _rowModelFns: { aggregationFns, filterFns, sortFns },\n baseAtoms: {},\n atoms: {},\n } as unknown as Table_Internal<TFeatures, TData>\n\n const featuresList: Array<TableFeature> = Object.values(table._features)\n\n const defaultOptions = featuresList.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultTableOptions?.(table))\n }, {}) as TableOptions<TFeatures, TData>\n\n const mergedOptions = { ...defaultOptions, ...tableOptions }\n\n if (_reactivity.wrapExternalAtoms && mergedOptions.atoms) {\n for (const [atomKey, _atom] of Object.entries(mergedOptions.atoms)) {\n const atom = _atom as Atom<any>\n const wrappedAtom = _reactivity.createWritableAtom(atom.get(), {\n debugName: `externalAtom/${atomKey}`,\n })\n ;(mergedOptions.atoms as any)[atomKey] = wrappedAtom\n // Two-way syncing between the original atom and the wrapped one.\n let syncExternal = false\n const syncAtomToWrappedSub = atom.subscribe((value) => {\n if (syncExternal) return\n wrappedAtom.set(value)\n })\n const syncWrappedToAtomSub = wrappedAtom.subscribe((value) => {\n syncExternal = true\n atom.set(value)\n syncExternal = false\n })\n _reactivity.addSubscription(syncAtomToWrappedSub)\n _reactivity.addSubscription(syncWrappedToAtomSub)\n }\n }\n\n if (_reactivity.createOptionsStore) {\n // @ts-ignore - direct set\n table.optionsStore = _reactivity.createWritableAtom<\n TableOptions<TFeatures, TData>\n >(mergedOptions, { debugName: 'table/optionsStore' })\n Object.defineProperty(table, 'options', {\n configurable: true,\n enumerable: true,\n get() {\n return table.optionsStore!.get()\n },\n set(value) {\n table.optionsStore!.set(() => value) // or your real update shape\n },\n })\n } else {\n table.options = mergedOptions\n }\n\n table.initialState = getInitialTableState(\n table._features,\n table.options.initialState,\n )\n\n const stateKeys = Object.keys(table.initialState) as Array<\n string & keyof TableState_All\n >\n\n for (let i = 0; i < stateKeys.length; i++) {\n const key = stateKeys[i]!\n table.baseAtoms[key] = _reactivity.createWritableAtom(\n table.initialState[key],\n {\n debugName: `table/baseAtoms/${key}`,\n },\n ) as any\n\n // create readonly derived atom: on each get(), read either external atom or base atom\n ;(table.atoms as any)[key] = _reactivity.createReadonlyAtom(\n () => {\n const externalAtoms = table.options.atoms as\n | Partial<Record<keyof TableState_All, Atom<unknown>>>\n | undefined\n const externalAtom = externalAtoms?.[key]\n if (externalAtom) {\n return externalAtom.get()\n }\n return table.baseAtoms[key]!.get()\n },\n { debugName: `table/atoms/${key}` },\n )\n }\n\n table_syncExternalStateToBaseAtoms(table)\n\n table.store = atomToStore(\n _reactivity.createReadonlyAtom(\n () => {\n const snapshot = {} as TableState<TFeatures> & TableState_All\n for (let i = 0; i < stateKeys.length; i++) {\n const key = stateKeys[i]!\n ;(snapshot as Record<string, unknown>)[key] = table.atoms[key]!.get()\n }\n return snapshot\n },\n { debugName: 'table/store' },\n ),\n )\n\n if (\n process.env.NODE_ENV === 'development' &&\n (tableOptions.debugAll || tableOptions.debugTable)\n ) {\n const features = Object.keys(table._features)\n const rowModels = Object.entries({\n coreRowModel,\n filteredRowModel,\n groupedRowModel,\n sortedRowModel,\n expandedRowModel,\n paginatedRowModel,\n facetedRowModel,\n facetedMinMaxValues,\n facetedUniqueValues,\n })\n .filter(([, factory]) => factory)\n .map(([key]) => key)\n const states = Object.keys(table.initialState)\n\n console.log(\n `Constructing Table Instance\n\n Features: ${features.join('\\n ')}\n\n Row Models: ${rowModels.length ? rowModels.join('\\n ') : '(none)'}\n\n States: ${states.join('\\n ')}\\n`,\n { table },\n )\n }\n\n for (let i = 0; i < featuresList.length; i++) {\n featuresList[i]!.constructTableAPIs?.(table)\n }\n\n return table\n}\n"],"mappings":"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"}
@@ -3,24 +3,15 @@ const require_coreTablesFeature_utils = require('./coreTablesFeature.utils.cjs')
3
3
 
4
4
  //#region src/core/table/coreTablesFeature.ts
5
5
  /**
6
- * Creates the stock core tables feature.
7
- *
8
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
6
+ * Core feature that adds base table instance APIs such as reset and setOptions.
9
7
  */
10
- function constructCoreTablesFeature() {
11
- return { constructTableAPIs: (table) => {
12
- require_utils.assignTableAPIs("coreTablesFeature", table, {
13
- table_reset: { fn: () => require_coreTablesFeature_utils.table_reset(table) },
14
- table_setOptions: { fn: (updater) => require_coreTablesFeature_utils.table_setOptions(table, updater) }
15
- });
16
- } };
17
- }
18
- /**
19
- * The Core Tables feature provides the core table functionality for handling state and options.
20
- */
21
- const coreTablesFeature = constructCoreTablesFeature();
8
+ const coreTablesFeature = { constructTableAPIs: (table) => {
9
+ require_utils.assignTableAPIs("coreTablesFeature", table, {
10
+ table_reset: { fn: () => require_coreTablesFeature_utils.table_reset(table) },
11
+ table_setOptions: { fn: (updater) => require_coreTablesFeature_utils.table_setOptions(table, updater) }
12
+ });
13
+ } };
22
14
 
23
15
  //#endregion
24
- exports.constructCoreTablesFeature = constructCoreTablesFeature;
25
16
  exports.coreTablesFeature = coreTablesFeature;
26
17
  //# sourceMappingURL=coreTablesFeature.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"coreTablesFeature.cjs","names":["table_reset","table_setOptions"],"sources":["../../../src/core/table/coreTablesFeature.ts"],"sourcesContent":["import { assignTableAPIs } from '../../utils'\nimport { table_reset, table_setOptions } from './coreTablesFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type { TableOptions_Table, Table_Table } from './coreTablesFeature.types'\n\nexport interface CoreTablesFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Table: Table_Table<TFeatures, TData>\n // TableOptions: TableOptions_Table<TFeatures, TData>\n}\n\n/**\n * Creates the stock core tables feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructCoreTablesFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<CoreTablesFeatureConstructors<TFeatures, TData>> {\n return {\n constructTableAPIs: (table) => {\n assignTableAPIs('coreTablesFeature', table, {\n table_reset: {\n fn: () => table_reset(table),\n },\n table_setOptions: {\n fn: (updater) => table_setOptions(table, updater),\n },\n })\n },\n }\n}\n\n/**\n * The Core Tables feature provides the core table functionality for handling state and options.\n */\nexport const coreTablesFeature = constructCoreTablesFeature()\n"],"mappings":";;;;;;;;;AAmBA,SAAgB,6BAGmD;CACjE,OAAO,EACL,qBAAqB,UAAU;EAC7B,8BAAgB,qBAAqB,OAAO;GAC1C,aAAa,EACX,UAAUA,4CAAY,KAAK,EAC7B;GACA,kBAAkB,EAChB,KAAK,YAAYC,iDAAiB,OAAO,OAAO,EAClD;EACF,CAAC;CACH,EACF;AACF;;;;AAKA,MAAa,oBAAoB,2BAA2B"}
1
+ {"version":3,"file":"coreTablesFeature.cjs","names":["table_reset","table_setOptions"],"sources":["../../../src/core/table/coreTablesFeature.ts"],"sourcesContent":["import { assignTableAPIs } from '../../utils'\nimport { table_reset, table_setOptions } from './coreTablesFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Core feature that adds base table instance APIs such as reset and setOptions.\n */\nexport const coreTablesFeature: TableFeature = {\n constructTableAPIs: (table) => {\n assignTableAPIs('coreTablesFeature', table, {\n table_reset: {\n fn: () => table_reset(table),\n },\n table_setOptions: {\n fn: (updater) => table_setOptions(table, updater),\n },\n })\n },\n}\n"],"mappings":";;;;;;;AAOA,MAAa,oBAAkC,EAC7C,qBAAqB,UAAU;CAC7B,8BAAgB,qBAAqB,OAAO;EAC1C,aAAa,EACX,UAAUA,4CAAY,KAAK,EAC7B;EACA,kBAAkB,EAChB,KAAK,YAAYC,iDAAiB,OAAO,OAAO,EAClD;CACF,CAAC;AACH,EACF"}
@@ -1,18 +1,10 @@
1
- import { RowData } from "../../types/type-utils.cjs";
2
- import { TableFeature, TableFeatures } from "../../types/TableFeatures.cjs";
1
+ import { TableFeature } from "../../types/TableFeatures.cjs";
3
2
 
4
3
  //#region src/core/table/coreTablesFeature.d.ts
5
- interface CoreTablesFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {}
6
4
  /**
7
- * Creates the stock core tables feature.
8
- *
9
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
5
+ * Core feature that adds base table instance APIs such as reset and setOptions.
10
6
  */
11
- declare function constructCoreTablesFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<CoreTablesFeatureConstructors<TFeatures, TData>>;
12
- /**
13
- * The Core Tables feature provides the core table functionality for handling state and options.
14
- */
15
- declare const coreTablesFeature: TableFeature<CoreTablesFeatureConstructors<TableFeatures, RowData>>;
7
+ declare const coreTablesFeature: TableFeature;
16
8
  //#endregion
17
- export { CoreTablesFeatureConstructors, constructCoreTablesFeature, coreTablesFeature };
9
+ export { coreTablesFeature };
18
10
  //# sourceMappingURL=coreTablesFeature.d.cts.map
@@ -1,18 +1,10 @@
1
- import { RowData } from "../../types/type-utils.js";
2
- import { TableFeature, TableFeatures } from "../../types/TableFeatures.js";
1
+ import { TableFeature } from "../../types/TableFeatures.js";
3
2
 
4
3
  //#region src/core/table/coreTablesFeature.d.ts
5
- interface CoreTablesFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {}
6
4
  /**
7
- * Creates the stock core tables feature.
8
- *
9
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
5
+ * Core feature that adds base table instance APIs such as reset and setOptions.
10
6
  */
11
- declare function constructCoreTablesFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<CoreTablesFeatureConstructors<TFeatures, TData>>;
12
- /**
13
- * The Core Tables feature provides the core table functionality for handling state and options.
14
- */
15
- declare const coreTablesFeature: TableFeature<CoreTablesFeatureConstructors<TableFeatures, RowData>>;
7
+ declare const coreTablesFeature: TableFeature;
16
8
  //#endregion
17
- export { CoreTablesFeatureConstructors, constructCoreTablesFeature, coreTablesFeature };
9
+ export { coreTablesFeature };
18
10
  //# sourceMappingURL=coreTablesFeature.d.ts.map
@@ -3,23 +3,15 @@ import { table_reset, table_setOptions } from "./coreTablesFeature.utils.js";
3
3
 
4
4
  //#region src/core/table/coreTablesFeature.ts
5
5
  /**
6
- * Creates the stock core tables feature.
7
- *
8
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
6
+ * Core feature that adds base table instance APIs such as reset and setOptions.
9
7
  */
10
- function constructCoreTablesFeature() {
11
- return { constructTableAPIs: (table) => {
12
- assignTableAPIs("coreTablesFeature", table, {
13
- table_reset: { fn: () => table_reset(table) },
14
- table_setOptions: { fn: (updater) => table_setOptions(table, updater) }
15
- });
16
- } };
17
- }
18
- /**
19
- * The Core Tables feature provides the core table functionality for handling state and options.
20
- */
21
- const coreTablesFeature = constructCoreTablesFeature();
8
+ const coreTablesFeature = { constructTableAPIs: (table) => {
9
+ assignTableAPIs("coreTablesFeature", table, {
10
+ table_reset: { fn: () => table_reset(table) },
11
+ table_setOptions: { fn: (updater) => table_setOptions(table, updater) }
12
+ });
13
+ } };
22
14
 
23
15
  //#endregion
24
- export { constructCoreTablesFeature, coreTablesFeature };
16
+ export { coreTablesFeature };
25
17
  //# sourceMappingURL=coreTablesFeature.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coreTablesFeature.js","names":[],"sources":["../../../src/core/table/coreTablesFeature.ts"],"sourcesContent":["import { assignTableAPIs } from '../../utils'\nimport { table_reset, table_setOptions } from './coreTablesFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type { TableOptions_Table, Table_Table } from './coreTablesFeature.types'\n\nexport interface CoreTablesFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Table: Table_Table<TFeatures, TData>\n // TableOptions: TableOptions_Table<TFeatures, TData>\n}\n\n/**\n * Creates the stock core tables feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructCoreTablesFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<CoreTablesFeatureConstructors<TFeatures, TData>> {\n return {\n constructTableAPIs: (table) => {\n assignTableAPIs('coreTablesFeature', table, {\n table_reset: {\n fn: () => table_reset(table),\n },\n table_setOptions: {\n fn: (updater) => table_setOptions(table, updater),\n },\n })\n },\n }\n}\n\n/**\n * The Core Tables feature provides the core table functionality for handling state and options.\n */\nexport const coreTablesFeature = constructCoreTablesFeature()\n"],"mappings":";;;;;;;;;AAmBA,SAAgB,6BAGmD;CACjE,OAAO,EACL,qBAAqB,UAAU;EAC7B,gBAAgB,qBAAqB,OAAO;GAC1C,aAAa,EACX,UAAU,YAAY,KAAK,EAC7B;GACA,kBAAkB,EAChB,KAAK,YAAY,iBAAiB,OAAO,OAAO,EAClD;EACF,CAAC;CACH,EACF;AACF;;;;AAKA,MAAa,oBAAoB,2BAA2B"}
1
+ {"version":3,"file":"coreTablesFeature.js","names":[],"sources":["../../../src/core/table/coreTablesFeature.ts"],"sourcesContent":["import { assignTableAPIs } from '../../utils'\nimport { table_reset, table_setOptions } from './coreTablesFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Core feature that adds base table instance APIs such as reset and setOptions.\n */\nexport const coreTablesFeature: TableFeature = {\n constructTableAPIs: (table) => {\n assignTableAPIs('coreTablesFeature', table, {\n table_reset: {\n fn: () => table_reset(table),\n },\n table_setOptions: {\n fn: (updater) => table_setOptions(table, updater),\n },\n })\n },\n}\n"],"mappings":";;;;;;;AAOA,MAAa,oBAAkC,EAC7C,qBAAqB,UAAU;CAC7B,gBAAgB,qBAAqB,OAAO;EAC1C,aAAa,EACX,UAAU,YAAY,KAAK,EAC7B;EACA,kBAAkB,EAChB,KAAK,YAAY,iBAAiB,OAAO,OAAO,EAClD;CACF,CAAC;AACH,EACF"}
@@ -1,15 +1,26 @@
1
1
  import { RowData, Updater } from "../../types/type-utils.cjs";
2
2
  import { TableReactivityBindings } from "../reactivity/coreReactivityFeature.types.cjs";
3
3
  import { CoreFeatures } from "../coreFeatures.cjs";
4
+ import { CachedRowModels } from "../../types/RowModel.cjs";
4
5
  import { RowModelFns } from "../../types/RowModelFns.cjs";
5
- import { CachedRowModels, CreateRowModels_All } from "../../types/RowModel.cjs";
6
6
  import { TableState, TableState_All } from "../../types/TableState.cjs";
7
7
  import { TableOptions } from "../../types/TableOptions.cjs";
8
- import { TableFeatures } from "../../types/TableFeatures.cjs";
8
+ import { IsAny, TableFeatures, ValidateFeatureSlots } from "../../types/TableFeatures.cjs";
9
9
  import { Atom, ReadonlyAtom, ReadonlyStore } from "@tanstack/store";
10
10
 
11
11
  //#region src/core/table/coreTablesFeature.types.d.ts
12
12
  interface TableMeta<TFeatures extends TableFeatures, TData extends RowData> {}
13
+ /**
14
+ * Resolves the type of `options.meta` for a feature set.
15
+ *
16
+ * When the features object declares a `tableMeta` type-only slot
17
+ * (`tableFeatures({ ..., tableMeta: {} as MyTableMeta })`), that type wins.
18
+ * Otherwise this falls back to the global declaration-merged `TableMeta`
19
+ * interface.
20
+ */
21
+ type ExtractTableMeta<TFeatures extends TableFeatures, TData extends RowData> = IsAny<TFeatures> extends true ? TableMeta<TFeatures, TData> : TFeatures extends {
22
+ tableMeta: infer TMeta extends object;
23
+ } ? TMeta : TableMeta<TFeatures, TData>;
13
24
  /**
14
25
  * A map of writable atoms, one per `TableState` slice. These are the internal
15
26
  * writable atoms that the library always writes to via `makeStateUpdater`.
@@ -47,14 +58,12 @@ interface TableOptions_Table<TFeatures extends TableFeatures, TData extends RowD
47
58
  * The feature modules registered on this table instance.
48
59
  *
49
60
  * Feature registration controls which state slices, options, and prototype
50
- * APIs are available.
61
+ * APIs are available. This object also carries the table's row model
62
+ * factories (`sortedRowModel`, `filteredRowModel`, etc.), row model function
63
+ * registries (`sortFns`, `filterFns`, `aggregationFns`), and type-only meta
64
+ * slots (`tableMeta`, `columnMeta`).
51
65
  */
52
- readonly features: TFeatures;
53
- /**
54
- * Row model factories used by features such as filtering, grouping, sorting,
55
- * expansion, and pagination.
56
- */
57
- readonly rowModels?: CreateRowModels_All<TFeatures, TData>;
66
+ readonly features: TFeatures & ValidateFeatureSlots<TFeatures>;
58
67
  /**
59
68
  * Optionally, provide your own external writable atoms for individual state slices.
60
69
  * When an atom is provided for a given slice, it takes precedence over `options.state[key]`
@@ -91,8 +100,11 @@ interface TableOptions_Table<TFeatures extends TableFeatures, TData extends RowD
91
100
  readonly mergeOptions?: (defaultOptions: TableOptions<TFeatures, TData>, options: Partial<TableOptions<TFeatures, TData>>) => TableOptions<TFeatures, TData>;
92
101
  /**
93
102
  * You can pass any object to `options.meta` and access it anywhere the `table` is available via `table.options.meta`.
103
+ *
104
+ * Declare its type per-table via the `tableMeta` type-only slot on the
105
+ * `features` option, or globally via declaration merging on `TableMeta`.
94
106
  */
95
- readonly meta?: TableMeta<TFeatures, TData>;
107
+ readonly meta?: ExtractTableMeta<TFeatures, TData>;
96
108
  /**
97
109
  * Optionally provide externally managed values for individual state slices.
98
110
  *
@@ -182,5 +194,5 @@ interface Table_Table<TFeatures extends TableFeatures, TData extends RowData> ex
182
194
  setOptions: (newOptions: Updater<TableOptions<TFeatures, TData>>) => void;
183
195
  }
184
196
  //#endregion
185
- export { Atoms, Atoms_All, BaseAtoms, BaseAtoms_All, ExternalAtoms, ExternalAtoms_All, TableMeta, TableOptions_Table, Table_CoreProperties, Table_Table };
197
+ export { Atoms, Atoms_All, BaseAtoms, BaseAtoms_All, ExternalAtoms, ExternalAtoms_All, ExtractTableMeta, TableMeta, TableOptions_Table, Table_CoreProperties, Table_Table };
186
198
  //# sourceMappingURL=coreTablesFeature.types.d.cts.map
@@ -1,15 +1,26 @@
1
1
  import { RowData, Updater } from "../../types/type-utils.js";
2
2
  import { TableReactivityBindings } from "../reactivity/coreReactivityFeature.types.js";
3
3
  import { CoreFeatures } from "../coreFeatures.js";
4
+ import { CachedRowModels } from "../../types/RowModel.js";
4
5
  import { RowModelFns } from "../../types/RowModelFns.js";
5
- import { CachedRowModels, CreateRowModels_All } from "../../types/RowModel.js";
6
6
  import { TableState, TableState_All } from "../../types/TableState.js";
7
7
  import { TableOptions } from "../../types/TableOptions.js";
8
- import { TableFeatures } from "../../types/TableFeatures.js";
8
+ import { IsAny, TableFeatures, ValidateFeatureSlots } from "../../types/TableFeatures.js";
9
9
  import { Atom, ReadonlyAtom, ReadonlyStore } from "@tanstack/store";
10
10
 
11
11
  //#region src/core/table/coreTablesFeature.types.d.ts
12
12
  interface TableMeta<TFeatures extends TableFeatures, TData extends RowData> {}
13
+ /**
14
+ * Resolves the type of `options.meta` for a feature set.
15
+ *
16
+ * When the features object declares a `tableMeta` type-only slot
17
+ * (`tableFeatures({ ..., tableMeta: {} as MyTableMeta })`), that type wins.
18
+ * Otherwise this falls back to the global declaration-merged `TableMeta`
19
+ * interface.
20
+ */
21
+ type ExtractTableMeta<TFeatures extends TableFeatures, TData extends RowData> = IsAny<TFeatures> extends true ? TableMeta<TFeatures, TData> : TFeatures extends {
22
+ tableMeta: infer TMeta extends object;
23
+ } ? TMeta : TableMeta<TFeatures, TData>;
13
24
  /**
14
25
  * A map of writable atoms, one per `TableState` slice. These are the internal
15
26
  * writable atoms that the library always writes to via `makeStateUpdater`.
@@ -47,14 +58,12 @@ interface TableOptions_Table<TFeatures extends TableFeatures, TData extends RowD
47
58
  * The feature modules registered on this table instance.
48
59
  *
49
60
  * Feature registration controls which state slices, options, and prototype
50
- * APIs are available.
61
+ * APIs are available. This object also carries the table's row model
62
+ * factories (`sortedRowModel`, `filteredRowModel`, etc.), row model function
63
+ * registries (`sortFns`, `filterFns`, `aggregationFns`), and type-only meta
64
+ * slots (`tableMeta`, `columnMeta`).
51
65
  */
52
- readonly features: TFeatures;
53
- /**
54
- * Row model factories used by features such as filtering, grouping, sorting,
55
- * expansion, and pagination.
56
- */
57
- readonly rowModels?: CreateRowModels_All<TFeatures, TData>;
66
+ readonly features: TFeatures & ValidateFeatureSlots<TFeatures>;
58
67
  /**
59
68
  * Optionally, provide your own external writable atoms for individual state slices.
60
69
  * When an atom is provided for a given slice, it takes precedence over `options.state[key]`
@@ -91,8 +100,11 @@ interface TableOptions_Table<TFeatures extends TableFeatures, TData extends RowD
91
100
  readonly mergeOptions?: (defaultOptions: TableOptions<TFeatures, TData>, options: Partial<TableOptions<TFeatures, TData>>) => TableOptions<TFeatures, TData>;
92
101
  /**
93
102
  * You can pass any object to `options.meta` and access it anywhere the `table` is available via `table.options.meta`.
103
+ *
104
+ * Declare its type per-table via the `tableMeta` type-only slot on the
105
+ * `features` option, or globally via declaration merging on `TableMeta`.
94
106
  */
95
- readonly meta?: TableMeta<TFeatures, TData>;
107
+ readonly meta?: ExtractTableMeta<TFeatures, TData>;
96
108
  /**
97
109
  * Optionally provide externally managed values for individual state slices.
98
110
  *
@@ -182,5 +194,5 @@ interface Table_Table<TFeatures extends TableFeatures, TData extends RowData> ex
182
194
  setOptions: (newOptions: Updater<TableOptions<TFeatures, TData>>) => void;
183
195
  }
184
196
  //#endregion
185
- export { Atoms, Atoms_All, BaseAtoms, BaseAtoms_All, ExternalAtoms, ExternalAtoms_All, TableMeta, TableOptions_Table, Table_CoreProperties, Table_Table };
197
+ export { Atoms, Atoms_All, BaseAtoms, BaseAtoms_All, ExternalAtoms, ExternalAtoms_All, ExtractTableMeta, TableMeta, TableOptions_Table, Table_CoreProperties, Table_Table };
186
198
  //# sourceMappingURL=coreTablesFeature.types.d.ts.map
@@ -76,9 +76,8 @@ function table_mergeOptions(table, newOptions) {
76
76
  */
77
77
  function table_setOptions(table, updater) {
78
78
  const newOptions = require_utils.functionalUpdate(updater, table.options);
79
- const { rowModels, features, atoms, initialState } = table.options;
79
+ const { features, atoms, initialState } = table.options;
80
80
  const mergedOptions = Object.assign(table_mergeOptions(table, newOptions), {
81
- rowModels,
82
81
  features,
83
82
  atoms,
84
83
  initialState
@@ -1 +1 @@
1
- {"version":3,"file":"coreTablesFeature.utils.cjs","names":["cloneState","functionalUpdate"],"sources":["../../../src/core/table/coreTablesFeature.utils.ts"],"sourcesContent":["import { cloneState, functionalUpdate } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { TableOptions } from '../../types/TableOptions'\n\n/**\n * Synchronizes externally controlled state slices into the table's base atoms.\n *\n * This keeps legacy `options.state` values reflected in the atom graph so\n * derived atoms, stores, and table APIs read a consistent snapshot.\n *\n * @example\n * ```ts\n * table_syncExternalStateToBaseAtoms(table)\n * ```\n */\nexport function table_syncExternalStateToBaseAtoms<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): void {\n const state = table.options.state\n if (!state) {\n return\n }\n\n table._reactivity.batch(() => {\n for (const key in state) {\n const baseAtom = (table.baseAtoms as Record<string, any>)[key]\n if (!baseAtom) {\n continue\n }\n\n const externalState = state[key as keyof typeof state]\n if (externalState !== baseAtom.get()) {\n baseAtom.set(() => externalState)\n }\n }\n })\n}\n\n/**\n * Resets all internal table base atoms to `table.initialState`.\n *\n * This resets internally owned state slices in a single reactivity batch. Use\n * feature-specific reset APIs when a slice may be externally owned.\n *\n * @example\n * ```ts\n * table_reset(table)\n * ```\n */\nexport function table_reset<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): void {\n const snap = cloneState(table.initialState)\n table._reactivity.batch(() => {\n const keys = Object.keys(snap) as Array<keyof typeof snap>\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]!\n ;(table.baseAtoms as any)[key].set(snap[key] as any)\n }\n })\n}\n\n/**\n * Merges new table options with the current resolved options.\n *\n * If `options.mergeOptions` is provided, it owns the merge behavior; otherwise\n * options are shallow-merged.\n *\n * @example\n * ```ts\n * const options = table_mergeOptions(table, nextOptions)\n * ```\n */\nexport function table_mergeOptions<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n newOptions: TableOptions<TFeatures, TData>,\n) {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(table.options, newOptions)\n }\n\n return {\n ...table.options,\n ...newOptions,\n }\n}\n\n/**\n * Updates the table options object.\n *\n * The updater receives the current resolved options and the merged result is\n * immediately assigned to the table instance.\n *\n * @example\n * ```ts\n * table_setOptions(table, (old) => old)\n * ```\n */\nexport function table_setOptions<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<TableOptions<TFeatures, TData>>,\n): void {\n const newOptions = functionalUpdate(updater, table.options)\n // table static options that should never change after initialization\n const { rowModels, features, atoms, initialState } = table.options\n const mergedOptions = Object.assign(table_mergeOptions(table, newOptions), {\n // Once the table instance is created those properties should never change after initialization,\n // so we assign them back preserving the `table_mergeOptions` object reference\n rowModels,\n features,\n atoms,\n initialState,\n })\n\n if (table.optionsStore) {\n table.optionsStore.set(() => mergedOptions)\n } else {\n table.options = mergedOptions\n }\n table_syncExternalStateToBaseAtoms(table)\n}\n"],"mappings":";;;;;;;;;;;;;;AAiBA,SAAgB,mCAGd,OAA+C;CAC/C,MAAM,QAAQ,MAAM,QAAQ;CAC5B,IAAI,CAAC,OACH;CAGF,MAAM,YAAY,YAAY;EAC5B,KAAK,MAAM,OAAO,OAAO;GACvB,MAAM,WAAY,MAAM,UAAkC;GAC1D,IAAI,CAAC,UACH;GAGF,MAAM,gBAAgB,MAAM;GAC5B,IAAI,kBAAkB,SAAS,IAAI,GACjC,SAAS,UAAU,aAAa;EAEpC;CACF,CAAC;AACH;;;;;;;;;;;;AAaA,SAAgB,YAGd,OAA+C;CAC/C,MAAM,OAAOA,yBAAW,MAAM,YAAY;CAC1C,MAAM,YAAY,YAAY;EAC5B,MAAM,OAAO,OAAO,KAAK,IAAI;EAC7B,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACpC,MAAM,MAAM,KAAK;GAChB,AAAC,MAAM,UAAkB,IAAI,CAAC,IAAI,KAAK,IAAW;EACrD;CACF,CAAC;AACH;;;;;;;;;;;;AAaA,SAAgB,mBAId,OACA,YACA;CACA,IAAI,MAAM,QAAQ,cAChB,OAAO,MAAM,QAAQ,aAAa,MAAM,SAAS,UAAU;CAG7D,OAAO;EACL,GAAG,MAAM;EACT,GAAG;CACL;AACF;;;;;;;;;;;;AAaA,SAAgB,iBAId,OACA,SACM;CACN,MAAM,aAAaC,+BAAiB,SAAS,MAAM,OAAO;CAE1D,MAAM,EAAE,WAAW,UAAU,OAAO,iBAAiB,MAAM;CAC3D,MAAM,gBAAgB,OAAO,OAAO,mBAAmB,OAAO,UAAU,GAAG;EAGzE;EACA;EACA;EACA;CACF,CAAC;CAED,IAAI,MAAM,cACR,MAAM,aAAa,UAAU,aAAa;MAE1C,MAAM,UAAU;CAElB,mCAAmC,KAAK;AAC1C"}
1
+ {"version":3,"file":"coreTablesFeature.utils.cjs","names":["cloneState","functionalUpdate"],"sources":["../../../src/core/table/coreTablesFeature.utils.ts"],"sourcesContent":["import { cloneState, functionalUpdate } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { TableOptions } from '../../types/TableOptions'\n\n/**\n * Synchronizes externally controlled state slices into the table's base atoms.\n *\n * This keeps legacy `options.state` values reflected in the atom graph so\n * derived atoms, stores, and table APIs read a consistent snapshot.\n *\n * @example\n * ```ts\n * table_syncExternalStateToBaseAtoms(table)\n * ```\n */\nexport function table_syncExternalStateToBaseAtoms<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): void {\n const state = table.options.state\n if (!state) {\n return\n }\n\n table._reactivity.batch(() => {\n for (const key in state) {\n const baseAtom = (table.baseAtoms as Record<string, any>)[key]\n if (!baseAtom) {\n continue\n }\n\n const externalState = state[key as keyof typeof state]\n if (externalState !== baseAtom.get()) {\n baseAtom.set(() => externalState)\n }\n }\n })\n}\n\n/**\n * Resets all internal table base atoms to `table.initialState`.\n *\n * This resets internally owned state slices in a single reactivity batch. Use\n * feature-specific reset APIs when a slice may be externally owned.\n *\n * @example\n * ```ts\n * table_reset(table)\n * ```\n */\nexport function table_reset<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): void {\n const snap = cloneState(table.initialState)\n table._reactivity.batch(() => {\n const keys = Object.keys(snap) as Array<keyof typeof snap>\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]!\n ;(table.baseAtoms as any)[key].set(snap[key])\n }\n })\n}\n\n/**\n * Merges new table options with the current resolved options.\n *\n * If `options.mergeOptions` is provided, it owns the merge behavior; otherwise\n * options are shallow-merged.\n *\n * @example\n * ```ts\n * const options = table_mergeOptions(table, nextOptions)\n * ```\n */\nexport function table_mergeOptions<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n newOptions: TableOptions<TFeatures, TData>,\n) {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(table.options, newOptions)\n }\n\n return {\n ...table.options,\n ...newOptions,\n }\n}\n\n/**\n * Updates the table options object.\n *\n * The updater receives the current resolved options and the merged result is\n * immediately assigned to the table instance.\n *\n * @example\n * ```ts\n * table_setOptions(table, (old) => old)\n * ```\n */\nexport function table_setOptions<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<TableOptions<TFeatures, TData>>,\n): void {\n const newOptions = functionalUpdate(updater, table.options)\n // table static options that should never change after initialization\n const { features, atoms, initialState } = table.options\n const mergedOptions = Object.assign(table_mergeOptions(table, newOptions), {\n // Once the table instance is created those properties should never change after initialization,\n // so we assign them back preserving the `table_mergeOptions` object reference\n features,\n atoms,\n initialState,\n })\n\n if (table.optionsStore) {\n table.optionsStore.set(() => mergedOptions)\n } else {\n table.options = mergedOptions\n }\n table_syncExternalStateToBaseAtoms(table)\n}\n"],"mappings":";;;;;;;;;;;;;;AAiBA,SAAgB,mCAGd,OAA+C;CAC/C,MAAM,QAAQ,MAAM,QAAQ;CAC5B,IAAI,CAAC,OACH;CAGF,MAAM,YAAY,YAAY;EAC5B,KAAK,MAAM,OAAO,OAAO;GACvB,MAAM,WAAY,MAAM,UAAkC;GAC1D,IAAI,CAAC,UACH;GAGF,MAAM,gBAAgB,MAAM;GAC5B,IAAI,kBAAkB,SAAS,IAAI,GACjC,SAAS,UAAU,aAAa;EAEpC;CACF,CAAC;AACH;;;;;;;;;;;;AAaA,SAAgB,YAGd,OAA+C;CAC/C,MAAM,OAAOA,yBAAW,MAAM,YAAY;CAC1C,MAAM,YAAY,YAAY;EAC5B,MAAM,OAAO,OAAO,KAAK,IAAI;EAC7B,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACpC,MAAM,MAAM,KAAK;GAChB,AAAC,MAAM,UAAkB,IAAI,CAAC,IAAI,KAAK,IAAI;EAC9C;CACF,CAAC;AACH;;;;;;;;;;;;AAaA,SAAgB,mBAId,OACA,YACA;CACA,IAAI,MAAM,QAAQ,cAChB,OAAO,MAAM,QAAQ,aAAa,MAAM,SAAS,UAAU;CAG7D,OAAO;EACL,GAAG,MAAM;EACT,GAAG;CACL;AACF;;;;;;;;;;;;AAaA,SAAgB,iBAId,OACA,SACM;CACN,MAAM,aAAaC,+BAAiB,SAAS,MAAM,OAAO;CAE1D,MAAM,EAAE,UAAU,OAAO,iBAAiB,MAAM;CAChD,MAAM,gBAAgB,OAAO,OAAO,mBAAmB,OAAO,UAAU,GAAG;EAGzE;EACA;EACA;CACF,CAAC;CAED,IAAI,MAAM,cACR,MAAM,aAAa,UAAU,aAAa;MAE1C,MAAM,UAAU;CAElB,mCAAmC,KAAK;AAC1C"}
@@ -1,7 +1,7 @@
1
1
  import { RowData, Updater } from "../../types/type-utils.cjs";
2
2
  import { TableOptions } from "../../types/TableOptions.cjs";
3
- import { TableFeatures } from "../../types/TableFeatures.cjs";
4
3
  import { Table_Internal } from "../../types/Table.cjs";
4
+ import { TableFeatures } from "../../types/TableFeatures.cjs";
5
5
 
6
6
  //#region src/core/table/coreTablesFeature.utils.d.ts
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  import { RowData, Updater } from "../../types/type-utils.js";
2
2
  import { TableOptions } from "../../types/TableOptions.js";
3
- import { TableFeatures } from "../../types/TableFeatures.js";
4
3
  import { Table_Internal } from "../../types/Table.js";
4
+ import { TableFeatures } from "../../types/TableFeatures.js";
5
5
 
6
6
  //#region src/core/table/coreTablesFeature.utils.d.ts
7
7
  /**
@@ -76,9 +76,8 @@ function table_mergeOptions(table, newOptions) {
76
76
  */
77
77
  function table_setOptions(table, updater) {
78
78
  const newOptions = functionalUpdate(updater, table.options);
79
- const { rowModels, features, atoms, initialState } = table.options;
79
+ const { features, atoms, initialState } = table.options;
80
80
  const mergedOptions = Object.assign(table_mergeOptions(table, newOptions), {
81
- rowModels,
82
81
  features,
83
82
  atoms,
84
83
  initialState
@@ -1 +1 @@
1
- {"version":3,"file":"coreTablesFeature.utils.js","names":[],"sources":["../../../src/core/table/coreTablesFeature.utils.ts"],"sourcesContent":["import { cloneState, functionalUpdate } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { TableOptions } from '../../types/TableOptions'\n\n/**\n * Synchronizes externally controlled state slices into the table's base atoms.\n *\n * This keeps legacy `options.state` values reflected in the atom graph so\n * derived atoms, stores, and table APIs read a consistent snapshot.\n *\n * @example\n * ```ts\n * table_syncExternalStateToBaseAtoms(table)\n * ```\n */\nexport function table_syncExternalStateToBaseAtoms<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): void {\n const state = table.options.state\n if (!state) {\n return\n }\n\n table._reactivity.batch(() => {\n for (const key in state) {\n const baseAtom = (table.baseAtoms as Record<string, any>)[key]\n if (!baseAtom) {\n continue\n }\n\n const externalState = state[key as keyof typeof state]\n if (externalState !== baseAtom.get()) {\n baseAtom.set(() => externalState)\n }\n }\n })\n}\n\n/**\n * Resets all internal table base atoms to `table.initialState`.\n *\n * This resets internally owned state slices in a single reactivity batch. Use\n * feature-specific reset APIs when a slice may be externally owned.\n *\n * @example\n * ```ts\n * table_reset(table)\n * ```\n */\nexport function table_reset<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): void {\n const snap = cloneState(table.initialState)\n table._reactivity.batch(() => {\n const keys = Object.keys(snap) as Array<keyof typeof snap>\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]!\n ;(table.baseAtoms as any)[key].set(snap[key] as any)\n }\n })\n}\n\n/**\n * Merges new table options with the current resolved options.\n *\n * If `options.mergeOptions` is provided, it owns the merge behavior; otherwise\n * options are shallow-merged.\n *\n * @example\n * ```ts\n * const options = table_mergeOptions(table, nextOptions)\n * ```\n */\nexport function table_mergeOptions<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n newOptions: TableOptions<TFeatures, TData>,\n) {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(table.options, newOptions)\n }\n\n return {\n ...table.options,\n ...newOptions,\n }\n}\n\n/**\n * Updates the table options object.\n *\n * The updater receives the current resolved options and the merged result is\n * immediately assigned to the table instance.\n *\n * @example\n * ```ts\n * table_setOptions(table, (old) => old)\n * ```\n */\nexport function table_setOptions<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<TableOptions<TFeatures, TData>>,\n): void {\n const newOptions = functionalUpdate(updater, table.options)\n // table static options that should never change after initialization\n const { rowModels, features, atoms, initialState } = table.options\n const mergedOptions = Object.assign(table_mergeOptions(table, newOptions), {\n // Once the table instance is created those properties should never change after initialization,\n // so we assign them back preserving the `table_mergeOptions` object reference\n rowModels,\n features,\n atoms,\n initialState,\n })\n\n if (table.optionsStore) {\n table.optionsStore.set(() => mergedOptions)\n } else {\n table.options = mergedOptions\n }\n table_syncExternalStateToBaseAtoms(table)\n}\n"],"mappings":";;;;;;;;;;;;;;AAiBA,SAAgB,mCAGd,OAA+C;CAC/C,MAAM,QAAQ,MAAM,QAAQ;CAC5B,IAAI,CAAC,OACH;CAGF,MAAM,YAAY,YAAY;EAC5B,KAAK,MAAM,OAAO,OAAO;GACvB,MAAM,WAAY,MAAM,UAAkC;GAC1D,IAAI,CAAC,UACH;GAGF,MAAM,gBAAgB,MAAM;GAC5B,IAAI,kBAAkB,SAAS,IAAI,GACjC,SAAS,UAAU,aAAa;EAEpC;CACF,CAAC;AACH;;;;;;;;;;;;AAaA,SAAgB,YAGd,OAA+C;CAC/C,MAAM,OAAO,WAAW,MAAM,YAAY;CAC1C,MAAM,YAAY,YAAY;EAC5B,MAAM,OAAO,OAAO,KAAK,IAAI;EAC7B,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACpC,MAAM,MAAM,KAAK;GAChB,AAAC,MAAM,UAAkB,IAAI,CAAC,IAAI,KAAK,IAAW;EACrD;CACF,CAAC;AACH;;;;;;;;;;;;AAaA,SAAgB,mBAId,OACA,YACA;CACA,IAAI,MAAM,QAAQ,cAChB,OAAO,MAAM,QAAQ,aAAa,MAAM,SAAS,UAAU;CAG7D,OAAO;EACL,GAAG,MAAM;EACT,GAAG;CACL;AACF;;;;;;;;;;;;AAaA,SAAgB,iBAId,OACA,SACM;CACN,MAAM,aAAa,iBAAiB,SAAS,MAAM,OAAO;CAE1D,MAAM,EAAE,WAAW,UAAU,OAAO,iBAAiB,MAAM;CAC3D,MAAM,gBAAgB,OAAO,OAAO,mBAAmB,OAAO,UAAU,GAAG;EAGzE;EACA;EACA;EACA;CACF,CAAC;CAED,IAAI,MAAM,cACR,MAAM,aAAa,UAAU,aAAa;MAE1C,MAAM,UAAU;CAElB,mCAAmC,KAAK;AAC1C"}
1
+ {"version":3,"file":"coreTablesFeature.utils.js","names":[],"sources":["../../../src/core/table/coreTablesFeature.utils.ts"],"sourcesContent":["import { cloneState, functionalUpdate } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { TableOptions } from '../../types/TableOptions'\n\n/**\n * Synchronizes externally controlled state slices into the table's base atoms.\n *\n * This keeps legacy `options.state` values reflected in the atom graph so\n * derived atoms, stores, and table APIs read a consistent snapshot.\n *\n * @example\n * ```ts\n * table_syncExternalStateToBaseAtoms(table)\n * ```\n */\nexport function table_syncExternalStateToBaseAtoms<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): void {\n const state = table.options.state\n if (!state) {\n return\n }\n\n table._reactivity.batch(() => {\n for (const key in state) {\n const baseAtom = (table.baseAtoms as Record<string, any>)[key]\n if (!baseAtom) {\n continue\n }\n\n const externalState = state[key as keyof typeof state]\n if (externalState !== baseAtom.get()) {\n baseAtom.set(() => externalState)\n }\n }\n })\n}\n\n/**\n * Resets all internal table base atoms to `table.initialState`.\n *\n * This resets internally owned state slices in a single reactivity batch. Use\n * feature-specific reset APIs when a slice may be externally owned.\n *\n * @example\n * ```ts\n * table_reset(table)\n * ```\n */\nexport function table_reset<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): void {\n const snap = cloneState(table.initialState)\n table._reactivity.batch(() => {\n const keys = Object.keys(snap) as Array<keyof typeof snap>\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]!\n ;(table.baseAtoms as any)[key].set(snap[key])\n }\n })\n}\n\n/**\n * Merges new table options with the current resolved options.\n *\n * If `options.mergeOptions` is provided, it owns the merge behavior; otherwise\n * options are shallow-merged.\n *\n * @example\n * ```ts\n * const options = table_mergeOptions(table, nextOptions)\n * ```\n */\nexport function table_mergeOptions<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n newOptions: TableOptions<TFeatures, TData>,\n) {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(table.options, newOptions)\n }\n\n return {\n ...table.options,\n ...newOptions,\n }\n}\n\n/**\n * Updates the table options object.\n *\n * The updater receives the current resolved options and the merged result is\n * immediately assigned to the table instance.\n *\n * @example\n * ```ts\n * table_setOptions(table, (old) => old)\n * ```\n */\nexport function table_setOptions<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<TableOptions<TFeatures, TData>>,\n): void {\n const newOptions = functionalUpdate(updater, table.options)\n // table static options that should never change after initialization\n const { features, atoms, initialState } = table.options\n const mergedOptions = Object.assign(table_mergeOptions(table, newOptions), {\n // Once the table instance is created those properties should never change after initialization,\n // so we assign them back preserving the `table_mergeOptions` object reference\n features,\n atoms,\n initialState,\n })\n\n if (table.optionsStore) {\n table.optionsStore.set(() => mergedOptions)\n } else {\n table.options = mergedOptions\n }\n table_syncExternalStateToBaseAtoms(table)\n}\n"],"mappings":";;;;;;;;;;;;;;AAiBA,SAAgB,mCAGd,OAA+C;CAC/C,MAAM,QAAQ,MAAM,QAAQ;CAC5B,IAAI,CAAC,OACH;CAGF,MAAM,YAAY,YAAY;EAC5B,KAAK,MAAM,OAAO,OAAO;GACvB,MAAM,WAAY,MAAM,UAAkC;GAC1D,IAAI,CAAC,UACH;GAGF,MAAM,gBAAgB,MAAM;GAC5B,IAAI,kBAAkB,SAAS,IAAI,GACjC,SAAS,UAAU,aAAa;EAEpC;CACF,CAAC;AACH;;;;;;;;;;;;AAaA,SAAgB,YAGd,OAA+C;CAC/C,MAAM,OAAO,WAAW,MAAM,YAAY;CAC1C,MAAM,YAAY,YAAY;EAC5B,MAAM,OAAO,OAAO,KAAK,IAAI;EAC7B,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACpC,MAAM,MAAM,KAAK;GAChB,AAAC,MAAM,UAAkB,IAAI,CAAC,IAAI,KAAK,IAAI;EAC9C;CACF,CAAC;AACH;;;;;;;;;;;;AAaA,SAAgB,mBAId,OACA,YACA;CACA,IAAI,MAAM,QAAQ,cAChB,OAAO,MAAM,QAAQ,aAAa,MAAM,SAAS,UAAU;CAG7D,OAAO;EACL,GAAG,MAAM;EACT,GAAG;CACL;AACF;;;;;;;;;;;;AAaA,SAAgB,iBAId,OACA,SACM;CACN,MAAM,aAAa,iBAAiB,SAAS,MAAM,OAAO;CAE1D,MAAM,EAAE,UAAU,OAAO,iBAAiB,MAAM;CAChD,MAAM,gBAAgB,OAAO,OAAO,mBAAmB,OAAO,UAAU,GAAG;EAGzE;EACA;EACA;CACF,CAAC;CAED,IAAI,MAAM,cACR,MAAM,aAAa,UAAU,aAAa;MAE1C,MAAM,UAAU;CAElB,mCAAmC,KAAK;AAC1C"}
@@ -3,71 +3,59 @@ const require_columnFacetingFeature_utils = require('./columnFacetingFeature.uti
3
3
 
4
4
  //#region src/features/column-faceting/columnFacetingFeature.ts
5
5
  /**
6
- * Creates the stock column faceting feature.
7
- *
8
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
6
+ * Feature that derives faceted row models, unique values, and min/max values for filters.
9
7
  */
10
- function constructColumnFacetingFeature() {
11
- return {
12
- assignColumnPrototype: (prototype, table) => {
13
- require_utils.assignPrototypeAPIs("columnFacetingFeature", prototype, table, {
14
- column_getFacetedRowModel: {
15
- memoDeps: () => {
16
- var _table$atoms$columnFi, _table$atoms$globalFi;
17
- return [
18
- table.getPreFilteredRowModel().rows,
19
- (_table$atoms$columnFi = table.atoms.columnFilters) === null || _table$atoms$columnFi === void 0 ? void 0 : _table$atoms$columnFi.get(),
20
- (_table$atoms$globalFi = table.atoms.globalFilter) === null || _table$atoms$globalFi === void 0 ? void 0 : _table$atoms$globalFi.get(),
21
- table.getFilteredRowModel().rows
22
- ];
23
- },
24
- fn: (column) => require_columnFacetingFeature_utils.column_getFacetedRowModel(column, column.table)
8
+ const columnFacetingFeature = {
9
+ assignColumnPrototype: (prototype, table) => {
10
+ require_utils.assignPrototypeAPIs("columnFacetingFeature", prototype, table, {
11
+ column_getFacetedRowModel: {
12
+ memoDeps: () => {
13
+ var _table$atoms$columnFi, _table$atoms$globalFi;
14
+ return [
15
+ table.getPreFilteredRowModel().rows,
16
+ (_table$atoms$columnFi = table.atoms.columnFilters) === null || _table$atoms$columnFi === void 0 ? void 0 : _table$atoms$columnFi.get(),
17
+ (_table$atoms$globalFi = table.atoms.globalFilter) === null || _table$atoms$globalFi === void 0 ? void 0 : _table$atoms$globalFi.get(),
18
+ table.getFilteredRowModel().rows
19
+ ];
25
20
  },
26
- column_getFacetedMinMaxValues: {
27
- memoDeps: (column) => [require_utils.callMemoOrStaticFn(column, "getFacetedRowModel", require_columnFacetingFeature_utils.column_getFacetedRowModel, column.table).flatRows],
28
- fn: (column) => require_columnFacetingFeature_utils.column_getFacetedMinMaxValues(column, column.table)
21
+ fn: (column) => require_columnFacetingFeature_utils.column_getFacetedRowModel(column, column.table)
22
+ },
23
+ column_getFacetedMinMaxValues: {
24
+ memoDeps: (column) => [require_utils.callMemoOrStaticFn(column, "getFacetedRowModel", require_columnFacetingFeature_utils.column_getFacetedRowModel, column.table).flatRows],
25
+ fn: (column) => require_columnFacetingFeature_utils.column_getFacetedMinMaxValues(column, column.table)
26
+ },
27
+ column_getFacetedUniqueValues: {
28
+ memoDeps: (column) => [require_utils.callMemoOrStaticFn(column, "getFacetedRowModel", require_columnFacetingFeature_utils.column_getFacetedRowModel, column.table).flatRows],
29
+ fn: (column) => require_columnFacetingFeature_utils.column_getFacetedUniqueValues(column, column.table)
30
+ }
31
+ });
32
+ },
33
+ constructTableAPIs: (table) => {
34
+ require_utils.assignTableAPIs("columnFacetingFeature", table, {
35
+ table_getGlobalFacetedRowModel: {
36
+ memoDeps: () => {
37
+ var _table$atoms$columnFi2, _table$atoms$globalFi2;
38
+ return [
39
+ table.getPreFilteredRowModel().rows,
40
+ (_table$atoms$columnFi2 = table.atoms.columnFilters) === null || _table$atoms$columnFi2 === void 0 ? void 0 : _table$atoms$columnFi2.get(),
41
+ (_table$atoms$globalFi2 = table.atoms.globalFilter) === null || _table$atoms$globalFi2 === void 0 ? void 0 : _table$atoms$globalFi2.get(),
42
+ table.getFilteredRowModel().rows
43
+ ];
29
44
  },
30
- column_getFacetedUniqueValues: {
31
- memoDeps: (column) => [require_utils.callMemoOrStaticFn(column, "getFacetedRowModel", require_columnFacetingFeature_utils.column_getFacetedRowModel, column.table).flatRows],
32
- fn: (column) => require_columnFacetingFeature_utils.column_getFacetedUniqueValues(column, column.table)
33
- }
34
- });
35
- },
36
- constructTableAPIs: (table) => {
37
- require_utils.assignTableAPIs("columnFacetingFeature", table, {
38
- table_getGlobalFacetedRowModel: {
39
- memoDeps: () => {
40
- var _table$atoms$columnFi2, _table$atoms$globalFi2;
41
- return [
42
- table.getPreFilteredRowModel().rows,
43
- (_table$atoms$columnFi2 = table.atoms.columnFilters) === null || _table$atoms$columnFi2 === void 0 ? void 0 : _table$atoms$columnFi2.get(),
44
- (_table$atoms$globalFi2 = table.atoms.globalFilter) === null || _table$atoms$globalFi2 === void 0 ? void 0 : _table$atoms$globalFi2.get(),
45
- table.getFilteredRowModel().rows
46
- ];
47
- },
48
- fn: () => require_columnFacetingFeature_utils.table_getGlobalFacetedRowModel(table)
49
- },
50
- table_getGlobalFacetedMinMaxValues: {
51
- memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getGlobalFacetedRowModel", require_columnFacetingFeature_utils.table_getGlobalFacetedRowModel).flatRows],
52
- fn: () => require_columnFacetingFeature_utils.table_getGlobalFacetedMinMaxValues(table)
53
- },
54
- table_getGlobalFacetedUniqueValues: {
55
- memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getGlobalFacetedRowModel", require_columnFacetingFeature_utils.table_getGlobalFacetedRowModel).flatRows],
56
- fn: () => require_columnFacetingFeature_utils.table_getGlobalFacetedUniqueValues(table)
57
- }
58
- });
59
- }
60
- };
61
- }
62
- /**
63
- * The stock column faceting feature.
64
- *
65
- * Register this feature to add faceted row model, unique value, and min/max
66
- * helpers for column and global filter UIs.
67
- */
68
- const columnFacetingFeature = constructColumnFacetingFeature();
45
+ fn: () => require_columnFacetingFeature_utils.table_getGlobalFacetedRowModel(table)
46
+ },
47
+ table_getGlobalFacetedMinMaxValues: {
48
+ memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getGlobalFacetedRowModel", require_columnFacetingFeature_utils.table_getGlobalFacetedRowModel).flatRows],
49
+ fn: () => require_columnFacetingFeature_utils.table_getGlobalFacetedMinMaxValues(table)
50
+ },
51
+ table_getGlobalFacetedUniqueValues: {
52
+ memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getGlobalFacetedRowModel", require_columnFacetingFeature_utils.table_getGlobalFacetedRowModel).flatRows],
53
+ fn: () => require_columnFacetingFeature_utils.table_getGlobalFacetedUniqueValues(table)
54
+ }
55
+ });
56
+ }
57
+ };
69
58
 
70
59
  //#endregion
71
60
  exports.columnFacetingFeature = columnFacetingFeature;
72
- exports.constructColumnFacetingFeature = constructColumnFacetingFeature;
73
61
  //# sourceMappingURL=columnFacetingFeature.cjs.map