react-native-chart-kit 7.0.0-next.0 → 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 +17 -0
  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 +46 -47
  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,102 @@
1
+ import { buildContributionHeatmap, normalizeLegacyContributionData } from "../../../core/index";
2
+ import { resolveCartesianChartThemeConfig } from "../../theme/presets";
3
+ const defaultCellSize = 12;
4
+ const defaultGutterSize = 3;
5
+ const defaultMonthLabels = [
6
+ "Jan",
7
+ "Feb",
8
+ "Mar",
9
+ "Apr",
10
+ "May",
11
+ "Jun",
12
+ "Jul",
13
+ "Aug",
14
+ "Sep",
15
+ "Oct",
16
+ "Nov",
17
+ "Dec"
18
+ ];
19
+ const defaultWeekdayLabels = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
20
+ const clamp = (value, min, max) => {
21
+ if (max < min) {
22
+ return min;
23
+ }
24
+ return Math.min(Math.max(value, min), max);
25
+ };
26
+ const getDefaultCellOpacity = ({ cell, valueMax }) => {
27
+ if (!cell.defined ||
28
+ cell.value === null ||
29
+ cell.value <= 0 ||
30
+ valueMax <= 0) {
31
+ return 0.22;
32
+ }
33
+ return 0.28 + clamp(cell.value / valueMax, 0, 1) * 0.72;
34
+ };
35
+ const getDefaultCellFill = ({ cell, colors, emptyColor, theme, valueMax }) => {
36
+ if (!cell.defined ||
37
+ cell.value === null ||
38
+ cell.value <= 0 ||
39
+ valueMax <= 0) {
40
+ return emptyColor;
41
+ }
42
+ if (colors && colors.length > 0) {
43
+ const level = clamp(Math.ceil((cell.value / valueMax) * colors.length) - 1, 0, colors.length - 1);
44
+ return (colors[level] ??
45
+ colors[colors.length - 1] ??
46
+ theme.series[0] ??
47
+ theme.text);
48
+ }
49
+ return theme.series[0] ?? theme.text;
50
+ };
51
+ export const getContributionGraphMonthLabel = (monthIndex, date, formatter) => formatter?.(monthIndex, date) ?? defaultMonthLabels[monthIndex] ?? "";
52
+ export const getContributionGraphWeekdayLabel = (dayIndex, formatter) => formatter?.(dayIndex) ?? defaultWeekdayLabels[dayIndex] ?? "";
53
+ export const buildContributionGraphModel = ({ chartKitTheme, props }) => {
54
+ const { accessor = "count", cellSize = defaultCellSize, colorForValue, colors, emptyColor, endDate, gutterSize = defaultGutterSize, numDays, preset, showOutOfRangeDays, theme, values, weekStartsOn } = props;
55
+ const resolvedTheme = resolveCartesianChartThemeConfig({
56
+ mode: typeof theme === "string" && theme !== "system"
57
+ ? theme
58
+ : chartKitTheme.mode,
59
+ preset: preset ?? chartKitTheme.preset,
60
+ presets: chartKitTheme.presets,
61
+ theme: typeof theme === "object" ? theme : chartKitTheme.theme
62
+ });
63
+ const normalized = normalizeLegacyContributionData(values, {
64
+ accessor,
65
+ endDate,
66
+ numDays
67
+ });
68
+ const heatmap = buildContributionHeatmap({
69
+ data: normalized,
70
+ cellSize,
71
+ gutterSize,
72
+ weekStartsOn,
73
+ showOutOfRangeDays
74
+ });
75
+ const resolvedEmptyColor = emptyColor ?? resolvedTheme.grid;
76
+ const cells = heatmap.cells.map((cell) => {
77
+ const renderProps = {
78
+ cell,
79
+ valueMin: heatmap.valueMin,
80
+ valueMax: heatmap.valueMax,
81
+ theme: resolvedTheme
82
+ };
83
+ const fill = colorForValue?.(renderProps) ??
84
+ getDefaultCellFill({
85
+ ...renderProps,
86
+ colors,
87
+ emptyColor: resolvedEmptyColor
88
+ });
89
+ return {
90
+ ...cell,
91
+ fill,
92
+ opacity: colorForValue || colors
93
+ ? 1
94
+ : getDefaultCellOpacity({ cell, valueMax: heatmap.valueMax })
95
+ };
96
+ });
97
+ return {
98
+ ...heatmap,
99
+ cells,
100
+ resolvedTheme
101
+ };
102
+ };
@@ -0,0 +1,50 @@
1
+ import type { ContributionHeatmapCell, ContributionHeatmapModel, LegacyContributionValue } from "../../../core/index";
2
+ import type { CartesianChartPresetValue, CartesianChartTheme, ResolvedCartesianChartTheme } from "../../theme";
3
+ import type { LineChartRenderer } from "../line/types";
4
+ export type ContributionGraphRenderer = LineChartRenderer;
5
+ export type ContributionGraphDayPressEvent<TData = LegacyContributionValue> = {
6
+ index: number;
7
+ date: Date;
8
+ value: number | null;
9
+ raw?: TData;
10
+ };
11
+ export type ContributionGraphColorRenderProps<TData = LegacyContributionValue> = {
12
+ cell: ContributionHeatmapCell<TData>;
13
+ valueMin: number;
14
+ valueMax: number;
15
+ theme: ResolvedCartesianChartTheme;
16
+ };
17
+ export type ContributionGraphCellModel<TData = LegacyContributionValue> = ContributionHeatmapCell<TData> & {
18
+ fill: string;
19
+ opacity: number;
20
+ };
21
+ export type ContributionGraphProps<TData extends LegacyContributionValue = LegacyContributionValue> = {
22
+ values: TData[];
23
+ endDate: string | number | Date;
24
+ numDays: number;
25
+ width: number;
26
+ height: number;
27
+ accessor?: keyof TData & string;
28
+ cellSize?: number;
29
+ gutterSize?: number;
30
+ weekStartsOn?: number;
31
+ showMonthLabels?: boolean;
32
+ showWeekdayLabels?: boolean;
33
+ showOutOfRangeDays?: boolean;
34
+ theme?: "light" | "dark" | "system" | CartesianChartTheme;
35
+ preset?: CartesianChartPresetValue;
36
+ colors?: string[];
37
+ emptyColor?: string;
38
+ colorForValue?: (props: ContributionGraphColorRenderProps<TData>) => string;
39
+ getMonthLabel?: (monthIndex: number, date: Date) => string;
40
+ getWeekdayLabel?: (dayIndex: number) => string;
41
+ onDayPress?: (event: ContributionGraphDayPressEvent<TData>) => void;
42
+ renderer?: ContributionGraphRenderer;
43
+ accessibilityLabel?: string;
44
+ testID?: string;
45
+ };
46
+ export type ContributionGraphModel<TData = LegacyContributionValue> = Omit<ContributionHeatmapModel<TData>, "cells"> & {
47
+ cells: Array<ContributionGraphCellModel<TData>>;
48
+ resolvedTheme: ResolvedCartesianChartTheme;
49
+ };
50
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/charts/contribution/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;AAE1D,MAAM,MAAM,8BAA8B,CAAC,KAAK,GAAG,uBAAuB,IAAI;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,CAAC,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,iCAAiC,CAAC,KAAK,GAAG,uBAAuB,IAC3E;IACE,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,2BAA2B,CAAC;CACpC,CAAC;AAEJ,MAAM,MAAM,0BAA0B,CAAC,KAAK,GAAG,uBAAuB,IACpE,uBAAuB,CAAC,KAAK,CAAC,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEJ,MAAM,MAAM,sBAAsB,CAChC,KAAK,SAAS,uBAAuB,GAAG,uBAAuB,IAC7D;IACF,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,mBAAmB,CAAC;IAC1D,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,iCAAiC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC;IAC5E,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IAC3D,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,8BAA8B,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,KAAK,GAAG,uBAAuB,IAAI,IAAI,CACxE,wBAAwB,CAAC,KAAK,CAAC,EAC/B,OAAO,CACR,GAAG;IACF,KAAK,EAAE,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,aAAa,EAAE,2BAA2B,CAAC;CAC5C,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { LineChartProps } from "./types";
2
+ export declare const AreaChart: <TData extends Record<string, unknown>>(props: LineChartProps<TData>) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=AreaChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaChart.d.ts","sourceRoot":"","sources":["../../../src/charts/line/AreaChart.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,SAAS,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,OAAO,cAAc,CAAC,KAAK,CAAC,4CACI,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { LineChart } from "./LineChart";
3
+ export const AreaChart = (props) => _jsx(LineChart, { ...props, area: true });
@@ -0,0 +1,16 @@
1
+ import { type ViewProps } from "react-native";
2
+ import type { LineChartModel } from "./useChartModel";
3
+ import type { LineChartProps, LineChartRenderer, LineChartYAxisLabelModel } from "./types";
4
+ export declare const LineChartSurface: <TData extends Record<string, unknown>>({ animatedTooltip, chartId, chartWidth, isScrollable, mainHeight, model, props, renderer: rendererProp, responderProps, yAxisLabels }: {
5
+ animatedTooltip: NonNullable<LineChartModel<TData>["selectionModel"]>["tooltip"];
6
+ chartWidth: number;
7
+ chartId: string;
8
+ isScrollable: boolean;
9
+ mainHeight: number;
10
+ model: LineChartModel<TData>;
11
+ props: LineChartProps<TData>;
12
+ renderer?: LineChartRenderer | undefined;
13
+ responderProps: ViewProps;
14
+ yAxisLabels: LineChartYAxisLabelModel[];
15
+ }) => import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=ChartSurface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartSurface.d.ts","sourceRoot":"","sources":["../../../src/charts/line/ChartSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAcpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAEV,cAAc,EACd,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAkBjB,eAAO,MAAM,gBAAgB,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,uIAWrE;IACD,eAAe,EAAE,WAAW,CAC1B,cAAc,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,CACxC,CAAC,SAAS,CAAC,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,cAAc,EAAE,SAAS,CAAC;IAC1B,WAAW,EAAE,wBAAwB,EAAE,CAAC;CACzC,4CAwZA,CAAC"}
@@ -0,0 +1,151 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { View } from "react-native";
3
+ import { renderDefaultTooltip } from "./defaultTooltip";
4
+ import { renderLineChartDebugLayout } from "./debugOverlay";
5
+ import { renderConfiguredLegend } from "./legend";
6
+ import { renderDefaultDot } from "./markers";
7
+ import { getLineChartRenderer } from "./renderer";
8
+ import { getFontFamilyProps, measureLineChartText } from "./text";
9
+ import { getLineChartAreaGradientId, LineChartAreaPaths, LineChartLinePaths, LineChartThresholdClipDefs } from "./thresholdRendering";
10
+ import { useLineChartDebugLayout } from "./useDebugLayout";
11
+ export const LineChartSurface = ({ animatedTooltip, chartId, chartWidth, isScrollable, mainHeight, model, props, renderer: rendererProp, responderProps, yAxisLabels }) => {
12
+ const { boxes, geometries, legendModel, referenceBandModels, referenceLineModels, resolvedTheme, showHorizontalGridLines, showVerticalGridLines, crosshairConfig, selectionModel, xLabelLayout, yScale, yTicks } = model;
13
+ const { debugLayout, onLayoutDebug } = props;
14
+ const debugLayoutModel = useLineChartDebugLayout({
15
+ enabled: Boolean(debugLayout || onLayoutDebug),
16
+ model,
17
+ onLayoutDebug,
18
+ tooltip: animatedTooltip,
19
+ yAxisLabels
20
+ });
21
+ const renderer = getLineChartRenderer(rendererProp);
22
+ const { Defs, Group, Line, Rect, Surface, Text } = renderer;
23
+ const Layer = renderer.Layer ?? Group;
24
+ const LinearGradient = renderer.LinearGradient;
25
+ const canRenderText = renderer.capabilities?.text !== false;
26
+ const supportsGradientDefs = renderer.capabilities?.gradients !== false &&
27
+ renderer.capabilities?.pathGradients !== true &&
28
+ Boolean(LinearGradient);
29
+ const renderReferenceLabel = (key, label) => {
30
+ const fontFamilyProps = getFontFamilyProps(resolvedTheme.typography.fontFamily);
31
+ if (!label.container) {
32
+ return (_jsx(Text, { x: label.x, y: label.y, fill: label.color, fontSize: label.fontSize, textAnchor: label.textAnchor, ...fontFamilyProps, children: label.text }, key));
33
+ }
34
+ const labelSize = measureLineChartText(label.text, {
35
+ fontFamily: resolvedTheme.typography.fontFamily,
36
+ fontSize: label.fontSize
37
+ });
38
+ const backgroundWidth = labelSize.width + label.container.paddingX * 2;
39
+ const backgroundHeight = labelSize.height + label.container.paddingY * 2;
40
+ const backgroundX = label.textAnchor === "end"
41
+ ? label.x - backgroundWidth
42
+ : label.textAnchor === "middle"
43
+ ? label.x - backgroundWidth / 2
44
+ : label.x;
45
+ const backgroundY = label.y - labelSize.height + 2 - label.container.paddingY;
46
+ const textX = backgroundX + backgroundWidth / 2;
47
+ return (_jsxs(Group, { children: [_jsx(Rect, { x: backgroundX, y: backgroundY, width: backgroundWidth, height: backgroundHeight, rx: label.container.borderRadius, fill: label.container.backgroundColor, opacity: label.container.opacity }), _jsx(Text, { x: textX, y: label.y, fill: label.color, fontSize: label.fontSize, textAnchor: "middle", ...fontFamilyProps, children: label.text })] }, key));
48
+ };
49
+ return (_jsx(View, { collapsable: false, style: { width: chartWidth, height: mainHeight }, ...responderProps, children: _jsxs(Surface, { width: chartWidth, height: mainHeight, children: [_jsx(Layer, { name: "background", children: _jsx(Rect, { x: 0, y: 0, width: chartWidth, height: mainHeight, rx: 8, fill: resolvedTheme.background }) }), _jsx(Layer, { name: "plot", children: _jsx(Rect, { x: boxes.plot.x, y: boxes.plot.y, width: boxes.plot.width, height: boxes.plot.height, rx: 6, fill: resolvedTheme.plotBackground }) }), _jsxs(Defs, { children: [supportsGradientDefs && LinearGradient
50
+ ? geometries.map(({ style }, index) => (_jsx(LinearGradient, { id: getLineChartAreaGradientId(chartId, index), x1: "0%", x2: "0%", y1: "0%", y2: "100%", stops: [
51
+ {
52
+ offset: "0%",
53
+ color: style.areaFill.fromColor,
54
+ opacity: style.areaFill.fromOpacity
55
+ },
56
+ {
57
+ offset: "100%",
58
+ color: style.areaFill.toColor,
59
+ opacity: style.areaFill.toOpacity
60
+ }
61
+ ] }, `area-gradient-${index}`)))
62
+ : null, _jsx(LineChartThresholdClipDefs, { chartId: chartId, geometries: geometries, plot: boxes.plot, renderer: renderer, yScale: yScale })] }), _jsxs(Layer, { name: "grid", children: [showVerticalGridLines
63
+ ? xLabelLayout.items.map((label) => (_jsx(Line, { x1: label.gridX, x2: label.gridX, y1: boxes.plot.y, y2: boxes.plot.y + boxes.plot.height, stroke: resolvedTheme.grid, strokeOpacity: 0.72, strokeWidth: 1 }, `grid-x-${label.index}`)))
64
+ : null, showHorizontalGridLines
65
+ ? yTicks.map((tick) => {
66
+ const y = yScale.scale(tick);
67
+ return (_jsx(Line, { x1: boxes.plot.x, x2: boxes.plot.x + boxes.plot.width, y1: y, y2: y, stroke: resolvedTheme.grid, strokeOpacity: 0.78, strokeWidth: 1 }, `grid-y-${tick}`));
68
+ })
69
+ : null] }), _jsxs(Layer, { name: "axes", children: [yAxisLabels.map((label) => {
70
+ if (isScrollable || !canRenderText) {
71
+ return null;
72
+ }
73
+ return (_jsx(Text, { x: boxes.plot.x - 8, y: label.y, fill: resolvedTheme.mutedText, fontSize: resolvedTheme.typography.axisLabelSize, opacity: label.opacity, textAnchor: "end", ...getFontFamilyProps(resolvedTheme.typography.fontFamily), children: label.text }, `label-y-${label.key}`));
74
+ }), canRenderText
75
+ ? xLabelLayout.items.map((label) => (_jsx(Group, { transform: label.rotation !== 0
76
+ ? `rotate(${label.rotation} ${label.x} ${label.y})`
77
+ : undefined, children: _jsx(Text, { x: label.x, y: label.y, fill: resolvedTheme.mutedText, fontSize: resolvedTheme.typography.axisLabelSize, textAnchor: label.textAnchor, ...getFontFamilyProps(resolvedTheme.typography.fontFamily), children: label.text }) }, `label-x-${label.index}`)))
78
+ : null] }), _jsx(Layer, { name: "referenceBands", children: referenceBandModels.map((band) => (_jsx(Rect, { x: band.x, y: band.y, width: band.width, height: band.height, fill: band.color, opacity: band.opacity }, band.key))) }), _jsx(Layer, { name: "referenceLines", children: referenceLineModels.map((line) => (_jsx(Line, { x1: line.x1, x2: line.x2, y1: line.y, y2: line.y, stroke: line.color, strokeOpacity: line.opacity, strokeWidth: line.strokeWidth, ...(line.strokeDasharray
79
+ ? { strokeDasharray: line.strokeDasharray }
80
+ : {}) }, line.key))) }), _jsx(Layer, { name: "dataArea", children: _jsx(LineChartAreaPaths, { chartId: chartId, geometries: geometries, plot: boxes.plot, renderer: renderer, yScale: yScale }) }), _jsx(Layer, { name: "data", children: _jsx(LineChartLinePaths, { chartId: chartId, geometries: geometries, plot: boxes.plot, renderer: renderer, yScale: yScale }) }), _jsx(Layer, { name: "markers", children: geometries.flatMap(({ geometry, style }) => geometry.points
81
+ .filter((point) => point.defined && style.dot.visible)
82
+ .map((point) => {
83
+ const dotProps = {
84
+ point,
85
+ seriesKey: geometry.key,
86
+ seriesLabel: geometry.label,
87
+ color: style.color,
88
+ x: point.x,
89
+ y: point.y,
90
+ value: point.value,
91
+ dataIndex: point.dataIndex,
92
+ config: style.dot,
93
+ theme: resolvedTheme
94
+ };
95
+ const renderedDot = props.renderDot
96
+ ? props.renderDot(dotProps)
97
+ : renderDefaultDot(dotProps, renderer);
98
+ return renderedDot ? (_jsx(Group, { children: renderedDot }, `dot-${geometry.key}-${point.index}`)) : null;
99
+ })) }), _jsxs(Layer, { name: "referenceLabels", children: [referenceBandModels.map((band) => band.label && canRenderText
100
+ ? renderReferenceLabel(`${band.key}-label`, band.label)
101
+ : null), referenceLineModels.map((line) => line.label && canRenderText
102
+ ? renderReferenceLabel(`${line.key}-label`, line.label)
103
+ : null)] }), _jsxs(Layer, { name: "overlays", children: [selectionModel && crosshairConfig.visible ? (props.renderCrosshair ? (props.renderCrosshair({
104
+ chartHeight: mainHeight,
105
+ chartWidth,
106
+ config: crosshairConfig,
107
+ plot: boxes.plot,
108
+ series: selectionModel.series,
109
+ theme: resolvedTheme,
110
+ x: selectionModel.x,
111
+ xLabel: selectionModel.xLabel,
112
+ y: selectionModel.y
113
+ })) : (_jsx(Line, { x1: selectionModel.x, x2: selectionModel.x, y1: boxes.plot.y, y2: boxes.plot.y + boxes.plot.height, stroke: crosshairConfig.color, strokeOpacity: crosshairConfig.opacity, strokeWidth: crosshairConfig.strokeWidth, ...(crosshairConfig.strokeDasharray
114
+ ? { strokeDasharray: crosshairConfig.strokeDasharray }
115
+ : {}) }, "selection-crosshair"))) : null, legendModel
116
+ ? renderConfiguredLegend({
117
+ legend: legendModel.renderProps,
118
+ config: legendModel.config,
119
+ renderer
120
+ })
121
+ : null] }), _jsxs(Layer, { name: "interaction", children: [selectionModel
122
+ ? selectionModel.series
123
+ .filter((item) => item.activeDot.visible)
124
+ .map((item) => {
125
+ const dotProps = {
126
+ point: item.point,
127
+ seriesKey: item.key,
128
+ seriesLabel: item.label,
129
+ color: item.color,
130
+ x: item.point.x,
131
+ y: item.point.y,
132
+ value: item.value,
133
+ dataIndex: item.point.dataIndex,
134
+ config: item.activeDot,
135
+ theme: resolvedTheme
136
+ };
137
+ const renderedDot = props.renderActiveDot
138
+ ? props.renderActiveDot(dotProps)
139
+ : renderDefaultDot(dotProps, renderer);
140
+ return renderedDot ? (_jsx(Group, { children: renderedDot }, `active-dot-${item.key}`)) : null;
141
+ })
142
+ : null, animatedTooltip
143
+ ? props.renderTooltip
144
+ ? props.renderTooltip(animatedTooltip)
145
+ : renderDefaultTooltip(animatedTooltip, renderer)
146
+ : null] }), debugLayout && debugLayoutModel ? (_jsx(Layer, { name: "debug", children: renderLineChartDebugLayout({
147
+ fontFamily: resolvedTheme.typography.fontFamily,
148
+ model: debugLayoutModel,
149
+ renderer
150
+ }) })) : null] }) }));
151
+ };
@@ -0,0 +1,6 @@
1
+ import type { LineChartProps } from "./types";
2
+ export type * from "./types";
3
+ export { getLineChartAccessibilitySummary, getLineChartDataTable } from "./accessibility";
4
+ export type { LineChartDataTable, LineChartDataTableColumn, LineChartDataTableRow } from "./accessibility";
5
+ export declare const LineChart: <TData extends Record<string, unknown>>(props: LineChartProps<TData>) => import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=LineChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../src/charts/line/LineChart.tsx"],"names":[],"mappings":"AAsDA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EACL,gCAAgC,EAChC,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,SAAS,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,OAAO,cAAc,CAAC,KAAK,CAAC,4CA6Z7B,CAAC"}
@@ -0,0 +1,294 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useId, useMemo, useRef, useState } from "react";
3
+ import { ScrollView, StyleSheet, View } from "react-native";
4
+ import { resolveChartViewport, resolveChartViewportInitialOffset, resolveChartViewportWindow, sliceChartViewportData } from "../../../core/index";
5
+ import { useChartKitTheme } from "../../theme";
6
+ import { useLineChartAccessibilityLabel } from "./accessibility";
7
+ import { LineChartSurface } from "./ChartSurface";
8
+ import { StickyYAxis } from "./StickyYAxis";
9
+ import { buildLineChartSelectEvent, getLineChartInteractionConfig, getLineChartVisibleInteractionBounds, getNearestLineChartInteractionIndex, isLineChartInteractionEnabled, isLineChartInteractionInBounds, normalizeLineChartSelectedIndex } from "./interaction";
10
+ import { getSelectedLineSeries } from "./selection";
11
+ import { getLineChartOutsidePressSurfaces } from "./outsidePressSurfaces";
12
+ import { getLineChartOverviewProps } from "./overviewProps";
13
+ import { useLineChartResponderProps } from "./responders";
14
+ import { getStickyYAxisFadeOpacity } from "./stickyYAxisLayout";
15
+ import { LineChartRangeSelector } from "./rangeSelector";
16
+ import { getRangeSelectorConfig } from "./rangeSelectorConfig";
17
+ import { useAnimatedTooltipModel } from "./useAnimatedTooltipModel";
18
+ import { useLineChartYAxisLabels } from "./useAnimatedYAxisLabels";
19
+ import { useChartModel } from "./useChartModel";
20
+ import { useLineChartViewportPan } from "./viewportInteraction";
21
+ import { LineChartViewportGesture, useLineChartViewportPinchZoom } from "./viewportPinchZoom";
22
+ import { clampLineChartTooltipToViewport } from "./tooltip";
23
+ import { useScopedChartSelection } from "../../selection/ChartSelectionProvider";
24
+ export { getLineChartAccessibilitySummary, getLineChartDataTable } from "./accessibility";
25
+ export const LineChart = (props) => {
26
+ const chartId = useId().replace(/:/g, "");
27
+ const scopedChartId = props.id ?? chartId;
28
+ const chartKitTheme = useChartKitTheme();
29
+ const renderer = props.renderer ?? chartKitTheme.renderer;
30
+ const dataLength = props.data.length;
31
+ const accessibilityLabel = useLineChartAccessibilityLabel(props);
32
+ const scrollViewRef = useRef(null);
33
+ const interactionConfig = useMemo(() => getLineChartInteractionConfig(props.interaction), [props.interaction]);
34
+ const [gestureSelectedIndex, setGestureSelectedIndex] = useState(() => normalizeLineChartSelectedIndex(props.defaultSelectedIndex));
35
+ const [gestureSelectionPointer, setGestureSelectionPointer] = useState();
36
+ const effectiveSelectedIndex = props.selectedIndex ?? gestureSelectedIndex;
37
+ const rangeSelectorConfig = useMemo(() => getRangeSelectorConfig(props.rangeSelector), [props.rangeSelector]);
38
+ const viewportWindow = useMemo(() => resolveChartViewportWindow({
39
+ itemCount: props.data.length,
40
+ startIndex: props.viewport?.startIndex,
41
+ endIndex: props.viewport?.endIndex,
42
+ visiblePoints: props.viewport?.visiblePoints,
43
+ initialIndex: props.viewport?.initialIndex
44
+ }), [
45
+ props.data.length,
46
+ props.viewport?.endIndex,
47
+ props.viewport?.initialIndex,
48
+ props.viewport?.startIndex,
49
+ props.viewport?.visiblePoints
50
+ ]);
51
+ const mainData = useMemo(() => sliceChartViewportData(props.data, viewportWindow), [props.data, viewportWindow]);
52
+ const isRangeSelectorVisible = rangeSelectorConfig.visible && props.data.length > 1;
53
+ const mainHeight = isRangeSelectorVisible
54
+ ? Math.max(120, props.height - rangeSelectorConfig.height - rangeSelectorConfig.gap)
55
+ : props.height;
56
+ const viewport = useMemo(() => resolveChartViewport({
57
+ itemCount: mainData.length,
58
+ scrollable: props.scrollable,
59
+ viewportWidth: props.width,
60
+ visiblePoints: props.visiblePoints
61
+ }), [mainData.length, props.scrollable, props.visiblePoints, props.width]);
62
+ const initialScrollOffset = useMemo(() => resolveChartViewportInitialOffset({
63
+ initialIndex: props.initialIndex,
64
+ viewport
65
+ }), [props.initialIndex, viewport]);
66
+ const [scrollOffset, setScrollOffset] = useState(initialScrollOffset);
67
+ const chartProps = {
68
+ ...props,
69
+ data: mainData,
70
+ height: mainHeight,
71
+ width: viewport.contentWidth,
72
+ ...(effectiveSelectedIndex !== undefined
73
+ ? { selectedIndex: effectiveSelectedIndex }
74
+ : {})
75
+ };
76
+ const model = useChartModel({
77
+ ...chartProps,
78
+ chartKitTheme,
79
+ dataIndexOffset: viewportWindow.startIndex,
80
+ selectionPointer: gestureSelectionPointer?.index === effectiveSelectedIndex
81
+ ? gestureSelectionPointer
82
+ : undefined,
83
+ stableYAxisData: props.data
84
+ });
85
+ const { boxes, geometries, interactionPoints, selectionModel, formatYLabel } = model;
86
+ const overviewBaseProps = getLineChartOverviewProps(props);
87
+ const overviewModel = useChartModel({
88
+ ...overviewBaseProps,
89
+ activeDot: false,
90
+ chartKitTheme,
91
+ crosshair: false,
92
+ height: rangeSelectorConfig.height,
93
+ labelStrategy: "hide",
94
+ legend: false,
95
+ showDots: false,
96
+ tooltip: false,
97
+ width: props.width
98
+ });
99
+ const isInteractionEnabled = isLineChartInteractionEnabled(interactionConfig);
100
+ const animatedYAxisLabels = useLineChartYAxisLabels(model, props.axisLabelAnimation);
101
+ useEffect(() => {
102
+ if (!viewport.scrollable) {
103
+ return;
104
+ }
105
+ const frame = requestAnimationFrame(() => {
106
+ setScrollOffset(initialScrollOffset);
107
+ scrollViewRef.current?.scrollTo({
108
+ animated: false,
109
+ x: initialScrollOffset
110
+ });
111
+ });
112
+ return () => {
113
+ cancelAnimationFrame(frame);
114
+ };
115
+ }, [initialScrollOffset, viewport.scrollable]);
116
+ const handleScroll = useCallback((event) => {
117
+ setScrollOffset(event.nativeEvent.contentOffset.x);
118
+ }, []);
119
+ const preventBrowserSelection = useCallback((event) => {
120
+ event.preventDefault();
121
+ }, []);
122
+ const viewportPan = useLineChartViewportPan({
123
+ dataLength,
124
+ enabled: !viewport.scrollable,
125
+ onViewportChange: props.onViewportChange,
126
+ plotBounds: boxes.plot,
127
+ preventBrowserSelection,
128
+ viewportInteraction: props.viewportInteraction,
129
+ viewportWindow
130
+ });
131
+ const viewportPinchZoom = useLineChartViewportPinchZoom({
132
+ dataLength,
133
+ enabled: !viewport.scrollable,
134
+ onViewportChange: props.onViewportChange,
135
+ plotBounds: boxes.plot,
136
+ viewportInteraction: props.viewportInteraction,
137
+ viewportWindow
138
+ });
139
+ const isResponderEventInPlot = useCallback((event) => {
140
+ const { locationX, locationY } = event.nativeEvent;
141
+ return isLineChartInteractionInBounds({
142
+ bounds: boxes.plot,
143
+ locationX,
144
+ locationY
145
+ });
146
+ }, [boxes.plot]);
147
+ const visibleInteractionBounds = useMemo(() => getLineChartVisibleInteractionBounds({
148
+ bounds: boxes.plot,
149
+ scrollable: viewport.scrollable,
150
+ viewportWidth: props.width
151
+ }), [boxes.plot, props.width, viewport.scrollable]);
152
+ const clearGestureSelection = useCallback((event) => {
153
+ setGestureSelectionPointer(undefined);
154
+ if (props.selectedIndex === undefined) {
155
+ setGestureSelectedIndex(undefined);
156
+ }
157
+ interactionConfig.onDeselect?.(event);
158
+ }, [interactionConfig, props.selectedIndex]);
159
+ const clearSelectionFromScope = useCallback((reason) => {
160
+ if (reason === "scopeChange") {
161
+ if (props.selectedIndex === undefined) {
162
+ setGestureSelectedIndex(undefined);
163
+ }
164
+ return;
165
+ }
166
+ clearGestureSelection({ reason });
167
+ }, [clearGestureSelection, props.selectedIndex]);
168
+ const scopedSelection = useScopedChartSelection({
169
+ chartId: scopedChartId,
170
+ controlled: props.selectedIndex !== undefined,
171
+ hasSelection: effectiveSelectedIndex !== undefined,
172
+ onClear: clearSelectionFromScope
173
+ });
174
+ const clearScopedGestureSelection = useCallback((event) => {
175
+ clearGestureSelection(event);
176
+ if (event.reason === "outsidePress") {
177
+ scopedSelection.dismissSelection?.("outsidePress");
178
+ }
179
+ else if (event.reason === "gestureEnd") {
180
+ scopedSelection.dismissSelection?.("programmatic");
181
+ }
182
+ }, [clearGestureSelection, scopedSelection]);
183
+ const handleInteractionEvent = useCallback((event) => {
184
+ preventBrowserSelection(event);
185
+ const { locationX, locationY } = event.nativeEvent;
186
+ const selectedDataIndex = getNearestLineChartInteractionIndex({
187
+ locationX,
188
+ points: interactionPoints
189
+ });
190
+ if (selectedDataIndex === undefined) {
191
+ return;
192
+ }
193
+ const selectedSeries = getSelectedLineSeries({
194
+ activeDot: props.activeDot,
195
+ formatYLabel,
196
+ geometries,
197
+ selectedDataIndex
198
+ });
199
+ const selectEvent = buildLineChartSelectEvent({
200
+ interactionPoints,
201
+ selectedDataIndex,
202
+ selectedSeries
203
+ });
204
+ if (!selectEvent) {
205
+ return;
206
+ }
207
+ setGestureSelectionPointer({
208
+ index: selectedDataIndex,
209
+ x: locationX,
210
+ y: locationY
211
+ });
212
+ if (props.selectedIndex === undefined &&
213
+ interactionConfig.selectionPersistence !== "none") {
214
+ setGestureSelectedIndex(selectedDataIndex);
215
+ }
216
+ scopedSelection.selectChart();
217
+ interactionConfig.onSelect?.(selectEvent);
218
+ }, [
219
+ formatYLabel,
220
+ geometries,
221
+ interactionConfig,
222
+ interactionPoints,
223
+ props.activeDot,
224
+ props.selectedIndex,
225
+ preventBrowserSelection,
226
+ scopedSelection
227
+ ]);
228
+ const responderProps = useLineChartResponderProps({
229
+ clearGestureSelection: clearScopedGestureSelection,
230
+ handleInteractionEvent,
231
+ interactionConfig,
232
+ isInteractionEnabled,
233
+ isResponderEventInPlot,
234
+ preventBrowserSelection,
235
+ viewportPan
236
+ });
237
+ const outsidePressSurfaceResponderProps = isInteractionEnabled && interactionConfig.deselectOnOutsidePress
238
+ ? {
239
+ onStartShouldSetResponder: () => true,
240
+ onResponderGrant: (event) => {
241
+ preventBrowserSelection(event);
242
+ clearScopedGestureSelection({ reason: "outsidePress" });
243
+ }
244
+ }
245
+ : {};
246
+ const outsidePressSurfaces = getLineChartOutsidePressSurfaces({
247
+ enabled: isInteractionEnabled && interactionConfig.deselectOnOutsidePress,
248
+ mainHeight,
249
+ visibleInteractionBounds,
250
+ width: props.width
251
+ });
252
+ const animatedTooltip = useAnimatedTooltipModel(selectionModel?.tooltip);
253
+ const displayTooltip = animatedTooltip && viewport.scrollable
254
+ ? clampLineChartTooltipToViewport(animatedTooltip, {
255
+ leftInset: boxes.plot.x + 4,
256
+ scrollOffset,
257
+ viewportWidth: props.width
258
+ })
259
+ : animatedTooltip;
260
+ const chartWidth = viewport.contentWidth;
261
+ const xAxisLabelFadeY = boxes.plot.y + boxes.plot.height;
262
+ const scrollStartFadeId = `${chartId}-scroll-start-fade`;
263
+ const mainSurface = (_jsx(LineChartSurface, { animatedTooltip: displayTooltip, chartId: chartId, chartWidth: chartWidth, isScrollable: viewport.scrollable, mainHeight: mainHeight, model: model, props: props, renderer: renderer, responderProps: responderProps, yAxisLabels: animatedYAxisLabels }));
264
+ return (_jsxs(View, { accessible: true, accessibilityLabel: accessibilityLabel, accessibilityRole: "image", testID: props.testID, style: [styles.container, { width: props.width, height: props.height }], children: [_jsxs(View, { style: { width: props.width, height: mainHeight }, children: [viewport.scrollable ? (_jsx(ScrollView, { ref: scrollViewRef, horizontal: true, bounces: false, showsHorizontalScrollIndicator: true, style: [
265
+ styles.scroller,
266
+ { width: props.width, height: mainHeight }
267
+ ], contentContainerStyle: [
268
+ styles.scrollerContent,
269
+ { width: chartWidth, height: mainHeight }
270
+ ], onScroll: handleScroll, scrollEventThrottle: 16, children: mainSurface })) : (_jsx(LineChartViewportGesture, { gesture: viewportPinchZoom, children: mainSurface })), viewport.scrollable ? (_jsx(StickyYAxis, { fadeHeight: Math.max(0, mainHeight - xAxisLabelFadeY), fadeOpacity: getStickyYAxisFadeOpacity(scrollOffset), fadeWidth: Math.min(12, Math.max(0, props.width - boxes.plot.x)), fadeY: xAxisLabelFadeY, gradientId: scrollStartFadeId, mainHeight: mainHeight, model: model, renderer: renderer, width: props.width, yAxisLabels: animatedYAxisLabels })) : null, outsidePressSurfaces.map((surface) => (_jsx(View, { style: [
271
+ styles.outsidePressSurface,
272
+ {
273
+ height: surface.height,
274
+ left: surface.left,
275
+ top: surface.top,
276
+ width: surface.width
277
+ }
278
+ ], ...outsidePressSurfaceResponderProps }, `outside-press-${surface.key}`)))] }), _jsx(LineChartRangeSelector, { config: rangeSelectorConfig, dataLength: dataLength, isVisible: isRangeSelectorVisible, model: overviewModel, onViewportChange: props.onViewportChange, preventBrowserSelection: preventBrowserSelection, renderer: renderer, testID: props.testID, viewportWindow: viewportWindow, width: props.width })] }));
279
+ };
280
+ const styles = StyleSheet.create({
281
+ container: {
282
+ overflow: "hidden",
283
+ userSelect: "none"
284
+ },
285
+ scroller: {
286
+ overflow: "hidden"
287
+ },
288
+ scrollerContent: {
289
+ flexGrow: 0
290
+ },
291
+ outsidePressSurface: {
292
+ position: "absolute"
293
+ }
294
+ });