@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
package/src/utils.ts CHANGED
@@ -1,103 +1,29 @@
1
- import { TableOptionsResolved, TableState, Updater } from './types'
2
-
3
- export type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>
4
- export type RequiredKeys<T, K extends keyof T> = Omit<T, K> &
5
- Required<Pick<T, K>>
6
- export type Overwrite<T, U extends { [TKey in keyof T]?: any }> = Omit<
7
- T,
8
- keyof U
9
- > &
10
- U
11
-
12
- export type UnionToIntersection<T> = (
13
- T extends any ? (x: T) => any : never
14
- ) extends (x: infer R) => any
15
- ? R
16
- : never
17
-
18
- export type IsAny<T, Y, N> = 1 extends 0 & T ? Y : N
19
- export type IsKnown<T, Y, N> = unknown extends T ? N : Y
20
-
21
- type ComputeRange<
22
- N extends number,
23
- Result extends Array<unknown> = [],
24
- > = Result['length'] extends N
25
- ? Result
26
- : ComputeRange<N, [...Result, Result['length']]>
27
- type Index40 = ComputeRange<40>[number]
28
-
29
- // Is this type a tuple?
30
- type IsTuple<T> = T extends readonly any[] & { length: infer Length }
31
- ? Length extends Index40
32
- ? T
33
- : never
34
- : never
35
-
36
- // If this type is a tuple, what indices are allowed?
37
- type AllowedIndexes<
38
- Tuple extends ReadonlyArray<any>,
39
- Keys extends number = never,
40
- > = Tuple extends readonly []
41
- ? Keys
42
- : Tuple extends readonly [infer _, ...infer Tail]
43
- ? AllowedIndexes<Tail, Keys | Tail['length']>
44
- : Keys
45
-
46
- export type DeepKeys<T, TDepth extends any[] = []> = TDepth['length'] extends 5
47
- ? never
48
- : unknown extends T
49
- ? string
50
- : T extends readonly any[] & IsTuple<T>
51
- ? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>, TDepth>
52
- : T extends any[]
53
- ? DeepKeys<T[number], [...TDepth, any]>
54
- : T extends Date
55
- ? never
56
- : T extends object
57
- ? (keyof T & string) | DeepKeysPrefix<T, keyof T, TDepth>
58
- : never
59
-
60
- type DeepKeysPrefix<
61
- T,
62
- TPrefix,
63
- TDepth extends any[],
64
- > = TPrefix extends keyof T & (number | string)
65
- ? `${TPrefix}.${DeepKeys<T[TPrefix], [...TDepth, any]> & string}`
66
- : never
67
-
68
- export type DeepValue<T, TProp> = T extends Record<string | number, any>
69
- ? TProp extends `${infer TBranch}.${infer TDeepProp}`
70
- ? DeepValue<T[TBranch], TDeepProp>
71
- : T[TProp & string]
72
- : never
73
-
74
- export type NoInfer<T> = [T][T extends any ? 0 : never]
75
-
76
- export type Getter<TValue> = <TTValue = TValue>() => NoInfer<TTValue>
77
-
78
- ///
1
+ import type { Table, Table_Internal } from './types/Table'
2
+ import type { NoInfer, RowData, Updater } from './types/type-utils'
3
+ import type { TableFeatures } from './types/TableFeatures'
4
+ import type { TableState, TableState_All } from './types/TableState'
79
5
 
80
6
  export function functionalUpdate<T>(updater: Updater<T>, input: T): T {
81
7
  return typeof updater === 'function'
82
- ? (updater as (input: T) => T)(input)
8
+ ? (updater as (i: T) => T)(input)
83
9
  : updater
84
10
  }
85
11
 
86
- export function noop() {
87
- //
88
- }
89
-
90
- export function makeStateUpdater<K extends keyof TableState>(
91
- key: K,
92
- instance: unknown
93
- ) {
94
- return (updater: Updater<TableState[K]>) => {
95
- ;(instance as any).setState(<TTableState>(old: TTableState) => {
96
- return {
97
- ...old,
98
- [key]: functionalUpdate(updater, (old as any)[key]),
99
- }
100
- })
12
+ export function noop() {}
13
+
14
+ export function makeStateUpdater<
15
+ TFeatures extends TableFeatures,
16
+ K extends (string & {}) | keyof TableState_All | keyof TableState<TFeatures>,
17
+ >(key: K, instance: Table<TFeatures, any>) {
18
+ return (updater: Updater<TableState<any>[K & keyof TableState<any>]>) => {
19
+ ;(instance as Table_Internal<any, any>).baseStore.setState(
20
+ <TTableState extends TableState_All>(old: TTableState) => {
21
+ return {
22
+ ...old,
23
+ [key]: functionalUpdate(updater, (old as any)[key]),
24
+ }
25
+ },
26
+ )
101
27
  }
102
28
  }
103
29
 
@@ -107,21 +33,21 @@ export function isFunction<T extends AnyFunction>(d: any): d is T {
107
33
  return d instanceof Function
108
34
  }
109
35
 
110
- export function isNumberArray(d: any): d is number[] {
111
- return Array.isArray(d) && d.every(val => typeof val === 'number')
36
+ export function isNumberArray(d: any): d is Array<number> {
37
+ return Array.isArray(d) && d.every((val) => typeof val === 'number')
112
38
  }
113
39
 
114
40
  export function flattenBy<TNode>(
115
- arr: TNode[],
116
- getChildren: (item: TNode) => TNode[]
41
+ arr: Array<TNode>,
42
+ getChildren: (item: TNode) => Array<TNode>,
117
43
  ) {
118
- const flat: TNode[] = []
44
+ const flat: Array<TNode> = []
119
45
 
120
- const recurse = (subArr: TNode[]) => {
121
- subArr.forEach(item => {
46
+ const recurse = (subArr: Array<TNode>) => {
47
+ subArr.forEach((item) => {
122
48
  flat.push(item)
123
49
  const children = getChildren(item)
124
- if (children?.length) {
50
+ if (children.length) {
125
51
  recurse(children)
126
52
  }
127
53
  })
@@ -132,27 +58,53 @@ export function flattenBy<TNode>(
132
58
  return flat
133
59
  }
134
60
 
135
- export function memo<TDeps extends readonly any[], TDepArgs, TResult>(
136
- getDeps: (depArgs?: TDepArgs) => [...TDeps],
137
- fn: (...args: NoInfer<[...TDeps]>) => TResult,
138
- opts: {
139
- key: any
140
- debug?: () => any
141
- onChange?: (result: TResult) => void
142
- }
143
- ): (depArgs?: TDepArgs) => TResult {
144
- let deps: any[] = []
145
- let result: TResult | undefined
61
+ export const $internalMemoFnMeta = Symbol('memoFnMeta')
62
+ export type MemoFnMeta = { originalArgsLength?: number }
63
+
64
+ /**
65
+ * @internal
66
+ */
67
+ function setMemoFnMeta(fn: Function, meta: MemoFnMeta) {
68
+ Object.defineProperty(fn, $internalMemoFnMeta, { value: meta })
69
+ }
146
70
 
147
- return depArgs => {
148
- let depTime: number
149
- if (opts.key && opts.debug) depTime = Date.now()
71
+ /**
72
+ * @internal
73
+ */
74
+ export function getMemoFnMeta(fn: any): MemoFnMeta | null {
75
+ return (typeof fn === 'function' && fn[$internalMemoFnMeta]) ?? null
76
+ }
150
77
 
151
- const newDeps = getDeps(depArgs)
78
+ interface MemoOptions<TDeps extends ReadonlyArray<any>, TDepArgs, TResult> {
79
+ fn: (...args: NoInfer<TDeps>) => TResult
80
+ memoDeps?: (depArgs?: TDepArgs) => [...TDeps] | undefined
81
+ onAfterCompare?: (depsChanged: boolean) => void
82
+ onAfterUpdate?: (result: TResult) => void
83
+ onBeforeCompare?: () => void
84
+ onBeforeUpdate?: () => void
85
+ }
152
86
 
87
+ export const memo = <TDeps extends ReadonlyArray<any>, TDepArgs, TResult>({
88
+ fn,
89
+ memoDeps,
90
+ onAfterCompare,
91
+ onAfterUpdate,
92
+ onBeforeCompare,
93
+ onBeforeUpdate,
94
+ }: MemoOptions<TDeps, TDepArgs, TResult>): ((
95
+ depArgs?: TDepArgs,
96
+ ) => TResult) => {
97
+ let deps: Array<any> | undefined = []
98
+ let result: TResult | undefined
99
+
100
+ const memoizedFn = (depArgs?: TDepArgs): TResult => {
101
+ onBeforeCompare?.()
102
+ const newDeps = memoDeps?.(depArgs)
153
103
  const depsChanged =
154
- newDeps.length !== deps.length ||
155
- newDeps.some((dep: any, index: number) => deps[index] !== dep)
104
+ !newDeps ||
105
+ newDeps.length !== deps?.length ||
106
+ newDeps.some((dep: any, index: number) => deps?.[index] !== dep)
107
+ onAfterCompare?.(depsChanged)
156
108
 
157
109
  if (!depsChanged) {
158
110
  return result!
@@ -160,59 +112,288 @@ export function memo<TDeps extends readonly any[], TDepArgs, TResult>(
160
112
 
161
113
  deps = newDeps
162
114
 
163
- let resultTime: number
164
- if (opts.key && opts.debug) resultTime = Date.now()
115
+ onBeforeUpdate?.()
116
+ result = fn(...(newDeps ?? ([] as any)))
117
+ onAfterUpdate?.(result)
118
+
119
+ return result
120
+ }
165
121
 
166
- result = fn(...newDeps)
167
- opts?.onChange?.(result)
122
+ setMemoFnMeta(memoizedFn, { originalArgsLength: fn.length })
168
123
 
169
- if (opts.key && opts.debug) {
170
- if (opts?.debug()) {
171
- const depEndTime = Math.round((Date.now() - depTime!) * 100) / 100
172
- const resultEndTime = Math.round((Date.now() - resultTime!) * 100) / 100
173
- const resultFpsPercentage = resultEndTime / 16
124
+ return memoizedFn
125
+ }
174
126
 
175
- const pad = (str: number | string, num: number) => {
176
- str = String(str)
177
- while (str.length < num) {
178
- str = ' ' + str
179
- }
180
- return str
127
+ interface TableMemoOptions<
128
+ TFeatures extends TableFeatures,
129
+ TDeps extends ReadonlyArray<any>,
130
+ TDepArgs,
131
+ TResult,
132
+ > extends MemoOptions<TDeps, TDepArgs, TResult> {
133
+ feature?: keyof TFeatures & string
134
+ fnName: string
135
+ objectId?: string
136
+ onAfterUpdate?: () => void
137
+ table: Table_Internal<TFeatures, any>
138
+ }
139
+
140
+ const pad = (str: number | string, num: number) => {
141
+ str = String(str)
142
+ while (str.length < num) {
143
+ str = ' ' + str
144
+ }
145
+ return str
146
+ }
147
+
148
+ export function tableMemo<
149
+ TFeatures extends TableFeatures,
150
+ TDeps extends ReadonlyArray<any>,
151
+ TDepArgs,
152
+ TResult,
153
+ >({
154
+ feature,
155
+ fnName,
156
+ objectId,
157
+ onAfterUpdate,
158
+ table,
159
+ ...memoOptions
160
+ }: TableMemoOptions<TFeatures, TDeps, TDepArgs, TResult>) {
161
+ let beforeCompareTime: number
162
+ let afterCompareTime: number
163
+ let startCalcTime: number
164
+ let endCalcTime: number
165
+ let runCount = 0
166
+ let debug: boolean | undefined
167
+ let debugCache: boolean | undefined
168
+
169
+ if (process.env.NODE_ENV === 'development') {
170
+ const { debugCache: _debugCache, debugAll } = table.options
171
+ debugCache = _debugCache
172
+ const { parentName } = getFunctionNameInfo(fnName, '.')
173
+
174
+ const debugByParent =
175
+ // @ts-expect-error
176
+ table.options[
177
+ `debug${(parentName != 'table' ? parentName + 's' : parentName).replace(
178
+ parentName,
179
+ parentName.charAt(0).toUpperCase() + parentName.slice(1),
180
+ )}`
181
+ ]
182
+ const debugByFeature = feature
183
+ ? // @ts-expect-error
184
+ table.options[
185
+ `debug${feature.charAt(0).toUpperCase() + feature.slice(1)}`
186
+ ]
187
+ : false
188
+
189
+ debug = debugAll || debugByParent || debugByFeature
190
+ }
191
+
192
+ function logTime(time: number, depsChanged: boolean) {
193
+ const runType =
194
+ runCount === 0
195
+ ? '(1st run)'
196
+ : depsChanged
197
+ ? '(rerun #' + runCount + ')'
198
+ : '(cache)'
199
+ runCount++
200
+
201
+ console.groupCollapsed(
202
+ `%c⏱ ${pad(`${time.toFixed(1)} ms`, 12)} %c${runType}%c ${fnName}%c ${objectId ? `(${fnName.split('.')[0]}Id: ${objectId})` : ''}`,
203
+ `font-size: .6rem; font-weight: bold; ${
204
+ depsChanged
205
+ ? `color: hsl(
206
+ ${Math.max(0, Math.min(120 - Math.log10(time) * 60, 120))}deg 100% 31%);`
207
+ : ''
208
+ } `,
209
+ `color: ${runCount < 2 ? '#FF00FF' : '#FF1493'}`,
210
+ 'color: #666',
211
+ 'color: #87CEEB',
212
+ )
213
+ console.info({
214
+ feature,
215
+ state: table.store.state,
216
+ deps: memoOptions.memoDeps?.toString(),
217
+ })
218
+ console.trace()
219
+ console.groupEnd()
220
+ }
221
+
222
+ const debugOptions =
223
+ process.env.NODE_ENV === 'development'
224
+ ? {
225
+ onBeforeCompare: () => {
226
+ if (debugCache) {
227
+ beforeCompareTime = performance.now()
228
+ }
229
+ },
230
+ onAfterCompare: (depsChanged: boolean) => {
231
+ if (debugCache) {
232
+ afterCompareTime = performance.now()
233
+ const compareTime =
234
+ Math.round((afterCompareTime - beforeCompareTime) * 100) / 100
235
+ if (!depsChanged) {
236
+ logTime(compareTime, depsChanged)
237
+ }
238
+ }
239
+ },
240
+ onBeforeUpdate: () => {
241
+ if (debug) {
242
+ startCalcTime = performance.now()
243
+ }
244
+ },
245
+ onAfterUpdate: () => {
246
+ if (debug) {
247
+ endCalcTime = performance.now()
248
+ const executionTime =
249
+ Math.round((endCalcTime - startCalcTime) * 100) / 100
250
+ logTime(executionTime, true)
251
+ }
252
+ queueMicrotask(() => onAfterUpdate?.())
253
+ },
254
+ }
255
+ : {
256
+ onAfterUpdate: () => {
257
+ queueMicrotask(() => onAfterUpdate?.())
258
+ },
181
259
  }
182
260
 
183
- console.info(
184
- `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,
185
- `
186
- font-size: .6rem;
187
- font-weight: bold;
188
- color: hsl(${Math.max(
189
- 0,
190
- Math.min(120 - 120 * resultFpsPercentage, 120)
191
- )}deg 100% 31%);`,
192
- opts?.key
193
- )
261
+ return memo({
262
+ ...memoOptions,
263
+ ...debugOptions,
264
+ })
265
+ }
266
+
267
+ export interface API<TDeps extends ReadonlyArray<any>, TDepArgs> {
268
+ fn: (...args: any) => any
269
+ memoDeps?: (depArgs?: any) => [...any] | undefined
270
+ }
271
+
272
+ export type APIObject<TDeps extends ReadonlyArray<any>, TDepArgs> = Record<
273
+ string,
274
+ API<TDeps, TDepArgs>
275
+ >
276
+
277
+ /**
278
+ * Assumes that a function name is in the format of `parentName_fnKey` and returns the `fnKey` and `fnName` in the format of `parentName.fnKey`.
279
+ */
280
+ export function getFunctionNameInfo(
281
+ staticFnName: string,
282
+ splitBy: '_' | '.' = '_',
283
+ ) {
284
+ const [parentName, fnKey] = staticFnName.split(splitBy)
285
+ const fnName = `${parentName}.${fnKey}`
286
+ return { fnKey, fnName, parentName } as {
287
+ fnKey: string
288
+ fnName: string
289
+ parentName: string
290
+ }
291
+ }
292
+
293
+ /**
294
+ * Assigns Table API methods directly to the table instance.
295
+ * Unlike row/cell/column/header, the table is a singleton so methods are assigned directly.
296
+ */
297
+ export function assignTableAPIs<
298
+ TFeatures extends TableFeatures,
299
+ TData extends RowData,
300
+ TDeps extends ReadonlyArray<any>,
301
+ TDepArgs,
302
+ >(
303
+ feature: keyof TFeatures & string,
304
+ table: Table_Internal<TFeatures, TData>,
305
+ apis: APIObject<TDeps, NoInfer<TDepArgs>>,
306
+ ): void {
307
+ for (const [staticFnName, { fn, memoDeps }] of Object.entries(apis)) {
308
+ const { fnKey, fnName } = getFunctionNameInfo(staticFnName)
309
+
310
+ ;(table as Record<string, any>)[fnKey] = memoDeps
311
+ ? tableMemo({
312
+ memoDeps,
313
+ fn,
314
+ fnName,
315
+ table,
316
+ feature,
317
+ })
318
+ : fn
319
+ }
320
+ }
321
+
322
+ export interface PrototypeAPI<TDeps extends ReadonlyArray<any>, TDepArgs> {
323
+ fn: (self: any, ...args: any) => any
324
+ memoDeps?: (self: any, depArgs?: any) => [...any] | undefined
325
+ }
326
+
327
+ export type PrototypeAPIObject<
328
+ TDeps extends ReadonlyArray<any>,
329
+ TDepArgs,
330
+ > = Record<string, PrototypeAPI<TDeps, TDepArgs>>
331
+
332
+ /**
333
+ * Assigns API methods to a prototype object for memory-efficient method sharing.
334
+ * All instances created with this prototype will share the same method references.
335
+ *
336
+ * For memoized methods, the memo state is lazily created and stored on each instance.
337
+ * This provides the best of both worlds: shared method code + per-instance caching.
338
+ */
339
+ export function assignPrototypeAPIs<
340
+ TFeatures extends TableFeatures,
341
+ TData extends RowData,
342
+ TDeps extends ReadonlyArray<any>,
343
+ TDepArgs,
344
+ >(
345
+ feature: keyof TFeatures & string,
346
+ prototype: Record<string, any>,
347
+ table: Table_Internal<TFeatures, TData>,
348
+ apis: PrototypeAPIObject<TDeps, NoInfer<TDepArgs>>,
349
+ ): void {
350
+ for (const [staticFnName, { fn, memoDeps }] of Object.entries(apis)) {
351
+ const { fnKey, fnName } = getFunctionNameInfo(staticFnName)
352
+
353
+ if (memoDeps) {
354
+ // For memoized methods, create a function that lazily initializes
355
+ // the memo on first access and stores it on the instance
356
+ const memoKey = `_memo_${fnKey}`
357
+
358
+ prototype[fnKey] = function (this: any, ...args: Array<any>) {
359
+ // Lazily create memo on first access for this instance
360
+ if (!this[memoKey]) {
361
+ const self = this
362
+ this[memoKey] = tableMemo({
363
+ memoDeps: () => memoDeps(self),
364
+ fn: (...deps) => fn(self, ...deps),
365
+ fnName,
366
+ objectId: self.id,
367
+ table,
368
+ feature,
369
+ })
370
+ }
371
+ return this[memoKey](...args)
372
+ }
373
+ } else {
374
+ // Non-memoized methods just call the static function with `this`
375
+ prototype[fnKey] = function (this: any, ...args: Array<any>) {
376
+ return fn(this, ...args)
194
377
  }
195
378
  }
196
379
 
197
- return result!
380
+ setMemoFnMeta(prototype[fnKey], { originalArgsLength: fn.length })
198
381
  }
199
382
  }
200
383
 
201
- export function getMemoOptions(
202
- tableOptions: Partial<TableOptionsResolved<any>>,
203
- debugLevel:
204
- | 'debugAll'
205
- | 'debugCells'
206
- | 'debugTable'
207
- | 'debugColumns'
208
- | 'debugRows'
209
- | 'debugHeaders',
210
- key: string,
211
- onChange?: (result: any) => void
212
- ) {
213
- return {
214
- debug: () => tableOptions?.debugAll ?? tableOptions[debugLevel],
215
- key: process.env.NODE_ENV === 'development' && key,
216
- onChange,
217
- }
384
+ /**
385
+ * Looks to run the memoized function with the builder pattern on the object if it exists, otherwise fallback to the static method passed in.
386
+ */
387
+ export function callMemoOrStaticFn<
388
+ TObject extends Record<string, any>,
389
+ TStaticFn extends AnyFunction,
390
+ >(
391
+ obj: TObject,
392
+ fnKey: string,
393
+ staticFn: TStaticFn,
394
+ ...args: Parameters<TStaticFn> extends [any, ...infer Rest] ? Rest : never
395
+ ): ReturnType<TStaticFn> {
396
+ return (
397
+ (obj[fnKey] as Function | undefined)?.(...args) ?? staticFn(obj, ...args)
398
+ )
218
399
  }
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const utils = require("./utils.cjs");
4
- const sum = (columnId, _leafRows, childRows) => {
5
- return childRows.reduce((sum2, next) => {
6
- const nextValue = next.getValue(columnId);
7
- return sum2 + (typeof nextValue === "number" ? nextValue : 0);
8
- }, 0);
9
- };
10
- const min = (columnId, _leafRows, childRows) => {
11
- let min2;
12
- childRows.forEach((row) => {
13
- const value = row.getValue(columnId);
14
- if (value != null && (min2 > value || min2 === void 0 && value >= value)) {
15
- min2 = value;
16
- }
17
- });
18
- return min2;
19
- };
20
- const max = (columnId, _leafRows, childRows) => {
21
- let max2;
22
- childRows.forEach((row) => {
23
- const value = row.getValue(columnId);
24
- if (value != null && (max2 < value || max2 === void 0 && value >= value)) {
25
- max2 = value;
26
- }
27
- });
28
- return max2;
29
- };
30
- const extent = (columnId, _leafRows, childRows) => {
31
- let min2;
32
- let max2;
33
- childRows.forEach((row) => {
34
- const value = row.getValue(columnId);
35
- if (value != null) {
36
- if (min2 === void 0) {
37
- if (value >= value)
38
- min2 = max2 = value;
39
- } else {
40
- if (min2 > value)
41
- min2 = value;
42
- if (max2 < value)
43
- max2 = value;
44
- }
45
- }
46
- });
47
- return [min2, max2];
48
- };
49
- const mean = (columnId, leafRows) => {
50
- let count2 = 0;
51
- let sum2 = 0;
52
- leafRows.forEach((row) => {
53
- let value = row.getValue(columnId);
54
- if (value != null && (value = +value) >= value) {
55
- ++count2, sum2 += value;
56
- }
57
- });
58
- if (count2)
59
- return sum2 / count2;
60
- return;
61
- };
62
- const median = (columnId, leafRows) => {
63
- if (!leafRows.length) {
64
- return;
65
- }
66
- const values = leafRows.map((row) => row.getValue(columnId));
67
- if (!utils.isNumberArray(values)) {
68
- return;
69
- }
70
- if (values.length === 1) {
71
- return values[0];
72
- }
73
- const mid = Math.floor(values.length / 2);
74
- const nums = values.sort((a, b) => a - b);
75
- return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;
76
- };
77
- const unique = (columnId, leafRows) => {
78
- return Array.from(new Set(leafRows.map((d) => d.getValue(columnId))).values());
79
- };
80
- const uniqueCount = (columnId, leafRows) => {
81
- return new Set(leafRows.map((d) => d.getValue(columnId))).size;
82
- };
83
- const count = (_columnId, leafRows) => {
84
- return leafRows.length;
85
- };
86
- const aggregationFns = {
87
- sum,
88
- min,
89
- max,
90
- extent,
91
- mean,
92
- median,
93
- unique,
94
- uniqueCount,
95
- count
96
- };
97
- exports.aggregationFns = aggregationFns;
98
- //# sourceMappingURL=aggregationFns.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aggregationFns.cjs","sources":["../../src/aggregationFns.ts"],"sourcesContent":["import { AggregationFn } from './features/ColumnGrouping'\nimport { isNumberArray } from './utils'\n\nconst sum: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId)\n return sum + (typeof nextValue === 'number' ? nextValue : 0)\n }, 0)\n}\n\nconst min: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let min: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue<number>(columnId)\n\n if (\n value != null &&\n (min! > value || (min === undefined && value >= value))\n ) {\n min = value\n }\n })\n\n return min\n}\n\nconst max: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let max: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue<number>(columnId)\n if (\n value != null &&\n (max! < value || (max === undefined && value >= value))\n ) {\n max = value\n }\n })\n\n return max\n}\n\nconst extent: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let min: number | undefined\n let max: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue<number>(columnId)\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value\n } else {\n if (min > value) min = value\n if (max! < value) max = value\n }\n }\n })\n\n return [min, max]\n}\n\nconst mean: AggregationFn<any> = (columnId, leafRows) => {\n let count = 0\n let sum = 0\n\n leafRows.forEach(row => {\n let value = row.getValue<number>(columnId)\n if (value != null && (value = +value) >= value) {\n ++count, (sum += value)\n }\n })\n\n if (count) return sum / count\n\n return\n}\n\nconst median: AggregationFn<any> = (columnId, leafRows) => {\n if (!leafRows.length) {\n return\n }\n\n const values = leafRows.map(row => row.getValue(columnId))\n if (!isNumberArray(values)) {\n return\n }\n if (values.length === 1) {\n return values[0]\n }\n\n const mid = Math.floor(values.length / 2)\n const nums = values.sort((a, b) => a - b)\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1]! + nums[mid]!) / 2\n}\n\nconst unique: AggregationFn<any> = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values())\n}\n\nconst uniqueCount: AggregationFn<any> = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size\n}\n\nconst count: AggregationFn<any> = (_columnId, leafRows) => {\n return leafRows.length\n}\n\nexport const aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count,\n}\n\nexport type BuiltInAggregationFn = keyof typeof aggregationFns\n"],"names":["sum","min","max","count","isNumberArray"],"mappings":";;;AAGA,MAAM,MAA0B,CAAC,UAAU,WAAW,cAAc;AAGlE,SAAO,UAAU,OAAO,CAACA,MAAK,SAAS;AAC/B,UAAA,YAAY,KAAK,SAAS,QAAQ;AACxC,WAAOA,QAAO,OAAO,cAAc,WAAW,YAAY;AAAA,KACzD,CAAC;AACN;AAEA,MAAM,MAA0B,CAAC,UAAU,WAAW,cAAc;AAC9DC,MAAAA;AAEJ,YAAU,QAAQ,CAAO,QAAA;AACjB,UAAA,QAAQ,IAAI,SAAiB,QAAQ;AAE3C,QACE,SAAS,SACRA,OAAO,SAAUA,SAAQ,UAAa,SAAS,QAChD;AACAA,aAAM;AAAA,IACR;AAAA,EAAA,CACD;AAEMA,SAAAA;AACT;AAEA,MAAM,MAA0B,CAAC,UAAU,WAAW,cAAc;AAC9DC,MAAAA;AAEJ,YAAU,QAAQ,CAAO,QAAA;AACjB,UAAA,QAAQ,IAAI,SAAiB,QAAQ;AAC3C,QACE,SAAS,SACRA,OAAO,SAAUA,SAAQ,UAAa,SAAS,QAChD;AACAA,aAAM;AAAA,IACR;AAAA,EAAA,CACD;AAEMA,SAAAA;AACT;AAEA,MAAM,SAA6B,CAAC,UAAU,WAAW,cAAc;AACjED,MAAAA;AACAC,MAAAA;AAEJ,YAAU,QAAQ,CAAO,QAAA;AACjB,UAAA,QAAQ,IAAI,SAAiB,QAAQ;AAC3C,QAAI,SAAS,MAAM;AACjB,UAAID,SAAQ,QAAW;AACrB,YAAI,SAAS;AAAOA,iBAAMC,OAAM;AAAA,MAAA,OAC3B;AACL,YAAID,OAAM;AAAOA,iBAAM;AACvB,YAAIC,OAAO;AAAOA,iBAAM;AAAA,MAC1B;AAAA,IACF;AAAA,EAAA,CACD;AAEM,SAAA,CAACD,MAAKC,IAAG;AAClB;AAEA,MAAM,OAA2B,CAAC,UAAU,aAAa;AACvD,MAAIC,SAAQ;AACZ,MAAIH,OAAM;AAEV,WAAS,QAAQ,CAAO,QAAA;AAClB,QAAA,QAAQ,IAAI,SAAiB,QAAQ;AACzC,QAAI,SAAS,SAAS,QAAQ,CAAC,UAAU,OAAO;AAC9C,QAAEG,QAAQH,QAAO;AAAA,IACnB;AAAA,EAAA,CACD;AAEGG,MAAAA;AAAO,WAAOH,OAAMG;AAExB;AACF;AAEA,MAAM,SAA6B,CAAC,UAAU,aAAa;AACrD,MAAA,CAAC,SAAS,QAAQ;AACpB;AAAA,EACF;AAEA,QAAM,SAAS,SAAS,IAAI,SAAO,IAAI,SAAS,QAAQ,CAAC;AACrD,MAAA,CAACC,MAAAA,cAAc,MAAM,GAAG;AAC1B;AAAA,EACF;AACI,MAAA,OAAO,WAAW,GAAG;AACvB,WAAO,OAAO,CAAC;AAAA,EACjB;AAEA,QAAM,MAAM,KAAK,MAAM,OAAO,SAAS,CAAC;AACxC,QAAM,OAAO,OAAO,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AACxC,SAAO,OAAO,SAAS,MAAM,IAAI,KAAK,GAAG,KAAK,KAAK,MAAM,CAAC,IAAK,KAAK,GAAG,KAAM;AAC/E;AAEA,MAAM,SAA6B,CAAC,UAAU,aAAa;AACzD,SAAO,MAAM,KAAK,IAAI,IAAI,SAAS,IAAI,CAAA,MAAK,EAAE,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAQ,CAAA;AAC7E;AAEA,MAAM,cAAkC,CAAC,UAAU,aAAa;AACvD,SAAA,IAAI,IAAI,SAAS,IAAI,CAAA,MAAK,EAAE,SAAS,QAAQ,CAAC,CAAC,EAAE;AAC1D;AAEA,MAAM,QAA4B,CAAC,WAAW,aAAa;AACzD,SAAO,SAAS;AAClB;AAEO,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;"}
@@ -1,14 +0,0 @@
1
- import { AggregationFn } from './features/ColumnGrouping.cjs';
2
-
3
- export declare const aggregationFns: {
4
- sum: AggregationFn<any>;
5
- min: AggregationFn<any>;
6
- max: AggregationFn<any>;
7
- extent: AggregationFn<any>;
8
- mean: AggregationFn<any>;
9
- median: AggregationFn<any>;
10
- unique: AggregationFn<any>;
11
- uniqueCount: AggregationFn<any>;
12
- count: AggregationFn<any>;
13
- };
14
- export type BuiltInAggregationFn = keyof typeof aggregationFns;