@tanstack/table-core 9.0.0-alpha.6 → 9.0.0-beta.1

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 (855) hide show
  1. package/README.md +127 -0
  2. package/dist/core/cells/constructCell.cjs +34 -0
  3. package/dist/core/cells/constructCell.cjs.map +1 -0
  4. package/dist/core/cells/constructCell.d.cts +17 -0
  5. package/dist/core/cells/constructCell.d.ts +17 -0
  6. package/dist/core/cells/constructCell.js +33 -0
  7. package/dist/core/cells/constructCell.js.map +1 -0
  8. package/dist/core/cells/coreCellsFeature.cjs +30 -0
  9. package/dist/core/cells/coreCellsFeature.cjs.map +1 -0
  10. package/dist/core/cells/coreCellsFeature.d.cts +18 -0
  11. package/dist/core/cells/coreCellsFeature.d.ts +18 -0
  12. package/dist/core/cells/coreCellsFeature.js +29 -0
  13. package/dist/core/cells/coreCellsFeature.js.map +1 -0
  14. package/dist/core/cells/coreCellsFeature.types.d.cts +57 -0
  15. package/dist/core/cells/coreCellsFeature.types.d.ts +57 -0
  16. package/dist/core/cells/coreCellsFeature.utils.cjs +57 -0
  17. package/dist/core/cells/coreCellsFeature.utils.cjs.map +1 -0
  18. package/dist/core/cells/coreCellsFeature.utils.d.cts +53 -0
  19. package/dist/core/cells/coreCellsFeature.utils.d.ts +53 -0
  20. package/dist/core/cells/coreCellsFeature.utils.js +54 -0
  21. package/dist/core/cells/coreCellsFeature.utils.js.map +1 -0
  22. package/dist/core/columns/constructColumn.cjs +61 -0
  23. package/dist/core/columns/constructColumn.cjs.map +1 -0
  24. package/dist/core/columns/constructColumn.d.cts +16 -0
  25. package/dist/core/columns/constructColumn.d.ts +16 -0
  26. package/dist/core/columns/constructColumn.js +60 -0
  27. package/dist/core/columns/constructColumn.js.map +1 -0
  28. package/dist/core/columns/coreColumnsFeature.cjs +79 -0
  29. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -0
  30. package/dist/core/columns/coreColumnsFeature.d.cts +18 -0
  31. package/dist/core/columns/coreColumnsFeature.d.ts +18 -0
  32. package/dist/core/columns/coreColumnsFeature.js +78 -0
  33. package/dist/core/columns/coreColumnsFeature.js.map +1 -0
  34. package/dist/core/columns/coreColumnsFeature.types.d.cts +94 -0
  35. package/dist/core/columns/coreColumnsFeature.types.d.ts +94 -0
  36. package/dist/core/columns/coreColumnsFeature.utils.cjs +187 -0
  37. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -0
  38. package/dist/core/columns/coreColumnsFeature.utils.d.cts +119 -0
  39. package/dist/core/columns/coreColumnsFeature.utils.d.ts +119 -0
  40. package/dist/core/columns/coreColumnsFeature.utils.js +179 -0
  41. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -0
  42. package/dist/core/coreFeatures.cjs +25 -0
  43. package/dist/core/coreFeatures.cjs.map +1 -0
  44. package/dist/core/coreFeatures.d.cts +26 -0
  45. package/dist/core/coreFeatures.d.ts +26 -0
  46. package/dist/core/coreFeatures.js +25 -0
  47. package/dist/core/coreFeatures.js.map +1 -0
  48. package/dist/core/headers/buildHeaderGroups.cjs +103 -0
  49. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -0
  50. package/dist/core/headers/buildHeaderGroups.d.cts +16 -0
  51. package/dist/core/headers/buildHeaderGroups.d.ts +16 -0
  52. package/dist/core/headers/buildHeaderGroups.js +103 -0
  53. package/dist/core/headers/buildHeaderGroups.js.map +1 -0
  54. package/dist/core/headers/constructHeader.cjs +41 -0
  55. package/dist/core/headers/constructHeader.cjs.map +1 -0
  56. package/dist/core/headers/constructHeader.d.cts +22 -0
  57. package/dist/core/headers/constructHeader.d.ts +22 -0
  58. package/dist/core/headers/constructHeader.js +40 -0
  59. package/dist/core/headers/constructHeader.js.map +1 -0
  60. package/dist/core/headers/coreHeadersFeature.cjs +64 -0
  61. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -0
  62. package/dist/core/headers/coreHeadersFeature.d.cts +18 -0
  63. package/dist/core/headers/coreHeadersFeature.d.ts +18 -0
  64. package/dist/core/headers/coreHeadersFeature.js +63 -0
  65. package/dist/core/headers/coreHeadersFeature.js.map +1 -0
  66. package/dist/core/headers/coreHeadersFeature.types.d.cts +106 -0
  67. package/dist/core/headers/coreHeadersFeature.types.d.ts +106 -0
  68. package/dist/core/headers/coreHeadersFeature.utils.cjs +142 -0
  69. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -0
  70. package/dist/core/headers/coreHeadersFeature.utils.d.cts +85 -0
  71. package/dist/core/headers/coreHeadersFeature.utils.d.ts +85 -0
  72. package/dist/core/headers/coreHeadersFeature.utils.js +137 -0
  73. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -0
  74. package/dist/core/reactivity/coreReactivityFeature.types.d.cts +48 -0
  75. package/dist/core/reactivity/coreReactivityFeature.types.d.ts +48 -0
  76. package/dist/core/reactivity/coreReactivityFeature.utils.cjs +24 -0
  77. package/dist/core/reactivity/coreReactivityFeature.utils.cjs.map +1 -0
  78. package/dist/core/reactivity/coreReactivityFeature.utils.d.cts +24 -0
  79. package/dist/core/reactivity/coreReactivityFeature.utils.d.ts +24 -0
  80. package/dist/core/reactivity/coreReactivityFeature.utils.js +23 -0
  81. package/dist/core/reactivity/coreReactivityFeature.utils.js.map +1 -0
  82. package/dist/core/row-models/coreRowModelsFeature.cjs +36 -0
  83. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -0
  84. package/dist/core/row-models/coreRowModelsFeature.d.cts +18 -0
  85. package/dist/core/row-models/coreRowModelsFeature.d.ts +18 -0
  86. package/dist/core/row-models/coreRowModelsFeature.js +35 -0
  87. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -0
  88. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +43 -0
  89. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +43 -0
  90. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +215 -0
  91. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -0
  92. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +153 -0
  93. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +153 -0
  94. package/dist/core/row-models/coreRowModelsFeature.utils.js +204 -0
  95. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -0
  96. package/dist/core/row-models/createCoreRowModel.cjs +52 -0
  97. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -0
  98. package/dist/core/row-models/createCoreRowModel.d.cts +15 -0
  99. package/dist/core/row-models/createCoreRowModel.d.ts +15 -0
  100. package/dist/core/row-models/createCoreRowModel.js +52 -0
  101. package/dist/core/row-models/createCoreRowModel.js.map +1 -0
  102. package/dist/core/rows/constructRow.cjs +44 -0
  103. package/dist/core/rows/constructRow.cjs.map +1 -0
  104. package/dist/core/rows/constructRow.d.cts +15 -0
  105. package/dist/core/rows/constructRow.d.ts +15 -0
  106. package/dist/core/rows/constructRow.js +43 -0
  107. package/dist/core/rows/constructRow.js.map +1 -0
  108. package/dist/core/rows/coreRowsFeature.cjs +46 -0
  109. package/dist/core/rows/coreRowsFeature.cjs.map +1 -0
  110. package/dist/core/rows/coreRowsFeature.d.cts +18 -0
  111. package/dist/core/rows/coreRowsFeature.d.ts +18 -0
  112. package/dist/core/rows/coreRowsFeature.js +45 -0
  113. package/dist/core/rows/coreRowsFeature.js.map +1 -0
  114. package/dist/core/rows/coreRowsFeature.types.d.cts +99 -0
  115. package/dist/core/rows/coreRowsFeature.types.d.ts +99 -0
  116. package/dist/core/rows/coreRowsFeature.utils.cjs +192 -0
  117. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -0
  118. package/dist/core/rows/coreRowsFeature.utils.d.cts +127 -0
  119. package/dist/core/rows/coreRowsFeature.utils.d.ts +127 -0
  120. package/dist/core/rows/coreRowsFeature.utils.js +183 -0
  121. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -0
  122. package/dist/core/table/constructTable.cjs +118 -0
  123. package/dist/core/table/constructTable.cjs.map +1 -0
  124. package/dist/core/table/constructTable.d.cts +22 -0
  125. package/dist/core/table/constructTable.d.ts +22 -0
  126. package/dist/core/table/constructTable.js +117 -0
  127. package/dist/core/table/constructTable.js.map +1 -0
  128. package/dist/core/table/coreTablesFeature.cjs +26 -0
  129. package/dist/core/table/coreTablesFeature.cjs.map +1 -0
  130. package/dist/core/table/coreTablesFeature.d.cts +18 -0
  131. package/dist/core/table/coreTablesFeature.d.ts +18 -0
  132. package/dist/core/table/coreTablesFeature.js +25 -0
  133. package/dist/core/table/coreTablesFeature.js.map +1 -0
  134. package/dist/core/table/coreTablesFeature.types.d.cts +186 -0
  135. package/dist/core/table/coreTablesFeature.types.d.ts +186 -0
  136. package/dist/core/table/coreTablesFeature.utils.cjs +96 -0
  137. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -0
  138. package/dist/core/table/coreTablesFeature.utils.d.cts +57 -0
  139. package/dist/core/table/coreTablesFeature.utils.d.ts +57 -0
  140. package/dist/core/table/coreTablesFeature.utils.js +93 -0
  141. package/dist/core/table/coreTablesFeature.utils.js.map +1 -0
  142. package/dist/features/column-faceting/columnFacetingFeature.cjs +73 -0
  143. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -0
  144. package/dist/features/column-faceting/columnFacetingFeature.d.cts +21 -0
  145. package/dist/features/column-faceting/columnFacetingFeature.d.ts +21 -0
  146. package/dist/features/column-faceting/columnFacetingFeature.js +72 -0
  147. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -0
  148. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +85 -0
  149. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +85 -0
  150. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +103 -0
  151. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -0
  152. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +84 -0
  153. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +84 -0
  154. package/dist/features/column-faceting/columnFacetingFeature.utils.js +97 -0
  155. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -0
  156. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +44 -0
  157. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -0
  158. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +14 -0
  159. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +14 -0
  160. package/dist/features/column-faceting/createFacetedMinMaxValues.js +44 -0
  161. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -0
  162. package/dist/features/column-faceting/createFacetedRowModel.cjs +50 -0
  163. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -0
  164. package/dist/features/column-faceting/createFacetedRowModel.d.cts +15 -0
  165. package/dist/features/column-faceting/createFacetedRowModel.d.ts +15 -0
  166. package/dist/features/column-faceting/createFacetedRowModel.js +50 -0
  167. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -0
  168. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +41 -0
  169. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -0
  170. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +14 -0
  171. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +14 -0
  172. package/dist/features/column-faceting/createFacetedUniqueValues.js +41 -0
  173. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -0
  174. package/dist/features/column-filtering/columnFilteringFeature.cjs +63 -0
  175. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -0
  176. package/dist/features/column-filtering/columnFilteringFeature.d.cts +22 -0
  177. package/dist/features/column-filtering/columnFilteringFeature.d.ts +22 -0
  178. package/dist/features/column-filtering/columnFilteringFeature.js +62 -0
  179. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -0
  180. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +160 -0
  181. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +160 -0
  182. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +212 -0
  183. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -0
  184. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +143 -0
  185. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +143 -0
  186. package/dist/features/column-filtering/columnFilteringFeature.utils.js +202 -0
  187. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -0
  188. package/dist/features/column-filtering/createFilteredRowModel.cjs +110 -0
  189. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -0
  190. package/dist/features/column-filtering/createFilteredRowModel.d.cts +16 -0
  191. package/dist/features/column-filtering/createFilteredRowModel.d.ts +16 -0
  192. package/dist/features/column-filtering/createFilteredRowModel.js +110 -0
  193. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -0
  194. package/dist/features/column-filtering/filterRowsUtils.cjs +81 -0
  195. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -0
  196. package/dist/features/column-filtering/filterRowsUtils.js +81 -0
  197. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -0
  198. package/dist/features/column-grouping/columnGroupingFeature.cjs +79 -0
  199. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -0
  200. package/dist/features/column-grouping/columnGroupingFeature.d.cts +21 -0
  201. package/dist/features/column-grouping/columnGroupingFeature.d.ts +21 -0
  202. package/dist/features/column-grouping/columnGroupingFeature.js +78 -0
  203. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -0
  204. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +165 -0
  205. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +165 -0
  206. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +250 -0
  207. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -0
  208. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +190 -0
  209. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +190 -0
  210. package/dist/features/column-grouping/columnGroupingFeature.utils.js +236 -0
  211. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -0
  212. package/dist/features/column-grouping/createGroupedRowModel.cjs +119 -0
  213. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -0
  214. package/dist/features/column-grouping/createGroupedRowModel.d.cts +16 -0
  215. package/dist/features/column-grouping/createGroupedRowModel.d.ts +16 -0
  216. package/dist/features/column-grouping/createGroupedRowModel.js +119 -0
  217. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -0
  218. package/dist/features/column-ordering/columnOrderingFeature.cjs +70 -0
  219. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -0
  220. package/dist/features/column-ordering/columnOrderingFeature.d.cts +21 -0
  221. package/dist/features/column-ordering/columnOrderingFeature.d.ts +21 -0
  222. package/dist/features/column-ordering/columnOrderingFeature.js +69 -0
  223. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -0
  224. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +56 -0
  225. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +56 -0
  226. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +172 -0
  227. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -0
  228. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +107 -0
  229. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +107 -0
  230. package/dist/features/column-ordering/columnOrderingFeature.utils.js +165 -0
  231. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -0
  232. package/dist/features/column-pinning/columnPinningFeature.cjs +233 -0
  233. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -0
  234. package/dist/features/column-pinning/columnPinningFeature.d.cts +21 -0
  235. package/dist/features/column-pinning/columnPinningFeature.d.ts +21 -0
  236. package/dist/features/column-pinning/columnPinningFeature.js +232 -0
  237. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -0
  238. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +178 -0
  239. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +178 -0
  240. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +585 -0
  241. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -0
  242. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +375 -0
  243. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +375 -0
  244. package/dist/features/column-pinning/columnPinningFeature.utils.js +555 -0
  245. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -0
  246. package/dist/features/column-resizing/columnResizingFeature.cjs +53 -0
  247. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -0
  248. package/dist/features/column-resizing/columnResizingFeature.d.cts +21 -0
  249. package/dist/features/column-resizing/columnResizingFeature.d.ts +21 -0
  250. package/dist/features/column-resizing/columnResizingFeature.js +52 -0
  251. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -0
  252. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +81 -0
  253. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +81 -0
  254. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +246 -0
  255. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -0
  256. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +109 -0
  257. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +109 -0
  258. package/dist/features/column-resizing/columnResizingFeature.utils.js +239 -0
  259. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -0
  260. package/dist/features/column-sizing/columnSizingFeature.cjs +137 -0
  261. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -0
  262. package/dist/features/column-sizing/columnSizingFeature.d.cts +22 -0
  263. package/dist/features/column-sizing/columnSizingFeature.d.ts +22 -0
  264. package/dist/features/column-sizing/columnSizingFeature.js +136 -0
  265. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -0
  266. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +96 -0
  267. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +96 -0
  268. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +256 -0
  269. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -0
  270. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +182 -0
  271. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +182 -0
  272. package/dist/features/column-sizing/columnSizingFeature.utils.js +243 -0
  273. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -0
  274. package/dist/features/column-visibility/columnVisibilityFeature.cjs +106 -0
  275. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -0
  276. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +21 -0
  277. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +21 -0
  278. package/dist/features/column-visibility/columnVisibilityFeature.js +105 -0
  279. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -0
  280. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +97 -0
  281. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +97 -0
  282. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +283 -0
  283. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -0
  284. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +189 -0
  285. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +189 -0
  286. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +269 -0
  287. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -0
  288. package/dist/features/global-filtering/globalFilteringFeature.cjs +53 -0
  289. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -0
  290. package/dist/features/global-filtering/globalFilteringFeature.d.cts +21 -0
  291. package/dist/features/global-filtering/globalFilteringFeature.d.ts +21 -0
  292. package/dist/features/global-filtering/globalFilteringFeature.js +52 -0
  293. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -0
  294. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +71 -0
  295. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +71 -0
  296. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +88 -0
  297. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -0
  298. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +72 -0
  299. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +72 -0
  300. package/dist/features/global-filtering/globalFilteringFeature.utils.js +84 -0
  301. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -0
  302. package/dist/features/row-expanding/createExpandedRowModel.cjs +59 -0
  303. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -0
  304. package/dist/features/row-expanding/createExpandedRowModel.d.cts +21 -0
  305. package/dist/features/row-expanding/createExpandedRowModel.d.ts +21 -0
  306. package/dist/features/row-expanding/createExpandedRowModel.js +58 -0
  307. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -0
  308. package/dist/features/row-expanding/rowExpandingFeature.cjs +59 -0
  309. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -0
  310. package/dist/features/row-expanding/rowExpandingFeature.d.cts +21 -0
  311. package/dist/features/row-expanding/rowExpandingFeature.d.ts +21 -0
  312. package/dist/features/row-expanding/rowExpandingFeature.js +58 -0
  313. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -0
  314. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +127 -0
  315. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +127 -0
  316. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +281 -0
  317. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -0
  318. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +191 -0
  319. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +191 -0
  320. package/dist/features/row-expanding/rowExpandingFeature.utils.js +267 -0
  321. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -0
  322. package/dist/features/row-pagination/createPaginatedRowModel.cjs +62 -0
  323. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -0
  324. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +15 -0
  325. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +15 -0
  326. package/dist/features/row-pagination/createPaginatedRowModel.js +62 -0
  327. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -0
  328. package/dist/features/row-pagination/rowPaginationFeature.cjs +57 -0
  329. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -0
  330. package/dist/features/row-pagination/rowPaginationFeature.d.cts +21 -0
  331. package/dist/features/row-pagination/rowPaginationFeature.d.ts +21 -0
  332. package/dist/features/row-pagination/rowPaginationFeature.js +56 -0
  333. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -0
  334. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +135 -0
  335. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +135 -0
  336. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +312 -0
  337. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -0
  338. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +218 -0
  339. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +218 -0
  340. package/dist/features/row-pagination/rowPaginationFeature.utils.js +296 -0
  341. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -0
  342. package/dist/features/row-pinning/rowPinningFeature.cjs +79 -0
  343. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -0
  344. package/dist/features/row-pinning/rowPinningFeature.d.cts +21 -0
  345. package/dist/features/row-pinning/rowPinningFeature.d.ts +21 -0
  346. package/dist/features/row-pinning/rowPinningFeature.js +78 -0
  347. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -0
  348. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +83 -0
  349. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +83 -0
  350. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +229 -0
  351. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -0
  352. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +143 -0
  353. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +143 -0
  354. package/dist/features/row-pinning/rowPinningFeature.utils.js +219 -0
  355. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -0
  356. package/dist/features/row-selection/rowSelectionFeature.cjs +87 -0
  357. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -0
  358. package/dist/features/row-selection/rowSelectionFeature.d.cts +21 -0
  359. package/dist/features/row-selection/rowSelectionFeature.d.ts +21 -0
  360. package/dist/features/row-selection/rowSelectionFeature.js +86 -0
  361. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -0
  362. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +136 -0
  363. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +136 -0
  364. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +514 -0
  365. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -0
  366. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +318 -0
  367. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +318 -0
  368. package/dist/features/row-selection/rowSelectionFeature.utils.js +489 -0
  369. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -0
  370. package/dist/features/row-sorting/createSortedRowModel.cjs +95 -0
  371. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -0
  372. package/dist/features/row-sorting/createSortedRowModel.d.cts +16 -0
  373. package/dist/features/row-sorting/createSortedRowModel.d.ts +16 -0
  374. package/dist/features/row-sorting/createSortedRowModel.js +95 -0
  375. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -0
  376. package/dist/features/row-sorting/rowSortingFeature.cjs +67 -0
  377. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -0
  378. package/dist/features/row-sorting/rowSortingFeature.d.cts +21 -0
  379. package/dist/features/row-sorting/rowSortingFeature.d.ts +21 -0
  380. package/dist/features/row-sorting/rowSortingFeature.js +66 -0
  381. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -0
  382. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +188 -0
  383. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +188 -0
  384. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +302 -0
  385. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -0
  386. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +193 -0
  387. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +193 -0
  388. package/dist/features/row-sorting/rowSortingFeature.utils.js +288 -0
  389. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -0
  390. package/dist/features/stockFeatures.cjs +41 -0
  391. package/dist/features/stockFeatures.cjs.map +1 -0
  392. package/dist/features/stockFeatures.d.cts +41 -0
  393. package/dist/features/stockFeatures.d.ts +41 -0
  394. package/dist/features/stockFeatures.js +41 -0
  395. package/dist/features/stockFeatures.js.map +1 -0
  396. package/dist/flex-render.cjs +29 -0
  397. package/dist/flex-render.cjs.map +1 -0
  398. package/dist/flex-render.d.cts +34 -0
  399. package/dist/flex-render.d.ts +34 -0
  400. package/dist/flex-render.js +26 -0
  401. package/dist/flex-render.js.map +1 -0
  402. package/dist/fns/aggregationFns.cjs +161 -0
  403. package/dist/fns/aggregationFns.cjs.map +1 -0
  404. package/dist/fns/aggregationFns.d.cts +83 -0
  405. package/dist/fns/aggregationFns.d.ts +83 -0
  406. package/dist/fns/aggregationFns.js +151 -0
  407. package/dist/fns/aggregationFns.js.map +1 -0
  408. package/dist/fns/filterFns.cjs +215 -0
  409. package/dist/fns/filterFns.cjs.map +1 -0
  410. package/dist/fns/filterFns.d.cts +113 -0
  411. package/dist/fns/filterFns.d.ts +113 -0
  412. package/dist/fns/filterFns.js +199 -0
  413. package/dist/fns/filterFns.js.map +1 -0
  414. package/dist/fns/sortFns.cjs +118 -0
  415. package/dist/fns/sortFns.cjs.map +1 -0
  416. package/dist/fns/sortFns.d.cts +63 -0
  417. package/dist/fns/sortFns.d.ts +63 -0
  418. package/dist/fns/sortFns.js +110 -0
  419. package/dist/fns/sortFns.js.map +1 -0
  420. package/dist/helpers/columnHelper.cjs +41 -0
  421. package/dist/helpers/columnHelper.cjs.map +1 -0
  422. package/dist/helpers/columnHelper.d.cts +71 -0
  423. package/dist/helpers/columnHelper.d.ts +71 -0
  424. package/dist/helpers/columnHelper.js +40 -0
  425. package/dist/helpers/columnHelper.js.map +1 -0
  426. package/dist/helpers/tableFeatures.cjs +20 -0
  427. package/dist/helpers/tableFeatures.cjs.map +1 -0
  428. package/dist/helpers/tableFeatures.d.cts +18 -0
  429. package/dist/helpers/tableFeatures.d.ts +18 -0
  430. package/dist/helpers/tableFeatures.js +19 -0
  431. package/dist/helpers/tableFeatures.js.map +1 -0
  432. package/dist/helpers/tableOptions.cjs +15 -0
  433. package/dist/helpers/tableOptions.cjs.map +1 -0
  434. package/dist/helpers/tableOptions.d.cts +57 -0
  435. package/dist/helpers/tableOptions.d.ts +57 -0
  436. package/dist/helpers/tableOptions.js +14 -0
  437. package/dist/helpers/tableOptions.js.map +1 -0
  438. package/dist/index.cjs +153 -0
  439. package/dist/index.d.cts +78 -0
  440. package/dist/index.d.ts +78 -0
  441. package/dist/index.js +46 -0
  442. package/dist/reactivity.cjs +4 -0
  443. package/dist/reactivity.d.cts +3 -0
  444. package/dist/reactivity.d.ts +3 -0
  445. package/dist/reactivity.js +3 -0
  446. package/dist/static-functions.cjs +263 -0
  447. package/dist/static-functions.d.cts +21 -0
  448. package/dist/static-functions.d.ts +21 -0
  449. package/dist/static-functions.js +22 -0
  450. package/dist/store-reactivity-bindings.cjs +44 -0
  451. package/dist/store-reactivity-bindings.cjs.map +1 -0
  452. package/dist/store-reactivity-bindings.d.cts +22 -0
  453. package/dist/store-reactivity-bindings.d.ts +22 -0
  454. package/dist/store-reactivity-bindings.js +43 -0
  455. package/dist/store-reactivity-bindings.js.map +1 -0
  456. package/dist/types/Cell.d.cts +16 -0
  457. package/dist/types/Cell.d.ts +16 -0
  458. package/dist/types/Column.d.cts +29 -0
  459. package/dist/types/Column.d.ts +29 -0
  460. package/dist/types/ColumnDef.d.cts +104 -0
  461. package/dist/types/ColumnDef.d.ts +104 -0
  462. package/dist/types/Header.d.cts +17 -0
  463. package/dist/types/Header.d.ts +17 -0
  464. package/dist/types/HeaderGroup.d.cts +15 -0
  465. package/dist/types/HeaderGroup.d.ts +15 -0
  466. package/dist/types/Row.d.cts +22 -0
  467. package/dist/types/Row.d.ts +22 -0
  468. package/dist/types/RowModel.d.cts +26 -0
  469. package/dist/types/RowModel.d.ts +26 -0
  470. package/dist/types/RowModelFns.d.cts +18 -0
  471. package/dist/types/RowModelFns.d.ts +18 -0
  472. package/dist/types/Table.d.cts +59 -0
  473. package/dist/types/Table.d.ts +59 -0
  474. package/dist/types/TableFeatures.d.cts +77 -0
  475. package/dist/types/TableFeatures.d.ts +77 -0
  476. package/dist/types/TableOptions.d.cts +54 -0
  477. package/dist/types/TableOptions.d.ts +54 -0
  478. package/dist/types/TableState.d.cts +39 -0
  479. package/dist/types/TableState.d.ts +39 -0
  480. package/dist/types/type-utils.d.cts +23 -0
  481. package/dist/types/type-utils.d.ts +23 -0
  482. package/dist/utils.cjs +243 -0
  483. package/dist/utils.cjs.map +1 -0
  484. package/dist/utils.d.cts +114 -0
  485. package/dist/utils.d.ts +114 -0
  486. package/dist/utils.js +232 -0
  487. package/dist/utils.js.map +1 -0
  488. package/package.json +43 -16
  489. package/skills/column-definitions/SKILL.md +333 -0
  490. package/skills/column-layout/SKILL.md +328 -0
  491. package/skills/column-layout/references/subsystems.md +220 -0
  492. package/skills/customizing-feature-behavior/SKILL.md +416 -0
  493. package/skills/filtering/SKILL.md +357 -0
  494. package/skills/filtering/references/faceting-and-fuzzy.md +191 -0
  495. package/skills/grouping/SKILL.md +448 -0
  496. package/skills/migrate-v8-to-v9/SKILL.md +495 -0
  497. package/skills/pagination/SKILL.md +385 -0
  498. package/skills/row-expanding/SKILL.md +348 -0
  499. package/skills/row-pinning/SKILL.md +269 -0
  500. package/skills/row-selection/SKILL.md +391 -0
  501. package/skills/setup/SKILL.md +400 -0
  502. package/skills/sorting/SKILL.md +344 -0
  503. package/skills/state-management/SKILL.md +388 -0
  504. package/src/core/cells/constructCell.ts +55 -0
  505. package/src/core/cells/coreCellsFeature.ts +49 -0
  506. package/src/core/cells/coreCellsFeature.types.ts +68 -0
  507. package/src/core/cells/coreCellsFeature.utils.ts +68 -0
  508. package/src/core/columns/constructColumn.ts +119 -0
  509. package/src/core/columns/coreColumnsFeature.ts +100 -0
  510. package/src/core/columns/coreColumnsFeature.types.ts +108 -0
  511. package/src/core/columns/coreColumnsFeature.utils.ts +275 -0
  512. package/src/core/coreFeatures.ts +31 -0
  513. package/src/core/headers/buildHeaderGroups.ts +182 -0
  514. package/src/core/headers/constructHeader.ts +67 -0
  515. package/src/core/headers/coreHeadersFeature.ts +78 -0
  516. package/src/core/headers/coreHeadersFeature.types.ts +125 -0
  517. package/src/core/headers/coreHeadersFeature.utils.ts +200 -0
  518. package/src/core/reactivity/coreReactivityFeature.types.ts +56 -0
  519. package/src/core/reactivity/coreReactivityFeature.utils.ts +44 -0
  520. package/src/core/row-models/coreRowModelsFeature.ts +83 -0
  521. package/src/core/row-models/coreRowModelsFeature.types.ts +68 -0
  522. package/src/core/row-models/coreRowModelsFeature.utils.ts +272 -0
  523. package/src/core/row-models/createCoreRowModel.ts +93 -0
  524. package/src/core/rows/constructRow.ts +66 -0
  525. package/src/core/rows/coreRowsFeature.ts +89 -0
  526. package/src/core/rows/coreRowsFeature.types.ts +117 -0
  527. package/src/core/rows/coreRowsFeature.utils.ts +264 -0
  528. package/src/core/table/constructTable.ts +169 -0
  529. package/src/core/table/coreTablesFeature.ts +41 -0
  530. package/src/core/table/coreTablesFeature.types.ts +216 -0
  531. package/src/core/table/coreTablesFeature.utils.ts +131 -0
  532. package/src/features/column-faceting/columnFacetingFeature.ts +120 -0
  533. package/src/features/column-faceting/columnFacetingFeature.types.ts +109 -0
  534. package/src/features/column-faceting/columnFacetingFeature.utils.ts +145 -0
  535. package/src/features/column-faceting/createFacetedMinMaxValues.ts +66 -0
  536. package/src/features/column-faceting/createFacetedRowModel.ts +85 -0
  537. package/src/features/column-faceting/createFacetedUniqueValues.ts +66 -0
  538. package/src/features/column-filtering/columnFilteringFeature.ts +129 -0
  539. package/src/features/column-filtering/columnFilteringFeature.types.ts +232 -0
  540. package/src/features/column-filtering/columnFilteringFeature.utils.ts +331 -0
  541. package/src/features/column-filtering/createFilteredRowModel.ts +183 -0
  542. package/src/features/column-filtering/filterRowsUtils.ts +157 -0
  543. package/src/features/column-grouping/columnGroupingFeature.ts +159 -0
  544. package/src/features/column-grouping/columnGroupingFeature.types.ts +226 -0
  545. package/src/features/column-grouping/columnGroupingFeature.utils.ts +354 -0
  546. package/src/features/column-grouping/createGroupedRowModel.ts +220 -0
  547. package/src/features/column-ordering/columnOrderingFeature.ts +105 -0
  548. package/src/features/column-ordering/columnOrderingFeature.types.ts +60 -0
  549. package/src/features/column-ordering/columnOrderingFeature.utils.ts +241 -0
  550. package/src/features/column-pinning/columnPinningFeature.ts +352 -0
  551. package/src/features/column-pinning/columnPinningFeature.types.ts +192 -0
  552. package/src/features/column-pinning/columnPinningFeature.utils.ts +908 -0
  553. package/src/features/column-resizing/columnResizingFeature.ts +99 -0
  554. package/src/features/column-resizing/columnResizingFeature.types.ts +89 -0
  555. package/src/features/column-resizing/columnResizingFeature.utils.ts +364 -0
  556. package/src/features/column-sizing/columnSizingFeature.ts +182 -0
  557. package/src/features/column-sizing/columnSizingFeature.types.ts +102 -0
  558. package/src/features/column-sizing/columnSizingFeature.utils.ts +381 -0
  559. package/src/features/column-visibility/columnVisibilityFeature.ts +159 -0
  560. package/src/features/column-visibility/columnVisibilityFeature.types.ts +112 -0
  561. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +384 -0
  562. package/src/features/global-filtering/globalFilteringFeature.ts +99 -0
  563. package/src/features/global-filtering/globalFilteringFeature.types.ts +91 -0
  564. package/src/features/global-filtering/globalFilteringFeature.utils.ts +116 -0
  565. package/src/features/row-expanding/createExpandedRowModel.ts +82 -0
  566. package/src/features/row-expanding/rowExpandingFeature.ts +130 -0
  567. package/src/features/row-expanding/rowExpandingFeature.types.ts +147 -0
  568. package/src/features/row-expanding/rowExpandingFeature.utils.ts +374 -0
  569. package/src/features/row-pagination/createPaginatedRowModel.ts +83 -0
  570. package/src/features/row-pagination/rowPaginationFeature.ts +129 -0
  571. package/src/features/row-pagination/rowPaginationFeature.types.ts +152 -0
  572. package/src/features/row-pagination/rowPaginationFeature.utils.ts +400 -0
  573. package/src/features/row-pinning/rowPinningFeature.ts +129 -0
  574. package/src/features/row-pinning/rowPinningFeature.types.ts +95 -0
  575. package/src/features/row-pinning/rowPinningFeature.utils.ts +323 -0
  576. package/src/features/row-selection/rowSelectionFeature.ts +172 -0
  577. package/src/features/row-selection/rowSelectionFeature.types.ts +151 -0
  578. package/src/features/row-selection/rowSelectionFeature.utils.ts +745 -0
  579. package/src/features/row-sorting/createSortedRowModel.ts +157 -0
  580. package/src/features/row-sorting/rowSortingFeature.ts +144 -0
  581. package/src/features/row-sorting/rowSortingFeature.types.ts +235 -0
  582. package/src/features/row-sorting/rowSortingFeature.utils.ts +487 -0
  583. package/src/features/stockFeatures.ts +53 -0
  584. package/src/flex-render.ts +70 -0
  585. package/src/fns/aggregationFns.ts +261 -0
  586. package/src/fns/filterFns.ts +415 -0
  587. package/src/fns/sortFns.ts +218 -0
  588. package/src/helpers/columnHelper.ts +122 -0
  589. package/src/helpers/tableFeatures.ts +24 -0
  590. package/src/helpers/tableOptions.ts +117 -0
  591. package/src/index.ts +137 -42
  592. package/src/process-env.d.ts +6 -0
  593. package/src/reactivity.ts +2 -0
  594. package/src/static-functions.ts +31 -0
  595. package/src/store-reactivity-bindings.ts +47 -0
  596. package/src/types/Cell.ts +41 -0
  597. package/src/types/Column.ts +86 -0
  598. package/src/types/ColumnDef.ts +255 -0
  599. package/src/types/Header.ts +45 -0
  600. package/src/types/HeaderGroup.ts +24 -0
  601. package/src/types/Row.ts +55 -0
  602. package/src/types/RowModel.ts +137 -0
  603. package/src/types/RowModelFns.ts +51 -0
  604. package/src/types/Table.ts +132 -0
  605. package/src/types/TableFeatures.ts +150 -0
  606. package/src/types/TableOptions.ts +140 -0
  607. package/src/types/TableState.ts +100 -0
  608. package/src/types/type-utils.ts +84 -0
  609. package/src/utils.ts +388 -166
  610. package/dist/cjs/aggregationFns.cjs +0 -94
  611. package/dist/cjs/aggregationFns.cjs.map +0 -1
  612. package/dist/cjs/aggregationFns.d.cts +0 -14
  613. package/dist/cjs/columnHelper.cjs +0 -19
  614. package/dist/cjs/columnHelper.cjs.map +0 -1
  615. package/dist/cjs/columnHelper.d.cts +0 -9
  616. package/dist/cjs/core/cell.cjs +0 -38
  617. package/dist/cjs/core/cell.cjs.map +0 -1
  618. package/dist/cjs/core/cell.d.cts +0 -50
  619. package/dist/cjs/core/column.cjs +0 -81
  620. package/dist/cjs/core/column.cjs.map +0 -1
  621. package/dist/cjs/core/column.d.cts +0 -56
  622. package/dist/cjs/core/headers.cjs +0 -310
  623. package/dist/cjs/core/headers.cjs.map +0 -1
  624. package/dist/cjs/core/headers.d.cts +0 -195
  625. package/dist/cjs/core/row.cjs +0 -92
  626. package/dist/cjs/core/row.cjs.map +0 -1
  627. package/dist/cjs/core/row.d.cts +0 -92
  628. package/dist/cjs/core/table.cjs +0 -232
  629. package/dist/cjs/core/table.cjs.map +0 -1
  630. package/dist/cjs/core/table.d.cts +0 -229
  631. package/dist/cjs/features/ColumnFaceting.cjs +0 -29
  632. package/dist/cjs/features/ColumnFaceting.cjs.map +0 -1
  633. package/dist/cjs/features/ColumnFaceting.d.cts +0 -35
  634. package/dist/cjs/features/ColumnFiltering.cjs +0 -137
  635. package/dist/cjs/features/ColumnFiltering.cjs.map +0 -1
  636. package/dist/cjs/features/ColumnFiltering.d.cts +0 -195
  637. package/dist/cjs/features/ColumnGrouping.cjs +0 -133
  638. package/dist/cjs/features/ColumnGrouping.cjs.map +0 -1
  639. package/dist/cjs/features/ColumnGrouping.d.cts +0 -202
  640. package/dist/cjs/features/ColumnOrdering.cjs +0 -76
  641. package/dist/cjs/features/ColumnOrdering.cjs.map +0 -1
  642. package/dist/cjs/features/ColumnOrdering.d.cts +0 -54
  643. package/dist/cjs/features/ColumnPinning.cjs +0 -145
  644. package/dist/cjs/features/ColumnPinning.cjs.map +0 -1
  645. package/dist/cjs/features/ColumnPinning.d.cts +0 -127
  646. package/dist/cjs/features/ColumnSizing.cjs +0 -307
  647. package/dist/cjs/features/ColumnSizing.cjs.map +0 -1
  648. package/dist/cjs/features/ColumnSizing.d.cts +0 -194
  649. package/dist/cjs/features/ColumnVisibility.cjs +0 -144
  650. package/dist/cjs/features/ColumnVisibility.cjs.map +0 -1
  651. package/dist/cjs/features/ColumnVisibility.d.cts +0 -130
  652. package/dist/cjs/features/GlobalFaceting.cjs +0 -29
  653. package/dist/cjs/features/GlobalFaceting.cjs.map +0 -1
  654. package/dist/cjs/features/GlobalFaceting.d.cts +0 -27
  655. package/dist/cjs/features/GlobalFiltering.cjs +0 -50
  656. package/dist/cjs/features/GlobalFiltering.cjs.map +0 -1
  657. package/dist/cjs/features/GlobalFiltering.d.cts +0 -80
  658. package/dist/cjs/features/RowExpanding.cjs +0 -152
  659. package/dist/cjs/features/RowExpanding.cjs.map +0 -1
  660. package/dist/cjs/features/RowExpanding.d.cts +0 -155
  661. package/dist/cjs/features/RowPagination.cjs +0 -161
  662. package/dist/cjs/features/RowPagination.cjs.map +0 -1
  663. package/dist/cjs/features/RowPagination.d.cts +0 -166
  664. package/dist/cjs/features/RowPinning.cjs +0 -132
  665. package/dist/cjs/features/RowPinning.cjs.map +0 -1
  666. package/dist/cjs/features/RowPinning.d.cts +0 -99
  667. package/dist/cjs/features/RowSelection.cjs +0 -296
  668. package/dist/cjs/features/RowSelection.cjs.map +0 -1
  669. package/dist/cjs/features/RowSelection.d.cts +0 -177
  670. package/dist/cjs/features/RowSorting.cjs +0 -200
  671. package/dist/cjs/features/RowSorting.cjs.map +0 -1
  672. package/dist/cjs/features/RowSorting.d.cts +0 -238
  673. package/dist/cjs/filterFns.cjs +0 -88
  674. package/dist/cjs/filterFns.cjs.map +0 -1
  675. package/dist/cjs/filterFns.d.cts +0 -14
  676. package/dist/cjs/index.cjs +0 -88
  677. package/dist/cjs/index.cjs.map +0 -1
  678. package/dist/cjs/index.d.cts +0 -34
  679. package/dist/cjs/sortingFns.cjs +0 -91
  680. package/dist/cjs/sortingFns.cjs.map +0 -1
  681. package/dist/cjs/sortingFns.d.cts +0 -12
  682. package/dist/cjs/types.d.cts +0 -120
  683. package/dist/cjs/utils/filterRowsUtils.cjs +0 -99
  684. package/dist/cjs/utils/filterRowsUtils.cjs.map +0 -1
  685. package/dist/cjs/utils/filterRowsUtils.d.cts +0 -3
  686. package/dist/cjs/utils/getCoreRowModel.cjs +0 -54
  687. package/dist/cjs/utils/getCoreRowModel.cjs.map +0 -1
  688. package/dist/cjs/utils/getCoreRowModel.d.cts +0 -3
  689. package/dist/cjs/utils/getExpandedRowModel.cjs +0 -41
  690. package/dist/cjs/utils/getExpandedRowModel.cjs.map +0 -1
  691. package/dist/cjs/utils/getExpandedRowModel.d.cts +0 -8
  692. package/dist/cjs/utils/getFacetedMinMaxValues.cjs +0 -35
  693. package/dist/cjs/utils/getFacetedMinMaxValues.cjs.map +0 -1
  694. package/dist/cjs/utils/getFacetedMinMaxValues.d.cts +0 -3
  695. package/dist/cjs/utils/getFacetedRowModel.cjs +0 -35
  696. package/dist/cjs/utils/getFacetedRowModel.cjs.map +0 -1
  697. package/dist/cjs/utils/getFacetedRowModel.d.cts +0 -3
  698. package/dist/cjs/utils/getFacetedUniqueValues.cjs +0 -37
  699. package/dist/cjs/utils/getFacetedUniqueValues.cjs.map +0 -1
  700. package/dist/cjs/utils/getFacetedUniqueValues.d.cts +0 -3
  701. package/dist/cjs/utils/getFilteredRowModel.cjs +0 -116
  702. package/dist/cjs/utils/getFilteredRowModel.cjs.map +0 -1
  703. package/dist/cjs/utils/getFilteredRowModel.d.cts +0 -3
  704. package/dist/cjs/utils/getGroupedRowModel.cjs +0 -118
  705. package/dist/cjs/utils/getGroupedRowModel.cjs.map +0 -1
  706. package/dist/cjs/utils/getGroupedRowModel.d.cts +0 -3
  707. package/dist/cjs/utils/getPaginationRowModel.cjs +0 -49
  708. package/dist/cjs/utils/getPaginationRowModel.cjs.map +0 -1
  709. package/dist/cjs/utils/getPaginationRowModel.d.cts +0 -5
  710. package/dist/cjs/utils/getSortedRowModel.cjs +0 -88
  711. package/dist/cjs/utils/getSortedRowModel.cjs.map +0 -1
  712. package/dist/cjs/utils/getSortedRowModel.d.cts +0 -3
  713. package/dist/cjs/utils.cjs +0 -98
  714. package/dist/cjs/utils.cjs.map +0 -1
  715. package/dist/cjs/utils.d.cts +0 -39
  716. package/dist/esm/aggregationFns.d.ts +0 -14
  717. package/dist/esm/aggregationFns.js +0 -94
  718. package/dist/esm/aggregationFns.js.map +0 -1
  719. package/dist/esm/columnHelper.d.ts +0 -9
  720. package/dist/esm/columnHelper.js +0 -19
  721. package/dist/esm/columnHelper.js.map +0 -1
  722. package/dist/esm/core/cell.d.ts +0 -50
  723. package/dist/esm/core/cell.js +0 -38
  724. package/dist/esm/core/cell.js.map +0 -1
  725. package/dist/esm/core/column.d.ts +0 -56
  726. package/dist/esm/core/column.js +0 -81
  727. package/dist/esm/core/column.js.map +0 -1
  728. package/dist/esm/core/headers.d.ts +0 -195
  729. package/dist/esm/core/headers.js +0 -310
  730. package/dist/esm/core/headers.js.map +0 -1
  731. package/dist/esm/core/row.d.ts +0 -92
  732. package/dist/esm/core/row.js +0 -92
  733. package/dist/esm/core/row.js.map +0 -1
  734. package/dist/esm/core/table.d.ts +0 -229
  735. package/dist/esm/core/table.js +0 -232
  736. package/dist/esm/core/table.js.map +0 -1
  737. package/dist/esm/features/ColumnFaceting.d.ts +0 -35
  738. package/dist/esm/features/ColumnFaceting.js +0 -29
  739. package/dist/esm/features/ColumnFaceting.js.map +0 -1
  740. package/dist/esm/features/ColumnFiltering.d.ts +0 -195
  741. package/dist/esm/features/ColumnFiltering.js +0 -137
  742. package/dist/esm/features/ColumnFiltering.js.map +0 -1
  743. package/dist/esm/features/ColumnGrouping.d.ts +0 -202
  744. package/dist/esm/features/ColumnGrouping.js +0 -133
  745. package/dist/esm/features/ColumnGrouping.js.map +0 -1
  746. package/dist/esm/features/ColumnOrdering.d.ts +0 -54
  747. package/dist/esm/features/ColumnOrdering.js +0 -76
  748. package/dist/esm/features/ColumnOrdering.js.map +0 -1
  749. package/dist/esm/features/ColumnPinning.d.ts +0 -127
  750. package/dist/esm/features/ColumnPinning.js +0 -145
  751. package/dist/esm/features/ColumnPinning.js.map +0 -1
  752. package/dist/esm/features/ColumnSizing.d.ts +0 -194
  753. package/dist/esm/features/ColumnSizing.js +0 -307
  754. package/dist/esm/features/ColumnSizing.js.map +0 -1
  755. package/dist/esm/features/ColumnVisibility.d.ts +0 -130
  756. package/dist/esm/features/ColumnVisibility.js +0 -144
  757. package/dist/esm/features/ColumnVisibility.js.map +0 -1
  758. package/dist/esm/features/GlobalFaceting.d.ts +0 -27
  759. package/dist/esm/features/GlobalFaceting.js +0 -29
  760. package/dist/esm/features/GlobalFaceting.js.map +0 -1
  761. package/dist/esm/features/GlobalFiltering.d.ts +0 -80
  762. package/dist/esm/features/GlobalFiltering.js +0 -50
  763. package/dist/esm/features/GlobalFiltering.js.map +0 -1
  764. package/dist/esm/features/RowExpanding.d.ts +0 -155
  765. package/dist/esm/features/RowExpanding.js +0 -152
  766. package/dist/esm/features/RowExpanding.js.map +0 -1
  767. package/dist/esm/features/RowPagination.d.ts +0 -166
  768. package/dist/esm/features/RowPagination.js +0 -161
  769. package/dist/esm/features/RowPagination.js.map +0 -1
  770. package/dist/esm/features/RowPinning.d.ts +0 -99
  771. package/dist/esm/features/RowPinning.js +0 -132
  772. package/dist/esm/features/RowPinning.js.map +0 -1
  773. package/dist/esm/features/RowSelection.d.ts +0 -177
  774. package/dist/esm/features/RowSelection.js +0 -296
  775. package/dist/esm/features/RowSelection.js.map +0 -1
  776. package/dist/esm/features/RowSorting.d.ts +0 -238
  777. package/dist/esm/features/RowSorting.js +0 -200
  778. package/dist/esm/features/RowSorting.js.map +0 -1
  779. package/dist/esm/filterFns.d.ts +0 -14
  780. package/dist/esm/filterFns.js +0 -88
  781. package/dist/esm/filterFns.js.map +0 -1
  782. package/dist/esm/index.d.ts +0 -34
  783. package/dist/esm/index.js +0 -88
  784. package/dist/esm/index.js.map +0 -1
  785. package/dist/esm/sortingFns.d.ts +0 -12
  786. package/dist/esm/sortingFns.js +0 -91
  787. package/dist/esm/sortingFns.js.map +0 -1
  788. package/dist/esm/types.d.ts +0 -120
  789. package/dist/esm/utils/filterRowsUtils.d.ts +0 -3
  790. package/dist/esm/utils/filterRowsUtils.js +0 -99
  791. package/dist/esm/utils/filterRowsUtils.js.map +0 -1
  792. package/dist/esm/utils/getCoreRowModel.d.ts +0 -3
  793. package/dist/esm/utils/getCoreRowModel.js +0 -54
  794. package/dist/esm/utils/getCoreRowModel.js.map +0 -1
  795. package/dist/esm/utils/getExpandedRowModel.d.ts +0 -8
  796. package/dist/esm/utils/getExpandedRowModel.js +0 -41
  797. package/dist/esm/utils/getExpandedRowModel.js.map +0 -1
  798. package/dist/esm/utils/getFacetedMinMaxValues.d.ts +0 -3
  799. package/dist/esm/utils/getFacetedMinMaxValues.js +0 -35
  800. package/dist/esm/utils/getFacetedMinMaxValues.js.map +0 -1
  801. package/dist/esm/utils/getFacetedRowModel.d.ts +0 -3
  802. package/dist/esm/utils/getFacetedRowModel.js +0 -35
  803. package/dist/esm/utils/getFacetedRowModel.js.map +0 -1
  804. package/dist/esm/utils/getFacetedUniqueValues.d.ts +0 -3
  805. package/dist/esm/utils/getFacetedUniqueValues.js +0 -37
  806. package/dist/esm/utils/getFacetedUniqueValues.js.map +0 -1
  807. package/dist/esm/utils/getFilteredRowModel.d.ts +0 -3
  808. package/dist/esm/utils/getFilteredRowModel.js +0 -116
  809. package/dist/esm/utils/getFilteredRowModel.js.map +0 -1
  810. package/dist/esm/utils/getGroupedRowModel.d.ts +0 -3
  811. package/dist/esm/utils/getGroupedRowModel.js +0 -118
  812. package/dist/esm/utils/getGroupedRowModel.js.map +0 -1
  813. package/dist/esm/utils/getPaginationRowModel.d.ts +0 -5
  814. package/dist/esm/utils/getPaginationRowModel.js +0 -49
  815. package/dist/esm/utils/getPaginationRowModel.js.map +0 -1
  816. package/dist/esm/utils/getSortedRowModel.d.ts +0 -3
  817. package/dist/esm/utils/getSortedRowModel.js +0 -88
  818. package/dist/esm/utils/getSortedRowModel.js.map +0 -1
  819. package/dist/esm/utils.d.ts +0 -39
  820. package/dist/esm/utils.js +0 -98
  821. package/dist/esm/utils.js.map +0 -1
  822. package/src/aggregationFns.ts +0 -123
  823. package/src/columnHelper.ts +0 -91
  824. package/src/core/cell.ts +0 -91
  825. package/src/core/column.ts +0 -165
  826. package/src/core/headers.ts +0 -639
  827. package/src/core/row.ts +0 -201
  828. package/src/core/table.ts +0 -563
  829. package/src/features/ColumnFaceting.ts +0 -84
  830. package/src/features/ColumnFiltering.ts +0 -429
  831. package/src/features/ColumnGrouping.ts +0 -422
  832. package/src/features/ColumnOrdering.ts +0 -161
  833. package/src/features/ColumnPinning.ts +0 -336
  834. package/src/features/ColumnSizing.ts +0 -579
  835. package/src/features/ColumnVisibility.ts +0 -317
  836. package/src/features/GlobalFaceting.ts +0 -66
  837. package/src/features/GlobalFiltering.ts +0 -162
  838. package/src/features/RowExpanding.ts +0 -355
  839. package/src/features/RowPagination.ts +0 -396
  840. package/src/features/RowPinning.ts +0 -273
  841. package/src/features/RowSelection.ts +0 -668
  842. package/src/features/RowSorting.ts +0 -542
  843. package/src/filterFns.ts +0 -150
  844. package/src/sortingFns.ts +0 -128
  845. package/src/types.ts +0 -361
  846. package/src/utils/filterRowsUtils.ts +0 -130
  847. package/src/utils/getCoreRowModel.ts +0 -82
  848. package/src/utils/getExpandedRowModel.ts +0 -51
  849. package/src/utils/getFacetedMinMaxValues.ts +0 -42
  850. package/src/utils/getFacetedRowModel.ts +0 -44
  851. package/src/utils/getFacetedUniqueValues.ts +0 -42
  852. package/src/utils/getFilteredRowModel.ts +0 -151
  853. package/src/utils/getGroupedRowModel.ts +0 -181
  854. package/src/utils/getPaginationRowModel.ts +0 -60
  855. package/src/utils/getSortedRowModel.ts +0 -121
@@ -0,0 +1,489 @@
1
+ import { cloneState } from "../../utils.js";
2
+
3
+ //#region src/features/row-selection/rowSelectionFeature.utils.ts
4
+ /**
5
+ * Creates the default row selection state.
6
+ *
7
+ * The feature default is an empty map, meaning no rows are selected. Reset APIs
8
+ * use this value when `defaultState` is `true`.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const selection = getDefaultRowSelectionState()
13
+ * ```
14
+ */
15
+ function getDefaultRowSelectionState() {
16
+ return {};
17
+ }
18
+ /**
19
+ * Routes a row selection updater through the table's selection change handler.
20
+ *
21
+ * The updater may be a next selection map or a function of the previous map,
22
+ * matching the instance `table.setRowSelection` behavior.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * table_setRowSelection(table, (old) => ({ ...old, [rowId]: true }))
27
+ * ```
28
+ */
29
+ function table_setRowSelection(table, updater) {
30
+ var _table$options$onRowS, _table$options;
31
+ (_table$options$onRowS = (_table$options = table.options).onRowSelectionChange) === null || _table$options$onRowS === void 0 || _table$options$onRowS.call(_table$options, updater);
32
+ }
33
+ /**
34
+ * Resets `rowSelection` to the configured initial state or feature default.
35
+ *
36
+ * With no argument, the reset clones `table.initialState.rowSelection` when it
37
+ * exists. Passing `true` ignores initial state and resets to `{}`.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * table_resetRowSelection(table)
42
+ * table_resetRowSelection(table, true)
43
+ * ```
44
+ */
45
+ function table_resetRowSelection(table, defaultState) {
46
+ table_setRowSelection(table, defaultState ? {} : cloneState(table.initialState.rowSelection ?? {}));
47
+ }
48
+ /**
49
+ * Selects or deselects every selectable row before grouping.
50
+ *
51
+ * Omitting `value` toggles based on `table_getIsAllRowsSelected(table)`.
52
+ * Deselecting removes matching ids from the existing selection map.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * table_toggleAllRowsSelected(table)
57
+ * ```
58
+ */
59
+ function table_toggleAllRowsSelected(table, value) {
60
+ table_setRowSelection(table, (old) => {
61
+ value = typeof value !== "undefined" ? value : !table_getIsAllRowsSelected(table);
62
+ const rowSelection = { ...old };
63
+ const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;
64
+ if (value) preGroupedFlatRows.forEach((row) => {
65
+ if (!row_getCanSelect(row)) return;
66
+ rowSelection[row.id] = true;
67
+ });
68
+ else preGroupedFlatRows.forEach((row) => {
69
+ delete rowSelection[row.id];
70
+ });
71
+ return rowSelection;
72
+ });
73
+ }
74
+ /**
75
+ * Selects or deselects every selectable row on the current page.
76
+ *
77
+ * Omitting `value` toggles based on `table_getIsAllPageRowsSelected(table)`.
78
+ * Child rows are included when sub-row selection allows it.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * table_toggleAllPageRowsSelected(table)
83
+ * ```
84
+ */
85
+ function table_toggleAllPageRowsSelected(table, value) {
86
+ table_setRowSelection(table, (old) => {
87
+ const resolvedValue = typeof value !== "undefined" ? value : !table_getIsAllPageRowsSelected(table);
88
+ const rowSelection = { ...old };
89
+ table.getRowModel().rows.forEach((row) => {
90
+ mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);
91
+ });
92
+ return rowSelection;
93
+ });
94
+ }
95
+ /**
96
+ * Reads the row model before row selection is projected into selected rows.
97
+ *
98
+ * Selection does not alter the base row pipeline, so this returns the core row
99
+ * model.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * const rowsBeforeSelection = table_getPreSelectedRowModel(table)
104
+ * ```
105
+ */
106
+ function table_getPreSelectedRowModel(table) {
107
+ return table.getCoreRowModel();
108
+ }
109
+ /**
110
+ * Builds a row model containing selected rows from the core row model.
111
+ *
112
+ * If no row ids are selected, an empty row model is returned without walking
113
+ * the rows.
114
+ *
115
+ * @example
116
+ * ```ts
117
+ * const selectedRows = table_getSelectedRowModel(table)
118
+ * ```
119
+ */
120
+ function table_getSelectedRowModel(table) {
121
+ var _table$atoms$rowSelec;
122
+ const rowModel = table.getCoreRowModel();
123
+ if (!Object.keys(((_table$atoms$rowSelec = table.atoms.rowSelection) === null || _table$atoms$rowSelec === void 0 ? void 0 : _table$atoms$rowSelec.get()) ?? {}).length) return {
124
+ rows: [],
125
+ flatRows: [],
126
+ rowsById: {}
127
+ };
128
+ return selectRowsFn(rowModel);
129
+ }
130
+ /**
131
+ * Builds a row model containing selected rows from the filtered row model.
132
+ *
133
+ * If no row ids are selected, an empty row model is returned without walking
134
+ * the rows.
135
+ *
136
+ * @example
137
+ * ```ts
138
+ * const selectedRows = table_getFilteredSelectedRowModel(table)
139
+ * ```
140
+ */
141
+ function table_getFilteredSelectedRowModel(table) {
142
+ var _table$atoms$rowSelec2;
143
+ const rowModel = table.getCoreRowModel();
144
+ if (!Object.keys(((_table$atoms$rowSelec2 = table.atoms.rowSelection) === null || _table$atoms$rowSelec2 === void 0 ? void 0 : _table$atoms$rowSelec2.get()) ?? {}).length) return {
145
+ rows: [],
146
+ flatRows: [],
147
+ rowsById: {}
148
+ };
149
+ return selectRowsFn(rowModel);
150
+ }
151
+ /**
152
+ * Builds a row model containing selected rows from the grouped row model.
153
+ *
154
+ * If no row ids are selected, an empty row model is returned without walking
155
+ * the rows.
156
+ *
157
+ * @example
158
+ * ```ts
159
+ * const selectedRows = table_getGroupedSelectedRowModel(table)
160
+ * ```
161
+ */
162
+ function table_getGroupedSelectedRowModel(table) {
163
+ var _table$atoms$rowSelec3;
164
+ const rowModel = table.getCoreRowModel();
165
+ if (!Object.keys(((_table$atoms$rowSelec3 = table.atoms.rowSelection) === null || _table$atoms$rowSelec3 === void 0 ? void 0 : _table$atoms$rowSelec3.get()) ?? {}).length) return {
166
+ rows: [],
167
+ flatRows: [],
168
+ rowsById: {}
169
+ };
170
+ return selectRowsFn(rowModel);
171
+ }
172
+ /**
173
+ * Checks whether every selectable filtered row is selected.
174
+ *
175
+ * The result is false when there are no filtered rows or when selection state is
176
+ * empty.
177
+ *
178
+ * @example
179
+ * ```ts
180
+ * const allSelected = table_getIsAllRowsSelected(table)
181
+ * ```
182
+ */
183
+ function table_getIsAllRowsSelected(table) {
184
+ var _table$atoms$rowSelec4;
185
+ const preGroupedFlatRows = table.getFilteredRowModel().flatRows;
186
+ const rowSelection = ((_table$atoms$rowSelec4 = table.atoms.rowSelection) === null || _table$atoms$rowSelec4 === void 0 ? void 0 : _table$atoms$rowSelec4.get()) ?? {};
187
+ let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);
188
+ if (isAllRowsSelected) {
189
+ if (preGroupedFlatRows.some((row) => row_getCanSelect(row) && !rowSelection[row.id])) isAllRowsSelected = false;
190
+ }
191
+ return isAllRowsSelected;
192
+ }
193
+ /**
194
+ * Checks whether every selectable row on the current page is selected.
195
+ *
196
+ * Non-selectable rows are ignored for this calculation.
197
+ *
198
+ * @example
199
+ * ```ts
200
+ * const allPageRowsSelected = table_getIsAllPageRowsSelected(table)
201
+ * ```
202
+ */
203
+ function table_getIsAllPageRowsSelected(table) {
204
+ var _table$atoms$rowSelec5;
205
+ const paginationFlatRows = table.getPaginatedRowModel().flatRows.filter((row) => row_getCanSelect(row));
206
+ const rowSelection = ((_table$atoms$rowSelec5 = table.atoms.rowSelection) === null || _table$atoms$rowSelec5 === void 0 ? void 0 : _table$atoms$rowSelec5.get()) ?? {};
207
+ let isAllPageRowsSelected = !!paginationFlatRows.length;
208
+ if (isAllPageRowsSelected && paginationFlatRows.some((row) => !rowSelection[row.id])) isAllPageRowsSelected = false;
209
+ return isAllPageRowsSelected;
210
+ }
211
+ /**
212
+ * Checks whether selection is partially applied across filtered rows.
213
+ *
214
+ * The result is true when at least one row id is selected but fewer ids are
215
+ * selected than the current filtered flat row count.
216
+ *
217
+ * @example
218
+ * ```ts
219
+ * const someRowsSelected = table_getIsSomeRowsSelected(table)
220
+ * ```
221
+ */
222
+ function table_getIsSomeRowsSelected(table) {
223
+ var _table$atoms$rowSelec6;
224
+ const totalSelected = Object.keys(((_table$atoms$rowSelec6 = table.atoms.rowSelection) === null || _table$atoms$rowSelec6 === void 0 ? void 0 : _table$atoms$rowSelec6.get()) ?? {}).length;
225
+ return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;
226
+ }
227
+ /**
228
+ * Checks whether the current page has a partial selection.
229
+ *
230
+ * This is false when all selectable page rows are selected. Otherwise it is true
231
+ * if any selectable page row or descendant is selected.
232
+ *
233
+ * @example
234
+ * ```ts
235
+ * const somePageRowsSelected = table_getIsSomePageRowsSelected(table)
236
+ * ```
237
+ */
238
+ function table_getIsSomePageRowsSelected(table) {
239
+ const paginationFlatRows = table.getPaginatedRowModel().flatRows;
240
+ return table_getIsAllPageRowsSelected(table) ? false : paginationFlatRows.filter((row) => row_getCanSelect(row)).some((row) => row_getIsSelected(row) || row_getIsSomeSelected(row));
241
+ }
242
+ /**
243
+ * Creates a checkbox-style handler that selects or deselects all rows.
244
+ *
245
+ * The handler reads `event.target.checked`, so it is intended for controls whose
246
+ * checked state means "all rows selected".
247
+ *
248
+ * @example
249
+ * ```ts
250
+ * const onChange = table_getToggleAllRowsSelectedHandler(table)
251
+ * ```
252
+ */
253
+ function table_getToggleAllRowsSelectedHandler(table) {
254
+ return (e) => {
255
+ table_toggleAllRowsSelected(table, e.target.checked);
256
+ };
257
+ }
258
+ /**
259
+ * Creates a checkbox-style handler that selects or deselects current page rows.
260
+ *
261
+ * The handler reads `event.target.checked`, so it is intended for controls whose
262
+ * checked state means "all page rows selected".
263
+ *
264
+ * @example
265
+ * ```ts
266
+ * const onChange = table_getToggleAllPageRowsSelectedHandler(table)
267
+ * ```
268
+ */
269
+ function table_getToggleAllPageRowsSelectedHandler(table) {
270
+ return (e) => {
271
+ table_toggleAllPageRowsSelected(table, e.target.checked);
272
+ };
273
+ }
274
+ /**
275
+ * Selects or deselects this row.
276
+ *
277
+ * Omitting `value` toggles the row. Child rows are selected recursively unless
278
+ * `opts.selectChildren` is `false` or sub-row selection is disabled.
279
+ *
280
+ * @example
281
+ * ```ts
282
+ * row_toggleSelected(row)
283
+ * ```
284
+ */
285
+ function row_toggleSelected(row, value, opts) {
286
+ const isSelected = row_getIsSelected(row);
287
+ table_setRowSelection(row.table, (old) => {
288
+ value = typeof value !== "undefined" ? value : !isSelected;
289
+ if (row_getCanSelect(row) && isSelected === value) return old;
290
+ const selectedRowIds = { ...old };
291
+ mutateRowIsSelected(selectedRowIds, row.id, value, (opts === null || opts === void 0 ? void 0 : opts.selectChildren) ?? true, row.table);
292
+ return selectedRowIds;
293
+ });
294
+ }
295
+ /**
296
+ * Checks whether this row id is selected in `state.rowSelection`.
297
+ *
298
+ * Missing row ids are treated as not selected.
299
+ *
300
+ * @example
301
+ * ```ts
302
+ * const selected = row_getIsSelected(row)
303
+ * ```
304
+ */
305
+ function row_getIsSelected(row) {
306
+ return isRowSelected(row);
307
+ }
308
+ /**
309
+ * Checks whether some, but not all, selectable descendants are selected.
310
+ *
311
+ * This supports indeterminate selection UI for parent rows.
312
+ *
313
+ * @example
314
+ * ```ts
315
+ * const partial = row_getIsSomeSelected(row)
316
+ * ```
317
+ */
318
+ function row_getIsSomeSelected(row) {
319
+ return isSubRowSelected(row) === "some";
320
+ }
321
+ /**
322
+ * Checks whether all selectable descendants are selected.
323
+ *
324
+ * Rows without selectable descendants return false.
325
+ *
326
+ * @example
327
+ * ```ts
328
+ * const allChildrenSelected = row_getIsAllSubRowsSelected(row)
329
+ * ```
330
+ */
331
+ function row_getIsAllSubRowsSelected(row) {
332
+ return isSubRowSelected(row) === "all";
333
+ }
334
+ /**
335
+ * Checks whether this row can be selected.
336
+ *
337
+ * `options.enableRowSelection` may be a boolean or a row predicate; it defaults
338
+ * to `true`.
339
+ *
340
+ * @example
341
+ * ```ts
342
+ * const canSelect = row_getCanSelect(row)
343
+ * ```
344
+ */
345
+ function row_getCanSelect(row) {
346
+ const options = row.table.options;
347
+ if (typeof options.enableRowSelection === "function") return options.enableRowSelection(row);
348
+ return options.enableRowSelection ?? true;
349
+ }
350
+ /**
351
+ * Checks whether selecting this row should also select its subRows.
352
+ *
353
+ * `options.enableSubRowSelection` may be a boolean or a row predicate; it
354
+ * defaults to `true`.
355
+ *
356
+ * @example
357
+ * ```ts
358
+ * const canSelectChildren = row_getCanSelectSubRows(row)
359
+ * ```
360
+ */
361
+ function row_getCanSelectSubRows(row) {
362
+ const options = row.table.options;
363
+ if (typeof options.enableSubRowSelection === "function") return options.enableSubRowSelection(row);
364
+ return options.enableSubRowSelection ?? true;
365
+ }
366
+ /**
367
+ * Checks whether this row can be selected alongside other rows.
368
+ *
369
+ * `options.enableMultiRowSelection` may be a boolean or a row predicate; it
370
+ * defaults to `true`.
371
+ *
372
+ * @example
373
+ * ```ts
374
+ * const canMultiSelect = row_getCanMultiSelect(row)
375
+ * ```
376
+ */
377
+ function row_getCanMultiSelect(row) {
378
+ const options = row.table.options;
379
+ if (typeof options.enableMultiRowSelection === "function") return options.enableMultiRowSelection(row);
380
+ return options.enableMultiRowSelection ?? true;
381
+ }
382
+ /**
383
+ * Creates a checkbox-style handler that selects or deselects this row.
384
+ *
385
+ * The handler is a no-op when the row cannot be selected and reads
386
+ * `event.target.checked`.
387
+ *
388
+ * @example
389
+ * ```ts
390
+ * const onChange = row_getToggleSelectedHandler(row)
391
+ * ```
392
+ */
393
+ function row_getToggleSelectedHandler(row) {
394
+ const canSelect = row_getCanSelect(row);
395
+ return (e) => {
396
+ if (!canSelect) return;
397
+ row_toggleSelected(row, e.target.checked);
398
+ };
399
+ }
400
+ const mutateRowIsSelected = (selectedRowIds, rowId, value, includeChildren, table) => {
401
+ const row = table.getRow(rowId, true);
402
+ if (value) {
403
+ if (!row_getCanMultiSelect(row)) Object.keys(selectedRowIds).forEach((key) => delete selectedRowIds[key]);
404
+ if (row_getCanSelect(row)) selectedRowIds[rowId] = true;
405
+ } else delete selectedRowIds[rowId];
406
+ if (includeChildren && row.subRows.length && row_getCanSelectSubRows(row)) row.subRows.forEach((r) => mutateRowIsSelected(selectedRowIds, r.id, value, includeChildren, table));
407
+ };
408
+ /**
409
+ * Builds a row model containing rows selected by the current row selection state.
410
+ *
411
+ * The result is derived from the supplied row model, so selected ids absent from
412
+ * that model are not materialized as rows.
413
+ *
414
+ * @example
415
+ * ```ts
416
+ * const selectedRows = selectRowsFn(rowModel)
417
+ * ```
418
+ */
419
+ function selectRowsFn(rowModel) {
420
+ const newSelectedFlatRows = [];
421
+ const newSelectedRowsById = {};
422
+ const recurseRows = (rows, depth = 0) => {
423
+ const result = [];
424
+ for (let i = 0; i < rows.length; i++) {
425
+ let row = rows[i];
426
+ const isSelected = isRowSelected(row);
427
+ if (isSelected) {
428
+ newSelectedFlatRows.push(row);
429
+ newSelectedRowsById[row.id] = row;
430
+ }
431
+ if (row.subRows.length) row = {
432
+ ...row,
433
+ subRows: recurseRows(row.subRows, depth + 1)
434
+ };
435
+ if (isSelected) result.push(row);
436
+ }
437
+ return result;
438
+ };
439
+ return {
440
+ rows: recurseRows(rowModel.rows),
441
+ flatRows: newSelectedFlatRows,
442
+ rowsById: newSelectedRowsById
443
+ };
444
+ }
445
+ /**
446
+ * Returns whether a row id is selected in the current row selection state.
447
+ *
448
+ * @example
449
+ * ```ts
450
+ * const selected = isRowSelected(row)
451
+ * ```
452
+ */
453
+ function isRowSelected(row) {
454
+ var _row$table$atoms$rowS;
455
+ return (((_row$table$atoms$rowS = row.table.atoms.rowSelection) === null || _row$table$atoms$rowS === void 0 ? void 0 : _row$table$atoms$rowS.get()) ?? {})[row.id] ?? false;
456
+ }
457
+ /**
458
+ * Returns whether all, some, or none of a row's selectable descendants are selected.
459
+ *
460
+ * The result is used to drive indeterminate row selection UI.
461
+ *
462
+ * @example
463
+ * ```ts
464
+ * const selectedState = isSubRowSelected(row)
465
+ * ```
466
+ */
467
+ function isSubRowSelected(row) {
468
+ if (!row.subRows.length) return false;
469
+ let allChildrenSelected = true;
470
+ let someSelected = false;
471
+ row.subRows.forEach((subRow) => {
472
+ if (someSelected && !allChildrenSelected) return;
473
+ if (row_getCanSelect(subRow)) if (isRowSelected(subRow)) someSelected = true;
474
+ else allChildrenSelected = false;
475
+ if (subRow.subRows.length) {
476
+ const subRowChildrenSelected = isSubRowSelected(subRow);
477
+ if (subRowChildrenSelected === "all") someSelected = true;
478
+ else if (subRowChildrenSelected === "some") {
479
+ someSelected = true;
480
+ allChildrenSelected = false;
481
+ } else allChildrenSelected = false;
482
+ }
483
+ });
484
+ return allChildrenSelected ? "all" : someSelected ? "some" : false;
485
+ }
486
+
487
+ //#endregion
488
+ export { getDefaultRowSelectionState, isRowSelected, isSubRowSelected, row_getCanMultiSelect, row_getCanSelect, row_getCanSelectSubRows, row_getIsAllSubRowsSelected, row_getIsSelected, row_getIsSomeSelected, row_getToggleSelectedHandler, row_toggleSelected, selectRowsFn, table_getFilteredSelectedRowModel, table_getGroupedSelectedRowModel, table_getIsAllPageRowsSelected, table_getIsAllRowsSelected, table_getIsSomePageRowsSelected, table_getIsSomeRowsSelected, table_getPreSelectedRowModel, table_getSelectedRowModel, table_getToggleAllPageRowsSelectedHandler, table_getToggleAllRowsSelectedHandler, table_resetRowSelection, table_setRowSelection, table_toggleAllPageRowsSelected, table_toggleAllRowsSelected };
489
+ //# sourceMappingURL=rowSelectionFeature.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowSelectionFeature.utils.js","names":[],"sources":["../../../src/features/row-selection/rowSelectionFeature.utils.ts"],"sourcesContent":["import { cloneState } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowSelectionState } from './rowSelectionFeature.types'\n\n// State APIs\n\n/**\n * Creates the default row selection state.\n *\n * The feature default is an empty map, meaning no rows are selected. Reset APIs\n * use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const selection = getDefaultRowSelectionState()\n * ```\n */\nexport function getDefaultRowSelectionState(): RowSelectionState {\n return {}\n}\n\n/**\n * Routes a row selection updater through the table's selection change handler.\n *\n * The updater may be a next selection map or a function of the previous map,\n * matching the instance `table.setRowSelection` behavior.\n *\n * @example\n * ```ts\n * table_setRowSelection(table, (old) => ({ ...old, [rowId]: true }))\n * ```\n */\nexport function table_setRowSelection<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<RowSelectionState>,\n) {\n table.options.onRowSelectionChange?.(updater)\n}\n\n/**\n * Resets `rowSelection` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.rowSelection` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetRowSelection(table)\n * table_resetRowSelection(table, true)\n * ```\n */\nexport function table_resetRowSelection<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setRowSelection(\n table,\n defaultState ? {} : cloneState(table.initialState.rowSelection ?? {}),\n )\n}\n\n// Table APIs\n\n/**\n * Selects or deselects every selectable row before grouping.\n *\n * Omitting `value` toggles based on `table_getIsAllRowsSelected(table)`.\n * Deselecting removes matching ids from the existing selection map.\n *\n * @example\n * ```ts\n * table_toggleAllRowsSelected(table)\n * ```\n */\nexport function table_toggleAllRowsSelected<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, value?: boolean) {\n table_setRowSelection(table, (old) => {\n value =\n typeof value !== 'undefined' ? value : !table_getIsAllRowsSelected(table)\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach((row) => {\n if (!row_getCanSelect(row)) {\n return\n }\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach((row) => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n}\n\n/**\n * Selects or deselects every selectable row on the current page.\n *\n * Omitting `value` toggles based on `table_getIsAllPageRowsSelected(table)`.\n * Child rows are included when sub-row selection allows it.\n *\n * @example\n * ```ts\n * table_toggleAllPageRowsSelected(table)\n * ```\n */\nexport function table_toggleAllPageRowsSelected<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, value?: boolean) {\n table_setRowSelection(table, (old) => {\n const resolvedValue =\n typeof value !== 'undefined'\n ? value\n : !table_getIsAllPageRowsSelected(table)\n\n const rowSelection: RowSelectionState = { ...old }\n\n table.getRowModel().rows.forEach((row) => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table)\n })\n\n return rowSelection\n })\n}\n\n/**\n * Reads the row model before row selection is projected into selected rows.\n *\n * Selection does not alter the base row pipeline, so this returns the core row\n * model.\n *\n * @example\n * ```ts\n * const rowsBeforeSelection = table_getPreSelectedRowModel(table)\n * ```\n */\nexport function table_getPreSelectedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n return table.getCoreRowModel()\n}\n\n/**\n * Builds a row model containing selected rows from the core row model.\n *\n * If no row ids are selected, an empty row model is returned without walking\n * the rows.\n *\n * @example\n * ```ts\n * const selectedRows = table_getSelectedRowModel(table)\n * ```\n */\nexport function table_getSelectedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rowModel = table.getCoreRowModel()\n\n if (!Object.keys(table.atoms.rowSelection?.get() ?? {}).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(rowModel)\n}\n\n/**\n * Builds a row model containing selected rows from the filtered row model.\n *\n * If no row ids are selected, an empty row model is returned without walking\n * the rows.\n *\n * @example\n * ```ts\n * const selectedRows = table_getFilteredSelectedRowModel(table)\n * ```\n */\nexport function table_getFilteredSelectedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rowModel = table.getCoreRowModel()\n\n if (!Object.keys(table.atoms.rowSelection?.get() ?? {}).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(rowModel)\n}\n\n/**\n * Builds a row model containing selected rows from the grouped row model.\n *\n * If no row ids are selected, an empty row model is returned without walking\n * the rows.\n *\n * @example\n * ```ts\n * const selectedRows = table_getGroupedSelectedRowModel(table)\n * ```\n */\nexport function table_getGroupedSelectedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rowModel = table.getCoreRowModel()\n\n if (!Object.keys(table.atoms.rowSelection?.get() ?? {}).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(rowModel)\n}\n\n/**\n * Checks whether every selectable filtered row is selected.\n *\n * The result is false when there are no filtered rows or when selection state is\n * empty.\n *\n * @example\n * ```ts\n * const allSelected = table_getIsAllRowsSelected(table)\n * ```\n */\nexport function table_getIsAllRowsSelected<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows\n const rowSelection: RowSelectionState = table.atoms.rowSelection?.get() ?? {}\n\n let isAllRowsSelected = Boolean(\n preGroupedFlatRows.length && Object.keys(rowSelection).length,\n )\n\n if (isAllRowsSelected) {\n if (\n preGroupedFlatRows.some(\n (row) => row_getCanSelect(row) && !rowSelection[row.id],\n )\n ) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n}\n\n/**\n * Checks whether every selectable row on the current page is selected.\n *\n * Non-selectable rows are ignored for this calculation.\n *\n * @example\n * ```ts\n * const allPageRowsSelected = table_getIsAllPageRowsSelected(table)\n * ```\n */\nexport function table_getIsAllPageRowsSelected<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const paginationFlatRows = table\n .getPaginatedRowModel()\n .flatRows.filter((row) => row_getCanSelect(row))\n const rowSelection: RowSelectionState = table.atoms.rowSelection?.get() ?? {}\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some((row) => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n}\n\n/**\n * Checks whether selection is partially applied across filtered rows.\n *\n * The result is true when at least one row id is selected but fewer ids are\n * selected than the current filtered flat row count.\n *\n * @example\n * ```ts\n * const someRowsSelected = table_getIsSomeRowsSelected(table)\n * ```\n */\nexport function table_getIsSomeRowsSelected<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const totalSelected = Object.keys(\n table.atoms.rowSelection?.get() ?? {},\n ).length\n return (\n totalSelected > 0 &&\n totalSelected < table.getFilteredRowModel().flatRows.length\n )\n}\n\n/**\n * Checks whether the current page has a partial selection.\n *\n * This is false when all selectable page rows are selected. Otherwise it is true\n * if any selectable page row or descendant is selected.\n *\n * @example\n * ```ts\n * const somePageRowsSelected = table_getIsSomePageRowsSelected(table)\n * ```\n */\nexport function table_getIsSomePageRowsSelected<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const paginationFlatRows = table.getPaginatedRowModel().flatRows\n return table_getIsAllPageRowsSelected(table)\n ? false\n : paginationFlatRows\n .filter((row) => row_getCanSelect(row))\n .some((row) => row_getIsSelected(row) || row_getIsSomeSelected(row))\n}\n\n/**\n * Creates a checkbox-style handler that selects or deselects all rows.\n *\n * The handler reads `event.target.checked`, so it is intended for controls whose\n * checked state means \"all rows selected\".\n *\n * @example\n * ```ts\n * const onChange = table_getToggleAllRowsSelectedHandler(table)\n * ```\n */\nexport function table_getToggleAllRowsSelectedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n table_toggleAllRowsSelected(\n table,\n ((e as MouseEvent).target as HTMLInputElement).checked,\n )\n }\n}\n\n/**\n * Creates a checkbox-style handler that selects or deselects current page rows.\n *\n * The handler reads `event.target.checked`, so it is intended for controls whose\n * checked state means \"all page rows selected\".\n *\n * @example\n * ```ts\n * const onChange = table_getToggleAllPageRowsSelectedHandler(table)\n * ```\n */\nexport function table_getToggleAllPageRowsSelectedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n table_toggleAllPageRowsSelected(\n table,\n ((e as MouseEvent).target as HTMLInputElement).checked,\n )\n }\n}\n\n// Row APIs\n\n/**\n * Selects or deselects this row.\n *\n * Omitting `value` toggles the row. Child rows are selected recursively unless\n * `opts.selectChildren` is `false` or sub-row selection is disabled.\n *\n * @example\n * ```ts\n * row_toggleSelected(row)\n * ```\n */\nexport function row_toggleSelected<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n value?: boolean,\n opts?: {\n selectChildren?: boolean\n },\n) {\n const isSelected = row_getIsSelected(row)\n\n table_setRowSelection(row.table, (old) => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (row_getCanSelect(row) && isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(\n selectedRowIds,\n row.id,\n value,\n opts?.selectChildren ?? true,\n row.table,\n )\n\n return selectedRowIds\n })\n}\n\n/**\n * Checks whether this row id is selected in `state.rowSelection`.\n *\n * Missing row ids are treated as not selected.\n *\n * @example\n * ```ts\n * const selected = row_getIsSelected(row)\n * ```\n */\nexport function row_getIsSelected<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return isRowSelected(row)\n}\n\n/**\n * Checks whether some, but not all, selectable descendants are selected.\n *\n * This supports indeterminate selection UI for parent rows.\n *\n * @example\n * ```ts\n * const partial = row_getIsSomeSelected(row)\n * ```\n */\nexport function row_getIsSomeSelected<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return isSubRowSelected(row) === 'some'\n}\n\n/**\n * Checks whether all selectable descendants are selected.\n *\n * Rows without selectable descendants return false.\n *\n * @example\n * ```ts\n * const allChildrenSelected = row_getIsAllSubRowsSelected(row)\n * ```\n */\nexport function row_getIsAllSubRowsSelected<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return isSubRowSelected(row) === 'all'\n}\n\n/**\n * Checks whether this row can be selected.\n *\n * `options.enableRowSelection` may be a boolean or a row predicate; it defaults\n * to `true`.\n *\n * @example\n * ```ts\n * const canSelect = row_getCanSelect(row)\n * ```\n */\nexport function row_getCanSelect<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const options = row.table.options\n if (typeof options.enableRowSelection === 'function') {\n return options.enableRowSelection(row)\n }\n\n return options.enableRowSelection ?? true\n}\n\n/**\n * Checks whether selecting this row should also select its subRows.\n *\n * `options.enableSubRowSelection` may be a boolean or a row predicate; it\n * defaults to `true`.\n *\n * @example\n * ```ts\n * const canSelectChildren = row_getCanSelectSubRows(row)\n * ```\n */\nexport function row_getCanSelectSubRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const options = row.table.options\n if (typeof options.enableSubRowSelection === 'function') {\n return options.enableSubRowSelection(row)\n }\n\n return options.enableSubRowSelection ?? true\n}\n\n/**\n * Checks whether this row can be selected alongside other rows.\n *\n * `options.enableMultiRowSelection` may be a boolean or a row predicate; it\n * defaults to `true`.\n *\n * @example\n * ```ts\n * const canMultiSelect = row_getCanMultiSelect(row)\n * ```\n */\nexport function row_getCanMultiSelect<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const options = row.table.options\n if (typeof options.enableMultiRowSelection === 'function') {\n return options.enableMultiRowSelection(row)\n }\n\n return options.enableMultiRowSelection ?? true\n}\n\n/**\n * Creates a checkbox-style handler that selects or deselects this row.\n *\n * The handler is a no-op when the row cannot be selected and reads\n * `event.target.checked`.\n *\n * @example\n * ```ts\n * const onChange = row_getToggleSelectedHandler(row)\n * ```\n */\nexport function row_getToggleSelectedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const canSelect = row_getCanSelect(row)\n\n return (e: unknown) => {\n if (!canSelect) return\n row_toggleSelected(\n row,\n ((e as MouseEvent).target as HTMLInputElement).checked,\n )\n }\n}\n\nconst mutateRowIsSelected = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n selectedRowIds: Record<string, boolean | undefined>,\n rowId: string,\n value: boolean,\n includeChildren: boolean,\n table: Table_Internal<TFeatures, TData>,\n) => {\n const row = table.getRow(rowId, true)\n\n if (value) {\n if (!row_getCanMultiSelect(row)) {\n Object.keys(selectedRowIds).forEach((key) => delete selectedRowIds[key])\n }\n if (row_getCanSelect(row)) {\n selectedRowIds[rowId] = true\n }\n } else {\n delete selectedRowIds[rowId]\n }\n\n if (includeChildren && row.subRows.length && row_getCanSelectSubRows(row)) {\n row.subRows.forEach((r) =>\n mutateRowIsSelected(selectedRowIds, r.id, value, includeChildren, table),\n )\n }\n}\n\n/**\n * Builds a row model containing rows selected by the current row selection state.\n *\n * The result is derived from the supplied row model, so selected ids absent from\n * that model are not materialized as rows.\n *\n * @example\n * ```ts\n * const selectedRows = selectRowsFn(rowModel)\n * ```\n */\nexport function selectRowsFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(rowModel: RowModel<TFeatures, TData>): RowModel<TFeatures, TData> {\n const newSelectedFlatRows: Array<Row<TFeatures, TData>> = []\n const newSelectedRowsById: Record<string, Row<TFeatures, TData>> = {}\n\n // Filters top level and nested rows.\n const recurseRows = (\n rows: Array<Row<TFeatures, TData>>,\n depth = 0,\n ): Array<Row<TFeatures, TData>> => {\n const result: Array<Row<TFeatures, TData>> = []\n for (let i = 0; i < rows.length; i++) {\n let row = rows[i]!\n const isSelected = isRowSelected(row)\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n result.push(row)\n }\n }\n return result\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\n/**\n * Returns whether a row id is selected in the current row selection state.\n *\n * @example\n * ```ts\n * const selected = isRowSelected(row)\n * ```\n */\nexport function isRowSelected<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): boolean {\n return (row.table.atoms.rowSelection?.get() ?? {})[row.id] ?? false\n}\n\n/**\n * Returns whether all, some, or none of a row's selectable descendants are selected.\n *\n * The result is used to drive indeterminate row selection UI.\n *\n * @example\n * ```ts\n * const selectedState = isSubRowSelected(row)\n * ```\n */\nexport function isSubRowSelected<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): boolean | 'some' | 'all' {\n if (!row.subRows.length) return false\n\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach((subRow) => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (row_getCanSelect(subRow)) {\n if (isRowSelected(subRow)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow)\n if (subRowChildrenSelected === 'all') {\n someSelected = true\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true\n allChildrenSelected = false\n } else {\n allChildrenSelected = false\n }\n }\n })\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false\n}\n"],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ const require_utils = require('../../utils.cjs');
2
+ const require_rowPaginationFeature_utils = require('../row-pagination/rowPaginationFeature.utils.cjs');
3
+ const require_rowSortingFeature_utils = require('./rowSortingFeature.utils.cjs');
4
+
5
+ //#region src/features/row-sorting/createSortedRowModel.ts
6
+ /**
7
+ * Creates a memoized sorted row model factory.
8
+ *
9
+ * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.
10
+ */
11
+ function createSortedRowModel(sortFns) {
12
+ return (_table) => {
13
+ const table = _table;
14
+ if (!table._rowModelFns.sortFns) table._rowModelFns.sortFns = sortFns;
15
+ return require_utils.tableMemo({
16
+ feature: "rowSortingFeature",
17
+ table,
18
+ fnName: "table.getSortedRowModel",
19
+ memoDeps: () => {
20
+ var _table$atoms$sorting;
21
+ return [(_table$atoms$sorting = table.atoms.sorting) === null || _table$atoms$sorting === void 0 ? void 0 : _table$atoms$sorting.get(), table.getPreSortedRowModel()];
22
+ },
23
+ fn: () => _createSortedRowModel(table),
24
+ onAfterUpdate: () => require_rowPaginationFeature_utils.table_autoResetPageIndex(table)
25
+ });
26
+ };
27
+ }
28
+ function _createSortedRowModel(table) {
29
+ var _table$atoms$sorting2;
30
+ const preSortedRowModel = table.getPreSortedRowModel();
31
+ const sorting = (_table$atoms$sorting2 = table.atoms.sorting) === null || _table$atoms$sorting2 === void 0 ? void 0 : _table$atoms$sorting2.get();
32
+ if (!preSortedRowModel.rows.length || !(sorting === null || sorting === void 0 ? void 0 : sorting.length)) return preSortedRowModel;
33
+ const sortedFlatRows = [];
34
+ const availableSorting = sorting.filter((sort) => require_rowSortingFeature_utils.column_getCanSort(table.getColumn(sort.id)));
35
+ const columnInfoById = {};
36
+ availableSorting.forEach((sortEntry) => {
37
+ const column = table.getColumn(sortEntry.id);
38
+ if (!column) return;
39
+ columnInfoById[sortEntry.id] = {
40
+ sortUndefined: column.columnDef.sortUndefined,
41
+ invertSorting: column.columnDef.invertSorting,
42
+ sortFn: require_rowSortingFeature_utils.column_getSortFn(column)
43
+ };
44
+ });
45
+ const sortData = (rows) => {
46
+ const sortedData = rows.slice();
47
+ sortedData.sort((rowA, rowB) => {
48
+ for (let i = 0; i < availableSorting.length; i++) {
49
+ const sortEntry = availableSorting[i];
50
+ const columnInfo = columnInfoById[sortEntry.id];
51
+ const sortUndefined = columnInfo.sortUndefined;
52
+ const isDesc = sortEntry.desc;
53
+ let sortInt = 0;
54
+ if (sortUndefined) {
55
+ const aValue = rowA.getValue(sortEntry.id);
56
+ const bValue = rowB.getValue(sortEntry.id);
57
+ const aUndefined = aValue === void 0;
58
+ const bUndefined = bValue === void 0;
59
+ if (aUndefined || bUndefined) {
60
+ if (sortUndefined === "first") return aUndefined ? -1 : 1;
61
+ if (sortUndefined === "last") return aUndefined ? 1 : -1;
62
+ sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;
63
+ }
64
+ }
65
+ if (sortInt === 0) sortInt = columnInfo.sortFn(rowA, rowB, sortEntry.id);
66
+ if (sortInt !== 0) {
67
+ if (isDesc) sortInt *= -1;
68
+ if (columnInfo.invertSorting) sortInt *= -1;
69
+ return sortInt;
70
+ }
71
+ }
72
+ return rowA.index - rowB.index;
73
+ });
74
+ for (let i = 0; i < sortedData.length; i++) {
75
+ const row = sortedData[i];
76
+ if (row.subRows.length) {
77
+ const cloned = Object.create(Object.getPrototypeOf(row));
78
+ Object.assign(cloned, row);
79
+ cloned.subRows = sortData(row.subRows);
80
+ sortedData[i] = cloned;
81
+ sortedFlatRows.push(cloned);
82
+ } else sortedFlatRows.push(row);
83
+ }
84
+ return sortedData;
85
+ };
86
+ return {
87
+ rows: sortData(preSortedRowModel.rows),
88
+ flatRows: sortedFlatRows,
89
+ rowsById: preSortedRowModel.rowsById
90
+ };
91
+ }
92
+
93
+ //#endregion
94
+ exports.createSortedRowModel = createSortedRowModel;
95
+ //# sourceMappingURL=createSortedRowModel.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSortedRowModel.cjs","names":["tableMemo","table_autoResetPageIndex","column_getCanSort","column_getSortFn"],"sources":["../../../src/features/row-sorting/createSortedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { table_autoResetPageIndex } from '../row-pagination/rowPaginationFeature.utils'\nimport { column_getCanSort, column_getSortFn } from './rowSortingFeature.utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { SortFn, SortFns } from './rowSortingFeature.types'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized sorted row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createSortedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n sortFns: Record<keyof SortFns, SortFn<TFeatures, TData>>,\n): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table: Table_Internal<TFeatures, TData> = _table\n if (!table._rowModelFns.sortFns) table._rowModelFns.sortFns = sortFns\n return tableMemo({\n feature: 'rowSortingFeature',\n table,\n fnName: 'table.getSortedRowModel',\n memoDeps: () => [\n table.atoms.sorting?.get(),\n table.getPreSortedRowModel(),\n ],\n fn: () => _createSortedRowModel(table),\n onAfterUpdate: () => table_autoResetPageIndex(table),\n })\n }\n}\n\nfunction _createSortedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const preSortedRowModel = table.getPreSortedRowModel()\n const sorting = table.atoms.sorting?.get()\n\n if (!preSortedRowModel.rows.length || !sorting?.length) {\n return preSortedRowModel\n }\n\n const sortedFlatRows: Array<Row<TFeatures, TData>> = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sorting.filter((sort) =>\n column_getCanSort(\n table.getColumn(sort.id) as Column_Internal<TFeatures, TData>,\n ),\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1 | 'first' | 'last'\n invertSorting?: boolean\n sortFn: SortFn<TFeatures, TData>\n }\n > = {}\n\n availableSorting.forEach((sortEntry) => {\n const column: Column_Internal<TFeatures, TData> | undefined =\n table.getColumn(sortEntry.id)\n if (!column) return\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortFn: column_getSortFn(column),\n }\n })\n\n const sortData = (rows: Array<Row<TFeatures, TData>>) => {\n const sortedData = rows.slice()\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i++) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const sortUndefined = columnInfo.sortUndefined\n const isDesc = sortEntry.desc\n\n let sortInt = 0\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id)\n const bValue = rowB.getValue(sortEntry.id)\n\n const aUndefined = aValue === undefined\n const bUndefined = bValue === undefined\n\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1\n if (sortUndefined === 'last') return aUndefined ? 1 : -1\n sortInt =\n aUndefined && bUndefined\n ? 0\n : aUndefined\n ? sortUndefined\n : -sortUndefined\n }\n }\n\n if (sortInt === 0) {\n sortInt = columnInfo.sortFn(rowA, rowB, sortEntry.id)\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1\n }\n\n return sortInt\n }\n }\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them. Clone only rows that need mutation\n // (i.e. have subRows) so we don't corrupt the source row model.\n for (let i = 0; i < sortedData.length; i++) {\n const row = sortedData[i]!\n if (row.subRows.length) {\n // Preserve prototype chain so methods like getValue() remain accessible\n const cloned = Object.create(Object.getPrototypeOf(row))\n Object.assign(cloned, row)\n cloned.subRows = sortData(row.subRows)\n sortedData[i] = cloned\n sortedFlatRows.push(cloned)\n } else {\n sortedFlatRows.push(row)\n }\n }\n\n return sortedData\n }\n\n return {\n rows: sortData(preSortedRowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: preSortedRowModel.rowsById,\n }\n}\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,qBAId,SACsE;CACtE,QAAQ,WAAW;EACjB,MAAM,QAA0C;EAChD,IAAI,CAAC,MAAM,aAAa,SAAS,MAAM,aAAa,UAAU;EAC9D,OAAOA,wBAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;;oCACd,MAAM,MAAM,qFAAS,IAAI,GACzB,MAAM,qBAAqB,CAC7B;;GACA,UAAU,sBAAsB,KAAK;GACrC,qBAAqBC,4DAAyB,KAAK;EACrD,CAAC;CACH;AACF;AAEA,SAAS,sBAGP,OAAqE;;CACrE,MAAM,oBAAoB,MAAM,qBAAqB;CACrD,MAAM,mCAAU,MAAM,MAAM,uFAAS,IAAI;CAEzC,IAAI,CAAC,kBAAkB,KAAK,UAAU,oDAAC,QAAS,SAC9C,OAAO;CAGT,MAAM,iBAA+C,CAAC;CAGtD,MAAM,mBAAmB,QAAQ,QAAQ,SACvCC,kDACE,MAAM,UAAU,KAAK,EAAE,CACzB,CACF;CAEA,MAAM,iBAOF,CAAC;CAEL,iBAAiB,SAAS,cAAc;EACtC,MAAM,SACJ,MAAM,UAAU,UAAU,EAAE;EAC9B,IAAI,CAAC,QAAQ;EAEb,eAAe,UAAU,MAAM;GAC7B,eAAe,OAAO,UAAU;GAChC,eAAe,OAAO,UAAU;GAChC,QAAQC,iDAAiB,MAAM;EACjC;CACF,CAAC;CAED,MAAM,YAAY,SAAuC;EACvD,MAAM,aAAa,KAAK,MAAM;EAE9B,WAAW,MAAM,MAAM,SAAS;GAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;IAChD,MAAM,YAAY,iBAAiB;IACnC,MAAM,aAAa,eAAe,UAAU;IAC5C,MAAM,gBAAgB,WAAW;IACjC,MAAM,SAAS,UAAU;IAEzB,IAAI,UAAU;IAGd,IAAI,eAAe;KACjB,MAAM,SAAS,KAAK,SAAS,UAAU,EAAE;KACzC,MAAM,SAAS,KAAK,SAAS,UAAU,EAAE;KAEzC,MAAM,aAAa,WAAW;KAC9B,MAAM,aAAa,WAAW;KAE9B,IAAI,cAAc,YAAY;MAC5B,IAAI,kBAAkB,SAAS,OAAO,aAAa,KAAK;MACxD,IAAI,kBAAkB,QAAQ,OAAO,aAAa,IAAI;MACtD,UACE,cAAc,aACV,IACA,aACE,gBACA,CAAC;KACX;IACF;IAEA,IAAI,YAAY,GACd,UAAU,WAAW,OAAO,MAAM,MAAM,UAAU,EAAE;IAItD,IAAI,YAAY,GAAG;KACjB,IAAI,QACF,WAAW;KAGb,IAAI,WAAW,eACb,WAAW;KAGb,OAAO;IACT;GACF;GACA,OAAO,KAAK,QAAQ,KAAK;EAC3B,CAAC;EAID,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;GAC1C,MAAM,MAAM,WAAW;GACvB,IAAI,IAAI,QAAQ,QAAQ;IAEtB,MAAM,SAAS,OAAO,OAAO,OAAO,eAAe,GAAG,CAAC;IACvD,OAAO,OAAO,QAAQ,GAAG;IACzB,OAAO,UAAU,SAAS,IAAI,OAAO;IACrC,WAAW,KAAK;IAChB,eAAe,KAAK,MAAM;GAC5B,OACE,eAAe,KAAK,GAAG;EAE3B;EAEA,OAAO;CACT;CAEA,OAAO;EACL,MAAM,SAAS,kBAAkB,IAAI;EACrC,UAAU;EACV,UAAU,kBAAkB;CAC9B;AACF"}
@@ -0,0 +1,16 @@
1
+ import { RowData } from "../../types/type-utils.cjs";
2
+ import { SortFn, SortFns } from "./rowSortingFeature.types.cjs";
3
+ import { TableFeatures } from "../../types/TableFeatures.cjs";
4
+ import { Table } from "../../types/Table.cjs";
5
+ import { RowModel } from "../../core/row-models/coreRowModelsFeature.types.cjs";
6
+
7
+ //#region src/features/row-sorting/createSortedRowModel.d.ts
8
+ /**
9
+ * Creates a memoized sorted row model factory.
10
+ *
11
+ * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.
12
+ */
13
+ declare function createSortedRowModel<TFeatures extends TableFeatures, TData extends RowData>(sortFns: Record<keyof SortFns, SortFn<TFeatures, TData>>): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData>;
14
+ //#endregion
15
+ export { createSortedRowModel };
16
+ //# sourceMappingURL=createSortedRowModel.d.cts.map