@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
@@ -1,118 +0,0 @@
1
- import { createRow } from "../core/row.js";
2
- import { memo, getMemoOptions, flattenBy } from "../utils.js";
3
- function getGroupedRowModel() {
4
- return (table) => memo(
5
- () => [table.getState().grouping, table.getPreGroupedRowModel()],
6
- (grouping, rowModel) => {
7
- if (!rowModel.rows.length || !grouping.length) {
8
- return rowModel;
9
- }
10
- const existingGrouping = grouping.filter(
11
- (columnId) => table.getColumn(columnId)
12
- );
13
- const groupedFlatRows = [];
14
- const groupedRowsById = {};
15
- const groupUpRecursively = (rows, depth = 0, parentId) => {
16
- if (depth >= existingGrouping.length) {
17
- return rows.map((row) => {
18
- row.depth = depth;
19
- groupedFlatRows.push(row);
20
- groupedRowsById[row.id] = row;
21
- if (row.subRows) {
22
- row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);
23
- }
24
- return row;
25
- });
26
- }
27
- const columnId = existingGrouping[depth];
28
- const rowGroupsMap = groupBy(rows, columnId);
29
- const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(
30
- ([groupingValue, groupedRows2], index) => {
31
- let id = `${columnId}:${groupingValue}`;
32
- id = parentId ? `${parentId}>${id}` : id;
33
- const subRows = groupUpRecursively(groupedRows2, depth + 1, id);
34
- const leafRows = depth ? flattenBy(groupedRows2, (row2) => row2.subRows) : groupedRows2;
35
- const row = createRow(
36
- table,
37
- id,
38
- leafRows[0].original,
39
- index,
40
- depth,
41
- void 0,
42
- parentId
43
- );
44
- Object.assign(row, {
45
- groupingColumnId: columnId,
46
- groupingValue,
47
- subRows,
48
- leafRows,
49
- getValue: (columnId2) => {
50
- if (existingGrouping.includes(columnId2)) {
51
- if (row._valuesCache.hasOwnProperty(columnId2)) {
52
- return row._valuesCache[columnId2];
53
- }
54
- if (groupedRows2[0]) {
55
- row._valuesCache[columnId2] = groupedRows2[0].getValue(columnId2) ?? void 0;
56
- }
57
- return row._valuesCache[columnId2];
58
- }
59
- if (row._groupingValuesCache.hasOwnProperty(columnId2)) {
60
- return row._groupingValuesCache[columnId2];
61
- }
62
- const column = table.getColumn(columnId2);
63
- const aggregateFn = column == null ? void 0 : column.getAggregationFn();
64
- if (aggregateFn) {
65
- row._groupingValuesCache[columnId2] = aggregateFn(
66
- columnId2,
67
- leafRows,
68
- groupedRows2
69
- );
70
- return row._groupingValuesCache[columnId2];
71
- }
72
- }
73
- });
74
- subRows.forEach((subRow) => {
75
- groupedFlatRows.push(subRow);
76
- groupedRowsById[subRow.id] = subRow;
77
- });
78
- return row;
79
- }
80
- );
81
- return aggregatedGroupedRows;
82
- };
83
- const groupedRows = groupUpRecursively(rowModel.rows, 0);
84
- groupedRows.forEach((subRow) => {
85
- groupedFlatRows.push(subRow);
86
- groupedRowsById[subRow.id] = subRow;
87
- });
88
- return {
89
- rows: groupedRows,
90
- flatRows: groupedFlatRows,
91
- rowsById: groupedRowsById
92
- };
93
- },
94
- getMemoOptions(table.options, "debugTable", "getGroupedRowModel", () => {
95
- table._queue(() => {
96
- table._autoResetExpanded();
97
- table._autoResetPageIndex();
98
- });
99
- })
100
- );
101
- }
102
- function groupBy(rows, columnId) {
103
- const groupMap = /* @__PURE__ */ new Map();
104
- return rows.reduce((map, row) => {
105
- const resKey = `${row.getGroupingValue(columnId)}`;
106
- const previous = map.get(resKey);
107
- if (!previous) {
108
- map.set(resKey, [row]);
109
- } else {
110
- previous.push(row);
111
- }
112
- return map;
113
- }, groupMap);
114
- }
115
- export {
116
- getGroupedRowModel
117
- };
118
- //# sourceMappingURL=getGroupedRowModel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getGroupedRowModel.js","sources":["../../../src/utils/getGroupedRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Table, Row, RowModel, RowData } from '../types'\nimport { flattenBy, getMemoOptions, memo } from '../utils'\n\nexport function getGroupedRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.getState().grouping, table.getPreGroupedRowModel()],\n (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n return rowModel\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId =>\n table.getColumn(columnId)\n )\n\n const groupedFlatRows: Row<TData>[] = []\n const groupedRowsById: Record<string, Row<TData>> = {}\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = (\n rows: Row<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) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id)\n }\n\n return row\n })\n }\n\n const columnId: string = existingGrouping[depth]!\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId)\n\n // Peform 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 // 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 = createRow(\n table,\n id,\n leafRows[0]!.original,\n index,\n depth,\n undefined,\n parentId\n )\n\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: (columnId: string) => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n if (groupedRows[0]) {\n row._valuesCache[columnId] =\n groupedRows[0].getValue(columnId) ?? undefined\n }\n\n return row._valuesCache[columnId]\n }\n\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId]\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId)\n const aggregateFn = column?.getAggregationFn()\n\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(\n columnId,\n leafRows,\n groupedRows\n )\n\n return row._groupingValuesCache[columnId]\n }\n },\n })\n\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\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 // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n }\n },\n getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded()\n table._autoResetPageIndex()\n })\n })\n )\n}\n\nfunction groupBy<TData extends RowData>(rows: Row<TData>[], columnId: string) {\n const groupMap = new Map<any, Row<TData>[]>()\n\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(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","columnId"],"mappings":";;AAIO,SAAS,qBAEW;AACzB,SAAO,CACL,UAAA;AAAA,IACE,MAAM,CAAC,MAAM,SAAA,EAAW,UAAU,MAAM,uBAAuB;AAAA,IAC/D,CAAC,UAAU,aAAa;AACtB,UAAI,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,QAAQ;AACtC,eAAA;AAAA,MACT;AAGA,YAAM,mBAAmB,SAAS;AAAA,QAAO,CAAA,aACvC,MAAM,UAAU,QAAQ;AAAA,MAAA;AAG1B,YAAM,kBAAgC,CAAA;AACtC,YAAM,kBAA8C,CAAA;AAOpD,YAAM,qBAAqB,CACzB,MACA,QAAQ,GACR,aACG;AAGC,YAAA,SAAS,iBAAiB,QAAQ;AAC7B,iBAAA,KAAK,IAAI,CAAO,QAAA;AACrB,gBAAI,QAAQ;AAEZ,4BAAgB,KAAK,GAAG;AACR,4BAAA,IAAI,EAAE,IAAI;AAE1B,gBAAI,IAAI,SAAS;AACf,kBAAI,UAAU,mBAAmB,IAAI,SAAS,QAAQ,GAAG,IAAI,EAAE;AAAA,YACjE;AAEO,mBAAA;AAAA,UAAA,CACR;AAAA,QACH;AAEM,cAAA,WAAmB,iBAAiB,KAAK;AAGzC,cAAA,eAAe,QAAQ,MAAM,QAAQ;AAG3C,cAAM,wBAAwB,MAAM,KAAK,aAAa,QAAS,CAAA,EAAE;AAAA,UAC/D,CAAC,CAAC,eAAeA,YAAW,GAAG,UAAU;AACvC,gBAAI,KAAK,GAAG,QAAQ,IAAI,aAAa;AACrC,iBAAK,WAAW,GAAG,QAAQ,IAAI,EAAE,KAAK;AAGtC,kBAAM,UAAU,mBAAmBA,cAAa,QAAQ,GAAG,EAAE;AAGvD,kBAAA,WAAW,QACb,UAAUA,cAAa,CAAAC,SAAOA,KAAI,OAAO,IACzCD;AAEJ,kBAAM,MAAM;AAAA,cACV;AAAA,cACA;AAAA,cACA,SAAS,CAAC,EAAG;AAAA,cACb;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAGF,mBAAO,OAAO,KAAK;AAAA,cACjB,kBAAkB;AAAA,cAClB;AAAA,cACA;AAAA,cACA;AAAA,cACA,UAAU,CAACE,cAAqB;AAE1B,oBAAA,iBAAiB,SAASA,SAAQ,GAAG;AACvC,sBAAI,IAAI,aAAa,eAAeA,SAAQ,GAAG;AACtC,2BAAA,IAAI,aAAaA,SAAQ;AAAA,kBAClC;AAEIF,sBAAAA,aAAY,CAAC,GAAG;AACd,wBAAA,aAAaE,SAAQ,IACvBF,aAAY,CAAC,EAAE,SAASE,SAAQ,KAAK;AAAA,kBACzC;AAEO,yBAAA,IAAI,aAAaA,SAAQ;AAAA,gBAClC;AAEA,oBAAI,IAAI,qBAAqB,eAAeA,SAAQ,GAAG;AAC9C,yBAAA,IAAI,qBAAqBA,SAAQ;AAAA,gBAC1C;AAGM,sBAAA,SAAS,MAAM,UAAUA,SAAQ;AACjC,sBAAA,cAAc,iCAAQ;AAE5B,oBAAI,aAAa;AACX,sBAAA,qBAAqBA,SAAQ,IAAI;AAAA,oBACnCA;AAAAA,oBACA;AAAA,oBACAF;AAAAA,kBAAA;AAGK,yBAAA,IAAI,qBAAqBE,SAAQ;AAAA,gBAC1C;AAAA,cACF;AAAA,YAAA,CACD;AAED,oBAAQ,QAAQ,CAAU,WAAA;AACxB,8BAAgB,KAAK,MAAM;AACX,8BAAA,OAAO,EAAE,IAAI;AAAA,YAAA,CAQ9B;AAEM,mBAAA;AAAA,UACT;AAAA,QAAA;AAGK,eAAA;AAAA,MAAA;AAGT,YAAM,cAAc,mBAAmB,SAAS,MAAM,CAAC;AAEvD,kBAAY,QAAQ,CAAU,WAAA;AAC5B,wBAAgB,KAAK,MAAM;AACX,wBAAA,OAAO,EAAE,IAAI;AAAA,MAAA,CAQ9B;AAEM,aAAA;AAAA,QACL,MAAM;AAAA,QACN,UAAU;AAAA,QACV,UAAU;AAAA,MAAA;AAAA,IAEd;AAAA,IACA,eAAe,MAAM,SAAS,cAAc,sBAAsB,MAAM;AACtE,YAAM,OAAO,MAAM;AACjB,cAAM,mBAAmB;AACzB,cAAM,oBAAoB;AAAA,MAAA,CAC3B;AAAA,IAAA,CACF;AAAA,EAAA;AAEP;AAEA,SAAS,QAA+B,MAAoB,UAAkB;AACtE,QAAA,+BAAe;AAErB,SAAO,KAAK,OAAO,CAAC,KAAK,QAAQ;AAC/B,UAAM,SAAS,GAAG,IAAI,iBAAiB,QAAQ,CAAC;AAC1C,UAAA,WAAW,IAAI,IAAI,MAAM;AAC/B,QAAI,CAAC,UAAU;AACb,UAAI,IAAI,QAAQ,CAAC,GAAG,CAAC;AAAA,IAAA,OAChB;AACL,eAAS,KAAK,GAAG;AAAA,IACnB;AACO,WAAA;AAAA,KACN,QAAQ;AACb;"}
@@ -1,5 +0,0 @@
1
- import { Table, RowModel, RowData } from '../types';
2
-
3
- export declare function getPaginationRowModel<TData extends RowData>(opts?: {
4
- initialSync: boolean;
5
- }): (table: Table<TData>) => () => RowModel<TData>;
@@ -1,49 +0,0 @@
1
- import { memo, getMemoOptions } from "../utils.js";
2
- import { expandRows } from "./getExpandedRowModel.js";
3
- function getPaginationRowModel(opts) {
4
- return (table) => memo(
5
- () => [
6
- table.getState().pagination,
7
- table.getPrePaginationRowModel(),
8
- table.options.paginateExpandedRows ? void 0 : table.getState().expanded
9
- ],
10
- (pagination, rowModel) => {
11
- if (!rowModel.rows.length) {
12
- return rowModel;
13
- }
14
- const { pageSize, pageIndex } = pagination;
15
- let { rows, flatRows, rowsById } = rowModel;
16
- const pageStart = pageSize * pageIndex;
17
- const pageEnd = pageStart + pageSize;
18
- rows = rows.slice(pageStart, pageEnd);
19
- let paginatedRowModel;
20
- if (!table.options.paginateExpandedRows) {
21
- paginatedRowModel = expandRows({
22
- rows,
23
- flatRows,
24
- rowsById
25
- });
26
- } else {
27
- paginatedRowModel = {
28
- rows,
29
- flatRows,
30
- rowsById
31
- };
32
- }
33
- paginatedRowModel.flatRows = [];
34
- const handleRow = (row) => {
35
- paginatedRowModel.flatRows.push(row);
36
- if (row.subRows.length) {
37
- row.subRows.forEach(handleRow);
38
- }
39
- };
40
- paginatedRowModel.rows.forEach(handleRow);
41
- return paginatedRowModel;
42
- },
43
- getMemoOptions(table.options, "debugTable", "getPaginationRowModel")
44
- );
45
- }
46
- export {
47
- getPaginationRowModel
48
- };
49
- //# sourceMappingURL=getPaginationRowModel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getPaginationRowModel.js","sources":["../../../src/utils/getPaginationRowModel.ts"],"sourcesContent":["import { Table, RowModel, Row, RowData } from '../types'\nimport { getMemoOptions, memo } from '../utils'\nimport { expandRows } from './getExpandedRowModel'\n\nexport function getPaginationRowModel<TData extends RowData>(opts?: {\n initialSync: boolean\n}): (table: Table<TData>) => () => RowModel<TData> {\n return table =>\n memo(\n () => [\n table.getState().pagination,\n table.getPrePaginationRowModel(),\n table.options.paginateExpandedRows\n ? undefined\n : table.getState().expanded,\n ],\n (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel\n }\n\n const { pageSize, pageIndex } = pagination\n let { rows, flatRows, rowsById } = rowModel\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n rows = rows.slice(pageStart, pageEnd)\n\n let paginatedRowModel: RowModel<TData>\n\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById,\n })\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById,\n }\n }\n\n paginatedRowModel.flatRows = []\n\n const handleRow = (row: Row<TData>) => {\n paginatedRowModel.flatRows.push(row)\n if (row.subRows.length) {\n row.subRows.forEach(handleRow)\n }\n }\n\n paginatedRowModel.rows.forEach(handleRow)\n\n return paginatedRowModel\n },\n getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel')\n )\n}\n"],"names":[],"mappings":";;AAIO,SAAS,sBAA6C,MAEV;AACjD,SAAO,CACL,UAAA;AAAA,IACE,MAAM;AAAA,MACJ,MAAM,WAAW;AAAA,MACjB,MAAM,yBAAyB;AAAA,MAC/B,MAAM,QAAQ,uBACV,SACA,MAAM,WAAW;AAAA,IACvB;AAAA,IACA,CAAC,YAAY,aAAa;AACpB,UAAA,CAAC,SAAS,KAAK,QAAQ;AAClB,eAAA;AAAA,MACT;AAEM,YAAA,EAAE,UAAU,UAAc,IAAA;AAChC,UAAI,EAAE,MAAM,UAAU,SAAA,IAAa;AACnC,YAAM,YAAY,WAAW;AAC7B,YAAM,UAAU,YAAY;AAErB,aAAA,KAAK,MAAM,WAAW,OAAO;AAEhC,UAAA;AAEA,UAAA,CAAC,MAAM,QAAQ,sBAAsB;AACvC,4BAAoB,WAAW;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AAAA,MAAA,OACI;AACe,4BAAA;AAAA,UAClB;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ;AAEA,wBAAkB,WAAW;AAEvB,YAAA,YAAY,CAAC,QAAoB;AACnB,0BAAA,SAAS,KAAK,GAAG;AAC/B,YAAA,IAAI,QAAQ,QAAQ;AAClB,cAAA,QAAQ,QAAQ,SAAS;AAAA,QAC/B;AAAA,MAAA;AAGgB,wBAAA,KAAK,QAAQ,SAAS;AAEjC,aAAA;AAAA,IACT;AAAA,IACA,eAAe,MAAM,SAAS,cAAc,uBAAuB;AAAA,EAAA;AAEzE;"}
@@ -1,3 +0,0 @@
1
- import { Table, RowModel, RowData } from '../types';
2
-
3
- export declare function getSortedRowModel<TData extends RowData>(): (table: Table<TData>) => () => RowModel<TData>;
@@ -1,91 +0,0 @@
1
- import { memo, getMemoOptions } from "../utils.js";
2
- function getSortedRowModel() {
3
- return (table) => memo(
4
- () => [table.getState().sorting, table.getPreSortedRowModel()],
5
- (sorting, rowModel) => {
6
- if (!rowModel.rows.length || !(sorting == null ? void 0 : sorting.length)) {
7
- return rowModel;
8
- }
9
- const sortingState = table.getState().sorting;
10
- const sortedFlatRows = [];
11
- const availableSorting = sortingState.filter(
12
- (sort) => {
13
- var _a;
14
- return (_a = table.getColumn(sort.id)) == null ? void 0 : _a.getCanSort();
15
- }
16
- );
17
- const columnInfoById = {};
18
- availableSorting.forEach((sortEntry) => {
19
- const column = table.getColumn(sortEntry.id);
20
- if (!column)
21
- return;
22
- columnInfoById[sortEntry.id] = {
23
- sortUndefined: column.columnDef.sortUndefined,
24
- invertSorting: column.columnDef.invertSorting,
25
- sortingFn: column.getSortingFn()
26
- };
27
- });
28
- const sortData = (rows) => {
29
- const sortedData = rows.map((row) => ({ ...row }));
30
- sortedData.sort((rowA, rowB) => {
31
- for (let i = 0; i < availableSorting.length; i += 1) {
32
- const sortEntry = availableSorting[i];
33
- const columnInfo = columnInfoById[sortEntry.id];
34
- const sortUndefined = columnInfo.sortUndefined;
35
- const isDesc = (sortEntry == null ? void 0 : sortEntry.desc) ?? false;
36
- let sortInt = 0;
37
- if (sortUndefined) {
38
- const aValue = rowA.getValue(sortEntry.id);
39
- const bValue = rowB.getValue(sortEntry.id);
40
- const aUndefined = aValue === void 0;
41
- const bUndefined = bValue === void 0;
42
- if (aUndefined || bUndefined) {
43
- if (sortUndefined === "first")
44
- return aUndefined ? -1 : 1;
45
- if (sortUndefined === "last")
46
- return aUndefined ? 1 : -1;
47
- sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;
48
- }
49
- }
50
- if (sortInt === 0) {
51
- sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);
52
- }
53
- if (sortInt !== 0) {
54
- if (isDesc) {
55
- sortInt *= -1;
56
- }
57
- if (columnInfo.invertSorting) {
58
- sortInt *= -1;
59
- }
60
- return sortInt;
61
- }
62
- }
63
- return rowA.index - rowB.index;
64
- });
65
- sortedData.forEach((row) => {
66
- var _a;
67
- sortedFlatRows.push(row);
68
- if ((_a = row.subRows) == null ? void 0 : _a.length) {
69
- row.subRows = sortData(row.subRows);
70
- }
71
- });
72
- return sortedData;
73
- };
74
- return {
75
- rows: sortData(rowModel.rows),
76
- flatRows: sortedFlatRows,
77
- rowsById: rowModel.rowsById
78
- };
79
- },
80
- getMemoOptions(
81
- table.options,
82
- "debugTable",
83
- "getSortedRowModel",
84
- () => table._autoResetPageIndex()
85
- )
86
- );
87
- }
88
- export {
89
- getSortedRowModel
90
- };
91
- //# sourceMappingURL=getSortedRowModel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getSortedRowModel.js","sources":["../../../src/utils/getSortedRowModel.ts"],"sourcesContent":["import { Table, Row, RowModel, RowData } from '../types'\nimport { SortingFn } from '../features/RowSorting'\nimport { getMemoOptions, memo } from '../utils'\n\nexport function getSortedRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.getState().sorting, table.getPreSortedRowModel()],\n (sorting, rowModel) => {\n if (!rowModel.rows.length || !sorting?.length) {\n return rowModel\n }\n\n const sortingState = table.getState().sorting\n\n const sortedFlatRows: Row<TData>[] = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(\n sort => table.getColumn(sort.id)?.getCanSort()\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1 | 'first' | 'last'\n invertSorting?: boolean\n sortingFn: SortingFn<TData>\n }\n > = {}\n\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id)\n if (!column) return\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn(),\n }\n })\n\n const sortData = (rows: Row<TData>[]) => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.map(row => ({ ...row }))\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const sortUndefined = columnInfo.sortUndefined\n const isDesc = sortEntry?.desc ?? false\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.sortingFn(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\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n sortedFlatRows.push(row)\n if (row.subRows?.length) {\n row.subRows = sortData(row.subRows)\n }\n })\n\n return sortedData\n }\n\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById,\n }\n },\n getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () =>\n table._autoResetPageIndex()\n )\n )\n}\n"],"names":[],"mappings":";AAIO,SAAS,oBAEW;AACzB,SAAO,CACL,UAAA;AAAA,IACE,MAAM,CAAC,MAAM,SAAA,EAAW,SAAS,MAAM,sBAAsB;AAAA,IAC7D,CAAC,SAAS,aAAa;AACrB,UAAI,CAAC,SAAS,KAAK,UAAU,EAAC,mCAAS,SAAQ;AACtC,eAAA;AAAA,MACT;AAEM,YAAA,eAAe,MAAM,SAAA,EAAW;AAEtC,YAAM,iBAA+B,CAAA;AAGrC,YAAM,mBAAmB,aAAa;AAAA,QACpC,UAAQ;;AAAA,6BAAM,UAAU,KAAK,EAAE,MAAvB,mBAA0B;AAAA;AAAA,MAAW;AAG/C,YAAM,iBAOF,CAAA;AAEJ,uBAAiB,QAAQ,CAAa,cAAA;AACpC,cAAM,SAAS,MAAM,UAAU,UAAU,EAAE;AAC3C,YAAI,CAAC;AAAQ;AAEE,uBAAA,UAAU,EAAE,IAAI;AAAA,UAC7B,eAAe,OAAO,UAAU;AAAA,UAChC,eAAe,OAAO,UAAU;AAAA,UAChC,WAAW,OAAO,aAAa;AAAA,QAAA;AAAA,MACjC,CACD;AAEK,YAAA,WAAW,CAAC,SAAuB;AAGvC,cAAM,aAAa,KAAK,IAAI,UAAQ,EAAE,GAAG,IAAM,EAAA;AAEpC,mBAAA,KAAK,CAAC,MAAM,SAAS;AAC9B,mBAAS,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK,GAAG;AAC7C,kBAAA,YAAY,iBAAiB,CAAC;AAC9B,kBAAA,aAAa,eAAe,UAAU,EAAE;AAC9C,kBAAM,gBAAgB,WAAW;AAC3B,kBAAA,UAAS,uCAAW,SAAQ;AAElC,gBAAI,UAAU;AAGd,gBAAI,eAAe;AACjB,oBAAM,SAAS,KAAK,SAAS,UAAU,EAAE;AACzC,oBAAM,SAAS,KAAK,SAAS,UAAU,EAAE;AAEzC,oBAAM,aAAa,WAAW;AAC9B,oBAAM,aAAa,WAAW;AAE9B,kBAAI,cAAc,YAAY;AAC5B,oBAAI,kBAAkB;AAAS,yBAAO,aAAa,KAAK;AACxD,oBAAI,kBAAkB;AAAQ,yBAAO,aAAa,IAAI;AACtD,0BACE,cAAc,aACV,IACA,aACE,gBACA,CAAC;AAAA,cACX;AAAA,YACF;AAEA,gBAAI,YAAY,GAAG;AACjB,wBAAU,WAAW,UAAU,MAAM,MAAM,UAAU,EAAE;AAAA,YACzD;AAGA,gBAAI,YAAY,GAAG;AACjB,kBAAI,QAAQ;AACC,2BAAA;AAAA,cACb;AAEA,kBAAI,WAAW,eAAe;AACjB,2BAAA;AAAA,cACb;AAEO,qBAAA;AAAA,YACT;AAAA,UACF;AAEO,iBAAA,KAAK,QAAQ,KAAK;AAAA,QAAA,CAC1B;AAGD,mBAAW,QAAQ,CAAO,QAAA;;AACxB,yBAAe,KAAK,GAAG;AACnB,eAAA,SAAI,YAAJ,mBAAa,QAAQ;AACnB,gBAAA,UAAU,SAAS,IAAI,OAAO;AAAA,UACpC;AAAA,QAAA,CACD;AAEM,eAAA;AAAA,MAAA;AAGF,aAAA;AAAA,QACL,MAAM,SAAS,SAAS,IAAI;AAAA,QAC5B,UAAU;AAAA,QACV,UAAU,SAAS;AAAA,MAAA;AAAA,IAEvB;AAAA,IACA;AAAA,MAAe,MAAM;AAAA,MAAS;AAAA,MAAc;AAAA,MAAqB,MAC/D,MAAM,oBAAoB;AAAA,IAC5B;AAAA,EAAA;AAEN;"}
@@ -1,123 +0,0 @@
1
- import { AggregationFn } from './features/ColumnGrouping'
2
- import { isNumberArray } from './utils'
3
-
4
- const sum: AggregationFn<any> = (columnId, _leafRows, childRows) => {
5
- // It's faster to just add the aggregations together instead of
6
- // process leaf nodes individually
7
- return childRows.reduce((sum, next) => {
8
- const nextValue = next.getValue(columnId)
9
- return sum + (typeof nextValue === 'number' ? nextValue : 0)
10
- }, 0)
11
- }
12
-
13
- const min: AggregationFn<any> = (columnId, _leafRows, childRows) => {
14
- let min: number | undefined
15
-
16
- childRows.forEach(row => {
17
- const value = row.getValue<number>(columnId)
18
-
19
- if (
20
- value != null &&
21
- (min! > value || (min === undefined && value >= value))
22
- ) {
23
- min = value
24
- }
25
- })
26
-
27
- return min
28
- }
29
-
30
- const max: AggregationFn<any> = (columnId, _leafRows, childRows) => {
31
- let max: number | undefined
32
-
33
- childRows.forEach(row => {
34
- const value = row.getValue<number>(columnId)
35
- if (
36
- value != null &&
37
- (max! < value || (max === undefined && value >= value))
38
- ) {
39
- max = value
40
- }
41
- })
42
-
43
- return max
44
- }
45
-
46
- const extent: AggregationFn<any> = (columnId, _leafRows, childRows) => {
47
- let min: number | undefined
48
- let max: number | undefined
49
-
50
- childRows.forEach(row => {
51
- const value = row.getValue<number>(columnId)
52
- if (value != null) {
53
- if (min === undefined) {
54
- if (value >= value) min = max = value
55
- } else {
56
- if (min > value) min = value
57
- if (max! < value) max = value
58
- }
59
- }
60
- })
61
-
62
- return [min, max]
63
- }
64
-
65
- const mean: AggregationFn<any> = (columnId, leafRows) => {
66
- let count = 0
67
- let sum = 0
68
-
69
- leafRows.forEach(row => {
70
- let value = row.getValue<number>(columnId)
71
- if (value != null && (value = +value) >= value) {
72
- ++count, (sum += value)
73
- }
74
- })
75
-
76
- if (count) return sum / count
77
-
78
- return
79
- }
80
-
81
- const median: AggregationFn<any> = (columnId, leafRows) => {
82
- if (!leafRows.length) {
83
- return
84
- }
85
-
86
- const values = leafRows.map(row => row.getValue(columnId))
87
- if (!isNumberArray(values)) {
88
- return
89
- }
90
- if (values.length === 1) {
91
- return values[0]
92
- }
93
-
94
- const mid = Math.floor(values.length / 2)
95
- const nums = values.sort((a, b) => a - b)
96
- return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1]! + nums[mid]!) / 2
97
- }
98
-
99
- const unique: AggregationFn<any> = (columnId, leafRows) => {
100
- return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values())
101
- }
102
-
103
- const uniqueCount: AggregationFn<any> = (columnId, leafRows) => {
104
- return new Set(leafRows.map(d => d.getValue(columnId))).size
105
- }
106
-
107
- const count: AggregationFn<any> = (_columnId, leafRows) => {
108
- return leafRows.length
109
- }
110
-
111
- export const aggregationFns = {
112
- sum,
113
- min,
114
- max,
115
- extent,
116
- mean,
117
- median,
118
- unique,
119
- uniqueCount,
120
- count,
121
- }
122
-
123
- export type BuiltInAggregationFn = keyof typeof aggregationFns
@@ -1,91 +0,0 @@
1
- import {
2
- AccessorFn,
3
- AccessorFnColumnDef,
4
- AccessorKeyColumnDef,
5
- DisplayColumnDef,
6
- GroupColumnDef,
7
- IdentifiedColumnDef,
8
- RowData,
9
- } from './types'
10
- import { DeepKeys, DeepValue } from './utils'
11
-
12
- // type Person = {
13
- // firstName: string
14
- // lastName: string
15
- // age: number
16
- // visits: number
17
- // status: string
18
- // progress: number
19
- // createdAt: Date
20
- // nested: {
21
- // foo: [
22
- // {
23
- // bar: 'bar'
24
- // }
25
- // ]
26
- // bar: { subBar: boolean }[]
27
- // baz: {
28
- // foo: 'foo'
29
- // bar: {
30
- // baz: 'baz'
31
- // }
32
- // }
33
- // }
34
- // }
35
-
36
- // const test: DeepKeys<Person> = 'nested.foo.0.bar'
37
- // const test2: DeepKeys<Person> = 'nested.bar'
38
-
39
- // const helper = createColumnHelper<Person>()
40
-
41
- // helper.accessor('nested.foo', {
42
- // cell: info => info.getValue(),
43
- // })
44
-
45
- // helper.accessor('nested.foo.0.bar', {
46
- // cell: info => info.getValue(),
47
- // })
48
-
49
- // helper.accessor('nested.bar', {
50
- // cell: info => info.getValue(),
51
- // })
52
-
53
- export type ColumnHelper<TData extends RowData> = {
54
- accessor: <
55
- TAccessor extends AccessorFn<TData> | DeepKeys<TData>,
56
- TValue extends TAccessor extends AccessorFn<TData, infer TReturn>
57
- ? TReturn
58
- : TAccessor extends DeepKeys<TData>
59
- ? DeepValue<TData, TAccessor>
60
- : never,
61
- >(
62
- accessor: TAccessor,
63
- column: TAccessor extends AccessorFn<TData>
64
- ? DisplayColumnDef<TData, TValue>
65
- : IdentifiedColumnDef<TData, TValue>
66
- ) => TAccessor extends AccessorFn<TData>
67
- ? AccessorFnColumnDef<TData, TValue>
68
- : AccessorKeyColumnDef<TData, TValue>
69
- display: (column: DisplayColumnDef<TData>) => DisplayColumnDef<TData, unknown>
70
- group: (column: GroupColumnDef<TData>) => GroupColumnDef<TData, unknown>
71
- }
72
-
73
- export function createColumnHelper<
74
- TData extends RowData,
75
- >(): ColumnHelper<TData> {
76
- return {
77
- accessor: (accessor, column) => {
78
- return typeof accessor === 'function'
79
- ? ({
80
- ...column,
81
- accessorFn: accessor,
82
- } as any)
83
- : {
84
- ...column,
85
- accessorKey: accessor,
86
- }
87
- },
88
- display: column => column,
89
- group: column => column,
90
- }
91
- }
package/src/core/cell.ts DELETED
@@ -1,91 +0,0 @@
1
- import { RowData, Cell, Column, Row, Table } from '../types'
2
- import { Getter, getMemoOptions, memo } from '../utils'
3
-
4
- export interface CellContext<TData extends RowData, TValue> {
5
- cell: Cell<TData, TValue>
6
- column: Column<TData, TValue>
7
- getValue: Getter<TValue>
8
- renderValue: Getter<TValue | null>
9
- row: Row<TData>
10
- table: Table<TData>
11
- }
12
-
13
- export interface CoreCell<TData extends RowData, TValue> {
14
- /**
15
- * The associated Column object for the cell.
16
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/core/cell#column)
17
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/cells)
18
- */
19
- column: Column<TData, TValue>
20
- /**
21
- * Returns the rendering context (or props) for cell-based components like cells and aggregated cells. Use these props with your framework's `flexRender` utility to render these using the template of your choice:
22
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/core/cell#getcontext)
23
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/cells)
24
- */
25
- getContext: () => CellContext<TData, TValue>
26
- /**
27
- * Returns the value for the cell, accessed via the associated column's accessor key or accessor function.
28
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/core/cell#getvalue)
29
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/cells)
30
- */
31
- getValue: CellContext<TData, TValue>['getValue']
32
- /**
33
- * The unique ID for the cell across the entire table.
34
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/core/cell#id)
35
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/cells)
36
- */
37
- id: string
38
- /**
39
- * Renders the value for a cell the same as `getValue`, but will return the `renderFallbackValue` if no value is found.
40
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/core/cell#rendervalue)
41
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/cells)
42
- */
43
- renderValue: CellContext<TData, TValue>['renderValue']
44
- /**
45
- * The associated Row object for the cell.
46
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/core/cell#row)
47
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/cells)
48
- */
49
- row: Row<TData>
50
- }
51
-
52
- export function createCell<TData extends RowData, TValue>(
53
- table: Table<TData>,
54
- row: Row<TData>,
55
- column: Column<TData, TValue>,
56
- columnId: string
57
- ): Cell<TData, TValue> {
58
- const getRenderValue = () =>
59
- cell.getValue() ?? table.options.renderFallbackValue
60
-
61
- const cell: CoreCell<TData, TValue> = {
62
- id: `${row.id}_${column.id}`,
63
- row,
64
- column,
65
- getValue: () => row.getValue(columnId),
66
- renderValue: getRenderValue,
67
- getContext: memo(
68
- () => [table, column, row, cell],
69
- (table, column, row, cell) => ({
70
- table,
71
- column,
72
- row,
73
- cell: cell as Cell<TData, TValue>,
74
- getValue: cell.getValue,
75
- renderValue: cell.renderValue,
76
- }),
77
- getMemoOptions(table.options, 'debugCells', 'cell.getContext')
78
- ),
79
- }
80
-
81
- table._features.forEach(feature => {
82
- feature.createCell?.(
83
- cell as Cell<TData, TValue>,
84
- column,
85
- row as Row<TData>,
86
- table
87
- )
88
- }, {})
89
-
90
- return cell as Cell<TData, TValue>
91
- }