react-native-chart-kit 7.0.0-next.1 → 7.0.0-next.2

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 (428) hide show
  1. package/README.md +8 -7
  2. package/dist/v2/core/data/index.d.ts +3 -0
  3. package/dist/v2/core/data/index.d.ts.map +1 -0
  4. package/dist/v2/core/data/index.js +1 -0
  5. package/dist/v2/core/data/normalize.d.ts +8 -0
  6. package/dist/v2/core/data/normalize.d.ts.map +1 -0
  7. package/dist/v2/core/data/normalize.js +229 -0
  8. package/dist/v2/core/data/normalizeValues.d.ts +16 -0
  9. package/dist/v2/core/data/normalizeValues.d.ts.map +1 -0
  10. package/dist/v2/core/data/normalizeValues.js +96 -0
  11. package/dist/v2/core/data/types.d.ts +161 -0
  12. package/dist/v2/core/data/types.d.ts.map +1 -0
  13. package/dist/v2/core/data/types.js +1 -0
  14. package/dist/v2/core/geometry/areaPath.d.ts +3 -0
  15. package/dist/v2/core/geometry/areaPath.d.ts.map +1 -0
  16. package/dist/v2/core/geometry/areaPath.js +36 -0
  17. package/dist/v2/core/geometry/barRects.d.ts +44 -0
  18. package/dist/v2/core/geometry/barRects.d.ts.map +1 -0
  19. package/dist/v2/core/geometry/barRects.js +201 -0
  20. package/dist/v2/core/geometry/contributionHeatmap.d.ts +49 -0
  21. package/dist/v2/core/geometry/contributionHeatmap.d.ts.map +1 -0
  22. package/dist/v2/core/geometry/contributionHeatmap.js +107 -0
  23. package/dist/v2/core/geometry/horizontalBarRects.d.ts +27 -0
  24. package/dist/v2/core/geometry/horizontalBarRects.d.ts.map +1 -0
  25. package/dist/v2/core/geometry/horizontalBarRects.js +202 -0
  26. package/dist/v2/core/geometry/index.d.ts +12 -0
  27. package/dist/v2/core/geometry/index.d.ts.map +1 -0
  28. package/dist/v2/core/geometry/index.js +11 -0
  29. package/dist/v2/core/geometry/lineDecimation.d.ts +8 -0
  30. package/dist/v2/core/geometry/lineDecimation.d.ts.map +1 -0
  31. package/dist/v2/core/geometry/lineDecimation.js +110 -0
  32. package/dist/v2/core/geometry/linePath.d.ts +5 -0
  33. package/dist/v2/core/geometry/linePath.d.ts.map +1 -0
  34. package/dist/v2/core/geometry/linePath.js +98 -0
  35. package/dist/v2/core/geometry/lineSeries.d.ts +29 -0
  36. package/dist/v2/core/geometry/lineSeries.d.ts.map +1 -0
  37. package/dist/v2/core/geometry/lineSeries.js +51 -0
  38. package/dist/v2/core/geometry/path.d.ts +6 -0
  39. package/dist/v2/core/geometry/path.d.ts.map +1 -0
  40. package/dist/v2/core/geometry/path.js +24 -0
  41. package/dist/v2/core/geometry/pieArcs.d.ts +29 -0
  42. package/dist/v2/core/geometry/pieArcs.d.ts.map +1 -0
  43. package/dist/v2/core/geometry/pieArcs.js +142 -0
  44. package/dist/v2/core/geometry/progressRings.d.ts +30 -0
  45. package/dist/v2/core/geometry/progressRings.d.ts.map +1 -0
  46. package/dist/v2/core/geometry/progressRings.js +104 -0
  47. package/dist/v2/core/geometry/types.d.ts +32 -0
  48. package/dist/v2/core/geometry/types.d.ts.map +1 -0
  49. package/dist/v2/core/geometry/types.js +1 -0
  50. package/dist/v2/core/index.d.ts +6 -0
  51. package/dist/v2/core/index.d.ts.map +1 -0
  52. package/dist/v2/core/index.js +6 -0
  53. package/dist/v2/core/interaction/index.d.ts +5 -0
  54. package/dist/v2/core/interaction/index.d.ts.map +1 -0
  55. package/dist/v2/core/interaction/index.js +2 -0
  56. package/dist/v2/core/interaction/viewport.d.ts +71 -0
  57. package/dist/v2/core/interaction/viewport.d.ts.map +1 -0
  58. package/dist/v2/core/interaction/viewport.js +216 -0
  59. package/dist/v2/core/interaction/viewportTransform.d.ts +17 -0
  60. package/dist/v2/core/interaction/viewportTransform.d.ts.map +1 -0
  61. package/dist/v2/core/interaction/viewportTransform.js +70 -0
  62. package/dist/v2/core/layout/autoPadding.d.ts +3 -0
  63. package/dist/v2/core/layout/autoPadding.d.ts.map +1 -0
  64. package/dist/v2/core/layout/autoPadding.js +33 -0
  65. package/dist/v2/core/layout/chartBox.d.ts +5 -0
  66. package/dist/v2/core/layout/chartBox.d.ts.map +1 -0
  67. package/dist/v2/core/layout/chartBox.js +22 -0
  68. package/dist/v2/core/layout/debugLayout.d.ts +3 -0
  69. package/dist/v2/core/layout/debugLayout.d.ts.map +1 -0
  70. package/dist/v2/core/layout/debugLayout.js +20 -0
  71. package/dist/v2/core/layout/index.d.ts +8 -0
  72. package/dist/v2/core/layout/index.d.ts.map +1 -0
  73. package/dist/v2/core/layout/index.js +6 -0
  74. package/dist/v2/core/layout/labelCollision.d.ts +3 -0
  75. package/dist/v2/core/layout/labelCollision.d.ts.map +1 -0
  76. package/dist/v2/core/layout/labelCollision.js +90 -0
  77. package/dist/v2/core/layout/legendLayout.d.ts +3 -0
  78. package/dist/v2/core/layout/legendLayout.d.ts.map +1 -0
  79. package/dist/v2/core/layout/legendLayout.js +39 -0
  80. package/dist/v2/core/layout/tooltipPlacement.d.ts +3 -0
  81. package/dist/v2/core/layout/tooltipPlacement.d.ts.map +1 -0
  82. package/dist/v2/core/layout/tooltipPlacement.js +76 -0
  83. package/dist/v2/core/layout/types.d.ts +114 -0
  84. package/dist/v2/core/layout/types.d.ts.map +1 -0
  85. package/dist/v2/core/layout/types.js +1 -0
  86. package/dist/v2/core/scales/band.d.ts +15 -0
  87. package/dist/v2/core/scales/band.d.ts.map +1 -0
  88. package/dist/v2/core/scales/band.js +34 -0
  89. package/dist/v2/core/scales/domain.d.ts +6 -0
  90. package/dist/v2/core/scales/domain.d.ts.map +1 -0
  91. package/dist/v2/core/scales/domain.js +109 -0
  92. package/dist/v2/core/scales/index.d.ts +7 -0
  93. package/dist/v2/core/scales/index.d.ts.map +1 -0
  94. package/dist/v2/core/scales/index.js +5 -0
  95. package/dist/v2/core/scales/linear.d.ts +8 -0
  96. package/dist/v2/core/scales/linear.d.ts.map +1 -0
  97. package/dist/v2/core/scales/linear.js +22 -0
  98. package/dist/v2/core/scales/ticks.d.ts +4 -0
  99. package/dist/v2/core/scales/ticks.d.ts.map +1 -0
  100. package/dist/v2/core/scales/ticks.js +111 -0
  101. package/dist/v2/core/scales/time.d.ts +8 -0
  102. package/dist/v2/core/scales/time.d.ts.map +1 -0
  103. package/dist/v2/core/scales/time.js +23 -0
  104. package/dist/v2/core/scales/types.d.ts +46 -0
  105. package/dist/v2/core/scales/types.d.ts.map +1 -0
  106. package/dist/v2/core/scales/types.js +1 -0
  107. package/dist/v2/index.d.ts +1 -0
  108. package/dist/v2/index.js +1 -0
  109. package/dist/v2/react-native/charts/bar/BarChart.d.ts +6 -0
  110. package/dist/v2/react-native/charts/bar/BarChart.d.ts.map +1 -0
  111. package/dist/v2/react-native/charts/bar/BarChart.js +198 -0
  112. package/dist/v2/react-native/charts/bar/BarChartSurface.d.ts +36 -0
  113. package/dist/v2/react-native/charts/bar/BarChartSurface.d.ts.map +1 -0
  114. package/dist/v2/react-native/charts/bar/BarChartSurface.js +126 -0
  115. package/dist/v2/react-native/charts/bar/StackedBarChart.d.ts +4 -0
  116. package/dist/v2/react-native/charts/bar/StackedBarChart.d.ts.map +1 -0
  117. package/dist/v2/react-native/charts/bar/StackedBarChart.js +9 -0
  118. package/dist/v2/react-native/charts/bar/accessibility.d.ts +31 -0
  119. package/dist/v2/react-native/charts/bar/accessibility.d.ts.map +1 -0
  120. package/dist/v2/react-native/charts/bar/accessibility.js +87 -0
  121. package/dist/v2/react-native/charts/bar/interaction.d.ts +18 -0
  122. package/dist/v2/react-native/charts/bar/interaction.d.ts.map +1 -0
  123. package/dist/v2/react-native/charts/bar/interaction.js +62 -0
  124. package/dist/v2/react-native/charts/bar/model.d.ts +3 -0
  125. package/dist/v2/react-native/charts/bar/model.d.ts.map +1 -0
  126. package/dist/v2/react-native/charts/bar/model.js +326 -0
  127. package/dist/v2/react-native/charts/bar/modelUtils.d.ts +27 -0
  128. package/dist/v2/react-native/charts/bar/modelUtils.d.ts.map +1 -0
  129. package/dist/v2/react-native/charts/bar/modelUtils.js +58 -0
  130. package/dist/v2/react-native/charts/bar/options.d.ts +7 -0
  131. package/dist/v2/react-native/charts/bar/options.d.ts.map +1 -0
  132. package/dist/v2/react-native/charts/bar/options.js +49 -0
  133. package/dist/v2/react-native/charts/bar/rendererSafety.d.ts +12 -0
  134. package/dist/v2/react-native/charts/bar/rendererSafety.d.ts.map +1 -0
  135. package/dist/v2/react-native/charts/bar/rendererSafety.js +31 -0
  136. package/dist/v2/react-native/charts/bar/selectionAnimation.d.ts +42 -0
  137. package/dist/v2/react-native/charts/bar/selectionAnimation.d.ts.map +1 -0
  138. package/dist/v2/react-native/charts/bar/selectionAnimation.js +158 -0
  139. package/dist/v2/react-native/charts/bar/stackedCompat.d.ts +55 -0
  140. package/dist/v2/react-native/charts/bar/stackedCompat.d.ts.map +1 -0
  141. package/dist/v2/react-native/charts/bar/stackedCompat.js +105 -0
  142. package/dist/v2/react-native/charts/bar/tooltip.d.ts +11 -0
  143. package/dist/v2/react-native/charts/bar/tooltip.d.ts.map +1 -0
  144. package/dist/v2/react-native/charts/bar/tooltip.js +15 -0
  145. package/dist/v2/react-native/charts/bar/tooltipModel.d.ts +33 -0
  146. package/dist/v2/react-native/charts/bar/tooltipModel.d.ts.map +1 -0
  147. package/dist/v2/react-native/charts/bar/tooltipModel.js +40 -0
  148. package/dist/v2/react-native/charts/bar/tooltipPlacement.d.ts +9 -0
  149. package/dist/v2/react-native/charts/bar/tooltipPlacement.d.ts.map +1 -0
  150. package/dist/v2/react-native/charts/bar/tooltipPlacement.js +9 -0
  151. package/dist/v2/react-native/charts/bar/types.d.ts +211 -0
  152. package/dist/v2/react-native/charts/bar/types.d.ts.map +1 -0
  153. package/dist/v2/react-native/charts/bar/types.js +1 -0
  154. package/dist/v2/react-native/charts/bar/useAnimatedTooltipModel.d.ts +10 -0
  155. package/dist/v2/react-native/charts/bar/useAnimatedTooltipModel.d.ts.map +1 -0
  156. package/dist/v2/react-native/charts/bar/useAnimatedTooltipModel.js +87 -0
  157. package/dist/v2/react-native/charts/bar/viewport.d.ts +20 -0
  158. package/dist/v2/react-native/charts/bar/viewport.d.ts.map +1 -0
  159. package/dist/v2/react-native/charts/bar/viewport.js +47 -0
  160. package/dist/v2/react-native/charts/contribution/ContributionGraph.d.ts +13 -0
  161. package/dist/v2/react-native/charts/contribution/ContributionGraph.d.ts.map +1 -0
  162. package/dist/v2/react-native/charts/contribution/ContributionGraph.js +65 -0
  163. package/dist/v2/react-native/charts/contribution/accessibility.d.ts +25 -0
  164. package/dist/v2/react-native/charts/contribution/accessibility.d.ts.map +1 -0
  165. package/dist/v2/react-native/charts/contribution/accessibility.js +50 -0
  166. package/dist/v2/react-native/charts/contribution/model.d.ts +17 -0
  167. package/dist/v2/react-native/charts/contribution/model.d.ts.map +1 -0
  168. package/dist/v2/react-native/charts/contribution/model.js +102 -0
  169. package/dist/v2/react-native/charts/contribution/types.d.ts +50 -0
  170. package/dist/v2/react-native/charts/contribution/types.d.ts.map +1 -0
  171. package/dist/v2/react-native/charts/contribution/types.js +1 -0
  172. package/dist/v2/react-native/charts/line/AreaChart.d.ts +3 -0
  173. package/dist/v2/react-native/charts/line/AreaChart.d.ts.map +1 -0
  174. package/dist/v2/react-native/charts/line/AreaChart.js +3 -0
  175. package/dist/v2/react-native/charts/line/ChartSurface.d.ts +16 -0
  176. package/dist/v2/react-native/charts/line/ChartSurface.d.ts.map +1 -0
  177. package/dist/v2/react-native/charts/line/ChartSurface.js +151 -0
  178. package/dist/v2/react-native/charts/line/LineChart.d.ts +6 -0
  179. package/dist/v2/react-native/charts/line/LineChart.d.ts.map +1 -0
  180. package/dist/v2/react-native/charts/line/LineChart.js +294 -0
  181. package/dist/v2/react-native/charts/line/StickyYAxis.d.ts +15 -0
  182. package/dist/v2/react-native/charts/line/StickyYAxis.d.ts.map +1 -0
  183. package/dist/v2/react-native/charts/line/StickyYAxis.js +26 -0
  184. package/dist/v2/react-native/charts/line/accessibility.d.ts +34 -0
  185. package/dist/v2/react-native/charts/line/accessibility.d.ts.map +1 -0
  186. package/dist/v2/react-native/charts/line/accessibility.js +103 -0
  187. package/dist/v2/react-native/charts/line/axisLabels.d.ts +37 -0
  188. package/dist/v2/react-native/charts/line/axisLabels.d.ts.map +1 -0
  189. package/dist/v2/react-native/charts/line/axisLabels.js +55 -0
  190. package/dist/v2/react-native/charts/line/debugLayout.d.ts +26 -0
  191. package/dist/v2/react-native/charts/line/debugLayout.d.ts.map +1 -0
  192. package/dist/v2/react-native/charts/line/debugLayout.js +77 -0
  193. package/dist/v2/react-native/charts/line/debugOverlay.d.ts +9 -0
  194. package/dist/v2/react-native/charts/line/debugOverlay.d.ts.map +1 -0
  195. package/dist/v2/react-native/charts/line/debugOverlay.js +30 -0
  196. package/dist/v2/react-native/charts/line/defaultTooltip.d.ts +3 -0
  197. package/dist/v2/react-native/charts/line/defaultTooltip.d.ts.map +1 -0
  198. package/dist/v2/react-native/charts/line/defaultTooltip.js +17 -0
  199. package/dist/v2/react-native/charts/line/interaction.d.ts +82 -0
  200. package/dist/v2/react-native/charts/line/interaction.d.ts.map +1 -0
  201. package/dist/v2/react-native/charts/line/interaction.js +94 -0
  202. package/dist/v2/react-native/charts/line/legend.d.ts +35 -0
  203. package/dist/v2/react-native/charts/line/legend.d.ts.map +1 -0
  204. package/dist/v2/react-native/charts/line/legend.js +95 -0
  205. package/dist/v2/react-native/charts/line/markers.d.ts +11 -0
  206. package/dist/v2/react-native/charts/line/markers.d.ts.map +1 -0
  207. package/dist/v2/react-native/charts/line/markers.js +52 -0
  208. package/dist/v2/react-native/charts/line/options.d.ts +172 -0
  209. package/dist/v2/react-native/charts/line/options.d.ts.map +1 -0
  210. package/dist/v2/react-native/charts/line/options.js +168 -0
  211. package/dist/v2/react-native/charts/line/outsidePressSurfaces.d.ts +15 -0
  212. package/dist/v2/react-native/charts/line/outsidePressSurfaces.d.ts.map +1 -0
  213. package/dist/v2/react-native/charts/line/outsidePressSurfaces.js +37 -0
  214. package/dist/v2/react-native/charts/line/overviewProps.d.ts +45 -0
  215. package/dist/v2/react-native/charts/line/overviewProps.d.ts.map +1 -0
  216. package/dist/v2/react-native/charts/line/overviewProps.js +4 -0
  217. package/dist/v2/react-native/charts/line/rangeSelector.d.ts +19 -0
  218. package/dist/v2/react-native/charts/line/rangeSelector.d.ts.map +1 -0
  219. package/dist/v2/react-native/charts/line/rangeSelector.js +176 -0
  220. package/dist/v2/react-native/charts/line/rangeSelectorConfig.d.ts +38 -0
  221. package/dist/v2/react-native/charts/line/rangeSelectorConfig.d.ts.map +1 -0
  222. package/dist/v2/react-native/charts/line/rangeSelectorConfig.js +41 -0
  223. package/dist/v2/react-native/charts/line/referenceLabelPlacement.d.ts +21 -0
  224. package/dist/v2/react-native/charts/line/referenceLabelPlacement.d.ts.map +1 -0
  225. package/dist/v2/react-native/charts/line/referenceLabelPlacement.js +113 -0
  226. package/dist/v2/react-native/charts/line/references.d.ts +62 -0
  227. package/dist/v2/react-native/charts/line/references.d.ts.map +1 -0
  228. package/dist/v2/react-native/charts/line/references.js +156 -0
  229. package/dist/v2/react-native/charts/line/renderer.d.ts +4 -0
  230. package/dist/v2/react-native/charts/line/renderer.d.ts.map +1 -0
  231. package/dist/v2/react-native/charts/line/renderer.js +23 -0
  232. package/dist/v2/react-native/charts/line/responders.d.ts +13 -0
  233. package/dist/v2/react-native/charts/line/responders.d.ts.map +1 -0
  234. package/dist/v2/react-native/charts/line/responders.js +59 -0
  235. package/dist/v2/react-native/charts/line/selection.d.ts +31 -0
  236. package/dist/v2/react-native/charts/line/selection.d.ts.map +1 -0
  237. package/dist/v2/react-native/charts/line/selection.js +26 -0
  238. package/dist/v2/react-native/charts/line/seriesInput.d.ts +4 -0
  239. package/dist/v2/react-native/charts/line/seriesInput.d.ts.map +1 -0
  240. package/dist/v2/react-native/charts/line/seriesInput.js +13 -0
  241. package/dist/v2/react-native/charts/line/seriesStyles.d.ts +20 -0
  242. package/dist/v2/react-native/charts/line/seriesStyles.d.ts.map +1 -0
  243. package/dist/v2/react-native/charts/line/seriesStyles.js +33 -0
  244. package/dist/v2/react-native/charts/line/stickyYAxisLayout.d.ts +6 -0
  245. package/dist/v2/react-native/charts/line/stickyYAxisLayout.d.ts.map +1 -0
  246. package/dist/v2/react-native/charts/line/stickyYAxisLayout.js +2 -0
  247. package/dist/v2/react-native/charts/line/text.d.ts +7 -0
  248. package/dist/v2/react-native/charts/line/text.d.ts.map +1 -0
  249. package/dist/v2/react-native/charts/line/text.js +7 -0
  250. package/dist/v2/react-native/charts/line/thresholdRendering.d.ts +28 -0
  251. package/dist/v2/react-native/charts/line/thresholdRendering.d.ts.map +1 -0
  252. package/dist/v2/react-native/charts/line/thresholdRendering.js +145 -0
  253. package/dist/v2/react-native/charts/line/tooltip.d.ts +70 -0
  254. package/dist/v2/react-native/charts/line/tooltip.d.ts.map +1 -0
  255. package/dist/v2/react-native/charts/line/tooltip.js +87 -0
  256. package/dist/v2/react-native/charts/line/types.d.ts +371 -0
  257. package/dist/v2/react-native/charts/line/types.d.ts.map +1 -0
  258. package/dist/v2/react-native/charts/line/types.js +1 -0
  259. package/dist/v2/react-native/charts/line/useAnimatedTooltipModel.d.ts +13 -0
  260. package/dist/v2/react-native/charts/line/useAnimatedTooltipModel.d.ts.map +1 -0
  261. package/dist/v2/react-native/charts/line/useAnimatedTooltipModel.js +84 -0
  262. package/dist/v2/react-native/charts/line/useAnimatedYAxisLabels.d.ts +5 -0
  263. package/dist/v2/react-native/charts/line/useAnimatedYAxisLabels.d.ts.map +1 -0
  264. package/dist/v2/react-native/charts/line/useAnimatedYAxisLabels.js +141 -0
  265. package/dist/v2/react-native/charts/line/useChartModel.d.ts +103 -0
  266. package/dist/v2/react-native/charts/line/useChartModel.d.ts.map +1 -0
  267. package/dist/v2/react-native/charts/line/useChartModel.js +367 -0
  268. package/dist/v2/react-native/charts/line/useDebugLayout.d.ts +16 -0
  269. package/dist/v2/react-native/charts/line/useDebugLayout.d.ts.map +1 -0
  270. package/dist/v2/react-native/charts/line/useDebugLayout.js +35 -0
  271. package/dist/v2/react-native/charts/line/utils.d.ts +10 -0
  272. package/dist/v2/react-native/charts/line/utils.d.ts.map +1 -0
  273. package/dist/v2/react-native/charts/line/utils.js +40 -0
  274. package/dist/v2/react-native/charts/line/viewportInteraction.d.ts +3 -0
  275. package/dist/v2/react-native/charts/line/viewportInteraction.d.ts.map +1 -0
  276. package/dist/v2/react-native/charts/line/viewportInteraction.js +1 -0
  277. package/dist/v2/react-native/charts/line/viewportInteractionConfig.d.ts +3 -0
  278. package/dist/v2/react-native/charts/line/viewportInteractionConfig.d.ts.map +1 -0
  279. package/dist/v2/react-native/charts/line/viewportInteractionConfig.js +1 -0
  280. package/dist/v2/react-native/charts/line/viewportPinchZoom.d.ts +2 -0
  281. package/dist/v2/react-native/charts/line/viewportPinchZoom.d.ts.map +1 -0
  282. package/dist/v2/react-native/charts/line/viewportPinchZoom.js +1 -0
  283. package/dist/v2/react-native/charts/line/xLabelCandidates.d.ts +13 -0
  284. package/dist/v2/react-native/charts/line/xLabelCandidates.d.ts.map +1 -0
  285. package/dist/v2/react-native/charts/line/xLabelCandidates.js +23 -0
  286. package/dist/v2/react-native/charts/line/xLabels.d.ts +39 -0
  287. package/dist/v2/react-native/charts/line/xLabels.d.ts.map +1 -0
  288. package/dist/v2/react-native/charts/line/xLabels.js +289 -0
  289. package/dist/v2/react-native/charts/line/xScale.d.ts +6 -0
  290. package/dist/v2/react-native/charts/line/xScale.d.ts.map +1 -0
  291. package/dist/v2/react-native/charts/line/xScale.js +25 -0
  292. package/dist/v2/react-native/charts/line/yAxisModel.d.ts +29 -0
  293. package/dist/v2/react-native/charts/line/yAxisModel.d.ts.map +1 -0
  294. package/dist/v2/react-native/charts/line/yAxisModel.js +39 -0
  295. package/dist/v2/react-native/charts/pie/PieChart.d.ts +7 -0
  296. package/dist/v2/react-native/charts/pie/PieChart.d.ts.map +1 -0
  297. package/dist/v2/react-native/charts/pie/PieChart.js +244 -0
  298. package/dist/v2/react-native/charts/pie/accessibility.d.ts +28 -0
  299. package/dist/v2/react-native/charts/pie/accessibility.d.ts.map +1 -0
  300. package/dist/v2/react-native/charts/pie/accessibility.js +49 -0
  301. package/dist/v2/react-native/charts/pie/activeSlice.d.ts +15 -0
  302. package/dist/v2/react-native/charts/pie/activeSlice.d.ts.map +1 -0
  303. package/dist/v2/react-native/charts/pie/activeSlice.js +26 -0
  304. package/dist/v2/react-native/charts/pie/arcLabels.d.ts +32 -0
  305. package/dist/v2/react-native/charts/pie/arcLabels.d.ts.map +1 -0
  306. package/dist/v2/react-native/charts/pie/arcLabels.js +191 -0
  307. package/dist/v2/react-native/charts/pie/interaction.d.ts +26 -0
  308. package/dist/v2/react-native/charts/pie/interaction.d.ts.map +1 -0
  309. package/dist/v2/react-native/charts/pie/interaction.js +66 -0
  310. package/dist/v2/react-native/charts/pie/model.d.ts +15 -0
  311. package/dist/v2/react-native/charts/pie/model.d.ts.map +1 -0
  312. package/dist/v2/react-native/charts/pie/model.js +157 -0
  313. package/dist/v2/react-native/charts/pie/selectionAnimation.d.ts +33 -0
  314. package/dist/v2/react-native/charts/pie/selectionAnimation.d.ts.map +1 -0
  315. package/dist/v2/react-native/charts/pie/selectionAnimation.js +121 -0
  316. package/dist/v2/react-native/charts/pie/sliceSeparator.d.ts +7 -0
  317. package/dist/v2/react-native/charts/pie/sliceSeparator.d.ts.map +1 -0
  318. package/dist/v2/react-native/charts/pie/sliceSeparator.js +26 -0
  319. package/dist/v2/react-native/charts/pie/slices.d.ts +20 -0
  320. package/dist/v2/react-native/charts/pie/slices.d.ts.map +1 -0
  321. package/dist/v2/react-native/charts/pie/slices.js +54 -0
  322. package/dist/v2/react-native/charts/pie/types.d.ts +165 -0
  323. package/dist/v2/react-native/charts/pie/types.d.ts.map +1 -0
  324. package/dist/v2/react-native/charts/pie/types.js +1 -0
  325. package/dist/v2/react-native/charts/progress/ProgressChart.d.ts +7 -0
  326. package/dist/v2/react-native/charts/progress/ProgressChart.d.ts.map +1 -0
  327. package/dist/v2/react-native/charts/progress/ProgressChart.js +111 -0
  328. package/dist/v2/react-native/charts/progress/accessibility.d.ts +26 -0
  329. package/dist/v2/react-native/charts/progress/accessibility.d.ts.map +1 -0
  330. package/dist/v2/react-native/charts/progress/accessibility.js +71 -0
  331. package/dist/v2/react-native/charts/progress/animation.d.ts +36 -0
  332. package/dist/v2/react-native/charts/progress/animation.d.ts.map +1 -0
  333. package/dist/v2/react-native/charts/progress/animation.js +103 -0
  334. package/dist/v2/react-native/charts/progress/model.d.ts +14 -0
  335. package/dist/v2/react-native/charts/progress/model.d.ts.map +1 -0
  336. package/dist/v2/react-native/charts/progress/model.js +133 -0
  337. package/dist/v2/react-native/charts/progress/types.d.ts +72 -0
  338. package/dist/v2/react-native/charts/progress/types.d.ts.map +1 -0
  339. package/dist/v2/react-native/charts/progress/types.js +1 -0
  340. package/dist/v2/react-native/index.d.ts +24 -0
  341. package/dist/v2/react-native/index.d.ts.map +1 -0
  342. package/dist/v2/react-native/index.js +14 -0
  343. package/dist/v2/react-native/selection/ChartSelectionProvider.d.ts +27 -0
  344. package/dist/v2/react-native/selection/ChartSelectionProvider.d.ts.map +1 -0
  345. package/dist/v2/react-native/selection/ChartSelectionProvider.js +92 -0
  346. package/dist/v2/react-native/selection/index.d.ts +2 -0
  347. package/dist/v2/react-native/selection/index.d.ts.map +1 -0
  348. package/dist/v2/react-native/selection/index.js +1 -0
  349. package/dist/v2/react-native/selection/scope.d.ts +16 -0
  350. package/dist/v2/react-native/selection/scope.d.ts.map +1 -0
  351. package/dist/v2/react-native/selection/scope.js +18 -0
  352. package/dist/v2/react-native/theme/index.d.ts +4 -0
  353. package/dist/v2/react-native/theme/index.d.ts.map +1 -0
  354. package/dist/v2/react-native/theme/index.js +2 -0
  355. package/dist/v2/react-native/theme/presets.d.ts +84 -0
  356. package/dist/v2/react-native/theme/presets.d.ts.map +1 -0
  357. package/dist/v2/react-native/theme/presets.js +298 -0
  358. package/dist/v2/react-native/theme/provider.d.ts +20 -0
  359. package/dist/v2/react-native/theme/provider.d.ts.map +1 -0
  360. package/dist/v2/react-native/theme/provider.js +27 -0
  361. package/dist/v2/react-native/viewport/bounds.d.ts +7 -0
  362. package/dist/v2/react-native/viewport/bounds.d.ts.map +1 -0
  363. package/dist/v2/react-native/viewport/bounds.js +7 -0
  364. package/dist/v2/react-native/viewport/config.d.ts +13 -0
  365. package/dist/v2/react-native/viewport/config.d.ts.map +1 -0
  366. package/dist/v2/react-native/viewport/config.js +64 -0
  367. package/dist/v2/react-native/viewport/pan.d.ts +23 -0
  368. package/dist/v2/react-native/viewport/pan.d.ts.map +1 -0
  369. package/dist/v2/react-native/viewport/pan.js +110 -0
  370. package/dist/v2/react-native/viewport/panResponder.d.ts +14 -0
  371. package/dist/v2/react-native/viewport/panResponder.d.ts.map +1 -0
  372. package/dist/v2/react-native/viewport/panResponder.js +115 -0
  373. package/dist/v2/react-native/viewport/pinchZoom.d.ts +17 -0
  374. package/dist/v2/react-native/viewport/pinchZoom.d.ts.map +1 -0
  375. package/dist/v2/react-native/viewport/pinchZoom.js +131 -0
  376. package/dist/v2/react-native/viewport/types.d.ts +55 -0
  377. package/dist/v2/react-native/viewport/types.d.ts.map +1 -0
  378. package/dist/v2/react-native/viewport/types.js +1 -0
  379. package/dist/v2/svg-renderer/capabilities.d.ts +3 -0
  380. package/dist/v2/svg-renderer/capabilities.d.ts.map +1 -0
  381. package/dist/v2/svg-renderer/capabilities.js +12 -0
  382. package/dist/v2/svg-renderer/clipPath.d.ts +4 -0
  383. package/dist/v2/svg-renderer/clipPath.d.ts.map +1 -0
  384. package/dist/v2/svg-renderer/clipPath.js +35 -0
  385. package/dist/v2/svg-renderer/defs.d.ts +6 -0
  386. package/dist/v2/svg-renderer/defs.d.ts.map +1 -0
  387. package/dist/v2/svg-renderer/defs.js +18 -0
  388. package/dist/v2/svg-renderer/ensureConsole.d.ts +4 -0
  389. package/dist/v2/svg-renderer/ensureConsole.d.ts.map +1 -0
  390. package/dist/v2/svg-renderer/ensureConsole.js +54 -0
  391. package/dist/v2/svg-renderer/hitRegions.d.ts +3 -0
  392. package/dist/v2/svg-renderer/hitRegions.d.ts.map +1 -0
  393. package/dist/v2/svg-renderer/hitRegions.js +6 -0
  394. package/dist/v2/svg-renderer/index.d.ts +14 -0
  395. package/dist/v2/svg-renderer/index.d.ts.map +1 -0
  396. package/dist/v2/svg-renderer/index.js +13 -0
  397. package/dist/v2/svg-renderer/layerOrder.d.ts +19 -0
  398. package/dist/v2/svg-renderer/layerOrder.d.ts.map +1 -0
  399. package/dist/v2/svg-renderer/layerOrder.js +18 -0
  400. package/dist/v2/svg-renderer/layers.d.ts +3 -0
  401. package/dist/v2/svg-renderer/layers.d.ts.map +1 -0
  402. package/dist/v2/svg-renderer/layers.js +4 -0
  403. package/dist/v2/svg-renderer/primitives.d.ts +12 -0
  404. package/dist/v2/svg-renderer/primitives.d.ts.map +1 -0
  405. package/dist/v2/svg-renderer/primitives.js +13 -0
  406. package/dist/v2/svg-renderer/renderer.d.ts +4 -0
  407. package/dist/v2/svg-renderer/renderer.d.ts.map +1 -0
  408. package/dist/v2/svg-renderer/renderer.js +24 -0
  409. package/dist/v2/svg-renderer/symbolGeometry.d.ts +6 -0
  410. package/dist/v2/svg-renderer/symbolGeometry.d.ts.map +1 -0
  411. package/dist/v2/svg-renderer/symbolGeometry.js +10 -0
  412. package/dist/v2/svg-renderer/symbols.d.ts +3 -0
  413. package/dist/v2/svg-renderer/symbols.d.ts.map +1 -0
  414. package/dist/v2/svg-renderer/symbols.js +23 -0
  415. package/dist/v2/svg-renderer/testIds.d.ts +2 -0
  416. package/dist/v2/svg-renderer/testIds.d.ts.map +1 -0
  417. package/dist/v2/svg-renderer/testIds.js +10 -0
  418. package/dist/v2/svg-renderer/textMeasurement.d.ts +4 -0
  419. package/dist/v2/svg-renderer/textMeasurement.d.ts.map +1 -0
  420. package/dist/v2/svg-renderer/textMeasurement.js +37 -0
  421. package/dist/v2/svg-renderer/types.d.ts +134 -0
  422. package/dist/v2/svg-renderer/types.d.ts.map +1 -0
  423. package/dist/v2/svg-renderer/types.js +1 -0
  424. package/package.json +39 -48
  425. package/v2/index.d.ts +1 -0
  426. package/v2/index.js +1 -0
  427. package/v2/package.json +6 -0
  428. package/scripts/chartkit-codemod.mjs +0 -256
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAnimatedYAxisLabels.d.ts","sourceRoot":"","sources":["../../../src/charts/line/useAnimatedYAxisLabels.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC9B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAmGtD,eAAO,MAAM,sBAAsB,GACjC,QAAQ,wBAAwB,EAAE,EAClC,YAAY,OAAO,GAAG,iCAAiC,+BAyFxD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3E,OAAO,cAAc,CAAC,KAAK,CAAC,EAC5B,YAAY,OAAO,GAAG,iCAAiC,+BAmBxD,CAAC"}
@@ -0,0 +1,141 @@
1
+ import { useEffect, useMemo, useRef, useState } from "react";
2
+ import { buildLineChartYAxisLabels, resolveLineChartAxisLabelAnimationConfig } from "./axisLabels";
3
+ const axisLabelPositionThreshold = 0.5;
4
+ const axisLabelOpacityThreshold = 0.01;
5
+ const getAxisLabelSignature = (labels) => labels
6
+ .map((label) => `${label.key}:${label.text}:${label.y.toFixed(2)}`)
7
+ .join("|");
8
+ const interpolateValue = (from, to, progress) => from + (to - from) * progress;
9
+ const easeAxisLabelTransition = (progress) => {
10
+ const clampedProgress = Math.min(Math.max(progress, 0), 1);
11
+ return 1 - Math.pow(1 - clampedProgress, 3);
12
+ };
13
+ const getInterpolatedLabels = ({ from, progress, to }) => {
14
+ const fromByKey = new Map(from.map((label) => [label.key, label]));
15
+ const toByKey = new Map(to.map((label) => [label.key, label]));
16
+ const orderedKeys = [
17
+ ...to.map((label) => label.key),
18
+ ...from.map((label) => label.key).filter((key) => !toByKey.has(key))
19
+ ];
20
+ return orderedKeys
21
+ .map((key) => {
22
+ const fromLabel = fromByKey.get(key);
23
+ const toLabel = toByKey.get(key);
24
+ if (fromLabel && toLabel) {
25
+ return {
26
+ ...toLabel,
27
+ y: interpolateValue(fromLabel.y, toLabel.y, progress),
28
+ opacity: interpolateValue(fromLabel.opacity, toLabel.opacity, progress)
29
+ };
30
+ }
31
+ if (toLabel) {
32
+ return {
33
+ ...toLabel,
34
+ opacity: progress
35
+ };
36
+ }
37
+ if (fromLabel) {
38
+ return {
39
+ ...fromLabel,
40
+ opacity: interpolateValue(fromLabel.opacity, 0, progress)
41
+ };
42
+ }
43
+ return undefined;
44
+ })
45
+ .filter((label) => label !== undefined && label.opacity > axisLabelOpacityThreshold);
46
+ };
47
+ const hasMeaningfulAxisLabelDelta = ({ from, to }) => {
48
+ if (from.length !== to.length) {
49
+ return true;
50
+ }
51
+ return to.some((label, index) => {
52
+ const previousLabel = from[index];
53
+ return (!previousLabel ||
54
+ previousLabel.key !== label.key ||
55
+ previousLabel.text !== label.text ||
56
+ Math.abs(previousLabel.y - label.y) > axisLabelPositionThreshold ||
57
+ Math.abs(previousLabel.opacity - label.opacity) >
58
+ axisLabelOpacityThreshold);
59
+ });
60
+ };
61
+ export const useAnimatedYAxisLabels = (labels, animation) => {
62
+ const resolvedAnimation = useMemo(() => resolveLineChartAxisLabelAnimationConfig(animation), [animation]);
63
+ const latestLabelsRef = useRef(labels);
64
+ const hasInitialLabelsRef = useRef(false);
65
+ const [animatedLabels, setAnimatedLabels] = useState(labels);
66
+ useEffect(() => {
67
+ let animationFrame = 0;
68
+ const targetLabels = labels;
69
+ const currentLabels = latestLabelsRef.current;
70
+ const targetSignature = getAxisLabelSignature(targetLabels);
71
+ const currentSignature = getAxisLabelSignature(currentLabels);
72
+ if (!hasInitialLabelsRef.current) {
73
+ hasInitialLabelsRef.current = true;
74
+ latestLabelsRef.current = targetLabels;
75
+ setAnimatedLabels(targetLabels);
76
+ return () => {
77
+ cancelAnimationFrame(animationFrame);
78
+ };
79
+ }
80
+ if (currentSignature === targetSignature ||
81
+ !hasMeaningfulAxisLabelDelta({ from: currentLabels, to: targetLabels })) {
82
+ latestLabelsRef.current = targetLabels;
83
+ return () => {
84
+ cancelAnimationFrame(animationFrame);
85
+ };
86
+ }
87
+ if (!resolvedAnimation.enabled || resolvedAnimation.duration <= 0) {
88
+ latestLabelsRef.current = targetLabels;
89
+ animationFrame = requestAnimationFrame(() => {
90
+ setAnimatedLabels(targetLabels);
91
+ });
92
+ return () => {
93
+ cancelAnimationFrame(animationFrame);
94
+ };
95
+ }
96
+ let startTime;
97
+ const tick = (timestamp) => {
98
+ startTime ?? (startTime = timestamp);
99
+ const progress = Math.min((timestamp - startTime) / resolvedAnimation.duration, 1);
100
+ const easedProgress = easeAxisLabelTransition(progress);
101
+ const nextLabels = getInterpolatedLabels({
102
+ from: currentLabels,
103
+ progress: easedProgress,
104
+ to: targetLabels
105
+ });
106
+ latestLabelsRef.current = nextLabels;
107
+ setAnimatedLabels(nextLabels);
108
+ if (progress < 1) {
109
+ animationFrame = requestAnimationFrame(tick);
110
+ }
111
+ else {
112
+ latestLabelsRef.current = targetLabels;
113
+ setAnimatedLabels(targetLabels);
114
+ }
115
+ };
116
+ animationFrame = requestAnimationFrame(tick);
117
+ return () => {
118
+ cancelAnimationFrame(animationFrame);
119
+ };
120
+ }, [
121
+ labels,
122
+ resolvedAnimation.duration,
123
+ resolvedAnimation.enabled,
124
+ resolvedAnimation.strategy
125
+ ]);
126
+ return animatedLabels;
127
+ };
128
+ export const useLineChartYAxisLabels = (model, animation) => {
129
+ const labels = useMemo(() => buildLineChartYAxisLabels({
130
+ formatYLabel: model.formatYLabel,
131
+ labelOffset: model.resolvedTheme.typography.axisLabelSize * 0.36,
132
+ ticks: model.yTicks,
133
+ yScale: model.yScale
134
+ }), [
135
+ model.formatYLabel,
136
+ model.resolvedTheme.typography.axisLabelSize,
137
+ model.yScale,
138
+ model.yTicks
139
+ ]);
140
+ return useAnimatedYAxisLabels(labels, animation);
141
+ };
@@ -0,0 +1,103 @@
1
+ import { type ChartKitThemeContextValue } from "../../theme";
2
+ import type { LineChartProps, LineChartSelectionModel } from "./types";
3
+ import { type LineChartInteractionPoint } from "./interaction";
4
+ export declare const useChartModel: <TData extends Record<string, unknown>>({ data, xKey, yKey, yKeys, series, width, height, theme, preset, decimation, curve, connectNulls, area, areaFill, showDots, dots, selectedIndex, activeDot, crosshair, tooltip, referenceBands, referenceLines, showHorizontalGridLines, showVerticalGridLines, legend, labelStrategy, labelRotation, labelMinGap, edgeLabelPolicy, yDomain, yAxisLabelWidth, formatXLabel, formatYLabel, chartKitTheme, dataIndexOffset, selectionPointer, stableYAxisData }: LineChartProps<TData> & {
5
+ chartKitTheme: ChartKitThemeContextValue;
6
+ dataIndexOffset?: number;
7
+ selectionPointer?: {
8
+ index: number;
9
+ x: number;
10
+ y: number;
11
+ } | undefined;
12
+ stableYAxisData?: TData[] | undefined;
13
+ }) => {
14
+ boxes: import("../../../core/index").ChartBoxes;
15
+ geometries: {
16
+ style: {
17
+ strokeWidth: number;
18
+ strokeStyle: import("./options").ResolvedLineChartStrokeStyle;
19
+ dot: import("./options").ResolvedLineChartDotConfig;
20
+ color: string;
21
+ areaFill: import("./options").ResolvedLineChartAreaFillConfig;
22
+ threshold: import("./options").ResolvedLineChartThresholdStyle | undefined;
23
+ };
24
+ geometry: import("../../../core/index").LineSeriesGeometry<TData>;
25
+ }[];
26
+ interactionPoints: LineChartInteractionPoint<TData>[];
27
+ legendModel: {
28
+ config: import("./types").ResolvedLineChartLegendConfig;
29
+ renderProps: {
30
+ x: number;
31
+ y: number;
32
+ width: number;
33
+ height: number;
34
+ position: import("./types").LineChartLegendPosition;
35
+ align: import("./types").LineChartLegendAlign;
36
+ theme: import("../../theme").ResolvedCartesianChartTheme;
37
+ items: ({
38
+ labelColor: string;
39
+ labelGap: number;
40
+ paddingHorizontal: number;
41
+ paddingVertical: number;
42
+ strokeDasharray: readonly number[] | undefined;
43
+ strokeLinecap: import("./options").LineChartStrokeLinecap;
44
+ strokeOpacity: number;
45
+ strokeWidth: number;
46
+ fontFamily: string;
47
+ index: number;
48
+ key: string;
49
+ label: string;
50
+ color: string;
51
+ x: number;
52
+ y: number;
53
+ width: number;
54
+ height: number;
55
+ contentX: number;
56
+ contentY: number;
57
+ contentWidth: number;
58
+ contentHeight: number;
59
+ markerSize: number;
60
+ marker: import("./types").LineChartLegendMarker;
61
+ fontSize: number;
62
+ } | {
63
+ labelColor: string;
64
+ labelGap: number;
65
+ paddingHorizontal: number;
66
+ paddingVertical: number;
67
+ strokeDasharray: readonly number[] | undefined;
68
+ strokeLinecap: import("./options").LineChartStrokeLinecap;
69
+ strokeOpacity: number;
70
+ strokeWidth: number;
71
+ fontFamily?: never;
72
+ index: number;
73
+ key: string;
74
+ label: string;
75
+ color: string;
76
+ x: number;
77
+ y: number;
78
+ width: number;
79
+ height: number;
80
+ contentX: number;
81
+ contentY: number;
82
+ contentWidth: number;
83
+ contentHeight: number;
84
+ markerSize: number;
85
+ marker: import("./types").LineChartLegendMarker;
86
+ fontSize: number;
87
+ })[];
88
+ };
89
+ } | undefined;
90
+ referenceBandModels: import("./references").LineChartReferenceBandModel[];
91
+ referenceLineModels: import("./references").LineChartReferenceLineModel[];
92
+ resolvedTheme: import("../../theme").ResolvedCartesianChartTheme;
93
+ showHorizontalGridLines: boolean;
94
+ showVerticalGridLines: boolean;
95
+ crosshairConfig: import("./options").ResolvedLineChartCrosshairConfig;
96
+ selectionModel: LineChartSelectionModel<TData> | undefined;
97
+ xLabelLayout: import("./xLabels").XLabelLayout;
98
+ yScale: import("../../../core/index").LinearScale;
99
+ yTicks: number[];
100
+ formatYLabel: (value: number) => string;
101
+ };
102
+ export type LineChartModel<TData extends Record<string, unknown>> = ReturnType<typeof useChartModel<TData>>;
103
+ //# sourceMappingURL=useChartModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChartModel.d.ts","sourceRoot":"","sources":["../../../src/charts/line/useChartModel.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,aAAa,CAAC;AAwBrB,OAAO,KAAK,EAGV,cAAc,EAEd,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAajB,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AAMvB,eAAO,MAAM,aAAa,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,+bAsClE,cAAc,CAAC,KAAK,CAAC,GAAG;IACzB,aAAa,EAAE,yBAAyB,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACvE,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;CACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkYA,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,UAAU,CAC5E,OAAO,aAAa,CAAC,KAAK,CAAC,CAC5B,CAAC"}
@@ -0,0 +1,367 @@
1
+ import { useMemo } from "react";
2
+ import { buildLineSeriesGeometry, calculateAutoPadding, createLinearScale, solveChartBoxes } from "../../../core/index";
3
+ import { resolveCartesianChartThemeConfig } from "../../theme";
4
+ import { getLineChartAreaFillConfig, getLineChartCrosshairConfig, getLineChartDotConfig, getLineChartStrokeStyle, getLineChartTooltipConfig, resolveLineChartDecimationConfig } from "./options";
5
+ import { buildLineChartSeriesStyleMap } from "./seriesStyles";
6
+ import { resolveLineChartYAxisModel } from "./yAxisModel";
7
+ import { getSelectedLineSeries } from "./selection";
8
+ import { getLineChartTooltipModel } from "./tooltip";
9
+ import { buildLegendLayout, getLegendConfig, getLegendX, getLegendY } from "./legend";
10
+ import { buildLineChartReferenceBandModels, buildLineChartReferenceLineModels } from "./references";
11
+ import { getFontFamilyProps, measureLineChartText } from "./text";
12
+ import { defaultLabelRotation, getMaxSize, resolveXLabelLayout, xLabelBaselineOffset } from "./xLabels";
13
+ import { buildXLabelCandidates } from "./xLabelCandidates";
14
+ import { defaultFormatXLabel, defaultFormatYLabel, getSeriesColor } from "./utils";
15
+ import { normalizeLineChartSelectedIndex } from "./interaction";
16
+ import { useSeriesInput } from "./seriesInput";
17
+ import { buildLineChartXScale } from "./xScale";
18
+ const defaultYDomain = { includeZero: true, nice: true };
19
+ export const useChartModel = ({ data, xKey, yKey, yKeys, series, width, height, theme, preset, decimation = "auto", curve = "linear", connectNulls = false, area = false, areaFill, showDots = true, dots, selectedIndex, activeDot, crosshair, tooltip, referenceBands, referenceLines, showHorizontalGridLines = false, showVerticalGridLines = false, legend, labelStrategy = "auto", labelRotation = defaultLabelRotation, labelMinGap = 8, edgeLabelPolicy = "shift", yDomain = defaultYDomain, yAxisLabelWidth, formatXLabel = defaultFormatXLabel, formatYLabel = defaultFormatYLabel, chartKitTheme, dataIndexOffset = 0, selectionPointer, stableYAxisData }) => {
20
+ const seriesInput = useSeriesInput(yKey, yKeys, series);
21
+ return useMemo(() => {
22
+ const resolvedTheme = resolveCartesianChartThemeConfig({
23
+ mode: typeof theme === "string" && theme !== "system"
24
+ ? theme
25
+ : chartKitTheme.mode,
26
+ preset: preset ?? chartKitTheme.preset,
27
+ presets: chartKitTheme.presets,
28
+ theme: typeof theme === "object" ? theme : chartKitTheme.theme
29
+ });
30
+ const axisTextOptions = {
31
+ fontSize: resolvedTheme.typography.axisLabelSize,
32
+ ...getFontFamilyProps(resolvedTheme.typography.fontFamily)
33
+ };
34
+ const { normalized, yDomainResolved, yLabelSizes, yTicks } = resolveLineChartYAxisModel({
35
+ data,
36
+ formatYLabel,
37
+ measureText: measureLineChartText,
38
+ series: seriesInput,
39
+ stableData: stableYAxisData,
40
+ textOptions: axisTextOptions,
41
+ xKey,
42
+ yAxisLabelWidth,
43
+ yDomain
44
+ });
45
+ const legendConfig = getLegendConfig(legend, normalized.series.length, resolvedTheme);
46
+ const xValues = normalized.series[0]?.points.map((point) => point.x) ?? [];
47
+ const xLabelTexts = xValues.map((value, index) => formatXLabel(value, index + dataIndexOffset));
48
+ const xLabelSizes = xLabelTexts.map((text) => measureLineChartText(text, axisTextOptions));
49
+ const styleByKey = buildLineChartSeriesStyleMap({
50
+ areaFill,
51
+ dots,
52
+ resolvedTheme,
53
+ seriesInput,
54
+ showDots
55
+ });
56
+ const legendLayout = legendConfig.visible
57
+ ? buildLegendLayout({
58
+ config: legendConfig,
59
+ items: normalized.series.map((item) => ({
60
+ id: item.key,
61
+ label: item.label
62
+ })),
63
+ maxWidth: width,
64
+ measureText: measureLineChartText
65
+ })
66
+ : undefined;
67
+ const baseAutoPaddingOptions = {
68
+ base: { top: 16, right: 18, bottom: 12, left: 10 },
69
+ leftLabels: yLabelSizes,
70
+ gap: 8
71
+ };
72
+ const withLegendPaddingOptions = (bottomLabelHeight) => legendLayout
73
+ ? {
74
+ ...baseAutoPaddingOptions,
75
+ bottomLabels: bottomLabelHeight > 0
76
+ ? [{ width: 1, height: bottomLabelHeight }]
77
+ : [],
78
+ legend: {
79
+ width: Math.min(width - 32, legendLayout.width),
80
+ height: legendLayout.height,
81
+ position: legendLayout.position
82
+ }
83
+ }
84
+ : {
85
+ ...baseAutoPaddingOptions,
86
+ bottomLabels: bottomLabelHeight > 0
87
+ ? [{ width: 1, height: bottomLabelHeight }]
88
+ : []
89
+ };
90
+ const initialPadding = calculateAutoPadding(withLegendPaddingOptions(getMaxSize(xLabelSizes).height));
91
+ const initialBoxes = solveChartBoxes({ width, height }, initialPadding);
92
+ const initialXScale = buildLineChartXScale({
93
+ boxes: initialBoxes,
94
+ xValues
95
+ });
96
+ const initialXLabelLayout = resolveXLabelLayout({
97
+ candidates: buildXLabelCandidates({
98
+ dataIndexOffset,
99
+ labelStrategy,
100
+ series: normalized.series[0],
101
+ xLabelSizes,
102
+ xLabelTexts,
103
+ xScale: initialXScale,
104
+ xValues
105
+ }),
106
+ plotWidth: initialBoxes.plot.width,
107
+ chartWidth: width,
108
+ strategy: labelStrategy,
109
+ rotation: labelRotation,
110
+ edgeLabelPolicy,
111
+ minGap: labelMinGap,
112
+ baseY: initialBoxes.plot.y + initialBoxes.plot.height + xLabelBaselineOffset
113
+ });
114
+ const padding = calculateAutoPadding(withLegendPaddingOptions(initialXLabelLayout.height));
115
+ const boxes = solveChartBoxes({ width, height }, padding);
116
+ const yScale = createLinearScale({
117
+ domain: yDomainResolved,
118
+ range: [boxes.plot.y + boxes.plot.height, boxes.plot.y]
119
+ });
120
+ const referenceBandModels = buildLineChartReferenceBandModels({
121
+ bands: referenceBands,
122
+ plot: boxes.plot,
123
+ theme: resolvedTheme,
124
+ yScale
125
+ });
126
+ const xScale = buildLineChartXScale({ boxes, xValues });
127
+ const pathDecimation = resolveLineChartDecimationConfig({
128
+ decimation,
129
+ plotWidth: boxes.plot.width
130
+ });
131
+ const baselineValue = yDomainResolved[0] < 0 && yDomainResolved[1] > 0 ? 0 : yDomainResolved[0];
132
+ const baselineY = yScale.scale(baselineValue);
133
+ const geometries = normalized.series.map((item, index) => {
134
+ const style = styleByKey.get(item.key);
135
+ const wantsArea = style?.area ?? area;
136
+ const color = item.color ?? style?.color ?? getSeriesColor(resolvedTheme, index);
137
+ return {
138
+ style: {
139
+ strokeWidth: style?.strokeWidth ?? 3,
140
+ strokeStyle: style?.strokeStyle ?? getLineChartStrokeStyle(),
141
+ dot: style?.dot ??
142
+ getLineChartDotConfig({
143
+ dots,
144
+ seriesDot: undefined,
145
+ showDots
146
+ }),
147
+ color,
148
+ areaFill: style?.areaFill ??
149
+ getLineChartAreaFillConfig({ areaFill, seriesColor: color }),
150
+ threshold: style?.threshold
151
+ },
152
+ geometry: buildLineSeriesGeometry({
153
+ series: item,
154
+ xScale,
155
+ yScale: (value) => yScale.scale(value),
156
+ curve: style?.curve ?? curve,
157
+ connectNulls,
158
+ dataIndexOffset,
159
+ pathDecimation,
160
+ ...(wantsArea ? { areaBaselineY: baselineY } : {})
161
+ })
162
+ };
163
+ });
164
+ const referenceLineModels = buildLineChartReferenceLineModels({
165
+ geometries: geometries.map(({ geometry }) => geometry),
166
+ lines: referenceLines,
167
+ plot: boxes.plot,
168
+ theme: resolvedTheme,
169
+ yScale
170
+ });
171
+ const interactionPoints = geometries[0]?.geometry.points.flatMap((point) => {
172
+ if (!Number.isFinite(point.x)) {
173
+ return [];
174
+ }
175
+ const dataIndex = point.dataIndex;
176
+ const xLabel = xLabelTexts[dataIndex - dataIndexOffset] ?? String(point.xValue);
177
+ const interactionPoint = {
178
+ dataIndex,
179
+ x: point.x,
180
+ xValue: point.xValue,
181
+ xLabel
182
+ };
183
+ return point.raw !== undefined
184
+ ? [{ ...interactionPoint, raw: point.raw }]
185
+ : [interactionPoint];
186
+ }) ?? [];
187
+ const xLabelLayout = resolveXLabelLayout({
188
+ candidates: buildXLabelCandidates({
189
+ dataIndexOffset,
190
+ labelStrategy,
191
+ series: normalized.series[0],
192
+ xLabelSizes,
193
+ xLabelTexts,
194
+ xScale,
195
+ xValues
196
+ }),
197
+ plotWidth: boxes.plot.width,
198
+ chartWidth: width,
199
+ strategy: labelStrategy,
200
+ rotation: labelRotation,
201
+ edgeLabelPolicy,
202
+ minGap: labelMinGap,
203
+ baseY: boxes.plot.y + boxes.plot.height + xLabelBaselineOffset
204
+ });
205
+ const crosshairConfig = getLineChartCrosshairConfig({
206
+ crosshair,
207
+ themeAxisColor: resolvedTheme.axis
208
+ });
209
+ const tooltipConfig = getLineChartTooltipConfig({
210
+ tooltip,
211
+ themeFontFamily: resolvedTheme.typography.fontFamily,
212
+ themeTooltip: resolvedTheme.tooltip
213
+ });
214
+ const roundedSelectedIndex = normalizeLineChartSelectedIndex(selectedIndex);
215
+ const selectedDataIndex = roundedSelectedIndex !== undefined &&
216
+ roundedSelectedIndex >= dataIndexOffset &&
217
+ roundedSelectedIndex < dataIndexOffset + xValues.length
218
+ ? roundedSelectedIndex
219
+ : undefined;
220
+ const selectedSeries = getSelectedLineSeries({
221
+ activeDot,
222
+ formatYLabel,
223
+ geometries,
224
+ selectedDataIndex
225
+ });
226
+ const selectionBase = selectedDataIndex !== undefined && selectedSeries.length > 0
227
+ ? {
228
+ index: selectedDataIndex,
229
+ x: selectedSeries[0].point.x,
230
+ y: Math.min(...selectedSeries.map((item) => item.point.y)),
231
+ xLabel: xLabelTexts[selectedDataIndex - dataIndexOffset] ??
232
+ String(selectedDataIndex),
233
+ series: selectedSeries
234
+ }
235
+ : undefined;
236
+ const selectionModel = selectionBase
237
+ ? {
238
+ ...selectionBase,
239
+ tooltip: getLineChartTooltipModel({
240
+ chartHeight: height,
241
+ chartWidth: width,
242
+ config: tooltipConfig,
243
+ measureText: measureLineChartText,
244
+ plotX: boxes.plot.x,
245
+ plotY: boxes.plot.y,
246
+ selection: selectionPointer?.index === selectionBase.index
247
+ ? { ...selectionBase, pointer: selectionPointer }
248
+ : selectionBase,
249
+ theme: resolvedTheme
250
+ })
251
+ }
252
+ : undefined;
253
+ const legendOrigin = legendLayout && legendLayout.items.length > 0
254
+ ? {
255
+ x: getLegendX({
256
+ align: legendConfig.align,
257
+ boxes,
258
+ legendWidth: legendLayout.width,
259
+ width
260
+ }),
261
+ y: getLegendY({
262
+ boxes,
263
+ xLabelHeight: xLabelLayout.height,
264
+ xLabelLineHeight: getMaxSize(xLabelSizes).height,
265
+ legendHeight: legendLayout.height,
266
+ position: legendConfig.position
267
+ })
268
+ }
269
+ : undefined;
270
+ const legendModel = legendLayout && legendOrigin
271
+ ? {
272
+ config: legendConfig,
273
+ renderProps: {
274
+ x: legendOrigin.x,
275
+ y: legendOrigin.y,
276
+ width: legendLayout.width,
277
+ height: legendLayout.height,
278
+ position: legendConfig.position,
279
+ align: legendConfig.align,
280
+ theme: resolvedTheme,
281
+ items: legendLayout.items.map((item, index) => {
282
+ const style = styleByKey.get(item.id);
283
+ return {
284
+ index,
285
+ key: item.id,
286
+ label: item.label,
287
+ color: style?.color ?? getSeriesColor(resolvedTheme, index),
288
+ x: legendOrigin.x + item.x,
289
+ y: legendOrigin.y + item.y,
290
+ width: item.width,
291
+ height: item.height,
292
+ contentX: legendOrigin.x + item.contentX,
293
+ contentY: legendOrigin.y + item.contentY,
294
+ contentWidth: item.contentWidth,
295
+ contentHeight: item.contentHeight,
296
+ markerSize: item.markerSize ?? legendConfig.markerSize,
297
+ marker: legendConfig.marker,
298
+ fontSize: legendConfig.fontSize,
299
+ ...getFontFamilyProps(legendConfig.fontFamily),
300
+ labelColor: legendConfig.labelColor,
301
+ labelGap: legendConfig.labelGap,
302
+ paddingHorizontal: legendConfig.itemPaddingHorizontal,
303
+ paddingVertical: legendConfig.itemPaddingVertical,
304
+ strokeDasharray: style?.strokeStyle.strokeDasharray,
305
+ strokeLinecap: style?.strokeStyle.strokeLinecap ?? "round",
306
+ strokeOpacity: style?.strokeStyle.strokeOpacity ?? 1,
307
+ strokeWidth: style?.strokeWidth ?? 3
308
+ };
309
+ })
310
+ }
311
+ }
312
+ : undefined;
313
+ return {
314
+ boxes,
315
+ geometries,
316
+ interactionPoints,
317
+ legendModel,
318
+ referenceBandModels,
319
+ referenceLineModels,
320
+ resolvedTheme,
321
+ showHorizontalGridLines,
322
+ showVerticalGridLines,
323
+ crosshairConfig,
324
+ selectionModel,
325
+ xLabelLayout,
326
+ yScale,
327
+ yTicks,
328
+ formatYLabel
329
+ };
330
+ }, [
331
+ area,
332
+ areaFill,
333
+ activeDot,
334
+ connectNulls,
335
+ crosshair,
336
+ curve,
337
+ data,
338
+ decimation,
339
+ dataIndexOffset,
340
+ dots,
341
+ formatXLabel,
342
+ formatYLabel,
343
+ height,
344
+ edgeLabelPolicy,
345
+ labelMinGap,
346
+ labelRotation,
347
+ labelStrategy,
348
+ legend,
349
+ referenceBands,
350
+ referenceLines,
351
+ selectedIndex,
352
+ selectionPointer,
353
+ seriesInput,
354
+ showDots,
355
+ showHorizontalGridLines,
356
+ showVerticalGridLines,
357
+ stableYAxisData,
358
+ theme,
359
+ preset,
360
+ chartKitTheme,
361
+ tooltip,
362
+ width,
363
+ xKey,
364
+ yAxisLabelWidth,
365
+ yDomain
366
+ ]);
367
+ };
@@ -0,0 +1,16 @@
1
+ import type { LayoutDebugModel } from "../../../core/index";
2
+ import type { LineChartYAxisLabelModel } from "./axisLabels";
3
+ import type { LineChartModel } from "./useChartModel";
4
+ export declare const useLineChartDebugLayout: <TData extends Record<string, unknown>>({ enabled, model, onLayoutDebug, tooltip, yAxisLabels }: {
5
+ enabled: boolean;
6
+ model: LineChartModel<TData>;
7
+ onLayoutDebug?: ((model: LayoutDebugModel) => void) | undefined;
8
+ tooltip?: {
9
+ height: number;
10
+ width: number;
11
+ x: number;
12
+ y: number;
13
+ } | undefined;
14
+ yAxisLabels: LineChartYAxisLabelModel[];
15
+ }) => LayoutDebugModel | undefined;
16
+ //# sourceMappingURL=useDebugLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebugLayout.d.ts","sourceRoot":"","sources":["../../../src/charts/line/useDebugLayout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAO,MAAM,uBAAuB,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,yDAM5E;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAChE,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9E,WAAW,EAAE,wBAAwB,EAAE,CAAC;CACzC,iCAkDA,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { useEffect, useMemo } from "react";
2
+ import { buildLineChartDebugLayoutModel } from "./debugLayout";
3
+ import { getFontFamilyProps, measureLineChartText } from "./text";
4
+ export const useLineChartDebugLayout = ({ enabled, model, onLayoutDebug, tooltip, yAxisLabels }) => {
5
+ const { boxes, legendModel, resolvedTheme, xLabelLayout } = model;
6
+ const debugLayoutModel = useMemo(() => enabled
7
+ ? buildLineChartDebugLayoutModel({
8
+ boxes,
9
+ legendItems: legendModel?.renderProps.items,
10
+ measureYLabel: (text) => measureLineChartText(text, {
11
+ fontSize: resolvedTheme.typography.axisLabelSize,
12
+ ...getFontFamilyProps(resolvedTheme.typography.fontFamily)
13
+ }),
14
+ tooltip,
15
+ xLabels: xLabelLayout.items,
16
+ yAxisLabelFontSize: resolvedTheme.typography.axisLabelSize,
17
+ yLabels: yAxisLabels
18
+ })
19
+ : undefined, [
20
+ boxes,
21
+ enabled,
22
+ legendModel,
23
+ resolvedTheme.typography.axisLabelSize,
24
+ resolvedTheme.typography.fontFamily,
25
+ tooltip,
26
+ xLabelLayout.items,
27
+ yAxisLabels
28
+ ]);
29
+ useEffect(() => {
30
+ if (debugLayoutModel) {
31
+ onLayoutDebug?.(debugLayoutModel);
32
+ }
33
+ }, [debugLayoutModel, onLayoutDebug]);
34
+ return debugLayoutModel;
35
+ };