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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. package/dist/core/cells/constructCell.d.cts +3 -3
  2. package/dist/core/cells/constructCell.d.ts +3 -3
  3. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  4. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  5. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  6. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  7. package/dist/core/cells/coreCellsFeature.js +12 -20
  8. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  9. package/dist/core/cells/coreCellsFeature.types.d.cts +6 -6
  10. package/dist/core/cells/coreCellsFeature.types.d.ts +6 -6
  11. package/dist/core/cells/coreCellsFeature.utils.d.cts +3 -3
  12. package/dist/core/cells/coreCellsFeature.utils.d.ts +3 -3
  13. package/dist/core/columns/constructColumn.cjs +5 -0
  14. package/dist/core/columns/constructColumn.cjs.map +1 -1
  15. package/dist/core/columns/constructColumn.d.cts +3 -3
  16. package/dist/core/columns/constructColumn.d.ts +3 -3
  17. package/dist/core/columns/constructColumn.js +5 -0
  18. package/dist/core/columns/constructColumn.js.map +1 -1
  19. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  20. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  21. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  22. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  23. package/dist/core/columns/coreColumnsFeature.js +60 -68
  24. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  25. package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -7
  26. package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -7
  27. package/dist/core/columns/coreColumnsFeature.utils.cjs +2 -2
  28. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  29. package/dist/core/columns/coreColumnsFeature.utils.d.cts +9 -9
  30. package/dist/core/columns/coreColumnsFeature.utils.d.ts +9 -9
  31. package/dist/core/columns/coreColumnsFeature.utils.js +3 -3
  32. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  33. package/dist/core/coreFeatures.cjs.map +1 -1
  34. package/dist/core/coreFeatures.d.cts +1 -1
  35. package/dist/core/coreFeatures.d.ts +1 -1
  36. package/dist/core/coreFeatures.js.map +1 -1
  37. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  38. package/dist/core/headers/buildHeaderGroups.d.cts +2 -2
  39. package/dist/core/headers/buildHeaderGroups.d.ts +2 -2
  40. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  41. package/dist/core/headers/constructHeader.d.cts +2 -2
  42. package/dist/core/headers/constructHeader.d.ts +2 -2
  43. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  44. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  45. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  46. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  47. package/dist/core/headers/coreHeadersFeature.js +45 -53
  48. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  49. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  50. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  51. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  52. package/dist/core/headers/coreHeadersFeature.utils.d.cts +6 -6
  53. package/dist/core/headers/coreHeadersFeature.utils.d.ts +6 -6
  54. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  55. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  56. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  57. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  58. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  59. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  60. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  61. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +6 -16
  62. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +6 -16
  63. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
  64. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  65. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +14 -14
  66. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +14 -14
  67. package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
  68. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  69. package/dist/core/row-models/createCoreRowModel.cjs +2 -3
  70. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  71. package/dist/core/row-models/createCoreRowModel.d.cts +1 -1
  72. package/dist/core/row-models/createCoreRowModel.d.ts +1 -1
  73. package/dist/core/row-models/createCoreRowModel.js +3 -4
  74. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  75. package/dist/core/rows/constructRow.cjs +3 -2
  76. package/dist/core/rows/constructRow.cjs.map +1 -1
  77. package/dist/core/rows/constructRow.d.cts +2 -2
  78. package/dist/core/rows/constructRow.d.ts +2 -2
  79. package/dist/core/rows/constructRow.js +4 -2
  80. package/dist/core/rows/constructRow.js.map +1 -1
  81. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  82. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  83. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  84. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  85. package/dist/core/rows/coreRowsFeature.js +28 -36
  86. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  87. package/dist/core/rows/coreRowsFeature.types.d.cts +6 -6
  88. package/dist/core/rows/coreRowsFeature.types.d.ts +6 -6
  89. package/dist/core/rows/coreRowsFeature.utils.cjs +3 -3
  90. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  91. package/dist/core/rows/coreRowsFeature.utils.d.cts +3 -3
  92. package/dist/core/rows/coreRowsFeature.utils.d.ts +3 -3
  93. package/dist/core/rows/coreRowsFeature.utils.js +4 -4
  94. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  95. package/dist/core/table/constructTable.cjs +21 -6
  96. package/dist/core/table/constructTable.cjs.map +1 -1
  97. package/dist/core/table/constructTable.d.cts +1 -1
  98. package/dist/core/table/constructTable.d.ts +1 -1
  99. package/dist/core/table/constructTable.js +21 -6
  100. package/dist/core/table/constructTable.js.map +1 -1
  101. package/dist/core/table/coreTablesFeature.cjs +7 -16
  102. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  103. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  104. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  105. package/dist/core/table/coreTablesFeature.js +8 -16
  106. package/dist/core/table/coreTablesFeature.js.map +1 -1
  107. package/dist/core/table/coreTablesFeature.types.d.cts +28 -16
  108. package/dist/core/table/coreTablesFeature.types.d.ts +28 -16
  109. package/dist/core/table/coreTablesFeature.utils.cjs +33 -12
  110. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  111. package/dist/core/table/coreTablesFeature.utils.d.cts +8 -6
  112. package/dist/core/table/coreTablesFeature.utils.d.ts +8 -6
  113. package/dist/core/table/coreTablesFeature.utils.js +33 -12
  114. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  115. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  116. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  117. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  118. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  119. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  120. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  121. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +8 -29
  122. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +8 -29
  123. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
  124. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  125. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +8 -8
  126. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +8 -8
  127. package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
  128. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  129. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  130. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  131. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  132. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  133. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  134. package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
  135. package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
  136. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  137. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  138. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  139. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  140. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  141. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  142. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  143. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  144. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  145. package/dist/features/column-filtering/columnFilteringFeature.js +42 -54
  146. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  147. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +40 -26
  148. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +40 -26
  149. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
  150. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  151. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +12 -12
  152. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +12 -12
  153. package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
  154. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  155. package/dist/features/column-filtering/createFilteredRowModel.cjs +12 -7
  156. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  157. package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
  158. package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
  159. package/dist/features/column-filtering/createFilteredRowModel.js +13 -8
  160. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  161. package/dist/features/column-filtering/filterRowsUtils.cjs +3 -2
  162. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
  163. package/dist/features/column-filtering/filterRowsUtils.js +3 -2
  164. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
  165. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  166. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  167. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  168. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  169. package/dist/features/column-grouping/columnGroupingFeature.js +59 -70
  170. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  171. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +28 -21
  172. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +28 -21
  173. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +4 -4
  174. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  175. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +11 -11
  176. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +11 -11
  177. package/dist/features/column-grouping/columnGroupingFeature.utils.js +5 -5
  178. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  179. package/dist/features/column-grouping/createGroupedRowModel.cjs +9 -7
  180. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  181. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
  182. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
  183. package/dist/features/column-grouping/createGroupedRowModel.js +10 -8
  184. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  185. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  186. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  187. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  188. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  189. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  190. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  191. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +1 -1
  192. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +1 -1
  193. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +9 -9
  194. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +9 -9
  195. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  196. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  197. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  198. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  199. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  200. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  201. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +2 -2
  202. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +2 -2
  203. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  204. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +31 -30
  205. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +31 -30
  206. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  207. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  208. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  209. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  210. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  211. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  212. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  213. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +1 -4
  214. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
  215. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +2 -5
  216. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  217. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +6 -6
  218. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +6 -6
  219. package/dist/features/column-resizing/columnResizingFeature.utils.js +3 -6
  220. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  221. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  222. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  223. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  224. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  225. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  226. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  227. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +11 -4
  228. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  229. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +12 -12
  230. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +12 -12
  231. package/dist/features/column-sizing/columnSizingFeature.utils.js +12 -5
  232. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  233. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  234. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  235. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  236. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  237. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  238. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  239. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +2 -2
  240. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +2 -2
  241. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +12 -9
  242. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  243. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +14 -14
  244. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +14 -14
  245. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +13 -10
  246. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  247. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  248. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  249. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  250. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  251. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  252. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  253. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +2 -2
  254. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +2 -2
  255. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  256. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +10 -8
  257. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -8
  258. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  259. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  260. package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
  261. package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
  262. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  263. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  264. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  265. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  266. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  267. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  268. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  269. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +5 -14
  270. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +5 -14
  271. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +21 -12
  272. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  273. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +10 -10
  274. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +10 -10
  275. package/dist/features/row-expanding/rowExpandingFeature.utils.js +22 -13
  276. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  277. package/dist/features/row-pagination/createPaginatedRowModel.cjs +1 -1
  278. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  279. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
  280. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
  281. package/dist/features/row-pagination/createPaginatedRowModel.js +1 -1
  282. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  283. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  284. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  285. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  286. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  287. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  288. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  289. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +4 -13
  290. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +4 -13
  291. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +17 -17
  292. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +17 -17
  293. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  294. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  295. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  296. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  297. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  298. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  299. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  300. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  301. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +2 -2
  302. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  303. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +7 -7
  304. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +7 -7
  305. package/dist/features/row-pinning/rowPinningFeature.utils.js +2 -2
  306. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  307. package/dist/features/row-selection/rowSelectionFeature.cjs +108 -77
  308. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  309. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  310. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  311. package/dist/features/row-selection/rowSelectionFeature.js +110 -78
  312. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  313. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +13 -5
  314. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +13 -5
  315. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +76 -60
  316. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  317. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +48 -23
  318. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +48 -23
  319. package/dist/features/row-selection/rowSelectionFeature.utils.js +77 -62
  320. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  321. package/dist/features/row-sorting/createSortedRowModel.cjs +5 -3
  322. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  323. package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
  324. package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
  325. package/dist/features/row-sorting/createSortedRowModel.js +6 -4
  326. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  327. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  328. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  329. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  330. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  331. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  332. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  333. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +24 -21
  334. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +24 -21
  335. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  336. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  337. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +16 -16
  338. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +16 -16
  339. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  340. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  341. package/dist/fns/aggregationFns.cjs +18 -18
  342. package/dist/fns/aggregationFns.cjs.map +1 -1
  343. package/dist/fns/aggregationFns.d.cts +21 -19
  344. package/dist/fns/aggregationFns.d.ts +21 -19
  345. package/dist/fns/aggregationFns.js +18 -18
  346. package/dist/fns/aggregationFns.js.map +1 -1
  347. package/dist/fns/filterFns.cjs +51 -65
  348. package/dist/fns/filterFns.cjs.map +1 -1
  349. package/dist/fns/filterFns.d.cts +82 -28
  350. package/dist/fns/filterFns.d.ts +82 -28
  351. package/dist/fns/filterFns.js +51 -65
  352. package/dist/fns/filterFns.js.map +1 -1
  353. package/dist/fns/sortFns.cjs +18 -6
  354. package/dist/fns/sortFns.cjs.map +1 -1
  355. package/dist/fns/sortFns.d.cts +15 -13
  356. package/dist/fns/sortFns.d.ts +15 -13
  357. package/dist/fns/sortFns.js +18 -6
  358. package/dist/fns/sortFns.js.map +1 -1
  359. package/dist/helpers/columnHelper.cjs.map +1 -1
  360. package/dist/helpers/columnHelper.d.cts +2 -2
  361. package/dist/helpers/columnHelper.d.ts +2 -2
  362. package/dist/helpers/columnHelper.js.map +1 -1
  363. package/dist/helpers/metaHelper.cjs +30 -0
  364. package/dist/helpers/metaHelper.cjs.map +1 -0
  365. package/dist/helpers/metaHelper.d.cts +26 -0
  366. package/dist/helpers/metaHelper.d.ts +26 -0
  367. package/dist/helpers/metaHelper.js +29 -0
  368. package/dist/helpers/metaHelper.js.map +1 -0
  369. package/dist/helpers/tableFeatures.cjs +31 -3
  370. package/dist/helpers/tableFeatures.cjs.map +1 -1
  371. package/dist/helpers/tableFeatures.d.cts +33 -5
  372. package/dist/helpers/tableFeatures.d.ts +33 -5
  373. package/dist/helpers/tableFeatures.js +31 -3
  374. package/dist/helpers/tableFeatures.js.map +1 -1
  375. package/dist/index.cjs +4 -20
  376. package/dist/index.d.cts +50 -49
  377. package/dist/index.d.ts +50 -49
  378. package/dist/index.js +23 -22
  379. package/dist/static-functions.cjs +1 -0
  380. package/dist/static-functions.d.cts +2 -2
  381. package/dist/static-functions.d.ts +2 -2
  382. package/dist/static-functions.js +2 -2
  383. package/dist/store-reactivity-bindings.cjs +1 -1
  384. package/dist/store-reactivity-bindings.cjs.map +1 -1
  385. package/dist/store-reactivity-bindings.d.cts +1 -1
  386. package/dist/store-reactivity-bindings.d.ts +1 -1
  387. package/dist/store-reactivity-bindings.js +1 -1
  388. package/dist/store-reactivity-bindings.js.map +1 -1
  389. package/dist/types/Cell.d.cts +4 -9
  390. package/dist/types/Cell.d.ts +4 -9
  391. package/dist/types/Column.d.cts +11 -18
  392. package/dist/types/Column.d.ts +11 -18
  393. package/dist/types/ColumnDef.d.cts +23 -14
  394. package/dist/types/ColumnDef.d.ts +23 -14
  395. package/dist/types/Header.d.cts +5 -10
  396. package/dist/types/Header.d.ts +5 -10
  397. package/dist/types/HeaderGroup.d.cts +4 -9
  398. package/dist/types/HeaderGroup.d.ts +4 -9
  399. package/dist/types/Row.d.cts +7 -12
  400. package/dist/types/Row.d.ts +7 -12
  401. package/dist/types/RowModel.d.cts +12 -28
  402. package/dist/types/RowModel.d.ts +12 -28
  403. package/dist/types/RowModelFns.d.cts +6 -11
  404. package/dist/types/RowModelFns.d.ts +6 -11
  405. package/dist/types/Table.d.cts +26 -36
  406. package/dist/types/Table.d.ts +26 -36
  407. package/dist/types/TableFeatures.d.cts +328 -54
  408. package/dist/types/TableFeatures.d.ts +328 -54
  409. package/dist/types/TableOptions.d.cts +22 -17
  410. package/dist/types/TableOptions.d.ts +22 -17
  411. package/dist/types/TableState.d.cts +11 -16
  412. package/dist/types/TableState.d.ts +11 -16
  413. package/dist/utils.cjs +24 -2
  414. package/dist/utils.cjs.map +1 -1
  415. package/dist/utils.d.cts +23 -7
  416. package/dist/utils.d.ts +23 -7
  417. package/dist/utils.js +23 -3
  418. package/dist/utils.js.map +1 -1
  419. package/package.json +2 -2
  420. package/skills/column-definitions/SKILL.md +3 -6
  421. package/skills/column-layout/SKILL.md +0 -2
  422. package/skills/customizing-feature-behavior/SKILL.md +63 -56
  423. package/skills/filtering/SKILL.md +60 -42
  424. package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
  425. package/skills/grouping/SKILL.md +49 -54
  426. package/skills/migrate-v8-to-v9/SKILL.md +30 -33
  427. package/skills/pagination/SKILL.md +22 -20
  428. package/skills/row-expanding/SKILL.md +33 -25
  429. package/skills/row-pinning/SKILL.md +11 -7
  430. package/skills/row-selection/SKILL.md +0 -3
  431. package/skills/setup/SKILL.md +55 -65
  432. package/skills/sorting/SKILL.md +21 -21
  433. package/skills/state-management/SKILL.md +40 -25
  434. package/src/core/cells/coreCellsFeature.ts +17 -39
  435. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  436. package/src/core/columns/constructColumn.ts +6 -0
  437. package/src/core/columns/coreColumnsFeature.ts +56 -83
  438. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  439. package/src/core/columns/coreColumnsFeature.utils.ts +4 -4
  440. package/src/core/coreFeatures.ts +1 -1
  441. package/src/core/headers/buildHeaderGroups.ts +4 -2
  442. package/src/core/headers/coreHeadersFeature.ts +42 -64
  443. package/src/core/headers/coreHeadersFeature.types.ts +12 -12
  444. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  445. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  446. package/src/core/row-models/coreRowModelsFeature.types.ts +7 -24
  447. package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
  448. package/src/core/row-models/createCoreRowModel.ts +7 -6
  449. package/src/core/rows/constructRow.ts +3 -2
  450. package/src/core/rows/coreRowsFeature.ts +45 -72
  451. package/src/core/rows/coreRowsFeature.types.ts +8 -8
  452. package/src/core/rows/coreRowsFeature.utils.ts +4 -4
  453. package/src/core/table/constructTable.ts +50 -13
  454. package/src/core/table/coreTablesFeature.ts +13 -35
  455. package/src/core/table/coreTablesFeature.types.ts +40 -17
  456. package/src/core/table/coreTablesFeature.utils.ts +52 -18
  457. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  458. package/src/features/column-faceting/columnFacetingFeature.types.ts +11 -44
  459. package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
  460. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  461. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  462. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  463. package/src/features/column-filtering/columnFilteringFeature.ts +61 -103
  464. package/src/features/column-filtering/columnFilteringFeature.types.ts +55 -39
  465. package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
  466. package/src/features/column-filtering/createFilteredRowModel.ts +18 -17
  467. package/src/features/column-filtering/filterRowsUtils.ts +3 -2
  468. package/src/features/column-grouping/columnGroupingFeature.ts +83 -126
  469. package/src/features/column-grouping/columnGroupingFeature.types.ts +42 -34
  470. package/src/features/column-grouping/columnGroupingFeature.utils.ts +4 -2
  471. package/src/features/column-grouping/createGroupedRowModel.ts +17 -16
  472. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  473. package/src/features/column-ordering/columnOrderingFeature.types.ts +2 -2
  474. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  475. package/src/features/column-pinning/columnPinningFeature.types.ts +4 -4
  476. package/src/features/column-pinning/columnPinningFeature.utils.ts +11 -19
  477. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  478. package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
  479. package/src/features/column-resizing/columnResizingFeature.utils.ts +5 -6
  480. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  481. package/src/features/column-sizing/columnSizingFeature.utils.ts +27 -5
  482. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  483. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  484. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +31 -15
  485. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  486. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  487. package/src/features/global-filtering/globalFilteringFeature.utils.ts +5 -3
  488. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  489. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  490. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -22
  491. package/src/features/row-expanding/rowExpandingFeature.utils.ts +38 -13
  492. package/src/features/row-pagination/createPaginatedRowModel.ts +2 -2
  493. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  494. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -20
  495. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  496. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  497. package/src/features/row-selection/rowSelectionFeature.ts +125 -135
  498. package/src/features/row-selection/rowSelectionFeature.types.ts +17 -7
  499. package/src/features/row-selection/rowSelectionFeature.utils.ts +144 -66
  500. package/src/features/row-sorting/createSortedRowModel.ts +12 -15
  501. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  502. package/src/features/row-sorting/rowSortingFeature.types.ts +33 -32
  503. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  504. package/src/fns/aggregationFns.ts +26 -42
  505. package/src/fns/filterFns.ts +237 -264
  506. package/src/fns/sortFns.ts +51 -29
  507. package/src/helpers/columnHelper.ts +4 -4
  508. package/src/helpers/metaHelper.ts +24 -0
  509. package/src/helpers/tableFeatures.ts +36 -5
  510. package/src/index.ts +1 -0
  511. package/src/store-reactivity-bindings.ts +1 -1
  512. package/src/types/Cell.ts +5 -21
  513. package/src/types/Column.ts +12 -26
  514. package/src/types/ColumnDef.ts +28 -18
  515. package/src/types/Header.ts +4 -20
  516. package/src/types/HeaderGroup.ts +7 -18
  517. package/src/types/Row.ts +6 -21
  518. package/src/types/RowModel.ts +15 -88
  519. package/src/types/RowModelFns.ts +9 -24
  520. package/src/types/Table.ts +54 -44
  521. package/src/types/TableFeatures.ts +402 -123
  522. package/src/types/TableOptions.ts +59 -21
  523. package/src/types/TableState.ts +5 -17
  524. package/src/utils.ts +40 -8
@@ -59,7 +59,7 @@ export function table_reset<
59
59
  const keys = Object.keys(snap) as Array<keyof typeof snap>
60
60
  for (let i = 0; i < keys.length; i++) {
61
61
  const key = keys[i]!
62
- ;(table.baseAtoms as any)[key].set(snap[key] as any)
62
+ ;(table.baseAtoms as any)[key].set(snap[key])
63
63
  }
64
64
  })
65
65
  }
@@ -68,7 +68,9 @@ export function table_reset<
68
68
  * Merges new table options with the current resolved options.
69
69
  *
70
70
  * If `options.mergeOptions` is provided, it owns the merge behavior; otherwise
71
- * options are shallow-merged.
71
+ * options are shallow-merged. Static options that should never change after
72
+ * initialization are restored on a fresh object so framework merge helpers may
73
+ * return readonly getter/proxy objects.
72
74
  *
73
75
  * @example
74
76
  * ```ts
@@ -82,14 +84,52 @@ export function table_mergeOptions<
82
84
  table: Table_Internal<TFeatures, TData>,
83
85
  newOptions: TableOptions<TFeatures, TData>,
84
86
  ) {
85
- if (table.options.mergeOptions) {
86
- return table.options.mergeOptions(table.options, newOptions)
87
+ const { features, atoms, initialState } = table.options
88
+
89
+ // simple merge if no mergeOptions is provided - performant
90
+ if (!table.options.mergeOptions) {
91
+ return {
92
+ ...table.options,
93
+ ...newOptions,
94
+ features,
95
+ atoms,
96
+ initialState,
97
+ }
87
98
  }
88
99
 
89
- return {
90
- ...table.options,
91
- ...newOptions,
100
+ // else use the mergeOptions function and preserve getters/setters
101
+ const mergedOptions = table.options.mergeOptions(
102
+ table.options as TableOptions<TFeatures, TData>,
103
+ newOptions,
104
+ )
105
+ const descriptors: PropertyDescriptorMap = {
106
+ ...Object.getOwnPropertyDescriptors(mergedOptions),
92
107
  }
108
+
109
+ return Object.defineProperties(
110
+ Object.create(Object.getPrototypeOf(mergedOptions)),
111
+ {
112
+ ...descriptors,
113
+ features: {
114
+ value: features,
115
+ enumerable: true,
116
+ configurable: true,
117
+ writable: true,
118
+ },
119
+ atoms: {
120
+ value: atoms,
121
+ enumerable: true,
122
+ configurable: true,
123
+ writable: true,
124
+ },
125
+ initialState: {
126
+ value: initialState,
127
+ enumerable: true,
128
+ configurable: true,
129
+ writable: true,
130
+ },
131
+ },
132
+ ) as TableOptions<TFeatures, TData>
93
133
  }
94
134
 
95
135
  /**
@@ -110,17 +150,11 @@ export function table_setOptions<
110
150
  table: Table_Internal<TFeatures, TData>,
111
151
  updater: Updater<TableOptions<TFeatures, TData>>,
112
152
  ): void {
113
- const newOptions = functionalUpdate(updater, table.options)
114
- // table static options that should never change after initialization
115
- const { rowModels, features, atoms, initialState } = table.options
116
- const mergedOptions = Object.assign(table_mergeOptions(table, newOptions), {
117
- // Once the table instance is created those properties should never change after initialization,
118
- // so we assign them back preserving the `table_mergeOptions` object reference
119
- rowModels,
120
- features,
121
- atoms,
122
- initialState,
123
- })
153
+ const newOptions = functionalUpdate(
154
+ updater,
155
+ table.options as TableOptions<TFeatures, TData>,
156
+ )
157
+ const mergedOptions = table_mergeOptions(table, newOptions)
124
158
 
125
159
  if (table.optionsStore) {
126
160
  table.optionsStore.set(() => mergedOptions)
@@ -11,110 +11,79 @@ import {
11
11
  table_getGlobalFacetedRowModel,
12
12
  table_getGlobalFacetedUniqueValues,
13
13
  } from './columnFacetingFeature.utils'
14
- import type { RowData } from '../../types/type-utils'
15
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
16
- import type { Column_Internal } from '../../types/Column'
17
- // import type {
18
- // CachedRowModel_Faceted,
19
- // Column_ColumnFaceting,
20
- // CreateRowModel_Faceted,
21
- // } from './columnFacetingFeature.types'
22
-
23
- export interface ColumnFacetingFeatureConstructors<
24
- TFeatures extends TableFeatures,
25
- TData extends RowData,
26
- > {
27
- // CachedRowModel: CachedRowModel_Faceted<TFeatures, TData>
28
- // Column: Column_ColumnFaceting<TFeatures, TData>
29
- // CreateRowModels: CreateRowModel_Faceted<TFeatures, TData>
30
- }
14
+ import type { TableFeature } from '../../types/TableFeatures'
31
15
 
32
16
  /**
33
- * Creates the stock column faceting feature.
34
- *
35
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
17
+ * Feature that derives faceted row models, unique values, and min/max values for filters.
36
18
  */
37
- export function constructColumnFacetingFeature<
38
- TFeatures extends TableFeatures,
39
- TData extends RowData,
40
- >(): TableFeature<ColumnFacetingFeatureConstructors<TFeatures, TData>> {
41
- return {
42
- assignColumnPrototype: (prototype, table) => {
43
- assignPrototypeAPIs('columnFacetingFeature', prototype, table, {
44
- column_getFacetedRowModel: {
45
- memoDeps: () => [
46
- table.getPreFilteredRowModel().rows,
47
- table.atoms.columnFilters?.get(),
48
- table.atoms.globalFilter?.get(),
49
- table.getFilteredRowModel().rows,
50
- ],
51
- fn: (column) => column_getFacetedRowModel(column, column.table),
52
- },
53
- column_getFacetedMinMaxValues: {
54
- memoDeps: (column: Column_Internal<TFeatures, TData>) => [
55
- callMemoOrStaticFn(
56
- column,
57
- 'getFacetedRowModel',
58
- column_getFacetedRowModel,
59
- column.table,
60
- ).flatRows,
61
- ],
62
- fn: (column) => column_getFacetedMinMaxValues(column, column.table),
63
- },
64
- column_getFacetedUniqueValues: {
65
- memoDeps: (column: Column_Internal<TFeatures, TData>) => [
66
- callMemoOrStaticFn(
67
- column,
68
- 'getFacetedRowModel',
69
- column_getFacetedRowModel,
70
- column.table,
71
- ).flatRows,
72
- ],
73
- fn: (column) => column_getFacetedUniqueValues(column, column.table),
74
- },
75
- })
76
- },
19
+ export const columnFacetingFeature: TableFeature = {
20
+ assignColumnPrototype: (prototype, table) => {
21
+ assignPrototypeAPIs('columnFacetingFeature', prototype, table, {
22
+ column_getFacetedRowModel: {
23
+ memoDeps: () => [
24
+ table.getPreFilteredRowModel().rows,
25
+ table.atoms.columnFilters?.get(),
26
+ table.atoms.globalFilter?.get(),
27
+ table.getFilteredRowModel().rows,
28
+ ],
29
+ fn: (column) => column_getFacetedRowModel(column, column.table),
30
+ },
31
+ column_getFacetedMinMaxValues: {
32
+ memoDeps: (column) => [
33
+ callMemoOrStaticFn(
34
+ column,
35
+ 'getFacetedRowModel',
36
+ column_getFacetedRowModel,
37
+ column.table,
38
+ ).flatRows,
39
+ ],
40
+ fn: (column) => column_getFacetedMinMaxValues(column, column.table),
41
+ },
42
+ column_getFacetedUniqueValues: {
43
+ memoDeps: (column) => [
44
+ callMemoOrStaticFn(
45
+ column,
46
+ 'getFacetedRowModel',
47
+ column_getFacetedRowModel,
48
+ column.table,
49
+ ).flatRows,
50
+ ],
51
+ fn: (column) => column_getFacetedUniqueValues(column, column.table),
52
+ },
53
+ })
54
+ },
77
55
 
78
- constructTableAPIs: (table) => {
79
- assignTableAPIs('columnFacetingFeature', table, {
80
- table_getGlobalFacetedRowModel: {
81
- memoDeps: () => [
82
- table.getPreFilteredRowModel().rows,
83
- table.atoms.columnFilters?.get(),
84
- table.atoms.globalFilter?.get(),
85
- table.getFilteredRowModel().rows,
86
- ],
87
- fn: () => table_getGlobalFacetedRowModel(table),
88
- },
89
- table_getGlobalFacetedMinMaxValues: {
90
- memoDeps: () => [
91
- callMemoOrStaticFn(
92
- table,
93
- 'getGlobalFacetedRowModel',
94
- table_getGlobalFacetedRowModel,
95
- ).flatRows,
96
- ],
97
- fn: () => table_getGlobalFacetedMinMaxValues(table),
98
- },
99
- table_getGlobalFacetedUniqueValues: {
100
- memoDeps: () => [
101
- callMemoOrStaticFn(
102
- table,
103
- 'getGlobalFacetedRowModel',
104
- table_getGlobalFacetedRowModel,
105
- ).flatRows,
106
- ],
107
- fn: () => table_getGlobalFacetedUniqueValues(table),
108
- },
109
- })
110
- },
111
- }
56
+ constructTableAPIs: (table) => {
57
+ assignTableAPIs('columnFacetingFeature', table, {
58
+ table_getGlobalFacetedRowModel: {
59
+ memoDeps: () => [
60
+ table.getPreFilteredRowModel().rows,
61
+ table.atoms.columnFilters?.get(),
62
+ table.atoms.globalFilter?.get(),
63
+ table.getFilteredRowModel().rows,
64
+ ],
65
+ fn: () => table_getGlobalFacetedRowModel(table),
66
+ },
67
+ table_getGlobalFacetedMinMaxValues: {
68
+ memoDeps: () => [
69
+ callMemoOrStaticFn(
70
+ table,
71
+ 'getGlobalFacetedRowModel',
72
+ table_getGlobalFacetedRowModel,
73
+ ).flatRows,
74
+ ],
75
+ fn: () => table_getGlobalFacetedMinMaxValues(table),
76
+ },
77
+ table_getGlobalFacetedUniqueValues: {
78
+ memoDeps: () => [
79
+ callMemoOrStaticFn(
80
+ table,
81
+ 'getGlobalFacetedRowModel',
82
+ table_getGlobalFacetedRowModel,
83
+ ).flatRows,
84
+ ],
85
+ fn: () => table_getGlobalFacetedUniqueValues(table),
86
+ },
87
+ })
88
+ },
112
89
  }
113
-
114
- /**
115
- * The stock column faceting feature.
116
- *
117
- * Register this feature to add faceted row model, unique value, and min/max
118
- * helpers for column and global filter UIs.
119
- */
120
- export const columnFacetingFeature = constructColumnFacetingFeature()
@@ -4,8 +4,8 @@ import type { TableFeatures } from '../../types/TableFeatures'
4
4
  import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
5
5
 
6
6
  export interface Column_ColumnFaceting<
7
- TFeatures extends TableFeatures,
8
- TData extends RowData,
7
+ in out TFeatures extends TableFeatures,
8
+ in out TData extends RowData,
9
9
  > {
10
10
  /**
11
11
  * Computes min/max numeric facet values for this column.
@@ -25,65 +25,32 @@ export interface Column_ColumnFaceting<
25
25
  }
26
26
 
27
27
  export interface Table_RowModels_Faceted<
28
- TFeatures extends TableFeatures,
29
- TData extends RowData,
28
+ in out TFeatures extends TableFeatures,
29
+ in out TData extends RowData,
30
30
  > {
31
31
  /**
32
32
  * Computes min/max numeric facet values for the active faceting context.
33
33
  *
34
- * Requires a `facetedMinMaxValues` row-model factory in `rowModels`.
34
+ * Requires a `facetedMinMaxValues` row-model factory on the `features` option.
35
35
  */
36
36
  getFacetedMinMaxValues: () => undefined | [number, number]
37
37
  /**
38
38
  * Computes the row model used to derive facet values.
39
39
  *
40
- * Requires a `facetedRowModel` row-model factory in `rowModels`.
40
+ * Requires a `facetedRowModel` row-model factory on the `features` option.
41
41
  */
42
42
  getFacetedRowModel: () => RowModel<TFeatures, TData>
43
43
  /**
44
44
  * Computes unique facet values and occurrence counts.
45
45
  *
46
- * Requires a `facetedUniqueValues` row-model factory in `rowModels`.
46
+ * Requires a `facetedUniqueValues` row-model factory on the `features` option.
47
47
  */
48
48
  getFacetedUniqueValues: () => Map<any, number>
49
49
  }
50
50
 
51
- export interface CreateRowModel_Faceted<
52
- TFeatures extends TableFeatures,
53
- TData extends RowData,
54
- > {
55
- /**
56
- * Factory used to retrieve faceted min/max values. If using server-side
57
- * faceting, this is not required. To use client-side faceting, pass
58
- * `createFacetedMinMaxValues()` or implement your own factory.
59
- */
60
- facetedMinMaxValues?: (
61
- table: Table<TFeatures, TData>,
62
- columnId: string,
63
- ) => () => [number, number] | undefined
64
- /**
65
- * Factory used to retrieve the faceted row model. If using server-side
66
- * faceting, this is not required. To use client-side faceting, pass
67
- * `createFacetedRowModel()` or implement your own factory.
68
- */
69
- facetedRowModel?: (
70
- table: Table<TFeatures, TData>,
71
- columnId: string,
72
- ) => () => RowModel<TFeatures, TData>
73
- /**
74
- * Factory used to retrieve faceted unique values. If using server-side
75
- * faceting, this is not required. To use client-side faceting, pass
76
- * `createFacetedUniqueValues()` or implement your own factory.
77
- */
78
- facetedUniqueValues?: (
79
- table: Table<TFeatures, TData>,
80
- columnId: string,
81
- ) => () => Map<any, number>
82
- }
83
-
84
51
  export interface CachedRowModel_Faceted<
85
- TFeatures extends TableFeatures,
86
- TData extends RowData,
52
+ in out TFeatures extends TableFeatures,
53
+ in out TData extends RowData,
87
54
  > {
88
55
  facetedRowModel?: (columnId: string) => () => RowModel<TFeatures, TData>
89
56
  facetedMinMaxValues?: (columnId: string) => [number, number]
@@ -91,8 +58,8 @@ export interface CachedRowModel_Faceted<
91
58
  }
92
59
 
93
60
  export interface Table_ColumnFaceting<
94
- TFeatures extends TableFeatures,
95
- TData extends RowData,
61
+ in out TFeatures extends TableFeatures,
62
+ in out TData extends RowData,
96
63
  > {
97
64
  /**
98
65
  * Returns the min and max values for the global filter.
@@ -24,7 +24,7 @@ export function column_getFacetedMinMaxValues<
24
24
  table: Table_Internal<TFeatures, TData>,
25
25
  ): [number, number] | undefined {
26
26
  const facetedMinMaxValuesFn =
27
- table.options.rowModels?.facetedMinMaxValues?.(table, column.id) ??
27
+ table.options.features.facetedMinMaxValues?.(table, column.id) ??
28
28
  (() => undefined)
29
29
  return facetedMinMaxValuesFn()
30
30
  }
@@ -50,7 +50,7 @@ export function column_getFacetedRowModel<
50
50
  table: Table_Internal<TFeatures, TData>,
51
51
  ): RowModel<TFeatures, TData> {
52
52
  const facetedRowModelFn =
53
- table.options.rowModels?.facetedRowModel?.(table, column?.id ?? '') ??
53
+ table.options.features.facetedRowModel?.(table, column?.id ?? '') ??
54
54
  (() => table.getPreFilteredRowModel())
55
55
  return facetedRowModelFn()
56
56
  }
@@ -75,7 +75,7 @@ export function column_getFacetedUniqueValues<
75
75
  table: Table_Internal<TFeatures, TData>,
76
76
  ): Map<any, number> {
77
77
  const facetedUniqueValuesFn =
78
- table.options.rowModels?.facetedUniqueValues?.(table, column.id) ??
78
+ table.options.features.facetedUniqueValues?.(table, column.id) ??
79
79
  (() => new Map<any, number>())
80
80
  return facetedUniqueValuesFn()
81
81
  }
@@ -96,7 +96,7 @@ export function table_getGlobalFacetedMinMaxValues<
96
96
  TData extends RowData,
97
97
  >(table: Table_Internal<TFeatures, TData>): undefined | [number, number] {
98
98
  const facetedMinMaxValuesFn =
99
- table.options.rowModels?.facetedMinMaxValues?.(table, '__global__') ??
99
+ table.options.features.facetedMinMaxValues?.(table, '__global__') ??
100
100
  (() => undefined)
101
101
  return facetedMinMaxValuesFn()
102
102
  }
@@ -118,7 +118,7 @@ export function table_getGlobalFacetedRowModel<
118
118
  TData extends RowData,
119
119
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
120
120
  const facetedRowModelFn =
121
- table.options.rowModels?.facetedRowModel?.(table, '__global__') ??
121
+ table.options.features.facetedRowModel?.(table, '__global__') ??
122
122
  (() => table.getPreFilteredRowModel())
123
123
  return facetedRowModelFn()
124
124
  }
@@ -139,7 +139,7 @@ export function table_getGlobalFacetedUniqueValues<
139
139
  TData extends RowData,
140
140
  >(table: Table_Internal<TFeatures, TData>): Map<any, number> {
141
141
  const facetedUniqueValuesFn =
142
- table.options.rowModels?.facetedUniqueValues?.(table, '__global__') ??
142
+ table.options.features.facetedUniqueValues?.(table, '__global__') ??
143
143
  (() => new Map())
144
144
  return facetedUniqueValuesFn()
145
145
  }
@@ -18,7 +18,7 @@ export function createFacetedMinMaxValues<
18
18
  columnId: string,
19
19
  ) => () => undefined | [number, number] {
20
20
  return (_table, columnId) => {
21
- const table: Table_Internal<TFeatures, TData> = _table
21
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
22
22
  return tableMemo({
23
23
  feature: 'columnFacetingFeature',
24
24
  fn: (flatRows) => _createFacetedMinMaxValues(columnId, flatRows),
@@ -23,7 +23,7 @@ export function createFacetedRowModel<
23
23
  columnId: string,
24
24
  ) => () => RowModel<TFeatures, TData> {
25
25
  return (_table, columnId) => {
26
- const table: Table_Internal<TFeatures, TData> = _table
26
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
27
27
  return tableMemo({
28
28
  feature: 'columnFacetingFeature',
29
29
  table,
@@ -18,7 +18,7 @@ export function createFacetedUniqueValues<
18
18
  columnId: string,
19
19
  ) => () => Map<any, number> {
20
20
  return (_table, columnId) => {
21
- const table: Table_Internal<TFeatures, TData> = _table
21
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
22
22
  return tableMemo({
23
23
  feature: 'columnFacetingFeature',
24
24
  table,
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  assignPrototypeAPIs,
3
3
  assignTableAPIs,
4
+ makeObjectMap,
4
5
  makeStateUpdater,
5
6
  } from '../../utils'
6
7
  import {
@@ -15,115 +16,72 @@ import {
15
16
  table_resetColumnFilters,
16
17
  table_setColumnFilters,
17
18
  } from './columnFilteringFeature.utils'
18
- import type { RowData } from '../../types/type-utils'
19
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
20
- // import type {
21
- // CachedRowModel_Filtered,
22
- // ColumnDef_ColumnFiltering,
23
- // Column_ColumnFiltering,
24
- // CreateRowModel_Filtered,
25
- // RowModelFns_ColumnFiltering,
26
- // Row_ColumnFiltering,
27
- // TableOptions_ColumnFiltering,
28
- // TableState_ColumnFiltering,
29
- // Table_ColumnFiltering,
30
- // } from './columnFilteringFeature.types'
31
-
32
- export interface ColumnFilteringFeatureConstructors<
33
- TFeatures extends TableFeatures,
34
- TData extends RowData,
35
- > {
36
- // CachedRowModel: CachedRowModel_Filtered<TFeatures, TData>
37
- // Column: Column_ColumnFiltering<TFeatures, TData>
38
- // ColumnDef: ColumnDef_ColumnFiltering<TFeatures, TData>
39
- // CreateRowModels: CreateRowModel_Filtered<TFeatures, TData>
40
- // Row: Row_ColumnFiltering<TFeatures, TData>
41
- // RowModelFns: RowModelFns_ColumnFiltering<TFeatures, TData>
42
- // Table: Table_ColumnFiltering<TFeatures, TData>
43
- // TableOptions: TableOptions_ColumnFiltering<TFeatures, TData>
44
- // TableState: TableState_ColumnFiltering
45
- }
19
+ import type { TableFeature } from '../../types/TableFeatures'
46
20
 
47
21
  /**
48
- * Creates the stock column filtering feature.
49
- *
50
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
22
+ * Feature that adds per-column filtering state, options, and column/table filter APIs.
51
23
  */
52
- export function constructColumnFilteringFeature<
53
- TFeatures extends TableFeatures,
54
- TData extends RowData,
55
- >(): TableFeature<ColumnFilteringFeatureConstructors<TFeatures, TData>> {
56
- return {
57
- getInitialState: (initialState) => {
58
- return {
59
- columnFilters: getDefaultColumnFiltersState(),
60
- ...initialState,
61
- }
62
- },
24
+ export const columnFilteringFeature: TableFeature = {
25
+ getInitialState: (initialState) => {
26
+ return {
27
+ columnFilters: getDefaultColumnFiltersState(),
28
+ ...initialState,
29
+ }
30
+ },
63
31
 
64
- getDefaultColumnDef: () => {
65
- return {
66
- filterFn: 'auto',
67
- }
68
- },
32
+ getDefaultColumnDef: () => {
33
+ return {
34
+ filterFn: 'auto',
35
+ }
36
+ },
69
37
 
70
- getDefaultTableOptions: (table) => {
71
- return {
72
- onColumnFiltersChange: makeStateUpdater('columnFilters', table),
73
- filterFromLeafRows: false,
74
- maxLeafRowFilterDepth: 100,
75
- }
76
- },
38
+ getDefaultTableOptions: (table) => {
39
+ return {
40
+ onColumnFiltersChange: makeStateUpdater('columnFilters', table),
41
+ filterFromLeafRows: false,
42
+ maxLeafRowFilterDepth: 100,
43
+ }
44
+ },
77
45
 
78
- assignColumnPrototype: (prototype, table) => {
79
- assignPrototypeAPIs('columnFilteringFeature', prototype, table, {
80
- column_getAutoFilterFn: {
81
- fn: (column) => column_getAutoFilterFn(column),
82
- },
83
- column_getFilterFn: {
84
- fn: (column) => column_getFilterFn(column),
85
- },
86
- column_getCanFilter: {
87
- fn: (column) => column_getCanFilter(column),
88
- },
89
- column_getIsFiltered: {
90
- fn: (column) => column_getIsFiltered(column),
91
- },
92
- column_getFilterValue: {
93
- fn: (column) => column_getFilterValue(column),
94
- },
95
- column_getFilterIndex: {
96
- fn: (column) => column_getFilterIndex(column),
97
- },
98
- column_setFilterValue: {
99
- fn: (column, value) => column_setFilterValue(column, value),
100
- },
101
- })
102
- },
46
+ assignColumnPrototype: (prototype, table) => {
47
+ assignPrototypeAPIs('columnFilteringFeature', prototype, table, {
48
+ column_getAutoFilterFn: {
49
+ fn: (column) => column_getAutoFilterFn(column),
50
+ },
51
+ column_getFilterFn: {
52
+ fn: (column) => column_getFilterFn(column),
53
+ },
54
+ column_getCanFilter: {
55
+ fn: (column) => column_getCanFilter(column),
56
+ },
57
+ column_getIsFiltered: {
58
+ fn: (column) => column_getIsFiltered(column),
59
+ },
60
+ column_getFilterValue: {
61
+ fn: (column) => column_getFilterValue(column),
62
+ },
63
+ column_getFilterIndex: {
64
+ fn: (column) => column_getFilterIndex(column),
65
+ },
66
+ column_setFilterValue: {
67
+ fn: (column, value) => column_setFilterValue(column, value),
68
+ },
69
+ })
70
+ },
103
71
 
104
- initRowInstanceData: (row) => {
105
- ;(row as any).columnFilters = {}
106
- ;(row as any).columnFiltersMeta = {}
107
- },
72
+ initRowInstanceData: (row) => {
73
+ ;(row as any).columnFilters = makeObjectMap()
74
+ ;(row as any).columnFiltersMeta = makeObjectMap()
75
+ },
108
76
 
109
- constructTableAPIs: (table) => {
110
- assignTableAPIs('columnFilteringFeature', table, {
111
- table_setColumnFilters: {
112
- fn: (updater) => table_setColumnFilters(table, updater),
113
- },
114
- table_resetColumnFilters: {
115
- fn: (defaultState) => table_resetColumnFilters(table, defaultState),
116
- },
117
- })
118
- },
119
- }
77
+ constructTableAPIs: (table) => {
78
+ assignTableAPIs('columnFilteringFeature', table, {
79
+ table_setColumnFilters: {
80
+ fn: (updater) => table_setColumnFilters(table, updater),
81
+ },
82
+ table_resetColumnFilters: {
83
+ fn: (defaultState) => table_resetColumnFilters(table, defaultState),
84
+ },
85
+ })
86
+ },
120
87
  }
121
-
122
- /**
123
- * The stock column filtering feature.
124
- *
125
- * Register this feature to add column filter state, filter defaults, and
126
- * table/row/column APIs for client-side or manual column filtering. Global
127
- * filtering is provided by `globalFilteringFeature`.
128
- */
129
- export const columnFilteringFeature = constructColumnFilteringFeature()