@tanstack/table-core 9.0.0-alpha.0 → 9.0.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/dist/esm/core/cells/constructCell.d.ts +7 -0
  2. package/dist/esm/core/cells/constructCell.js +21 -0
  3. package/dist/esm/core/cells/constructCell.js.map +1 -0
  4. package/dist/esm/core/cells/coreCellsFeature.d.ts +10 -0
  5. package/dist/esm/core/cells/coreCellsFeature.js +26 -0
  6. package/dist/esm/core/cells/coreCellsFeature.js.map +1 -0
  7. package/dist/esm/core/cells/coreCellsFeature.types.d.ts +52 -0
  8. package/dist/esm/core/cells/coreCellsFeature.utils.d.ts +13 -0
  9. package/dist/esm/core/cells/coreCellsFeature.utils.js +23 -0
  10. package/dist/esm/core/cells/coreCellsFeature.utils.js.map +1 -0
  11. package/dist/esm/core/columns/constructColumn.d.ts +6 -0
  12. package/dist/esm/core/columns/constructColumn.js +60 -0
  13. package/dist/esm/core/columns/constructColumn.js.map +1 -0
  14. package/dist/esm/core/columns/coreColumnsFeature.d.ts +10 -0
  15. package/dist/esm/core/columns/coreColumnsFeature.js +61 -0
  16. package/dist/esm/core/columns/coreColumnsFeature.js.map +1 -0
  17. package/dist/esm/core/columns/coreColumnsFeature.types.d.ts +84 -0
  18. package/dist/esm/core/columns/coreColumnsFeature.utils.d.ts +13 -0
  19. package/dist/esm/core/columns/coreColumnsFeature.utils.js +91 -0
  20. package/dist/esm/core/columns/coreColumnsFeature.utils.js.map +1 -0
  21. package/dist/esm/core/coreFeatures.d.ts +15 -0
  22. package/dist/esm/core/coreFeatures.js +18 -0
  23. package/dist/esm/core/coreFeatures.js.map +1 -0
  24. package/dist/esm/core/headers/buildHeaderGroups.d.ts +6 -0
  25. package/dist/esm/core/headers/buildHeaderGroups.js +99 -0
  26. package/dist/esm/core/headers/buildHeaderGroups.js.map +1 -0
  27. package/dist/esm/core/headers/constructHeader.d.ts +12 -0
  28. package/dist/esm/core/headers/constructHeader.js +28 -0
  29. package/dist/esm/core/headers/constructHeader.js.map +1 -0
  30. package/dist/esm/core/headers/coreHeadersFeature.d.ts +10 -0
  31. package/dist/esm/core/headers/coreHeadersFeature.js +68 -0
  32. package/dist/esm/core/headers/coreHeadersFeature.js.map +1 -0
  33. package/dist/esm/core/headers/coreHeadersFeature.types.d.ts +99 -0
  34. package/dist/esm/core/headers/coreHeadersFeature.utils.d.ts +15 -0
  35. package/dist/esm/core/headers/coreHeadersFeature.utils.js +85 -0
  36. package/dist/esm/core/headers/coreHeadersFeature.utils.js.map +1 -0
  37. package/dist/esm/core/row-models/coreRowModelsFeature.d.ts +10 -0
  38. package/dist/esm/core/row-models/coreRowModelsFeature.js +52 -0
  39. package/dist/esm/core/row-models/coreRowModelsFeature.js.map +1 -0
  40. package/dist/esm/core/row-models/coreRowModelsFeature.types.d.ts +39 -0
  41. package/dist/esm/core/row-models/coreRowModelsFeature.utils.d.ts +16 -0
  42. package/dist/esm/core/row-models/coreRowModelsFeature.utils.js +85 -0
  43. package/dist/esm/core/row-models/coreRowModelsFeature.utils.js.map +1 -0
  44. package/dist/esm/core/row-models/createCoreRowModel.d.ts +5 -0
  45. package/dist/esm/core/row-models/createCoreRowModel.js +54 -0
  46. package/dist/esm/core/row-models/createCoreRowModel.js.map +1 -0
  47. package/dist/esm/core/rows/constructRow.d.ts +5 -0
  48. package/dist/esm/core/rows/constructRow.js +29 -0
  49. package/dist/esm/core/rows/constructRow.js.map +1 -0
  50. package/dist/esm/core/rows/coreRowsFeature.d.ts +10 -0
  51. package/dist/esm/core/rows/coreRowsFeature.js +52 -0
  52. package/dist/esm/core/rows/coreRowsFeature.js.map +1 -0
  53. package/dist/esm/core/rows/coreRowsFeature.types.d.ts +91 -0
  54. package/dist/esm/core/rows/coreRowsFeature.utils.d.ts +15 -0
  55. package/dist/esm/core/rows/coreRowsFeature.utils.js +94 -0
  56. package/dist/esm/core/rows/coreRowsFeature.utils.js.map +1 -0
  57. package/dist/esm/core/table/constructTable.d.ts +9 -0
  58. package/dist/esm/core/table/constructTable.js +65 -0
  59. package/dist/esm/core/table/constructTable.js.map +1 -0
  60. package/dist/esm/core/table/coreTablesFeature.d.ts +10 -0
  61. package/dist/esm/core/table/coreTablesFeature.js +22 -0
  62. package/dist/esm/core/table/coreTablesFeature.js.map +1 -0
  63. package/dist/esm/core/table/coreTablesFeature.types.d.ts +105 -0
  64. package/dist/esm/core/table/coreTablesFeature.utils.d.ts +7 -0
  65. package/dist/esm/core/table/coreTablesFeature.utils.js +23 -0
  66. package/dist/esm/core/table/coreTablesFeature.utils.js.map +1 -0
  67. package/dist/esm/features/column-faceting/columnFacetingFeature.d.ts +10 -0
  68. package/dist/esm/features/column-faceting/columnFacetingFeature.js +80 -0
  69. package/dist/esm/features/column-faceting/columnFacetingFeature.js.map +1 -0
  70. package/dist/esm/features/column-faceting/columnFacetingFeature.types.d.ts +68 -0
  71. package/dist/esm/features/column-faceting/columnFacetingFeature.utils.d.ts +11 -0
  72. package/dist/esm/features/column-faceting/columnFacetingFeature.utils.js +33 -0
  73. package/dist/esm/features/column-faceting/columnFacetingFeature.utils.js.map +1 -0
  74. package/dist/esm/features/column-faceting/createFacetedMinMaxValues.d.ts +4 -0
  75. package/dist/esm/features/column-faceting/createFacetedMinMaxValues.js +41 -0
  76. package/dist/esm/features/column-faceting/createFacetedMinMaxValues.js.map +1 -0
  77. package/dist/esm/features/column-faceting/createFacetedRowModel.d.ts +5 -0
  78. package/dist/esm/features/column-faceting/createFacetedRowModel.js +47 -0
  79. package/dist/esm/features/column-faceting/createFacetedRowModel.js.map +1 -0
  80. package/dist/esm/features/column-faceting/createFacetedUniqueValues.d.ts +4 -0
  81. package/dist/esm/features/column-faceting/createFacetedUniqueValues.js +46 -0
  82. package/dist/esm/features/column-faceting/createFacetedUniqueValues.js.map +1 -0
  83. package/dist/esm/features/column-filtering/columnFilteringFeature.d.ts +11 -0
  84. package/dist/esm/features/column-filtering/columnFilteringFeature.js +69 -0
  85. package/dist/esm/features/column-filtering/columnFilteringFeature.js.map +1 -0
  86. package/dist/esm/features/column-filtering/columnFilteringFeature.types.d.ts +145 -0
  87. package/dist/esm/features/column-filtering/columnFilteringFeature.utils.d.ts +16 -0
  88. package/dist/esm/features/column-filtering/columnFilteringFeature.utils.js +118 -0
  89. package/dist/esm/features/column-filtering/columnFilteringFeature.utils.js.map +1 -0
  90. package/dist/esm/features/column-filtering/createFilteredRowModel.d.ts +6 -0
  91. package/dist/esm/features/column-filtering/createFilteredRowModel.js +110 -0
  92. package/dist/esm/features/column-filtering/createFilteredRowModel.js.map +1 -0
  93. package/dist/esm/features/column-filtering/filterRowsUtils.d.ts +6 -0
  94. package/dist/esm/{utils → features/column-filtering}/filterRowsUtils.js +15 -19
  95. package/dist/esm/features/column-filtering/filterRowsUtils.js.map +1 -0
  96. package/dist/esm/features/column-grouping/columnGroupingFeature.d.ts +10 -0
  97. package/dist/esm/features/column-grouping/columnGroupingFeature.js +91 -0
  98. package/dist/esm/features/column-grouping/columnGroupingFeature.js.map +1 -0
  99. package/dist/esm/features/column-grouping/columnGroupingFeature.types.d.ts +153 -0
  100. package/dist/esm/features/column-grouping/columnGroupingFeature.utils.d.ts +22 -0
  101. package/dist/esm/features/column-grouping/columnGroupingFeature.utils.js +99 -0
  102. package/dist/esm/features/column-grouping/columnGroupingFeature.utils.js.map +1 -0
  103. package/dist/esm/features/column-grouping/createGroupedRowModel.d.ts +6 -0
  104. package/dist/esm/features/column-grouping/createGroupedRowModel.js +144 -0
  105. package/dist/esm/features/column-grouping/createGroupedRowModel.js.map +1 -0
  106. package/dist/esm/features/column-ordering/columnOrderingFeature.d.ts +10 -0
  107. package/dist/esm/features/column-ordering/columnOrderingFeature.js +60 -0
  108. package/dist/esm/features/column-ordering/columnOrderingFeature.js.map +1 -0
  109. package/dist/{cjs/features/ColumnOrdering.d.cts → esm/features/column-ordering/columnOrderingFeature.types.d.ts} +8 -22
  110. package/dist/esm/features/column-ordering/columnOrderingFeature.utils.d.ts +14 -0
  111. package/dist/esm/features/column-ordering/columnOrderingFeature.utils.js +72 -0
  112. package/dist/esm/features/column-ordering/columnOrderingFeature.utils.js.map +1 -0
  113. package/dist/esm/features/column-pinning/columnPinningFeature.d.ts +10 -0
  114. package/dist/esm/features/column-pinning/columnPinningFeature.js +260 -0
  115. package/dist/esm/features/column-pinning/columnPinningFeature.js.map +1 -0
  116. package/dist/esm/features/column-pinning/columnPinningFeature.types.d.ts +157 -0
  117. package/dist/esm/features/column-pinning/columnPinningFeature.utils.d.ts +39 -0
  118. package/dist/esm/features/column-pinning/columnPinningFeature.utils.js +325 -0
  119. package/dist/esm/features/column-pinning/columnPinningFeature.utils.js.map +1 -0
  120. package/dist/esm/features/column-resizing/columnResizingFeature.d.ts +11 -0
  121. package/dist/esm/features/column-resizing/columnResizingFeature.js +52 -0
  122. package/dist/esm/features/column-resizing/columnResizingFeature.js.map +1 -0
  123. package/dist/esm/features/column-resizing/columnResizingFeature.types.d.ts +68 -0
  124. package/dist/esm/features/column-resizing/columnResizingFeature.utils.d.ts +14 -0
  125. package/dist/esm/features/column-resizing/columnResizingFeature.utils.js +193 -0
  126. package/dist/esm/features/column-resizing/columnResizingFeature.utils.js.map +1 -0
  127. package/dist/esm/features/column-sizing/columnSizingFeature.d.ts +11 -0
  128. package/dist/esm/features/column-sizing/columnSizingFeature.js +95 -0
  129. package/dist/esm/features/column-sizing/columnSizingFeature.js.map +1 -0
  130. package/dist/esm/features/column-sizing/columnSizingFeature.types.d.ts +81 -0
  131. package/dist/esm/features/column-sizing/columnSizingFeature.utils.d.ts +25 -0
  132. package/dist/esm/features/column-sizing/columnSizingFeature.utils.js +128 -0
  133. package/dist/esm/features/column-sizing/columnSizingFeature.utils.js.map +1 -0
  134. package/dist/esm/features/column-visibility/columnVisibilityFeature.d.ts +10 -0
  135. package/dist/esm/features/column-visibility/columnVisibilityFeature.js +100 -0
  136. package/dist/esm/features/column-visibility/columnVisibilityFeature.js.map +1 -0
  137. package/dist/esm/features/column-visibility/columnVisibilityFeature.types.d.ts +84 -0
  138. package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.d.ts +22 -0
  139. package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.js +105 -0
  140. package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -0
  141. package/dist/esm/features/global-filtering/globalFilteringFeature.d.ts +11 -0
  142. package/dist/esm/features/global-filtering/globalFilteringFeature.js +51 -0
  143. package/dist/esm/features/global-filtering/globalFilteringFeature.js.map +1 -0
  144. package/dist/esm/features/global-filtering/globalFilteringFeature.types.d.ts +59 -0
  145. package/dist/esm/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -0
  146. package/dist/esm/features/global-filtering/globalFilteringFeature.utils.js +30 -0
  147. package/dist/esm/features/global-filtering/globalFilteringFeature.utils.js.map +1 -0
  148. package/dist/esm/features/row-expanding/createExpandedRowModel.d.ts +6 -0
  149. package/dist/esm/features/row-expanding/createExpandedRowModel.js +49 -0
  150. package/dist/esm/features/row-expanding/createExpandedRowModel.js.map +1 -0
  151. package/dist/esm/features/row-expanding/rowExpandingFeature.d.ts +10 -0
  152. package/dist/esm/features/row-expanding/rowExpandingFeature.js +74 -0
  153. package/dist/esm/features/row-expanding/rowExpandingFeature.js.map +1 -0
  154. package/dist/esm/features/row-expanding/rowExpandingFeature.types.d.ts +116 -0
  155. package/dist/esm/features/row-expanding/rowExpandingFeature.utils.d.ts +20 -0
  156. package/dist/esm/features/row-expanding/rowExpandingFeature.utils.js +125 -0
  157. package/dist/esm/features/row-expanding/rowExpandingFeature.utils.js.map +1 -0
  158. package/dist/esm/features/row-pagination/createPaginatedRowModel.d.ts +5 -0
  159. package/dist/esm/features/row-pagination/createPaginatedRowModel.js +58 -0
  160. package/dist/esm/features/row-pagination/createPaginatedRowModel.js.map +1 -0
  161. package/dist/esm/features/row-pagination/rowPaginationFeature.d.ts +10 -0
  162. package/dist/esm/features/row-pagination/rowPaginationFeature.js +78 -0
  163. package/dist/esm/features/row-pagination/rowPaginationFeature.js.map +1 -0
  164. package/dist/esm/features/row-pagination/rowPaginationFeature.types.d.ts +119 -0
  165. package/dist/esm/features/row-pagination/rowPaginationFeature.utils.d.ts +21 -0
  166. package/dist/esm/features/row-pagination/rowPaginationFeature.utils.js +126 -0
  167. package/dist/esm/features/row-pagination/rowPaginationFeature.utils.js.map +1 -0
  168. package/dist/esm/features/row-pinning/rowPinningFeature.d.ts +10 -0
  169. package/dist/esm/features/row-pinning/rowPinningFeature.js +80 -0
  170. package/dist/esm/features/row-pinning/rowPinningFeature.js.map +1 -0
  171. package/dist/esm/features/row-pinning/rowPinningFeature.types.d.ts +72 -0
  172. package/dist/esm/features/row-pinning/rowPinningFeature.utils.d.ts +16 -0
  173. package/dist/esm/features/row-pinning/rowPinningFeature.utils.js +115 -0
  174. package/dist/esm/features/row-pinning/rowPinningFeature.utils.js.map +1 -0
  175. package/dist/esm/features/row-selection/rowSelectionFeature.d.ts +10 -0
  176. package/dist/esm/features/row-selection/rowSelectionFeature.js +112 -0
  177. package/dist/esm/features/row-selection/rowSelectionFeature.js.map +1 -0
  178. package/dist/esm/features/row-selection/rowSelectionFeature.types.d.ts +123 -0
  179. package/dist/esm/features/row-selection/rowSelectionFeature.utils.d.ts +34 -0
  180. package/dist/esm/features/row-selection/rowSelectionFeature.utils.js +290 -0
  181. package/dist/esm/features/row-selection/rowSelectionFeature.utils.js.map +1 -0
  182. package/dist/esm/features/row-sorting/createSortedRowModel.d.ts +6 -0
  183. package/dist/esm/features/row-sorting/createSortedRowModel.js +94 -0
  184. package/dist/esm/features/row-sorting/createSortedRowModel.js.map +1 -0
  185. package/dist/esm/features/row-sorting/rowSortingFeature.d.ts +10 -0
  186. package/dist/esm/features/row-sorting/rowSortingFeature.js +82 -0
  187. package/dist/esm/features/row-sorting/rowSortingFeature.js.map +1 -0
  188. package/dist/esm/features/row-sorting/rowSortingFeature.types.d.ts +178 -0
  189. package/dist/esm/features/row-sorting/rowSortingFeature.utils.d.ts +20 -0
  190. package/dist/esm/features/row-sorting/rowSortingFeature.utils.js +181 -0
  191. package/dist/esm/features/row-sorting/rowSortingFeature.utils.js.map +1 -0
  192. package/dist/esm/features/stockFeatures.d.ts +31 -0
  193. package/dist/esm/features/stockFeatures.js +34 -0
  194. package/dist/esm/features/stockFeatures.js.map +1 -0
  195. package/dist/esm/fns/aggregationFns.d.ts +49 -0
  196. package/dist/esm/fns/aggregationFns.js +110 -0
  197. package/dist/esm/fns/aggregationFns.js.map +1 -0
  198. package/dist/esm/fns/filterFns.d.ts +76 -0
  199. package/dist/esm/fns/filterFns.js +134 -0
  200. package/dist/esm/fns/filterFns.js.map +1 -0
  201. package/dist/esm/fns/sortFns.d.ts +17 -0
  202. package/dist/esm/{sortingFns.js → fns/sortFns.js} +21 -15
  203. package/dist/esm/fns/sortFns.js.map +1 -0
  204. package/dist/esm/helpers/columnHelper.d.ts +61 -0
  205. package/dist/esm/{columnHelper.js → helpers/columnHelper.js} +1 -0
  206. package/dist/esm/helpers/columnHelper.js.map +1 -0
  207. package/dist/esm/helpers/tableFeatures.d.ts +13 -0
  208. package/dist/esm/helpers/tableFeatures.js +7 -0
  209. package/dist/esm/helpers/tableFeatures.js.map +1 -0
  210. package/dist/esm/helpers/tableHelper.d.ts +25 -0
  211. package/dist/esm/helpers/tableHelper.js +13 -0
  212. package/dist/esm/helpers/tableHelper.js.map +1 -0
  213. package/dist/esm/helpers/tableOptions.d.ts +23 -0
  214. package/dist/esm/helpers/tableOptions.js +7 -0
  215. package/dist/esm/helpers/tableOptions.js.map +1 -0
  216. package/dist/esm/index.d.ts +109 -33
  217. package/dist/esm/index.js +397 -65
  218. package/dist/esm/index.js.map +1 -1
  219. package/dist/esm/types/Cell.d.ts +13 -0
  220. package/dist/esm/types/Column.d.ts +26 -0
  221. package/dist/esm/types/ColumnDef.d.ts +64 -0
  222. package/dist/esm/types/Header.d.ts +14 -0
  223. package/dist/esm/types/HeaderGroup.d.ts +12 -0
  224. package/dist/esm/types/Row.d.ts +19 -0
  225. package/dist/esm/types/RowModel.d.ts +23 -0
  226. package/dist/esm/types/RowModelFns.d.ts +15 -0
  227. package/dist/esm/types/Table.d.ts +53 -0
  228. package/dist/esm/types/TableFeatures.d.ts +77 -0
  229. package/dist/esm/types/TableOptions.d.ts +39 -0
  230. package/dist/esm/types/TableState.d.ts +23 -0
  231. package/dist/esm/types/type-utils.d.ts +22 -0
  232. package/dist/esm/utils.d.ts +66 -33
  233. package/dist/esm/utils.js +183 -52
  234. package/dist/esm/utils.js.map +1 -1
  235. package/package.json +21 -12
  236. package/src/core/cells/constructCell.ts +49 -0
  237. package/src/core/cells/coreCellsFeature.ts +44 -0
  238. package/src/core/cells/coreCellsFeature.types.ts +68 -0
  239. package/src/core/cells/coreCellsFeature.utils.ts +35 -0
  240. package/src/core/columns/constructColumn.ts +111 -0
  241. package/src/core/columns/coreColumnsFeature.ts +90 -0
  242. package/src/core/columns/coreColumnsFeature.types.ts +103 -0
  243. package/src/core/columns/coreColumnsFeature.utils.ts +160 -0
  244. package/src/core/coreFeatures.ts +24 -0
  245. package/src/core/headers/buildHeaderGroups.ts +177 -0
  246. package/src/core/headers/constructHeader.ts +61 -0
  247. package/src/core/headers/coreHeadersFeature.ts +98 -0
  248. package/src/core/headers/coreHeadersFeature.types.ts +123 -0
  249. package/src/core/headers/coreHeadersFeature.utils.ts +131 -0
  250. package/src/core/row-models/coreRowModelsFeature.ts +78 -0
  251. package/src/core/row-models/coreRowModelsFeature.types.ts +67 -0
  252. package/src/core/row-models/coreRowModelsFeature.utils.ts +140 -0
  253. package/src/core/row-models/createCoreRowModel.ts +88 -0
  254. package/src/core/rows/constructRow.ts +59 -0
  255. package/src/core/rows/coreRowsFeature.ts +84 -0
  256. package/src/core/rows/coreRowsFeature.types.ts +111 -0
  257. package/src/core/rows/coreRowsFeature.utils.ts +152 -0
  258. package/src/core/table/constructTable.ts +95 -0
  259. package/src/core/table/coreTablesFeature.ts +36 -0
  260. package/src/core/table/coreTablesFeature.types.ts +123 -0
  261. package/src/core/table/coreTablesFeature.utils.ts +40 -0
  262. package/src/features/column-faceting/columnFacetingFeature.ts +112 -0
  263. package/src/features/column-faceting/columnFacetingFeature.types.ts +97 -0
  264. package/src/features/column-faceting/columnFacetingFeature.utils.ts +77 -0
  265. package/src/features/column-faceting/createFacetedMinMaxValues.ts +63 -0
  266. package/src/features/column-faceting/createFacetedRowModel.ts +76 -0
  267. package/src/features/column-faceting/createFacetedUniqueValues.ts +60 -0
  268. package/src/features/column-filtering/columnFilteringFeature.ts +121 -0
  269. package/src/features/column-filtering/columnFilteringFeature.types.ts +219 -0
  270. package/src/features/column-filtering/columnFilteringFeature.utils.ts +213 -0
  271. package/src/features/column-filtering/createFilteredRowModel.ts +171 -0
  272. package/src/features/column-filtering/filterRowsUtils.ts +152 -0
  273. package/src/features/column-grouping/columnGroupingFeature.ts +151 -0
  274. package/src/features/column-grouping/columnGroupingFeature.types.ts +218 -0
  275. package/src/features/column-grouping/columnGroupingFeature.utils.ts +192 -0
  276. package/src/features/column-grouping/createGroupedRowModel.ts +215 -0
  277. package/src/features/column-ordering/columnOrderingFeature.ts +96 -0
  278. package/src/features/column-ordering/columnOrderingFeature.types.ts +49 -0
  279. package/src/features/column-ordering/columnOrderingFeature.utils.ts +133 -0
  280. package/src/features/column-pinning/columnPinningFeature.ts +324 -0
  281. package/src/features/column-pinning/columnPinningFeature.types.ts +176 -0
  282. package/src/features/column-pinning/columnPinningFeature.utils.ts +537 -0
  283. package/src/features/column-resizing/columnResizingFeature.ts +92 -0
  284. package/src/features/column-resizing/columnResizingFeature.types.ts +81 -0
  285. package/src/features/column-resizing/columnResizingFeature.utils.ts +265 -0
  286. package/src/features/column-sizing/columnSizingFeature.ts +146 -0
  287. package/src/features/column-sizing/columnSizingFeature.types.ts +92 -0
  288. package/src/features/column-sizing/columnSizingFeature.utils.ts +211 -0
  289. package/src/features/column-visibility/columnVisibilityFeature.ts +155 -0
  290. package/src/features/column-visibility/columnVisibilityFeature.types.ts +101 -0
  291. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +183 -0
  292. package/src/features/global-filtering/globalFilteringFeature.ts +92 -0
  293. package/src/features/global-filtering/globalFilteringFeature.types.ts +84 -0
  294. package/src/features/global-filtering/globalFilteringFeature.utils.ts +60 -0
  295. package/src/features/row-expanding/createExpandedRowModel.ts +72 -0
  296. package/src/features/row-expanding/rowExpandingFeature.ts +122 -0
  297. package/src/features/row-expanding/rowExpandingFeature.types.ts +141 -0
  298. package/src/features/row-expanding/rowExpandingFeature.utils.ts +207 -0
  299. package/src/features/row-pagination/createPaginatedRowModel.ts +78 -0
  300. package/src/features/row-pagination/rowPaginationFeature.ts +121 -0
  301. package/src/features/row-pagination/rowPaginationFeature.types.ts +141 -0
  302. package/src/features/row-pagination/rowPaginationFeature.utils.ts +204 -0
  303. package/src/features/row-pinning/rowPinningFeature.ts +121 -0
  304. package/src/features/row-pinning/rowPinningFeature.types.ts +89 -0
  305. package/src/features/row-pinning/rowPinningFeature.utils.ts +197 -0
  306. package/src/features/row-selection/rowSelectionFeature.ts +164 -0
  307. package/src/features/row-selection/rowSelectionFeature.types.ts +143 -0
  308. package/src/features/row-selection/rowSelectionFeature.utils.ts +464 -0
  309. package/src/features/row-sorting/createSortedRowModel.ts +147 -0
  310. package/src/features/row-sorting/rowSortingFeature.ts +136 -0
  311. package/src/features/row-sorting/rowSortingFeature.types.ts +229 -0
  312. package/src/features/row-sorting/rowSortingFeature.utils.ts +320 -0
  313. package/src/features/stockFeatures.ts +48 -0
  314. package/src/fns/aggregationFns.ts +220 -0
  315. package/src/fns/filterFns.ts +379 -0
  316. package/src/{sortingFns.ts → fns/sortFns.ts} +66 -21
  317. package/src/helpers/columnHelper.ts +117 -0
  318. package/src/helpers/tableFeatures.ts +24 -0
  319. package/src/helpers/tableHelper.ts +61 -0
  320. package/src/helpers/tableOptions.ts +82 -0
  321. package/src/index.ts +156 -42
  322. package/src/types/Cell.ts +41 -0
  323. package/src/types/Column.ts +86 -0
  324. package/src/types/ColumnDef.ts +217 -0
  325. package/src/types/Header.ts +45 -0
  326. package/src/types/HeaderGroup.ts +24 -0
  327. package/src/types/Row.ts +55 -0
  328. package/src/types/RowModel.ts +137 -0
  329. package/src/types/RowModelFns.ts +51 -0
  330. package/src/types/Table.ts +125 -0
  331. package/src/types/TableFeatures.ts +150 -0
  332. package/src/types/TableOptions.ts +125 -0
  333. package/src/types/TableState.ts +88 -0
  334. package/src/types/type-utils.ts +84 -0
  335. package/src/utils.ts +344 -163
  336. package/dist/cjs/aggregationFns.cjs +0 -98
  337. package/dist/cjs/aggregationFns.cjs.map +0 -1
  338. package/dist/cjs/aggregationFns.d.cts +0 -14
  339. package/dist/cjs/columnHelper.cjs +0 -19
  340. package/dist/cjs/columnHelper.cjs.map +0 -1
  341. package/dist/cjs/columnHelper.d.cts +0 -9
  342. package/dist/cjs/core/cell.cjs +0 -38
  343. package/dist/cjs/core/cell.cjs.map +0 -1
  344. package/dist/cjs/core/cell.d.cts +0 -50
  345. package/dist/cjs/core/column.cjs +0 -81
  346. package/dist/cjs/core/column.cjs.map +0 -1
  347. package/dist/cjs/core/column.d.cts +0 -56
  348. package/dist/cjs/core/headers.cjs +0 -310
  349. package/dist/cjs/core/headers.cjs.map +0 -1
  350. package/dist/cjs/core/headers.d.cts +0 -195
  351. package/dist/cjs/core/row.cjs +0 -93
  352. package/dist/cjs/core/row.cjs.map +0 -1
  353. package/dist/cjs/core/row.d.cts +0 -92
  354. package/dist/cjs/core/table.cjs +0 -228
  355. package/dist/cjs/core/table.cjs.map +0 -1
  356. package/dist/cjs/core/table.d.cts +0 -221
  357. package/dist/cjs/features/ColumnFaceting.cjs +0 -29
  358. package/dist/cjs/features/ColumnFaceting.cjs.map +0 -1
  359. package/dist/cjs/features/ColumnFaceting.d.cts +0 -35
  360. package/dist/cjs/features/ColumnFiltering.cjs +0 -137
  361. package/dist/cjs/features/ColumnFiltering.cjs.map +0 -1
  362. package/dist/cjs/features/ColumnFiltering.d.cts +0 -195
  363. package/dist/cjs/features/ColumnGrouping.cjs +0 -134
  364. package/dist/cjs/features/ColumnGrouping.cjs.map +0 -1
  365. package/dist/cjs/features/ColumnGrouping.d.cts +0 -202
  366. package/dist/cjs/features/ColumnOrdering.cjs +0 -76
  367. package/dist/cjs/features/ColumnOrdering.cjs.map +0 -1
  368. package/dist/cjs/features/ColumnPinning.cjs +0 -145
  369. package/dist/cjs/features/ColumnPinning.cjs.map +0 -1
  370. package/dist/cjs/features/ColumnPinning.d.cts +0 -127
  371. package/dist/cjs/features/ColumnSizing.cjs +0 -308
  372. package/dist/cjs/features/ColumnSizing.cjs.map +0 -1
  373. package/dist/cjs/features/ColumnSizing.d.cts +0 -194
  374. package/dist/cjs/features/ColumnVisibility.cjs +0 -144
  375. package/dist/cjs/features/ColumnVisibility.cjs.map +0 -1
  376. package/dist/cjs/features/ColumnVisibility.d.cts +0 -130
  377. package/dist/cjs/features/GlobalFaceting.cjs +0 -29
  378. package/dist/cjs/features/GlobalFaceting.cjs.map +0 -1
  379. package/dist/cjs/features/GlobalFaceting.d.cts +0 -27
  380. package/dist/cjs/features/GlobalFiltering.cjs +0 -50
  381. package/dist/cjs/features/GlobalFiltering.cjs.map +0 -1
  382. package/dist/cjs/features/GlobalFiltering.d.cts +0 -80
  383. package/dist/cjs/features/RowExpanding.cjs +0 -154
  384. package/dist/cjs/features/RowExpanding.cjs.map +0 -1
  385. package/dist/cjs/features/RowExpanding.d.cts +0 -155
  386. package/dist/cjs/features/RowPagination.cjs +0 -162
  387. package/dist/cjs/features/RowPagination.cjs.map +0 -1
  388. package/dist/cjs/features/RowPagination.d.cts +0 -166
  389. package/dist/cjs/features/RowPinning.cjs +0 -133
  390. package/dist/cjs/features/RowPinning.cjs.map +0 -1
  391. package/dist/cjs/features/RowPinning.d.cts +0 -99
  392. package/dist/cjs/features/RowSelection.cjs +0 -298
  393. package/dist/cjs/features/RowSelection.cjs.map +0 -1
  394. package/dist/cjs/features/RowSelection.d.cts +0 -177
  395. package/dist/cjs/features/RowSorting.cjs +0 -201
  396. package/dist/cjs/features/RowSorting.cjs.map +0 -1
  397. package/dist/cjs/features/RowSorting.d.cts +0 -238
  398. package/dist/cjs/filterFns.cjs +0 -88
  399. package/dist/cjs/filterFns.cjs.map +0 -1
  400. package/dist/cjs/filterFns.d.cts +0 -14
  401. package/dist/cjs/index.cjs +0 -87
  402. package/dist/cjs/index.cjs.map +0 -1
  403. package/dist/cjs/index.d.cts +0 -34
  404. package/dist/cjs/sortingFns.cjs +0 -91
  405. package/dist/cjs/sortingFns.cjs.map +0 -1
  406. package/dist/cjs/sortingFns.d.cts +0 -12
  407. package/dist/cjs/types.d.cts +0 -120
  408. package/dist/cjs/utils/filterRowsUtils.cjs +0 -99
  409. package/dist/cjs/utils/filterRowsUtils.cjs.map +0 -1
  410. package/dist/cjs/utils/filterRowsUtils.d.cts +0 -3
  411. package/dist/cjs/utils/getCoreRowModel.cjs +0 -54
  412. package/dist/cjs/utils/getCoreRowModel.cjs.map +0 -1
  413. package/dist/cjs/utils/getCoreRowModel.d.cts +0 -3
  414. package/dist/cjs/utils/getExpandedRowModel.cjs +0 -41
  415. package/dist/cjs/utils/getExpandedRowModel.cjs.map +0 -1
  416. package/dist/cjs/utils/getExpandedRowModel.d.cts +0 -8
  417. package/dist/cjs/utils/getFacetedMinMaxValues.cjs +0 -36
  418. package/dist/cjs/utils/getFacetedMinMaxValues.cjs.map +0 -1
  419. package/dist/cjs/utils/getFacetedMinMaxValues.d.cts +0 -3
  420. package/dist/cjs/utils/getFacetedRowModel.cjs +0 -35
  421. package/dist/cjs/utils/getFacetedRowModel.cjs.map +0 -1
  422. package/dist/cjs/utils/getFacetedRowModel.d.cts +0 -3
  423. package/dist/cjs/utils/getFacetedUniqueValues.cjs +0 -38
  424. package/dist/cjs/utils/getFacetedUniqueValues.cjs.map +0 -1
  425. package/dist/cjs/utils/getFacetedUniqueValues.d.cts +0 -3
  426. package/dist/cjs/utils/getFilteredRowModel.cjs +0 -116
  427. package/dist/cjs/utils/getFilteredRowModel.cjs.map +0 -1
  428. package/dist/cjs/utils/getFilteredRowModel.d.cts +0 -3
  429. package/dist/cjs/utils/getGroupedRowModel.cjs +0 -118
  430. package/dist/cjs/utils/getGroupedRowModel.cjs.map +0 -1
  431. package/dist/cjs/utils/getGroupedRowModel.d.cts +0 -3
  432. package/dist/cjs/utils/getPaginationRowModel.cjs +0 -49
  433. package/dist/cjs/utils/getPaginationRowModel.cjs.map +0 -1
  434. package/dist/cjs/utils/getPaginationRowModel.d.cts +0 -5
  435. package/dist/cjs/utils/getSortedRowModel.cjs +0 -91
  436. package/dist/cjs/utils/getSortedRowModel.cjs.map +0 -1
  437. package/dist/cjs/utils/getSortedRowModel.d.cts +0 -3
  438. package/dist/cjs/utils.cjs +0 -100
  439. package/dist/cjs/utils.cjs.map +0 -1
  440. package/dist/cjs/utils.d.cts +0 -39
  441. package/dist/esm/aggregationFns.d.ts +0 -14
  442. package/dist/esm/aggregationFns.js +0 -98
  443. package/dist/esm/aggregationFns.js.map +0 -1
  444. package/dist/esm/columnHelper.d.ts +0 -9
  445. package/dist/esm/columnHelper.js.map +0 -1
  446. package/dist/esm/core/cell.d.ts +0 -50
  447. package/dist/esm/core/cell.js +0 -38
  448. package/dist/esm/core/cell.js.map +0 -1
  449. package/dist/esm/core/column.d.ts +0 -56
  450. package/dist/esm/core/column.js +0 -81
  451. package/dist/esm/core/column.js.map +0 -1
  452. package/dist/esm/core/headers.d.ts +0 -195
  453. package/dist/esm/core/headers.js +0 -310
  454. package/dist/esm/core/headers.js.map +0 -1
  455. package/dist/esm/core/row.d.ts +0 -92
  456. package/dist/esm/core/row.js +0 -93
  457. package/dist/esm/core/row.js.map +0 -1
  458. package/dist/esm/core/table.d.ts +0 -221
  459. package/dist/esm/core/table.js +0 -228
  460. package/dist/esm/core/table.js.map +0 -1
  461. package/dist/esm/features/ColumnFaceting.d.ts +0 -35
  462. package/dist/esm/features/ColumnFaceting.js +0 -29
  463. package/dist/esm/features/ColumnFaceting.js.map +0 -1
  464. package/dist/esm/features/ColumnFiltering.d.ts +0 -195
  465. package/dist/esm/features/ColumnFiltering.js +0 -137
  466. package/dist/esm/features/ColumnFiltering.js.map +0 -1
  467. package/dist/esm/features/ColumnGrouping.d.ts +0 -202
  468. package/dist/esm/features/ColumnGrouping.js +0 -134
  469. package/dist/esm/features/ColumnGrouping.js.map +0 -1
  470. package/dist/esm/features/ColumnOrdering.d.ts +0 -54
  471. package/dist/esm/features/ColumnOrdering.js +0 -76
  472. package/dist/esm/features/ColumnOrdering.js.map +0 -1
  473. package/dist/esm/features/ColumnPinning.d.ts +0 -127
  474. package/dist/esm/features/ColumnPinning.js +0 -145
  475. package/dist/esm/features/ColumnPinning.js.map +0 -1
  476. package/dist/esm/features/ColumnSizing.d.ts +0 -194
  477. package/dist/esm/features/ColumnSizing.js +0 -308
  478. package/dist/esm/features/ColumnSizing.js.map +0 -1
  479. package/dist/esm/features/ColumnVisibility.d.ts +0 -130
  480. package/dist/esm/features/ColumnVisibility.js +0 -144
  481. package/dist/esm/features/ColumnVisibility.js.map +0 -1
  482. package/dist/esm/features/GlobalFaceting.d.ts +0 -27
  483. package/dist/esm/features/GlobalFaceting.js +0 -29
  484. package/dist/esm/features/GlobalFaceting.js.map +0 -1
  485. package/dist/esm/features/GlobalFiltering.d.ts +0 -80
  486. package/dist/esm/features/GlobalFiltering.js +0 -50
  487. package/dist/esm/features/GlobalFiltering.js.map +0 -1
  488. package/dist/esm/features/RowExpanding.d.ts +0 -155
  489. package/dist/esm/features/RowExpanding.js +0 -154
  490. package/dist/esm/features/RowExpanding.js.map +0 -1
  491. package/dist/esm/features/RowPagination.d.ts +0 -166
  492. package/dist/esm/features/RowPagination.js +0 -162
  493. package/dist/esm/features/RowPagination.js.map +0 -1
  494. package/dist/esm/features/RowPinning.d.ts +0 -99
  495. package/dist/esm/features/RowPinning.js +0 -133
  496. package/dist/esm/features/RowPinning.js.map +0 -1
  497. package/dist/esm/features/RowSelection.d.ts +0 -177
  498. package/dist/esm/features/RowSelection.js +0 -298
  499. package/dist/esm/features/RowSelection.js.map +0 -1
  500. package/dist/esm/features/RowSorting.d.ts +0 -238
  501. package/dist/esm/features/RowSorting.js +0 -201
  502. package/dist/esm/features/RowSorting.js.map +0 -1
  503. package/dist/esm/filterFns.d.ts +0 -14
  504. package/dist/esm/filterFns.js +0 -88
  505. package/dist/esm/filterFns.js.map +0 -1
  506. package/dist/esm/sortingFns.d.ts +0 -12
  507. package/dist/esm/sortingFns.js.map +0 -1
  508. package/dist/esm/types.d.ts +0 -120
  509. package/dist/esm/utils/filterRowsUtils.d.ts +0 -3
  510. package/dist/esm/utils/filterRowsUtils.js.map +0 -1
  511. package/dist/esm/utils/getCoreRowModel.d.ts +0 -3
  512. package/dist/esm/utils/getCoreRowModel.js +0 -54
  513. package/dist/esm/utils/getCoreRowModel.js.map +0 -1
  514. package/dist/esm/utils/getExpandedRowModel.d.ts +0 -8
  515. package/dist/esm/utils/getExpandedRowModel.js +0 -41
  516. package/dist/esm/utils/getExpandedRowModel.js.map +0 -1
  517. package/dist/esm/utils/getFacetedMinMaxValues.d.ts +0 -3
  518. package/dist/esm/utils/getFacetedMinMaxValues.js +0 -36
  519. package/dist/esm/utils/getFacetedMinMaxValues.js.map +0 -1
  520. package/dist/esm/utils/getFacetedRowModel.d.ts +0 -3
  521. package/dist/esm/utils/getFacetedRowModel.js +0 -35
  522. package/dist/esm/utils/getFacetedRowModel.js.map +0 -1
  523. package/dist/esm/utils/getFacetedUniqueValues.d.ts +0 -3
  524. package/dist/esm/utils/getFacetedUniqueValues.js +0 -38
  525. package/dist/esm/utils/getFacetedUniqueValues.js.map +0 -1
  526. package/dist/esm/utils/getFilteredRowModel.d.ts +0 -3
  527. package/dist/esm/utils/getFilteredRowModel.js +0 -116
  528. package/dist/esm/utils/getFilteredRowModel.js.map +0 -1
  529. package/dist/esm/utils/getGroupedRowModel.d.ts +0 -3
  530. package/dist/esm/utils/getGroupedRowModel.js +0 -118
  531. package/dist/esm/utils/getGroupedRowModel.js.map +0 -1
  532. package/dist/esm/utils/getPaginationRowModel.d.ts +0 -5
  533. package/dist/esm/utils/getPaginationRowModel.js +0 -49
  534. package/dist/esm/utils/getPaginationRowModel.js.map +0 -1
  535. package/dist/esm/utils/getSortedRowModel.d.ts +0 -3
  536. package/dist/esm/utils/getSortedRowModel.js +0 -91
  537. package/dist/esm/utils/getSortedRowModel.js.map +0 -1
  538. package/src/aggregationFns.ts +0 -123
  539. package/src/columnHelper.ts +0 -91
  540. package/src/core/cell.ts +0 -91
  541. package/src/core/column.ts +0 -165
  542. package/src/core/headers.ts +0 -639
  543. package/src/core/row.ts +0 -201
  544. package/src/core/table.ts +0 -527
  545. package/src/features/ColumnFaceting.ts +0 -84
  546. package/src/features/ColumnFiltering.ts +0 -429
  547. package/src/features/ColumnGrouping.ts +0 -422
  548. package/src/features/ColumnOrdering.ts +0 -161
  549. package/src/features/ColumnPinning.ts +0 -336
  550. package/src/features/ColumnSizing.ts +0 -579
  551. package/src/features/ColumnVisibility.ts +0 -317
  552. package/src/features/GlobalFaceting.ts +0 -66
  553. package/src/features/GlobalFiltering.ts +0 -162
  554. package/src/features/RowExpanding.ts +0 -355
  555. package/src/features/RowPagination.ts +0 -396
  556. package/src/features/RowPinning.ts +0 -273
  557. package/src/features/RowSelection.ts +0 -668
  558. package/src/features/RowSorting.ts +0 -542
  559. package/src/filterFns.ts +0 -150
  560. package/src/types.ts +0 -361
  561. package/src/utils/filterRowsUtils.ts +0 -130
  562. package/src/utils/getCoreRowModel.ts +0 -82
  563. package/src/utils/getExpandedRowModel.ts +0 -51
  564. package/src/utils/getFacetedMinMaxValues.ts +0 -42
  565. package/src/utils/getFacetedRowModel.ts +0 -44
  566. package/src/utils/getFacetedUniqueValues.ts +0 -42
  567. package/src/utils/getFilteredRowModel.ts +0 -151
  568. package/src/utils/getGroupedRowModel.ts +0 -181
  569. package/src/utils/getPaginationRowModel.ts +0 -60
  570. package/src/utils/getSortedRowModel.ts +0 -121
@@ -0,0 +1,10 @@
1
+ import { RowData } from '../../types/type-utils.js';
2
+ import { TableFeature, TableFeatures } from '../../types/TableFeatures.js';
3
+ interface ColumnGroupingFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {
4
+ }
5
+ export declare function constructColumnGroupingFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<ColumnGroupingFeatureConstructors<TFeatures, TData>>;
6
+ /**
7
+ * The (Column) Grouping feature adds column grouping state and APIs to the table, row, column, and cell objects.
8
+ */
9
+ export declare const columnGroupingFeature: TableFeature<ColumnGroupingFeatureConstructors<TableFeatures, RowData>>;
10
+ export {};
@@ -0,0 +1,91 @@
1
+ import { assignTableAPIs, assignPrototypeAPIs, makeStateUpdater } from "../../utils.js";
2
+ import { table_resetGrouping, table_setGrouping, row_getGroupingValue, row_getIsGrouped, column_getAggregationFn, column_getAutoAggregationFn, column_getToggleGroupingHandler, column_getGroupedIndex, column_getIsGrouped, column_getCanGroup, column_toggleGrouping, cell_getIsAggregated, cell_getIsPlaceholder, cell_getIsGrouped, getDefaultGroupingState } from "./columnGroupingFeature.utils.js";
3
+ function constructColumnGroupingFeature() {
4
+ return {
5
+ getInitialState: (initialState) => {
6
+ return {
7
+ grouping: getDefaultGroupingState(),
8
+ ...initialState
9
+ };
10
+ },
11
+ getDefaultColumnDef: () => {
12
+ return {
13
+ aggregatedCell: ({ getValue }) => getValue()?.toString?.() ?? null,
14
+ aggregationFn: "auto"
15
+ };
16
+ },
17
+ getDefaultTableOptions: (table) => {
18
+ return {
19
+ onGroupingChange: makeStateUpdater("grouping", table),
20
+ groupedColumnMode: "reorder"
21
+ };
22
+ },
23
+ assignCellPrototype: (prototype, table) => {
24
+ assignPrototypeAPIs("columnGroupingFeature", prototype, table, {
25
+ cell_getIsGrouped: {
26
+ fn: (cell) => cell_getIsGrouped(cell)
27
+ },
28
+ cell_getIsPlaceholder: {
29
+ fn: (cell) => cell_getIsPlaceholder(cell)
30
+ },
31
+ cell_getIsAggregated: {
32
+ fn: (cell) => cell_getIsAggregated(cell)
33
+ }
34
+ });
35
+ },
36
+ assignColumnPrototype: (prototype, table) => {
37
+ assignPrototypeAPIs("columnGroupingFeature", prototype, table, {
38
+ column_toggleGrouping: {
39
+ fn: (column) => column_toggleGrouping(column)
40
+ },
41
+ column_getCanGroup: {
42
+ fn: (column) => column_getCanGroup(column)
43
+ },
44
+ column_getIsGrouped: {
45
+ fn: (column) => column_getIsGrouped(column)
46
+ },
47
+ column_getGroupedIndex: {
48
+ fn: (column) => column_getGroupedIndex(column)
49
+ },
50
+ column_getToggleGroupingHandler: {
51
+ fn: (column) => column_getToggleGroupingHandler(column)
52
+ },
53
+ column_getAutoAggregationFn: {
54
+ fn: (column) => column_getAutoAggregationFn(column)
55
+ },
56
+ column_getAggregationFn: {
57
+ fn: (column) => column_getAggregationFn(column)
58
+ }
59
+ });
60
+ },
61
+ assignRowPrototype: (prototype, table) => {
62
+ assignPrototypeAPIs("columnGroupingFeature", prototype, table, {
63
+ row_getIsGrouped: {
64
+ fn: (row) => row_getIsGrouped(row)
65
+ },
66
+ row_getGroupingValue: {
67
+ fn: (row, columnId) => row_getGroupingValue(row, columnId)
68
+ }
69
+ });
70
+ },
71
+ initRowInstanceData: (row) => {
72
+ row._groupingValuesCache = {};
73
+ },
74
+ constructTableAPIs: (table) => {
75
+ assignTableAPIs("columnGroupingFeature", table, {
76
+ table_setGrouping: {
77
+ fn: (updater) => table_setGrouping(table, updater)
78
+ },
79
+ table_resetGrouping: {
80
+ fn: (defaultState) => table_resetGrouping(table, defaultState)
81
+ }
82
+ });
83
+ }
84
+ };
85
+ }
86
+ const columnGroupingFeature = constructColumnGroupingFeature();
87
+ export {
88
+ columnGroupingFeature,
89
+ constructColumnGroupingFeature
90
+ };
91
+ //# sourceMappingURL=columnGroupingFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnGroupingFeature.js","sources":["../../../../src/features/column-grouping/columnGroupingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n cell_getIsAggregated,\n cell_getIsGrouped,\n cell_getIsPlaceholder,\n column_getAggregationFn,\n column_getAutoAggregationFn,\n column_getCanGroup,\n column_getGroupedIndex,\n column_getIsGrouped,\n column_getToggleGroupingHandler,\n column_toggleGrouping,\n getDefaultGroupingState,\n row_getGroupingValue,\n row_getIsGrouped,\n table_resetGrouping,\n table_setGrouping,\n} from './columnGroupingFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// CachedRowModel_Grouped,\n// Cell_ColumnGrouping,\n// ColumnDef_ColumnGrouping,\n// Column_ColumnGrouping,\n// CreateRowModel_Grouped,\n// RowModelFns_ColumnGrouping,\n// Row_ColumnGrouping,\n// TableOptions_ColumnGrouping,\n// TableState_ColumnGrouping,\n// Table_ColumnGrouping,\n// } from './columnGroupingFeature.types'\n\ninterface ColumnGroupingFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // CachedRowModel: CachedRowModel_Grouped<TFeatures, TData>\n // Cell: Cell_ColumnGrouping\n // Column: Column_ColumnGrouping<TFeatures, TData>\n // ColumnDef: ColumnDef_ColumnGrouping<TFeatures, TData>\n // CreateRowModels: CreateRowModel_Grouped<TFeatures, TData>\n // Row: Row_ColumnGrouping\n // RowModelFns: RowModelFns_ColumnGrouping<TFeatures, TData>\n // Table: Table_ColumnGrouping<TFeatures, TData>\n // TableOptions: TableOptions_ColumnGrouping\n // TableState: TableState_ColumnGrouping\n}\n\nexport function constructColumnGroupingFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<ColumnGroupingFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n grouping: getDefaultGroupingState(),\n ...initialState,\n }\n },\n\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: ({ getValue }: any) => getValue()?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder',\n }\n },\n\n assignCellPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnGroupingFeature', prototype, table, {\n cell_getIsGrouped: {\n fn: (cell) => cell_getIsGrouped(cell),\n },\n cell_getIsPlaceholder: {\n fn: (cell) => cell_getIsPlaceholder(cell),\n },\n cell_getIsAggregated: {\n fn: (cell) => cell_getIsAggregated(cell),\n },\n })\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnGroupingFeature', prototype, table, {\n column_toggleGrouping: {\n fn: (column) => column_toggleGrouping(column),\n },\n column_getCanGroup: {\n fn: (column) => column_getCanGroup(column),\n },\n column_getIsGrouped: {\n fn: (column) => column_getIsGrouped(column),\n },\n column_getGroupedIndex: {\n fn: (column) => column_getGroupedIndex(column),\n },\n column_getToggleGroupingHandler: {\n fn: (column) => column_getToggleGroupingHandler(column),\n },\n column_getAutoAggregationFn: {\n fn: (column) => column_getAutoAggregationFn(column),\n },\n column_getAggregationFn: {\n fn: (column) => column_getAggregationFn(column),\n },\n })\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnGroupingFeature', prototype, table, {\n row_getIsGrouped: {\n fn: (row) => row_getIsGrouped(row),\n },\n row_getGroupingValue: {\n fn: (row, columnId) => row_getGroupingValue(row, columnId),\n },\n })\n },\n\n initRowInstanceData: (row) => {\n ;(row as any)._groupingValuesCache = {}\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnGroupingFeature', table, {\n table_setGrouping: {\n fn: (updater) => table_setGrouping(table, updater),\n },\n table_resetGrouping: {\n fn: (defaultState) => table_resetGrouping(table, defaultState),\n },\n })\n },\n }\n}\n\n/**\n * The (Column) Grouping feature adds column grouping state and APIs to the table, row, column, and cell objects.\n */\nexport const columnGroupingFeature = constructColumnGroupingFeature()\n"],"names":[],"mappings":";;AAqDO,SAAS,iCAGuD;AACrE,SAAO;AAAA,IACL,iBAAiB,CAAC,iBAAiB;AACjC,aAAO;AAAA,QACL,UAAU,wBAAA;AAAA,QACV,GAAG;AAAA,MAAA;AAAA,IAEP;AAAA,IAEA,qBAAqB,MAAM;AACzB,aAAO;AAAA,QACL,gBAAgB,CAAC,EAAE,SAAA,MAAoB,SAAA,GAAY,gBAAgB;AAAA,QACnE,eAAe;AAAA,MAAA;AAAA,IAEnB;AAAA,IAEA,wBAAwB,CAAC,UAAU;AACjC,aAAO;AAAA,QACL,kBAAkB,iBAAiB,YAAY,KAAK;AAAA,QACpD,mBAAmB;AAAA,MAAA;AAAA,IAEvB;AAAA,IAEA,qBAAqB,CAAC,WAAW,UAAU;AACzC,0BAAoB,yBAAyB,WAAW,OAAO;AAAA,QAC7D,mBAAmB;AAAA,UACjB,IAAI,CAAC,SAAS,kBAAkB,IAAI;AAAA,QAAA;AAAA,QAEtC,uBAAuB;AAAA,UACrB,IAAI,CAAC,SAAS,sBAAsB,IAAI;AAAA,QAAA;AAAA,QAE1C,sBAAsB;AAAA,UACpB,IAAI,CAAC,SAAS,qBAAqB,IAAI;AAAA,QAAA;AAAA,MACzC,CACD;AAAA,IACH;AAAA,IAEA,uBAAuB,CAAC,WAAW,UAAU;AAC3C,0BAAoB,yBAAyB,WAAW,OAAO;AAAA,QAC7D,uBAAuB;AAAA,UACrB,IAAI,CAAC,WAAW,sBAAsB,MAAM;AAAA,QAAA;AAAA,QAE9C,oBAAoB;AAAA,UAClB,IAAI,CAAC,WAAW,mBAAmB,MAAM;AAAA,QAAA;AAAA,QAE3C,qBAAqB;AAAA,UACnB,IAAI,CAAC,WAAW,oBAAoB,MAAM;AAAA,QAAA;AAAA,QAE5C,wBAAwB;AAAA,UACtB,IAAI,CAAC,WAAW,uBAAuB,MAAM;AAAA,QAAA;AAAA,QAE/C,iCAAiC;AAAA,UAC/B,IAAI,CAAC,WAAW,gCAAgC,MAAM;AAAA,QAAA;AAAA,QAExD,6BAA6B;AAAA,UAC3B,IAAI,CAAC,WAAW,4BAA4B,MAAM;AAAA,QAAA;AAAA,QAEpD,yBAAyB;AAAA,UACvB,IAAI,CAAC,WAAW,wBAAwB,MAAM;AAAA,QAAA;AAAA,MAChD,CACD;AAAA,IACH;AAAA,IAEA,oBAAoB,CAAC,WAAW,UAAU;AACxC,0BAAoB,yBAAyB,WAAW,OAAO;AAAA,QAC7D,kBAAkB;AAAA,UAChB,IAAI,CAAC,QAAQ,iBAAiB,GAAG;AAAA,QAAA;AAAA,QAEnC,sBAAsB;AAAA,UACpB,IAAI,CAAC,KAAK,aAAa,qBAAqB,KAAK,QAAQ;AAAA,QAAA;AAAA,MAC3D,CACD;AAAA,IACH;AAAA,IAEA,qBAAqB,CAAC,QAAQ;AAC1B,UAAY,uBAAuB,CAAA;AAAA,IACvC;AAAA,IAEA,oBAAoB,CAAC,UAAU;AAC7B,sBAAgB,yBAAyB,OAAO;AAAA,QAC9C,mBAAmB;AAAA,UACjB,IAAI,CAAC,YAAY,kBAAkB,OAAO,OAAO;AAAA,QAAA;AAAA,QAEnD,qBAAqB;AAAA,UACnB,IAAI,CAAC,iBAAiB,oBAAoB,OAAO,YAAY;AAAA,QAAA;AAAA,MAC/D,CACD;AAAA,IACH;AAAA,EAAA;AAEJ;AAKO,MAAM,wBAAwB,+BAAA;"}
@@ -0,0 +1,153 @@
1
+ import { RowModel } from '../../core/row-models/coreRowModelsFeature.types';
2
+ import { Table } from '../../types/Table.js';
3
+ import { BuiltInAggregationFn } from '../../fns/aggregationFns.js';
4
+ import { CellData, OnChangeFn, RowData, Updater } from '../../types/type-utils.js';
5
+ import { TableFeatures } from '../../types/TableFeatures.js';
6
+ import { Row } from '../../types/Row.js';
7
+ import { Cell } from '../../types/Cell.js';
8
+ import { ColumnDefTemplate } from '../../types/ColumnDef.js';
9
+ export type GroupingState = Array<string>;
10
+ export interface TableState_ColumnGrouping {
11
+ grouping: GroupingState;
12
+ }
13
+ export interface RowModelFns_ColumnGrouping<TFeatures extends TableFeatures, TData extends RowData> {
14
+ aggregationFns: Record<keyof AggregationFns, AggregationFn<TFeatures, TData>>;
15
+ }
16
+ export interface AggregationFns {
17
+ }
18
+ export type AggregationFn<TFeatures extends TableFeatures, TData extends RowData> = (columnId: string, leafRows: Array<Row<TFeatures, TData>>, childRows: Array<Row<TFeatures, TData>>) => any;
19
+ export type CustomAggregationFns<TFeatures extends TableFeatures, TData extends RowData> = Record<string, AggregationFn<TFeatures, TData>>;
20
+ export type AggregationFnOption<TFeatures extends TableFeatures, TData extends RowData> = 'auto' | keyof AggregationFns | BuiltInAggregationFn | AggregationFn<TFeatures, TData>;
21
+ export interface ColumnDef_ColumnGrouping<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> {
22
+ /**
23
+ * The cell to display each row for the column if the cell is an aggregate. If a function is passed, it will be passed a props object with the context of the cell and should return the property type for your adapter (the exact type depends on the adapter being used).
24
+ */
25
+ aggregatedCell?: ColumnDefTemplate<ReturnType<Cell<TFeatures, TData, TValue>['getContext']>>;
26
+ /**
27
+ * The resolved aggregation function for the column.
28
+ */
29
+ aggregationFn?: AggregationFnOption<TFeatures, TData>;
30
+ /**
31
+ * Enables/disables grouping for this column.
32
+ */
33
+ enableGrouping?: boolean;
34
+ /**
35
+ * Specify a value to be used for grouping rows on this column. If this option is not specified, the value derived from `accessorKey` / `accessorFn` will be used instead.
36
+ */
37
+ getGroupingValue?: (row: TData) => any;
38
+ }
39
+ export interface Column_ColumnGrouping<TFeatures extends TableFeatures, TData extends RowData> {
40
+ /**
41
+ * Returns the aggregation function for the column.
42
+ */
43
+ getAggregationFn: () => AggregationFn<TFeatures, TData> | undefined;
44
+ /**
45
+ * Returns the automatically inferred aggregation function for the column.
46
+ */
47
+ getAutoAggregationFn: () => AggregationFn<TFeatures, TData> | undefined;
48
+ /**
49
+ * Returns whether or not the column can be grouped.
50
+ */
51
+ getCanGroup: () => boolean;
52
+ /**
53
+ * Returns the index of the column in the grouping state.
54
+ */
55
+ getGroupedIndex: () => number;
56
+ /**
57
+ * Returns whether or not the column is currently grouped.
58
+ */
59
+ getIsGrouped: () => boolean;
60
+ /**
61
+ * Returns a function that toggles the grouping state of the column. This is useful for passing to the `onClick` prop of a button.
62
+ */
63
+ getToggleGroupingHandler: () => () => void;
64
+ /**
65
+ * Toggles the grouping state of the column.
66
+ */
67
+ toggleGrouping: () => void;
68
+ }
69
+ export interface Row_ColumnGrouping {
70
+ _groupingValuesCache: Record<string, any>;
71
+ /**
72
+ * Returns the grouping value for any row and column (including leaf rows).
73
+ */
74
+ getGroupingValue: (columnId: string) => unknown;
75
+ /**
76
+ * Returns whether or not the row is currently grouped.
77
+ */
78
+ getIsGrouped: () => boolean;
79
+ /**
80
+ * If this row is grouped, this is the id of the column that this row is grouped by.
81
+ */
82
+ groupingColumnId?: string;
83
+ /**
84
+ * If this row is grouped, this is the unique/shared value for the `groupingColumnId` for all of the rows in this group.
85
+ */
86
+ groupingValue?: unknown;
87
+ }
88
+ export interface Cell_ColumnGrouping {
89
+ /**
90
+ * Returns whether or not the cell is currently aggregated.
91
+ */
92
+ getIsAggregated: () => boolean;
93
+ /**
94
+ * Returns whether or not the cell is currently grouped.
95
+ */
96
+ getIsGrouped: () => boolean;
97
+ /**
98
+ * Returns whether or not the cell is currently a placeholder cell.
99
+ */
100
+ getIsPlaceholder: () => boolean;
101
+ }
102
+ export interface ColumnDefaultOptions {
103
+ enableGrouping: boolean;
104
+ onGroupingChange: OnChangeFn<GroupingState>;
105
+ }
106
+ export interface TableOptions_ColumnGrouping {
107
+ /**
108
+ * Enables/disables grouping for the table.
109
+ */
110
+ enableGrouping?: boolean;
111
+ /**
112
+ * Grouping columns are automatically reordered by default to the start of the columns list. If you would rather remove them or leave them as-is, set the appropriate mode here.
113
+ */
114
+ groupedColumnMode?: false | 'reorder' | 'remove';
115
+ /**
116
+ * Enables manual grouping. If this option is set to `true`, the table will not automatically group rows using `getGroupedRowModel()` and instead will expect you to manually group the rows before passing them to the table. This is useful if you are doing server-side grouping and aggregation.
117
+ */
118
+ manualGrouping?: boolean;
119
+ /**
120
+ * If this function is provided, it will be called when the grouping state changes and you will be expected to manage the state yourself. You can pass the managed state back to the table via the `tableOptions.state.grouping` option.
121
+ */
122
+ onGroupingChange?: OnChangeFn<GroupingState>;
123
+ }
124
+ export type GroupingColumnMode = false | 'reorder' | 'remove';
125
+ export interface Table_ColumnGrouping<TFeatures extends TableFeatures, TData extends RowData> {
126
+ /**
127
+ * Resets the **grouping** state to `initialState.grouping`, or `true` can be passed to force a default blank state reset to `[]`.
128
+ */
129
+ resetGrouping: (defaultState?: boolean) => void;
130
+ /**
131
+ * Updates the grouping state of the table via an update function or value.
132
+ */
133
+ setGrouping: (updater: Updater<GroupingState>) => void;
134
+ }
135
+ export interface Table_RowModels_Grouped<TFeatures extends TableFeatures, TData extends RowData> {
136
+ /**
137
+ * Returns the row model for the table after grouping has been applied.
138
+ */
139
+ getGroupedRowModel: () => RowModel<TFeatures, TData>;
140
+ /**
141
+ * Returns the row model for the table before any grouping has been applied.
142
+ */
143
+ getPreGroupedRowModel: () => RowModel<TFeatures, TData>;
144
+ }
145
+ export interface CreateRowModel_Grouped<TFeatures extends TableFeatures, TData extends RowData> {
146
+ /**
147
+ * Returns the row model after grouping has taken place, but no further.
148
+ */
149
+ groupedRowModel?: (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData>;
150
+ }
151
+ export interface CachedRowModel_Grouped<TFeatures extends TableFeatures, TData extends RowData> {
152
+ groupedRowModel: () => RowModel<TFeatures, TData>;
153
+ }
@@ -0,0 +1,22 @@
1
+ import { Column_Internal } from '../../types/Column.js';
2
+ import { CellData, RowData, Updater } from '../../types/type-utils.js';
3
+ import { TableFeatures } from '../../types/TableFeatures.js';
4
+ import { Table_Internal } from '../../types/Table.js';
5
+ import { Row } from '../../types/Row.js';
6
+ import { Cell } from '../../types/Cell.js';
7
+ import { AggregationFn, GroupingState, Row_ColumnGrouping } from './columnGroupingFeature.types';
8
+ export declare function getDefaultGroupingState(): GroupingState;
9
+ export declare function column_toggleGrouping<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): void;
10
+ export declare function column_getCanGroup<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): boolean;
11
+ export declare function column_getIsGrouped<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): boolean;
12
+ export declare function column_getGroupedIndex<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): number;
13
+ export declare function column_getToggleGroupingHandler<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): () => void;
14
+ export declare function column_getAutoAggregationFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): AggregationFn<TFeatures, TData> | undefined;
15
+ export declare function column_getAggregationFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): AggregationFn<TFeatures, TData> | undefined;
16
+ export declare function table_setGrouping<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, updater: Updater<GroupingState>): void;
17
+ export declare function table_resetGrouping<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void;
18
+ export declare function row_getIsGrouped<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData> & Partial<Row_ColumnGrouping>): boolean;
19
+ export declare function row_getGroupingValue<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData> & Partial<Row_ColumnGrouping>, columnId: string): any;
20
+ export declare function cell_getIsGrouped<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(cell: Cell<TFeatures, TData, TValue>): boolean;
21
+ export declare function cell_getIsPlaceholder<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(cell: Cell<TFeatures, TData, TValue>): boolean;
22
+ export declare function cell_getIsAggregated<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(cell: Cell<TFeatures, TData, TValue>): boolean;
@@ -0,0 +1,99 @@
1
+ import { isFunction } from "../../utils.js";
2
+ import { table_getColumn } from "../../core/columns/coreColumnsFeature.utils.js";
3
+ function getDefaultGroupingState() {
4
+ return structuredClone([]);
5
+ }
6
+ function column_toggleGrouping(column) {
7
+ table_setGrouping(column.table, (old) => {
8
+ if (old.includes(column.id)) {
9
+ return old.filter((d) => d !== column.id);
10
+ }
11
+ return [...old, column.id];
12
+ });
13
+ }
14
+ function column_getCanGroup(column) {
15
+ return (column.columnDef.enableGrouping ?? true) && (column.table.options.enableGrouping ?? true) && (!!column.accessorFn || !!column.columnDef.getGroupingValue);
16
+ }
17
+ function column_getIsGrouped(column) {
18
+ return !!column.table.store.state.grouping?.includes(column.id);
19
+ }
20
+ function column_getGroupedIndex(column) {
21
+ return column.table.store.state.grouping?.indexOf(column.id) ?? -1;
22
+ }
23
+ function column_getToggleGroupingHandler(column) {
24
+ const canGroup = column_getCanGroup(column);
25
+ return () => {
26
+ if (!canGroup) return;
27
+ column_toggleGrouping(column);
28
+ };
29
+ }
30
+ function column_getAutoAggregationFn(column) {
31
+ const aggregationFns = column.table._rowModelFns.aggregationFns;
32
+ const firstRow = column.table.getCoreRowModel().flatRows[0];
33
+ const value = firstRow?.getValue(column.id);
34
+ if (typeof value === "number") {
35
+ return aggregationFns?.sum;
36
+ }
37
+ if (Object.prototype.toString.call(value) === "[object Date]") {
38
+ return aggregationFns?.extent;
39
+ }
40
+ }
41
+ function column_getAggregationFn(column) {
42
+ const aggregationFns = column.table._rowModelFns.aggregationFns;
43
+ return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === "auto" ? column_getAutoAggregationFn(column) : aggregationFns?.[column.columnDef.aggregationFn];
44
+ }
45
+ function table_setGrouping(table, updater) {
46
+ table.options.onGroupingChange?.(updater);
47
+ }
48
+ function table_resetGrouping(table, defaultState) {
49
+ table_setGrouping(
50
+ table,
51
+ defaultState ? [] : table.initialState.grouping ?? []
52
+ );
53
+ }
54
+ function row_getIsGrouped(row) {
55
+ return !!row.groupingColumnId;
56
+ }
57
+ function row_getGroupingValue(row, columnId) {
58
+ if (row._groupingValuesCache?.hasOwnProperty(columnId)) {
59
+ return row._groupingValuesCache[columnId];
60
+ }
61
+ const column = table_getColumn(row.table, columnId);
62
+ if (!column.columnDef.getGroupingValue) {
63
+ return row.getValue(columnId);
64
+ }
65
+ if (row._groupingValuesCache) {
66
+ row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(
67
+ row.original
68
+ );
69
+ }
70
+ return row._groupingValuesCache?.[columnId];
71
+ }
72
+ function cell_getIsGrouped(cell) {
73
+ const row = cell.row;
74
+ return column_getIsGrouped(cell.column) && cell.column.id === row.groupingColumnId;
75
+ }
76
+ function cell_getIsPlaceholder(cell) {
77
+ return !cell_getIsGrouped(cell) && column_getIsGrouped(cell.column);
78
+ }
79
+ function cell_getIsAggregated(cell) {
80
+ return !cell_getIsGrouped(cell) && !cell_getIsPlaceholder(cell) && !!cell.row.subRows.length;
81
+ }
82
+ export {
83
+ cell_getIsAggregated,
84
+ cell_getIsGrouped,
85
+ cell_getIsPlaceholder,
86
+ column_getAggregationFn,
87
+ column_getAutoAggregationFn,
88
+ column_getCanGroup,
89
+ column_getGroupedIndex,
90
+ column_getIsGrouped,
91
+ column_getToggleGroupingHandler,
92
+ column_toggleGrouping,
93
+ getDefaultGroupingState,
94
+ row_getGroupingValue,
95
+ row_getIsGrouped,
96
+ table_resetGrouping,
97
+ table_setGrouping
98
+ };
99
+ //# sourceMappingURL=columnGroupingFeature.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnGroupingFeature.utils.js","sources":["../../../../src/features/column-grouping/columnGroupingFeature.utils.ts"],"sourcesContent":["import { isFunction } from '../../utils'\nimport { table_getColumn } from '../../core/columns/coreColumnsFeature.utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { Cell } from '../../types/Cell'\nimport type {\n AggregationFn,\n GroupingState,\n Row_ColumnGrouping,\n} from './columnGroupingFeature.types'\n\nexport function getDefaultGroupingState(): GroupingState {\n return structuredClone([])\n}\n\nexport function column_toggleGrouping<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n table_setGrouping(column.table, (old) => {\n // Find any existing grouping for this column\n if (old.includes(column.id)) {\n return old.filter((d) => d !== column.id)\n }\n\n return [...old, column.id]\n })\n}\n\nexport function column_getCanGroup<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableGrouping ?? true) &&\n (column.table.options.enableGrouping ?? true) &&\n (!!column.accessorFn || !!column.columnDef.getGroupingValue)\n )\n}\n\nexport function column_getIsGrouped<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n return !!column.table.store.state.grouping?.includes(column.id)\n}\n\nexport function column_getGroupedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n return column.table.store.state.grouping?.indexOf(column.id) ?? -1\n}\n\nexport function column_getToggleGroupingHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const canGroup = column_getCanGroup(column)\n\n return () => {\n if (!canGroup) return\n column_toggleGrouping(column)\n }\n}\n\nexport function column_getAutoAggregationFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const aggregationFns = column.table._rowModelFns.aggregationFns as\n | Record<string, AggregationFn<TFeatures, TData>>\n | undefined\n\n const firstRow = column.table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns?.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns?.extent\n }\n}\n\nexport function column_getAggregationFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const aggregationFns = column.table._rowModelFns.aggregationFns as\n | Record<string, AggregationFn<TFeatures, TData>>\n | undefined\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column_getAutoAggregationFn(column)\n : aggregationFns?.[column.columnDef.aggregationFn as string]\n}\n\nexport function table_setGrouping<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<GroupingState>) {\n table.options.onGroupingChange?.(updater)\n}\n\nexport function table_resetGrouping<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setGrouping(\n table,\n defaultState ? [] : (table.initialState.grouping ?? []),\n )\n}\n\nexport function row_getIsGrouped<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData> & Partial<Row_ColumnGrouping>) {\n return !!row.groupingColumnId\n}\n\nexport function row_getGroupingValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData> & Partial<Row_ColumnGrouping>, columnId: string) {\n if (row._groupingValuesCache?.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId]\n }\n\n const column = table_getColumn(row.table, columnId) as Column_Internal<\n TFeatures,\n TData\n >\n\n if (!column.columnDef.getGroupingValue) {\n return row.getValue(columnId)\n }\n\n if (row._groupingValuesCache) {\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(\n row.original,\n )\n }\n\n return row._groupingValuesCache?.[columnId]\n}\n\nexport function cell_getIsGrouped<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(cell: Cell<TFeatures, TData, TValue>) {\n const row = cell.row as Row<TFeatures, TData> & Partial<Row_ColumnGrouping>\n return (\n column_getIsGrouped(cell.column) && cell.column.id === row.groupingColumnId\n )\n}\n\nexport function cell_getIsPlaceholder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(cell: Cell<TFeatures, TData, TValue>) {\n return !cell_getIsGrouped(cell) && column_getIsGrouped(cell.column)\n}\n\nexport function cell_getIsAggregated<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(cell: Cell<TFeatures, TData, TValue>) {\n return (\n !cell_getIsGrouped(cell) &&\n !cell_getIsPlaceholder(cell) &&\n !!cell.row.subRows.length\n )\n}\n"],"names":[],"mappings":";;AAcO,SAAS,0BAAyC;AACvD,SAAO,gBAAgB,CAAA,CAAE;AAC3B;AAEO,SAAS,sBAId,QAAmD;AACnD,oBAAkB,OAAO,OAAO,CAAC,QAAQ;AAEvC,QAAI,IAAI,SAAS,OAAO,EAAE,GAAG;AAC3B,aAAO,IAAI,OAAO,CAAC,MAAM,MAAM,OAAO,EAAE;AAAA,IAC1C;AAEA,WAAO,CAAC,GAAG,KAAK,OAAO,EAAE;AAAA,EAC3B,CAAC;AACH;AAEO,SAAS,mBAId,QAAmD;AACnD,UACG,OAAO,UAAU,kBAAkB,UACnC,OAAO,MAAM,QAAQ,kBAAkB,UACvC,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,OAAO,UAAU;AAE/C;AAEO,SAAS,oBAId,QAA4D;AAC5D,SAAO,CAAC,CAAC,OAAO,MAAM,MAAM,MAAM,UAAU,SAAS,OAAO,EAAE;AAChE;AAEO,SAAS,uBAId,QAA2D;AAC3D,SAAO,OAAO,MAAM,MAAM,MAAM,UAAU,QAAQ,OAAO,EAAE,KAAK;AAClE;AAEO,SAAS,gCAId,QAAmD;AACnD,QAAM,WAAW,mBAAmB,MAAM;AAE1C,SAAO,MAAM;AACX,QAAI,CAAC,SAAU;AACf,0BAAsB,MAAM;AAAA,EAC9B;AACF;AAEO,SAAS,4BAId,QAAmD;AACnD,QAAM,iBAAiB,OAAO,MAAM,aAAa;AAIjD,QAAM,WAAW,OAAO,MAAM,gBAAA,EAAkB,SAAS,CAAC;AAE1D,QAAM,QAAQ,UAAU,SAAS,OAAO,EAAE;AAE1C,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,gBAAgB;AAAA,EACzB;AAEA,MAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,iBAAiB;AAC7D,WAAO,gBAAgB;AAAA,EACzB;AACF;AAEO,SAAS,wBAId,QAAmD;AACnD,QAAM,iBAAiB,OAAO,MAAM,aAAa;AAIjD,SAAO,WAAW,OAAO,UAAU,aAAa,IAC5C,OAAO,UAAU,gBACjB,OAAO,UAAU,kBAAkB,SACjC,4BAA4B,MAAM,IAClC,iBAAiB,OAAO,UAAU,aAAuB;AACjE;AAEO,SAAS,kBAGd,OAAyC,SAAiC;AAC1E,QAAM,QAAQ,mBAAmB,OAAO;AAC1C;AAEO,SAAS,oBAGd,OAAyC,cAAwB;AACjE;AAAA,IACE;AAAA,IACA,eAAe,CAAA,IAAM,MAAM,aAAa,YAAY,CAAA;AAAA,EAAC;AAEzD;AAEO,SAAS,iBAGd,KAA0D;AAC1D,SAAO,CAAC,CAAC,IAAI;AACf;AAEO,SAAS,qBAGd,KAA0D,UAAkB;AAC5E,MAAI,IAAI,sBAAsB,eAAe,QAAQ,GAAG;AACtD,WAAO,IAAI,qBAAqB,QAAQ;AAAA,EAC1C;AAEA,QAAM,SAAS,gBAAgB,IAAI,OAAO,QAAQ;AAKlD,MAAI,CAAC,OAAO,UAAU,kBAAkB;AACtC,WAAO,IAAI,SAAS,QAAQ;AAAA,EAC9B;AAEA,MAAI,IAAI,sBAAsB;AAC5B,QAAI,qBAAqB,QAAQ,IAAI,OAAO,UAAU;AAAA,MACpD,IAAI;AAAA,IAAA;AAAA,EAER;AAEA,SAAO,IAAI,uBAAuB,QAAQ;AAC5C;AAEO,SAAS,kBAId,MAAsC;AACtC,QAAM,MAAM,KAAK;AACjB,SACE,oBAAoB,KAAK,MAAM,KAAK,KAAK,OAAO,OAAO,IAAI;AAE/D;AAEO,SAAS,sBAId,MAAsC;AACtC,SAAO,CAAC,kBAAkB,IAAI,KAAK,oBAAoB,KAAK,MAAM;AACpE;AAEO,SAAS,qBAId,MAAsC;AACtC,SACE,CAAC,kBAAkB,IAAI,KACvB,CAAC,sBAAsB,IAAI,KAC3B,CAAC,CAAC,KAAK,IAAI,QAAQ;AAEvB;"}
@@ -0,0 +1,6 @@
1
+ import { AggregationFn, AggregationFns } from './columnGroupingFeature.types';
2
+ import { TableFeatures } from '../../types/TableFeatures.js';
3
+ import { RowModel } from '../../core/row-models/coreRowModelsFeature.types';
4
+ import { Table } from '../../types/Table.js';
5
+ import { RowData } from '../../types/type-utils.js';
6
+ export declare function createGroupedRowModel<TFeatures extends TableFeatures, TData extends RowData = any>(aggregationFns: Record<keyof AggregationFns, AggregationFn<TFeatures, TData>>): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData>;
@@ -0,0 +1,144 @@
1
+ import { tableMemo, flattenBy } from "../../utils.js";
2
+ import { constructRow } from "../../core/rows/constructRow.js";
3
+ import { table_getColumn } from "../../core/columns/coreColumnsFeature.utils.js";
4
+ import { table_autoResetExpanded } from "../row-expanding/rowExpandingFeature.utils.js";
5
+ import { table_autoResetPageIndex } from "../row-pagination/rowPaginationFeature.utils.js";
6
+ import { column_getAggregationFn, row_getGroupingValue } from "./columnGroupingFeature.utils.js";
7
+ function createGroupedRowModel(aggregationFns) {
8
+ return (_table) => {
9
+ const table = _table;
10
+ if (!table._rowModelFns.aggregationFns)
11
+ table._rowModelFns.aggregationFns = aggregationFns;
12
+ return tableMemo({
13
+ feature: "columnGroupingFeature",
14
+ table,
15
+ fnName: "table.getGroupedRowModel",
16
+ memoDeps: () => [
17
+ table.store.state.grouping,
18
+ table.getPreGroupedRowModel()
19
+ ],
20
+ fn: () => _createGroupedRowModel(table),
21
+ onAfterUpdate: () => {
22
+ table_autoResetExpanded(table);
23
+ table_autoResetPageIndex(table);
24
+ }
25
+ });
26
+ };
27
+ }
28
+ function _createGroupedRowModel(table) {
29
+ const rowModel = table.getPreGroupedRowModel();
30
+ const grouping = table.store.state.grouping;
31
+ if (!rowModel.rows.length || !grouping?.length) {
32
+ rowModel.rows.forEach((row) => {
33
+ row.depth = 0;
34
+ row.parentId = void 0;
35
+ });
36
+ return rowModel;
37
+ }
38
+ const existingGrouping = grouping.filter(
39
+ (columnId) => table_getColumn(table, columnId)
40
+ );
41
+ const groupedFlatRows = [];
42
+ const groupedRowsById = {};
43
+ const groupUpRecursively = (rows, depth = 0, parentId) => {
44
+ if (depth >= existingGrouping.length) {
45
+ return rows.map((row) => {
46
+ row.depth = depth;
47
+ groupedFlatRows.push(row);
48
+ groupedRowsById[row.id] = row;
49
+ if (row.subRows.length) {
50
+ row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);
51
+ }
52
+ return row;
53
+ });
54
+ }
55
+ const columnId = existingGrouping[depth];
56
+ const rowGroupsMap = groupBy(rows, columnId);
57
+ const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(
58
+ ([groupingValue, groupedRows2], index) => {
59
+ let id = `${columnId}:${groupingValue}`;
60
+ id = parentId ? `${parentId}>${id}` : id;
61
+ const subRows = groupUpRecursively(groupedRows2, depth + 1, id);
62
+ subRows.forEach((subRow) => {
63
+ subRow.parentId = id;
64
+ });
65
+ const leafRows = depth ? flattenBy(groupedRows2, (row2) => row2.subRows) : groupedRows2;
66
+ const row = constructRow(
67
+ table,
68
+ id,
69
+ leafRows[0].original,
70
+ index,
71
+ depth,
72
+ void 0,
73
+ parentId
74
+ );
75
+ Object.assign(row, {
76
+ groupingColumnId: columnId,
77
+ groupingValue,
78
+ subRows,
79
+ leafRows,
80
+ getValue: (colId) => {
81
+ if (existingGrouping.includes(colId)) {
82
+ if (row._valuesCache.hasOwnProperty(colId)) {
83
+ return row._valuesCache[colId];
84
+ }
85
+ if (groupedRows2[0]) {
86
+ row._valuesCache[colId] = groupedRows2[0].getValue(colId) ?? void 0;
87
+ }
88
+ return row._valuesCache[colId];
89
+ }
90
+ if (row._groupingValuesCache?.hasOwnProperty(colId)) {
91
+ return row._groupingValuesCache[colId];
92
+ }
93
+ const column = table.getColumn(colId);
94
+ const aggregateFn = column_getAggregationFn(
95
+ column
96
+ );
97
+ if (!row._groupingValuesCache) row._groupingValuesCache = {};
98
+ if (aggregateFn) {
99
+ row._groupingValuesCache[colId] = aggregateFn(
100
+ colId,
101
+ leafRows,
102
+ groupedRows2
103
+ );
104
+ return row._groupingValuesCache[colId];
105
+ }
106
+ }
107
+ });
108
+ subRows.forEach((subRow) => {
109
+ groupedFlatRows.push(subRow);
110
+ groupedRowsById[subRow.id] = subRow;
111
+ });
112
+ return row;
113
+ }
114
+ );
115
+ return aggregatedGroupedRows;
116
+ };
117
+ const groupedRows = groupUpRecursively(rowModel.rows, 0);
118
+ groupedRows.forEach((subRow) => {
119
+ groupedFlatRows.push(subRow);
120
+ groupedRowsById[subRow.id] = subRow;
121
+ });
122
+ return {
123
+ rows: groupedRows,
124
+ flatRows: groupedFlatRows,
125
+ rowsById: groupedRowsById
126
+ };
127
+ }
128
+ function groupBy(rows, columnId) {
129
+ const groupMap = /* @__PURE__ */ new Map();
130
+ return rows.reduce((map, row) => {
131
+ const resKey = `${row_getGroupingValue(row, columnId)}`;
132
+ const previous = map.get(resKey);
133
+ if (!previous) {
134
+ map.set(resKey, [row]);
135
+ } else {
136
+ previous.push(row);
137
+ }
138
+ return map;
139
+ }, groupMap);
140
+ }
141
+ export {
142
+ createGroupedRowModel
143
+ };
144
+ //# sourceMappingURL=createGroupedRowModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createGroupedRowModel.js","sources":["../../../../src/features/column-grouping/createGroupedRowModel.ts"],"sourcesContent":["import { flattenBy, tableMemo } from '../../utils'\nimport { constructRow } from '../../core/rows/constructRow'\nimport { table_getColumn } from '../../core/columns/coreColumnsFeature.utils'\nimport { table_autoResetExpanded } from '../row-expanding/rowExpandingFeature.utils'\nimport { table_autoResetPageIndex } from '../row-pagination/rowPaginationFeature.utils'\nimport {\n column_getAggregationFn,\n row_getGroupingValue,\n} from './columnGroupingFeature.utils'\nimport type { Column } from '../../types/Column'\nimport type {\n AggregationFn,\n AggregationFns,\n Row_ColumnGrouping,\n} from './columnGroupingFeature.types'\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 { RowData } from '../../types/type-utils'\n\nexport function createGroupedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(\n aggregationFns: Record<keyof AggregationFns, AggregationFn<TFeatures, TData>>,\n): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table = _table as Table_Internal<TFeatures, TData>\n if (!table._rowModelFns.aggregationFns)\n table._rowModelFns.aggregationFns = aggregationFns\n return tableMemo({\n feature: 'columnGroupingFeature',\n table,\n fnName: 'table.getGroupedRowModel',\n memoDeps: () => [\n table.store.state.grouping,\n table.getPreGroupedRowModel(),\n ],\n fn: () => _createGroupedRowModel(table),\n onAfterUpdate: () => {\n table_autoResetExpanded(table)\n table_autoResetPageIndex(table)\n },\n })\n }\n}\n\nfunction _createGroupedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const rowModel = table.getPreGroupedRowModel()\n const grouping = table.store.state.grouping\n\n if (!rowModel.rows.length || !grouping?.length) {\n rowModel.rows.forEach((row) => {\n row.depth = 0\n row.parentId = undefined\n })\n return rowModel\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter((columnId) =>\n table_getColumn(table, columnId),\n )\n\n const groupedFlatRows: Array<Row<TFeatures, TData>> &\n Partial<Row_ColumnGrouping> = []\n const groupedRowsById: Record<string, Row<TFeatures, TData>> = {}\n\n // Recursively group the data\n const groupUpRecursively = (\n rows: Array<Row<TFeatures, TData>>,\n depth = 0,\n parentId?: string,\n ) => {\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map((row) => {\n row.depth = depth\n\n groupedFlatRows.push(row)\n groupedRowsById[row.id] = row\n\n if (row.subRows.length) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id)\n }\n\n return row\n })\n }\n\n const columnId = existingGrouping[depth] as string\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId)\n\n // Perform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(\n ([groupingValue, groupedRows], index) => {\n let id = `${columnId}:${groupingValue}`\n id = parentId ? `${parentId}>${id}` : id\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id)\n\n subRows.forEach((subRow) => {\n subRow.parentId = id\n })\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth\n ? flattenBy(groupedRows, (row) => row.subRows)\n : groupedRows\n\n const row = constructRow(\n table,\n id,\n leafRows[0]!.original,\n index,\n depth,\n undefined,\n parentId,\n ) as Row<TFeatures, TData> & Partial<Row_ColumnGrouping>\n\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: (colId: string) => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(colId)) {\n if (row._valuesCache.hasOwnProperty(colId)) {\n return row._valuesCache[colId]\n }\n\n if (groupedRows[0]) {\n row._valuesCache[colId] =\n groupedRows[0].getValue(colId) ?? undefined\n }\n\n return row._valuesCache[colId]\n }\n\n if (row._groupingValuesCache?.hasOwnProperty(colId)) {\n return row._groupingValuesCache[colId]\n }\n\n // Aggregate the values\n const column = table.getColumn(colId)\n const aggregateFn = column_getAggregationFn(\n column as Column<TFeatures, TData, unknown>,\n )\n\n if (!row._groupingValuesCache) row._groupingValuesCache = {}\n\n if (aggregateFn) {\n row._groupingValuesCache[colId] = aggregateFn(\n colId,\n leafRows,\n groupedRows,\n )\n\n return row._groupingValuesCache[colId]\n }\n },\n })\n\n subRows.forEach((subRow) => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n })\n\n return row\n },\n )\n\n return aggregatedGroupedRows\n }\n\n const groupedRows = groupUpRecursively(rowModel.rows, 0)\n\n groupedRows.forEach((subRow) => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n })\n\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n }\n}\n\nfunction groupBy<TFeatures extends TableFeatures, TData extends RowData = any>(\n rows: Array<Row<TFeatures, TData>>,\n columnId: string,\n) {\n const groupMap = new Map<any, Array<Row<TFeatures, TData>>>()\n\n return rows.reduce((map, row) => {\n const resKey = `${row_getGroupingValue(row, columnId)}`\n const previous = map.get(resKey)\n if (!previous) {\n map.set(resKey, [row])\n } else {\n previous.push(row)\n }\n return map\n }, groupMap)\n}\n"],"names":["groupedRows","row"],"mappings":";;;;;;AAqBO,SAAS,sBAId,gBACsE;AACtE,SAAO,CAAC,WAAW;AACjB,UAAM,QAAQ;AACd,QAAI,CAAC,MAAM,aAAa;AACtB,YAAM,aAAa,iBAAiB;AACtC,WAAO,UAAU;AAAA,MACf,SAAS;AAAA,MACT;AAAA,MACA,QAAQ;AAAA,MACR,UAAU,MAAM;AAAA,QACd,MAAM,MAAM,MAAM;AAAA,QAClB,MAAM,sBAAA;AAAA,MAAsB;AAAA,MAE9B,IAAI,MAAM,uBAAuB,KAAK;AAAA,MACtC,eAAe,MAAM;AACnB,gCAAwB,KAAK;AAC7B,iCAAyB,KAAK;AAAA,MAChC;AAAA,IAAA,CACD;AAAA,EACH;AACF;AAEA,SAAS,uBAGP,OAAqE;AACrE,QAAM,WAAW,MAAM,sBAAA;AACvB,QAAM,WAAW,MAAM,MAAM,MAAM;AAEnC,MAAI,CAAC,SAAS,KAAK,UAAU,CAAC,UAAU,QAAQ;AAC9C,aAAS,KAAK,QAAQ,CAAC,QAAQ;AAC7B,UAAI,QAAQ;AACZ,UAAI,WAAW;AAAA,IACjB,CAAC;AACD,WAAO;AAAA,EACT;AAGA,QAAM,mBAAmB,SAAS;AAAA,IAAO,CAAC,aACxC,gBAAgB,OAAO,QAAQ;AAAA,EAAA;AAGjC,QAAM,kBAC0B,CAAA;AAChC,QAAM,kBAAyD,CAAA;AAG/D,QAAM,qBAAqB,CACzB,MACA,QAAQ,GACR,aACG;AAGH,QAAI,SAAS,iBAAiB,QAAQ;AACpC,aAAO,KAAK,IAAI,CAAC,QAAQ;AACvB,YAAI,QAAQ;AAEZ,wBAAgB,KAAK,GAAG;AACxB,wBAAgB,IAAI,EAAE,IAAI;AAE1B,YAAI,IAAI,QAAQ,QAAQ;AACtB,cAAI,UAAU,mBAAmB,IAAI,SAAS,QAAQ,GAAG,IAAI,EAAE;AAAA,QACjE;AAEA,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAEA,UAAM,WAAW,iBAAiB,KAAK;AAGvC,UAAM,eAAe,QAAQ,MAAM,QAAQ;AAG3C,UAAM,wBAAwB,MAAM,KAAK,aAAa,QAAA,CAAS,EAAE;AAAA,MAC/D,CAAC,CAAC,eAAeA,YAAW,GAAG,UAAU;AACvC,YAAI,KAAK,GAAG,QAAQ,IAAI,aAAa;AACrC,aAAK,WAAW,GAAG,QAAQ,IAAI,EAAE,KAAK;AAGtC,cAAM,UAAU,mBAAmBA,cAAa,QAAQ,GAAG,EAAE;AAE7D,gBAAQ,QAAQ,CAAC,WAAW;AAC1B,iBAAO,WAAW;AAAA,QACpB,CAAC;AAGD,cAAM,WAAW,QACb,UAAUA,cAAa,CAACC,SAAQA,KAAI,OAAO,IAC3CD;AAEJ,cAAM,MAAM;AAAA,UACV;AAAA,UACA;AAAA,UACA,SAAS,CAAC,EAAG;AAAA,UACb;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAGF,eAAO,OAAO,KAAK;AAAA,UACjB,kBAAkB;AAAA,UAClB;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU,CAAC,UAAkB;AAE3B,gBAAI,iBAAiB,SAAS,KAAK,GAAG;AACpC,kBAAI,IAAI,aAAa,eAAe,KAAK,GAAG;AAC1C,uBAAO,IAAI,aAAa,KAAK;AAAA,cAC/B;AAEA,kBAAIA,aAAY,CAAC,GAAG;AAClB,oBAAI,aAAa,KAAK,IACpBA,aAAY,CAAC,EAAE,SAAS,KAAK,KAAK;AAAA,cACtC;AAEA,qBAAO,IAAI,aAAa,KAAK;AAAA,YAC/B;AAEA,gBAAI,IAAI,sBAAsB,eAAe,KAAK,GAAG;AACnD,qBAAO,IAAI,qBAAqB,KAAK;AAAA,YACvC;AAGA,kBAAM,SAAS,MAAM,UAAU,KAAK;AACpC,kBAAM,cAAc;AAAA,cAClB;AAAA,YAAA;AAGF,gBAAI,CAAC,IAAI,qBAAsB,KAAI,uBAAuB,CAAA;AAE1D,gBAAI,aAAa;AACf,kBAAI,qBAAqB,KAAK,IAAI;AAAA,gBAChC;AAAA,gBACA;AAAA,gBACAA;AAAAA,cAAA;AAGF,qBAAO,IAAI,qBAAqB,KAAK;AAAA,YACvC;AAAA,UACF;AAAA,QAAA,CACD;AAED,gBAAQ,QAAQ,CAAC,WAAW;AAC1B,0BAAgB,KAAK,MAAM;AAC3B,0BAAgB,OAAO,EAAE,IAAI;AAAA,QAC/B,CAAC;AAED,eAAO;AAAA,MACT;AAAA,IAAA;AAGF,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,mBAAmB,SAAS,MAAM,CAAC;AAEvD,cAAY,QAAQ,CAAC,WAAW;AAC9B,oBAAgB,KAAK,MAAM;AAC3B,oBAAgB,OAAO,EAAE,IAAI;AAAA,EAC/B,CAAC;AAED,SAAO;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAEd;AAEA,SAAS,QACP,MACA,UACA;AACA,QAAM,+BAAe,IAAA;AAErB,SAAO,KAAK,OAAO,CAAC,KAAK,QAAQ;AAC/B,UAAM,SAAS,GAAG,qBAAqB,KAAK,QAAQ,CAAC;AACrD,UAAM,WAAW,IAAI,IAAI,MAAM;AAC/B,QAAI,CAAC,UAAU;AACb,UAAI,IAAI,QAAQ,CAAC,GAAG,CAAC;AAAA,IACvB,OAAO;AACL,eAAS,KAAK,GAAG;AAAA,IACnB;AACA,WAAO;AAAA,EACT,GAAG,QAAQ;AACb;"}
@@ -0,0 +1,10 @@
1
+ import { RowData } from '../../types/type-utils.js';
2
+ import { TableFeature, TableFeatures } from '../../types/TableFeatures.js';
3
+ interface ColumnOrderingFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {
4
+ }
5
+ export declare function constructColumnOrderingFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<ColumnOrderingFeatureConstructors<TFeatures, TData>>;
6
+ /**
7
+ * The Column Ordering feature adds column ordering state and APIs to the table and column objects.
8
+ */
9
+ export declare const columnOrderingFeature: TableFeature<ColumnOrderingFeatureConstructors<TableFeatures, RowData>>;
10
+ export {};